Page MenuHomePhabricator (Chris)

No OneTemporary

Size
1 MB
Referenced Files
None
Subscribers
None
This file is larger than 256 KB, so syntax highlighting was skipped.
diff --git a/mongodb-2.1.1/src/LIBMONGOC_VERSION_CURRENT b/mongodb-2.1.1/src/LIBMONGOC_VERSION_CURRENT
deleted file mode 100644
index ff592d35..00000000
--- a/mongodb-2.1.1/src/LIBMONGOC_VERSION_CURRENT
+++ /dev/null
@@ -1 +0,0 @@
-1.30.5
diff --git a/mongodb-2.1.1/src/libmongoc/VERSION_CURRENT b/mongodb-2.1.1/src/libmongoc/VERSION_CURRENT
deleted file mode 100644
index ff592d35..00000000
--- a/mongodb-2.1.1/src/libmongoc/VERSION_CURRENT
+++ /dev/null
@@ -1 +0,0 @@
-1.30.5
diff --git a/mongodb-2.1.1/CONTRIBUTING.md b/mongodb-2.1.4/CONTRIBUTING.md
similarity index 100%
rename from mongodb-2.1.1/CONTRIBUTING.md
rename to mongodb-2.1.4/CONTRIBUTING.md
diff --git a/mongodb-2.1.1/CREDITS b/mongodb-2.1.4/CREDITS
similarity index 100%
rename from mongodb-2.1.1/CREDITS
rename to mongodb-2.1.4/CREDITS
diff --git a/mongodb-2.1.1/LICENSE b/mongodb-2.1.4/LICENSE
similarity index 100%
rename from mongodb-2.1.1/LICENSE
rename to mongodb-2.1.4/LICENSE
diff --git a/mongodb-2.1.1/Makefile.frag b/mongodb-2.1.4/Makefile.frag
similarity index 100%
rename from mongodb-2.1.1/Makefile.frag
rename to mongodb-2.1.4/Makefile.frag
diff --git a/mongodb-2.1.1/README.md b/mongodb-2.1.4/README.md
similarity index 100%
rename from mongodb-2.1.1/README.md
rename to mongodb-2.1.4/README.md
diff --git a/mongodb-2.1.1/THIRD_PARTY_NOTICES b/mongodb-2.1.4/THIRD_PARTY_NOTICES
similarity index 100%
rename from mongodb-2.1.1/THIRD_PARTY_NOTICES
rename to mongodb-2.1.4/THIRD_PARTY_NOTICES
diff --git a/mongodb-2.1.1/Vagrantfile b/mongodb-2.1.4/Vagrantfile
similarity index 100%
rename from mongodb-2.1.1/Vagrantfile
rename to mongodb-2.1.4/Vagrantfile
diff --git a/mongodb-2.1.1/config.m4 b/mongodb-2.1.4/config.m4
similarity index 99%
rename from mongodb-2.1.1/config.m4
rename to mongodb-2.1.4/config.m4
index 2f0a0507..c3a81312 100644
--- a/mongodb-2.1.1/config.m4
+++ b/mongodb-2.1.4/config.m4
@@ -1,514 +1,514 @@
dnl Determine the base directory used for subsequent m4_include calls
m4_define(PHP_MONGODB_BASEDIR, esyscmd(printf %s "$(dirname "__file__")"))
PHP_ARG_ENABLE([mongodb],
[whether to enable MongoDB support],
[AS_HELP_STRING([--enable-mongodb],
[Enable MongoDB support])])
if test "$PHP_MONGODB" != "no"; then
dnl Common includes for both bundled and system builds
m4_include(PHP_MONGODB_BASEDIR/scripts/autotools/m4/php_mongodb.m4)
m4_include(PHP_MONGODB_BASEDIR/scripts/autotools/m4/pkg.m4)
PKG_PROG_PKG_CONFIG
dnl Enable C99 (required for libmongoc 1.24+). On Autoconf 2.70+, this will
dnl already have been done when AC_PROG_CC is called from configure.ac.
m4_version_prereq([2.70],,[AC_PROG_CC_C99])
if test "$ac_cv_prog_cc_c99" = no; then
AC_MSG_ERROR([Compiler does not support C99])
fi
dnl Check PHP version is compatible with this extension
AC_MSG_CHECKING([PHP version])
if test -z "${PHP_VERSION_ID}"; then
if test -z "$PHP_CONFIG"; then
AC_MSG_ERROR([php-config not found])
fi
PHP_MONGODB_PHP_VERSION=`${PHP_CONFIG} --version`
PHP_MONGODB_PHP_VERSION_ID=`${PHP_CONFIG} --vernum`
else
PHP_MONGODB_PHP_VERSION="${PHP_VERSION}"
PHP_MONGODB_PHP_VERSION_ID="${PHP_VERSION_ID}"
fi
AC_MSG_RESULT($PHP_MONGODB_PHP_VERSION)
if test "$PHP_MONGODB_PHP_VERSION_ID" -lt "80100"; then
AC_MSG_ERROR([not supported. Need a PHP version >= 8.1.0 (found $PHP_MONGODB_PHP_VERSION)])
fi
PHP_MONGODB_STD_CFLAGS=""
PHP_MONGODB_DEV_CFLAGS=""
PHP_MONGODB_COVERAGE_CFLAGS=""
PHP_ARG_ENABLE([mongodb-developer-flags],
[whether to enable developer build flags],
[AS_HELP_STRING([--enable-mongodb-developer-flags],
[MongoDB: Enable developer flags [default=no]])],
[no],
[no])
PHP_MONGODB_VALIDATE_ARG([PHP_MONGODB_DEVELOPER_FLAGS], [yes no])
if test "$PHP_MONGODB_DEVELOPER_FLAGS" = "yes"; then
PHP_MONGODB_STD_CFLAGS="-g -O0 -Wall"
dnl Warn about functions which might be candidates for format attributes
AX_CHECK_COMPILE_FLAG(-Wmissing-format-attribute, PHP_MONGODB_DEV_CFLAGS="$PHP_MONGODB_DEV_CFLAGS -Wmissing-format-attribute" ,, -Werror)
dnl Avoid duplicating values for an enum
AX_CHECK_COMPILE_FLAG(-Wduplicate-enum, PHP_MONGODB_DEV_CFLAGS="$PHP_MONGODB_DEV_CFLAGS -Wduplicate-enum" ,, -Werror)
dnl Warns on mismatches between #ifndef and #define header guards
AX_CHECK_COMPILE_FLAG(-Wheader-guard, PHP_MONGODB_DEV_CFLAGS="$PHP_MONGODB_DEV_CFLAGS -Wheader-guard" ,, -Werror)
dnl logical not of a non-boolean expression
AX_CHECK_COMPILE_FLAG(-Wlogical-not-parentheses, PHP_MONGODB_DEV_CFLAGS="$PHP_MONGODB_DEV_CFLAGS -Wlogical-not-parentheses" ,, -Werror)
dnl Warn about suspicious uses of logical operators in expressions
AX_CHECK_COMPILE_FLAG(-Wlogical-op, PHP_MONGODB_DEV_CFLAGS="$PHP_MONGODB_DEV_CFLAGS -Wlogical-op" ,, -Werror)
dnl memory error detector.
dnl FIXME: -fsanitize=address,undefined for clang. The AX_CHECK_COMPILE_FLAG macro isn't happy about that string :(
AX_CHECK_COMPILE_FLAG(-fsanitize-address, PHP_MONGODB_DEV_CFLAGS="$PHP_MONGODB_DEV_CFLAGS -fsanitize-address" ,, -Werror)
dnl Enable frame debugging
AX_CHECK_COMPILE_FLAG(-fno-omit-frame-pointer, PHP_MONGODB_DEV_CFLAGS="$PHP_MONGODB_DEV_CFLAGS -fno-omit-frame-pointer" ,, -Werror)
dnl Make sure we don't optimize calls
AX_CHECK_COMPILE_FLAG(-fno-optimize-sibling-calls, PHP_MONGODB_DEV_CFLAGS="$PHP_MONGODB_DEV_CFLAGS -fno-optimize-sibling-calls" ,, -Werror)
AX_CHECK_COMPILE_FLAG(-Wlogical-op-parentheses, PHP_MONGODB_DEV_CFLAGS="$PHP_MONGODB_DEV_CFLAGS -Wlogical-op-parentheses" ,, -Werror)
AX_CHECK_COMPILE_FLAG(-Wpointer-bool-conversion, PHP_MONGODB_DEV_CFLAGS="$PHP_MONGODB_DEV_CFLAGS -Wpointer-bool-conversion" ,, -Werror)
AX_CHECK_COMPILE_FLAG(-Wbool-conversion, PHP_MONGODB_DEV_CFLAGS="$PHP_MONGODB_DEV_CFLAGS -Wbool-conversion" ,, -Werror)
AX_CHECK_COMPILE_FLAG(-Wloop-analysis, PHP_MONGODB_DEV_CFLAGS="$PHP_MONGODB_DEV_CFLAGS -Wloop-analysis" ,, -Werror)
AX_CHECK_COMPILE_FLAG(-Wsizeof-array-argument, PHP_MONGODB_DEV_CFLAGS="$PHP_MONGODB_DEV_CFLAGS -Wsizeof-array-argument" ,, -Werror)
AX_CHECK_COMPILE_FLAG(-Wstring-conversion, PHP_MONGODB_DEV_CFLAGS="$PHP_MONGODB_DEV_CFLAGS -Wstring-conversion" ,, -Werror)
AX_CHECK_COMPILE_FLAG(-Wno-variadic-macros, PHP_MONGODB_DEV_CFLAGS="$PHP_MONGODB_DEV_CFLAGS -Wno-variadic-macros" ,, -Werror)
AX_CHECK_COMPILE_FLAG(-Wno-sign-compare, PHP_MONGODB_DEV_CFLAGS="$PHP_MONGODB_DEV_CFLAGS -Wno-sign-compare" ,, -Werror)
AX_CHECK_COMPILE_FLAG(-fstack-protector, PHP_MONGODB_DEV_CFLAGS="$PHP_MONGODB_DEV_CFLAGS -fstack-protector" ,, -Werror)
AX_CHECK_COMPILE_FLAG(-fno-exceptions, PHP_MONGODB_DEV_CFLAGS="$PHP_MONGODB_DEV_CFLAGS -fno-exceptions" ,, -Werror)
AX_CHECK_COMPILE_FLAG(-Wformat-security, PHP_MONGODB_DEV_CFLAGS="$PHP_MONGODB_DEV_CFLAGS -Wformat-security" ,, -Werror)
AX_CHECK_COMPILE_FLAG(-Wformat-nonliteral, PHP_MONGODB_DEV_CFLAGS="$PHP_MONGODB_DEV_CFLAGS -Wformat-nonliteral" ,, -Werror)
AX_CHECK_COMPILE_FLAG(-Winit-self, PHP_MONGODB_DEV_CFLAGS="$PHP_MONGODB_DEV_CFLAGS -Winit-self" ,, -Werror)
AX_CHECK_COMPILE_FLAG(-Wwrite-strings, PHP_MONGODB_DEV_CFLAGS="$PHP_MONGODB_DEV_CFLAGS -Wwrite-strings" ,, -Werror)
AX_CHECK_COMPILE_FLAG(-Wenum-compare, PHP_MONGODB_DEV_CFLAGS="$PHP_MONGODB_DEV_CFLAGS -Wenum-compare" ,, -Werror)
AX_CHECK_COMPILE_FLAG(-Wempty-body, PHP_MONGODB_DEV_CFLAGS="$PHP_MONGODB_DEV_CFLAGS -Wempty-body" ,, -Werror)
AX_CHECK_COMPILE_FLAG(-Wparentheses, PHP_MONGODB_DEV_CFLAGS="$PHP_MONGODB_DEV_CFLAGS -Wparentheses" ,, -Werror)
AX_CHECK_COMPILE_FLAG(-Wmaybe-uninitialized, PHP_MONGODB_DEV_CFLAGS="$PHP_MONGODB_DEV_CFLAGS -Wmaybe-uninitialized" ,, -Werror)
AX_CHECK_COMPILE_FLAG(-Wimplicit-fallthrough, PHP_MONGODB_DEV_CFLAGS="$PHP_MONGODB_DEV_CFLAGS -Wimplicit-fallthrough" ,, -Werror)
AX_CHECK_COMPILE_FLAG(-Werror, PHP_MONGODB_DEV_CFLAGS="$PHP_MONGODB_DEV_CFLAGS -Werror" ,, -Werror)
AX_CHECK_COMPILE_FLAG(-Wextra, PHP_MONGODB_DEV_CFLAGS="$PHP_MONGODB_DEV_CFLAGS -Wextra" ,, -Werror)
AX_CHECK_COMPILE_FLAG(-Wno-unused-parameter, PHP_MONGODB_DEV_CFLAGS="$PHP_MONGODB_DEV_CFLAGS -Wno-unused-parameter" ,, -Werror)
AX_CHECK_COMPILE_FLAG(-Wno-unused-but-set-variable, PHP_MONGODB_DEV_CFLAGS="$PHP_MONGODB_DEV_CFLAGS -Wno-unused-but-set-variable" ,, -Werror)
AX_CHECK_COMPILE_FLAG(-Wno-missing-field-initializers, PHP_MONGODB_DEV_CFLAGS="$PHP_MONGODB_DEV_CFLAGS -Wno-missing-field-initializers",, -Werror)
if test "$PHP_MONGODB_PHP_VERSION_ID" -ge "80108"; then
AX_CHECK_COMPILE_FLAG(-Wstrict-prototypes, PHP_MONGODB_DEV_CFLAGS="$PHP_MONGODB_DEV_CFLAGS -Wstrict-prototypes",, -Werror)
fi
fi
PHP_ARG_ENABLE([mongodb-coverage],
[whether to enable code coverage],
[AS_HELP_STRING([--enable-mongodb-coverage],
[MongoDB: Enable developer code coverage information [default=no]])],
[no],
[no])
PHP_MONGODB_VALIDATE_ARG([PHP_MONGODB_COVERAGE], [yes no])
if test "$PHP_MONGODB_COVERAGE" = "yes"; then
if test "$ext_shared" != "yes"; then
AC_MSG_ERROR(code coverage is not supported for static builds)
fi
PHP_MONGODB_COVERAGE_CFLAGS="--coverage -g"
MONGODB_SHARED_LIBADD="$MONGODB_SHARED_LIBADD --coverage"
fi
PHP_MONGODB_CFLAGS="$PHP_MONGODB_STD_CFLAGS $PHP_MONGODB_DEV_CFLAGS $PHP_MONGODB_COVERAGE_CFLAGS"
PHP_MONGODB_SOURCES="\
php_phongo.c \
src/phongo_apm.c \
src/phongo_atomic.c \
src/phongo_bson.c \
src/phongo_bson_encode.c \
src/phongo_client.c \
src/phongo_compat.c \
src/phongo_error.c \
src/phongo_execute.c \
src/phongo_ini.c \
src/phongo_log.c \
src/phongo_util.c \
src/BSON/Binary.c \
src/BSON/BinaryInterface.c \
src/BSON/Document.c \
src/BSON/Iterator.c \
src/BSON/DBPointer.c \
src/BSON/Decimal128.c \
src/BSON/Decimal128Interface.c \
src/BSON/Int64.c \
src/BSON/Javascript.c \
src/BSON/JavascriptInterface.c \
src/BSON/MaxKey.c \
src/BSON/MaxKeyInterface.c \
src/BSON/MinKey.c \
src/BSON/MinKeyInterface.c \
src/BSON/ObjectId.c \
src/BSON/ObjectIdInterface.c \
src/BSON/PackedArray.c \
src/BSON/Persistable.c \
src/BSON/Regex.c \
src/BSON/RegexInterface.c \
src/BSON/Serializable.c \
src/BSON/Symbol.c \
src/BSON/Timestamp.c \
src/BSON/TimestampInterface.c \
src/BSON/Type.c \
src/BSON/Undefined.c \
src/BSON/Unserializable.c \
src/BSON/UTCDateTime.c \
src/BSON/UTCDateTimeInterface.c \
src/MongoDB/BulkWrite.c \
src/MongoDB/BulkWriteCommand.c \
src/MongoDB/BulkWriteCommandResult.c \
src/MongoDB/ClientEncryption.c \
src/MongoDB/Command.c \
src/MongoDB/Cursor.c \
src/MongoDB/CursorInterface.c \
src/MongoDB/Manager.c \
src/MongoDB/Query.c \
src/MongoDB/ReadConcern.c \
src/MongoDB/ReadPreference.c \
src/MongoDB/Server.c \
src/MongoDB/ServerApi.c \
src/MongoDB/ServerDescription.c \
src/MongoDB/Session.c \
src/MongoDB/TopologyDescription.c \
src/MongoDB/WriteConcern.c \
src/MongoDB/WriteConcernError.c \
src/MongoDB/WriteError.c \
src/MongoDB/WriteResult.c \
src/MongoDB/Exception/AuthenticationException.c \
src/MongoDB/Exception/BulkWriteException.c \
src/MongoDB/Exception/BulkWriteCommandException.c \
src/MongoDB/Exception/CommandException.c \
src/MongoDB/Exception/ConnectionException.c \
src/MongoDB/Exception/ConnectionTimeoutException.c \
src/MongoDB/Exception/EncryptionException.c \
src/MongoDB/Exception/Exception.c \
src/MongoDB/Exception/ExecutionTimeoutException.c \
src/MongoDB/Exception/InvalidArgumentException.c \
src/MongoDB/Exception/LogicException.c \
src/MongoDB/Exception/RuntimeException.c \
src/MongoDB/Exception/ServerException.c \
src/MongoDB/Exception/UnexpectedValueException.c \
src/MongoDB/Monitoring/CommandFailedEvent.c \
src/MongoDB/Monitoring/CommandStartedEvent.c \
src/MongoDB/Monitoring/CommandSubscriber.c \
src/MongoDB/Monitoring/CommandSucceededEvent.c \
src/MongoDB/Monitoring/LogSubscriber.c \
src/MongoDB/Monitoring/SDAMSubscriber.c \
src/MongoDB/Monitoring/Subscriber.c \
src/MongoDB/Monitoring/ServerChangedEvent.c \
src/MongoDB/Monitoring/ServerClosedEvent.c \
src/MongoDB/Monitoring/ServerHeartbeatFailedEvent.c \
src/MongoDB/Monitoring/ServerHeartbeatStartedEvent.c \
src/MongoDB/Monitoring/ServerHeartbeatSucceededEvent.c \
src/MongoDB/Monitoring/ServerOpeningEvent.c \
src/MongoDB/Monitoring/TopologyChangedEvent.c \
src/MongoDB/Monitoring/TopologyClosedEvent.c \
src/MongoDB/Monitoring/TopologyOpeningEvent.c \
src/MongoDB/Monitoring/functions.c \
"
PHP_ARG_WITH([mongodb-system-libs],
[whether to compile against system libraries instead of bundled],
[AS_HELP_STRING([--with-mongodb-system-libs=@<:@yes/no@:>@],
[MongoDB: Use system libraries for libbson, libmongoc, and libmongocrypt [default=no]])],
[no],
[no])
PHP_MONGODB_VALIDATE_ARG([PHP_MONGODB_SYSTEM_LIBS], [yes no])
PHP_ARG_WITH([mongodb-client-side-encryption],
[whether to enable client-side encryption],
[AS_HELP_STRING([--with-mongodb-client-side-encryption=@<:@auto/yes/no@:>@],
[MongoDB: Enable client-side encryption [default=auto]])],
[auto],
[no])
PHP_MONGODB_VALIDATE_ARG([PHP_MONGODB_CLIENT_SIDE_ENCRYPTION], [auto yes no])
PHP_MONGODB_BSON_VERSION_STRING="None"
PHP_MONGODB_MONGOC_VERSION_STRING="None"
PHP_MONGODB_MONGOCRYPT_VERSION_STRING="None"
if test "$PHP_MONGODB_SYSTEM_LIBS" != "no"; then
- PKG_CHECK_MODULES([PHP_MONGODB_BSON], [libbson-1.0 >= 1.30.5], [
+ PKG_CHECK_MODULES([PHP_MONGODB_BSON], [libbson-1.0 >= 1.30.6], [
PHP_MONGODB_BSON_VERSION=`$PKG_CONFIG libbson-1.0 --modversion`
PHP_MONGODB_BSON_VERSION_STRING="System ($PHP_MONGODB_BSON_VERSION)"
PHP_MONGODB_CFLAGS="$PHP_MONGODB_CFLAGS $PHP_MONGODB_BSON_CFLAGS"
PHP_EVAL_LIBLINE($PHP_MONGODB_BSON_LIBS, MONGODB_SHARED_LIBADD)
AC_DEFINE(HAVE_SYSTEM_LIBBSON, 1, [Use system libbson])
],[
- AC_MSG_ERROR([Could not find system library for libbson >= 1.30.5])
+ AC_MSG_ERROR([Could not find system library for libbson >= 1.30.6])
])
- PKG_CHECK_MODULES([PHP_MONGODB_MONGOC], [libmongoc-1.0 >= 1.30.5], [
+ PKG_CHECK_MODULES([PHP_MONGODB_MONGOC], [libmongoc-1.0 >= 1.30.6], [
PHP_MONGODB_BSON_VERSION=`$PKG_CONFIG libbson-1.0 --modversion`
PHP_MONGODB_BSON_VERSION_STRING="System ($PHP_MONGODB_BSON_VERSION)"
PHP_MONGODB_CFLAGS="$PHP_MONGODB_CFLAGS $PHP_MONGODB_MONGOC_CFLAGS"
PHP_EVAL_LIBLINE($PHP_MONGODB_MONGOC_LIBS, MONGODB_SHARED_LIBADD)
AC_DEFINE(HAVE_SYSTEM_LIBMONGOC, 1, [Use system libmongoc])
],[
- AC_MSG_ERROR(Could not find system library for libmongoc >= 1.30.5)
+ AC_MSG_ERROR(Could not find system library for libmongoc >= 1.30.6)
])
if test "$PHP_MONGODB_CLIENT_SIDE_ENCRYPTION" != "no"; then
PKG_CHECK_MODULES([PHP_MONGODB_MONGOCRYPT], [libmongocrypt >= 1.12.0], [
PHP_MONGODB_MONGOCRYPT_VERSION=`$PKG_CONFIG libmongocrypt --modversion`
PHP_MONGODB_MONGOCRYPT_VERSION_STRING="System ($PHP_MONGODB_MONGOCRYPT_VERSION)"
PHP_MONGODB_CFLAGS="$PHP_MONGODB_CFLAGS $PHP_MONGODB_MONGOCRYPT_CFLAGS"
PHP_EVAL_LIBLINE($PHP_MONGODB_MONGOCRYPT_LIBS, MONGODB_SHARED_LIBADD)
AC_DEFINE(HAVE_SYSTEM_LIBMONGOCRYPT, 1, [Use system libmongocrypt])
],[
AC_MSG_ERROR(Could not find system library for libmongocrypt >= 1.12.0)
])
fi
fi
if test "$PHP_MONGODB_SYSTEM_LIBS" = "no"; then
PHP_MONGODB_BUNDLED_CFLAGS="$PHP_MONGODB_STD_CFLAGS -DBSON_COMPILATION -DMONGOC_COMPILATION"
dnl CheckUtf8Proc.m4 will modify this when using bundled utf8proc
PHP_MONGODB_UTF8PROC_CFLAGS=""
dnl CheckCompression.m4 will modify this when using bundled zlib
PHP_MONGODB_ZLIB_CFLAGS=""
dnl Endian.m4 will modify this when using bundled libmongocrypt
PHP_MONGODB_LIBMONGOCRYPT_CFLAGS=""
dnl Save CPPFLAGS, which PlatformFlags.m4 modifies for subsequent M4 scripts
old_CPPFLAGS="$CPPFLAGS"
dnl Avoid using AC_CONFIG_MACRO_DIR, which might conflict with PHP
m4_include(PHP_MONGODB_BASEDIR/scripts/autotools/m4/ax_check_compile_flag.m4)
m4_include(PHP_MONGODB_BASEDIR/scripts/autotools/m4/ax_prototype.m4)
m4_include(PHP_MONGODB_BASEDIR/scripts/autotools/m4/ax_prototype_accept.m4)
m4_include(PHP_MONGODB_BASEDIR/scripts/autotools/m4/ax_pthread.m4)
m4_include(PHP_MONGODB_BASEDIR/scripts/autotools/CheckCompiler.m4)
m4_include(PHP_MONGODB_BASEDIR/scripts/autotools/CheckHost.m4)
m4_include(PHP_MONGODB_BASEDIR/scripts/autotools/PlatformFlags.m4)
m4_include(PHP_MONGODB_BASEDIR/scripts/autotools/libbson/CheckHeaders.m4)
m4_include(PHP_MONGODB_BASEDIR/scripts/autotools/libbson/Endian.m4)
m4_include(PHP_MONGODB_BASEDIR/scripts/autotools/libbson/FindDependencies.m4)
m4_include(PHP_MONGODB_BASEDIR/scripts/autotools/libbson/Versions.m4)
m4_include(PHP_MONGODB_BASEDIR/scripts/autotools/libmongoc/CheckCompression.m4)
m4_include(PHP_MONGODB_BASEDIR/scripts/autotools/libmongoc/CheckResolv.m4)
m4_include(PHP_MONGODB_BASEDIR/scripts/autotools/libmongoc/CheckSasl.m4)
m4_include(PHP_MONGODB_BASEDIR/scripts/autotools/libmongoc/CheckSSL.m4)
m4_include(PHP_MONGODB_BASEDIR/scripts/autotools/libmongoc/CheckUtf8Proc.m4)
m4_include(PHP_MONGODB_BASEDIR/scripts/autotools/libmongoc/Endian.m4)
m4_include(PHP_MONGODB_BASEDIR/scripts/autotools/libmongoc/FindDependencies.m4)
m4_include(PHP_MONGODB_BASEDIR/scripts/autotools/libmongoc/Versions.m4)
dnl This include modifies the value of $PHP_MONGODB_CLIENT_SIDE_ENCRYPTION to "yes"
dnl or "no" depending on whether dependencies for libmongocrypt are fulfilled
m4_include(PHP_MONGODB_BASEDIR/scripts/autotools/libmongocrypt/CheckSSL.m4)
m4_include(PHP_MONGODB_BASEDIR/scripts/autotools/libmongocrypt/Endian.m4)
m4_include(PHP_MONGODB_BASEDIR/scripts/autotools/libmongocrypt/Version.m4)
dnl Restore CPPFLAGS once all M4 scripts have executed
CPPFLAGS="$old_CPPFLAGS"
PHP_MONGODB_BSON_VERSION_STRING="Bundled ($libbson_VERSION_FULL)"
PHP_MONGODB_MONGOC_VERSION_STRING="Bundled ($libmongoc_VERSION_FULL)"
AC_SUBST(BSON_EXTRA_ALIGN, 0)
AC_SUBST(BSON_OS, 1)
AC_SUBST(MONGOC_NO_AUTOMATIC_GLOBALS, 1)
AC_SUBST(MONGOC_ENABLE_MONGODB_AWS_AUTH, 0)
AC_SUBST(MONGOC_ENABLE_RDTSCP, 0)
AC_SUBST(MONGOC_ENABLE_SHM_COUNTERS, 0)
AC_SUBST(MONGOC_TRACE, 1)
dnl Assignments for metadata handshake. Leave CFLAGS/LDFLAGS empty as they
dnl would likely cause platform info (PHP version) to be truncated. We can
dnl consider restoring CFLAGS/LDFLAGS once CDRIVER-3134 is resolved.
AC_SUBST(MONGOC_CC, [$CC])
AC_SUBST(MONGOC_USER_SET_CFLAGS, [])
AC_SUBST(MONGOC_USER_SET_LDFLAGS, [])
if test "$PHP_MONGODB_CLIENT_SIDE_ENCRYPTION" = "yes"; then
AC_SUBST(MONGOC_ENABLE_CLIENT_SIDE_ENCRYPTION, 1)
else
AC_SUBST(MONGOC_ENABLE_CLIENT_SIDE_ENCRYPTION, 0)
fi
if test "$PHP_MONGODB_DEVELOPER_FLAGS" = "yes"; then
AC_SUBST(MONGOC_ENABLE_DEBUG_ASSERTIONS, 1)
else
AC_SUBST(MONGOC_ENABLE_DEBUG_ASSERTIONS, 0)
fi
dnl Sources below are updated by scripts/update-submodule-sources.php
PHP_MONGODB_COMMON_SOURCES="common-atomic.c common-b64.c common-json.c common-md5.c common-oid.c common-string.c common-thread.c"
PHP_MONGODB_KMS_MESSAGE_SOURCES="hexlify.c kms_azure_request.c kms_b64.c kms_caller_identity_request.c kms_crypto_apple.c kms_crypto_libcrypto.c kms_crypto_none.c kms_crypto_windows.c kms_decrypt_request.c kms_encrypt_request.c kms_gcp_request.c kms_kmip_reader_writer.c kms_kmip_request.c kms_kmip_response.c kms_kmip_response_parser.c kms_kv_list.c kms_message.c kms_port.c kms_request.c kms_request_opt.c kms_request_str.c kms_response.c kms_response_parser.c sort.c"
PHP_MONGODB_BSON_SOURCES="bcon.c bson-atomic.c bson.c bson-clock.c bson-context.c bson-decimal128.c bson-error.c bson-iso8601.c bson-iter.c bson-json.c bson-keys.c bson-md5.c bson-memory.c bson-oid.c bson-reader.c bson-string.c bson-timegm.c bson-utf8.c bson-value.c bson-version-functions.c bson-writer.c validate.c"
PHP_MONGODB_JSONSL_SOURCES="jsonsl.c"
PHP_MONGODB_MONGOC_SOURCES="mcd-azure.c mcd-nsinfo.c mcd-rpc.c mongoc-aggregate.c mongoc-apm.c mongoc-array.c mongoc-async.c mongoc-async-cmd.c mongoc-buffer.c mongoc-bulk-operation.c mongoc-bulkwrite.c mongoc-change-stream.c mongoc-client.c mongoc-client-pool.c mongoc-client-session.c mongoc-client-side-encryption.c mongoc-cluster-aws.c mongoc-cluster.c mongoc-cluster-cyrus.c mongoc-cluster-sasl.c mongoc-cluster-sspi.c mongoc-cmd.c mongoc-collection.c mongoc-compression.c mongoc-counters.c mongoc-crypt.c mongoc-crypto.c mongoc-crypto-cng.c mongoc-crypto-common-crypto.c mongoc-crypto-openssl.c mongoc-cursor-array.c mongoc-cursor.c mongoc-cursor-change-stream.c mongoc-cursor-cmd.c mongoc-cursor-cmd-deprecated.c mongoc-cursor-find.c mongoc-cursor-find-cmd.c mongoc-cursor-find-opquery.c mongoc-cursor-legacy.c mongoc-cyrus.c mongoc-database.c mongoc-deprioritized-servers.c mongoc-error.c mongoc-find-and-modify.c mongoc-flags.c mongoc-generation-map.c mongoc-gridfs-bucket.c mongoc-gridfs-bucket-file.c mongoc-gridfs.c mongoc-gridfs-file.c mongoc-gridfs-file-list.c mongoc-gridfs-file-page.c mongoc-handshake.c mongoc-host-list.c mongoc-http.c mongoc-index.c mongoc-init.c mongoc-interrupt.c mongoc-libressl.c mongoc-linux-distro-scanner.c mongoc-list.c mongoc-log-and-monitor-private.c mongoc-log.c mongoc-matcher.c mongoc-matcher-op.c mongoc-memcmp.c mongoc-ocsp-cache.c mongoc-opcode.c mongoc-openssl.c mongoc-optional.c mongoc-opts.c mongoc-opts-helpers.c mongoc-queue.c mongoc-rand-cng.c mongoc-rand-common-crypto.c mongoc-rand-openssl.c mongoc-read-concern.c mongoc-read-prefs.c mongoc-rpc.c mongoc-sasl.c mongoc-scram.c mongoc-secure-channel.c mongoc-secure-transport.c mongoc-server-api.c mongoc-server-description.c mongoc-server-monitor.c mongoc-server-stream.c mongoc-set.c mongoc-shared.c mongoc-socket.c mongoc-ssl.c mongoc-sspi.c mongoc-stream-buffered.c mongoc-stream.c mongoc-stream-file.c mongoc-stream-gridfs.c mongoc-stream-gridfs-download.c mongoc-stream-gridfs-upload.c mongoc-stream-socket.c mongoc-stream-tls.c mongoc-stream-tls-libressl.c mongoc-stream-tls-openssl-bio.c mongoc-stream-tls-openssl.c mongoc-stream-tls-secure-channel.c mongoc-stream-tls-secure-transport.c mongoc-structured-log.c mongoc-timeout.c mongoc-topology-background-monitoring.c mongoc-topology.c mongoc-topology-description-apm.c mongoc-topology-description.c mongoc-topology-scanner.c mongoc-ts-pool.c mongoc-uri.c mongoc-util.c mongoc-version-functions.c mongoc-write-command.c mongoc-write-concern.c service-gcp.c"
PHP_MONGODB_UTF8PROC_SOURCES="utf8proc.c"
PHP_MONGODB_ZLIB_SOURCES="adler32.c compress.c crc32.c deflate.c gzclose.c gzlib.c gzread.c gzwrite.c infback.c inffast.c inflate.c inftrees.c trees.c uncompr.c zutil.c"
PHP_MONGODB_ADD_SOURCES([src/libmongoc/src/common/src/], $PHP_MONGODB_COMMON_SOURCES, $PHP_MONGODB_BUNDLED_CFLAGS)
PHP_MONGODB_ADD_SOURCES([src/libmongoc/src/libbson/src/bson/], $PHP_MONGODB_BSON_SOURCES, $PHP_MONGODB_BUNDLED_CFLAGS)
PHP_MONGODB_ADD_SOURCES([src/libmongoc/src/libbson/src/jsonsl/], $PHP_MONGODB_JSONSL_SOURCES, $PHP_MONGODB_BUNDLED_CFLAGS)
PHP_MONGODB_ADD_SOURCES([src/libmongoc/src/libmongoc/src/mongoc/], $PHP_MONGODB_MONGOC_SOURCES, $PHP_MONGODB_BUNDLED_CFLAGS)
PHP_MONGODB_ADD_INCLUDE([src/libmongoc/src/common/src/])
PHP_MONGODB_ADD_INCLUDE([src/libmongoc/src/uthash/])
PHP_MONGODB_ADD_INCLUDE([src/libmongoc/src/libbson/src/])
PHP_MONGODB_ADD_INCLUDE([src/libmongoc/src/libbson/src/jsonsl/])
PHP_MONGODB_ADD_INCLUDE([src/libmongoc/src/libmongoc/src/])
PHP_MONGODB_ADD_BUILD_DIR([src/libmongoc/src/common/src/])
PHP_MONGODB_ADD_BUILD_DIR([src/libmongoc/src/libbson/src/bson/])
PHP_MONGODB_ADD_BUILD_DIR([src/libmongoc/src/libbson/src/jsonsl/])
PHP_MONGODB_ADD_BUILD_DIR([src/libmongoc/src/libmongoc/src/mongoc/])
dnl If compiling without libmongocrypt, use kms_message sources bundled with libmongoc.
dnl If compiling with libmongocrypt, kms_message bundled with libmongocrypt is used as it is most likely newer.
if test "$PHP_MONGODB_CLIENT_SIDE_ENCRYPTION" != "yes" && test "$PHP_MONGODB_SSL" != "no"; then
AC_SUBST(MONGOC_ENABLE_MONGODB_AWS_AUTH, 1)
PHP_MONGODB_ADD_SOURCES([src/libmongoc/src/kms-message/src/], $PHP_MONGODB_KMS_MESSAGE_SOURCES, $PHP_MONGODB_BUNDLED_CFLAGS)
PHP_MONGODB_ADD_INCLUDE([src/libmongoc/src/kms-message/src/])
PHP_MONGODB_ADD_BUILD_DIR([src/libmongoc/src/kms-message/src/])
fi
dnl TODO: Use $ext_srcdir if we can move this after PHP_NEW_EXTENSION
ac_config_dir=PHP_EXT_SRCDIR(mongodb)
AC_CONFIG_FILES([
${ac_config_dir}/src/libmongoc/src/common/src/common-config.h
${ac_config_dir}/src/libmongoc/src/libbson/src/bson/bson-config.h
${ac_config_dir}/src/libmongoc/src/libbson/src/bson/bson-version.h
${ac_config_dir}/src/libmongoc/src/libmongoc/src/mongoc/mongoc-config.h
${ac_config_dir}/src/libmongoc/src/libmongoc/src/mongoc/mongoc-version.h
])
if test "x$bundled_utf8proc" = "xyes"; then
PHP_MONGODB_UTF8PROC_CFLAGS="$PHP_MONGODB_BUNDLED_CFLAGS $PHP_MONGODB_UTF8PROC_CFLAGS"
PHP_MONGODB_ADD_SOURCES([src/libmongoc/src/utf8proc-2.8.0/], $PHP_MONGODB_UTF8PROC_SOURCES, $PHP_MONGODB_UTF8PROC_CFLAGS)
PHP_MONGODB_ADD_INCLUDE([src/libmongoc/src/utf8proc-2.8.0/])
PHP_MONGODB_ADD_BUILD_DIR([src/libmongoc/src/utf8proc-2.8.0/])
fi
if test "x$bundled_zlib" = "xyes"; then
PHP_MONGODB_ZLIB_CFLAGS="$PHP_MONGODB_BUNDLED_CFLAGS $PHP_MONGODB_ZLIB_CFLAGS"
PHP_MONGODB_ADD_SOURCES([src/libmongoc/src/zlib-1.3.1/], $PHP_MONGODB_ZLIB_SOURCES, $PHP_MONGODB_ZLIB_CFLAGS)
PHP_MONGODB_ADD_INCLUDE([src/libmongoc/src/zlib-1.3.1/])
PHP_MONGODB_ADD_BUILD_DIR([src/libmongoc/src/zlib-1.3.1/])
AC_CONFIG_FILES([${ac_config_dir}/src/libmongoc/src/zlib-1.3.1/zconf.h])
fi
if test "$PHP_MONGODB_CLIENT_SIDE_ENCRYPTION" = "yes"; then
PHP_MONGODB_LIBMONGOCRYPT_CFLAGS="$PHP_MONGODB_BUNDLED_CFLAGS $PHP_MONGODB_LIBMONGOCRYPT_CFLAGS -DKMS_MSG_STATIC -DMLIB_USER"
PHP_MONGODB_MONGOCRYPT_VERSION_STRING="Bundled ($MONGOCRYPT_BUILD_VERSION)"
dnl Since libmongocrypt adds kms-message, we can enable AWS auth in this case
AC_SUBST(MONGOC_ENABLE_MONGODB_AWS_AUTH, 1)
AC_SUBST(MONGOCRYPT_ENABLE_TRACE, 1)
dnl Sources below are updated by scripts/update-submodule-sources.php
PHP_MONGODB_MONGOCRYPT_SOURCES="mc-array.c mc-efc.c mc-fle2-encryption-placeholder.c mc-fle2-find-equality-payload.c mc-fle2-find-equality-payload-v2.c mc-fle2-find-range-payload.c mc-fle2-find-range-payload-v2.c mc-fle2-insert-update-payload.c mc-fle2-insert-update-payload-v2.c mc-fle2-payload-iev.c mc-fle2-payload-iev-v2.c mc-fle2-payload-uev.c mc-fle2-payload-uev-common.c mc-fle2-payload-uev-v2.c mc-fle2-rfds.c mc-fle2-tag-and-encrypted-metadata-block.c mc-range-edge-generation.c mc-range-encoding.c mc-range-mincover.c mc-rangeopts.c mc-reader.c mc-tokens.c mc-writer.c mongocrypt-binary.c mongocrypt-buffer.c mongocrypt.c mongocrypt-cache.c mongocrypt-cache-collinfo.c mongocrypt-cache-key.c mongocrypt-cache-oauth.c mongocrypt-ciphertext.c mongocrypt-crypto.c mongocrypt-ctx.c mongocrypt-ctx-datakey.c mongocrypt-ctx-decrypt.c mongocrypt-ctx-encrypt.c mongocrypt-ctx-rewrap-many-datakey.c mongocrypt-endpoint.c mongocrypt-kek.c mongocrypt-key-broker.c mongocrypt-key.c mongocrypt-kms-ctx.c mongocrypt-log.c mongocrypt-marking.c mongocrypt-opts.c mongocrypt-status.c mongocrypt-traverse-util.c mongocrypt-util.c"
PHP_MONGODB_MONGOCRYPT_CRYPTO_SOURCES="cng.c commoncrypto.c libcrypto.c none.c"
PHP_MONGODB_MONGOCRYPT_OS_POSIX_SOURCES="os_dll.c os_mutex.c"
PHP_MONGODB_MONGOCRYPT_OS_WIN_SOURCES="os_dll.c os_mutex.c"
PHP_MONGODB_MONGOCRYPT_KMS_MESSAGE_SOURCES="hexlify.c kms_azure_request.c kms_b64.c kms_caller_identity_request.c kms_crypto_apple.c kms_crypto_libcrypto.c kms_crypto_none.c kms_crypto_windows.c kms_decrypt_request.c kms_encrypt_request.c kms_gcp_request.c kms_kmip_reader_writer.c kms_kmip_request.c kms_kmip_response.c kms_kmip_response_parser.c kms_kv_list.c kms_message.c kms_port.c kms_request.c kms_request_opt.c kms_request_str.c kms_response.c kms_response_parser.c sort.c"
PHP_MONGODB_ADD_SOURCES([src/libmongocrypt/src/], $PHP_MONGODB_MONGOCRYPT_SOURCES, $PHP_MONGODB_LIBMONGOCRYPT_CFLAGS)
PHP_MONGODB_ADD_SOURCES([src/libmongocrypt/src/crypto/], $PHP_MONGODB_MONGOCRYPT_CRYPTO_SOURCES, $PHP_MONGODB_LIBMONGOCRYPT_CFLAGS)
PHP_MONGODB_ADD_SOURCES([src/libmongocrypt/src/os_posix/], $PHP_MONGODB_MONGOCRYPT_OS_POSIX_SOURCES, $PHP_MONGODB_LIBMONGOCRYPT_CFLAGS)
PHP_MONGODB_ADD_SOURCES([src/libmongocrypt/src/os_win/], $PHP_MONGODB_MONGOCRYPT_OS_WIN_SOURCES, $PHP_MONGODB_LIBMONGOCRYPT_CFLAGS)
PHP_MONGODB_ADD_SOURCES([src/libmongocrypt/kms-message/src/], $PHP_MONGODB_MONGOCRYPT_KMS_MESSAGE_SOURCES, $PHP_MONGODB_LIBMONGOCRYPT_CFLAGS)
PHP_MONGODB_ADD_INCLUDE([src/libmongocrypt/src/])
PHP_MONGODB_ADD_INCLUDE([src/libmongocrypt/kms-message/src/])
PHP_MONGODB_ADD_INCLUDE([src/libmongocrypt-compat/])
PHP_MONGODB_ADD_BUILD_DIR([src/libmongocrypt/src/])
PHP_MONGODB_ADD_BUILD_DIR([src/libmongocrypt/src/crypto/])
PHP_MONGODB_ADD_BUILD_DIR([src/libmongocrypt/src/os_posix/])
PHP_MONGODB_ADD_BUILD_DIR([src/libmongocrypt/src/os_win/])
PHP_MONGODB_ADD_BUILD_DIR([src/libmongocrypt/kms-message/src/])
AC_CONFIG_FILES([
${ac_config_dir}/src/libmongocrypt/src/mongocrypt-config.h
])
fi
fi
PHP_NEW_EXTENSION(mongodb, $PHP_MONGODB_SOURCES, $ext_shared,, $PHP_MONGODB_CFLAGS)
PHP_SUBST(MONGODB_SHARED_LIBADD)
PHP_ADD_EXTENSION_DEP(mongodb, date)
PHP_ADD_EXTENSION_DEP(mongodb, json)
PHP_ADD_EXTENSION_DEP(mongodb, spl)
PHP_ADD_EXTENSION_DEP(mongodb, standard)
PHP_ADD_INCLUDE(PHP_EXT_SRCDIR(mongodb)[/src/])
PHP_ADD_INCLUDE(PHP_EXT_SRCDIR(mongodb)[/src/BSON/])
PHP_ADD_INCLUDE(PHP_EXT_SRCDIR(mongodb)[/src/MongoDB/])
PHP_ADD_INCLUDE(PHP_EXT_SRCDIR(mongodb)[/src/MongoDB/Exception/])
PHP_ADD_INCLUDE(PHP_EXT_SRCDIR(mongodb)[/src/MongoDB/Monitoring/])
PHP_ADD_INCLUDE(PHP_EXT_SRCDIR(mongodb)[/src/contrib/])
PHP_ADD_BUILD_DIR(PHP_EXT_BUILDDIR(mongodb)[/src/])
PHP_ADD_BUILD_DIR(PHP_EXT_BUILDDIR(mongodb)[/src/BSON/])
PHP_ADD_BUILD_DIR(PHP_EXT_BUILDDIR(mongodb)[/src/MongoDB/])
PHP_ADD_BUILD_DIR(PHP_EXT_BUILDDIR(mongodb)[/src/MongoDB/Exception/])
PHP_ADD_BUILD_DIR(PHP_EXT_BUILDDIR(mongodb)[/src/MongoDB/Monitoring/])
PHP_ADD_BUILD_DIR(PHP_EXT_BUILDDIR(mongodb)[/src/contrib/])
dnl Necessary to ensure that static builds include "-pthread" when linking
if test "$ext_shared" != "yes"; then
EXTRA_LDFLAGS_PROGRAM="$EXTRA_LDFLAGS_PROGRAM $EXTRA_LDFLAGS"
fi
dnl This must come after PHP_NEW_EXTENSION, otherwise the srcdir won't be set
PHP_ADD_MAKEFILE_FRAGMENT
AC_CONFIG_COMMANDS_POST([
if test "$enable_static" = "no"; then
echo "
mongodb was configured with the following options:
Build configuration:
CC : $CC
CFLAGS : $CFLAGS
CPPFLAGS : $CPPFLAGS
Extra flags : $PHP_MONGODB_STD_CFLAGS
Developer flags (slow) : $PHP_MONGODB_DEV_CFLAGS
Code Coverage flags (extra slow) : $PHP_MONGODB_COVERAGE_CFLAGS
libmongoc : $PHP_MONGODB_BSON_VERSION_STRING
libbson : $PHP_MONGODB_MONGOC_VERSION_STRING
libmongocrypt : $PHP_MONGODB_MONGOCRYPT_VERSION_STRING
LDFLAGS : $LDFLAGS
EXTRA_LDFLAGS : $EXTRA_LDFLAGS
MONGODB_SHARED_LIBADD : $MONGODB_SHARED_LIBADD
Please submit bugreports at:
https://jira.mongodb.org/browse/PHPC
"
fi
])
fi
dnl: vim: et sw=2
diff --git a/mongodb-2.1.1/config.w32 b/mongodb-2.1.4/config.w32
similarity index 100%
rename from mongodb-2.1.1/config.w32
rename to mongodb-2.1.4/config.w32
diff --git a/mongodb-2.1.1/phongo_version.h b/mongodb-2.1.4/phongo_version.h
similarity index 92%
rename from mongodb-2.1.1/phongo_version.h
rename to mongodb-2.1.4/phongo_version.h
index a665ee72..138212a3 100644
--- a/mongodb-2.1.1/phongo_version.h
+++ b/mongodb-2.1.4/phongo_version.h
@@ -1,30 +1,30 @@
/*
* Copyright 2014-present MongoDB, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef PHONGO_VERSION_H
#define PHONGO_VERSION_H
/* Note: this file should remain in the repository's root directory so that
* PECL's release-upload.php script can verify the version information when
* publishing a release. */
/* clang-format off */
-#define PHP_MONGODB_VERSION "2.1.1"
+#define PHP_MONGODB_VERSION "2.1.4"
#define PHP_MONGODB_STABILITY "stable"
-#define PHP_MONGODB_VERSION_DESC 2,1,1,0
+#define PHP_MONGODB_VERSION_DESC 2,1,4,0
/* clang-format on */
#endif /* PHONGO_VERSION_H */
diff --git a/mongodb-2.1.1/php_phongo.c b/mongodb-2.1.4/php_phongo.c
similarity index 100%
rename from mongodb-2.1.1/php_phongo.c
rename to mongodb-2.1.4/php_phongo.c
diff --git a/mongodb-2.1.1/php_phongo.h b/mongodb-2.1.4/php_phongo.h
similarity index 100%
rename from mongodb-2.1.1/php_phongo.h
rename to mongodb-2.1.4/php_phongo.h
diff --git a/mongodb-2.1.1/scripts/autotools/CheckCompiler.m4 b/mongodb-2.1.4/scripts/autotools/CheckCompiler.m4
similarity index 100%
rename from mongodb-2.1.1/scripts/autotools/CheckCompiler.m4
rename to mongodb-2.1.4/scripts/autotools/CheckCompiler.m4
diff --git a/mongodb-2.1.1/scripts/autotools/CheckHost.m4 b/mongodb-2.1.4/scripts/autotools/CheckHost.m4
similarity index 100%
rename from mongodb-2.1.1/scripts/autotools/CheckHost.m4
rename to mongodb-2.1.4/scripts/autotools/CheckHost.m4
diff --git a/mongodb-2.1.1/scripts/autotools/PlatformFlags.m4 b/mongodb-2.1.4/scripts/autotools/PlatformFlags.m4
similarity index 100%
rename from mongodb-2.1.1/scripts/autotools/PlatformFlags.m4
rename to mongodb-2.1.4/scripts/autotools/PlatformFlags.m4
diff --git a/mongodb-2.1.1/scripts/autotools/libbson/CheckHeaders.m4 b/mongodb-2.1.4/scripts/autotools/libbson/CheckHeaders.m4
similarity index 100%
rename from mongodb-2.1.1/scripts/autotools/libbson/CheckHeaders.m4
rename to mongodb-2.1.4/scripts/autotools/libbson/CheckHeaders.m4
diff --git a/mongodb-2.1.1/scripts/autotools/libbson/Endian.m4 b/mongodb-2.1.4/scripts/autotools/libbson/Endian.m4
similarity index 100%
rename from mongodb-2.1.1/scripts/autotools/libbson/Endian.m4
rename to mongodb-2.1.4/scripts/autotools/libbson/Endian.m4
diff --git a/mongodb-2.1.1/scripts/autotools/libbson/FindDependencies.m4 b/mongodb-2.1.4/scripts/autotools/libbson/FindDependencies.m4
similarity index 100%
rename from mongodb-2.1.1/scripts/autotools/libbson/FindDependencies.m4
rename to mongodb-2.1.4/scripts/autotools/libbson/FindDependencies.m4
diff --git a/mongodb-2.1.1/scripts/autotools/libbson/Versions.m4 b/mongodb-2.1.4/scripts/autotools/libbson/Versions.m4
similarity index 100%
rename from mongodb-2.1.1/scripts/autotools/libbson/Versions.m4
rename to mongodb-2.1.4/scripts/autotools/libbson/Versions.m4
diff --git a/mongodb-2.1.1/scripts/autotools/libmongoc/CheckCompression.m4 b/mongodb-2.1.4/scripts/autotools/libmongoc/CheckCompression.m4
similarity index 100%
rename from mongodb-2.1.1/scripts/autotools/libmongoc/CheckCompression.m4
rename to mongodb-2.1.4/scripts/autotools/libmongoc/CheckCompression.m4
diff --git a/mongodb-2.1.1/scripts/autotools/libmongoc/CheckResolv.m4 b/mongodb-2.1.4/scripts/autotools/libmongoc/CheckResolv.m4
similarity index 100%
rename from mongodb-2.1.1/scripts/autotools/libmongoc/CheckResolv.m4
rename to mongodb-2.1.4/scripts/autotools/libmongoc/CheckResolv.m4
diff --git a/mongodb-2.1.1/scripts/autotools/libmongoc/CheckSSL.m4 b/mongodb-2.1.4/scripts/autotools/libmongoc/CheckSSL.m4
similarity index 100%
rename from mongodb-2.1.1/scripts/autotools/libmongoc/CheckSSL.m4
rename to mongodb-2.1.4/scripts/autotools/libmongoc/CheckSSL.m4
diff --git a/mongodb-2.1.1/scripts/autotools/libmongoc/CheckSasl.m4 b/mongodb-2.1.4/scripts/autotools/libmongoc/CheckSasl.m4
similarity index 100%
rename from mongodb-2.1.1/scripts/autotools/libmongoc/CheckSasl.m4
rename to mongodb-2.1.4/scripts/autotools/libmongoc/CheckSasl.m4
diff --git a/mongodb-2.1.1/scripts/autotools/libmongoc/CheckUtf8Proc.m4 b/mongodb-2.1.4/scripts/autotools/libmongoc/CheckUtf8Proc.m4
similarity index 100%
rename from mongodb-2.1.1/scripts/autotools/libmongoc/CheckUtf8Proc.m4
rename to mongodb-2.1.4/scripts/autotools/libmongoc/CheckUtf8Proc.m4
diff --git a/mongodb-2.1.1/scripts/autotools/libmongoc/Endian.m4 b/mongodb-2.1.4/scripts/autotools/libmongoc/Endian.m4
similarity index 100%
rename from mongodb-2.1.1/scripts/autotools/libmongoc/Endian.m4
rename to mongodb-2.1.4/scripts/autotools/libmongoc/Endian.m4
diff --git a/mongodb-2.1.1/scripts/autotools/libmongoc/FindDependencies.m4 b/mongodb-2.1.4/scripts/autotools/libmongoc/FindDependencies.m4
similarity index 100%
rename from mongodb-2.1.1/scripts/autotools/libmongoc/FindDependencies.m4
rename to mongodb-2.1.4/scripts/autotools/libmongoc/FindDependencies.m4
diff --git a/mongodb-2.1.1/scripts/autotools/libmongoc/Versions.m4 b/mongodb-2.1.4/scripts/autotools/libmongoc/Versions.m4
similarity index 100%
rename from mongodb-2.1.1/scripts/autotools/libmongoc/Versions.m4
rename to mongodb-2.1.4/scripts/autotools/libmongoc/Versions.m4
diff --git a/mongodb-2.1.1/scripts/autotools/libmongocrypt/CheckSSL.m4 b/mongodb-2.1.4/scripts/autotools/libmongocrypt/CheckSSL.m4
similarity index 100%
rename from mongodb-2.1.1/scripts/autotools/libmongocrypt/CheckSSL.m4
rename to mongodb-2.1.4/scripts/autotools/libmongocrypt/CheckSSL.m4
diff --git a/mongodb-2.1.1/scripts/autotools/libmongocrypt/Endian.m4 b/mongodb-2.1.4/scripts/autotools/libmongocrypt/Endian.m4
similarity index 100%
rename from mongodb-2.1.1/scripts/autotools/libmongocrypt/Endian.m4
rename to mongodb-2.1.4/scripts/autotools/libmongocrypt/Endian.m4
diff --git a/mongodb-2.1.1/scripts/autotools/libmongocrypt/Version.m4 b/mongodb-2.1.4/scripts/autotools/libmongocrypt/Version.m4
similarity index 100%
rename from mongodb-2.1.1/scripts/autotools/libmongocrypt/Version.m4
rename to mongodb-2.1.4/scripts/autotools/libmongocrypt/Version.m4
diff --git a/mongodb-2.1.1/scripts/autotools/m4/ax_check_compile_flag.m4 b/mongodb-2.1.4/scripts/autotools/m4/ax_check_compile_flag.m4
similarity index 100%
rename from mongodb-2.1.1/scripts/autotools/m4/ax_check_compile_flag.m4
rename to mongodb-2.1.4/scripts/autotools/m4/ax_check_compile_flag.m4
diff --git a/mongodb-2.1.1/scripts/autotools/m4/ax_prototype.m4 b/mongodb-2.1.4/scripts/autotools/m4/ax_prototype.m4
similarity index 100%
rename from mongodb-2.1.1/scripts/autotools/m4/ax_prototype.m4
rename to mongodb-2.1.4/scripts/autotools/m4/ax_prototype.m4
diff --git a/mongodb-2.1.1/scripts/autotools/m4/ax_prototype_accept.m4 b/mongodb-2.1.4/scripts/autotools/m4/ax_prototype_accept.m4
similarity index 100%
rename from mongodb-2.1.1/scripts/autotools/m4/ax_prototype_accept.m4
rename to mongodb-2.1.4/scripts/autotools/m4/ax_prototype_accept.m4
diff --git a/mongodb-2.1.1/scripts/autotools/m4/ax_pthread.m4 b/mongodb-2.1.4/scripts/autotools/m4/ax_pthread.m4
similarity index 100%
rename from mongodb-2.1.1/scripts/autotools/m4/ax_pthread.m4
rename to mongodb-2.1.4/scripts/autotools/m4/ax_pthread.m4
diff --git a/mongodb-2.1.1/scripts/autotools/m4/php_mongodb.m4 b/mongodb-2.1.4/scripts/autotools/m4/php_mongodb.m4
similarity index 100%
rename from mongodb-2.1.1/scripts/autotools/m4/php_mongodb.m4
rename to mongodb-2.1.4/scripts/autotools/m4/php_mongodb.m4
diff --git a/mongodb-2.1.1/scripts/autotools/m4/pkg.m4 b/mongodb-2.1.4/scripts/autotools/m4/pkg.m4
similarity index 100%
rename from mongodb-2.1.1/scripts/autotools/m4/pkg.m4
rename to mongodb-2.1.4/scripts/autotools/m4/pkg.m4
diff --git a/mongodb-2.1.1/scripts/clang-format.sh b/mongodb-2.1.4/scripts/clang-format.sh
similarity index 100%
rename from mongodb-2.1.1/scripts/clang-format.sh
rename to mongodb-2.1.4/scripts/clang-format.sh
diff --git a/mongodb-2.1.1/scripts/convert-bson-corpus-tests.php b/mongodb-2.1.4/scripts/convert-bson-corpus-tests.php
similarity index 100%
rename from mongodb-2.1.1/scripts/convert-bson-corpus-tests.php
rename to mongodb-2.1.4/scripts/convert-bson-corpus-tests.php
diff --git a/mongodb-2.1.1/scripts/generate-functionmap.php b/mongodb-2.1.4/scripts/generate-functionmap.php
similarity index 100%
rename from mongodb-2.1.1/scripts/generate-functionmap.php
rename to mongodb-2.1.4/scripts/generate-functionmap.php
diff --git a/mongodb-2.1.1/scripts/update-sbom.sh b/mongodb-2.1.4/scripts/update-sbom.sh
similarity index 100%
rename from mongodb-2.1.1/scripts/update-sbom.sh
rename to mongodb-2.1.4/scripts/update-sbom.sh
diff --git a/mongodb-2.1.1/scripts/update-submodule-sources.php b/mongodb-2.1.4/scripts/update-submodule-sources.php
similarity index 100%
rename from mongodb-2.1.1/scripts/update-submodule-sources.php
rename to mongodb-2.1.4/scripts/update-submodule-sources.php
diff --git a/mongodb-2.1.1/src/BSON/Binary.c b/mongodb-2.1.4/src/BSON/Binary.c
similarity index 100%
rename from mongodb-2.1.1/src/BSON/Binary.c
rename to mongodb-2.1.4/src/BSON/Binary.c
diff --git a/mongodb-2.1.1/src/BSON/Binary.h b/mongodb-2.1.4/src/BSON/Binary.h
similarity index 100%
rename from mongodb-2.1.1/src/BSON/Binary.h
rename to mongodb-2.1.4/src/BSON/Binary.h
diff --git a/mongodb-2.1.1/src/BSON/BinaryInterface.c b/mongodb-2.1.4/src/BSON/BinaryInterface.c
similarity index 100%
rename from mongodb-2.1.1/src/BSON/BinaryInterface.c
rename to mongodb-2.1.4/src/BSON/BinaryInterface.c
diff --git a/mongodb-2.1.1/src/BSON/BinaryInterface_arginfo.h b/mongodb-2.1.4/src/BSON/BinaryInterface_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/BSON/BinaryInterface_arginfo.h
rename to mongodb-2.1.4/src/BSON/BinaryInterface_arginfo.h
diff --git a/mongodb-2.1.1/src/BSON/Binary_arginfo.h b/mongodb-2.1.4/src/BSON/Binary_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/BSON/Binary_arginfo.h
rename to mongodb-2.1.4/src/BSON/Binary_arginfo.h
diff --git a/mongodb-2.1.1/src/BSON/DBPointer.c b/mongodb-2.1.4/src/BSON/DBPointer.c
similarity index 100%
rename from mongodb-2.1.1/src/BSON/DBPointer.c
rename to mongodb-2.1.4/src/BSON/DBPointer.c
diff --git a/mongodb-2.1.1/src/BSON/DBPointer.h b/mongodb-2.1.4/src/BSON/DBPointer.h
similarity index 100%
rename from mongodb-2.1.1/src/BSON/DBPointer.h
rename to mongodb-2.1.4/src/BSON/DBPointer.h
diff --git a/mongodb-2.1.1/src/BSON/DBPointer_arginfo.h b/mongodb-2.1.4/src/BSON/DBPointer_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/BSON/DBPointer_arginfo.h
rename to mongodb-2.1.4/src/BSON/DBPointer_arginfo.h
diff --git a/mongodb-2.1.1/src/BSON/Decimal128.c b/mongodb-2.1.4/src/BSON/Decimal128.c
similarity index 100%
rename from mongodb-2.1.1/src/BSON/Decimal128.c
rename to mongodb-2.1.4/src/BSON/Decimal128.c
diff --git a/mongodb-2.1.1/src/BSON/Decimal128.h b/mongodb-2.1.4/src/BSON/Decimal128.h
similarity index 100%
rename from mongodb-2.1.1/src/BSON/Decimal128.h
rename to mongodb-2.1.4/src/BSON/Decimal128.h
diff --git a/mongodb-2.1.1/src/BSON/Decimal128Interface.c b/mongodb-2.1.4/src/BSON/Decimal128Interface.c
similarity index 100%
rename from mongodb-2.1.1/src/BSON/Decimal128Interface.c
rename to mongodb-2.1.4/src/BSON/Decimal128Interface.c
diff --git a/mongodb-2.1.1/src/BSON/Decimal128Interface_arginfo.h b/mongodb-2.1.4/src/BSON/Decimal128Interface_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/BSON/Decimal128Interface_arginfo.h
rename to mongodb-2.1.4/src/BSON/Decimal128Interface_arginfo.h
diff --git a/mongodb-2.1.1/src/BSON/Decimal128_arginfo.h b/mongodb-2.1.4/src/BSON/Decimal128_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/BSON/Decimal128_arginfo.h
rename to mongodb-2.1.4/src/BSON/Decimal128_arginfo.h
diff --git a/mongodb-2.1.1/src/BSON/Document.c b/mongodb-2.1.4/src/BSON/Document.c
similarity index 100%
rename from mongodb-2.1.1/src/BSON/Document.c
rename to mongodb-2.1.4/src/BSON/Document.c
diff --git a/mongodb-2.1.1/src/BSON/Document.h b/mongodb-2.1.4/src/BSON/Document.h
similarity index 100%
rename from mongodb-2.1.1/src/BSON/Document.h
rename to mongodb-2.1.4/src/BSON/Document.h
diff --git a/mongodb-2.1.1/src/BSON/Document_arginfo.h b/mongodb-2.1.4/src/BSON/Document_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/BSON/Document_arginfo.h
rename to mongodb-2.1.4/src/BSON/Document_arginfo.h
diff --git a/mongodb-2.1.1/src/BSON/Int64.c b/mongodb-2.1.4/src/BSON/Int64.c
similarity index 100%
rename from mongodb-2.1.1/src/BSON/Int64.c
rename to mongodb-2.1.4/src/BSON/Int64.c
diff --git a/mongodb-2.1.1/src/BSON/Int64.h b/mongodb-2.1.4/src/BSON/Int64.h
similarity index 100%
rename from mongodb-2.1.1/src/BSON/Int64.h
rename to mongodb-2.1.4/src/BSON/Int64.h
diff --git a/mongodb-2.1.1/src/BSON/Int64_arginfo.h b/mongodb-2.1.4/src/BSON/Int64_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/BSON/Int64_arginfo.h
rename to mongodb-2.1.4/src/BSON/Int64_arginfo.h
diff --git a/mongodb-2.1.1/src/BSON/Iterator.c b/mongodb-2.1.4/src/BSON/Iterator.c
similarity index 100%
rename from mongodb-2.1.1/src/BSON/Iterator.c
rename to mongodb-2.1.4/src/BSON/Iterator.c
diff --git a/mongodb-2.1.1/src/BSON/Iterator.h b/mongodb-2.1.4/src/BSON/Iterator.h
similarity index 100%
rename from mongodb-2.1.1/src/BSON/Iterator.h
rename to mongodb-2.1.4/src/BSON/Iterator.h
diff --git a/mongodb-2.1.1/src/BSON/Iterator_arginfo.h b/mongodb-2.1.4/src/BSON/Iterator_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/BSON/Iterator_arginfo.h
rename to mongodb-2.1.4/src/BSON/Iterator_arginfo.h
diff --git a/mongodb-2.1.1/src/BSON/Javascript.c b/mongodb-2.1.4/src/BSON/Javascript.c
similarity index 100%
rename from mongodb-2.1.1/src/BSON/Javascript.c
rename to mongodb-2.1.4/src/BSON/Javascript.c
diff --git a/mongodb-2.1.1/src/BSON/Javascript.h b/mongodb-2.1.4/src/BSON/Javascript.h
similarity index 100%
rename from mongodb-2.1.1/src/BSON/Javascript.h
rename to mongodb-2.1.4/src/BSON/Javascript.h
diff --git a/mongodb-2.1.1/src/BSON/JavascriptInterface.c b/mongodb-2.1.4/src/BSON/JavascriptInterface.c
similarity index 100%
rename from mongodb-2.1.1/src/BSON/JavascriptInterface.c
rename to mongodb-2.1.4/src/BSON/JavascriptInterface.c
diff --git a/mongodb-2.1.1/src/BSON/JavascriptInterface_arginfo.h b/mongodb-2.1.4/src/BSON/JavascriptInterface_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/BSON/JavascriptInterface_arginfo.h
rename to mongodb-2.1.4/src/BSON/JavascriptInterface_arginfo.h
diff --git a/mongodb-2.1.1/src/BSON/Javascript_arginfo.h b/mongodb-2.1.4/src/BSON/Javascript_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/BSON/Javascript_arginfo.h
rename to mongodb-2.1.4/src/BSON/Javascript_arginfo.h
diff --git a/mongodb-2.1.1/src/BSON/MaxKey.c b/mongodb-2.1.4/src/BSON/MaxKey.c
similarity index 100%
rename from mongodb-2.1.1/src/BSON/MaxKey.c
rename to mongodb-2.1.4/src/BSON/MaxKey.c
diff --git a/mongodb-2.1.1/src/BSON/MaxKeyInterface.c b/mongodb-2.1.4/src/BSON/MaxKeyInterface.c
similarity index 100%
rename from mongodb-2.1.1/src/BSON/MaxKeyInterface.c
rename to mongodb-2.1.4/src/BSON/MaxKeyInterface.c
diff --git a/mongodb-2.1.1/src/BSON/MaxKeyInterface_arginfo.h b/mongodb-2.1.4/src/BSON/MaxKeyInterface_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/BSON/MaxKeyInterface_arginfo.h
rename to mongodb-2.1.4/src/BSON/MaxKeyInterface_arginfo.h
diff --git a/mongodb-2.1.1/src/BSON/MaxKey_arginfo.h b/mongodb-2.1.4/src/BSON/MaxKey_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/BSON/MaxKey_arginfo.h
rename to mongodb-2.1.4/src/BSON/MaxKey_arginfo.h
diff --git a/mongodb-2.1.1/src/BSON/MinKey.c b/mongodb-2.1.4/src/BSON/MinKey.c
similarity index 100%
rename from mongodb-2.1.1/src/BSON/MinKey.c
rename to mongodb-2.1.4/src/BSON/MinKey.c
diff --git a/mongodb-2.1.1/src/BSON/MinKeyInterface.c b/mongodb-2.1.4/src/BSON/MinKeyInterface.c
similarity index 100%
rename from mongodb-2.1.1/src/BSON/MinKeyInterface.c
rename to mongodb-2.1.4/src/BSON/MinKeyInterface.c
diff --git a/mongodb-2.1.1/src/BSON/MinKeyInterface_arginfo.h b/mongodb-2.1.4/src/BSON/MinKeyInterface_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/BSON/MinKeyInterface_arginfo.h
rename to mongodb-2.1.4/src/BSON/MinKeyInterface_arginfo.h
diff --git a/mongodb-2.1.1/src/BSON/MinKey_arginfo.h b/mongodb-2.1.4/src/BSON/MinKey_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/BSON/MinKey_arginfo.h
rename to mongodb-2.1.4/src/BSON/MinKey_arginfo.h
diff --git a/mongodb-2.1.1/src/BSON/ObjectId.c b/mongodb-2.1.4/src/BSON/ObjectId.c
similarity index 100%
rename from mongodb-2.1.1/src/BSON/ObjectId.c
rename to mongodb-2.1.4/src/BSON/ObjectId.c
diff --git a/mongodb-2.1.1/src/BSON/ObjectId.h b/mongodb-2.1.4/src/BSON/ObjectId.h
similarity index 100%
rename from mongodb-2.1.1/src/BSON/ObjectId.h
rename to mongodb-2.1.4/src/BSON/ObjectId.h
diff --git a/mongodb-2.1.1/src/BSON/ObjectIdInterface.c b/mongodb-2.1.4/src/BSON/ObjectIdInterface.c
similarity index 100%
rename from mongodb-2.1.1/src/BSON/ObjectIdInterface.c
rename to mongodb-2.1.4/src/BSON/ObjectIdInterface.c
diff --git a/mongodb-2.1.1/src/BSON/ObjectIdInterface_arginfo.h b/mongodb-2.1.4/src/BSON/ObjectIdInterface_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/BSON/ObjectIdInterface_arginfo.h
rename to mongodb-2.1.4/src/BSON/ObjectIdInterface_arginfo.h
diff --git a/mongodb-2.1.1/src/BSON/ObjectId_arginfo.h b/mongodb-2.1.4/src/BSON/ObjectId_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/BSON/ObjectId_arginfo.h
rename to mongodb-2.1.4/src/BSON/ObjectId_arginfo.h
diff --git a/mongodb-2.1.1/src/BSON/PackedArray.c b/mongodb-2.1.4/src/BSON/PackedArray.c
similarity index 100%
rename from mongodb-2.1.1/src/BSON/PackedArray.c
rename to mongodb-2.1.4/src/BSON/PackedArray.c
diff --git a/mongodb-2.1.1/src/BSON/PackedArray.h b/mongodb-2.1.4/src/BSON/PackedArray.h
similarity index 100%
rename from mongodb-2.1.1/src/BSON/PackedArray.h
rename to mongodb-2.1.4/src/BSON/PackedArray.h
diff --git a/mongodb-2.1.1/src/BSON/PackedArray_arginfo.h b/mongodb-2.1.4/src/BSON/PackedArray_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/BSON/PackedArray_arginfo.h
rename to mongodb-2.1.4/src/BSON/PackedArray_arginfo.h
diff --git a/mongodb-2.1.1/src/BSON/Persistable.c b/mongodb-2.1.4/src/BSON/Persistable.c
similarity index 100%
rename from mongodb-2.1.1/src/BSON/Persistable.c
rename to mongodb-2.1.4/src/BSON/Persistable.c
diff --git a/mongodb-2.1.1/src/BSON/Persistable_arginfo.h b/mongodb-2.1.4/src/BSON/Persistable_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/BSON/Persistable_arginfo.h
rename to mongodb-2.1.4/src/BSON/Persistable_arginfo.h
diff --git a/mongodb-2.1.1/src/BSON/Regex.c b/mongodb-2.1.4/src/BSON/Regex.c
similarity index 100%
rename from mongodb-2.1.1/src/BSON/Regex.c
rename to mongodb-2.1.4/src/BSON/Regex.c
diff --git a/mongodb-2.1.1/src/BSON/Regex.h b/mongodb-2.1.4/src/BSON/Regex.h
similarity index 100%
rename from mongodb-2.1.1/src/BSON/Regex.h
rename to mongodb-2.1.4/src/BSON/Regex.h
diff --git a/mongodb-2.1.1/src/BSON/RegexInterface.c b/mongodb-2.1.4/src/BSON/RegexInterface.c
similarity index 100%
rename from mongodb-2.1.1/src/BSON/RegexInterface.c
rename to mongodb-2.1.4/src/BSON/RegexInterface.c
diff --git a/mongodb-2.1.1/src/BSON/RegexInterface_arginfo.h b/mongodb-2.1.4/src/BSON/RegexInterface_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/BSON/RegexInterface_arginfo.h
rename to mongodb-2.1.4/src/BSON/RegexInterface_arginfo.h
diff --git a/mongodb-2.1.1/src/BSON/Regex_arginfo.h b/mongodb-2.1.4/src/BSON/Regex_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/BSON/Regex_arginfo.h
rename to mongodb-2.1.4/src/BSON/Regex_arginfo.h
diff --git a/mongodb-2.1.1/src/BSON/Serializable.c b/mongodb-2.1.4/src/BSON/Serializable.c
similarity index 100%
rename from mongodb-2.1.1/src/BSON/Serializable.c
rename to mongodb-2.1.4/src/BSON/Serializable.c
diff --git a/mongodb-2.1.1/src/BSON/Serializable_arginfo.h b/mongodb-2.1.4/src/BSON/Serializable_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/BSON/Serializable_arginfo.h
rename to mongodb-2.1.4/src/BSON/Serializable_arginfo.h
diff --git a/mongodb-2.1.1/src/BSON/Symbol.c b/mongodb-2.1.4/src/BSON/Symbol.c
similarity index 100%
rename from mongodb-2.1.1/src/BSON/Symbol.c
rename to mongodb-2.1.4/src/BSON/Symbol.c
diff --git a/mongodb-2.1.1/src/BSON/Symbol.h b/mongodb-2.1.4/src/BSON/Symbol.h
similarity index 100%
rename from mongodb-2.1.1/src/BSON/Symbol.h
rename to mongodb-2.1.4/src/BSON/Symbol.h
diff --git a/mongodb-2.1.1/src/BSON/Symbol_arginfo.h b/mongodb-2.1.4/src/BSON/Symbol_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/BSON/Symbol_arginfo.h
rename to mongodb-2.1.4/src/BSON/Symbol_arginfo.h
diff --git a/mongodb-2.1.1/src/BSON/Timestamp.c b/mongodb-2.1.4/src/BSON/Timestamp.c
similarity index 100%
rename from mongodb-2.1.1/src/BSON/Timestamp.c
rename to mongodb-2.1.4/src/BSON/Timestamp.c
diff --git a/mongodb-2.1.1/src/BSON/Timestamp.h b/mongodb-2.1.4/src/BSON/Timestamp.h
similarity index 100%
rename from mongodb-2.1.1/src/BSON/Timestamp.h
rename to mongodb-2.1.4/src/BSON/Timestamp.h
diff --git a/mongodb-2.1.1/src/BSON/TimestampInterface.c b/mongodb-2.1.4/src/BSON/TimestampInterface.c
similarity index 100%
rename from mongodb-2.1.1/src/BSON/TimestampInterface.c
rename to mongodb-2.1.4/src/BSON/TimestampInterface.c
diff --git a/mongodb-2.1.1/src/BSON/TimestampInterface_arginfo.h b/mongodb-2.1.4/src/BSON/TimestampInterface_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/BSON/TimestampInterface_arginfo.h
rename to mongodb-2.1.4/src/BSON/TimestampInterface_arginfo.h
diff --git a/mongodb-2.1.1/src/BSON/Timestamp_arginfo.h b/mongodb-2.1.4/src/BSON/Timestamp_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/BSON/Timestamp_arginfo.h
rename to mongodb-2.1.4/src/BSON/Timestamp_arginfo.h
diff --git a/mongodb-2.1.1/src/BSON/Type.c b/mongodb-2.1.4/src/BSON/Type.c
similarity index 100%
rename from mongodb-2.1.1/src/BSON/Type.c
rename to mongodb-2.1.4/src/BSON/Type.c
diff --git a/mongodb-2.1.1/src/BSON/Type_arginfo.h b/mongodb-2.1.4/src/BSON/Type_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/BSON/Type_arginfo.h
rename to mongodb-2.1.4/src/BSON/Type_arginfo.h
diff --git a/mongodb-2.1.1/src/BSON/UTCDateTime.c b/mongodb-2.1.4/src/BSON/UTCDateTime.c
similarity index 100%
rename from mongodb-2.1.1/src/BSON/UTCDateTime.c
rename to mongodb-2.1.4/src/BSON/UTCDateTime.c
diff --git a/mongodb-2.1.1/src/BSON/UTCDateTime.h b/mongodb-2.1.4/src/BSON/UTCDateTime.h
similarity index 100%
rename from mongodb-2.1.1/src/BSON/UTCDateTime.h
rename to mongodb-2.1.4/src/BSON/UTCDateTime.h
diff --git a/mongodb-2.1.1/src/BSON/UTCDateTimeInterface.c b/mongodb-2.1.4/src/BSON/UTCDateTimeInterface.c
similarity index 100%
rename from mongodb-2.1.1/src/BSON/UTCDateTimeInterface.c
rename to mongodb-2.1.4/src/BSON/UTCDateTimeInterface.c
diff --git a/mongodb-2.1.1/src/BSON/UTCDateTimeInterface_arginfo.h b/mongodb-2.1.4/src/BSON/UTCDateTimeInterface_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/BSON/UTCDateTimeInterface_arginfo.h
rename to mongodb-2.1.4/src/BSON/UTCDateTimeInterface_arginfo.h
diff --git a/mongodb-2.1.1/src/BSON/UTCDateTime_arginfo.h b/mongodb-2.1.4/src/BSON/UTCDateTime_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/BSON/UTCDateTime_arginfo.h
rename to mongodb-2.1.4/src/BSON/UTCDateTime_arginfo.h
diff --git a/mongodb-2.1.1/src/BSON/Undefined.c b/mongodb-2.1.4/src/BSON/Undefined.c
similarity index 100%
rename from mongodb-2.1.1/src/BSON/Undefined.c
rename to mongodb-2.1.4/src/BSON/Undefined.c
diff --git a/mongodb-2.1.1/src/BSON/Undefined_arginfo.h b/mongodb-2.1.4/src/BSON/Undefined_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/BSON/Undefined_arginfo.h
rename to mongodb-2.1.4/src/BSON/Undefined_arginfo.h
diff --git a/mongodb-2.1.1/src/BSON/Unserializable.c b/mongodb-2.1.4/src/BSON/Unserializable.c
similarity index 100%
rename from mongodb-2.1.1/src/BSON/Unserializable.c
rename to mongodb-2.1.4/src/BSON/Unserializable.c
diff --git a/mongodb-2.1.1/src/BSON/Unserializable_arginfo.h b/mongodb-2.1.4/src/BSON/Unserializable_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/BSON/Unserializable_arginfo.h
rename to mongodb-2.1.4/src/BSON/Unserializable_arginfo.h
diff --git a/mongodb-2.1.1/src/LIBMONGOCRYPT_VERSION_CURRENT b/mongodb-2.1.4/src/LIBMONGOCRYPT_VERSION_CURRENT
similarity index 100%
rename from mongodb-2.1.1/src/LIBMONGOCRYPT_VERSION_CURRENT
rename to mongodb-2.1.4/src/LIBMONGOCRYPT_VERSION_CURRENT
diff --git a/mongodb-2.1.4/src/LIBMONGOC_VERSION_CURRENT b/mongodb-2.1.4/src/LIBMONGOC_VERSION_CURRENT
new file mode 100644
index 00000000..8eead96f
--- /dev/null
+++ b/mongodb-2.1.4/src/LIBMONGOC_VERSION_CURRENT
@@ -0,0 +1 @@
+1.30.6
diff --git a/mongodb-2.1.1/src/MongoDB/BulkWrite.c b/mongodb-2.1.4/src/MongoDB/BulkWrite.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/BulkWrite.c
rename to mongodb-2.1.4/src/MongoDB/BulkWrite.c
diff --git a/mongodb-2.1.1/src/MongoDB/BulkWriteCommand.c b/mongodb-2.1.4/src/MongoDB/BulkWriteCommand.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/BulkWriteCommand.c
rename to mongodb-2.1.4/src/MongoDB/BulkWriteCommand.c
diff --git a/mongodb-2.1.1/src/MongoDB/BulkWriteCommand.h b/mongodb-2.1.4/src/MongoDB/BulkWriteCommand.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/BulkWriteCommand.h
rename to mongodb-2.1.4/src/MongoDB/BulkWriteCommand.h
diff --git a/mongodb-2.1.1/src/MongoDB/BulkWriteCommandResult.c b/mongodb-2.1.4/src/MongoDB/BulkWriteCommandResult.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/BulkWriteCommandResult.c
rename to mongodb-2.1.4/src/MongoDB/BulkWriteCommandResult.c
diff --git a/mongodb-2.1.1/src/MongoDB/BulkWriteCommandResult.h b/mongodb-2.1.4/src/MongoDB/BulkWriteCommandResult.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/BulkWriteCommandResult.h
rename to mongodb-2.1.4/src/MongoDB/BulkWriteCommandResult.h
diff --git a/mongodb-2.1.1/src/MongoDB/BulkWriteCommandResult_arginfo.h b/mongodb-2.1.4/src/MongoDB/BulkWriteCommandResult_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/BulkWriteCommandResult_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/BulkWriteCommandResult_arginfo.h
diff --git a/mongodb-2.1.1/src/MongoDB/BulkWriteCommand_arginfo.h b/mongodb-2.1.4/src/MongoDB/BulkWriteCommand_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/BulkWriteCommand_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/BulkWriteCommand_arginfo.h
diff --git a/mongodb-2.1.1/src/MongoDB/BulkWrite_arginfo.h b/mongodb-2.1.4/src/MongoDB/BulkWrite_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/BulkWrite_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/BulkWrite_arginfo.h
diff --git a/mongodb-2.1.1/src/MongoDB/ClientEncryption.c b/mongodb-2.1.4/src/MongoDB/ClientEncryption.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/ClientEncryption.c
rename to mongodb-2.1.4/src/MongoDB/ClientEncryption.c
diff --git a/mongodb-2.1.1/src/MongoDB/ClientEncryption.h b/mongodb-2.1.4/src/MongoDB/ClientEncryption.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/ClientEncryption.h
rename to mongodb-2.1.4/src/MongoDB/ClientEncryption.h
diff --git a/mongodb-2.1.1/src/MongoDB/ClientEncryption_arginfo.h b/mongodb-2.1.4/src/MongoDB/ClientEncryption_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/ClientEncryption_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/ClientEncryption_arginfo.h
diff --git a/mongodb-2.1.1/src/MongoDB/Command.c b/mongodb-2.1.4/src/MongoDB/Command.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Command.c
rename to mongodb-2.1.4/src/MongoDB/Command.c
diff --git a/mongodb-2.1.1/src/MongoDB/Command_arginfo.h b/mongodb-2.1.4/src/MongoDB/Command_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Command_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/Command_arginfo.h
diff --git a/mongodb-2.1.1/src/MongoDB/Cursor.c b/mongodb-2.1.4/src/MongoDB/Cursor.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Cursor.c
rename to mongodb-2.1.4/src/MongoDB/Cursor.c
diff --git a/mongodb-2.1.1/src/MongoDB/Cursor.h b/mongodb-2.1.4/src/MongoDB/Cursor.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Cursor.h
rename to mongodb-2.1.4/src/MongoDB/Cursor.h
diff --git a/mongodb-2.1.1/src/MongoDB/CursorInterface.c b/mongodb-2.1.4/src/MongoDB/CursorInterface.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/CursorInterface.c
rename to mongodb-2.1.4/src/MongoDB/CursorInterface.c
diff --git a/mongodb-2.1.1/src/MongoDB/CursorInterface_arginfo.h b/mongodb-2.1.4/src/MongoDB/CursorInterface_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/CursorInterface_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/CursorInterface_arginfo.h
diff --git a/mongodb-2.1.1/src/MongoDB/Cursor_arginfo.h b/mongodb-2.1.4/src/MongoDB/Cursor_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Cursor_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/Cursor_arginfo.h
diff --git a/mongodb-2.1.1/src/MongoDB/Exception/AuthenticationException.c b/mongodb-2.1.4/src/MongoDB/Exception/AuthenticationException.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Exception/AuthenticationException.c
rename to mongodb-2.1.4/src/MongoDB/Exception/AuthenticationException.c
diff --git a/mongodb-2.1.1/src/MongoDB/Exception/AuthenticationException_arginfo.h b/mongodb-2.1.4/src/MongoDB/Exception/AuthenticationException_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Exception/AuthenticationException_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/Exception/AuthenticationException_arginfo.h
diff --git a/mongodb-2.1.1/src/MongoDB/Exception/BulkWriteCommandException.c b/mongodb-2.1.4/src/MongoDB/Exception/BulkWriteCommandException.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Exception/BulkWriteCommandException.c
rename to mongodb-2.1.4/src/MongoDB/Exception/BulkWriteCommandException.c
diff --git a/mongodb-2.1.1/src/MongoDB/Exception/BulkWriteCommandException.h b/mongodb-2.1.4/src/MongoDB/Exception/BulkWriteCommandException.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Exception/BulkWriteCommandException.h
rename to mongodb-2.1.4/src/MongoDB/Exception/BulkWriteCommandException.h
diff --git a/mongodb-2.1.1/src/MongoDB/Exception/BulkWriteCommandException_arginfo.h b/mongodb-2.1.4/src/MongoDB/Exception/BulkWriteCommandException_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Exception/BulkWriteCommandException_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/Exception/BulkWriteCommandException_arginfo.h
diff --git a/mongodb-2.1.1/src/MongoDB/Exception/BulkWriteException.c b/mongodb-2.1.4/src/MongoDB/Exception/BulkWriteException.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Exception/BulkWriteException.c
rename to mongodb-2.1.4/src/MongoDB/Exception/BulkWriteException.c
diff --git a/mongodb-2.1.1/src/MongoDB/Exception/BulkWriteException_arginfo.h b/mongodb-2.1.4/src/MongoDB/Exception/BulkWriteException_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Exception/BulkWriteException_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/Exception/BulkWriteException_arginfo.h
diff --git a/mongodb-2.1.1/src/MongoDB/Exception/CommandException.c b/mongodb-2.1.4/src/MongoDB/Exception/CommandException.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Exception/CommandException.c
rename to mongodb-2.1.4/src/MongoDB/Exception/CommandException.c
diff --git a/mongodb-2.1.1/src/MongoDB/Exception/CommandException_arginfo.h b/mongodb-2.1.4/src/MongoDB/Exception/CommandException_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Exception/CommandException_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/Exception/CommandException_arginfo.h
diff --git a/mongodb-2.1.1/src/MongoDB/Exception/ConnectionException.c b/mongodb-2.1.4/src/MongoDB/Exception/ConnectionException.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Exception/ConnectionException.c
rename to mongodb-2.1.4/src/MongoDB/Exception/ConnectionException.c
diff --git a/mongodb-2.1.1/src/MongoDB/Exception/ConnectionException_arginfo.h b/mongodb-2.1.4/src/MongoDB/Exception/ConnectionException_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Exception/ConnectionException_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/Exception/ConnectionException_arginfo.h
diff --git a/mongodb-2.1.1/src/MongoDB/Exception/ConnectionTimeoutException.c b/mongodb-2.1.4/src/MongoDB/Exception/ConnectionTimeoutException.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Exception/ConnectionTimeoutException.c
rename to mongodb-2.1.4/src/MongoDB/Exception/ConnectionTimeoutException.c
diff --git a/mongodb-2.1.1/src/MongoDB/Exception/ConnectionTimeoutException_arginfo.h b/mongodb-2.1.4/src/MongoDB/Exception/ConnectionTimeoutException_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Exception/ConnectionTimeoutException_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/Exception/ConnectionTimeoutException_arginfo.h
diff --git a/mongodb-2.1.1/src/MongoDB/Exception/EncryptionException.c b/mongodb-2.1.4/src/MongoDB/Exception/EncryptionException.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Exception/EncryptionException.c
rename to mongodb-2.1.4/src/MongoDB/Exception/EncryptionException.c
diff --git a/mongodb-2.1.1/src/MongoDB/Exception/EncryptionException_arginfo.h b/mongodb-2.1.4/src/MongoDB/Exception/EncryptionException_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Exception/EncryptionException_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/Exception/EncryptionException_arginfo.h
diff --git a/mongodb-2.1.1/src/MongoDB/Exception/Exception.c b/mongodb-2.1.4/src/MongoDB/Exception/Exception.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Exception/Exception.c
rename to mongodb-2.1.4/src/MongoDB/Exception/Exception.c
diff --git a/mongodb-2.1.1/src/MongoDB/Exception/Exception_arginfo.h b/mongodb-2.1.4/src/MongoDB/Exception/Exception_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Exception/Exception_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/Exception/Exception_arginfo.h
diff --git a/mongodb-2.1.1/src/MongoDB/Exception/ExecutionTimeoutException.c b/mongodb-2.1.4/src/MongoDB/Exception/ExecutionTimeoutException.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Exception/ExecutionTimeoutException.c
rename to mongodb-2.1.4/src/MongoDB/Exception/ExecutionTimeoutException.c
diff --git a/mongodb-2.1.1/src/MongoDB/Exception/ExecutionTimeoutException_arginfo.h b/mongodb-2.1.4/src/MongoDB/Exception/ExecutionTimeoutException_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Exception/ExecutionTimeoutException_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/Exception/ExecutionTimeoutException_arginfo.h
diff --git a/mongodb-2.1.1/src/MongoDB/Exception/InvalidArgumentException.c b/mongodb-2.1.4/src/MongoDB/Exception/InvalidArgumentException.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Exception/InvalidArgumentException.c
rename to mongodb-2.1.4/src/MongoDB/Exception/InvalidArgumentException.c
diff --git a/mongodb-2.1.1/src/MongoDB/Exception/InvalidArgumentException_arginfo.h b/mongodb-2.1.4/src/MongoDB/Exception/InvalidArgumentException_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Exception/InvalidArgumentException_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/Exception/InvalidArgumentException_arginfo.h
diff --git a/mongodb-2.1.1/src/MongoDB/Exception/LogicException.c b/mongodb-2.1.4/src/MongoDB/Exception/LogicException.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Exception/LogicException.c
rename to mongodb-2.1.4/src/MongoDB/Exception/LogicException.c
diff --git a/mongodb-2.1.1/src/MongoDB/Exception/LogicException_arginfo.h b/mongodb-2.1.4/src/MongoDB/Exception/LogicException_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Exception/LogicException_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/Exception/LogicException_arginfo.h
diff --git a/mongodb-2.1.1/src/MongoDB/Exception/RuntimeException.c b/mongodb-2.1.4/src/MongoDB/Exception/RuntimeException.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Exception/RuntimeException.c
rename to mongodb-2.1.4/src/MongoDB/Exception/RuntimeException.c
diff --git a/mongodb-2.1.1/src/MongoDB/Exception/RuntimeException_arginfo.h b/mongodb-2.1.4/src/MongoDB/Exception/RuntimeException_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Exception/RuntimeException_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/Exception/RuntimeException_arginfo.h
diff --git a/mongodb-2.1.1/src/MongoDB/Exception/ServerException.c b/mongodb-2.1.4/src/MongoDB/Exception/ServerException.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Exception/ServerException.c
rename to mongodb-2.1.4/src/MongoDB/Exception/ServerException.c
diff --git a/mongodb-2.1.1/src/MongoDB/Exception/ServerException_arginfo.h b/mongodb-2.1.4/src/MongoDB/Exception/ServerException_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Exception/ServerException_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/Exception/ServerException_arginfo.h
diff --git a/mongodb-2.1.1/src/MongoDB/Exception/UnexpectedValueException.c b/mongodb-2.1.4/src/MongoDB/Exception/UnexpectedValueException.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Exception/UnexpectedValueException.c
rename to mongodb-2.1.4/src/MongoDB/Exception/UnexpectedValueException.c
diff --git a/mongodb-2.1.1/src/MongoDB/Exception/UnexpectedValueException_arginfo.h b/mongodb-2.1.4/src/MongoDB/Exception/UnexpectedValueException_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Exception/UnexpectedValueException_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/Exception/UnexpectedValueException_arginfo.h
diff --git a/mongodb-2.1.1/src/MongoDB/Manager.c b/mongodb-2.1.4/src/MongoDB/Manager.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Manager.c
rename to mongodb-2.1.4/src/MongoDB/Manager.c
diff --git a/mongodb-2.1.1/src/MongoDB/Manager_arginfo.h b/mongodb-2.1.4/src/MongoDB/Manager_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Manager_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/Manager_arginfo.h
diff --git a/mongodb-2.1.1/src/MongoDB/Monitoring/CommandFailedEvent.c b/mongodb-2.1.4/src/MongoDB/Monitoring/CommandFailedEvent.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Monitoring/CommandFailedEvent.c
rename to mongodb-2.1.4/src/MongoDB/Monitoring/CommandFailedEvent.c
diff --git a/mongodb-2.1.1/src/MongoDB/Monitoring/CommandFailedEvent_arginfo.h b/mongodb-2.1.4/src/MongoDB/Monitoring/CommandFailedEvent_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Monitoring/CommandFailedEvent_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/Monitoring/CommandFailedEvent_arginfo.h
diff --git a/mongodb-2.1.1/src/MongoDB/Monitoring/CommandStartedEvent.c b/mongodb-2.1.4/src/MongoDB/Monitoring/CommandStartedEvent.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Monitoring/CommandStartedEvent.c
rename to mongodb-2.1.4/src/MongoDB/Monitoring/CommandStartedEvent.c
diff --git a/mongodb-2.1.1/src/MongoDB/Monitoring/CommandStartedEvent_arginfo.h b/mongodb-2.1.4/src/MongoDB/Monitoring/CommandStartedEvent_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Monitoring/CommandStartedEvent_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/Monitoring/CommandStartedEvent_arginfo.h
diff --git a/mongodb-2.1.1/src/MongoDB/Monitoring/CommandSubscriber.c b/mongodb-2.1.4/src/MongoDB/Monitoring/CommandSubscriber.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Monitoring/CommandSubscriber.c
rename to mongodb-2.1.4/src/MongoDB/Monitoring/CommandSubscriber.c
diff --git a/mongodb-2.1.1/src/MongoDB/Monitoring/CommandSubscriber_arginfo.h b/mongodb-2.1.4/src/MongoDB/Monitoring/CommandSubscriber_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Monitoring/CommandSubscriber_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/Monitoring/CommandSubscriber_arginfo.h
diff --git a/mongodb-2.1.1/src/MongoDB/Monitoring/CommandSucceededEvent.c b/mongodb-2.1.4/src/MongoDB/Monitoring/CommandSucceededEvent.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Monitoring/CommandSucceededEvent.c
rename to mongodb-2.1.4/src/MongoDB/Monitoring/CommandSucceededEvent.c
diff --git a/mongodb-2.1.1/src/MongoDB/Monitoring/CommandSucceededEvent_arginfo.h b/mongodb-2.1.4/src/MongoDB/Monitoring/CommandSucceededEvent_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Monitoring/CommandSucceededEvent_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/Monitoring/CommandSucceededEvent_arginfo.h
diff --git a/mongodb-2.1.1/src/MongoDB/Monitoring/LogSubscriber.c b/mongodb-2.1.4/src/MongoDB/Monitoring/LogSubscriber.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Monitoring/LogSubscriber.c
rename to mongodb-2.1.4/src/MongoDB/Monitoring/LogSubscriber.c
diff --git a/mongodb-2.1.1/src/MongoDB/Monitoring/LogSubscriber_arginfo.h b/mongodb-2.1.4/src/MongoDB/Monitoring/LogSubscriber_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Monitoring/LogSubscriber_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/Monitoring/LogSubscriber_arginfo.h
diff --git a/mongodb-2.1.1/src/MongoDB/Monitoring/SDAMSubscriber.c b/mongodb-2.1.4/src/MongoDB/Monitoring/SDAMSubscriber.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Monitoring/SDAMSubscriber.c
rename to mongodb-2.1.4/src/MongoDB/Monitoring/SDAMSubscriber.c
diff --git a/mongodb-2.1.1/src/MongoDB/Monitoring/SDAMSubscriber_arginfo.h b/mongodb-2.1.4/src/MongoDB/Monitoring/SDAMSubscriber_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Monitoring/SDAMSubscriber_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/Monitoring/SDAMSubscriber_arginfo.h
diff --git a/mongodb-2.1.1/src/MongoDB/Monitoring/ServerChangedEvent.c b/mongodb-2.1.4/src/MongoDB/Monitoring/ServerChangedEvent.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Monitoring/ServerChangedEvent.c
rename to mongodb-2.1.4/src/MongoDB/Monitoring/ServerChangedEvent.c
diff --git a/mongodb-2.1.1/src/MongoDB/Monitoring/ServerChangedEvent_arginfo.h b/mongodb-2.1.4/src/MongoDB/Monitoring/ServerChangedEvent_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Monitoring/ServerChangedEvent_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/Monitoring/ServerChangedEvent_arginfo.h
diff --git a/mongodb-2.1.1/src/MongoDB/Monitoring/ServerClosedEvent.c b/mongodb-2.1.4/src/MongoDB/Monitoring/ServerClosedEvent.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Monitoring/ServerClosedEvent.c
rename to mongodb-2.1.4/src/MongoDB/Monitoring/ServerClosedEvent.c
diff --git a/mongodb-2.1.1/src/MongoDB/Monitoring/ServerClosedEvent_arginfo.h b/mongodb-2.1.4/src/MongoDB/Monitoring/ServerClosedEvent_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Monitoring/ServerClosedEvent_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/Monitoring/ServerClosedEvent_arginfo.h
diff --git a/mongodb-2.1.1/src/MongoDB/Monitoring/ServerHeartbeatFailedEvent.c b/mongodb-2.1.4/src/MongoDB/Monitoring/ServerHeartbeatFailedEvent.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Monitoring/ServerHeartbeatFailedEvent.c
rename to mongodb-2.1.4/src/MongoDB/Monitoring/ServerHeartbeatFailedEvent.c
diff --git a/mongodb-2.1.1/src/MongoDB/Monitoring/ServerHeartbeatFailedEvent_arginfo.h b/mongodb-2.1.4/src/MongoDB/Monitoring/ServerHeartbeatFailedEvent_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Monitoring/ServerHeartbeatFailedEvent_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/Monitoring/ServerHeartbeatFailedEvent_arginfo.h
diff --git a/mongodb-2.1.1/src/MongoDB/Monitoring/ServerHeartbeatStartedEvent.c b/mongodb-2.1.4/src/MongoDB/Monitoring/ServerHeartbeatStartedEvent.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Monitoring/ServerHeartbeatStartedEvent.c
rename to mongodb-2.1.4/src/MongoDB/Monitoring/ServerHeartbeatStartedEvent.c
diff --git a/mongodb-2.1.1/src/MongoDB/Monitoring/ServerHeartbeatStartedEvent_arginfo.h b/mongodb-2.1.4/src/MongoDB/Monitoring/ServerHeartbeatStartedEvent_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Monitoring/ServerHeartbeatStartedEvent_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/Monitoring/ServerHeartbeatStartedEvent_arginfo.h
diff --git a/mongodb-2.1.1/src/MongoDB/Monitoring/ServerHeartbeatSucceededEvent.c b/mongodb-2.1.4/src/MongoDB/Monitoring/ServerHeartbeatSucceededEvent.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Monitoring/ServerHeartbeatSucceededEvent.c
rename to mongodb-2.1.4/src/MongoDB/Monitoring/ServerHeartbeatSucceededEvent.c
diff --git a/mongodb-2.1.1/src/MongoDB/Monitoring/ServerHeartbeatSucceededEvent_arginfo.h b/mongodb-2.1.4/src/MongoDB/Monitoring/ServerHeartbeatSucceededEvent_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Monitoring/ServerHeartbeatSucceededEvent_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/Monitoring/ServerHeartbeatSucceededEvent_arginfo.h
diff --git a/mongodb-2.1.1/src/MongoDB/Monitoring/ServerOpeningEvent.c b/mongodb-2.1.4/src/MongoDB/Monitoring/ServerOpeningEvent.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Monitoring/ServerOpeningEvent.c
rename to mongodb-2.1.4/src/MongoDB/Monitoring/ServerOpeningEvent.c
diff --git a/mongodb-2.1.1/src/MongoDB/Monitoring/ServerOpeningEvent_arginfo.h b/mongodb-2.1.4/src/MongoDB/Monitoring/ServerOpeningEvent_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Monitoring/ServerOpeningEvent_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/Monitoring/ServerOpeningEvent_arginfo.h
diff --git a/mongodb-2.1.1/src/MongoDB/Monitoring/Subscriber.c b/mongodb-2.1.4/src/MongoDB/Monitoring/Subscriber.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Monitoring/Subscriber.c
rename to mongodb-2.1.4/src/MongoDB/Monitoring/Subscriber.c
diff --git a/mongodb-2.1.1/src/MongoDB/Monitoring/Subscriber_arginfo.h b/mongodb-2.1.4/src/MongoDB/Monitoring/Subscriber_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Monitoring/Subscriber_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/Monitoring/Subscriber_arginfo.h
diff --git a/mongodb-2.1.1/src/MongoDB/Monitoring/TopologyChangedEvent.c b/mongodb-2.1.4/src/MongoDB/Monitoring/TopologyChangedEvent.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Monitoring/TopologyChangedEvent.c
rename to mongodb-2.1.4/src/MongoDB/Monitoring/TopologyChangedEvent.c
diff --git a/mongodb-2.1.1/src/MongoDB/Monitoring/TopologyChangedEvent_arginfo.h b/mongodb-2.1.4/src/MongoDB/Monitoring/TopologyChangedEvent_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Monitoring/TopologyChangedEvent_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/Monitoring/TopologyChangedEvent_arginfo.h
diff --git a/mongodb-2.1.1/src/MongoDB/Monitoring/TopologyClosedEvent.c b/mongodb-2.1.4/src/MongoDB/Monitoring/TopologyClosedEvent.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Monitoring/TopologyClosedEvent.c
rename to mongodb-2.1.4/src/MongoDB/Monitoring/TopologyClosedEvent.c
diff --git a/mongodb-2.1.1/src/MongoDB/Monitoring/TopologyClosedEvent_arginfo.h b/mongodb-2.1.4/src/MongoDB/Monitoring/TopologyClosedEvent_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Monitoring/TopologyClosedEvent_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/Monitoring/TopologyClosedEvent_arginfo.h
diff --git a/mongodb-2.1.1/src/MongoDB/Monitoring/TopologyOpeningEvent.c b/mongodb-2.1.4/src/MongoDB/Monitoring/TopologyOpeningEvent.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Monitoring/TopologyOpeningEvent.c
rename to mongodb-2.1.4/src/MongoDB/Monitoring/TopologyOpeningEvent.c
diff --git a/mongodb-2.1.1/src/MongoDB/Monitoring/TopologyOpeningEvent_arginfo.h b/mongodb-2.1.4/src/MongoDB/Monitoring/TopologyOpeningEvent_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Monitoring/TopologyOpeningEvent_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/Monitoring/TopologyOpeningEvent_arginfo.h
diff --git a/mongodb-2.1.1/src/MongoDB/Monitoring/functions.c b/mongodb-2.1.4/src/MongoDB/Monitoring/functions.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Monitoring/functions.c
rename to mongodb-2.1.4/src/MongoDB/Monitoring/functions.c
diff --git a/mongodb-2.1.1/src/MongoDB/Query.c b/mongodb-2.1.4/src/MongoDB/Query.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Query.c
rename to mongodb-2.1.4/src/MongoDB/Query.c
diff --git a/mongodb-2.1.1/src/MongoDB/Query.h b/mongodb-2.1.4/src/MongoDB/Query.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Query.h
rename to mongodb-2.1.4/src/MongoDB/Query.h
diff --git a/mongodb-2.1.1/src/MongoDB/Query_arginfo.h b/mongodb-2.1.4/src/MongoDB/Query_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Query_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/Query_arginfo.h
diff --git a/mongodb-2.1.1/src/MongoDB/ReadConcern.c b/mongodb-2.1.4/src/MongoDB/ReadConcern.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/ReadConcern.c
rename to mongodb-2.1.4/src/MongoDB/ReadConcern.c
diff --git a/mongodb-2.1.1/src/MongoDB/ReadConcern.h b/mongodb-2.1.4/src/MongoDB/ReadConcern.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/ReadConcern.h
rename to mongodb-2.1.4/src/MongoDB/ReadConcern.h
diff --git a/mongodb-2.1.1/src/MongoDB/ReadConcern_arginfo.h b/mongodb-2.1.4/src/MongoDB/ReadConcern_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/ReadConcern_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/ReadConcern_arginfo.h
diff --git a/mongodb-2.1.1/src/MongoDB/ReadPreference.c b/mongodb-2.1.4/src/MongoDB/ReadPreference.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/ReadPreference.c
rename to mongodb-2.1.4/src/MongoDB/ReadPreference.c
diff --git a/mongodb-2.1.1/src/MongoDB/ReadPreference.h b/mongodb-2.1.4/src/MongoDB/ReadPreference.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/ReadPreference.h
rename to mongodb-2.1.4/src/MongoDB/ReadPreference.h
diff --git a/mongodb-2.1.1/src/MongoDB/ReadPreference_arginfo.h b/mongodb-2.1.4/src/MongoDB/ReadPreference_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/ReadPreference_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/ReadPreference_arginfo.h
diff --git a/mongodb-2.1.1/src/MongoDB/Server.c b/mongodb-2.1.4/src/MongoDB/Server.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Server.c
rename to mongodb-2.1.4/src/MongoDB/Server.c
diff --git a/mongodb-2.1.1/src/MongoDB/Server.h b/mongodb-2.1.4/src/MongoDB/Server.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Server.h
rename to mongodb-2.1.4/src/MongoDB/Server.h
diff --git a/mongodb-2.1.1/src/MongoDB/ServerApi.c b/mongodb-2.1.4/src/MongoDB/ServerApi.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/ServerApi.c
rename to mongodb-2.1.4/src/MongoDB/ServerApi.c
diff --git a/mongodb-2.1.1/src/MongoDB/ServerApi_arginfo.h b/mongodb-2.1.4/src/MongoDB/ServerApi_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/ServerApi_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/ServerApi_arginfo.h
diff --git a/mongodb-2.1.1/src/MongoDB/ServerDescription.c b/mongodb-2.1.4/src/MongoDB/ServerDescription.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/ServerDescription.c
rename to mongodb-2.1.4/src/MongoDB/ServerDescription.c
diff --git a/mongodb-2.1.1/src/MongoDB/ServerDescription.h b/mongodb-2.1.4/src/MongoDB/ServerDescription.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/ServerDescription.h
rename to mongodb-2.1.4/src/MongoDB/ServerDescription.h
diff --git a/mongodb-2.1.1/src/MongoDB/ServerDescription_arginfo.h b/mongodb-2.1.4/src/MongoDB/ServerDescription_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/ServerDescription_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/ServerDescription_arginfo.h
diff --git a/mongodb-2.1.1/src/MongoDB/Server_arginfo.h b/mongodb-2.1.4/src/MongoDB/Server_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Server_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/Server_arginfo.h
diff --git a/mongodb-2.1.1/src/MongoDB/Session.c b/mongodb-2.1.4/src/MongoDB/Session.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Session.c
rename to mongodb-2.1.4/src/MongoDB/Session.c
diff --git a/mongodb-2.1.1/src/MongoDB/Session.h b/mongodb-2.1.4/src/MongoDB/Session.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Session.h
rename to mongodb-2.1.4/src/MongoDB/Session.h
diff --git a/mongodb-2.1.1/src/MongoDB/Session_arginfo.h b/mongodb-2.1.4/src/MongoDB/Session_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/Session_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/Session_arginfo.h
diff --git a/mongodb-2.1.1/src/MongoDB/TopologyDescription.c b/mongodb-2.1.4/src/MongoDB/TopologyDescription.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/TopologyDescription.c
rename to mongodb-2.1.4/src/MongoDB/TopologyDescription.c
diff --git a/mongodb-2.1.1/src/MongoDB/TopologyDescription.h b/mongodb-2.1.4/src/MongoDB/TopologyDescription.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/TopologyDescription.h
rename to mongodb-2.1.4/src/MongoDB/TopologyDescription.h
diff --git a/mongodb-2.1.1/src/MongoDB/TopologyDescription_arginfo.h b/mongodb-2.1.4/src/MongoDB/TopologyDescription_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/TopologyDescription_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/TopologyDescription_arginfo.h
diff --git a/mongodb-2.1.1/src/MongoDB/WriteConcern.c b/mongodb-2.1.4/src/MongoDB/WriteConcern.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/WriteConcern.c
rename to mongodb-2.1.4/src/MongoDB/WriteConcern.c
diff --git a/mongodb-2.1.1/src/MongoDB/WriteConcern.h b/mongodb-2.1.4/src/MongoDB/WriteConcern.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/WriteConcern.h
rename to mongodb-2.1.4/src/MongoDB/WriteConcern.h
diff --git a/mongodb-2.1.1/src/MongoDB/WriteConcernError.c b/mongodb-2.1.4/src/MongoDB/WriteConcernError.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/WriteConcernError.c
rename to mongodb-2.1.4/src/MongoDB/WriteConcernError.c
diff --git a/mongodb-2.1.1/src/MongoDB/WriteConcernError.h b/mongodb-2.1.4/src/MongoDB/WriteConcernError.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/WriteConcernError.h
rename to mongodb-2.1.4/src/MongoDB/WriteConcernError.h
diff --git a/mongodb-2.1.1/src/MongoDB/WriteConcernError_arginfo.h b/mongodb-2.1.4/src/MongoDB/WriteConcernError_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/WriteConcernError_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/WriteConcernError_arginfo.h
diff --git a/mongodb-2.1.1/src/MongoDB/WriteConcern_arginfo.h b/mongodb-2.1.4/src/MongoDB/WriteConcern_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/WriteConcern_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/WriteConcern_arginfo.h
diff --git a/mongodb-2.1.1/src/MongoDB/WriteError.c b/mongodb-2.1.4/src/MongoDB/WriteError.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/WriteError.c
rename to mongodb-2.1.4/src/MongoDB/WriteError.c
diff --git a/mongodb-2.1.1/src/MongoDB/WriteError.h b/mongodb-2.1.4/src/MongoDB/WriteError.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/WriteError.h
rename to mongodb-2.1.4/src/MongoDB/WriteError.h
diff --git a/mongodb-2.1.1/src/MongoDB/WriteError_arginfo.h b/mongodb-2.1.4/src/MongoDB/WriteError_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/WriteError_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/WriteError_arginfo.h
diff --git a/mongodb-2.1.1/src/MongoDB/WriteResult.c b/mongodb-2.1.4/src/MongoDB/WriteResult.c
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/WriteResult.c
rename to mongodb-2.1.4/src/MongoDB/WriteResult.c
diff --git a/mongodb-2.1.1/src/MongoDB/WriteResult.h b/mongodb-2.1.4/src/MongoDB/WriteResult.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/WriteResult.h
rename to mongodb-2.1.4/src/MongoDB/WriteResult.h
diff --git a/mongodb-2.1.1/src/MongoDB/WriteResult_arginfo.h b/mongodb-2.1.4/src/MongoDB/WriteResult_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/MongoDB/WriteResult_arginfo.h
rename to mongodb-2.1.4/src/MongoDB/WriteResult_arginfo.h
diff --git a/mongodb-2.1.1/src/contrib/php_array_api.h b/mongodb-2.1.4/src/contrib/php_array_api.h
similarity index 99%
rename from mongodb-2.1.1/src/contrib/php_array_api.h
rename to mongodb-2.1.4/src/contrib/php_array_api.h
index 5a973375..5e88c5c7 100644
--- a/mongodb-2.1.1/src/contrib/php_array_api.h
+++ b/mongodb-2.1.4/src/contrib/php_array_api.h
@@ -1,512 +1,512 @@
/* +----------------------------------------------------------------------+
| PHP Version 7 |
+----------------------------------------------------------------------+
| Copyright (c) 1997-2018 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
| available through the world-wide-web at the following url: |
| http://www.php.net/license/3_01.txt |
| If you did not receive a copy of the PHP license and are unable to |
| obtain it through the world-wide-web, please send a note to |
| license@php.net so we can mail you a copy immediately. |
+----------------------------------------------------------------------+
| Author: Sara Golemon (pollita@php.net) |
+----------------------------------------------------------------------+
*/
#ifndef PHP_ARRAY_API_H
#define PHP_ARRAY_API_H
#include "zend.h"
#include "zend_execute.h"
#include "zend_API.h"
#include "zend_operators.h"
#include "zend_hash.h"
#include "zend_list.h"
/**
* All APIs in this file follow a general format:
*
* php_array_{$verb}{$modifier}_{$type}(zval *zarr, ...)
*
* $verb is one of:
* exists - Boolean check whether the array offset exists
* fetch - Retrieve the value at $zarr[$key]
* unset - Delete the named offset from the array
*
* $modifier specifies what type of offset (key) is being used:
* <no modifer> - NULL terminated string variable, unknown length
* l - NULL terminated string variable, known length
* l_safe - String variable of known length, not necessarily NULL terminated
* n - Long (integer) offset
* c - NULL terminated string literal (e.g. "foo" rather than foo)
* z - zval* offset, type should be NULL, BOOL, LONG, DOUBLE, or STRING
*
* $type is specific to the "fetch" verb:
* <no type> - Fetch a zval* of any type
* bool - Fetch a zend_bool (converting as needed)
* long - Fetch a long (converting as needed)
* double - Fetch a double (converting as needed)
* string - Fetch a string (converting as needed, caller may need to free)
* array - Fetch an array (no conversion from other types)
* object - Fetch an object (no conversion, type spec optional)
* resource - Fetch a resource (no conversion, type spec mandatory)
*
* See the specific subsection for additional details
*/
/* isset($zarr[$key]) - Check for the existence of a key within an array
*
* zend_bool php_array_exists(zval *zarr, const char *key)
* zend_bool php_array_existsc(zval *zarr, const char *litstr)
* zend_bool php_array_existsl(zval *zarr, const char *key, int key_len)
* zend_bool php_array_existsl_safe(zval *zarr, const char *key, int key_len)
* zend_bool php_array_existsn(zval *zarr, unsigned long idx)
* zend_bool php_array_existsz(zval *zarr, zval *key)
*/
static inline
zend_bool php_array_exists(zval *zarr, const char *key) {
return zend_symtable_str_exists(Z_ARRVAL_P(zarr), key, strlen(key));
}
#define php_array_existsc(zarr, litstr) \
zend_symtable_str_exists(Z_ARRVAL_P(zarr), litstr, sizeof(litstr) - 1)
#define php_array_existsl(zarr, key, len) \
zend_symtable_str_exists(Z_ARRVAL_P(zarr), key, len)
static inline
zend_bool php_array_existsl_safe(zval *zarr, const char *key, int key_len) {
zend_string *keystr = zend_string_init(key, key_len, 0);
zend_bool ret = zend_symtable_exists(Z_ARRVAL_P(zarr), keystr);
zend_string_release(keystr);
return ret;
}
#define php_array_existsn(zarr, idx) \
zend_hash_index_exists(Z_ARRVAL_P(zarr), idx)
static inline
zend_bool php_array_existsz(zval *zarr, zval *key) {
switch (Z_TYPE_P(key)) {
case IS_NULL:
return php_array_existsc(zarr, "");
case IS_FALSE:
return zend_hash_index_exists(Z_ARRVAL_P(zarr), 0);
case IS_TRUE:
return zend_hash_index_exists(Z_ARRVAL_P(zarr), 1);
case IS_LONG:
return zend_hash_index_exists(Z_ARRVAL_P(zarr), Z_LVAL_P(key));
case IS_DOUBLE:
return zend_hash_index_exists(Z_ARRVAL_P(zarr),
zend_dval_to_lval(Z_DVAL_P(key)));
case IS_STRING:
return php_array_existsl(zarr, Z_STRVAL_P(key), Z_STRLEN_P(key));
default:
return 0;
}
}
/* =$zarr[$key] - Fetch a zval (or appropriate type) from an array
*
* Methods returning pointers yield NULL on key not existing,
* others yield 0, false, etc... as appropriate.
* Callers needing to distinguish empty scalars from non-existent
* scalars should use php_array_exists*() or fetch the zval then convert.
*
* If the type of the value does not match what is requested
* it will be implicitly converted (if possible).
*
* See each type section for specific prototypes
*
* php_array_fetch* - Fetch a zval
* php_array_fetch*_bool - Fetch a boolean
* php_array_fetch*_long - Fetch a long
* php_array_fetch*_double - Fetch a double
* php_array_fetch*_string - Fetch a string (must be efree()'d by caller)
* php_array_fetch*_array - Fetch an array
* php_array_fetch*_resource - Fetch a resource or a specific type
* php_array_fetch*_object - Fetch an object
*
* For each result type, there are six key forms:
* php_array_fetch_T(zval *zarr, const char *key, ...)
* NULL terminated string key
* php_array_fetchc_T(zval *zarr, const char *litkey, ...)
* String literal key
* php_array_fetchl_T(zval *zarr, const char *key, int key_len, ...)
* NULL terminated string key of known length
* php_array_fetchl_safe_T(zval *zarr, const char *key, int key_len, ...)
* String key of known length, may not be NULL terminated
* php_array_fetchn_T(zval *zarr, unsigned long idx, ...)
* Numeric key
* php_array_fetchz_T(zval *zarr, zval *key, ...)
* zval* key
*/
/* Fetch zval*
*
* zval *php_array_fetch(zval *zarr, const char *key)
* zval *php_array_fetchl(zval *zarr, const char *key, int key_len)
* zval *php_array_fetchl_safe(zval *zarr, const char *key, int key_len)
* zval *php_array_fetchn(zval *zarr, unsigned long idx)
* zval *php_array_fetchc(zval *zarr, const char *litstr)
* zval *php_array_fetchz(zval *zarr, zval *key)
*/
static inline
zval *php_array_fetchl(zval *zarr, const char *key, int key_len) {
return zend_symtable_str_find(Z_ARRVAL_P(zarr), key, key_len);
}
static inline
zval *php_array_fetch(zval *zarr, const char *key) {
return php_array_fetchl(zarr, key, strlen(key));
}
#define php_array_fetchc(zarr, litstr) php_array_fetchl(zarr, litstr, sizeof(litstr)-1)
static inline
zval *php_array_fetchl_safe(zval *zarr, const char *key, int key_len) {
zend_string *keystr = zend_string_init(key, key_len, 0);
zval *ret = zend_symtable_find(Z_ARRVAL_P(zarr), keystr);
zend_string_release(keystr);
return ret;
}
static inline
zval *php_array_fetchn(zval *zarr, zend_ulong idx) {
return zend_hash_index_find(Z_ARRVAL_P(zarr), idx);
}
static inline
zval *php_array_fetchz(zval *zarr, zval *key) {
switch (Z_TYPE_P(key)) {
case IS_NULL:
case IS_FALSE:
return php_array_fetchn(zarr, 0);
case IS_TRUE:
return php_array_fetchn(zarr, 1);
case IS_LONG:
return php_array_fetchn(zarr, Z_LVAL_P(key));
case IS_DOUBLE:
return php_array_fetchn(zarr, (zend_ulong) Z_DVAL_P(key));
case IS_STRING:
return php_array_fetchl(zarr, Z_STRVAL_P(key), Z_STRLEN_P(key));
default:
return NULL;
}
}
static inline zval* zval_deref_safe(zval* z) {
if (z) { ZVAL_DEREF(z); }
return z;
}
/* Fetch zval*, resolving references
*
* zval *php_array_fetch_deref(zval *zarr, const char *key)
* zval *php_array_fetchl_deref(zval *zarr, const char *key, int key_len)
* zval *php_array_fetchl_safe_deref(zval *zarr, const char *key, int key_len)
* zval *php_array_fetchn_deref(zval *zarr, unsigned long idx)
* zval *php_array_fetchc_deref(zval *zarr, const char *litstr)
* zval *php_array_fetchz_deref(zval *zarr, zval *key)
*/
static inline
zval *php_array_fetchl_deref(zval *zarr, const char *key, int key_len) {
return zval_deref_safe(php_array_fetchl(zarr, key, key_len));
}
static inline
zval *php_array_fetch_deref(zval *zarr, const char *key) {
return zval_deref_safe(php_array_fetch(zarr, key));
}
#define php_array_fetchc_deref(zarr, litstr) zval_deref_safe(php_array_fetchl(zarr, litstr, sizeof(litstr)-1))
static inline
zval *php_array_fetchl_safe_deref(zval *zarr, const char *key, int key_len) {
return zval_deref_safe(php_array_fetchl_safe(zarr, key, key_len));
}
static inline
zval *php_array_fetchn_deref(zval *zarr, zend_ulong idx) {
return zval_deref_safe(php_array_fetchn(zarr, idx));
}
static inline
zval *php_array_fetchz_deref(zval *zarr, zval *key) {
return zval_deref_safe(php_array_fetchz(zarr, key));
}
#define PHP_ARRAY_FETCH_TYPE_MAP(ctype, ztype) \
static inline ctype php_array_fetch_##ztype(zval *zarr, const char *key) \
{ return php_array_zval_to_##ztype(php_array_fetch_deref(zarr, key)); } \
static inline ctype php_array_fetchl_##ztype(zval *zarr, const char *key, int key_len) \
{ return php_array_zval_to_##ztype(php_array_fetchl_deref(zarr, key, key_len)); } \
static inline ctype php_array_fetchl_safe_##ztype(zval *zarr, const char *key, int key_len) \
{ return php_array_zval_to_##ztype(php_array_fetchl_safe_deref(zarr, key, key_len)); } \
static inline ctype php_array_fetchn_##ztype(zval *zarr, zend_ulong idx) \
{ return php_array_zval_to_##ztype(php_array_fetchn_deref(zarr, idx)); } \
static inline ctype php_array_fetchz_##ztype(zval *zarr, zval *key) \
{ return php_array_zval_to_##ztype(php_array_fetchz_deref(zarr, key)); }
/* Fetch zend_bool
*
* zend_bool php_array_fetch_bool(zval *zarr, const char *key)
* zend_bool php_array_fetchl_bool(zval *zarr, const char *key, int key_len)
* zend_bool php_array_fetchl_safe_bool(zval *zarr, const char *key, int key_len)
* zend_bool php_array_fetchn_bool(zval *zarr, unsigned long idx)
* zend_bool php_array_fetchc_bool(zval *zarr, const char *litstr)
* zend_bool php_array_fetchz_bool(zval *zarr, zval *key)
*/
static inline
zend_bool php_array_zval_to_bool(zval *z) {
return z && zend_is_true(z);
}
PHP_ARRAY_FETCH_TYPE_MAP(zend_bool, bool)
#define php_array_fetchc_bool(zarr, litstr) \
php_array_zval_to_bool(php_array_fetchc_deref(zarr, litstr))
/* Fetch long
*
* long php_array_fetch_long(zval *zarr, const char *key)
* long php_array_fetchl_long(zval *zarr, const char *key, int key_len)
* long php_array_fetchl_safe_long(zval *zarr, const char *key, int key_len)
* long php_array_fetchn_long(zval *zarr, unsigned long idx)
* long php_array_fetchc_long(zval *zarr, const char *litstr)
* long php_array_fetchz_long(zval *zarr, zval *key)
*/
static inline
zend_long php_array_zval_to_long(zval *z) {
if (!z) { return 0; }
switch(Z_TYPE_P(z)) {
case IS_NULL:
case IS_FALSE:
return 0;
case IS_TRUE:
return 1;
case IS_LONG:
return Z_LVAL_P(z);
default:
{
zval c = *z;
zval_copy_ctor(&c);
convert_to_long(&c);
return Z_LVAL(c);
}
}
}
PHP_ARRAY_FETCH_TYPE_MAP(zend_long, long)
#define php_array_fetchc_long(zarr, litstr) \
php_array_zval_to_long(php_array_fetchc_deref(zarr, litstr))
/* Fetch double
*
* double php_array_fetch_double(zval *zarr, const char *key)
* double php_array_fetchl_double(zval *zarr, const char *key, int key_len)
* double php_array_fetchl_safe_double(zval *zarr, const char *key, int key_len)
* double php_array_fetchn_double(zval *zarr, unsigned long idx)
* double php_array_fetchc_double(zval *zarr, const char *litstr)
* double php_array_fetchz_double(zval *zarr, zval *key)
*/
static inline
double php_array_zval_to_double(zval *z) {
if (!z) { return 0.0; }
switch (Z_TYPE_P(z)) {
case IS_NULL:
case IS_FALSE:
return 0.0;
case IS_TRUE:
return 1.0;
case IS_LONG:
return (double) Z_LVAL_P(z);
case IS_DOUBLE:
return Z_DVAL_P(z);
default:
{
zval c = *z;
zval_copy_ctor(&c);
convert_to_double(&c);
return Z_DVAL(c);
}
}
}
PHP_ARRAY_FETCH_TYPE_MAP(double, double)
#define php_array_fetchc_double(zarr, litstr) \
php_array_zval_to_double(php_array_fetchc_deref(zarr, litstr))
/* Fetch string
*
* If the pfree is set to 1 on exit, then the return value is owned by the caller
* and must be efree()'d once it is no longer in use.
*
* plen is populated with the binary safe length of the string returned.
*
* char *php_array_fetch_string(zval *zarr, const char *key, int *plen, zend_bool *pfree)
* char *php_array_fetchl_string(zval *zarr, const char *key, int key_len, int *plen, zend_bool *pfree)
* char *php_array_fetchl_safe_string(zval *zarr, const char *key, int key_len, int *plen, zend_bool *pfree)
* char *php_array_fetchn_string(zval *zarr, unsigned long idx, int *plen, zend_bool *pfree)
* char *php_array_fetchc_string(zval *zarr, const char *litstr, int *plen, zend_bool *pfree)
* char *php_array_fetchz_string(zval *zarr, zval *key, int *plen, zend_bool *pfree)
*/
static inline
char *php_array_zval_to_string(zval *z, int *plen, zend_bool *pfree) {
*plen = 0;
*pfree = 0;
if (!z) { return NULL; }
switch (Z_TYPE_P(z)) {
case IS_NULL:
return (char *) "";
case IS_STRING:
*plen = Z_STRLEN_P(z);
return Z_STRVAL_P(z);
default:
{
zval c = *z;
zval_copy_ctor(&c);
convert_to_string(&c);
- *pfree = ! IS_INTERNED(Z_STR(c));
+ *pfree = ! ZSTR_IS_INTERNED(Z_STR(c));
*plen = Z_STRLEN(c);
return Z_STRVAL(c);
}
}
}
#define php_array_fetch_string(zarr, key, plen, pfree) \
php_array_zval_to_string(php_array_fetch_deref(zarr, key), plen, pfree)
#define php_array_fetchl_string(zarr, key, key_len, plen, pfree) \
php_array_zval_to_string(php_array_fetchl_deref(zarr, key, key_len), plen, pfree)
#define php_array_fetchl_safe_string(zarr, key, key_len, plen, pfree) \
php_array_zval_to_string(php_array_fetchl_safe_deref(zarr, key, key_le), plen, pfree)
#define php_array_fetchn_string(zarr, idx, plen, pfree) \
php_array_zval_to_string(php_array_fetchn_deref(zarr, idx), plen, pfree)
#define php_array_fetchc_string(zarr, litstr, plen, pfree) \
php_array_zval_to_string(php_array_fetchc_deref(zarr, litstr), plen, pfree)
#define php_array_fetchz_string(zarr, key, plen, pfree) \
php_array_zval_to_string(php_array_fetchz_deref(zarr, key), plen, pfree)
/* Fetch array
*
* No implicit conversion is performed.
*
* If the value is an array, then that zval is returned,
* otherwise NULL is returned.
*
* zval *php_array_fetch_array(zval *zarr, const char *key)
* zval *php_array_fetchl_array(zval *zarr, const char *key, int key_len)
* zval *php_array_fetchl_safe_array(zval *zarr, const char *key, int key_len)
* zval *php_array_fetchn_array(zval *zarr, unsigned long idx)
* zval *php_array_fetchc_array(zval *zarr, const char *litstr)
* zval *php_array_fetchz_array(zval *zarr, zval *key)
*/
static inline zval *php_array_zval_to_array(zval *zarr) {
return zarr && Z_TYPE_P(zarr) == IS_ARRAY ? zarr : NULL;
}
PHP_ARRAY_FETCH_TYPE_MAP(zval*, array)
#define php_array_fetchc_array(zarr, litstr) \
php_array_zval_to_array(php_array_fetchc_deref(zarr, litstr))
/* count($arr) - Count number of elements in the array
*
* int php_array_count(zval *arr)
*/
#define php_array_count(zarr) zend_hash_num_elements(Z_ARRVAL_P(zarr))
/* Fetch resource
*
* No implicit conversion is performed.
*
* If the value is a resource of the named type,
* then the pointer for it is returned,
* otherwise NULL is returned.
*
* To test for multiple resource types (e.g. 'stream' and 'persistent stream')
* Fetch a generic zval* and use Zend's ZEND_FETCH_RESOURCE() macro.
*
* zval *php_array_fetch_resource(zval *zarr, const char *key, int le)
* zval *php_array_fetchl_resource(zval *zarr, const char *key, int key_len, int le)
* zval *php_array_fetchl_safe_resource(zval *zarr, const char *key, int key_len, int le)
* zval *php_array_fetchn_resource(zval *zarr, unsigned long idx, int le)
* zval *php_array_fetchc_resource(zval *zarr, const char *litstr, int le)
* zval *php_array_fetchz_resource(zval *zarr, zval *key, int le)
*/
static inline
void *php_array_zval_to_resource(zval *z, int le) {
return zend_fetch_resource_ex(z, NULL, le);
}
#define php_array_fetch_resource(zarr, key, le) \
php_array_zval_to_resource(php_array_fetch_deref(zarr, key), le)
#define php_array_fetchl_resource(zarr, key, key_len, le) \
php_array_zval_to_resource(php_array_fetchl_deref(zarr, key, key_len), le)
#define php_array_fetchl_safe_resource(zarr, key, key_len, le) \
php_array_zval_to_resource(php_array_fetchl_safe_deref(zarr, key, key_len), le)
#define php_array_fetchn_resource(zarr, idx, le) \
php_array_zval_to_resource(php_array_fetchn_deref(zarr, idx), le)
#define php_array_fetchc_resource(zarr, litstr, le) \
php_array_zval_to_resource(php_array_fetchc_deref(zarr, litstr), le)
#define php_array_fetchz_resource(zarr, key, le) \
php_array_zval_to_resource(php_array_fetchz_deref(zarr, key), le)
/* Fetch Object
*
* Fetch an object of a specific or non-specific type (pass ce == NULL)
*
* No implicit conversion is performed
*
* zval *php_array_fetch_object(zval *zarr, const char *key, zend_class_entry *ce)
* zval *php_array_fetchl_object(zval *zarr, const char *key, int key_len, zend_class_entry *ce)
* zval *php_array_fetchl_safe_object(zval *zarr, const char *key, int key_len, zend_class_entry *ce)
* zval *php_array_fetchn_object(zval *zarr, unsigned long idx, zend_class_entry *ce)
* zval *php_array_fetchc_object(zval *zarr, const char *litstr, zend_class_entry *ce)
* zval *php_array_fetchz_object(zval *zarr, zval *key, zend_class_entry *ce)
*/
static inline
zval *php_array_zval_to_object(zval *z, zend_class_entry *ce) {
if (!z || Z_TYPE_P(z) != IS_OBJECT) { return NULL; }
return (!ce) || instanceof_function(Z_OBJCE_P(z), ce) ? z : NULL;
}
#define php_array_fetch_object(zarr, key, ce) \
php_array_zval_to_object(php_array_fetch_deref(zarr, key), ce)
#define php_array_fetchl_object(zarr, key, len, ce) \
php_array_zval_to_object(php_array_fetchl_deref(zarr, key, len), ce)
#define php_array_fetchl_safe_object(zarr, key, len, ce) \
php_array_zval_to_object(php_array_fetchl_safe_deref(zarr, key, len), ce)
#define php_array_fetchn_object(zarr, idx, ce) \
php_array_zval_to_object(php_array_fetchn_deref(zarr, idx), ce)
#define php_array_fetchc_object(zarr, litstr, ce) \
php_array_zval_to_object(php_array_fetchc_deref(zarr, litstr), ce)
#define php_array_fetchz_object(zarr, key, ce) \
php_array_zval_to_object(php_array_fetchz_deref(zarr, key), ce)
/* unset($zarr[$key]) - Erase a key from an array
*
* void php_array_unset(zval *zarr, const char *key)
* void php_array_unsetl(zval *zarr, const char *key, int key_len)
* void php_array_unsetl_safe(zval *zarr, const char *key, int key_len)
* void php_array_unsetn(zval *zarr, long idx)
* void php_array_unsetc(zval *zarr, const char *litstr)
* void php_array_unsetz(zval *zarr, zval *key)
*/
static inline
void php_array_unset(zval *zarr, const char *key) {
zend_symtable_str_del(Z_ARRVAL_P(zarr), key, strlen(key));
}
#define php_array_unsetl(zarr, key, len) \
zend_symtable_str_del(Z_ARRVAL_P(zarr), key, len)
static inline
void php_array_unsetl_safe(zval *zarr, const char *key, int key_len) {
char *k = estrndup(key, key_len);
zend_symtable_str_del(Z_ARRVAL_P(zarr), k, key_len);
efree(k);
}
#define php_array_unsetn(zarr, idx) \
zend_symtable_index_del(Z_ARRVAL_P(zarr), idx)
#define php_array_unsetc(zarr, litstr) \
zend_symtable_str_del(Z_ARRVAL_P(zarr), litstr, sizeof(litstr) - 1)
static inline void php_array_unsetz(zval *zarr, zval *key) {
switch (Z_TYPE_P(key)) {
case IS_NULL:
case IS_FALSE:
zend_hash_index_del(Z_ARRVAL_P(zarr), 0);
return;
case IS_TRUE:
zend_hash_index_del(Z_ARRVAL_P(zarr), 1);
return;
case IS_LONG:
zend_hash_index_del(Z_ARRVAL_P(zarr), Z_LVAL_P(key));
return;
case IS_DOUBLE:
zend_hash_index_del(Z_ARRVAL_P(zarr), (zend_ulong) Z_DVAL_P(key));
break;
case IS_STRING:
php_array_unsetl(zarr, Z_STRVAL_P(key), Z_STRLEN_P(key));
break;
}
}
#endif /* PHP_ARRAY_API_H */
diff --git a/mongodb-2.1.1/src/functions_arginfo.h b/mongodb-2.1.4/src/functions_arginfo.h
similarity index 100%
rename from mongodb-2.1.1/src/functions_arginfo.h
rename to mongodb-2.1.4/src/functions_arginfo.h
diff --git a/mongodb-2.1.4/src/libmongoc/VERSION_CURRENT b/mongodb-2.1.4/src/libmongoc/VERSION_CURRENT
new file mode 100644
index 00000000..8eead96f
--- /dev/null
+++ b/mongodb-2.1.4/src/libmongoc/VERSION_CURRENT
@@ -0,0 +1 @@
+1.30.6
diff --git a/mongodb-2.1.1/src/libmongoc/src/common/src/common-atomic-private.h b/mongodb-2.1.4/src/libmongoc/src/common/src/common-atomic-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/common/src/common-atomic-private.h
rename to mongodb-2.1.4/src/libmongoc/src/common/src/common-atomic-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/common/src/common-atomic.c b/mongodb-2.1.4/src/libmongoc/src/common/src/common-atomic.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/common/src/common-atomic.c
rename to mongodb-2.1.4/src/libmongoc/src/common/src/common-atomic.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/common/src/common-b64-private.h b/mongodb-2.1.4/src/libmongoc/src/common/src/common-b64-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/common/src/common-b64-private.h
rename to mongodb-2.1.4/src/libmongoc/src/common/src/common-b64-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/common/src/common-b64.c b/mongodb-2.1.4/src/libmongoc/src/common/src/common-b64.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/common/src/common-b64.c
rename to mongodb-2.1.4/src/libmongoc/src/common/src/common-b64.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/common/src/common-bits-private.h b/mongodb-2.1.4/src/libmongoc/src/common/src/common-bits-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/common/src/common-bits-private.h
rename to mongodb-2.1.4/src/libmongoc/src/common/src/common-bits-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/common/src/common-bson-dsl-private.h b/mongodb-2.1.4/src/libmongoc/src/common/src/common-bson-dsl-private.h
similarity index 99%
rename from mongodb-2.1.1/src/libmongoc/src/common/src/common-bson-dsl-private.h
rename to mongodb-2.1.4/src/libmongoc/src/common/src/common-bson-dsl-private.h
index 0e13a56f..f87d67bc 100644
--- a/mongodb-2.1.1/src/libmongoc/src/common/src/common-bson-dsl-private.h
+++ b/mongodb-2.1.4/src/libmongoc/src/common/src/common-bson-dsl-private.h
@@ -1,1284 +1,1284 @@
#include <common-prelude.h>
#ifndef MONGO_C_DRIVER_COMMON_BSON_DSL_PRIVATE_H
#define MONGO_C_DRIVER_COMMON_BSON_DSL_PRIVATE_H
/**
* @file common-bson-dsl-private.h
* @brief Define a C-preprocessor DSL for working with BSON objects
*
* This file defines an embedded DSL for working with BSON objects consisely and
* correctly.
*
* For more information about using this DSL, refer to `bson-dsl.md`.
*/
#include <bson/bson.h>
#include <common-cmp-private.h>
enum {
/// Toggle this value to enable/disable debug output for all bsonDSL
/// operations (printed to stderr). You can also set a constant
/// BSON_DSL_DEBUG within the scope of a DSL command to selectively debug
/// only the commands within that scope.
BSON_DSL_DEBUG = 0
};
#define _bson_thread_local BSON_IF_GNU_LIKE (__thread) BSON_IF_MSVC (__declspec (thread))
#define _bson_comdat \
BSON_IF_WINDOWS (__declspec (selectany)) \
BSON_IF_POSIX (__attribute__ ((weak)))
#ifdef __GNUC__
// GCC has a bug handling pragma statements that disable warnings within complex
// nested macro expansions. If we're GCC, just disable -Wshadow outright:
BSON_IF_GNU_LIKE (_Pragma ("GCC diagnostic ignored \"-Wshadow\""))
#endif
#define _bsonDSL_disableWarnings() \
if (1) { \
BSON_IF_GNU_LIKE (_Pragma ("GCC diagnostic push");) \
BSON_IF_GNU_LIKE (_Pragma ("GCC diagnostic ignored \"-Wshadow\"");) \
} else \
((void) 0)
#define _bsonDSL_restoreWarnings() \
if (1) { \
BSON_IF_GNU_LIKE (_Pragma ("GCC diagnostic pop");) \
} else \
((void) 0)
/**
* @brief Parse the given BSON document.
*
* @param doc A bson_t object to walk. (Not a pointer)
*/
#define bsonParse(Document, ...) \
_bsonDSL_begin ("bsonParse(%s)", _bsonDSL_str (Document)); \
_bsonDSL_disableWarnings (); \
bsonParseError = NULL; \
BSON_MAYBE_UNUSED bool _bvHalt = false; \
BSON_MAYBE_UNUSED const bool _bvContinue = false; \
BSON_MAYBE_UNUSED const bool _bvBreak = false; \
_bsonDSL_eval (_bsonParse ((Document), __VA_ARGS__)); \
_bsonDSL_restoreWarnings (); \
_bsonDSL_end
/**
* @brief Visit each element of a BSON document
*/
#define bsonVisitEach(Document, ...) \
_bsonDSL_begin ("bsonVisitEach(%s)", _bsonDSL_str (Document)); \
_bsonDSL_disableWarnings (); \
BSON_MAYBE_UNUSED bool _bvHalt = false; \
_bsonDSL_eval (_bsonVisitEach ((Document), __VA_ARGS__)); \
_bsonDSL_restoreWarnings (); \
_bsonDSL_end
#define bsonBuildContext (*_bsonBuildContextThreadLocalPtr)
#define bsonVisitContext (*_bsonVisitContextThreadLocalPtr)
#define bsonVisitIter (bsonVisitContext.iter)
/// Begin any function-like macro by opening a new scope and writing a debug
/// message.
#define _bsonDSL_begin(Str, ...) \
if (true) { \
_bsonDSLDebug (Str, __VA_ARGS__); \
++_bson_dsl_indent
/// End a function-like macro scope.
#define _bsonDSL_end \
--_bson_dsl_indent; \
} \
else ((void) 0)
/**
* @brief Expands to a call to bson_append_{Kind}, with the three first
* arguments filled in by the DSL context variables.
*/
#define _bsonBuildAppendArgs bsonBuildContext.doc, bsonBuildContext.key, bsonBuildContext.key_len
/**
* The _bsonDocOperation_XYZ macros handle the top-level bsonBuild()
* items, and any nested doc() items, with XYZ being the doc-building
* subcommand.
*/
#define _bsonDocOperation(Command, _ignore, _count) \
if (!bsonBuildError) { \
_bsonDocOperation_##Command; \
if (bsonBuildError) { \
_bsonDSLDebug ("Stopping doc() due to bsonBuildError: [%s]", bsonBuildError); \
} \
}
#define _bsonValueOperation(P) _bsonValueOperation_##P
/// key-value pair with explicit key length
#define _bsonDocOperation_kvl(String, Len, Element) \
_bsonDSL_begin ("\"%s\" => [%s]", String, _bsonDSL_strElide (30, Element)); \
const char *_bbString = (String); \
const uint64_t length = (Len); \
if (mcommon_in_range_unsigned (int, length)) { \
_bbCtx.key = _bbString; \
_bbCtx.key_len = (int) length; \
_bsonValueOperation (Element); \
} else { \
bsonBuildError = "Out-of-range key string length value"; \
} \
_bsonDSL_end
/// Key-value pair with a C-string
#define _bsonDocOperation_kv(String, Element) _bsonDocOperation_kvl ((String), strlen ((String)), Element)
/// Execute arbitrary code
#define _bsonDocOperation_do(...) \
_bsonDSL_begin ("do(%s)", _bsonDSL_strElide (30, __VA_ARGS__)); \
do { \
__VA_ARGS__; \
} while (0); \
if (bsonBuildError) { \
_bsonDSLDebug ("do() set bsonBuildError: [%s]", bsonBuildError); \
} \
_bsonDSL_end
/// We must defer expansion of the nested doc() to allow "recursive" evaluation
#define _bsonValueOperation_doc _bsonValueOperationDeferred_doc _bsonDSL_nothing ()
#define _bsonArrayOperation_doc(...) _bsonArrayAppendValue (doc (__VA_ARGS__))
#define _bsonValueOperationDeferred_doc(...) \
_bsonDSL_begin ("doc(%s)", _bsonDSL_strElide (30, __VA_ARGS__)); \
/* Write to this variable as the child: */ \
bson_t _bbChildDoc = BSON_INITIALIZER; \
if (!bson_append_document_begin (_bsonBuildAppendArgs, &_bbChildDoc)) { \
bsonBuildError = "Error while initializing child document: " _bsonDSL_str (__VA_ARGS__); \
} else { \
_bsonBuildAppend (_bbChildDoc, __VA_ARGS__); \
if (!bsonBuildError) { \
if (!bson_append_document_end (bsonBuildContext.doc, &_bbChildDoc)) { \
bsonBuildError = "Error while finalizing document: " _bsonDSL_str (__VA_ARGS__); \
} \
} \
} \
_bsonDSL_end
/// We must defer expansion of the nested array() to allow "recursive"
/// evaluation
#define _bsonValueOperation_array _bsonValueOperationDeferred_array _bsonDSL_nothing ()
#define _bsonArrayOperation_array(...) _bsonArrayAppendValue (array (__VA_ARGS__))
#define _bsonValueOperationDeferred_array(...) \
_bsonDSL_begin ("array(%s)", _bsonDSL_strElide (30, __VA_ARGS__)); \
/* Write to this variable as the child array: */ \
bson_t _bbArray = BSON_INITIALIZER; \
if (!bson_append_array_begin (_bsonBuildAppendArgs, &_bbArray)) { \
bsonBuildError = "Error while initializing child array: " _bsonDSL_str (__VA_ARGS__); \
} else { \
_bsonBuildArray (_bbArray, __VA_ARGS__); \
if (!bsonBuildError) { \
if (!bson_append_array_end (bsonBuildContext.doc, &_bbArray)) { \
bsonBuildError = "Error while finalizing child array: " _bsonDSL_str (__VA_ARGS__); \
} \
} else { \
_bsonDSLDebug ("Got bsonBuildError: [%s]", bsonBuildError); \
} \
} \
_bsonDSL_end
/// Append a UTF-8 string with an explicit length
#define _bsonValueOperation_utf8_w_len(String, Len) \
if (!bson_append_utf8 (_bsonBuildAppendArgs, (String), (int) (Len))) { \
bsonBuildError = "Error while appending utf8 string: " _bsonDSL_str (String); \
} else \
((void) 0)
#define _bsonArrayOperation_utf8_w_len(X) _bsonArrayAppendValue (utf8_w_len (X))
/// Append a "cstr" as UTF-8
#define _bsonValueOperation_cstr(String) _bsonValueOperation_utf8_w_len ((String), strlen (String))
#define _bsonArrayOperation_cstr(X) _bsonArrayAppendValue (cstr (X))
/// Append an int32
#define _bsonValueOperation_int32(Integer) \
if (!bson_append_int32 (_bsonBuildAppendArgs, (Integer))) { \
bsonBuildError = "Error while appending int32(" _bsonDSL_str (Integer) ")"; \
} else \
((void) 0)
#define _bsonArrayOperation_int32(X) _bsonArrayAppendValue (int32 (X))
/// Append an int64
#define _bsonValueOperation_int64(Integer) \
if (!bson_append_int64 (_bsonBuildAppendArgs, (Integer))) { \
bsonBuildError = "Error while appending int64(" _bsonDSL_str (Integer) ")"; \
} else \
((void) 0)
#define _bsonArrayOperation_int64(X) _bsonArrayAppendValue (int64 (X))
/// Append the value referenced by a given iterator
#define _bsonValueOperation_iterValue(Iter) \
if (!bson_append_iter (_bsonBuildAppendArgs, &(Iter))) { \
bsonBuildError = "Error while appending iterValue(" _bsonDSL_str (Iter) ")"; \
} else \
((void) 0)
#define _bsonArrayOperation_iterValue(X) _bsonArrayAppendValue (iterValue (X))
/// Append the BSON document referenced by the given pointer
#define _bsonValueOperation_bson(Doc) \
if (!bson_append_document (_bsonBuildAppendArgs, &(Doc))) { \
bsonBuildError = "Error while appending subdocument: bson(" _bsonDSL_str (Doc) ")"; \
} else \
((void) 0)
#define _bsonArrayOperation_bson(X) _bsonArrayAppendValue (bson (X))
/// Append the BSON document referenced by the given pointer as an array
#define _bsonValueOperation_bsonArray(Arr) \
if (!bson_append_array (_bsonBuildAppendArgs, &(Arr))) { \
bsonBuildError = "Error while appending subdocument array: " \
"bsonArray(" _bsonDSL_str (Arr) ")"; \
} else \
((void) 0)
#define _bsonArrayOperation_bsonArray(X) _bsonArrayAppendValue (bsonArray (X))
#define _bsonValueOperation_bool(b) \
if (!bson_append_bool (_bsonBuildAppendArgs, (b))) { \
bsonBuildError = "Error while appending bool(" _bsonDSL_str (b) ")"; \
} else \
((void) 0)
#define _bsonArrayOperation_boolean(X) _bsonArrayAppendValue (boolean (X))
#define _bsonValueOperation_boolean(b) _bsonValueOperation_bool (b)
#define _bsonValueOperation_oid(o) \
if (!bson_append_oid (_bsonBuildAppendArgs, (o))) { \
bsonBuildError = "Error while appending oid(" _bsonDSL_str (o) ")"; \
} else \
((void) 0)
#define _bsonArrayOperation_oid(X) _bsonArrayAppendValue (oid (X))
#define _bsonValueOperation_null \
if (!bson_append_null (_bsonBuildAppendArgs)) { \
bsonBuildError = "Error while appending a null"; \
} else \
((void) 0)
#define _bsonArrayOperation_null _bsonValueOperation (null)
#define _bsonArrayOperation_value(X) _bsonArrayAppendValue (value (X))
#define _bsonValueOperation_value(Value) \
_bsonDSL_begin ("value(%s)", _bsonDSL_str (Value)); \
if (!bson_append_value (_bsonBuildAppendArgs, &(Value))) { \
bsonBuildError = "Error while appending value(" _bsonDSL_str (Value) ")"; \
} \
_bsonDSL_end
/// Insert the given BSON document into the parent document in-place
#define _bsonDocOperation_insert(OtherBSON, Pred) \
_bsonDSL_begin ("Insert other document: [%s]", _bsonDSL_str (OtherBSON)); \
const bool _bvHalt = false; /* Required for _bsonVisitEach() */ \
_bsonVisitEach (OtherBSON, if (Pred, then (do (_bsonDocOperation_iterElement (bsonVisitIter))))); \
_bsonDSL_end
#define _bsonDocOperation_insertFromIter(Iter, Pred) \
_bsonDSL_begin ("Insert document from iterator: [%s]", _bsonDSL_str (Iter)); \
bson_t _bbDocFromIter = _bson_dsl_iter_as_doc (&(Iter)); \
if (_bbDocFromIter.len == 0) { \
_bsonDSLDebug ("NOTE: Skipping insert of non-document value from iterator"); \
} else { \
_bsonDocOperation_insert (_bbDocFromIter, Pred); \
} \
_bsonDSL_end
#define _bsonDocOperation_iterElement(Iter) \
_bsonDSL_begin ("Insert element from bson_iter_t [%s]", _bsonDSL_str (Iter)); \
bson_iter_t _bbIter = (Iter); \
_bsonDocOperation_kvl (bson_iter_key (&_bbIter), bson_iter_key_len (&_bbIter), iterValue (_bbIter)); \
_bsonDSL_end
/// Insert the given BSON document into the parent array. Keys of the given
/// document are discarded and it is treated as an array of values.
#define _bsonArrayOperation_insert(OtherArr, Pred) \
_bsonDSL_begin ("Insert other array: [%s]", _bsonDSL_str (OtherArr)); \
_bsonVisitEach (OtherArr, if (Pred, then (do (_bsonArrayOperation_iterValue (bsonVisitIter))))); \
_bsonDSL_end
#define _bsonArrayAppendValue(ValueOperation) \
_bsonDSL_begin ("[%d] => [%s]", (int) bsonBuildContext.index, _bsonDSL_strElide (30, ValueOperation)); \
/* Set the doc key to the array index as a string: */ \
_bsonBuild_setKeyToArrayIndex (bsonBuildContext.index); \
/* Append a value: */ \
_bsonValueOperation_##ValueOperation; \
/* Increment the array index: */ \
++_bbCtx.index; \
_bsonDSL_end
#define _bsonDocOperationIfThen_then _bsonBuildAppendWithCurrentContext
#define _bsonDocOperationIfElse_else _bsonBuildAppendWithCurrentContext
#define _bsonDocOperationIfThenElse(Condition, Then, Else) \
if ((Condition)) { \
_bsonDSLDebug ("Taking TRUE branch: [%s]", _bsonDSL_str (Then)); \
_bsonDocOperationIfThen_##Then; \
} else { \
_bsonDSLDebug ("Taking FALSE branch: [%s]", _bsonDSL_str (Else)); \
_bsonDocOperationIfElse_##Else; \
}
#define _bsonDocOperationIfThen(Condition, Then) \
if ((Condition)) { \
_bsonDSLDebug ("Taking TRUE branch: [%s]", _bsonDSL_str (Then)); \
_bsonDocOperationIfThen_##Then; \
}
#define _bsonDocOperation_if(Condition, ...) \
_bsonDSL_begin ("Conditional append on [%s]", _bsonDSL_str (Condition)); \
/* Pick a sub-macro depending on if there are one or two args */ \
_bsonDSL_ifElse (_bsonDSL_hasComma (__VA_ARGS__), _bsonDocOperationIfThenElse, _bsonDocOperationIfThen) ( \
Condition, __VA_ARGS__); \
_bsonDSL_end
#define _bsonArrayOperationIfThen_then _bsonBuildArrayWithCurrentContext
#define _bsonArrayOperationIfElse_else _bsonBuildArrayWithCurrentContext
#define _bsonArrayOperationIfThenElse(Condition, Then, Else) \
if ((Condition)) { \
_bsonDSLDebug ("Taking TRUE branch: [%s]", _bsonDSL_str (Then)); \
_bsonArrayOperationIfThen_##Then; \
} else { \
_bsonDSLDebug ("Taking FALSE branch: [%s]", _bsonDSL_str (Else)); \
_bsonArrayOperationIfElse_##Else; \
}
#define _bsonArrayOperationIfThen(Condition, Then) \
if ((Condition)) { \
_bsonDSLDebug ("Taking TRUE branch: [%s]", _bsonDSL_str (Then)); \
_bsonArrayOperationIfThen_##Then; \
}
#define _bsonArrayOperation_if(Condition, ...) \
_bsonDSL_begin ("Conditional value on [%s]", _bsonDSL_str (Condition)); \
/* Pick a sub-macro depending on if there are one or two args */ \
_bsonDSL_ifElse (_bsonDSL_hasComma (__VA_ARGS__), _bsonArrayOperationIfThenElse, _bsonArrayOperationIfThen) ( \
Condition, __VA_ARGS__); \
_bsonDSL_end
#define _bsonValueOperationIf_then(X) _bsonValueOperation_##X
#define _bsonValueOperationIf_else(X) _bsonValueOperation_##X
#define _bsonValueOperation_if(Condition, Then, Else) \
if ((Condition)) { \
_bsonDSLDebug ("Taking TRUE branch: [%s]", _bsonDSL_str (Then)); \
_bsonValueOperationIf_##Then; \
} else { \
_bsonDSLDebug ("Taking FALSE branch: [%s]", _bsonDSL_str (Else)); \
_bsonValueOperationIf_##Else; \
}
#define _bsonBuild_setKeyToArrayIndex(Idx) \
_bbCtx.key_len = bson_snprintf (_bbCtx.index_key_str, sizeof _bbCtx.index_key_str, "%d", (int) _bbCtx.index); \
_bbCtx.key = _bbCtx.index_key_str
/// Handle an element of array()
#define _bsonArrayOperation(Element, _nil, _count) \
if (!bsonBuildError) { \
_bsonArrayOperation_##Element; \
}
#define _bsonBuildAppendWithCurrentContext(...) _bsonDSL_mapMacro (_bsonDocOperation, ~, __VA_ARGS__)
#define _bsonBuildArrayWithCurrentContext(...) _bsonDSL_mapMacro (_bsonArrayOperation, ~, __VA_ARGS__)
#define _bsonDSL_Type_double BSON_TYPE_DOUBLE
#define _bsonDSL_Type_utf8 BSON_TYPE_UTF8
#define _bsonDSL_Type_doc BSON_TYPE_DOCUMENT
#define _bsonDSL_Type_array BSON_TYPE_ARRAY
#define _bsonDSL_Type_binary BSON_TYPE_BINARY
#define _bsonDSL_Type_undefined BSON_TYPE_UNDEFINED
#define _bsonDSL_Type_oid BSON_TYPE_OID
// Use `boolean`, not `bool`. `bool` may be defined as a macro to `_Bool` or `int`:
#define _bsonDSL_Type_boolean BSON_TYPE_BOOL
#define _bsonDSL_Type_date_time BSON_TYPE_DATE_TIME
#define _bsonDSL_Type_null BSON_TYPE_NULL
#define _bsonDSL_Type_regex BSON_TYPE_REGEX
#define _bsonDSL_Type_dbpointer BSON_TYPE_DBPOINTER
#define _bsonDSL_Type_code BSON_TYPE_CODE
#define _bsonDSL_Type_codewscope BSON_TYPE_CODEWSCOPE
#define _bsonDSL_Type_int32 BSON_TYPE_INT32
#define _bsonDSL_Type_timestamp BSON_TYPE_TIMESTAMP
#define _bsonDSL_Type_int64 BSON_TYPE_INT64
#define _bsonDSL_Type_decimal128 BSON_TYPE_DECIMAL128
#define _bsonDSL_Type_string __NOTE__No_type_named__string__did_you_mean__utf8
#define _bsonVisitOperation_halt _bvHalt = true
#define _bsonVisitOperation_if(Predicate, ...) \
_bsonDSL_begin ("if(%s)", _bsonDSL_str (Predicate)); \
_bsonDSL_ifElse (_bsonDSL_hasComma (__VA_ARGS__), _bsonVisit_ifThenElse, _bsonVisit_ifThen) (Predicate, \
__VA_ARGS__); \
_bsonDSL_end
#define _bsonVisit_ifThenElse(Predicate, Then, Else) \
if (bsonPredicate (Predicate)) { \
_bsonDSLDebug ("then:"); \
_bsonVisit_ifThen_##Then; \
} else { \
_bsonDSLDebug ("else:"); \
_bsonVisit_ifElse_##Else; \
}
#define _bsonVisit_ifThen(Predicate, Then) \
if (bsonPredicate (Predicate)) { \
_bsonDSLDebug ("then:"); \
_bsonVisit_ifThen_##Then; \
} else { \
_bsonDSLDebug ("[else nothing]"); \
}
#define _bsonVisit_ifThen_then _bsonVisit_applyOps
#define _bsonVisit_ifElse_else _bsonVisit_applyOps
#define _bsonVisitOperation_storeBool(Dest) \
_bsonDSL_begin ("storeBool(%s)", _bsonDSL_str (Dest)); \
(Dest) = bson_iter_as_bool (&bsonVisitIter); \
_bsonDSL_end
#define _bsonVisitOperation_storeStrRef(Dest) \
_bsonDSL_begin ("storeStrRef(%s)", _bsonDSL_str (Dest)); \
(Dest) = bson_iter_utf8 (&bsonVisitIter, NULL); \
_bsonDSL_end
#define _bsonVisitOperation_storeStrDup(Dest) \
_bsonDSL_begin ("storeStrDup(%s)", _bsonDSL_str (Dest)); \
(Dest) = bson_iter_dup_utf8 (&bsonVisitIter, NULL); \
_bsonDSL_end
#define _bsonVisitOperation_storeDocDup(Dest) \
_bsonDSL_begin ("storeDocDup(%s)", _bsonDSL_str (Dest)); \
bson_t _bvDoc = BSON_INITIALIZER; \
_bson_dsl_iter_as_doc (&_bvDoc, &bsonVisitIter); \
if (_bvDoc.len) { \
bson_copy_to (&_bvDoc, &(Dest)); \
} \
_bsonDSL_end
#define _bsonVisitOperation_storeDocRef(Dest) \
_bsonDSL_begin ("storeDocRef(%s)", _bsonDSL_str (Dest)); \
_bson_dsl_iter_as_doc (&(Dest), &bsonVisitIter); \
_bsonDSL_end
#define _bsonVisitOperation_storeDocDupPtr(Dest) \
_bsonDSL_begin ("storeDocDupPtr(%s)", _bsonDSL_str (Dest)); \
bson_t _bvDoc = BSON_INITIALIZER; \
_bson_dsl_iter_as_doc (&_bvDoc, &bsonVisitIter); \
if (_bvDoc.len) { \
(Dest) = bson_copy (&_bvDoc); \
} \
_bsonDSL_end
#define _bsonVisitOperation_storeInt32(Dest) \
_bsonDSL_begin ("storeInt32(%s)", _bsonDSL_str (Dest)); \
(Dest) = bson_iter_int32 (&bsonVisitIter); \
_bsonDSL_end
#define _bsonVisitOperation_do(...) \
_bsonDSL_begin ("do: %s", _bsonDSL_strElide (30, __VA_ARGS__)); \
do { \
__VA_ARGS__; \
} while (0); \
_bsonDSL_end
#define _bsonVisitOperation_appendTo(BSON) \
_bsonDSL_begin ("appendTo(%s)", _bsonDSL_str (BSON)); \
if (!bson_append_iter ( \
&(BSON), bson_iter_key (&bsonVisitIter), (int) bson_iter_key_len (&bsonVisitIter), &bsonVisitIter)) { \
bsonParseError = "Error in appendTo(" _bsonDSL_str (BSON) ")"; \
} \
_bsonDSL_end
#define _bsonVisitCase_when(Pred, ...) \
_bsonDSL_begin ("when: [%s]", _bsonDSL_str (Pred)); \
_bvCaseMatched = _bsonPredicate (Pred); \
if (_bvCaseMatched) { \
_bsonVisit_applyOps (__VA_ARGS__); \
} \
_bsonDSL_end
#define _bsonVisitCase_else(...) \
_bsonDSL_begin ("else:%s", ""); \
_bvCaseMatched = true; \
_bsonVisit_applyOps (__VA_ARGS__); \
_bsonDSL_end
#define _bsonVisitCase(Pair, _nil, _count) \
if (!_bvCaseMatched) { \
_bsonVisitCase_##Pair; \
} else \
((void) 0);
#define _bsonVisitOperation_case(...) \
_bsonDSL_begin ("case:%s", ""); \
BSON_MAYBE_UNUSED bool _bvCaseMatched = false; \
_bsonDSL_mapMacro (_bsonVisitCase, ~, __VA_ARGS__); \
_bsonDSL_end
#define _bsonVisitOperation_append _bsonVisitOneApplyDeferred_append _bsonDSL_nothing ()
#define _bsonVisitOneApplyDeferred_append(Doc, ...) \
_bsonDSL_begin ("append to [%s] : %s", _bsonDSL_str (Doc), _bsonDSL_strElide (30, __VA_ARGS__)); \
_bsonBuildAppend (Doc, __VA_ARGS__); \
if (bsonBuildError) { \
bsonParseError = bsonBuildError; \
} \
_bsonDSL_end
#define _bsonVisitEach(Doc, ...) \
_bsonDSL_begin ("visitEach(%s)", _bsonDSL_str (Doc)); \
do { \
/* Reset the context */ \
struct _bsonVisitContext_t _bvCtx = { \
.doc = &(Doc), \
.parent = _bsonVisitContextThreadLocalPtr, \
.index = 0, \
}; \
_bsonVisitContextThreadLocalPtr = &_bvCtx; \
bsonParseError = NULL; \
/* Iterate over each element of the document */ \
if (!bson_iter_init (&_bvCtx.iter, &(Doc))) { \
bsonParseError = "Invalid BSON data [a]"; \
} \
BSON_MAYBE_UNUSED bool _bvBreak = false; \
BSON_MAYBE_UNUSED bool _bvContinue = false; \
while (bson_iter_next (&_bvCtx.iter) && !_bvHalt && !bsonParseError && !_bvBreak) { \
_bvContinue = false; \
_bsonVisit_applyOps (__VA_ARGS__); \
++_bvCtx.index; \
} \
if (bsonVisitIter.err_off) { \
bsonParseError = "Invalid BSON data [b]"; \
} \
/* Restore the dsl context */ \
_bsonVisitContextThreadLocalPtr = _bvCtx.parent; \
} while (0); \
_bsonDSL_end
#define _bsonVisitOperation_visitEach _bsonVisitOperation_visitEachDeferred _bsonDSL_nothing ()
#define _bsonVisitOperation_visitEachDeferred(...) \
_bsonDSL_begin ("visitEach:%s", ""); \
do { \
const uint8_t *data; \
uint32_t len; \
bson_type_t typ = bson_iter_type_unsafe (&bsonVisitIter); \
if (typ == BSON_TYPE_ARRAY) \
bson_iter_array (&bsonVisitIter, &len, &data); \
else if (typ == BSON_TYPE_DOCUMENT) \
bson_iter_document (&bsonVisitIter, &len, &data); \
else { \
_bsonDSLDebug ("(Skipping visitEach() of non-array/document value)"); \
break; \
} \
bson_t inner; \
BSON_ASSERT (bson_init_static (&inner, data, len)); \
_bsonVisitEach (inner, __VA_ARGS__); \
} while (0); \
_bsonDSL_end
#define _bsonVisitOperation_nop _bsonDSLDebug ("[nop]")
#define _bsonVisitOperation_parse(...) \
do { \
const uint8_t *data; \
uint32_t len; \
bson_type_t typ = bson_iter_type (&bsonVisitIter); \
if (typ == BSON_TYPE_ARRAY) \
bson_iter_array (&bsonVisitIter, &len, &data); \
else if (typ == BSON_TYPE_DOCUMENT) \
bson_iter_document (&bsonVisitIter, &len, &data); \
else { \
_bsonDSLDebug ("Ignoring parse() for non-document/array value"); \
break; \
} \
bson_t inner; \
BSON_ASSERT (bson_init_static (&inner, data, len)); \
_bsonParse (inner, __VA_ARGS__); \
} while (0);
#define _bsonVisitOperation_continue _bvContinue = true
#define _bsonVisitOperation_break _bvBreak = _bvContinue = true
#define _bsonVisitOperation_require(Predicate) \
_bsonDSL_begin ("require(%s)", _bsonDSL_str (Predicate)); \
if (!bsonPredicate (Predicate)) { \
bsonParseError = "Element requirement failed: " _bsonDSL_str (Predicate); \
} \
_bsonDSL_end
#define _bsonVisitOperation_error(S) bsonParseError = (S)
#define _bsonVisitOperation_errorf(S, ...) (bsonParseError = _bson_dsl_errorf (&(S), __VA_ARGS__))
#define _bsonVisitOperation_dupPath(S) \
_bsonDSL_begin ("dupPath(%s)", _bsonDSL_str (S)); \
_bson_dsl_dupPath (&(S)); \
_bsonDSL_end
#define _bsonVisit_applyOp(P, _const, _count) \
do { \
if (!_bvContinue && !_bvHalt && !bsonParseError) { \
_bsonVisitOperation_##P; \
} \
} while (0);
#define _bsonParse(Doc, ...) \
do { \
BSON_MAYBE_UNUSED const bson_t *_bpDoc = &(Doc); \
/* Keep track of which elements have been visited based on their index*/ \
uint64_t _bpVisitBits_static[4] = {0}; \
BSON_MAYBE_UNUSED uint64_t *_bpVisitBits = _bpVisitBits_static; \
BSON_MAYBE_UNUSED size_t _bpNumVisitBitInts = sizeof _bpVisitBits_static / sizeof (uint64_t); \
BSON_MAYBE_UNUSED bool _bpFoundElement = false; \
_bsonParse_applyOps (__VA_ARGS__); \
/* We may have allocated for visit bits */ \
if (_bpVisitBits != _bpVisitBits_static) { \
bson_free (_bpVisitBits); \
} \
} while (0)
#define _bsonParse_applyOps(...) _bsonDSL_mapMacro (_bsonParse_applyOp, ~, __VA_ARGS__)
/// Parse one entry referrenced by the context iterator
#define _bsonParse_applyOp(P, _nil, Counter) \
do { \
if (!_bvHalt && !bsonParseError) { \
_bsonParseOperation_##P; \
} \
} while (0);
#define _bsonParseMarkVisited(Index) \
if (1) { \
const size_t nth_int = Index / 64u; \
const size_t nth_bit = Index % 64u; \
while (nth_int >= _bpNumVisitBitInts) { \
/* Say that five times, fast: */ \
size_t new_num_visit_bit_ints = _bpNumVisitBitInts * 2u; \
uint64_t *new_visit_bit_ints = bson_malloc0 (sizeof (uint64_t) * new_num_visit_bit_ints); \
memcpy (new_visit_bit_ints, _bpVisitBits, sizeof (uint64_t) * _bpNumVisitBitInts); \
if (_bpVisitBits != _bpVisitBits_static) { \
bson_free (_bpVisitBits); \
} \
_bpVisitBits = new_visit_bit_ints; \
_bpNumVisitBitInts = new_num_visit_bit_ints; \
} \
\
_bpVisitBits[nth_int] |= (UINT64_C (1) << nth_bit); \
} else \
((void) 0)
#define _bsonParseDidVisitNth(Index) _bsonParseDidVisitNth_1 (Index / 64u, Index % 64u)
#define _bsonParseDidVisitNth_1(NthInt, NthBit) \
(NthInt < _bpNumVisitBitInts && (_bpVisitBits[NthInt] & (UINT64_C (1) << NthBit)))
#define _bsonParseOperation_find(Predicate, ...) \
_bsonDSL_begin ("find(%s)", _bsonDSL_str (Predicate)); \
_bpFoundElement = false; \
_bsonVisitEach ( \
*_bpDoc, \
if (Predicate, \
then (do (_bsonParseMarkVisited (bsonVisitContext.index); _bpFoundElement = true), __VA_ARGS__, break))); \
if (!_bpFoundElement && !bsonParseError) { \
_bsonDSLDebug ("[not found]"); \
} \
_bsonDSL_end
#define _bsonParseOperation_require(Predicate, ...) \
_bsonDSL_begin ("require(%s)", _bsonDSL_str (Predicate)); \
_bpFoundElement = false; \
_bsonVisitEach ( \
*_bpDoc, \
if (Predicate, \
then (do (_bsonParseMarkVisited (bsonVisitContext.index); _bpFoundElement = true), __VA_ARGS__, break))); \
if (!_bpFoundElement && !bsonParseError) { \
bsonParseError = "Failed to find a required element: " _bsonDSL_str (Predicate); \
} \
_bsonDSL_end
#define _bsonParseOperation_visitOthers(...) \
_bsonDSL_begin ("visitOthers(%s)", _bsonDSL_strElide (30, __VA_ARGS__)); \
_bsonVisitEach (*_bpDoc, if (not(eval (_bsonParseDidVisitNth (bsonVisitContext.index))), then (__VA_ARGS__))); \
_bsonDSL_end
#define bsonPredicate(P) _bsonPredicate _bsonDSL_nothing () (P)
#define _bsonPredicate(P) _bsonPredicate_Condition_##P
#define _bsonPredicate_Condition_ __NOTE__Missing_name_for_a_predicate_expression
#define _bsonPredicate_Condition_allOf(...) (1 _bsonDSL_mapMacro (_bsonPredicateAnd, ~, __VA_ARGS__))
#define _bsonPredicate_Condition_anyOf(...) (0 _bsonDSL_mapMacro (_bsonPredicateOr, ~, __VA_ARGS__))
#define _bsonPredicate_Condition_not(...) (!(0 _bsonDSL_mapMacro (_bsonPredicateOr, ~, __VA_ARGS__)))
#define _bsonPredicateAnd(Pred, _ignore, _ignore1) &&_bsonPredicate _bsonDSL_nothing () (Pred)
#define _bsonPredicateOr(Pred, _ignore, _ignore2) || _bsonPredicate _bsonDSL_nothing () (Pred)
#define _bsonPredicate_Condition_eval(X) (X)
#define _bsonPredicate_Condition_key(...) \
(_bson_dsl_key_is_anyof (bson_iter_key (&bsonVisitIter), \
bson_iter_key_len (&bsonVisitIter), \
true /* case senstive */, \
__VA_ARGS__, \
NULL))
#define _bsonPredicate_Condition_iKey(...) \
(_bson_dsl_key_is_anyof (bson_iter_key (&bsonVisitIter), \
bson_iter_key_len (&bsonVisitIter), \
false /* case insenstive */, \
__VA_ARGS__, \
NULL))
#define _bsonPredicate_Condition_type(Type) (bson_iter_type (&bsonVisitIter) == _bsonDSL_Type_##Type)
#define _bsonPredicate_Condition_keyWithType(Key, Type) \
(_bsonPredicate_Condition_allOf _bsonDSL_nothing () (key (Key), type (Type)))
#define _bsonPredicate_Condition_iKeyWithType(Key, Type) \
(_bsonPredicate_Condition_allOf _bsonDSL_nothing () (iKey (Key), type (Type)))
#define _bsonPredicate_Condition_lastElement (_bson_dsl_iter_is_last_element (&bsonVisitIter))
#define _bsonPredicate_Condition_isNumeric BSON_ITER_HOLDS_NUMBER (&bsonVisitIter)
#define _bsonPredicate_Condition_1 1
#define _bsonPredicate_Condition_0 0
-#define _bsonPredicate_Condition_true true
-#define _bsonPredicate_Condition_false false
+#define _bsonPredicate_Condition_always true
+#define _bsonPredicate_Condition_never false
#define _bsonPredicate_Condition_isTrue (bson_iter_as_bool (&bsonVisitIter))
#define _bsonPredicate_Condition_isFalse (!bson_iter_as_bool (&bsonVisitIter))
#define _bsonPredicate_Condition_empty (_bson_dsl_is_empty_bson (&bsonVisitIter))
#define _bsonPredicate_Condition_strEqual(S) (_bson_dsl_test_strequal (S, true))
#define _bsonPredicate_Condition_iStrEqual(S) (_bson_dsl_test_strequal (S, false))
#define _bsonPredicate_Condition_eq(Type, Value) (_bsonPredicate_Condition_type (Type) && bsonAs (Type) == Value)
#define _bsonParseOperation_else _bsonParse_deferredElse _bsonDSL_nothing ()
#define _bsonParse_deferredElse(...) \
if (!_bpFoundElement) { \
_bsonDSL_begin ("else:%s", ""); \
_bsonParse_applyOps (__VA_ARGS__); \
_bsonDSL_end; \
} else \
((void) 0)
#define _bsonParseOperation_do(...) \
_bsonDSL_begin ("do: %s", _bsonDSL_strElide (30, __VA_ARGS__)); \
do { \
__VA_ARGS__; \
} while (0); \
_bsonDSL_end
#define _bsonParseOperation_halt _bvHalt = true
#define _bsonParseOperation_error(S) bsonParseError = (S)
#define _bsonParseOperation_errorf(S, ...) (bsonParseError = _bson_dsl_errorf (&(S), __VA_ARGS__))
/// Perform conditional parsing
#define _bsonParseOperation_if(Condition, ...) \
_bsonDSL_begin ("if(%s)", _bsonDSL_str (Condition)); \
/* Pick a sub-macro depending on if there are one or two args */ \
_bsonDSL_ifElse (_bsonDSL_hasComma (__VA_ARGS__), _bsonParse_ifThenElse, _bsonParse_ifThen) (Condition, \
__VA_ARGS__); \
_bsonDSL_end
#define _bsonParse_ifThen_then _bsonParse_applyOps
#define _bsonParse_ifElse_else _bsonParse_applyOps
#define _bsonParse_ifThenElse(Condition, Then, Else) \
if ((Condition)) { \
_bsonDSLDebug ("then:"); \
_bsonParse_ifThen_##Then; \
} else { \
_bsonDSLDebug ("else:"); \
_bsonParse_ifElse_##Else; \
}
#define _bsonParse_ifThen(Condition, Then) \
if ((Condition)) { \
_bsonDSLDebug ("%s", _bsonDSL_str (Then)); \
_bsonParse_ifThen_##Then; \
} else { \
_bsonDSLDebug ("[else nothing]"); \
}
#define _bsonParseOperation_append _bsonParseOperationDeferred_append _bsonDSL_nothing ()
#define _bsonParseOperationDeferred_append(Doc, ...) \
_bsonDSL_begin ("append to [%s] : %s", _bsonDSL_str (Doc), _bsonDSL_strElide (30, __VA_ARGS__)); \
_bsonBuildAppend (Doc, __VA_ARGS__); \
if (bsonBuildError) { \
bsonParseError = bsonBuildError; \
} \
_bsonDSL_end
#define _bsonVisit_applyOps _bsonVisit_applyOpsDeferred _bsonDSL_nothing ()
#define _bsonVisit_applyOpsDeferred(...) \
do { \
_bsonDSL_mapMacro (_bsonVisit_applyOp, ~, __VA_ARGS__); \
} while (0);
#define bsonBuildArray(BSON, ...) \
_bsonDSL_begin ("bsonBuildArray(%s, %s)", _bsonDSL_str (BSON), _bsonDSL_strElide (30, __VA_ARGS__)); \
_bsonDSL_eval (_bsonBuildArray (BSON, __VA_ARGS__)); \
_bsonDSL_end
#define _bsonBuildArray(BSON, ...) \
do { \
_bsonDSL_disableWarnings (); \
struct _bsonBuildContext_t _bbCtx = { \
.doc = &(BSON), \
.parent = _bsonBuildContextThreadLocalPtr, \
.index = 0, \
}; \
_bsonBuildContextThreadLocalPtr = &_bbCtx; \
_bsonBuildArrayWithCurrentContext (__VA_ARGS__); \
_bsonBuildContextThreadLocalPtr = _bbCtx.parent; \
_bsonDSL_restoreWarnings (); \
} while (0)
/**
* @brief Build a BSON document by appending to an existing bson_t document
*
* @param Pointer The document upon which to append
* @param ... The Document elements to append to the document
*/
#define bsonBuildAppend(BSON, ...) _bsonDSL_eval (_bsonBuildAppend (BSON, __VA_ARGS__))
#define _bsonBuildAppend(BSON, ...) \
_bsonDSL_begin ("Appending to document '%s'", _bsonDSL_str (BSON)); \
_bsonDSL_disableWarnings (); \
/* Save the dsl context */ \
struct _bsonBuildContext_t _bbCtx = { \
.doc = &(BSON), \
.parent = _bsonBuildContextThreadLocalPtr, \
}; \
/* Reset the context */ \
_bsonBuildContextThreadLocalPtr = &_bbCtx; \
bsonBuildError = NULL; \
_bsonBuildAppendWithCurrentContext (__VA_ARGS__); \
/* Restore the dsl context */ \
_bsonBuildContextThreadLocalPtr = _bbCtx.parent; \
_bsonDSL_restoreWarnings (); \
_bsonDSL_end
/**
* @brief Build a new BSON document and assign the value into the given
* pointer.
*/
#define bsonBuild(BSON, ...) \
_bsonDSL_begin ("Build a new document for '%s'", _bsonDSL_str (BSON)); \
bson_t *_bbDest = &(BSON); \
bson_init (_bbDest); \
bsonBuildAppend (*_bbDest, __VA_ARGS__); \
_bsonDSL_end
/**
* @brief Declare a variable and build it with the BSON DSL @see bsonBuild
*/
#define bsonBuildDecl(Variable, ...) \
bson_t Variable = BSON_INITIALIZER; \
bsonBuild (Variable, __VA_ARGS__)
struct _bsonBuildContext_t {
/// The document that is being built
bson_t *doc;
/// The key that is pending an append
const char *key;
/// The length of the string given in 'key'
int key_len;
/// The index of the array being built (if applicable)
size_t index;
/// A buffer for formatting key strings
char index_key_str[16];
/// The parent context (if building a sub-document)
struct _bsonBuildContext_t *parent;
};
/// A pointer to the current thread's bsonBuild context
_bson_thread_local _bson_comdat struct _bsonBuildContext_t *_bsonBuildContextThreadLocalPtr = NULL;
struct _bsonVisitContext_t {
const bson_t *doc;
bson_iter_t iter;
const struct _bsonVisitContext_t *parent;
size_t index;
};
/// A pointer to the current thread's bsonVisit/bsonParse context
_bson_thread_local _bson_comdat struct _bsonVisitContext_t const *_bsonVisitContextThreadLocalPtr = NULL;
/**
* @brief The most recent error from a bsonBuild() DSL command.
*
* If NULL, no error occurred. Users can assign a value to this string to
* indicate failure.
*/
_bson_thread_local _bson_comdat const char *bsonBuildError = NULL;
/**
* @brief The most recent error from a buildVisit() or bsonParse() DSL command.
*
* If NULL, no error occurred. Users can assign a value to this string to
* indicate an error.
*
* If this string becomes non-NULL, the current bsonVisit()/bsonParse() will
* halt and return.
*
* Upon entering a new bsonVisit()/bsonParse(), this will be reset to NULL.
*/
_bson_thread_local _bson_comdat const char *bsonParseError = NULL;
#define _bsonDSLDebug(...) _bson_dsl_debug (BSON_DSL_DEBUG, __FILE__, __LINE__, BSON_FUNC, __VA_ARGS__)
static BSON_INLINE bool
_bson_dsl_test_strequal (const char *string, bool case_sensitive)
{
bson_iter_t it = bsonVisitIter;
if (bson_iter_type (&it) == BSON_TYPE_UTF8) {
uint32_t len;
const char *s = bson_iter_utf8 (&it, &len);
if (len != (uint32_t) strlen (string)) {
return false;
}
if (case_sensitive) {
return memcmp (string, s, len) == 0;
} else {
return bson_strcasecmp (string, s) == 0;
}
}
return false;
}
static BSON_INLINE bool
_bson_dsl_key_is_anyof (const char *key, const size_t keylen, int case_sensitive, ...)
{
va_list va;
va_start (va, case_sensitive);
const char *str;
while ((str = va_arg (va, const char *))) {
size_t str_len = strlen (str);
if (str_len != keylen) {
continue;
}
if (case_sensitive) {
if (memcmp (str, key, str_len) == 0) {
va_end (va);
return true;
}
} else {
if (bson_strcasecmp (str, key) == 0) {
va_end (va);
return true;
}
}
}
va_end (va);
return false;
}
static BSON_INLINE void
_bson_dsl_iter_as_doc (bson_t *into, const bson_iter_t *it)
{
uint32_t len = 0;
const uint8_t *dataptr = NULL;
if (BSON_ITER_HOLDS_ARRAY (it)) {
bson_iter_array (it, &len, &dataptr);
} else if (BSON_ITER_HOLDS_DOCUMENT (it)) {
bson_iter_document (it, &len, &dataptr);
}
if (dataptr) {
BSON_ASSERT (bson_init_static (into, dataptr, len));
}
}
static BSON_INLINE bool
_bson_dsl_is_empty_bson (const bson_iter_t *it)
{
bson_t d = BSON_INITIALIZER;
_bson_dsl_iter_as_doc (&d, it);
return d.len == 5; // Empty documents/arrays have byte-size of five
}
static BSON_INLINE bool
_bson_dsl_iter_is_last_element (const bson_iter_t *it)
{
bson_iter_t dup = *it;
return !bson_iter_next (&dup) && dup.err_off == 0;
}
_bson_thread_local _bson_comdat int _bson_dsl_indent = 0;
static BSON_INLINE void BSON_GNUC_PRINTF (5, 6)
_bson_dsl_debug (bool do_debug, const char *file, int line, const char *func, const char *string, ...)
{
if (do_debug) {
fprintf (stderr, "%s:%d: [%s] bson_dsl: ", file, line, func);
for (int i = 0; i < _bson_dsl_indent; ++i) {
fputs (" ", stderr);
}
va_list va;
va_start (va, string);
vfprintf (stderr, string, va);
va_end (va);
fputc ('\n', stderr);
fflush (stderr);
}
}
static BSON_INLINE char *BSON_GNUC_PRINTF (2, 3) _bson_dsl_errorf (char **const into, const char *const fmt, ...)
{
if (*into) {
bson_free (*into);
*into = NULL;
}
va_list args;
va_start (args, fmt);
*into = bson_strdupv_printf (fmt, args);
va_end (args);
return *into;
}
static BSON_INLINE void
_bson_dsl_dupPath (char **into)
{
if (*into) {
bson_free (*into);
*into = NULL;
}
char *acc = bson_strdup ("");
for (const struct _bsonVisitContext_t *ctx = &bsonVisitContext; ctx; ctx = ctx->parent) {
char *prev = acc;
if (ctx->parent && BSON_ITER_HOLDS_ARRAY (&ctx->parent->iter)) {
// We're an array element
acc = bson_strdup_printf ("[%d]%s", (int) ctx->index, prev);
} else {
// We're a document element
acc = bson_strdup_printf (".%s%s", bson_iter_key (&ctx->iter), prev);
}
bson_free (prev);
}
*into = bson_strdup_printf ("$%s", acc);
bson_free (acc);
}
static BSON_INLINE const char *
_bsonVisitIterAs_cstr (void)
{
return bson_iter_utf8 (&bsonVisitIter, NULL);
}
static BSON_INLINE int32_t
_bsonVisitIterAs_int32 (void)
{
return bson_iter_int32 (&bsonVisitIter);
}
static BSON_INLINE bool
_bsonVisitIterAs_boolean (void)
{
return bson_iter_as_bool (&bsonVisitIter);
}
#define bsonAs(Type) _bsonDSL_paste (_bsonVisitIterAs_, Type) ()
/// Convert the given argument into a string without inhibitting macro expansion
#define _bsonDSL_str(...) _bsonDSL_str_1 (__VA_ARGS__)
// Empty quotes "" are to ensure a string appears. Old MSVC has a bug
// where empty #__VA_ARGS__ just vanishes.
#define _bsonDSL_str_1(...) "" #__VA_ARGS__
#define _bsonDSL_strElide(MaxLen, ...) \
(strlen (_bsonDSL_str (__VA_ARGS__)) > (MaxLen) ? "[...]" : _bsonDSL_str (__VA_ARGS__))
/// Paste two tokens:
#define _bsonDSL_paste(a, ...) _bsonDSL_paste_impl (a, __VA_ARGS__)
#define _bsonDSL_paste_impl(a, ...) a##__VA_ARGS__
/// Paste three tokens:
#define _bsonDSL_paste3(a, b, c) _bsonDSL_paste (a, _bsonDSL_paste (b, c))
/// Paste four tokens:
#define _bsonDSL_paste4(a, b, c, d) _bsonDSL_paste (a, _bsonDSL_paste3 (b, c, d))
// clang-format off
/// Now we need a MAP() macro. This idiom is common, but fairly opaque. Below is
/// some crazy preprocessor trickery to implement it. Fortunately, once we have
/// MAP(), the remainder of this file is straightforward. This implementation
/// isn't the simplest one possible, but is one that supports the old
/// non-compliant MSVC preprocessor.
/* Expands to nothing. Used to defer a function-like macro and to ignore arguments */
#define _bsonDSL_nothing(...)
/// Expand to the 64th argument. See below for why this is useful.
#define _bsonDSL_pick64th(\
_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
_11, _12, _13, _14, _15, _16, _17, _18, _19, _20, \
_21, _22, _23, _24, _25, _26, _27, _28, _29, _30, \
_31, _32, _33, _34, _35, _36, _37, _38, _39, _40, \
_41, _42, _43, _44, _45, _46, _47, _48, _49, _50, \
_51, _52, _53, _54, _55, _56, _57, _58, _59, _60, \
_61, _62, _63, ...) \
_63
/**
* @brief Expands to 1 if the given arguments contain any top-level commas, zero otherwise.
*
* There is an expansion of __VA_ARGS__, followed by 62 '1' arguments, followed
* by single '0'. If __VA_ARGS__ contains no commas, pick64th() will return the
* single zero. If __VA_ARGS__ contains any top-level commas, the series of ones
* will shift to the right and pick64th will return one of those ones. (This only
* works __VA_ARGS__ contains fewer than 62 commas, which is a somewhat reasonable
* limit.) The _bsonDSL_nothing() is a workaround for MSVC's bad preprocessor that
* expands __VA_ARGS__ incorrectly.
*
* If we have __VA_OPT__, this can be a lot simpler.
*/
#define _bsonDSL_hasComma(...) \
_bsonDSL_pick64th \
_bsonDSL_nothing() (__VA_ARGS__, \
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, ~)
/**
* Expands to a single comma if "invoked" as a function-like macro.
* (This will make sense, I promise.)
*/
#define _bsonDSL_commaIfRHSHasParens(...) ,
/**
* @brief Expand to 1 if given no arguments, otherwise 0.
*
* This could be done much more simply using __VA_OPT__, but we need to work on
* older compilers.
*/
#define _bsonDSL_isEmpty(...) \
_bsonDSL_isEmpty_1(\
/* Expands to '1' if __VA_ARGS__ contains any top-level commas */ \
_bsonDSL_hasComma(__VA_ARGS__), \
/* Expands to '1' if __VA_ARGS__ begins with a parenthesis, because \
* that will cause an "invocation" of _bsonDSL_commaIfRHSHasParens, \
* which immediately expands to a single comma. */ \
_bsonDSL_hasComma(_bsonDSL_commaIfRHSHasParens __VA_ARGS__), \
/* Expands to '1' if __VA_ARGS__ expands to a function-like macro name \
* that then expands to anything containing a top-level comma */ \
_bsonDSL_hasComma(__VA_ARGS__ ()), \
/* Expands to '1' if __VA_ARGS__ expands to nothing. */ \
_bsonDSL_hasComma(_bsonDSL_commaIfRHSHasParens __VA_ARGS__ ()))
/**
* A helper for isEmpty(): If given (0, 0, 0, 1), expands as:
* - first: _bsonDSL_hasComma(_bsonDSL_isEmpty_CASE_0001)
* - then: _bsonDSL_hasComma(,)
* - then: 1
* Given any other aruments:
* - first: _bsonDSL_hasComma(_bsonDSL_isEmpty_CASE_<somethingelse>)
* - then: 0
*/
#define _bsonDSL_isEmpty_1(_1, _2, _3, _4) \
_bsonDSL_hasComma(_bsonDSL_paste(_bsonDSL_isEmpty_CASE_, _bsonDSL_paste4(_1, _2, _3, _4)))
#define _bsonDSL_isEmpty_CASE_0001 ,
/**
* @brief Expand to the first argument if `Cond` is 1, the second argument if `Cond` is 0
*/
#define _bsonDSL_ifElse(Cond, IfTrue, IfFalse) \
/* Suppress expansion of the two branches by using the '#' operator */ \
_bsonDSL_nothing(#IfTrue, #IfFalse) \
/* Concat the cond 1/0 with a prefix macro: */ \
_bsonDSL_paste(_bsonDSL_ifElse_PICK_, Cond)(IfTrue, IfFalse)
#define _bsonDSL_ifElse_PICK_1(IfTrue, IfFalse) \
/* Expand the first operand, throw away the second */ \
IfTrue _bsonDSL_nothing(#IfFalse)
#define _bsonDSL_ifElse_PICK_0(IfTrue, IfFalse) \
/* Expand to the second operand, throw away the first */ \
IfFalse _bsonDSL_nothing(#IfTrue)
#ifdef _MSC_VER
// MSVC's "traditional" preprocessor requires many more expansion passes,
// but GNU and Clang are very slow when evaluating hugely nested expansions
// and generate massive macro expansion backtraces.
#define _bsonDSL_eval_1(...) __VA_ARGS__
#define _bsonDSL_eval_2(...) _bsonDSL_eval_1(_bsonDSL_eval_1(_bsonDSL_eval_1(_bsonDSL_eval_1(_bsonDSL_eval_1(__VA_ARGS__)))))
#define _bsonDSL_eval_4(...) _bsonDSL_eval_2(_bsonDSL_eval_2(_bsonDSL_eval_2(_bsonDSL_eval_2(_bsonDSL_eval_2(__VA_ARGS__)))))
#define _bsonDSL_eval_8(...) _bsonDSL_eval_4(_bsonDSL_eval_4(_bsonDSL_eval_4(_bsonDSL_eval_4(_bsonDSL_eval_4(__VA_ARGS__)))))
#define _bsonDSL_eval_16(...) _bsonDSL_eval_8(_bsonDSL_eval_8(_bsonDSL_eval_8(_bsonDSL_eval_8(_bsonDSL_eval_8(__VA_ARGS__)))))
#define _bsonDSL_eval(...) _bsonDSL_eval_16(_bsonDSL_eval_16(_bsonDSL_eval_16(_bsonDSL_eval_16(_bsonDSL_eval_16(__VA_ARGS__)))))
#else
// Each level of "eval" applies double the expansions of the previous level.
#define _bsonDSL_eval_1(...) __VA_ARGS__
#define _bsonDSL_eval_2(...) _bsonDSL_eval_1(_bsonDSL_eval_1(__VA_ARGS__))
#define _bsonDSL_eval_4(...) _bsonDSL_eval_2(_bsonDSL_eval_2(__VA_ARGS__))
#define _bsonDSL_eval_8(...) _bsonDSL_eval_4(_bsonDSL_eval_4(__VA_ARGS__))
#define _bsonDSL_eval_16(...) _bsonDSL_eval_8(_bsonDSL_eval_8(__VA_ARGS__))
#define _bsonDSL_eval_32(...) _bsonDSL_eval_16(_bsonDSL_eval_16(__VA_ARGS__))
#define _bsonDSL_eval(...) _bsonDSL_eval_32(__VA_ARGS__)
#endif
/**
* Finally, the Map() macro that allows us to do the magic, which we've been
* building up to all along.
*
* The dance with mapMacro_first, mapMacro_final, and _bsonDSL_nothing
* conditional on argument count is to prevent warnings from pre-C99 about
* passing no arguments to the '...' parameters. Yet again, if we had C99 and
* __VA_OPT__ this would be simpler.
*/
#define _bsonDSL_mapMacro(Action, Constant, ...) \
/* Pick our first action based on the content of '...': */ \
_bsonDSL_ifElse( \
/* If given no arguments: */\
_bsonDSL_isEmpty(__VA_ARGS__), \
/* expand to _bsonDSL_nothing */ \
_bsonDSL_nothing, \
/* Otherwise, expand to mapMacro_first: */ \
_bsonDSL_mapMacro_first) \
/* Now "invoke" the chosen macro: */ \
_bsonDSL_nothing() (Action, Constant, __VA_ARGS__)
#define _bsonDSL_mapMacro_first(Action, Constant, ...) \
/* Select our next step based on whether we have one or more arguments: */ \
_bsonDSL_ifElse( \
/* If '...' contains more than one argument (has a top-level comma): */ \
_bsonDSL_hasComma(__VA_ARGS__), \
/* Begin the mapMacro loop with mapMacro_A: */ \
_bsonDSL_mapMacro_A, \
/* Otherwise skip to the final step of the loop: */ \
_bsonDSL_mapMacro_final) \
/* Invoke the chosen macro, setting the counter to zero: */ \
_bsonDSL_nothing() (Action, Constant, 0, __VA_ARGS__)
/// Handle the last expansion in a mapMacro sequence.
#define _bsonDSL_mapMacro_final(Action, Constant, Counter, FinalElement) \
Action(FinalElement, Constant, Counter)
/**
* mapMacro_A and mapMacro_B are identical and just invoke each other.
*/
#define _bsonDSL_mapMacro_A(Action, Constant, Counter, Head, ...) \
/* First evaluate the action once: */ \
Action(Head, Constant, Counter) \
/* Pick our next step: */ \
_bsonDSL_ifElse( \
/* If '...' contains more than one argument (has a top-level comma): */ \
_bsonDSL_hasComma(__VA_ARGS__), \
/* Jump to the other mapMacro: */ \
_bsonDSL_mapMacro_B, \
/* Otherwise go to mapMacro_final */ \
_bsonDSL_mapMacro_final) \
/* Invoke the next step of the map: */ \
_bsonDSL_nothing() (Action, Constant, Counter + 1, __VA_ARGS__)
#define _bsonDSL_mapMacro_B(Action, Constant, Counter, Head, ...) \
Action(Head, Constant, Counter) \
_bsonDSL_ifElse(_bsonDSL_hasComma(__VA_ARGS__), _bsonDSL_mapMacro_A, _bsonDSL_mapMacro_final) \
_bsonDSL_nothing() (Action, Constant, Counter + 1, __VA_ARGS__)
// clang-format on
#endif // MONGO_C_DRIVER_COMMON_BSON_DSL_PRIVATE_H
diff --git a/mongodb-2.1.1/src/libmongoc/src/common/src/common-cmp-private.h b/mongodb-2.1.4/src/libmongoc/src/common/src/common-cmp-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/common/src/common-cmp-private.h
rename to mongodb-2.1.4/src/libmongoc/src/common/src/common-cmp-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/common/src/common-config.h b/mongodb-2.1.4/src/libmongoc/src/common/src/common-config.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/common/src/common-config.h
rename to mongodb-2.1.4/src/libmongoc/src/common/src/common-config.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/common/src/common-config.h.in b/mongodb-2.1.4/src/libmongoc/src/common/src/common-config.h.in
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/common/src/common-config.h.in
rename to mongodb-2.1.4/src/libmongoc/src/common/src/common-config.h.in
diff --git a/mongodb-2.1.1/src/libmongoc/src/common/src/common-json-private.h b/mongodb-2.1.4/src/libmongoc/src/common/src/common-json-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/common/src/common-json-private.h
rename to mongodb-2.1.4/src/libmongoc/src/common/src/common-json-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/common/src/common-json.c b/mongodb-2.1.4/src/libmongoc/src/common/src/common-json.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/common/src/common-json.c
rename to mongodb-2.1.4/src/libmongoc/src/common/src/common-json.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/common/src/common-macros-private.h b/mongodb-2.1.4/src/libmongoc/src/common/src/common-macros-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/common/src/common-macros-private.h
rename to mongodb-2.1.4/src/libmongoc/src/common/src/common-macros-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/common/src/common-md5-private.h b/mongodb-2.1.4/src/libmongoc/src/common/src/common-md5-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/common/src/common-md5-private.h
rename to mongodb-2.1.4/src/libmongoc/src/common/src/common-md5-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/common/src/common-md5.c b/mongodb-2.1.4/src/libmongoc/src/common/src/common-md5.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/common/src/common-md5.c
rename to mongodb-2.1.4/src/libmongoc/src/common/src/common-md5.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/common/src/common-oid-private.h b/mongodb-2.1.4/src/libmongoc/src/common/src/common-oid-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/common/src/common-oid-private.h
rename to mongodb-2.1.4/src/libmongoc/src/common/src/common-oid-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/common/src/common-oid.c b/mongodb-2.1.4/src/libmongoc/src/common/src/common-oid.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/common/src/common-oid.c
rename to mongodb-2.1.4/src/libmongoc/src/common/src/common-oid.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/common/src/common-prelude.h b/mongodb-2.1.4/src/libmongoc/src/common/src/common-prelude.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/common/src/common-prelude.h
rename to mongodb-2.1.4/src/libmongoc/src/common/src/common-prelude.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/common/src/common-string-private.h b/mongodb-2.1.4/src/libmongoc/src/common/src/common-string-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/common/src/common-string-private.h
rename to mongodb-2.1.4/src/libmongoc/src/common/src/common-string-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/common/src/common-string.c b/mongodb-2.1.4/src/libmongoc/src/common/src/common-string.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/common/src/common-string.c
rename to mongodb-2.1.4/src/libmongoc/src/common/src/common-string.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/common/src/common-thread-private.h b/mongodb-2.1.4/src/libmongoc/src/common/src/common-thread-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/common/src/common-thread-private.h
rename to mongodb-2.1.4/src/libmongoc/src/common/src/common-thread-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/common/src/common-thread.c b/mongodb-2.1.4/src/libmongoc/src/common/src/common-thread.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/common/src/common-thread.c
rename to mongodb-2.1.4/src/libmongoc/src/common/src/common-thread.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/common/src/common-utf8-private.h b/mongodb-2.1.4/src/libmongoc/src/common/src/common-utf8-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/common/src/common-utf8-private.h
rename to mongodb-2.1.4/src/libmongoc/src/common/src/common-utf8-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/hexlify.c b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/hexlify.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/hexlify.c
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/hexlify.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/hexlify.h b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/hexlify.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/hexlify.h
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/hexlify.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_azure_request.c b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_azure_request.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_azure_request.c
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_azure_request.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_b64.c b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_b64.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_b64.c
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_b64.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_caller_identity_request.c b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_caller_identity_request.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_caller_identity_request.c
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_caller_identity_request.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_crypto.h b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_crypto.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_crypto.h
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_crypto.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_crypto_apple.c b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_crypto_apple.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_crypto_apple.c
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_crypto_apple.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_crypto_libcrypto.c b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_crypto_libcrypto.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_crypto_libcrypto.c
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_crypto_libcrypto.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_crypto_none.c b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_crypto_none.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_crypto_none.c
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_crypto_none.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_crypto_windows.c b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_crypto_windows.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_crypto_windows.c
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_crypto_windows.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_decrypt_request.c b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_decrypt_request.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_decrypt_request.c
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_decrypt_request.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_encrypt_request.c b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_encrypt_request.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_encrypt_request.c
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_encrypt_request.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_endian_private.h b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_endian_private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_endian_private.h
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_endian_private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_gcp_request.c b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_gcp_request.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_gcp_request.c
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_gcp_request.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_kmip_item_type_private.h b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_kmip_item_type_private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_kmip_item_type_private.h
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_kmip_item_type_private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_kmip_reader_writer.c b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_kmip_reader_writer.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_kmip_reader_writer.c
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_kmip_reader_writer.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_kmip_reader_writer_private.h b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_kmip_reader_writer_private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_kmip_reader_writer_private.h
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_kmip_reader_writer_private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_kmip_request.c b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_kmip_request.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_kmip_request.c
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_kmip_request.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_kmip_response.c b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_kmip_response.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_kmip_response.c
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_kmip_response.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_kmip_response_parser.c b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_kmip_response_parser.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_kmip_response_parser.c
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_kmip_response_parser.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_kmip_response_parser_private.h b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_kmip_response_parser_private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_kmip_response_parser_private.h
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_kmip_response_parser_private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_kmip_result_reason_private.h b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_kmip_result_reason_private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_kmip_result_reason_private.h
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_kmip_result_reason_private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_kmip_result_status_private.h b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_kmip_result_status_private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_kmip_result_status_private.h
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_kmip_result_status_private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_kmip_tag_type_private.h b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_kmip_tag_type_private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_kmip_tag_type_private.h
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_kmip_tag_type_private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_kv_list.c b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_kv_list.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_kv_list.c
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_kv_list.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_kv_list.h b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_kv_list.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_kv_list.h
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_kv_list.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_message.c b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_message.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_message.c
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_message.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_message/kms_azure_request.h b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_message/kms_azure_request.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_message/kms_azure_request.h
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_message/kms_azure_request.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_message/kms_b64.h b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_message/kms_b64.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_message/kms_b64.h
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_message/kms_b64.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_message/kms_caller_identity_request.h b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_message/kms_caller_identity_request.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_message/kms_caller_identity_request.h
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_message/kms_caller_identity_request.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_message/kms_decrypt_request.h b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_message/kms_decrypt_request.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_message/kms_decrypt_request.h
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_message/kms_decrypt_request.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_message/kms_encrypt_request.h b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_message/kms_encrypt_request.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_message/kms_encrypt_request.h
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_message/kms_encrypt_request.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_message/kms_gcp_request.h b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_message/kms_gcp_request.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_message/kms_gcp_request.h
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_message/kms_gcp_request.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_message/kms_kmip_request.h b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_message/kms_kmip_request.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_message/kms_kmip_request.h
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_message/kms_kmip_request.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_message/kms_kmip_response.h b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_message/kms_kmip_response.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_message/kms_kmip_response.h
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_message/kms_kmip_response.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_message/kms_kmip_response_parser.h b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_message/kms_kmip_response_parser.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_message/kms_kmip_response_parser.h
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_message/kms_kmip_response_parser.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_message/kms_message.h b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_message/kms_message.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_message/kms_message.h
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_message/kms_message.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_message/kms_message_defines.h b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_message/kms_message_defines.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_message/kms_message_defines.h
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_message/kms_message_defines.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_message/kms_request.h b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_message/kms_request.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_message/kms_request.h
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_message/kms_request.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_message/kms_request_opt.h b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_message/kms_request_opt.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_message/kms_request_opt.h
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_message/kms_request_opt.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_message/kms_response.h b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_message/kms_response.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_message/kms_response.h
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_message/kms_response.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_message/kms_response_parser.h b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_message/kms_response_parser.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_message/kms_response_parser.h
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_message/kms_response_parser.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_message_private.h b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_message_private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_message_private.h
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_message_private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_port.c b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_port.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_port.c
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_port.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_port.h b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_port.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_port.h
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_port.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_request.c b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_request.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_request.c
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_request.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_request_opt.c b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_request_opt.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_request_opt.c
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_request_opt.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_request_opt_private.h b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_request_opt_private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_request_opt_private.h
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_request_opt_private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_request_str.c b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_request_str.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_request_str.c
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_request_str.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_request_str.h b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_request_str.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_request_str.h
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_request_str.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_response.c b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_response.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_response.c
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_response.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_response_parser.c b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_response_parser.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/kms_response_parser.c
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/kms_response_parser.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/sort.c b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/sort.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/sort.c
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/sort.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/kms-message/src/sort.h b/mongodb-2.1.4/src/libmongoc/src/kms-message/src/sort.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/kms-message/src/sort.h
rename to mongodb-2.1.4/src/libmongoc/src/kms-message/src/sort.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bcon.c b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bcon.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bcon.c
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bcon.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bcon.h b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bcon.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bcon.h
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bcon.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-atomic.c b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-atomic.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-atomic.c
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-atomic.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-atomic.h b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-atomic.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-atomic.h
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-atomic.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-clock.c b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-clock.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-clock.c
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-clock.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-clock.h b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-clock.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-clock.h
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-clock.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-cmp.h b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-cmp.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-cmp.h
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-cmp.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-compat.h b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-compat.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-compat.h
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-compat.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-config.h b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-config.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-config.h
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-config.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-config.h.in b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-config.h.in
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-config.h.in
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-config.h.in
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-context-private.h b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-context-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-context-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-context-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-context.c b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-context.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-context.c
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-context.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-context.h b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-context.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-context.h
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-context.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-decimal128.c b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-decimal128.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-decimal128.c
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-decimal128.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-decimal128.h b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-decimal128.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-decimal128.h
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-decimal128.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-endian.h b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-endian.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-endian.h
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-endian.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-error.c b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-error.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-error.c
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-error.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-error.h b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-error.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-error.h
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-error.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-iso8601-private.h b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-iso8601-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-iso8601-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-iso8601-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-iso8601.c b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-iso8601.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-iso8601.c
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-iso8601.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-iter.c b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-iter.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-iter.c
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-iter.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-iter.h b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-iter.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-iter.h
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-iter.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-json-private.h b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-json-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-json-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-json-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-json.c b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-json.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-json.c
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-json.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-json.h b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-json.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-json.h
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-json.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-keys.c b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-keys.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-keys.c
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-keys.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-keys.h b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-keys.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-keys.h
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-keys.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-macros.h b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-macros.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-macros.h
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-macros.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-md5.c b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-md5.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-md5.c
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-md5.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-md5.h b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-md5.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-md5.h
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-md5.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-memory.c b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-memory.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-memory.c
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-memory.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-memory.h b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-memory.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-memory.h
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-memory.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-oid.c b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-oid.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-oid.c
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-oid.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-oid.h b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-oid.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-oid.h
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-oid.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-prelude.h b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-prelude.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-prelude.h
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-prelude.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-private.h b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-reader.c b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-reader.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-reader.c
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-reader.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-reader.h b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-reader.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-reader.h
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-reader.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-string.c b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-string.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-string.c
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-string.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-string.h b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-string.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-string.h
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-string.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-timegm-private.h b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-timegm-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-timegm-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-timegm-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-timegm.c b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-timegm.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-timegm.c
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-timegm.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-types.h b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-types.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-types.h
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-types.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-utf8.c b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-utf8.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-utf8.c
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-utf8.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-utf8.h b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-utf8.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-utf8.h
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-utf8.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-value.c b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-value.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-value.c
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-value.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-value.h b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-value.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-value.h
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-value.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-version-functions.c b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-version-functions.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-version-functions.c
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-version-functions.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-version-functions.h b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-version-functions.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-version-functions.h
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-version-functions.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-version.h b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-version.h
similarity index 96%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-version.h
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-version.h
index 31103e80..79f13051 100644
--- a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-version.h
+++ b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-version.h
@@ -1,102 +1,102 @@
/*
* Copyright 2009-present MongoDB, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#if !defined(BSON_INSIDE) && !defined(BSON_COMPILATION)
#error "Only <bson/bson.h> can be included directly."
#endif
// clang-format off
#ifndef BSON_VERSION_H
#define BSON_VERSION_H
/**
* BSON_MAJOR_VERSION:
*
* BSON major version component (e.g. 1 if %BSON_VERSION is 1.2.3)
*/
#define BSON_MAJOR_VERSION (1)
/**
* BSON_MINOR_VERSION:
*
* BSON minor version component (e.g. 2 if %BSON_VERSION is 1.2.3)
*/
#define BSON_MINOR_VERSION (30)
/**
* BSON_MICRO_VERSION:
*
* BSON micro version component (e.g. 3 if %BSON_VERSION is 1.2.3)
*/
-#define BSON_MICRO_VERSION (5)
+#define BSON_MICRO_VERSION (6)
/**
* BSON_PRERELEASE_VERSION:
*
* BSON prerelease version component (e.g. pre if %BSON_VERSION is 1.2.3-pre)
*/
#define BSON_PRERELEASE_VERSION ()
/**
* BSON_VERSION:
*
* BSON version.
*/
-#define BSON_VERSION (1.30.5)
+#define BSON_VERSION (1.30.6)
/**
* BSON_VERSION_S:
*
* BSON version, encoded as a string, useful for printing and
* concatenation.
*/
-#define BSON_VERSION_S "1.30.5"
+#define BSON_VERSION_S "1.30.6"
/**
* BSON_VERSION_HEX:
*
* BSON version, encoded as an hexadecimal number, useful for
* integer comparisons.
*/
#define BSON_VERSION_HEX (BSON_MAJOR_VERSION << 24 | \
BSON_MINOR_VERSION << 16 | \
BSON_MICRO_VERSION << 8)
/**
* BSON_CHECK_VERSION:
* @major: required major version
* @minor: required minor version
* @micro: required micro version
*
* Compile-time version checking. Evaluates to %TRUE if the version
* of BSON is greater than or equal to the required one.
*/
#define BSON_CHECK_VERSION(major,minor,micro) \
(BSON_MAJOR_VERSION > (major) || \
(BSON_MAJOR_VERSION == (major) && BSON_MINOR_VERSION > (minor)) || \
(BSON_MAJOR_VERSION == (major) && BSON_MINOR_VERSION == (minor) && \
BSON_MICRO_VERSION >= (micro)))
#endif /* BSON_VERSION_H */
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-version.h.in b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-version.h.in
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-version.h.in
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-version.h.in
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-writer.c b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-writer.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-writer.c
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-writer.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-writer.h b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-writer.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson-writer.h
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson-writer.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson.c b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson.c
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson.h b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/bson.h
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/bson.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/validate-private.h b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/validate-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/validate-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/validate-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/validate.c b/mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/validate.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/bson/validate.c
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/bson/validate.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/jsonsl/jsonsl.c b/mongodb-2.1.4/src/libmongoc/src/libbson/src/jsonsl/jsonsl.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/jsonsl/jsonsl.c
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/jsonsl/jsonsl.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libbson/src/jsonsl/jsonsl.h b/mongodb-2.1.4/src/libmongoc/src/libbson/src/jsonsl/jsonsl.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libbson/src/jsonsl/jsonsl.h
rename to mongodb-2.1.4/src/libmongoc/src/libbson/src/jsonsl/jsonsl.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mcd-azure.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mcd-azure.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mcd-azure.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mcd-azure.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mcd-azure.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mcd-azure.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mcd-azure.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mcd-azure.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mcd-integer.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mcd-integer.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mcd-integer.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mcd-integer.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mcd-nsinfo.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mcd-nsinfo.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mcd-nsinfo.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mcd-nsinfo.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mcd-nsinfo.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mcd-nsinfo.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mcd-nsinfo.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mcd-nsinfo.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mcd-rpc.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mcd-rpc.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mcd-rpc.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mcd-rpc.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mcd-rpc.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mcd-rpc.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mcd-rpc.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mcd-rpc.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mcd-time.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mcd-time.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mcd-time.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mcd-time.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-aggregate-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-aggregate-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-aggregate-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-aggregate-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-aggregate.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-aggregate.c
similarity index 99%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-aggregate.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-aggregate.c
index 66ae6a75..03839f30 100644
--- a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-aggregate.c
+++ b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-aggregate.c
@@ -1,317 +1,317 @@
/*
* Copyright 2009-present MongoDB, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <mongoc/mongoc-aggregate-private.h>
#include <mongoc/mongoc-client-private.h>
#include <mongoc/mongoc-cursor-private.h>
#include <mongoc/mongoc-read-prefs-private.h>
#include <mongoc/mongoc-server-stream-private.h>
#include <mongoc/mongoc-trace-private.h>
#include <mongoc/mongoc-util-private.h>
#include <common-bson-dsl-private.h>
/*--------------------------------------------------------------------------
*
* _has_write_key --
*
* Returns true if the aggregation pipeline's last stage is "$out"
* or "$merge"; otherwise returns false.
*
* Side effects:
* Advances @iter to the last element.
*
*--------------------------------------------------------------------------
*/
bool
_has_write_key (bson_iter_t *iter)
{
bson_iter_t stage;
bson_iter_t next;
memcpy (&next, iter, sizeof (bson_iter_t));
if (!bson_iter_next (&next)) {
/* default to false when iter is emtpy */
return false;
}
while (bson_iter_next (iter)) {
if (!bson_iter_next (&next) && BSON_ITER_HOLDS_DOCUMENT (iter)) {
bson_iter_recurse (iter, &stage);
if (bson_iter_find (&stage, "$out")) {
return true;
}
bson_iter_recurse (iter, &stage);
if (bson_iter_find (&stage, "$merge")) {
return true;
}
}
}
return false;
}
/*--------------------------------------------------------------------------
*
* _make_agg_cmd --
*
* Constructs an aggregate command. If @ns does not include a collection
* name, 1 will be used in its place for the value of "aggregate" in the
* command document.
*
* Returns:
* true if successful; otherwise false and @error is set.
*
* Side effects:
* @command is always initialized.
* @error is set if there is a failure.
*
*--------------------------------------------------------------------------
*/
static bool
_make_agg_cmd (
const char *ns, const bson_t *pipeline, mongoc_aggregate_opts_t *opts, bson_t *command, bson_error_t *err)
{
const char *const dot = strstr (ns, ".");
const char *error = NULL;
const char *error_hint = NULL;
bsonBuild (*command,
kv ("aggregate",
if (dot,
/* Note: we're not validating that the collection name's length is
one or more characters, as functions such as
mongoc_client_get_collection also do not validate. */
// If 'ns' contains a dot, insert the string after the dot:
then (cstr (dot + 1)),
// Otherwise just an integer 1:
else (int32 (1)))));
if ((error = bsonBuildError)) {
error_hint = "append-aggregate";
goto fail;
}
/*
* The following will allow @pipeline to be either an array of
* items for the pipeline, or {"pipeline": [...]}.
*/
bsonParse (*pipeline,
find (keyWithType ("pipeline", array),
// There is a "pipeline" array in the document
append (*command, kv ("pipeline", iterValue (bsonVisitIter)))),
else ( // We did not find a "pipeline" array. copy the pipeline as
// an array into the command
- append (*command, kv ("pipeline", array (insert (*pipeline, true))))));
+ append (*command, kv ("pipeline", array (insert (*pipeline, always))))));
if ((error = bsonParseError)) {
error_hint = "append-pipeline";
goto fail;
}
// Check if there is a $merge or $out in the pipeline for the command
bool has_write_key = false;
bsonParse (*command,
find (
// Find the "pipeline" array
keyWithType ("pipeline", array),
parse (
// Find the last element of the pipeline array
find (lastElement,
// If it has an "$out" or "$merge" key, it is a
// writing aggregate command.
parse (find (key ("$out", "$merge"), do (has_write_key = true)))))));
if ((error = bsonParseError)) {
error_hint = "parse-pipeline";
goto fail;
}
bsonBuildAppend (*command,
kv ("cursor",
// If batchSize is set, and if we are not a writing command with zero
// batchSize, append 'batchSize' to the cursor, otherwise leave the
// 'cursor' as an empty subdocument.
doc (if (opts->batchSize_is_set && !(has_write_key && opts->batchSize == 0),
then (kv ("batchSize", int32 (opts->batchSize)))))));
if ((error = bsonBuildError)) {
error_hint = "build-cursor";
goto fail;
}
return true;
fail:
bson_set_error (err,
MONGOC_ERROR_COMMAND,
MONGOC_ERROR_COMMAND_INVALID_ARG,
"Error while building aggregate command [%s]: %s",
error_hint,
error);
return false;
}
/*
*--------------------------------------------------------------------------
*
* _mongoc_aggregate --
*
* Constructs a mongoc_cursor_t for an "aggregate" command.
*
* This function will always return a new mongoc_cursor_t that should
* be freed with mongoc_cursor_destroy().
*
* The cursor may fail once iterated upon, so check
* mongoc_cursor_error() if mongoc_cursor_next() returns false.
*
* See https://www.mongodb.com/docs/manual/aggregation/ for more
* information on how to build aggregation pipelines.
*
* Parameters:
* @ns: Namespace (or database name for database-level aggregation).
* @flags: Bitwise or of mongoc_query_flags_t or 0.
* @pipeline: A bson_t containing the pipeline request. @pipeline
* will be sent as an array type in the request.
* @opts: A bson_t containing aggregation options, such as
* bypassDocumentValidation (used with $out and $merge), maxTimeMS
* (declaring maximum server execution time) and explain (return
* information on the processing of the pipeline).
* @user_rp: Optional read preferences for the command.
* @default_rp: Default read preferences from the collection or database.
* @default_rc: Default read concern from the collection or database.
* @default_wc: Default write concern from the collection or database.
*
* Returns:
* A newly allocated mongoc_cursor_t that should be freed with
* mongoc_cursor_destroy().
*
* Side effects:
* None.
*
*--------------------------------------------------------------------------
*/
mongoc_cursor_t *
_mongoc_aggregate (mongoc_client_t *client,
const char *ns,
mongoc_query_flags_t flags,
const bson_t *pipeline,
const bson_t *opts,
const mongoc_read_prefs_t *user_rp,
const mongoc_read_prefs_t *default_rp,
const mongoc_read_concern_t *default_rc,
const mongoc_write_concern_t *default_wc)
{
mongoc_server_stream_t *server_stream = NULL;
bool has_write_key;
bson_iter_t ar;
mongoc_cursor_t *cursor;
bson_iter_t iter;
bson_t command = BSON_INITIALIZER;
bson_t cursor_opts;
bool created_command;
bson_error_t create_cmd_err = {0};
mongoc_aggregate_opts_t aggregate_opts;
bson_error_t opts_err = {0};
bool parsed_opts;
ENTRY;
BSON_ASSERT (client);
BSON_ASSERT (ns);
BSON_ASSERT (pipeline);
bson_init (&cursor_opts);
_mongoc_cursor_flags_to_opts (flags, &cursor_opts, NULL);
if (opts) {
bson_concat (&cursor_opts /* destination */, opts /* source */);
}
parsed_opts = _mongoc_aggregate_opts_parse (client, opts, &aggregate_opts, &opts_err);
if (parsed_opts) {
created_command = _make_agg_cmd (ns, pipeline, &aggregate_opts, &command, &create_cmd_err);
} else {
created_command = false;
}
cursor = _mongoc_cursor_cmd_new (
client, ns, created_command ? &command : NULL, &cursor_opts, user_rp, default_rp, default_rc);
bson_destroy (&command);
bson_destroy (&cursor_opts);
if (!parsed_opts) {
memcpy (&cursor->error, &opts_err, sizeof (bson_error_t));
GOTO (done);
}
if (!created_command) {
/* copy error back to cursor. */
memcpy (&cursor->error, &create_cmd_err, sizeof (bson_error_t));
GOTO (done);
}
if (mongoc_cursor_error (cursor, NULL)) {
GOTO (done);
}
if (!_mongoc_read_prefs_validate (cursor->read_prefs, &cursor->error)) {
GOTO (done);
}
/* pipeline could be like {pipeline: [{$out: 'test'}]} or [{$out: 'test'}] */
if (bson_iter_init_find (&iter, pipeline, "pipeline") && BSON_ITER_HOLDS_ARRAY (&iter) &&
bson_iter_recurse (&iter, &ar)) {
has_write_key = _has_write_key (&ar);
} else {
if (!bson_iter_init (&iter, pipeline)) {
bson_set_error (&cursor->error, MONGOC_ERROR_BSON, MONGOC_ERROR_BSON_INVALID, "Pipeline is invalid BSON");
GOTO (done);
}
has_write_key = _has_write_key (&iter);
}
/* This has an important effect on server selection when
* readPreferences=secondary. Keep track of this fact for later use. */
cursor->is_aggr_with_write_stage = has_write_key;
/* server id isn't enough. ensure we're connected & know wire version */
const mongoc_ss_log_context_t ss_log_context = {.operation = "aggregate"};
server_stream = _mongoc_cursor_fetch_stream (cursor, &ss_log_context);
if (!server_stream) {
GOTO (done);
}
/* Only inherit WriteConcern when aggregate has $out or $merge */
if (!aggregate_opts.write_concern_owned && has_write_key) {
mongoc_write_concern_destroy (cursor->write_concern);
cursor->write_concern = mongoc_write_concern_copy (default_wc);
}
done:
_mongoc_aggregate_opts_cleanup (&aggregate_opts);
mongoc_server_stream_cleanup (server_stream); /* null ok */
/* we always return the cursor, even if it fails; users can detect the
* failure on performing a cursor operation. see CDRIVER-880. */
RETURN (cursor);
}
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-apm-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-apm-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-apm-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-apm-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-apm.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-apm.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-apm.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-apm.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-apm.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-apm.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-apm.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-apm.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-array-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-array-private.h
similarity index 91%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-array-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-array-private.h
index 9956224b..c8de6f1f 100644
--- a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-array-private.h
+++ b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-array-private.h
@@ -1,61 +1,64 @@
/*
* Copyright 2009-present MongoDB, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <mongoc/mongoc-prelude.h>
#ifndef MONGOC_ARRAY_PRIVATE_H
#define MONGOC_ARRAY_PRIVATE_H
#include <bson/bson.h>
BSON_BEGIN_DECLS
+// mongoc_array_t stores an array of objects of type T.
+//
+// T must be trivially relocatable. In particular, `bson_t` is not trivially relocatable (CDRIVER-6113).
typedef struct _mongoc_array_t mongoc_array_t;
struct _mongoc_array_t {
size_t len;
size_t element_alignment;
size_t element_size;
size_t allocated;
void *data;
};
#define mongoc_array_aligned_init(a, Type) _mongoc_array_aligned_init (a, BSON_ALIGNOF (Type), sizeof (Type))
#define _mongoc_array_append_val(a, v) _mongoc_array_append_vals (a, &v, 1)
#define _mongoc_array_index(a, t, i) (((t *) (a)->data)[i])
#define _mongoc_array_clear(a) (a)->len = 0
void
_mongoc_array_aligned_init (mongoc_array_t *array, size_t element_alignment, size_t element_size);
void
_mongoc_array_init (mongoc_array_t *array, size_t element_size);
void
_mongoc_array_copy (mongoc_array_t *dst, const mongoc_array_t *src);
void
_mongoc_array_append_vals (mongoc_array_t *array, const void *data, uint32_t n_elements);
void
_mongoc_array_destroy (mongoc_array_t *array);
BSON_END_DECLS
#endif /* MONGOC_ARRAY_PRIVATE_H */
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-array.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-array.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-array.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-array.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-async-cmd-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-async-cmd-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-async-cmd-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-async-cmd-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-async-cmd.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-async-cmd.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-async-cmd.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-async-cmd.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-async-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-async-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-async-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-async-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-async.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-async.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-async.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-async.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-buffer-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-buffer-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-buffer-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-buffer-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-buffer.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-buffer.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-buffer.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-buffer.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-bulk-operation-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-bulk-operation-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-bulk-operation-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-bulk-operation-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-bulk-operation.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-bulk-operation.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-bulk-operation.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-bulk-operation.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-bulk-operation.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-bulk-operation.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-bulk-operation.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-bulk-operation.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-bulkwrite.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-bulkwrite.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-bulkwrite.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-bulkwrite.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-bulkwrite.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-bulkwrite.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-bulkwrite.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-bulkwrite.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-change-stream-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-change-stream-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-change-stream-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-change-stream-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-change-stream.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-change-stream.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-change-stream.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-change-stream.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-change-stream.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-change-stream.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-change-stream.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-change-stream.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-pool-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-pool-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-pool-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-pool-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-pool.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-pool.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-pool.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-pool.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-pool.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-pool.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-pool.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-pool.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-session-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-session-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-session-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-session-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-session.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-session.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-session.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-session.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-session.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-session.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-session.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-session.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-side-encryption-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-side-encryption-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-side-encryption-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-side-encryption-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-side-encryption.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-side-encryption.c
similarity index 99%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-side-encryption.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-side-encryption.c
index db829c36..1725b0a5 100644
--- a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-side-encryption.c
+++ b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-side-encryption.c
@@ -1,3035 +1,3035 @@
/*
* Copyright 2009-present MongoDB, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef _WIN32
#include <sys/wait.h>
#include <signal.h>
#endif
#include <common-bson-dsl-private.h>
#include <mongoc/mongoc.h>
#include <mongoc/mongoc-client-private.h>
#include <mongoc/mongoc-client-side-encryption-private.h>
#include <mongoc/mongoc-error-private.h>
#include <mongoc/mongoc-host-list-private.h>
#include <mongoc/mongoc-stream-private.h>
#include <mongoc/mongoc-topology-private.h>
#include <mongoc/mongoc-trace-private.h>
#include <mongoc/mongoc-database-private.h>
#include <mongoc/mongoc-util-private.h>
#include <common-string-private.h>
#include <common-atomic-private.h>
/*--------------------------------------------------------------------------
* Auto Encryption options.
*--------------------------------------------------------------------------
*/
struct _mongoc_auto_encryption_opts_t {
/* keyvault_client and keyvault_client_pool are not owned and must outlive
* auto encrypted client/pool. */
mongoc_client_t *keyvault_client;
mongoc_client_pool_t *keyvault_client_pool;
char *keyvault_db;
char *keyvault_coll;
bson_t *kms_providers;
bson_t *tls_opts;
bson_t *schema_map;
bson_t *encrypted_fields_map;
bool bypass_auto_encryption;
bool bypass_query_analysis;
mc_kms_credentials_callback creds_cb;
bson_t *extra;
mcd_optional_u64_t cache_expiration_ms;
};
static void
_set_creds_callback (mc_kms_credentials_callback *cb, mongoc_kms_credentials_provider_callback_fn fn, void *userdata)
{
BSON_ASSERT (cb);
cb->fn = fn;
cb->userdata = userdata;
}
mongoc_auto_encryption_opts_t *
mongoc_auto_encryption_opts_new (void)
{
return bson_malloc0 (sizeof (mongoc_auto_encryption_opts_t));
}
void
mongoc_auto_encryption_opts_destroy (mongoc_auto_encryption_opts_t *opts)
{
if (!opts) {
return;
}
bson_destroy (opts->extra);
bson_destroy (opts->kms_providers);
bson_destroy (opts->schema_map);
bson_destroy (opts->encrypted_fields_map);
bson_free (opts->keyvault_db);
bson_free (opts->keyvault_coll);
bson_destroy (opts->tls_opts);
bson_free (opts);
}
void
mongoc_auto_encryption_opts_set_keyvault_client (mongoc_auto_encryption_opts_t *opts, mongoc_client_t *client)
{
if (!opts) {
return;
}
/* Does not own. */
opts->keyvault_client = client;
}
void
mongoc_auto_encryption_opts_set_keyvault_client_pool (mongoc_auto_encryption_opts_t *opts, mongoc_client_pool_t *pool)
{
if (!opts) {
return;
}
/* Does not own. */
opts->keyvault_client_pool = pool;
}
void
mongoc_auto_encryption_opts_set_keyvault_namespace (mongoc_auto_encryption_opts_t *opts,
const char *db,
const char *coll)
{
if (!opts) {
return;
}
bson_free (opts->keyvault_db);
opts->keyvault_db = NULL;
opts->keyvault_db = bson_strdup (db);
bson_free (opts->keyvault_coll);
opts->keyvault_coll = NULL;
opts->keyvault_coll = bson_strdup (coll);
}
void
mongoc_auto_encryption_opts_set_kms_providers (mongoc_auto_encryption_opts_t *opts, const bson_t *providers)
{
if (!opts) {
return;
}
bson_destroy (opts->kms_providers);
opts->kms_providers = NULL;
if (providers) {
opts->kms_providers = bson_copy (providers);
}
}
void
mongoc_auto_encryption_opts_set_key_expiration (mongoc_auto_encryption_opts_t *opts, uint64_t expiration)
{
if (!opts) {
return;
}
opts->cache_expiration_ms.set = true;
opts->cache_expiration_ms.value = expiration;
}
/* _bson_copy_or_null returns a copy of @bson or NULL if @bson is NULL */
static bson_t *
_bson_copy_or_null (const bson_t *bson)
{
if (bson) {
return bson_copy (bson);
}
return NULL;
}
void
mongoc_auto_encryption_opts_set_tls_opts (mongoc_auto_encryption_opts_t *opts, const bson_t *tls_opts)
{
if (!opts) {
return;
}
bson_destroy (opts->tls_opts);
opts->tls_opts = _bson_copy_or_null (tls_opts);
}
void
mongoc_auto_encryption_opts_set_schema_map (mongoc_auto_encryption_opts_t *opts, const bson_t *schema_map)
{
if (!opts) {
return;
}
bson_destroy (opts->schema_map);
opts->schema_map = NULL;
if (schema_map) {
opts->schema_map = bson_copy (schema_map);
}
}
void
mongoc_auto_encryption_opts_set_encrypted_fields_map (mongoc_auto_encryption_opts_t *opts,
const bson_t *encrypted_fields_map)
{
if (!opts) {
return;
}
bson_destroy (opts->encrypted_fields_map);
opts->encrypted_fields_map = NULL;
if (encrypted_fields_map) {
opts->encrypted_fields_map = bson_copy (encrypted_fields_map);
}
}
void
mongoc_auto_encryption_opts_set_bypass_auto_encryption (mongoc_auto_encryption_opts_t *opts,
bool bypass_auto_encryption)
{
if (!opts) {
return;
}
opts->bypass_auto_encryption = bypass_auto_encryption;
}
void
mongoc_auto_encryption_opts_set_bypass_query_analysis (mongoc_auto_encryption_opts_t *opts, bool bypass_query_analysis)
{
if (!opts) {
return;
}
opts->bypass_query_analysis = bypass_query_analysis;
}
void
mongoc_auto_encryption_opts_set_extra (mongoc_auto_encryption_opts_t *opts, const bson_t *extra)
{
if (!opts) {
return;
}
bson_destroy (opts->extra);
opts->extra = NULL;
if (extra) {
opts->extra = bson_copy (extra);
}
}
void
mongoc_auto_encryption_opts_set_kms_credential_provider_callback (mongoc_auto_encryption_opts_t *opts,
mongoc_kms_credentials_provider_callback_fn fn,
void *userdata)
{
_set_creds_callback (&opts->creds_cb, fn, userdata);
}
/*--------------------------------------------------------------------------
* Client Encryption options.
*--------------------------------------------------------------------------
*/
struct _mongoc_client_encryption_opts_t {
mongoc_client_t *keyvault_client;
char *keyvault_db;
char *keyvault_coll;
bson_t *kms_providers;
bson_t *tls_opts;
mc_kms_credentials_callback creds_cb;
mcd_optional_u64_t cache_expiration_ms;
};
mongoc_client_encryption_opts_t *
mongoc_client_encryption_opts_new (void)
{
return bson_malloc0 (sizeof (mongoc_client_encryption_opts_t));
}
void
mongoc_client_encryption_opts_destroy (mongoc_client_encryption_opts_t *opts)
{
if (!opts) {
return;
}
_set_creds_callback (&opts->creds_cb, NULL, NULL);
bson_free (opts->keyvault_db);
bson_free (opts->keyvault_coll);
bson_destroy (opts->kms_providers);
bson_destroy (opts->tls_opts);
bson_free (opts);
}
void
mongoc_client_encryption_opts_set_keyvault_client (mongoc_client_encryption_opts_t *opts,
mongoc_client_t *keyvault_client)
{
if (!opts) {
return;
}
opts->keyvault_client = keyvault_client;
}
void
mongoc_client_encryption_opts_set_keyvault_namespace (mongoc_client_encryption_opts_t *opts,
const char *db,
const char *coll)
{
if (!opts) {
return;
}
bson_free (opts->keyvault_db);
opts->keyvault_db = NULL;
opts->keyvault_db = bson_strdup (db);
bson_free (opts->keyvault_coll);
opts->keyvault_coll = NULL;
opts->keyvault_coll = bson_strdup (coll);
}
void
mongoc_client_encryption_opts_set_kms_providers (mongoc_client_encryption_opts_t *opts, const bson_t *kms_providers)
{
if (!opts) {
return;
}
bson_destroy (opts->kms_providers);
opts->kms_providers = NULL;
if (kms_providers) {
opts->kms_providers = bson_copy (kms_providers);
}
}
void
mongoc_client_encryption_opts_set_tls_opts (mongoc_client_encryption_opts_t *opts, const bson_t *tls_opts)
{
if (!opts) {
return;
}
bson_destroy (opts->tls_opts);
opts->tls_opts = _bson_copy_or_null (tls_opts);
}
void
mongoc_client_encryption_opts_set_kms_credential_provider_callback (mongoc_client_encryption_opts_t *opts,
mongoc_kms_credentials_provider_callback_fn fn,
void *userdata)
{
BSON_ASSERT_PARAM (opts);
opts->creds_cb.fn = fn;
opts->creds_cb.userdata = userdata;
}
void
mongoc_client_encryption_opts_set_key_expiration (mongoc_client_encryption_opts_t *opts, uint64_t cache_expiration_ms)
{
BSON_ASSERT_PARAM (opts);
opts->cache_expiration_ms.set = true;
opts->cache_expiration_ms.value = cache_expiration_ms;
}
/*--------------------------------------------------------------------------
* Data key options.
*--------------------------------------------------------------------------
*/
struct _mongoc_client_encryption_datakey_opts_t {
bson_t *masterkey;
char **keyaltnames;
uint32_t keyaltnames_count;
uint8_t *keymaterial;
uint32_t keymaterial_len;
};
mongoc_client_encryption_datakey_opts_t *
mongoc_client_encryption_datakey_opts_new (void)
{
return bson_malloc0 (sizeof (mongoc_client_encryption_datakey_opts_t));
}
static void
_clear_datakey_keyaltnames (mongoc_client_encryption_datakey_opts_t *opts)
{
if (opts->keyaltnames) {
for (uint32_t i = 0u; i < opts->keyaltnames_count; i++) {
bson_free (opts->keyaltnames[i]);
}
bson_free (opts->keyaltnames);
opts->keyaltnames = NULL;
opts->keyaltnames_count = 0;
}
}
void
mongoc_client_encryption_datakey_opts_destroy (mongoc_client_encryption_datakey_opts_t *opts)
{
if (!opts) {
return;
}
bson_destroy (opts->masterkey);
_clear_datakey_keyaltnames (opts);
bson_free (opts->keymaterial);
bson_free (opts);
}
void
mongoc_client_encryption_datakey_opts_set_masterkey (mongoc_client_encryption_datakey_opts_t *opts,
const bson_t *masterkey)
{
if (!opts) {
return;
}
bson_destroy (opts->masterkey);
opts->masterkey = NULL;
if (masterkey) {
opts->masterkey = bson_copy (masterkey);
}
}
void
mongoc_client_encryption_datakey_opts_set_keyaltnames (mongoc_client_encryption_datakey_opts_t *opts,
char **keyaltnames,
uint32_t keyaltnames_count)
{
if (!opts) {
return;
}
/* Free all first (if any have been set before). */
_clear_datakey_keyaltnames (opts);
BSON_ASSERT (!opts->keyaltnames);
if (keyaltnames_count) {
opts->keyaltnames = bson_malloc (sizeof (char *) * keyaltnames_count);
for (uint32_t i = 0u; i < keyaltnames_count; i++) {
opts->keyaltnames[i] = bson_strdup (keyaltnames[i]);
}
opts->keyaltnames_count = keyaltnames_count;
}
}
void
mongoc_client_encryption_datakey_opts_set_keymaterial (mongoc_client_encryption_datakey_opts_t *opts,
const uint8_t *data,
uint32_t len)
{
if (!opts) {
return;
}
if (opts->keymaterial) {
bson_free (opts->keymaterial);
}
opts->keymaterial = bson_malloc (len);
memcpy (opts->keymaterial, data, len);
opts->keymaterial_len = len;
}
/*--------------------------------------------------------------------------
* Explicit Encryption options.
*--------------------------------------------------------------------------
*/
struct _mongoc_client_encryption_encrypt_range_opts_t {
struct {
bson_value_t value;
bool set;
} min;
struct {
bson_value_t value;
bool set;
} max;
struct {
int32_t value;
bool set;
} trim_factor;
struct {
int64_t value;
bool set;
} sparsity;
struct {
int32_t value;
bool set;
} precision;
};
struct _mongoc_client_encryption_encrypt_opts_t {
bson_value_t keyid;
char *algorithm;
char *keyaltname;
struct {
int64_t value;
bool set;
} contention_factor;
char *query_type;
mongoc_client_encryption_encrypt_range_opts_t *range_opts;
};
mongoc_client_encryption_encrypt_opts_t *
mongoc_client_encryption_encrypt_opts_new (void)
{
return bson_malloc0 (sizeof (mongoc_client_encryption_encrypt_opts_t));
}
void
mongoc_client_encryption_encrypt_range_opts_destroy (mongoc_client_encryption_encrypt_range_opts_t *range_opts)
{
if (!range_opts) {
return;
}
if (range_opts->min.set) {
bson_value_destroy (&range_opts->min.value);
}
if (range_opts->max.set) {
bson_value_destroy (&range_opts->max.value);
}
bson_free (range_opts);
}
void
mongoc_client_encryption_encrypt_opts_destroy (mongoc_client_encryption_encrypt_opts_t *opts)
{
if (!opts) {
return;
}
mongoc_client_encryption_encrypt_range_opts_destroy (opts->range_opts);
bson_value_destroy (&opts->keyid);
bson_free (opts->algorithm);
bson_free (opts->keyaltname);
bson_free (opts->query_type);
bson_free (opts);
}
void
mongoc_client_encryption_encrypt_opts_set_keyid (mongoc_client_encryption_encrypt_opts_t *opts,
const bson_value_t *keyid)
{
if (!opts) {
return;
}
bson_value_destroy (&opts->keyid);
memset (&opts->keyid, 0, sizeof (opts->keyid));
if (keyid) {
bson_value_copy (keyid, &opts->keyid);
}
}
void
mongoc_client_encryption_encrypt_opts_set_keyaltname (mongoc_client_encryption_encrypt_opts_t *opts,
const char *keyaltname)
{
if (!opts) {
return;
}
bson_free (opts->keyaltname);
opts->keyaltname = NULL;
opts->keyaltname = bson_strdup (keyaltname);
}
void
mongoc_client_encryption_encrypt_opts_set_algorithm (mongoc_client_encryption_encrypt_opts_t *opts,
const char *algorithm)
{
if (!opts) {
return;
}
bson_free (opts->algorithm);
opts->algorithm = NULL;
opts->algorithm = bson_strdup (algorithm);
}
void
mongoc_client_encryption_encrypt_opts_set_contention_factor (mongoc_client_encryption_encrypt_opts_t *opts,
int64_t contention_factor)
{
if (!opts) {
return;
}
opts->contention_factor.value = contention_factor;
opts->contention_factor.set = true;
}
void
mongoc_client_encryption_encrypt_opts_set_query_type (mongoc_client_encryption_encrypt_opts_t *opts,
const char *query_type)
{
if (!opts) {
return;
}
bson_free (opts->query_type);
opts->query_type = query_type ? bson_strdup (query_type) : NULL;
}
/*--------------------------------------------------------------------------
* Explicit Encryption Range Options
*--------------------------------------------------------------------------
*/
mongoc_client_encryption_encrypt_range_opts_t *
mongoc_client_encryption_encrypt_range_opts_new (void)
{
return bson_malloc0 (sizeof (mongoc_client_encryption_encrypt_range_opts_t));
}
void
mongoc_client_encryption_encrypt_range_opts_set_trim_factor (mongoc_client_encryption_encrypt_range_opts_t *range_opts,
int32_t trim_factor)
{
BSON_ASSERT_PARAM (range_opts);
range_opts->trim_factor.set = true;
range_opts->trim_factor.value = trim_factor;
}
void
mongoc_client_encryption_encrypt_range_opts_set_sparsity (mongoc_client_encryption_encrypt_range_opts_t *range_opts,
int64_t sparsity)
{
BSON_ASSERT_PARAM (range_opts);
range_opts->sparsity.set = true;
range_opts->sparsity.value = sparsity;
}
void
mongoc_client_encryption_encrypt_range_opts_set_min (mongoc_client_encryption_encrypt_range_opts_t *range_opts,
const bson_value_t *min)
{
BSON_ASSERT_PARAM (range_opts);
BSON_ASSERT_PARAM (min);
if (range_opts->min.set) {
bson_value_destroy (&range_opts->min.value);
}
range_opts->min.set = true;
bson_value_copy (min, &range_opts->min.value);
}
void
mongoc_client_encryption_encrypt_range_opts_set_max (mongoc_client_encryption_encrypt_range_opts_t *range_opts,
const bson_value_t *max)
{
BSON_ASSERT_PARAM (range_opts);
BSON_ASSERT_PARAM (max);
if (range_opts->max.set) {
bson_value_destroy (&range_opts->max.value);
}
range_opts->max.set = true;
bson_value_copy (max, &range_opts->max.value);
}
void
mongoc_client_encryption_encrypt_range_opts_set_precision (mongoc_client_encryption_encrypt_range_opts_t *range_opts,
int32_t precision)
{
BSON_ASSERT_PARAM (range_opts);
range_opts->precision.set = true;
range_opts->precision.value = precision;
}
static mongoc_client_encryption_encrypt_range_opts_t *
copy_range_opts (const mongoc_client_encryption_encrypt_range_opts_t *opts)
{
BSON_ASSERT_PARAM (opts);
mongoc_client_encryption_encrypt_range_opts_t *opts_new = mongoc_client_encryption_encrypt_range_opts_new ();
if (opts->min.set) {
bson_value_copy (&opts->min.value, &opts_new->min.value);
opts_new->min.set = true;
}
if (opts->max.set) {
bson_value_copy (&opts->max.value, &opts_new->max.value);
opts_new->max.set = true;
}
if (opts->precision.set) {
opts_new->precision.value = opts->precision.value;
opts_new->precision.set = true;
}
opts_new->sparsity = opts->sparsity;
opts_new->trim_factor = opts->trim_factor;
return opts_new;
}
void
mongoc_client_encryption_encrypt_opts_set_range_opts (mongoc_client_encryption_encrypt_opts_t *opts,
const mongoc_client_encryption_encrypt_range_opts_t *range_opts)
{
BSON_ASSERT_PARAM (opts);
if (opts->range_opts) {
mongoc_client_encryption_encrypt_range_opts_destroy (opts->range_opts);
opts->range_opts = NULL;
}
opts->range_opts = copy_range_opts (range_opts);
}
/*--------------------------------------------------------------------------
* RewrapManyDataKeyResult.
*--------------------------------------------------------------------------
*/
struct _mongoc_client_encryption_rewrap_many_datakey_result_t {
bson_t bulk_write_result;
};
mongoc_client_encryption_rewrap_many_datakey_result_t *
mongoc_client_encryption_rewrap_many_datakey_result_new (void)
{
mongoc_client_encryption_rewrap_many_datakey_result_t *const res =
BSON_ALIGNED_ALLOC0 (mongoc_client_encryption_rewrap_many_datakey_result_t);
bson_init (&res->bulk_write_result);
return res;
}
void
mongoc_client_encryption_rewrap_many_datakey_result_destroy (
mongoc_client_encryption_rewrap_many_datakey_result_t *result)
{
if (!result) {
return;
}
bson_destroy (&result->bulk_write_result);
bson_free (result);
}
const bson_t *
mongoc_client_encryption_rewrap_many_datakey_result_get_bulk_write_result (
mongoc_client_encryption_rewrap_many_datakey_result_t *result)
{
if (!result) {
return NULL;
}
/* bulkWriteResult may be empty if no result of a bulk write operation has
* been assigned to it. Treat as equivalent to an unset optional state. */
if (bson_empty (&result->bulk_write_result)) {
return NULL;
}
return &result->bulk_write_result;
}
#ifndef MONGOC_ENABLE_CLIENT_SIDE_ENCRYPTION
static bool
_disabled_error (bson_error_t *error)
{
bson_set_error (error,
MONGOC_ERROR_CLIENT,
MONGOC_ERROR_CLIENT_INVALID_ENCRYPTION_STATE,
"libmongoc is not built with support for Client-Side Field "
"Level Encryption. Configure with "
"ENABLE_CLIENT_SIDE_ENCRYPTION=ON.");
return false;
}
bool
_mongoc_cse_auto_encrypt (mongoc_client_t *client,
const mongoc_cmd_t *cmd,
mongoc_cmd_t *encrypted_cmd,
bson_t *encrypted,
bson_error_t *error)
{
BSON_UNUSED (client);
BSON_UNUSED (cmd);
BSON_UNUSED (encrypted_cmd);
bson_init (encrypted);
return _disabled_error (error);
}
bool
_mongoc_cse_auto_decrypt (
mongoc_client_t *client, const char *db_name, const bson_t *reply, bson_t *decrypted, bson_error_t *error)
{
BSON_UNUSED (client);
BSON_UNUSED (db_name);
BSON_UNUSED (reply);
bson_init (decrypted);
return _disabled_error (error);
}
bool
_mongoc_cse_client_enable_auto_encryption (mongoc_client_t *client,
mongoc_auto_encryption_opts_t *opts /* may be NULL */,
bson_error_t *error)
{
BSON_UNUSED (client);
BSON_UNUSED (opts);
return _disabled_error (error);
}
bool
_mongoc_cse_client_pool_enable_auto_encryption (mongoc_topology_t *topology,
mongoc_auto_encryption_opts_t *opts /* may be NULL */,
bson_error_t *error)
{
BSON_UNUSED (topology);
BSON_UNUSED (opts);
return _disabled_error (error);
}
bool
mongoc_client_encryption_create_datakey (mongoc_client_encryption_t *client_encryption,
const char *kms_provider,
const mongoc_client_encryption_datakey_opts_t *opts,
bson_value_t *keyid,
bson_error_t *error)
{
BSON_UNUSED (client_encryption);
BSON_UNUSED (kms_provider);
BSON_UNUSED (opts);
if (keyid) {
memset (keyid, 0, sizeof (*keyid));
}
return _disabled_error (error);
}
bool
mongoc_client_encryption_rewrap_many_datakey (mongoc_client_encryption_t *client_encryption,
const bson_t *filter,
const char *provider,
const bson_t *master_key,
mongoc_client_encryption_rewrap_many_datakey_result_t *result,
bson_error_t *error)
{
BSON_UNUSED (client_encryption);
BSON_UNUSED (filter);
BSON_UNUSED (provider);
BSON_UNUSED (master_key);
BSON_UNUSED (result);
return _disabled_error (error);
}
bool
mongoc_client_encryption_delete_key (mongoc_client_encryption_t *client_encryption,
const bson_value_t *keyid,
bson_t *reply,
bson_error_t *error)
{
BSON_UNUSED (client_encryption);
BSON_UNUSED (keyid);
_mongoc_bson_init_if_set (reply);
return _disabled_error (error);
}
bool
mongoc_client_encryption_get_key (mongoc_client_encryption_t *client_encryption,
const bson_value_t *keyid,
bson_t *key_doc,
bson_error_t *error)
{
BSON_UNUSED (client_encryption);
BSON_UNUSED (keyid);
_mongoc_bson_init_if_set (key_doc);
return _disabled_error (error);
}
mongoc_cursor_t *
mongoc_client_encryption_get_keys (mongoc_client_encryption_t *client_encryption, bson_error_t *error)
{
BSON_UNUSED (client_encryption);
_disabled_error (error);
return NULL;
}
bool
mongoc_client_encryption_add_key_alt_name (mongoc_client_encryption_t *client_encryption,
const bson_value_t *keyid,
const char *keyaltname,
bson_t *key_doc,
bson_error_t *error)
{
BSON_UNUSED (client_encryption);
BSON_UNUSED (keyid);
BSON_UNUSED (keyaltname);
_mongoc_bson_init_if_set (key_doc);
return _disabled_error (error);
}
bool
mongoc_client_encryption_remove_key_alt_name (mongoc_client_encryption_t *client_encryption,
const bson_value_t *keyid,
const char *keyaltname,
bson_t *key_doc,
bson_error_t *error)
{
BSON_UNUSED (client_encryption);
BSON_UNUSED (keyid);
BSON_UNUSED (keyaltname);
_mongoc_bson_init_if_set (key_doc);
return _disabled_error (error);
}
bool
mongoc_client_encryption_get_key_by_alt_name (mongoc_client_encryption_t *client_encryption,
const char *keyaltname,
bson_t *key_doc,
bson_error_t *error)
{
BSON_UNUSED (client_encryption);
BSON_UNUSED (keyaltname);
_mongoc_bson_init_if_set (key_doc);
return _disabled_error (error);
}
mongoc_client_encryption_t *
mongoc_client_encryption_new (mongoc_client_encryption_opts_t *opts, bson_error_t *error)
{
BSON_UNUSED (opts);
_disabled_error (error);
return NULL;
}
void
mongoc_client_encryption_destroy (mongoc_client_encryption_t *client_encryption)
{
BSON_UNUSED (client_encryption);
}
bool
mongoc_client_encryption_encrypt (mongoc_client_encryption_t *client_encryption,
const bson_value_t *value,
mongoc_client_encryption_encrypt_opts_t *opts,
bson_value_t *ciphertext,
bson_error_t *error)
{
BSON_UNUSED (client_encryption);
BSON_UNUSED (value);
BSON_UNUSED (opts);
if (ciphertext) {
memset (ciphertext, 0, sizeof (*ciphertext));
}
return _disabled_error (error);
}
bool
mongoc_client_encryption_encrypt_expression (mongoc_client_encryption_t *client_encryption,
const bson_t *expr,
mongoc_client_encryption_encrypt_opts_t *opts,
bson_t *expr_encrypted,
bson_error_t *error)
{
BSON_ASSERT_PARAM (client_encryption);
BSON_ASSERT_PARAM (expr);
BSON_ASSERT_PARAM (opts);
BSON_ASSERT_PARAM (expr_encrypted);
BSON_OPTIONAL_PARAM (error);
bson_init (expr_encrypted);
return _disabled_error (error);
}
bool
mongoc_client_encryption_decrypt (mongoc_client_encryption_t *client_encryption,
const bson_value_t *ciphertext,
bson_value_t *value,
bson_error_t *error)
{
BSON_UNUSED (client_encryption);
BSON_UNUSED (ciphertext);
if (value) {
memset (value, 0, sizeof (*value));
}
return _disabled_error (error);
}
bool
_mongoc_cse_is_enabled (mongoc_client_t *client)
{
BSON_UNUSED (client);
return false;
}
mongoc_collection_t *
mongoc_client_encryption_create_encrypted_collection (mongoc_client_encryption_t *enc,
struct _mongoc_database_t *database,
const char *name,
const bson_t *in_options,
bson_t *opt_out_options,
const char *const kms_provider,
const bson_t *opt_masterkey,
bson_error_t *error)
{
BSON_UNUSED (enc);
BSON_UNUSED (database);
BSON_UNUSED (name);
BSON_UNUSED (in_options);
BSON_UNUSED (opt_out_options);
BSON_UNUSED (kms_provider);
BSON_UNUSED (opt_masterkey);
_disabled_error (error);
return NULL;
}
#else
/* Appends the range opts set by the user into a bson_t that can be passed to
* libmongocrypt.
*/
static void
append_bson_range_opts (bson_t *bson_range_opts, const mongoc_client_encryption_encrypt_opts_t *opts)
{
BSON_ASSERT_PARAM (bson_range_opts);
BSON_ASSERT_PARAM (opts);
if (opts->range_opts->min.set) {
BSON_ASSERT (BSON_APPEND_VALUE (bson_range_opts, "min", &opts->range_opts->min.value));
}
if (opts->range_opts->max.set) {
BSON_ASSERT (BSON_APPEND_VALUE (bson_range_opts, "max", &opts->range_opts->max.value));
}
if (opts->range_opts->precision.set) {
BSON_ASSERT (BSON_APPEND_INT32 (bson_range_opts, "precision", opts->range_opts->precision.value));
}
if (opts->range_opts->sparsity.set) {
BSON_ASSERT (BSON_APPEND_INT64 (bson_range_opts, "sparsity", opts->range_opts->sparsity.value));
}
if (opts->range_opts->trim_factor.set) {
BSON_ASSERT (BSON_APPEND_INT32 (bson_range_opts, "trimFactor", opts->range_opts->trim_factor.value));
}
}
/*--------------------------------------------------------------------------
*
* _prep_for_auto_encryption --
* If @cmd contains a type=1 payload (document sequence), convert it into
* a type=0 payload (array payload). See OP_MSG spec for details.
* Place the command BSON that should be encrypted into @out.
*
* Post-conditions:
* @out is initialized and set to the full payload. If @cmd did not include
* a type=1 payload, @out is statically initialized. Caller must not modify
* @out after, but must call bson_destroy.
*
* --------------------------------------------------------------------------
*/
static void
_prep_for_auto_encryption (const mongoc_cmd_t *cmd, bson_t *out)
{
// If there are no document sequences (OP_MSG Section with payloadType=1), return the command unchanged.
if (cmd->payloads_count == 0) {
BSON_ASSERT (bson_init_static (out, bson_get_data (cmd->command), cmd->command->len));
return;
}
/* Otherwise, append the type=1 payload as an array. */
bson_copy_to (cmd->command, out);
_mongoc_cmd_append_payload_as_array (cmd, out);
}
/* Return the mongocryptd client to use on a client with automatic encryption
* enabled.
* If @client_encrypted is single-threaded, use the client to mongocryptd.
* If @client_encrypted is multi-threaded, use the client pool to mongocryptd.
*/
mongoc_client_t *
_get_mongocryptd_client (mongoc_client_t *client_encrypted)
{
BSON_ASSERT_PARAM (client_encrypted);
if (client_encrypted->topology->single_threaded) {
return client_encrypted->topology->mongocryptd_client;
}
return mongoc_client_pool_pop (client_encrypted->topology->mongocryptd_client_pool);
}
void
_release_mongocryptd_client (mongoc_client_t *client_encrypted, mongoc_client_t *mongocryptd_client)
{
BSON_ASSERT_PARAM (client_encrypted);
if (!mongocryptd_client) {
return;
}
if (!client_encrypted->topology->single_threaded) {
mongoc_client_pool_push (client_encrypted->topology->mongocryptd_client_pool, mongocryptd_client);
}
}
/* Return the key vault collection to use on a client with automatic encryption
* enabled.
* If no custom key vault client/pool is set, create a collection from the
* @client_encrypted itself.
* If @client_encrypted is single-threaded, use the client to mongocryptd to
* create the collection.
* If @client_encrypted is multi-threaded, use the client pool to mongocryptd
* to create the collection.
*/
mongoc_collection_t *
_get_keyvault_coll (mongoc_client_t *client_encrypted)
{
BSON_ASSERT_PARAM (client_encrypted);
mongoc_write_concern_t *const wc = mongoc_write_concern_new ();
mongoc_read_concern_t *const rc = mongoc_read_concern_new ();
mongoc_client_t *keyvault_client;
const char *db;
const char *coll;
mongoc_collection_t *res = NULL;
db = client_encrypted->topology->keyvault_db;
coll = client_encrypted->topology->keyvault_coll;
if (client_encrypted->topology->single_threaded) {
if (client_encrypted->topology->keyvault_client) {
keyvault_client = client_encrypted->topology->keyvault_client;
} else {
keyvault_client = client_encrypted;
}
} else {
if (client_encrypted->topology->keyvault_client_pool) {
keyvault_client = mongoc_client_pool_pop (client_encrypted->topology->keyvault_client_pool);
} else {
keyvault_client = client_encrypted;
}
}
res = mongoc_client_get_collection (keyvault_client, db, coll);
mongoc_write_concern_set_w (wc, MONGOC_WRITE_CONCERN_W_MAJORITY);
mongoc_collection_set_write_concern (res, wc);
mongoc_read_concern_set_level (rc, MONGOC_READ_CONCERN_LEVEL_MAJORITY);
mongoc_collection_set_read_concern (res, rc);
mongoc_write_concern_destroy (wc);
mongoc_read_concern_destroy (rc);
return res;
}
void
_release_keyvault_coll (mongoc_client_t *client_encrypted, mongoc_collection_t *keyvault_coll)
{
mongoc_client_t *keyvault_client;
BSON_ASSERT_PARAM (client_encrypted);
if (!keyvault_coll) {
return;
}
keyvault_client = keyvault_coll->client;
mongoc_collection_destroy (keyvault_coll);
if (!client_encrypted->topology->single_threaded && client_encrypted->topology->keyvault_client_pool) {
mongoc_client_pool_push (client_encrypted->topology->keyvault_client_pool, keyvault_client);
}
}
static bool
_spawn_mongocryptd (const char *mongocryptd_spawn_path, const bson_t *mongocryptd_spawn_args, bson_error_t *error);
/*--------------------------------------------------------------------------
*
* _mongoc_cse_auto_encrypt --
*
* Perform automatic encryption if enabled.
*
* Return:
* True on success, false on error.
*
* Pre-conditions:
* CSE is enabled on client or its associated client pool.
*
* Post-conditions:
* If return false, @error is set. @encrypted is always initialized.
* @encrypted_cmd is set to the mongoc_cmd_t to send, which may refer
* to @encrypted.
* If automatic encryption was bypassed, @encrypted is set to an empty
* document, but @encrypted_cmd is a copy of @cmd. Caller must always
* bson_destroy @encrypted.
*
*--------------------------------------------------------------------------
*/
bool
_mongoc_cse_auto_encrypt (mongoc_client_t *client_encrypted,
const mongoc_cmd_t *cmd,
mongoc_cmd_t *encrypted_cmd,
bson_t *encrypted,
bson_error_t *error)
{
bool ret = false;
bson_t cmd_bson = BSON_INITIALIZER;
bson_t *result = NULL;
bson_iter_t iter;
mongoc_client_t *mongocryptd_client = NULL;
mongoc_collection_t *keyvault_coll = NULL;
bool retried = false;
ENTRY;
BSON_ASSERT_PARAM (client_encrypted);
bson_init (encrypted);
if (client_encrypted->topology->bypass_auto_encryption) {
memcpy (encrypted_cmd, cmd, sizeof (mongoc_cmd_t));
bson_destroy (&cmd_bson);
RETURN (true);
}
if (cmd->server_stream->sd->max_wire_version < WIRE_VERSION_CSE) {
bson_set_error (error,
MONGOC_ERROR_PROTOCOL,
MONGOC_ERROR_PROTOCOL_BAD_WIRE_VERSION,
"%s",
"Auto-encryption requires a minimum MongoDB version of 4.2");
GOTO (fail);
}
/* Construct the command we're sending to libmongocrypt. If cmd includes a
* type 1 payload, convert it to a type 0 payload. */
bson_destroy (&cmd_bson);
_prep_for_auto_encryption (cmd, &cmd_bson);
keyvault_coll = _get_keyvault_coll (client_encrypted);
mongocryptd_client = _get_mongocryptd_client (client_encrypted);
retry:
bson_destroy (encrypted);
if (!_mongoc_crypt_auto_encrypt (client_encrypted->topology->crypt,
keyvault_coll,
mongocryptd_client,
client_encrypted,
cmd->db_name,
&cmd_bson,
encrypted,
error)) {
/* From the Client-Side Encryption spec: If spawning is necessary, the
* driver MUST spawn mongocryptd whenever server selection on the
* MongoClient to mongocryptd fails. If the MongoClient fails to connect
* after spawning, the server selection error is propagated to the user.
*/
if (!client_encrypted->topology->mongocryptd_bypass_spawn && error->domain == MONGOC_ERROR_SERVER_SELECTION &&
!retried) {
if (!_spawn_mongocryptd (client_encrypted->topology->mongocryptd_spawn_path,
client_encrypted->topology->mongocryptd_spawn_args,
error)) {
GOTO (fail);
}
/* Respawn and retry. */
memset (error, 0, sizeof (*error));
retried = true;
GOTO (retry);
}
GOTO (fail);
}
/* Re-append $db if encryption stripped it. */
if (!bson_iter_init_find (&iter, encrypted, "$db")) {
BSON_APPEND_UTF8 (encrypted, "$db", cmd->db_name);
}
/* Create the modified cmd_t. */
memcpy (encrypted_cmd, cmd, sizeof (mongoc_cmd_t));
/* Modify the mongoc_cmd_t and clear the payloads, since
* _mongoc_cse_auto_encrypt converted the payloads into an embedded array. */
encrypted_cmd->payloads_count = 0;
encrypted_cmd->command = encrypted;
ret = true;
fail:
bson_destroy (result);
bson_destroy (&cmd_bson);
_release_mongocryptd_client (client_encrypted, mongocryptd_client);
_release_keyvault_coll (client_encrypted, keyvault_coll);
RETURN (ret);
}
/*--------------------------------------------------------------------------
*
* _mongoc_cse_auto_decrypt --
*
* Perform automatic decryption.
*
* Return:
* True on success, false on error.
*
* Pre-conditions:
* FLE is enabled on client or its associated client pool.
*
* Post-conditions:
* If return false, @error is set. @decrypted is always initialized.
*
*--------------------------------------------------------------------------
*/
bool
_mongoc_cse_auto_decrypt (
mongoc_client_t *client_encrypted, const char *db_name, const bson_t *reply, bson_t *decrypted, bson_error_t *error)
{
bool ret = false;
mongoc_collection_t *keyvault_coll = NULL;
ENTRY;
BSON_ASSERT_PARAM (client_encrypted);
BSON_UNUSED (db_name);
keyvault_coll = _get_keyvault_coll (client_encrypted);
if (!_mongoc_crypt_auto_decrypt (client_encrypted->topology->crypt, keyvault_coll, reply, decrypted, error)) {
GOTO (fail);
}
ret = true;
fail:
_release_keyvault_coll (client_encrypted, keyvault_coll);
RETURN (ret);
}
static void
_uri_construction_error (bson_error_t *error)
{
bson_set_error (error,
MONGOC_ERROR_CLIENT,
MONGOC_ERROR_CLIENT_INVALID_ENCRYPTION_STATE,
"Error constructing URI to mongocryptd");
}
#ifdef _WIN32
static bool
_do_spawn (const char *path, char **args, bson_error_t *error)
{
mcommon_string_append_t command;
char **arg;
PROCESS_INFORMATION process_information;
STARTUPINFO startup_info;
/* Construct the full command, quote path and arguments. */
mcommon_string_new_as_append (&command);
mcommon_string_append (&command, "\"");
if (path) {
mcommon_string_append (&command, path);
}
mcommon_string_append (&command, "mongocryptd.exe");
mcommon_string_append (&command, "\"");
/* skip the "mongocryptd" first arg. */
arg = args + 1;
while (*arg) {
mcommon_string_append (&command, " \"");
mcommon_string_append (&command, *arg);
mcommon_string_append (&command, "\"");
arg++;
}
ZeroMemory (&process_information, sizeof (process_information));
ZeroMemory (&startup_info, sizeof (startup_info));
startup_info.cb = sizeof (startup_info);
if (!CreateProcessA (NULL,
mcommon_str_from_append (&command),
NULL,
NULL,
false /* inherit descriptors */,
DETACHED_PROCESS /* FLAGS */,
NULL /* environment */,
NULL /* current directory */,
&startup_info,
&process_information)) {
char *message = mongoc_winerr_to_string (GetLastError ());
bson_set_error (error,
MONGOC_ERROR_CLIENT,
MONGOC_ERROR_CLIENT_INVALID_ENCRYPTION_STATE,
"failed to spawn mongocryptd: %s",
message);
bson_free (message);
mcommon_string_from_append_destroy (&command);
return false;
}
mcommon_string_from_append_destroy (&command);
return true;
}
#else
/*--------------------------------------------------------------------------
*
* _do_spawn --
*
* Spawn process defined by arg[0] on POSIX systems.
*
* Note, if mongocryptd fails to spawn (due to not being found on the path),
* an error is not reported and true is returned. Users will get an error
* later, upon first attempt to use mongocryptd.
*
* These comments refer to three distinct processes: parent, child, and
* mongocryptd.
* - parent is initial calling process
* - child is the first forked child. It fork-execs mongocryptd then
* terminates. This makes mongocryptd an orphan, making it immediately
* adopted by the init process.
* - mongocryptd is the final background daemon (grandchild process).
*
* Return:
* False if an error definitely occurred. Returns true if no reportable
* error occurred (though an error may have occurred in starting
* mongocryptd, resulting in the process not running).
*
* Arguments:
* args - A NULL terminated list of arguments. The first argument MUST
* be the name of the process to execute, and the last argument MUST be
* NULL.
*
* Post-conditions:
* If return false, @error is set.
*
*--------------------------------------------------------------------------
*/
static bool
_do_spawn (const char *path, char **args, bson_error_t *error)
{
pid_t pid;
int fd;
char *to_exec;
// String allocation must be done up-front, as allocation is not fork-safe.
if (path) {
to_exec = bson_strdup_printf ("%s%s", path, args[0]);
} else {
to_exec = bson_strdup (args[0]);
}
/* Fork. The child will terminate immediately (after fork-exec'ing
* mongocryptd). This orphans mongocryptd, and allows parent to wait on
* child. */
pid = fork ();
if (pid < 0) {
bson_set_error (error,
MONGOC_ERROR_CLIENT,
MONGOC_ERROR_CLIENT_INVALID_ENCRYPTION_STATE,
"failed to fork (errno=%d) '%s'",
errno,
strerror (errno));
bson_free (to_exec);
return false;
} else if (pid > 0) {
int child_status;
/* Child will spawn mongocryptd and immediately terminate to turn
* mongocryptd into an orphan. */
if (waitpid (pid, &child_status, 0 /* options */) < 0) {
bson_set_error (error,
MONGOC_ERROR_CLIENT,
MONGOC_ERROR_CLIENT_INVALID_ENCRYPTION_STATE,
"failed to wait for child (errno=%d) '%s'",
errno,
strerror (errno));
bson_free (to_exec);
return false;
}
/* parent is done at this point, return. */
bson_free (to_exec);
return true;
}
/* We're no longer in the parent process. Errors encountered result in an
* exit.
* Note, we're not logging here, because that would require the user's log
* callback to be fork-safe.
*/
/* Start a new session for the child, so it is not bound to the current
* session (e.g. terminal session). */
if (setsid () < 0) {
_exit (EXIT_FAILURE);
}
/* Fork again. Child terminates so mongocryptd gets orphaned and immedately
* adopted by init. */
signal (SIGHUP, SIG_IGN);
pid = fork ();
if (pid < 0) {
_exit (EXIT_FAILURE);
} else if (pid > 0) {
/* Child terminates immediately. */
_exit (EXIT_SUCCESS);
}
/* If we later decide to change the working directory for the pid file path,
* possibly change the process's working directory with chdir like: `chdir
* (default_pid_path)`. Currently pid file ends up in application's working
* directory. */
/* Set the user file creation mask to zero. */
umask (0);
/* Close and reopen stdin. */
fd = open ("/dev/null", O_RDONLY);
if (fd < 0) {
_exit (EXIT_FAILURE);
}
dup2 (fd, STDIN_FILENO);
close (fd);
/* Close and reopen stdout. */
fd = open ("/dev/null", O_WRONLY);
if (fd < 0) {
_exit (EXIT_FAILURE);
}
if (dup2 (fd, STDOUT_FILENO) < 0 || close (fd) < 0) {
_exit (EXIT_FAILURE);
}
/* Close and reopen stderr. */
fd = open ("/dev/null", O_RDWR);
if (fd < 0) {
_exit (EXIT_FAILURE);
}
if (dup2 (fd, STDERR_FILENO) < 0 || close (fd) < 0) {
_exit (EXIT_FAILURE);
}
if (execvp (to_exec, args) < 0) {
/* Need to exit. */
_exit (EXIT_FAILURE);
}
/* Will never execute. */
return false;
}
#endif
/*--------------------------------------------------------------------------
*
* _spawn_mongocryptd --
*
* Attempt to spawn mongocryptd as a background process.
*
* Return:
* False if an error definitely occurred. Returns true if no reportable
* error occurred (though an error may have occurred in starting
* mongocryptd, resulting in the process not running).
*
* Arguments:
* mongocryptd_spawn_path May be NULL, otherwise the path to mongocryptd.
* mongocryptd_spawn_args May be NULL, otherwise a bson_iter_t to the
* value "mongocryptdSpawnArgs" in AutoEncryptionOpts.extraOptions
* (see spec).
*
* Post-conditions:
* If return false, @error is set.
*
*--------------------------------------------------------------------------
*/
static bool
_spawn_mongocryptd (const char *mongocryptd_spawn_path, const bson_t *mongocryptd_spawn_args, bson_error_t *error)
{
char **args = NULL;
bson_iter_t iter;
bool passed_idle_shutdown_timeout_secs = false;
int num_args = 2; /* for leading "mongocrypt" and trailing NULL */
int i;
bool ret;
/* iterate once to get length and validate all are strings */
if (mongocryptd_spawn_args) {
bson_iter_init (&iter, mongocryptd_spawn_args);
while (bson_iter_next (&iter)) {
if (!BSON_ITER_HOLDS_UTF8 (&iter)) {
bson_set_error (error,
MONGOC_ERROR_CLIENT,
MONGOC_ERROR_CLIENT_INVALID_ENCRYPTION_ARG,
"invalid argument for mongocryptd, must be string");
return false;
}
/* Check if the arg starts with --idleShutdownTimeoutSecs= or is equal
* to --idleShutdownTimeoutSecs */
if (0 == strncmp ("--idleShutdownTimeoutSecs=", bson_iter_utf8 (&iter, NULL), 26) ||
0 == strcmp ("--idleShutdownTimeoutSecs", bson_iter_utf8 (&iter, NULL))) {
passed_idle_shutdown_timeout_secs = true;
}
num_args++;
}
}
if (!passed_idle_shutdown_timeout_secs) {
/* add one more */
num_args++;
}
args = (char **) bson_malloc (sizeof (char *) * num_args);
i = 0;
args[i++] = "mongocryptd";
if (mongocryptd_spawn_args) {
bson_iter_init (&iter, mongocryptd_spawn_args);
while (bson_iter_next (&iter)) {
args[i++] = (char *) bson_iter_utf8 (&iter, NULL);
}
}
if (!passed_idle_shutdown_timeout_secs) {
args[i++] = "--idleShutdownTimeoutSecs=60";
}
BSON_ASSERT (i == num_args - 1);
args[i++] = NULL;
ret = _do_spawn (mongocryptd_spawn_path, args, error);
bson_free (args);
return ret;
}
static bool
_parse_extra (const bson_t *extra, mongoc_topology_t *topology, mongoc_uri_t **uri, bson_error_t *error)
{
bson_iter_t iter;
bool ret = false;
ENTRY;
*uri = NULL;
if (extra) {
if (bson_iter_init_find (&iter, extra, "mongocryptdBypassSpawn")) {
if (!BSON_ITER_HOLDS_BOOL (&iter)) {
bson_set_error (error,
MONGOC_ERROR_CLIENT,
MONGOC_ERROR_CLIENT_INVALID_ENCRYPTION_ARG,
"Expected bool for option 'mongocryptdBypassSpawn'");
GOTO (fail);
}
topology->mongocryptd_bypass_spawn = bson_iter_bool (&iter);
}
if (bson_iter_init_find (&iter, extra, "mongocryptdSpawnPath")) {
if (!BSON_ITER_HOLDS_UTF8 (&iter)) {
bson_set_error (error,
MONGOC_ERROR_CLIENT,
MONGOC_ERROR_CLIENT_INVALID_ENCRYPTION_ARG,
"Expected string for option 'mongocryptdSpawnPath'");
GOTO (fail);
}
topology->mongocryptd_spawn_path = bson_strdup (bson_iter_utf8 (&iter, NULL));
}
if (bson_iter_init_find (&iter, extra, "mongocryptdSpawnArgs")) {
uint32_t array_len;
const uint8_t *array_data;
if (!BSON_ITER_HOLDS_ARRAY (&iter)) {
bson_set_error (error,
MONGOC_ERROR_CLIENT,
MONGOC_ERROR_CLIENT_INVALID_ENCRYPTION_ARG,
"Expected array for option 'mongocryptdSpawnArgs'");
GOTO (fail);
}
bson_iter_array (&iter, &array_len, &array_data);
topology->mongocryptd_spawn_args = bson_new_from_data (array_data, array_len);
}
if (bson_iter_init_find (&iter, extra, "mongocryptdURI")) {
if (!BSON_ITER_HOLDS_UTF8 (&iter)) {
bson_set_error (error,
MONGOC_ERROR_CLIENT,
MONGOC_ERROR_CLIENT_INVALID_ENCRYPTION_ARG,
"Expected string for option 'mongocryptdURI'");
GOTO (fail);
}
*uri = mongoc_uri_new_with_error (bson_iter_utf8 (&iter, NULL), error);
if (!*uri) {
GOTO (fail);
}
}
if (bson_iter_init_find (&iter, extra, "cryptSharedLibPath")) {
if (!BSON_ITER_HOLDS_UTF8 (&iter)) {
bson_set_error (error,
MONGOC_ERROR_CLIENT,
MONGOC_ERROR_CLIENT_INVALID_ENCRYPTION_ARG,
"Expected a string for 'cryptSharedLibPath'");
GOTO (fail);
}
size_t len;
const char *ptr = bson_iter_utf8_unsafe (&iter, &len);
bson_free (topology->clientSideEncryption.autoOptions.extraOptions.cryptSharedLibPath);
topology->clientSideEncryption.autoOptions.extraOptions.cryptSharedLibPath = bson_strdup (ptr);
}
if (bson_iter_init_find (&iter, extra, "cryptSharedLibRequired")) {
if (!BSON_ITER_HOLDS_BOOL (&iter)) {
bson_set_error (error,
MONGOC_ERROR_CLIENT,
MONGOC_ERROR_CLIENT_INVALID_ENCRYPTION_ARG,
"Expected a bool for 'cryptSharedLibRequired'");
GOTO (fail);
}
topology->clientSideEncryption.autoOptions.extraOptions.cryptSharedLibRequired = bson_iter_bool_unsafe (&iter);
}
}
if (!*uri) {
*uri = mongoc_uri_new_with_error ("mongodb://localhost:27020", error);
if (!*uri) {
GOTO (fail);
}
if (!mongoc_uri_set_option_as_int32 (*uri, MONGOC_URI_SERVERSELECTIONTIMEOUTMS, 10000)) {
_uri_construction_error (error);
GOTO (fail);
}
}
ret = true;
fail:
RETURN (ret);
}
bool
_mongoc_cse_client_enable_auto_encryption (mongoc_client_t *client,
mongoc_auto_encryption_opts_t *opts,
bson_error_t *error)
{
bool ret = false;
mongoc_uri_t *mongocryptd_uri = NULL;
ENTRY;
BSON_ASSERT (client);
if (!client->topology->single_threaded) {
bson_set_error (error,
MONGOC_ERROR_CLIENT,
MONGOC_ERROR_CLIENT_INVALID_ENCRYPTION_ARG,
"Automatic encryption on pooled clients must be set on the pool");
GOTO (fail);
}
if (!opts) {
bson_set_error (
error, MONGOC_ERROR_CLIENT, MONGOC_ERROR_CLIENT_INVALID_ENCRYPTION_ARG, "Auto encryption options required");
GOTO (fail);
}
if (opts->keyvault_client_pool) {
bson_set_error (error,
MONGOC_ERROR_CLIENT,
MONGOC_ERROR_CLIENT_INVALID_ENCRYPTION_ARG,
"The key vault client pool only applies to a client "
"pool, not a single threaded client");
GOTO (fail);
}
if (opts->keyvault_client && !opts->keyvault_client->topology->single_threaded) {
bson_set_error (error,
MONGOC_ERROR_CLIENT,
MONGOC_ERROR_CLIENT_INVALID_ENCRYPTION_ARG,
"The key vault client must be single threaded, not be "
"from a client pool");
GOTO (fail);
}
/* Check for required options */
if (!opts->keyvault_db || !opts->keyvault_coll) {
bson_set_error (
error, MONGOC_ERROR_CLIENT, MONGOC_ERROR_CLIENT_INVALID_ENCRYPTION_ARG, "Key vault namespace option required");
GOTO (fail);
}
if (!opts->kms_providers) {
bson_set_error (
error, MONGOC_ERROR_CLIENT, MONGOC_ERROR_CLIENT_INVALID_ENCRYPTION_ARG, "KMS providers option required");
GOTO (fail);
}
if (client->topology->cse_state != MONGOC_CSE_DISABLED) {
bson_set_error (
error, MONGOC_ERROR_CLIENT, MONGOC_ERROR_CLIENT_INVALID_ENCRYPTION_STATE, "Automatic encryption already set");
GOTO (fail);
} else {
client->topology->cse_state = MONGOC_CSE_ENABLED;
}
if (!_parse_extra (opts->extra, client->topology, &mongocryptd_uri, error)) {
GOTO (fail);
}
client->topology->crypt =
_mongoc_crypt_new (opts->kms_providers,
opts->schema_map,
opts->encrypted_fields_map,
opts->tls_opts,
client->topology->clientSideEncryption.autoOptions.extraOptions.cryptSharedLibPath,
client->topology->clientSideEncryption.autoOptions.extraOptions.cryptSharedLibRequired,
opts->bypass_auto_encryption,
opts->bypass_query_analysis,
opts->creds_cb,
opts->cache_expiration_ms,
error);
if (!client->topology->crypt) {
GOTO (fail);
}
const bool have_crypt_shared = _mongoc_crypt_get_crypt_shared_version (client->topology->crypt) != NULL;
client->topology->bypass_auto_encryption = opts->bypass_auto_encryption;
client->topology->bypass_query_analysis = opts->bypass_query_analysis;
if (!client->topology->bypass_auto_encryption && !client->topology->bypass_query_analysis && !have_crypt_shared) {
if (!client->topology->mongocryptd_bypass_spawn) {
if (!_spawn_mongocryptd (
client->topology->mongocryptd_spawn_path, client->topology->mongocryptd_spawn_args, error)) {
GOTO (fail);
}
}
/* By default, single threaded clients set serverSelectionTryOnce to
* true, which means server selection fails if a topology scan fails
* the first time (i.e. it will not make repeat attempts until
* serverSelectionTimeoutMS expires). Override this, since the first
* attempt to connect to mongocryptd may fail when spawning, as it
* takes some time for mongocryptd to listen on sockets. */
if (!mongoc_uri_set_option_as_bool (mongocryptd_uri, MONGOC_URI_SERVERSELECTIONTRYONCE, false)) {
_uri_construction_error (error);
GOTO (fail);
}
client->topology->mongocryptd_client = mongoc_client_new_from_uri (mongocryptd_uri);
if (!client->topology->mongocryptd_client) {
bson_set_error (error,
MONGOC_ERROR_CLIENT,
MONGOC_ERROR_CLIENT_INVALID_ENCRYPTION_STATE,
"Unable to create client to mongocryptd");
GOTO (fail);
}
/* Similarly, single threaded clients will by default wait for 5 second
* cooldown period after failing to connect to a server before making
* another attempt. Meaning if the first attempt to mongocryptd fails
* to connect, then the user observes a 5 second delay. This is not
* configurable in the URI, so override. */
_mongoc_topology_bypass_cooldown (client->topology->mongocryptd_client->topology);
/* Also, since single threaded server selection can foreseeably take
* connectTimeoutMS (which by default is longer than 10 seconds), reduce
* this as well. */
if (!mongoc_uri_set_option_as_int32 (mongocryptd_uri, MONGOC_URI_CONNECTTIMEOUTMS, 10000)) {
_uri_construction_error (error);
GOTO (fail);
}
}
client->topology->keyvault_db = bson_strdup (opts->keyvault_db);
client->topology->keyvault_coll = bson_strdup (opts->keyvault_coll);
if (opts->keyvault_client) {
client->topology->keyvault_client = opts->keyvault_client;
}
if (opts->encrypted_fields_map) {
client->topology->encrypted_fields_map = bson_copy (opts->encrypted_fields_map);
}
ret = true;
fail:
mongoc_uri_destroy (mongocryptd_uri);
RETURN (ret);
}
bool
_mongoc_cse_client_pool_enable_auto_encryption (mongoc_topology_t *topology,
mongoc_auto_encryption_opts_t *opts,
bson_error_t *error)
{
bool setup_okay = false;
mongoc_uri_t *mongocryptd_uri = NULL;
mongoc_topology_cse_state_t prev_cse_state = MONGOC_CSE_STARTING;
BSON_ASSERT (topology);
if (!opts) {
bson_set_error (
error, MONGOC_ERROR_CLIENT, MONGOC_ERROR_CLIENT_INVALID_ENCRYPTION_ARG, "Auto encryption options required");
GOTO (fail);
}
if (opts->keyvault_client) {
bson_set_error (error,
MONGOC_ERROR_CLIENT,
MONGOC_ERROR_CLIENT_INVALID_ENCRYPTION_ARG,
"The key vault client only applies to a single threaded "
"client not a client pool. Set a key vault client pool");
GOTO (fail);
}
/* Check for required options */
if (!opts->keyvault_db || !opts->keyvault_coll) {
bson_set_error (
error, MONGOC_ERROR_CLIENT, MONGOC_ERROR_CLIENT_INVALID_ENCRYPTION_ARG, "Key vault namespace option required");
GOTO (fail);
}
if (!opts->kms_providers) {
bson_set_error (
error, MONGOC_ERROR_CLIENT, MONGOC_ERROR_CLIENT_INVALID_ENCRYPTION_ARG, "KMS providers option required");
GOTO (fail);
}
prev_cse_state = mcommon_atomic_int_compare_exchange_strong (
(int *) &topology->cse_state, MONGOC_CSE_DISABLED, MONGOC_CSE_STARTING, mcommon_memory_order_acquire);
while (prev_cse_state == MONGOC_CSE_STARTING) {
/* Another thread is starting client-side encryption. It may take some
* time to start, but don't continue until it is finished. */
bson_thrd_yield ();
prev_cse_state = mcommon_atomic_int_compare_exchange_strong (
(int *) &topology->cse_state, MONGOC_CSE_DISABLED, MONGOC_CSE_STARTING, mcommon_memory_order_acquire);
}
if (prev_cse_state == MONGOC_CSE_ENABLED) {
bson_set_error (
error, MONGOC_ERROR_CLIENT, MONGOC_ERROR_CLIENT_INVALID_ENCRYPTION_STATE, "Automatic encryption already set");
GOTO (fail);
}
/* We just set the CSE state from DISABLED to STARTING. Start it up now. */
if (!_parse_extra (opts->extra, topology, &mongocryptd_uri, error)) {
GOTO (fail);
}
topology->crypt = _mongoc_crypt_new (opts->kms_providers,
opts->schema_map,
opts->encrypted_fields_map,
opts->tls_opts,
topology->clientSideEncryption.autoOptions.extraOptions.cryptSharedLibPath,
topology->clientSideEncryption.autoOptions.extraOptions.cryptSharedLibRequired,
opts->bypass_auto_encryption,
opts->bypass_query_analysis,
opts->creds_cb,
opts->cache_expiration_ms,
error);
if (!topology->crypt) {
GOTO (fail);
}
topology->bypass_auto_encryption = opts->bypass_auto_encryption;
topology->bypass_query_analysis = opts->bypass_query_analysis;
if (!topology->bypass_auto_encryption && !topology->bypass_query_analysis) {
if (!topology->mongocryptd_bypass_spawn) {
if (!_spawn_mongocryptd (topology->mongocryptd_spawn_path, topology->mongocryptd_spawn_args, error)) {
GOTO (fail);
}
}
topology->mongocryptd_client_pool = mongoc_client_pool_new (mongocryptd_uri);
if (!topology->mongocryptd_client_pool) {
bson_set_error (error,
MONGOC_ERROR_CLIENT,
MONGOC_ERROR_CLIENT_INVALID_ENCRYPTION_STATE,
"Unable to create client pool to mongocryptd");
GOTO (fail);
}
}
topology->keyvault_db = bson_strdup (opts->keyvault_db);
topology->keyvault_coll = bson_strdup (opts->keyvault_coll);
if (opts->keyvault_client_pool) {
topology->keyvault_client_pool = opts->keyvault_client_pool;
}
if (opts->encrypted_fields_map) {
topology->encrypted_fields_map = bson_copy (opts->encrypted_fields_map);
}
setup_okay = true;
BSON_ASSERT (prev_cse_state == MONGOC_CSE_DISABLED);
fail:
if (prev_cse_state == MONGOC_CSE_DISABLED) {
/* We need to set the new CSE state. */
mongoc_topology_cse_state_t new_state = setup_okay ? MONGOC_CSE_ENABLED : MONGOC_CSE_DISABLED;
mcommon_atomic_int_exchange ((int *) &topology->cse_state, new_state, mcommon_memory_order_release);
}
mongoc_uri_destroy (mongocryptd_uri);
RETURN (setup_okay);
}
struct _mongoc_client_encryption_t {
_mongoc_crypt_t *crypt;
mongoc_collection_t *keyvault_coll;
bson_t *kms_providers;
};
mongoc_client_encryption_t *
mongoc_client_encryption_new (mongoc_client_encryption_opts_t *opts, bson_error_t *error)
{
mongoc_client_encryption_t *client_encryption = NULL;
bool success = false;
mongoc_write_concern_t *wc = NULL;
mongoc_read_concern_t *rc = NULL;
/* Check for required options */
if (!opts || !opts->keyvault_client || !opts->keyvault_db || !opts->keyvault_coll) {
bson_set_error (error,
MONGOC_ERROR_CLIENT,
MONGOC_ERROR_CLIENT_INVALID_ENCRYPTION_ARG,
"Key vault client and namespace option required");
goto fail;
}
if (!opts->kms_providers) {
bson_set_error (
error, MONGOC_ERROR_CLIENT, MONGOC_ERROR_CLIENT_INVALID_ENCRYPTION_ARG, "KMS providers option required");
goto fail;
}
client_encryption = bson_malloc0 (sizeof (*client_encryption));
client_encryption->keyvault_coll =
mongoc_client_get_collection (opts->keyvault_client, opts->keyvault_db, opts->keyvault_coll);
wc = mongoc_write_concern_new ();
mongoc_write_concern_set_w (wc, MONGOC_WRITE_CONCERN_W_MAJORITY);
mongoc_collection_set_write_concern (client_encryption->keyvault_coll, wc);
rc = mongoc_read_concern_new ();
mongoc_read_concern_set_level (rc, MONGOC_READ_CONCERN_LEVEL_MAJORITY);
mongoc_collection_set_read_concern (client_encryption->keyvault_coll, rc);
client_encryption->kms_providers = bson_copy (opts->kms_providers);
client_encryption->crypt = _mongoc_crypt_new (opts->kms_providers,
NULL /* schema_map */,
NULL /* encrypted_fields_map */,
opts->tls_opts,
NULL /* No crypt_shared path */,
false /* crypt_shared not requried */,
true, /* bypassAutoEncryption (We are explicit) */
false,
/* bypass_query_analysis. Not applicable. */
opts->creds_cb,
opts->cache_expiration_ms,
error);
if (!client_encryption->crypt) {
goto fail;
}
success = true;
fail:
mongoc_write_concern_destroy (wc);
mongoc_read_concern_destroy (rc);
if (!success) {
mongoc_client_encryption_destroy (client_encryption);
return NULL;
}
return client_encryption;
}
void
mongoc_client_encryption_destroy (mongoc_client_encryption_t *client_encryption)
{
if (!client_encryption) {
return;
}
_mongoc_crypt_destroy (client_encryption->crypt);
mongoc_collection_destroy (client_encryption->keyvault_coll);
bson_destroy (client_encryption->kms_providers);
bson_free (client_encryption);
}
static bool
_coll_has_write_concern_majority (const mongoc_collection_t *coll)
{
const mongoc_write_concern_t *const wc = mongoc_collection_get_write_concern (coll);
return wc && mongoc_write_concern_get_wmajority (wc);
}
static bool
_coll_has_read_concern_majority (const mongoc_collection_t *coll)
{
const mongoc_read_concern_t *const rc = mongoc_collection_get_read_concern (coll);
const char *const level = rc ? mongoc_read_concern_get_level (rc) : NULL;
return level && strcmp (level, MONGOC_READ_CONCERN_LEVEL_MAJORITY) == 0;
}
bool
mongoc_client_encryption_create_datakey (mongoc_client_encryption_t *client_encryption,
const char *kms_provider,
const mongoc_client_encryption_datakey_opts_t *opts,
bson_value_t *keyid,
bson_error_t *error)
{
bool ret = false;
bson_t datakey = BSON_INITIALIZER;
bson_t insert_opts = BSON_INITIALIZER;
ENTRY;
BSON_ASSERT_PARAM (client_encryption);
BSON_ASSERT (_coll_has_write_concern_majority (client_encryption->keyvault_coll));
if (!opts) {
bson_set_error (error, MONGOC_ERROR_CLIENT, MONGOC_ERROR_CLIENT_INVALID_ENCRYPTION_ARG, "required 'opts' unset");
GOTO (fail);
}
/* reset, so it is safe for caller to call bson_value_destroy on error or
* success. */
if (keyid) {
keyid->value_type = BSON_TYPE_EOD;
}
bson_destroy (&datakey);
if (!_mongoc_crypt_create_datakey (client_encryption->crypt,
kms_provider,
opts->masterkey,
opts->keyaltnames,
opts->keyaltnames_count,
opts->keymaterial,
opts->keymaterial_len,
&datakey,
error)) {
GOTO (fail);
}
if (!mongoc_collection_insert_one (
client_encryption->keyvault_coll, &datakey, NULL /* opts */, NULL /* reply */, error)) {
GOTO (fail);
}
if (keyid) {
bson_iter_t iter;
const bson_value_t *id_value;
if (!bson_iter_init_find (&iter, &datakey, "_id")) {
bson_set_error (error,
MONGOC_ERROR_CLIENT,
MONGOC_ERROR_CLIENT_INVALID_ENCRYPTION_STATE,
"data key not did not contain _id");
GOTO (fail);
} else if (!BSON_ITER_HOLDS_BINARY (&iter)) {
bson_set_error (error,
MONGOC_ERROR_CLIENT,
MONGOC_ERROR_CLIENT_INVALID_ENCRYPTION_STATE,
"data key _id does not contain binary");
GOTO (fail);
} else {
id_value = bson_iter_value (&iter);
bson_value_copy (id_value, keyid);
}
}
ret = true;
fail:
bson_destroy (&insert_opts);
bson_destroy (&datakey);
RETURN (ret);
}
bool
mongoc_client_encryption_rewrap_many_datakey (mongoc_client_encryption_t *client_encryption,
const bson_t *filter,
const char *provider,
const bson_t *master_key,
mongoc_client_encryption_rewrap_many_datakey_result_t *result,
bson_error_t *error)
{
bson_t keys = BSON_INITIALIZER;
bson_t local_result = BSON_INITIALIZER;
bson_t *const bulk_write_result = result ? &result->bulk_write_result : &local_result;
mongoc_bulk_operation_t *bulk = NULL;
bson_iter_t iter;
bool ret = false;
ENTRY;
BSON_ASSERT_PARAM (client_encryption);
BSON_ASSERT (_coll_has_read_concern_majority (client_encryption->keyvault_coll));
BSON_ASSERT (_coll_has_write_concern_majority (client_encryption->keyvault_coll));
bson_reinit (bulk_write_result);
if (master_key && !provider) {
bson_set_error (error,
MONGOC_ERROR_CLIENT,
MONGOC_ERROR_CLIENT_INVALID_ENCRYPTION_ARG,
"expected 'provider' to be set to identify type of 'master_key'");
GOTO (fail);
}
if (!_mongoc_crypt_rewrap_many_datakey (
client_encryption->crypt, client_encryption->keyvault_coll, filter, provider, master_key, &keys, error)) {
GOTO (fail);
}
/* No keys rewrapped, no key documents to update. */
if (bson_empty (&keys)) {
bson_destroy (&keys);
bson_destroy (&local_result);
return true;
}
bulk = mongoc_collection_create_bulk_operation_with_opts (client_encryption->keyvault_coll, NULL);
BSON_ASSERT (bulk);
if (!bson_iter_init_find (&iter, &keys, "v")) {
bson_set_error (error,
MONGOC_ERROR_CLIENT,
MONGOC_ERROR_CLIENT_INVALID_ENCRYPTION_STATE,
"result did not contain expected field 'v'");
GOTO (fail);
}
if (!BSON_ITER_HOLDS_ARRAY (&iter)) {
bson_set_error (error,
MONGOC_ERROR_CLIENT,
MONGOC_ERROR_CLIENT_INVALID_ENCRYPTION_STATE,
"result did not return an array as expected");
GOTO (fail);
}
BSON_ASSERT (bson_iter_recurse (&iter, &iter));
while (bson_iter_next (&iter)) {
const uint8_t *data = NULL;
uint32_t len = 0u;
bson_t key;
bson_iter_t key_iter;
bson_subtype_t subtype;
bson_t selector = BSON_INITIALIZER;
bson_t document = BSON_INITIALIZER;
bool doc_success = false;
bson_iter_document (&iter, &len, &data);
if (!data || !bson_init_static (&key, data, len)) {
bson_set_error (error,
MONGOC_ERROR_CLIENT,
MONGOC_ERROR_CLIENT_INVALID_ENCRYPTION_STATE,
"element is not a valid BSON document");
goto doc_done;
}
/* Find _id and use as selector. */
{
if (!bson_iter_init_find (&key_iter, &key, "_id")) {
bson_set_error (error,
MONGOC_ERROR_CLIENT,
MONGOC_ERROR_CLIENT_INVALID_ENCRYPTION_STATE,
"could not find _id in key document");
goto doc_done;
}
bson_iter_binary (&key_iter, &subtype, &len, &data);
if (!data || subtype != BSON_SUBTYPE_UUID) {
bson_set_error (error,
MONGOC_ERROR_CLIENT,
MONGOC_ERROR_CLIENT_INVALID_ENCRYPTION_STATE,
"expected _id in key document to be a UUID");
goto doc_done;
}
BSON_ASSERT (bson_append_iter (&selector, "_id", 3, &key_iter));
}
/* Find and include potentially updated fields. */
{
bson_t child;
BSON_ASSERT (BSON_APPEND_DOCUMENT_BEGIN (&document, "$set", &child));
{
if (bson_iter_init_find (&key_iter, &key, "masterKey")) {
BSON_ASSERT (bson_append_iter (&child, "masterKey", -1, &key_iter));
}
if (bson_iter_init_find (&key_iter, &key, "keyMaterial")) {
BSON_ASSERT (bson_append_iter (&child, "keyMaterial", -1, &key_iter));
}
}
BSON_ASSERT (bson_append_document_end (&document, &child));
}
/* Update updateDate field. */
BCON_APPEND (&document, "$currentDate", "{", "updateDate", BCON_BOOL (true), "}");
if (!mongoc_bulk_operation_update_one_with_opts (bulk, &selector, &document, NULL, error)) {
goto doc_done;
}
doc_success = true;
doc_done:
bson_destroy (&key);
bson_destroy (&selector);
bson_destroy (&document);
if (!doc_success) {
GOTO (fail);
}
}
if (!mongoc_bulk_operation_execute (bulk, bulk_write_result, error)) {
GOTO (fail);
}
ret = true;
fail:
bson_destroy (&keys);
bson_destroy (&local_result);
mongoc_bulk_operation_destroy (bulk);
RETURN (ret);
}
bool
mongoc_client_encryption_delete_key (mongoc_client_encryption_t *client_encryption,
const bson_value_t *keyid,
bson_t *reply,
bson_error_t *error)
{
bool ret = false;
bson_t selector = BSON_INITIALIZER;
ENTRY;
BSON_ASSERT_PARAM (client_encryption);
BSON_ASSERT_PARAM (keyid);
BSON_ASSERT (_coll_has_write_concern_majority (client_encryption->keyvault_coll));
BSON_ASSERT (keyid->value_type == BSON_TYPE_BINARY);
BSON_ASSERT (keyid->value.v_binary.subtype == BSON_SUBTYPE_UUID);
BSON_ASSERT (keyid->value.v_binary.data_len > 0u);
BSON_ASSERT (BSON_APPEND_BINARY (
&selector, "_id", keyid->value.v_binary.subtype, keyid->value.v_binary.data, keyid->value.v_binary.data_len));
ret = mongoc_collection_delete_one (client_encryption->keyvault_coll, &selector, NULL, reply, error);
bson_destroy (&selector);
RETURN (ret);
}
bool
mongoc_client_encryption_get_key (mongoc_client_encryption_t *client_encryption,
const bson_value_t *keyid,
bson_t *key_doc,
bson_error_t *error)
{
bson_t filter = BSON_INITIALIZER;
mongoc_cursor_t *cursor = NULL;
bool ret = false;
ENTRY;
BSON_ASSERT_PARAM (client_encryption);
BSON_ASSERT_PARAM (keyid);
BSON_ASSERT (keyid->value_type == BSON_TYPE_BINARY);
BSON_ASSERT (keyid->value.v_binary.subtype == BSON_SUBTYPE_UUID);
BSON_ASSERT (keyid->value.v_binary.data_len > 0u);
BSON_ASSERT (BSON_APPEND_BINARY (
&filter, "_id", keyid->value.v_binary.subtype, keyid->value.v_binary.data, keyid->value.v_binary.data_len));
BSON_ASSERT (_coll_has_read_concern_majority (client_encryption->keyvault_coll));
_mongoc_bson_init_if_set (key_doc);
cursor = mongoc_collection_find_with_opts (client_encryption->keyvault_coll, &filter, NULL, NULL);
ret = !mongoc_cursor_error (cursor, error);
if (ret && key_doc) {
const bson_t *bson = NULL;
if (mongoc_cursor_next (cursor, &bson)) {
bson_copy_to (bson, key_doc);
} else if (mongoc_cursor_error (cursor, error)) {
ret = false;
}
}
bson_destroy (&filter);
mongoc_cursor_destroy (cursor);
RETURN (ret);
}
mongoc_cursor_t *
mongoc_client_encryption_get_keys (mongoc_client_encryption_t *client_encryption, bson_error_t *error)
{
mongoc_cursor_t *cursor = NULL;
bson_t filter = BSON_INITIALIZER;
ENTRY;
BSON_UNUSED (error);
BSON_ASSERT_PARAM (client_encryption);
BSON_ASSERT (_coll_has_read_concern_majority (client_encryption->keyvault_coll));
/* If an error occurred, user should query cursor error. */
cursor = mongoc_collection_find_with_opts (client_encryption->keyvault_coll, &filter, NULL, NULL);
bson_destroy (&filter);
RETURN (cursor);
}
bool
mongoc_client_encryption_add_key_alt_name (mongoc_client_encryption_t *client_encryption,
const bson_value_t *keyid,
const char *keyaltname,
bson_t *key_doc,
bson_error_t *error)
{
mongoc_find_and_modify_opts_t *const opts = mongoc_find_and_modify_opts_new ();
bson_t query = BSON_INITIALIZER;
bool ret = false;
bson_t local_reply;
ENTRY;
BSON_ASSERT_PARAM (client_encryption);
BSON_ASSERT_PARAM (keyid);
BSON_ASSERT_PARAM (keyaltname);
BSON_ASSERT (_coll_has_read_concern_majority (client_encryption->keyvault_coll));
BSON_ASSERT (_coll_has_write_concern_majority (client_encryption->keyvault_coll));
BSON_ASSERT (keyid->value_type == BSON_TYPE_BINARY);
BSON_ASSERT (keyid->value.v_binary.subtype == BSON_SUBTYPE_UUID);
BSON_ASSERT (keyid->value.v_binary.data_len > 0u);
BSON_ASSERT (BSON_APPEND_BINARY (
&query, "_id", keyid->value.v_binary.subtype, keyid->value.v_binary.data, keyid->value.v_binary.data_len));
_mongoc_bson_init_if_set (key_doc);
{
bson_t *const update = BCON_NEW ("$addToSet", "{", "keyAltNames", BCON_UTF8 (keyaltname), "}");
BSON_ASSERT (mongoc_find_and_modify_opts_set_update (opts, update));
bson_destroy (update);
}
ret =
mongoc_collection_find_and_modify_with_opts (client_encryption->keyvault_coll, &query, opts, &local_reply, error);
if (ret && key_doc) {
bson_iter_t iter;
if (bson_iter_init_find (&iter, &local_reply, "value")) {
const bson_value_t *const value = bson_iter_value (&iter);
if (value->value_type == BSON_TYPE_DOCUMENT) {
bson_t bson;
BSON_ASSERT (bson_init_static (&bson, value->value.v_doc.data, value->value.v_doc.data_len));
bson_copy_to (&bson, key_doc);
bson_destroy (&bson);
} else if (value->value_type == BSON_TYPE_NULL) {
bson_t bson = BSON_INITIALIZER;
bson_copy_to (&bson, key_doc);
bson_destroy (&bson);
} else {
bson_set_error (error,
MONGOC_ERROR_CLIENT,
MONGOC_ERROR_CLIENT_INVALID_ENCRYPTION_STATE,
"expected field value to be a document or null");
ret = false;
}
}
}
mongoc_find_and_modify_opts_destroy (opts);
bson_destroy (&query);
bson_destroy (&local_reply);
RETURN (ret);
}
bool
mongoc_client_encryption_remove_key_alt_name (mongoc_client_encryption_t *client_encryption,
const bson_value_t *keyid,
const char *keyaltname,
bson_t *key_doc,
bson_error_t *error)
{
bson_t query = BSON_INITIALIZER;
bool ret = false;
bson_t local_reply;
ENTRY;
BSON_ASSERT_PARAM (client_encryption);
BSON_ASSERT_PARAM (keyid);
BSON_ASSERT_PARAM (keyaltname);
BSON_ASSERT (_coll_has_write_concern_majority (client_encryption->keyvault_coll));
BSON_ASSERT (keyid->value_type == BSON_TYPE_BINARY);
BSON_ASSERT (keyid->value.v_binary.subtype == BSON_SUBTYPE_UUID);
BSON_ASSERT (keyid->value.v_binary.data_len > 0u);
BSON_ASSERT (BSON_APPEND_BINARY (
&query, "_id", keyid->value.v_binary.subtype, keyid->value.v_binary.data, keyid->value.v_binary.data_len));
_mongoc_bson_init_if_set (key_doc);
{
mongoc_find_and_modify_opts_t *const opts = mongoc_find_and_modify_opts_new ();
/* clang-format off */
bson_t *const update = BCON_NEW (
"0", "{",
"$set", "{",
"keyAltNames", "{",
"$cond", "[",
"{",
"$eq", "[", "$keyAltNames", "[", keyaltname, "]", "]",
"}",
"$$REMOVE",
"{",
"$filter", "{",
"input", "$keyAltNames",
"cond", "{",
"$ne", "[", "$$this", keyaltname, "]",
"}",
"}",
"}",
"]",
"}",
"}",
"}");
/* clang-format on */
BSON_ASSERT (mongoc_find_and_modify_opts_set_update (opts, update));
ret = mongoc_collection_find_and_modify_with_opts (
client_encryption->keyvault_coll, &query, opts, &local_reply, error);
bson_destroy (update);
mongoc_find_and_modify_opts_destroy (opts);
}
if (ret && key_doc) {
bson_iter_t iter;
if (bson_iter_init_find (&iter, &local_reply, "value")) {
const bson_value_t *const value = bson_iter_value (&iter);
if (value->value_type == BSON_TYPE_DOCUMENT) {
bson_t bson;
BSON_ASSERT (bson_init_static (&bson, value->value.v_doc.data, value->value.v_doc.data_len));
bson_copy_to (&bson, key_doc);
bson_destroy (&bson);
} else if (value->value_type == BSON_TYPE_NULL) {
bson_t bson = BSON_INITIALIZER;
bson_copy_to (&bson, key_doc);
bson_destroy (&bson);
} else {
bson_set_error (error,
MONGOC_ERROR_CLIENT,
MONGOC_ERROR_CLIENT_INVALID_ENCRYPTION_STATE,
"expected field value to be a document or null");
ret = false;
}
}
}
bson_destroy (&query);
bson_destroy (&local_reply);
RETURN (ret);
}
bool
mongoc_client_encryption_get_key_by_alt_name (mongoc_client_encryption_t *client_encryption,
const char *keyaltname,
bson_t *key_doc,
bson_error_t *error)
{
bson_t filter = BSON_INITIALIZER;
mongoc_cursor_t *cursor = NULL;
bool ret = false;
ENTRY;
BSON_ASSERT_PARAM (client_encryption);
BSON_ASSERT_PARAM (keyaltname);
BSON_ASSERT (_coll_has_write_concern_majority (client_encryption->keyvault_coll));
BSON_ASSERT (BSON_APPEND_UTF8 (&filter, "keyAltNames", keyaltname));
_mongoc_bson_init_if_set (key_doc);
cursor = mongoc_collection_find_with_opts (client_encryption->keyvault_coll, &filter, NULL, NULL);
ret = !mongoc_cursor_error (cursor, error);
if (ret && key_doc) {
const bson_t *bson = NULL;
if (mongoc_cursor_next (cursor, &bson)) {
bson_copy_to (bson, key_doc);
} else if (mongoc_cursor_error (cursor, error)) {
ret = false;
}
}
bson_destroy (&filter);
mongoc_cursor_destroy (cursor);
RETURN (ret);
}
bool
mongoc_client_encryption_encrypt (mongoc_client_encryption_t *client_encryption,
const bson_value_t *value,
mongoc_client_encryption_encrypt_opts_t *opts,
bson_value_t *ciphertext,
bson_error_t *error)
{
bool ret = false;
bson_t *range_opts = NULL;
ENTRY;
BSON_ASSERT (client_encryption);
if (!ciphertext) {
bson_set_error (
error, MONGOC_ERROR_CLIENT, MONGOC_ERROR_CLIENT_INVALID_ENCRYPTION_ARG, "required 'ciphertext' unset");
GOTO (fail);
}
/* reset, so it is safe for caller to call bson_value_destroy on error or
* success. */
ciphertext->value_type = BSON_TYPE_EOD;
if (!opts) {
bson_set_error (error, MONGOC_ERROR_CLIENT, MONGOC_ERROR_CLIENT_INVALID_ENCRYPTION_ARG, "required 'opts' unset");
GOTO (fail);
}
if (opts->range_opts) {
range_opts = bson_new ();
append_bson_range_opts (range_opts, opts);
}
if (!_mongoc_crypt_explicit_encrypt (client_encryption->crypt,
client_encryption->keyvault_coll,
opts->algorithm,
&opts->keyid,
opts->keyaltname,
opts->query_type,
opts->contention_factor.set ? &opts->contention_factor.value : NULL,
range_opts,
value,
ciphertext,
error)) {
GOTO (fail);
}
ret = true;
fail:
bson_destroy (range_opts);
RETURN (ret);
}
bool
mongoc_client_encryption_encrypt_expression (mongoc_client_encryption_t *client_encryption,
const bson_t *expr,
mongoc_client_encryption_encrypt_opts_t *opts,
bson_t *expr_out,
bson_error_t *error)
{
ENTRY;
BSON_ASSERT_PARAM (client_encryption);
BSON_ASSERT_PARAM (expr);
BSON_ASSERT_PARAM (opts);
BSON_ASSERT_PARAM (expr_out);
BSON_OPTIONAL_PARAM (error);
bson_init (expr_out);
bson_t *range_opts = NULL;
if (opts->range_opts) {
range_opts = bson_new ();
append_bson_range_opts (range_opts, opts);
}
if (!_mongoc_crypt_explicit_encrypt_expression (client_encryption->crypt,
client_encryption->keyvault_coll,
opts->algorithm,
&opts->keyid,
opts->keyaltname,
opts->query_type,
opts->contention_factor.set ? &opts->contention_factor.value : NULL,
range_opts,
expr,
expr_out,
error)) {
bson_destroy (range_opts);
RETURN (false);
}
bson_destroy (range_opts);
RETURN (true);
}
bool
mongoc_client_encryption_decrypt (mongoc_client_encryption_t *client_encryption,
const bson_value_t *ciphertext,
bson_value_t *value,
bson_error_t *error)
{
bool ret = false;
ENTRY;
BSON_ASSERT (client_encryption);
if (!value) {
bson_set_error (error, MONGOC_ERROR_CLIENT, MONGOC_ERROR_CLIENT_INVALID_ENCRYPTION_ARG, "required 'value' unset");
GOTO (fail);
}
/* reset, so it is safe for caller to call bson_value_destroy on error or
* success. */
value->value_type = BSON_TYPE_EOD;
if (ciphertext->value_type != BSON_TYPE_BINARY || ciphertext->value.v_binary.subtype != BSON_SUBTYPE_ENCRYPTED) {
bson_set_error (error,
MONGOC_ERROR_CLIENT,
MONGOC_ERROR_CLIENT_INVALID_ENCRYPTION_ARG,
"ciphertext must be BSON binary subtype 6");
GOTO (fail);
}
if (!_mongoc_crypt_explicit_decrypt (
client_encryption->crypt, client_encryption->keyvault_coll, ciphertext, value, error)) {
GOTO (fail);
}
ret = true;
fail:
RETURN (ret);
}
bool
_mongoc_cse_is_enabled (mongoc_client_t *client)
{
BSON_ASSERT_PARAM (client);
while (1) {
mongoc_topology_cse_state_t state =
mcommon_atomic_int_fetch ((int *) &client->topology->cse_state, mcommon_memory_order_relaxed);
if (state != MONGOC_CSE_STARTING) {
return state == MONGOC_CSE_ENABLED;
}
/* CSE is starting up. Wait until that succeeds or fails. */
bson_thrd_yield ();
}
}
/// Context for creating a new datakey using an existing ClientEncryption state
struct cec_context {
mongoc_client_encryption_t *enc;
const mongoc_client_encryption_datakey_opts_t *dk_opts;
const char *kms_provider;
};
/// Automatically create a new datakey. @see auto_datakey_factory
static bool
_auto_datakey (struct auto_datakey_context *ctx)
{
struct cec_context *cec = ctx->userdata;
return mongoc_client_encryption_create_datakey (
cec->enc, cec->kms_provider, cec->dk_opts, ctx->out_keyid, ctx->out_error);
}
mongoc_collection_t *
mongoc_client_encryption_create_encrypted_collection (mongoc_client_encryption_t *enc,
struct _mongoc_database_t *database,
const char *name,
const bson_t *in_options,
bson_t *opt_out_options,
const char *const kms_provider,
const bson_t *opt_masterkey,
bson_error_t *error)
{
BSON_ASSERT_PARAM (enc);
BSON_ASSERT_PARAM (database);
BSON_ASSERT_PARAM (name);
BSON_ASSERT_PARAM (in_options);
BSON_OPTIONAL_PARAM (opt_out_options);
BSON_ASSERT_PARAM (kms_provider);
BSON_OPTIONAL_PARAM (error);
mongoc_collection_t *ret = NULL;
bson_t in_encryptedFields = BSON_INITIALIZER;
bson_t new_encryptedFields = BSON_INITIALIZER;
bson_t local_new_options = BSON_INITIALIZER;
mongoc_client_encryption_datakey_opts_t *dk_opts = mongoc_client_encryption_datakey_opts_new ();
if (opt_masterkey) {
mongoc_client_encryption_datakey_opts_set_masterkey (dk_opts, opt_masterkey);
}
if (!opt_out_options) {
// We'll use our own storage for the new options
opt_out_options = &local_new_options;
}
// Init the storage. Either inits the caller's copy, or our local version.
bson_init (opt_out_options);
// Look up the encryptedfields that we should use for this collection. They
// may be in the given options, or they may be in the encryptedFieldsMap.
if (!_mongoc_get_collection_encryptedFields (database->client,
mongoc_database_get_name (database),
name,
in_options,
false /* checkEncryptedFieldsMap */,
&in_encryptedFields,
error)) {
// Error finding the encryptedFields
goto done;
}
if (bson_empty (&in_encryptedFields)) {
bson_set_error (error,
MONGOC_ERROR_COMMAND,
MONGOC_ERROR_COMMAND_INVALID_ARG,
"No 'encryptedFields' are defined for the creation of "
"the '%s' collection",
name);
goto done;
}
// Add the keyIds to the encryptedFields.
// Context for the creation of new datakeys:
struct cec_context ctx = {
.enc = enc,
.dk_opts = dk_opts,
.kms_provider = kms_provider,
};
bson_t fields_ref;
bsonVisitEach (in_encryptedFields,
case (
// We only care about the "fields" array
when (not(key ("fields")), appendTo (new_encryptedFields)),
// Automaticall fill in the "keyId" no each field:
else (storeDocRef (fields_ref), do ({
bson_t new_fields = BSON_INITIALIZER;
// Create the new fields, filling out the 'keyId'
// automatically:
if (!_mongoc_encryptedFields_fill_auto_datakeys (
&new_fields, &fields_ref, _auto_datakey, &ctx, error)) {
bsonParseError = "Error creating datakeys";
} else {
BSON_APPEND_ARRAY (&new_encryptedFields, "fields", &new_fields);
bson_destroy (&new_fields);
}
}))));
if (bsonParseError) {
// Error creating the new datakeys.
// `error` was set by _mongoc_encryptedFields_fill_auto_datakeys
goto done;
}
// We've successfully filled out all null keyIds. Now create the collection
// with our new options:
bsonBuild (*opt_out_options,
insert (*in_options, not(key ("encryptedFields"))),
kv ("encryptedFields", bson (new_encryptedFields)));
if (bsonBuildError) {
// Error while building the new options.
bson_set_error (error,
MONGOC_ERROR_BSON,
MONGOC_ERROR_BSON_INVALID,
"Error while building new createCollection options: %s",
bsonBuildError);
goto done;
}
ret = mongoc_database_create_collection (database, name, opt_out_options, error);
done:
bson_destroy (&new_encryptedFields);
bson_destroy (&in_encryptedFields);
mongoc_client_encryption_datakey_opts_destroy (dk_opts);
// Destroy the local options, which may or may not have been used. If unused,
// the new options are now owned by the caller and this is a no-op.
bson_destroy (&local_new_options);
// The resulting collection, or NULL on error:
return ret;
}
#endif /* MONGOC_ENABLE_CLIENT_SIDE_ENCRYPTION */
/// Generate one encryptedField element.
static void
_init_1_encryptedField (
bson_t *out_field, const bson_t *in_field, auto_datakey_factory fac, void *fac_userdata, bson_error_t *error)
{
BSON_ASSERT_PARAM (out_field);
BSON_ASSERT_PARAM (in_field);
BSON_ASSERT_PARAM (fac);
BSON_OPTIONAL_PARAM (fac_userdata);
BSON_OPTIONAL_PARAM (error);
bsonVisitEach (*in_field,
// If it is not a "keyId":null element, just copy it to the output.
if (not(keyWithType ("keyId", null)), then (appendTo (*out_field), continue)),
// Otherwise:
do ({
// Set up factory context
bson_value_t new_key = {0};
struct auto_datakey_context ctx = {
.out_keyid = &new_key,
.out_error = error,
.userdata = fac_userdata,
};
// Call the callback to create the new key
if (!fac (&ctx)) {
bsonParseError = "Factory function indicated failure";
} else {
// Append to the field
BSON_APPEND_VALUE (out_field, "keyId", &new_key);
}
bson_value_destroy (&new_key);
}));
}
/// Generate the "encryptedFields" output for auto-datakeys
static void
_init_encryptedFields (
bson_t *out_fields, const bson_t *in_fields, auto_datakey_factory fac, void *fac_userdata, bson_error_t *error)
{
BSON_ASSERT_PARAM (out_fields);
BSON_ASSERT_PARAM (in_fields);
BSON_ASSERT_PARAM (fac);
BSON_OPTIONAL_PARAM (fac_userdata);
BSON_OPTIONAL_PARAM (error);
// Ref to one encyrptedField
bson_t cur_field;
bsonVisitEach (
*in_fields,
// Each field must be a document element
if (not(type (doc)), then (error ("Each 'encryptedFields' element must be a document"))),
// Append a new element with the same name as the field:
storeDocRef (cur_field),
append (*out_fields,
kv (bson_iter_key (&bsonVisitIter),
// Construct the encryptedField document from the input:
doc (do (_init_1_encryptedField (bsonBuildContext.doc, &cur_field, fac, fac_userdata, error))))));
if (error && error->code == 0) {
// The factory/internal code did not set error, so we may have to set it
// for an error while BSON parsing/generating.
if (bsonParseError) {
bson_set_error (
error, MONGOC_ERROR_BSON, MONGOC_ERROR_BSON_INVALID, "Error while generating datakeys: %s", bsonParseError);
}
if (bsonBuildError) {
bson_set_error (
error, MONGOC_ERROR_BSON, MONGOC_ERROR_BSON_INVALID, "Error while generating datakeys: %s", bsonBuildError);
}
}
}
bool
_mongoc_encryptedFields_fill_auto_datakeys (
bson_t *out_fields, const bson_t *in_fields, auto_datakey_factory factory, void *userdata, bson_error_t *error)
{
BSON_ASSERT_PARAM (in_fields);
BSON_ASSERT_PARAM (out_fields);
BSON_ASSERT_PARAM (factory);
if (error) {
- *error = (bson_error_t) {0};
+ *error = (bson_error_t){0};
}
bson_init (out_fields);
_init_encryptedFields (out_fields, in_fields, factory, userdata, error);
// DSL errors will be set in case of failure
return bsonParseError == NULL && bsonBuildError == NULL;
}
const char *
mongoc_client_encryption_get_crypt_shared_version (const mongoc_client_encryption_t *enc)
{
#ifdef MONGOC_ENABLE_CLIENT_SIDE_ENCRYPTION
return _mongoc_crypt_get_crypt_shared_version (enc->crypt);
#else
BSON_UNUSED (enc);
return NULL;
#endif
}
const char *
mongoc_client_get_crypt_shared_version (const mongoc_client_t *client)
{
BSON_ASSERT_PARAM (client);
#ifdef MONGOC_ENABLE_CLIENT_SIDE_ENCRYPTION
if (!client->topology->crypt) {
return NULL;
}
return _mongoc_crypt_get_crypt_shared_version (client->topology->crypt);
#else
BSON_UNUSED (client);
return NULL;
#endif
}
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-side-encryption.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-side-encryption.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-side-encryption.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-side-encryption.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-client.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster-aws-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster-aws-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster-aws-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster-aws-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster-aws.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster-aws.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster-aws.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster-aws.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster-cyrus-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster-cyrus-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster-cyrus-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster-cyrus-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster-cyrus.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster-cyrus.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster-cyrus.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster-cyrus.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster-sasl-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster-sasl-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster-sasl-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster-sasl-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster-sasl.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster-sasl.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster-sasl.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster-sasl.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster-sspi-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster-sspi-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster-sspi-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster-sspi-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster-sspi.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster-sspi.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster-sspi.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster-sspi.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster.c
similarity index 99%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster.c
index e7daceec..1f3e119c 100644
--- a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster.c
+++ b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster.c
@@ -1,3636 +1,3636 @@
/*
* Copyright 2009-present MongoDB, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <mongoc/mongoc-config.h>
#include <string.h>
#include <mongoc/mcd-rpc.h>
#include <mongoc/mongoc-cluster-private.h>
#include <mongoc/mongoc-client-private.h>
#include <mongoc/mongoc-client-side-encryption-private.h>
#include <mongoc/mongoc-counters-private.h>
#include <mongoc/mongoc-config.h>
#include <mongoc/mongoc-error.h>
#include <mongoc/mongoc-flags-private.h>
#include <mongoc/mongoc-host-list-private.h>
#include <mongoc/mongoc-log.h>
#include <mongoc/mongoc-cluster-sasl-private.h>
#ifdef MONGOC_ENABLE_SSL
#include <mongoc/mongoc-ssl.h>
#include <mongoc/mongoc-ssl-private.h>
#include <mongoc/mongoc-stream-tls.h>
#endif
#include <common-b64-private.h>
#include <mongoc/mongoc-scram-private.h>
#include <mongoc/mongoc-set-private.h>
#include <mongoc/mongoc-socket.h>
#include <mongoc/mongoc-stream-private.h>
#include <mongoc/mongoc-stream-socket.h>
#include <mongoc/mongoc-stream-tls.h>
#include <mongoc/mongoc-thread-private.h>
#include <mongoc/mongoc-topology-private.h>
#include <mongoc/mongoc-topology-background-monitoring-private.h>
#include <mongoc/mongoc-trace-private.h>
#include <mongoc/mongoc-util-private.h>
#include <mongoc/mongoc-write-concern-private.h>
#include <mongoc/mongoc-uri-private.h>
#include <mongoc/mongoc-rpc-private.h>
#include <mongoc/mongoc-compression-private.h>
#include <mongoc/mongoc-cmd-private.h>
#include <mongoc/utlist.h>
#include <mongoc/mongoc-handshake-private.h>
#include <mongoc/mongoc-cluster-aws-private.h>
#include <mongoc/mongoc-error-private.h>
#include <mongoc/mongoc-structured-log-private.h>
#include <common-bson-dsl-private.h>
#include <common-cmp-private.h>
#include <common-oid-private.h>
#include <inttypes.h>
#undef MONGOC_LOG_DOMAIN
#define MONGOC_LOG_DOMAIN "cluster"
#define CHECK_CLOSED_DURATION_MSEC 1000
#define IS_NOT_COMMAND(_name) (!!strcasecmp (cmd->command_name, _name))
static mongoc_server_stream_t *
_cluster_fetch_stream_single (mongoc_cluster_t *cluster,
const mongoc_topology_description_t *td,
uint32_t server_id,
bool reconnect_ok,
bson_error_t *error);
static mongoc_server_stream_t *
_cluster_fetch_stream_pooled (mongoc_cluster_t *cluster,
const mongoc_topology_description_t *td,
uint32_t server_id,
bool reconnect_ok,
bson_error_t *error);
static bool
mongoc_cluster_run_opmsg (mongoc_cluster_t *cluster, const mongoc_cmd_t *cmd, bson_t *reply, bson_error_t *error);
static void
_bson_error_message_printf (bson_error_t *error, const char *format, ...) BSON_GNUC_PRINTF (2, 3);
static void
_handle_not_primary_error (mongoc_cluster_t *cluster, const mongoc_server_stream_t *server_stream, const bson_t *reply)
{
uint32_t server_id;
server_id = server_stream->sd->id;
if (_mongoc_topology_handle_app_error (cluster->client->topology,
server_id,
true /* handshake complete */,
MONGOC_SDAM_APP_ERROR_COMMAND,
reply,
NULL,
server_stream->sd->max_wire_version,
server_stream->sd->generation,
&server_stream->sd->service_id)) {
mongoc_cluster_disconnect_node (cluster, server_id);
}
}
/* Called when a network error occurs on an application socket.
*/
static void
_handle_network_error (mongoc_cluster_t *cluster, mongoc_server_stream_t *server_stream, const bson_error_t *why)
{
mongoc_topology_t *topology;
uint32_t server_id;
_mongoc_sdam_app_error_type_t type;
BSON_ASSERT (server_stream);
ENTRY;
topology = cluster->client->topology;
server_id = server_stream->sd->id;
type = MONGOC_SDAM_APP_ERROR_NETWORK;
if (mongoc_stream_timed_out (server_stream->stream)) {
type = MONGOC_SDAM_APP_ERROR_TIMEOUT;
}
_mongoc_topology_handle_app_error (topology,
server_id,
true, // handshake_complete
type,
NULL,
why,
server_stream->sd->max_wire_version,
server_stream->sd->generation,
&server_stream->sd->service_id);
/* Always disconnect the current connection on network error. */
mongoc_cluster_disconnect_node (cluster, server_id);
EXIT;
}
static int32_t
_int32_from_le (const void *data)
{
BSON_ASSERT_PARAM (data);
- return bson_iter_int32_unsafe (&(bson_iter_t) {.raw = data});
+ return bson_iter_int32_unsafe (&(bson_iter_t){.raw = data});
}
static int32_t
_compression_level_from_uri (int32_t compressor_id, const mongoc_uri_t *uri)
{
if (compressor_id == MONGOC_COMPRESSOR_ZLIB_ID) {
return mongoc_uri_get_option_as_int32 (uri, MONGOC_URI_ZLIBCOMPRESSIONLEVEL, -1);
}
return -1;
}
size_t
_mongoc_cluster_buffer_iovec (mongoc_iovec_t *iov, size_t iovcnt, int skip, char *buffer)
{
size_t buffer_offset = 0;
int total_iov_len = 0;
size_t difference = 0;
for (size_t n = 0u; n < iovcnt; n++) {
BSON_ASSERT (mcommon_in_range_unsigned (int, iov[n].iov_len));
const int iov_len = (int) iov[n].iov_len;
total_iov_len += iov_len;
if (total_iov_len <= skip) {
continue;
}
/* If this iovec starts before the skip, and takes the total count
* beyond the skip, we need to figure out the portion of the iovec
* we should skip passed */
const int remaining = total_iov_len - iov_len;
if (remaining < skip) {
difference = (size_t) (skip - remaining);
} else {
difference = 0u;
}
memcpy (buffer + buffer_offset, ((char *) iov[n].iov_base) + difference, iov[n].iov_len - difference);
buffer_offset += iov[n].iov_len - difference;
}
return buffer_offset;
}
/* Allows caller to safely overwrite error->message with a formatted string,
* even if the formatted string includes original error->message. */
static void
_bson_error_message_printf (bson_error_t *error, const char *format, ...)
{
va_list args;
char error_message[sizeof error->message];
if (error) {
va_start (args, format);
bson_vsnprintf (error_message, sizeof error->message, format, args);
va_end (args);
bson_strncpy (error->message, error_message, sizeof error->message);
}
}
#define RUN_CMD_ERR_DECORATE \
do { \
_bson_error_message_printf (error, \
"Failed to send \"%s\" command with database \"%s\": %s", \
cmd->command_name, \
cmd->db_name, \
error->message); \
} while (0)
#define RUN_CMD_ERR(_domain, _code, ...) \
do { \
bson_set_error (error, _domain, _code, __VA_ARGS__); \
RUN_CMD_ERR_DECORATE; \
} while (0)
// msgHeader consists of four int32 fields.
static const int32_t message_header_length = 4u * sizeof (int32_t);
static bool
_mongoc_cluster_run_command_opquery_send (
mongoc_cluster_t *cluster, const mongoc_cmd_t *cmd, int32_t compressor_id, mcd_rpc_message *rpc, bson_error_t *error)
{
BSON_ASSERT_PARAM (cluster);
BSON_ASSERT_PARAM (cmd);
BSON_ASSERT_PARAM (rpc);
BSON_ASSERT_PARAM (error);
bool ret = false;
mongoc_stream_t *const stream = cmd->server_stream->stream;
char *const ns = bson_strdup_printf ("%s.$cmd", cmd->db_name);
const int32_t request_id = ++cluster->request_id;
// Find, getMore And killCursors Commands Spec: "When sending a find command
// rather than a legacy OP_QUERY find, only the secondaryOk flag is honored."
// For other cursor-typed commands like aggregate, only secondaryOk can be
// set. Clear bits except secondaryOk; leave secondaryOk set only if it is
// already.
const int32_t flags = (int32_t) cmd->query_flags & MONGOC_OP_QUERY_FLAG_SECONDARY_OK;
{
int32_t message_length = 0;
message_length += mcd_rpc_header_set_message_length (rpc, 0);
message_length += mcd_rpc_header_set_request_id (rpc, request_id);
message_length += mcd_rpc_header_set_response_to (rpc, 0);
message_length += mcd_rpc_header_set_op_code (rpc, MONGOC_OP_CODE_QUERY);
message_length += mcd_rpc_op_query_set_flags (rpc, flags);
message_length += mcd_rpc_op_query_set_full_collection_name (rpc, ns);
message_length += mcd_rpc_op_query_set_number_to_skip (rpc, 0);
message_length += mcd_rpc_op_query_set_number_to_return (rpc, -1);
message_length += mcd_rpc_op_query_set_query (rpc, bson_get_data (cmd->command));
mcd_rpc_message_set_length (rpc, message_length);
}
size_t num_iovecs = 0u;
mongoc_iovec_t *const iovecs = mcd_rpc_message_to_iovecs (rpc, &num_iovecs);
BSON_ASSERT (iovecs);
const bool is_compressible =
compressor_id != -1 && IS_NOT_COMMAND (HANDSHAKE_CMD_LEGACY_HELLO) && IS_NOT_COMMAND ("hello") &&
IS_NOT_COMMAND ("saslstart") && IS_NOT_COMMAND ("saslcontinue") && IS_NOT_COMMAND ("getnonce") &&
IS_NOT_COMMAND ("authenticate") && IS_NOT_COMMAND ("createuser") && IS_NOT_COMMAND ("updateuser");
void *compressed_data = NULL;
size_t compressed_data_len = 0u;
if (is_compressible && !mcd_rpc_message_compress (rpc,
compressor_id,
_compression_level_from_uri (compressor_id, cluster->uri),
&compressed_data,
&compressed_data_len,
error)) {
goto done;
}
if (cluster->client->in_exhaust) {
bson_set_error (
error, MONGOC_ERROR_CLIENT, MONGOC_ERROR_CLIENT_IN_EXHAUST, "a cursor derived from this client is in exhaust");
goto done;
}
mcd_rpc_message_egress (rpc);
if (!_mongoc_stream_writev_full (stream, iovecs, num_iovecs, cluster->sockettimeoutms, error)) {
RUN_CMD_ERR_DECORATE;
_handle_network_error (cluster, cmd->server_stream, error);
goto done;
}
ret = true;
done:
bson_free (compressed_data);
bson_free (iovecs);
bson_free (ns);
return ret;
}
static bool
_mongoc_cluster_run_command_opquery_recv (
mongoc_cluster_t *cluster, const mongoc_cmd_t *cmd, mcd_rpc_message *rpc, bson_t *reply, bson_error_t *error)
{
BSON_ASSERT_PARAM (cluster);
BSON_ASSERT_PARAM (cmd);
BSON_ASSERT_PARAM (rpc);
BSON_ASSERT_PARAM (reply);
BSON_ASSERT_PARAM (error);
bool ret = false;
mongoc_stream_t *const stream = cmd->server_stream->stream;
mongoc_buffer_t buffer;
_mongoc_buffer_init (&buffer, NULL, 0, NULL, NULL);
void *decompressed_data = NULL;
size_t decompressed_data_len = 0u;
if (!_mongoc_buffer_append_from_stream (&buffer, stream, sizeof (int32_t), cluster->sockettimeoutms, error)) {
RUN_CMD_ERR (MONGOC_ERROR_STREAM, MONGOC_ERROR_STREAM_SOCKET, "socket error or timeout");
_handle_network_error (cluster, cmd->server_stream, error);
goto done;
}
const int32_t message_length = _int32_from_le (buffer.data);
if (message_length < message_header_length || message_length > MONGOC_DEFAULT_MAX_MSG_SIZE) {
RUN_CMD_ERR (MONGOC_ERROR_STREAM, MONGOC_ERROR_STREAM_SOCKET, "invalid message length");
_handle_network_error (cluster, cmd->server_stream, error);
goto done;
}
const size_t remaining_bytes = (size_t) message_length - sizeof (int32_t);
if (!_mongoc_buffer_append_from_stream (&buffer, stream, remaining_bytes, cluster->sockettimeoutms, error)) {
RUN_CMD_ERR (MONGOC_ERROR_STREAM, MONGOC_ERROR_STREAM_SOCKET, "socket error or timeout");
_handle_network_error (cluster, cmd->server_stream, error);
goto done;
}
if (!mcd_rpc_message_from_data_in_place (rpc, buffer.data, buffer.len, NULL)) {
RUN_CMD_ERR (MONGOC_ERROR_STREAM, MONGOC_ERROR_STREAM_SOCKET, "malformed reply from server");
goto done;
}
mcd_rpc_message_ingress (rpc);
if (!mcd_rpc_message_decompress_if_necessary (rpc, &decompressed_data, &decompressed_data_len)) {
RUN_CMD_ERR (MONGOC_ERROR_STREAM, MONGOC_ERROR_STREAM_SOCKET, "could not decompress server reply");
goto done;
}
{
bson_t body;
if (!mcd_rpc_message_get_body (rpc, &body)) {
RUN_CMD_ERR (MONGOC_ERROR_PROTOCOL, MONGOC_ERROR_PROTOCOL_INVALID_REPLY, "malformed reply from server");
goto done;
}
bson_copy_to (&body, reply);
bson_destroy (&body);
}
if (!_mongoc_cmd_check_ok (reply, cluster->client->error_api_version, error)) {
goto done;
}
ret = true;
done:
bson_free (decompressed_data);
_mongoc_buffer_destroy (&buffer);
return ret;
}
static bool
mongoc_cluster_run_command_opquery (
mongoc_cluster_t *cluster, const mongoc_cmd_t *cmd, int32_t compressor_id, bson_t *reply, bson_error_t *error)
{
BSON_ASSERT_PARAM (cluster);
BSON_ASSERT_PARAM (cmd);
BSON_ASSERT_PARAM (cmd->server_stream);
BSON_ASSERT_PARAM (reply);
BSON_ASSERT_PARAM (error);
ENTRY;
bool ret = false;
bson_init (reply);
error->code = 0;
mcd_rpc_message *const rpc = mcd_rpc_message_new ();
if (!_mongoc_cluster_run_command_opquery_send (cluster, cmd, compressor_id, rpc, error)) {
GOTO (done);
}
mcd_rpc_message_reset (rpc);
if (!_mongoc_cluster_run_command_opquery_recv (cluster, cmd, rpc, reply, error)) {
GOTO (done);
}
ret = true;
done:
if (!ret && error->code == 0) {
/* generic error */
RUN_CMD_ERR (MONGOC_ERROR_PROTOCOL, MONGOC_ERROR_PROTOCOL_INVALID_REPLY, "invalid reply from server");
}
mcd_rpc_message_destroy (rpc);
RETURN (ret);
}
static bool
_in_sharded_txn (const mongoc_client_session_t *session)
{
return session && _mongoc_client_session_in_txn_or_ending (session) &&
_mongoc_topology_get_type (session->client->topology) == MONGOC_TOPOLOGY_SHARDED;
}
static bool
_in_sharded_or_loadbalanced_txn (const mongoc_client_session_t *session)
{
if (!session) {
return false;
}
if (!_mongoc_client_session_in_txn_or_ending (session)) {
return false;
}
mongoc_topology_description_type_t type = _mongoc_topology_get_type (session->client->topology);
return (type == MONGOC_TOPOLOGY_SHARDED) || (type == MONGOC_TOPOLOGY_LOAD_BALANCED);
}
static void
_handle_txn_error_labels (bool cmd_ret, const bson_error_t *cmd_err, const mongoc_cmd_t *cmd, bson_t *reply)
{
if (!cmd->is_txn_finish) {
return;
}
_mongoc_write_error_handle_labels (cmd_ret, cmd_err, reply, cmd->server_stream->sd);
}
/*
*--------------------------------------------------------------------------
*
* mongoc_cluster_run_command_monitored --
*
* Internal function to run a command on a given stream.
* @error and @reply are optional out-pointers.
*
* Returns:
* true if successful; otherwise false and @error is set.
*
* Side effects:
* If the client's APM callbacks are set, they are executed.
* @reply is set and should ALWAYS be released with bson_destroy().
*
*--------------------------------------------------------------------------
*/
bool
mongoc_cluster_run_command_monitored (mongoc_cluster_t *cluster, mongoc_cmd_t *cmd, bson_t *reply, bson_error_t *error)
{
bool retval;
const int32_t request_id = ++cluster->request_id;
uint32_t server_id;
mongoc_apm_command_started_t started_event;
mongoc_apm_command_succeeded_t succeeded_event;
mongoc_apm_command_failed_t failed_event;
int64_t started = bson_get_monotonic_time ();
const mongoc_server_stream_t *server_stream;
bson_t reply_local;
bson_error_t error_local;
bson_iter_t iter;
bson_t encrypted = BSON_INITIALIZER;
bson_t decrypted = BSON_INITIALIZER;
mongoc_cmd_t encrypted_cmd;
bool is_redacted_by_apm = false;
server_stream = cmd->server_stream;
server_id = server_stream->sd->id;
const mongoc_log_and_monitor_instance_t *log_and_monitor = &cluster->client->topology->log_and_monitor;
if (!reply) {
reply = &reply_local;
}
if (!error) {
error = &error_local;
}
if (_mongoc_cse_is_enabled (cluster->client)) {
bson_destroy (&encrypted);
retval = _mongoc_cse_auto_encrypt (cluster->client, cmd, &encrypted_cmd, &encrypted, error);
cmd = &encrypted_cmd;
if (!retval) {
bson_init (reply);
goto fail_no_events;
}
}
mongoc_structured_log (
log_and_monitor->structured_log,
MONGOC_STRUCTURED_LOG_LEVEL_DEBUG,
MONGOC_STRUCTURED_LOG_COMPONENT_COMMAND,
"Command started",
int32 ("requestId", request_id),
server_description (server_stream->sd, SERVER_HOST, SERVER_PORT, SERVER_CONNECTION_ID, SERVICE_ID),
cmd (cmd, DATABASE_NAME, COMMAND_NAME, OPERATION_ID, COMMAND));
if (log_and_monitor->apm_callbacks.started) {
mongoc_apm_command_started_init_with_cmd (
&started_event, cmd, request_id, &is_redacted_by_apm, log_and_monitor->apm_context);
log_and_monitor->apm_callbacks.started (&started_event);
mongoc_apm_command_started_cleanup (&started_event);
}
retval = mongoc_cluster_run_opmsg (cluster, cmd, reply, error);
if (retval) {
bson_t fake_reply = BSON_INITIALIZER;
int64_t duration = bson_get_monotonic_time () - started;
/*
* Unacknowledged writes must provide a CommandSucceededEvent with an
* {ok: 1} reply.
* https://github.com/mongodb/specifications/blob/master/source/command-logging-and-monitoring/command-logging-and-monitoring.md#unacknowledgedacknowledged-writes
*/
if (!cmd->is_acknowledged) {
bson_append_int32 (&fake_reply, "ok", 2, 1);
}
mongoc_structured_log (
log_and_monitor->structured_log,
MONGOC_STRUCTURED_LOG_LEVEL_DEBUG,
MONGOC_STRUCTURED_LOG_COMPONENT_COMMAND,
"Command succeeded",
int32 ("requestId", request_id),
monotonic_time_duration (duration),
server_description (server_stream->sd, SERVER_HOST, SERVER_PORT, SERVER_CONNECTION_ID, SERVICE_ID),
cmd (cmd, DATABASE_NAME, COMMAND_NAME, OPERATION_ID),
cmd_reply (cmd, cmd->is_acknowledged ? reply : &fake_reply));
if (log_and_monitor->apm_callbacks.succeeded) {
mongoc_apm_command_succeeded_init (&succeeded_event,
duration,
cmd->is_acknowledged ? reply : &fake_reply,
cmd->command_name,
cmd->db_name,
request_id,
cmd->operation_id,
&server_stream->sd->host,
server_id,
&server_stream->sd->service_id,
server_stream->sd->server_connection_id,
is_redacted_by_apm,
log_and_monitor->apm_context);
log_and_monitor->apm_callbacks.succeeded (&succeeded_event);
mongoc_apm_command_succeeded_cleanup (&succeeded_event);
}
bson_destroy (&fake_reply);
} else {
int64_t duration = bson_get_monotonic_time () - started;
mongoc_structured_log (
log_and_monitor->structured_log,
MONGOC_STRUCTURED_LOG_LEVEL_DEBUG,
MONGOC_STRUCTURED_LOG_COMPONENT_COMMAND,
"Command failed",
int32 ("requestId", request_id),
monotonic_time_duration (duration),
server_description (server_stream->sd, SERVER_HOST, SERVER_PORT, SERVER_CONNECTION_ID, SERVICE_ID),
cmd (cmd, DATABASE_NAME, COMMAND_NAME, OPERATION_ID),
cmd_failure (cmd, reply, error));
if (log_and_monitor->apm_callbacks.failed) {
mongoc_apm_command_failed_init (&failed_event,
duration,
cmd->command_name,
cmd->db_name,
error,
reply,
request_id,
cmd->operation_id,
&server_stream->sd->host,
server_id,
&server_stream->sd->service_id,
server_stream->sd->server_connection_id,
is_redacted_by_apm,
log_and_monitor->apm_context);
log_and_monitor->apm_callbacks.failed (&failed_event);
mongoc_apm_command_failed_cleanup (&failed_event);
}
}
if (retval && _mongoc_cse_is_enabled (cluster->client)) {
bson_destroy (&decrypted);
retval = _mongoc_cse_auto_decrypt (cluster->client, cmd->db_name, reply, &decrypted, error);
bson_destroy (reply);
bson_steal (reply, &decrypted);
bson_init (&decrypted);
if (!retval) {
goto fail_no_events;
}
}
_handle_not_primary_error (cluster, server_stream, reply);
_handle_txn_error_labels (retval, error, cmd, reply);
if (retval && _in_sharded_or_loadbalanced_txn (cmd->session) &&
bson_iter_init_find (&iter, reply, "recoveryToken")) {
bson_destroy (cmd->session->recovery_token);
if (BSON_ITER_HOLDS_DOCUMENT (&iter)) {
cmd->session->recovery_token = bson_new_from_data (bson_iter_value (&iter)->value.v_doc.data,
bson_iter_value (&iter)->value.v_doc.data_len);
} else {
MONGOC_ERROR ("Malformed recovery token from server");
cmd->session->recovery_token = NULL;
}
}
fail_no_events:
if (reply == &reply_local) {
bson_destroy (&reply_local);
}
bson_destroy (&encrypted);
bson_destroy (&decrypted);
_mongoc_topology_update_last_used (cluster->client->topology, server_id);
return retval;
}
static bool
_should_use_op_msg (const mongoc_cluster_t *cluster)
{
return mongoc_cluster_uses_server_api (cluster) || mongoc_cluster_uses_loadbalanced (cluster);
}
/*
*--------------------------------------------------------------------------
*
* mongoc_cluster_run_command_private --
*
* Internal function to run a command on a given stream.
* @error and @reply are optional out-pointers.
* The client's APM callbacks are not executed.
* Automatic encryption/decryption is not performed.
*
* Returns:
* true if successful; otherwise false and @error is set.
*
* Side effects:
* @reply is set and should ALWAYS be released with bson_destroy().
*
*--------------------------------------------------------------------------
*/
bool
mongoc_cluster_run_command_private (mongoc_cluster_t *cluster,
const mongoc_cmd_t *cmd,
bson_t *reply,
bson_error_t *error)
{
bool retval;
const mongoc_server_stream_t *server_stream;
bson_t reply_local;
bson_error_t error_local;
if (!error) {
error = &error_local;
}
/* If NULL was passed, we use our local variable as a temporary sink: */
if (!reply) {
reply = &reply_local;
}
server_stream = cmd->server_stream;
if (_should_use_op_msg (cluster) || server_stream->sd->max_wire_version >= WIRE_VERSION_MIN) {
retval = mongoc_cluster_run_opmsg (cluster, cmd, reply, error);
} else {
retval = mongoc_cluster_run_command_opquery (cluster, cmd, -1, reply, error);
}
_handle_not_primary_error (cluster, server_stream, reply);
if (reply == &reply_local) {
bson_destroy (&reply_local);
}
_mongoc_topology_update_last_used (cluster->client->topology, server_stream->sd->id);
return retval;
}
/*
*--------------------------------------------------------------------------
*
* mongoc_cluster_run_command_parts --
*
* Internal function to assemble command parts and run a command
* on a given stream. @error and @reply are optional out-pointers.
* The client's APM callbacks are not executed.
*
* Returns:
* true if successful; otherwise false and @error is set.
*
* Side effects:
* @reply is set and should ALWAYS be released with bson_destroy().
* mongoc_cmd_parts_cleanup will be always be called on parts. The
* caller should *not* call cleanup on the parts.
*
*--------------------------------------------------------------------------
*/
bool
mongoc_cluster_run_command_parts (mongoc_cluster_t *cluster,
mongoc_server_stream_t *server_stream,
mongoc_cmd_parts_t *parts,
bson_t *reply,
bson_error_t *error)
{
bool ret;
if (!mongoc_cmd_parts_assemble (parts, server_stream, error)) {
_mongoc_bson_init_if_set (reply);
mongoc_cmd_parts_cleanup (parts);
return false;
}
ret = mongoc_cluster_run_command_private (cluster, &parts->assembled, reply, error);
mongoc_cmd_parts_cleanup (parts);
return ret;
}
/*
*--------------------------------------------------------------------------
*
* _stream_run_hello --
*
* Run a hello command on the given stream. If
* @negotiate_sasl_supported_mechs is true, then saslSupportedMechs is
* added to the hello command.
*
* Returns:
* A mongoc_server_description_t you must destroy or NULL. If the call
* failed its error is set and its type is MONGOC_SERVER_UNKNOWN.
*
*--------------------------------------------------------------------------
*/
static mongoc_server_description_t *
_stream_run_hello (mongoc_cluster_t *cluster,
mongoc_stream_t *stream,
const char *address,
uint32_t server_id,
bool negotiate_sasl_supported_mechs,
mongoc_scram_t *scram,
bson_t *speculative_auth_response /* OUT */,
bson_error_t *error)
{
mc_shared_tpld td = mc_tpld_take_ref (BSON_ASSERT_PTR_INLINE (cluster)->client->topology);
ENTRY;
BSON_ASSERT (stream);
bson_t handshake_command;
_mongoc_topology_dup_handshake_cmd (cluster->client->topology, &handshake_command);
if (cluster->requires_auth && speculative_auth_response) {
_mongoc_topology_scanner_add_speculative_authentication (&handshake_command, cluster->uri, scram);
}
if (negotiate_sasl_supported_mechs) {
_mongoc_handshake_append_sasl_supported_mechs (cluster->uri, &handshake_command);
}
const int64_t start = bson_get_monotonic_time ();
/* TODO CDRIVER-3654: do not use a mongoc_server_stream here.
* Instead, use a plain stream. If a network error occurs, check the cluster
* node's generation (which is the generation of the created connection) to
* determine if the error should be handled.
* The current behavior may double invalidate.
* If a network error occurs in mongoc_cluster_run_command_private below,
* that invalidates (thinking the error is a post-handshake network error).
* Then _mongoc_cluster_stream_for_server also handles the error, and
* invalidates again.
*/
mongoc_server_description_t empty_sd;
mongoc_server_description_init (&empty_sd, address, server_id);
mongoc_server_stream_t *const server_stream = _mongoc_cluster_create_server_stream (td.ptr, &empty_sd, stream);
mongoc_server_description_cleanup (&empty_sd);
mongoc_query_flags_t query_flags = MONGOC_QUERY_NONE;
/* Use OP_QUERY for the handshake, unless the user has specified an
* API version; the correct hello_cmd has already been selected: */
if (!_should_use_op_msg (cluster)) {
/* Complete OPCODE_QUERY setup: */
query_flags |= MONGOC_QUERY_SECONDARY_OK;
} else {
/* We're using OP_MSG, and require some additional doctoring: */
bson_append_utf8 (&handshake_command, "$db", 3, "admin", 5);
}
/* Set up the shared parts of the mongo_cmd_t, which will later be converted
to either an op_msg or op_query: */
const mongoc_cmd_t hello_cmd = {
.db_name = "admin",
.command = &handshake_command,
.command_name = _mongoc_get_command_name (&handshake_command),
.server_stream = server_stream,
.is_acknowledged = true,
.query_flags = query_flags,
};
bson_t reply;
// The final resulting server description
mongoc_server_description_t *ret_handshake_sd = NULL;
if (!mongoc_cluster_run_command_private (cluster, &hello_cmd, &reply, error)) {
// Command execution failed.
if (negotiate_sasl_supported_mechs) {
// Negotiating a new SASL mechanism
bsonParse (reply,
find (allOf (key ("ok"), isFalse), //
do ({
/* hello response returned ok: 0. According to
* auth spec: "If the hello of the MongoDB
* Handshake fails with an error, drivers MUST
* treat this an authentication error." */
error->domain = MONGOC_ERROR_CLIENT;
error->code = MONGOC_ERROR_CLIENT_AUTHENTICATE;
})));
}
} else {
// "hello" succeeded
// Round-trip time for the hello command
const int64_t rtt_msec = (bson_get_monotonic_time () - start) / 1000;
ret_handshake_sd = BSON_ALIGNED_ALLOC0 (mongoc_server_description_t);
mongoc_server_description_init (ret_handshake_sd, address, server_id);
/* send the error from run_command IN to handle_hello */
mongoc_server_description_handle_hello (ret_handshake_sd, &reply, rtt_msec, error);
if (cluster->requires_auth && speculative_auth_response) {
_mongoc_topology_scanner_parse_speculative_authentication (&reply, speculative_auth_response);
}
/* Note: This call will render our copy of the topology description to be
* stale */
const bool update_okay = _mongoc_topology_update_from_handshake (cluster->client->topology, ret_handshake_sd);
if (!update_okay) {
mongoc_server_description_reset (ret_handshake_sd);
bson_set_error (&ret_handshake_sd->error,
MONGOC_ERROR_STREAM,
MONGOC_ERROR_STREAM_NOT_ESTABLISHED,
"\"%s\" removed from topology",
address);
}
}
mongoc_server_stream_cleanup (server_stream);
bson_destroy (&handshake_command);
bson_destroy (&reply);
mc_tpld_drop_ref (&td);
RETURN (ret_handshake_sd);
}
/*
*--------------------------------------------------------------------------
*
* _mongoc_cluster_run_hello --
*
* Run an initial hello command for the given node and handle result.
*
* Returns:
* mongoc_server_description_t on success, NULL otherwise.
* the mongoc_server_description_t MUST BE DESTROYED BY THE CALLER.
*
* Side effects:
* Makes a blocking I/O call, updates cluster->topology->description
* with hello result.
*
*--------------------------------------------------------------------------
*/
static mongoc_server_description_t *
_cluster_run_hello (mongoc_cluster_t *cluster,
mongoc_cluster_node_t *node,
uint32_t server_id,
mongoc_scram_t *scram /* OUT */,
bson_t *speculative_auth_response /* OUT */,
bson_error_t *error /* OUT */)
{
mongoc_server_description_t *sd;
ENTRY;
BSON_ASSERT (cluster);
BSON_ASSERT (node);
BSON_ASSERT (node->stream);
sd = _stream_run_hello (cluster,
node->stream,
node->connection_address,
server_id,
_mongoc_uri_requires_auth_negotiation (cluster->uri),
scram,
speculative_auth_response,
error);
if (!sd) {
return NULL;
}
if (sd->type == MONGOC_SERVER_UNKNOWN) {
memcpy (error, &sd->error, sizeof (bson_error_t));
mongoc_server_description_destroy (sd);
return NULL;
}
return sd;
}
/*
*--------------------------------------------------------------------------
*
* _mongoc_cluster_auth_node_plain --
*
* Perform SASL PLAIN authentication for @node. We do this manually
* instead of using the SASL module because it is rather simplistic.
*
* Returns:
* true if successful; otherwise false and error is set.
*
* Side effects:
* error may be set.
*
*--------------------------------------------------------------------------
*/
static bool
_mongoc_cluster_auth_node_plain (mongoc_cluster_t *cluster,
mongoc_stream_t *stream,
mongoc_server_description_t *sd,
bson_error_t *error)
{
mongoc_cmd_parts_t parts;
char buf[4096];
int buflen = 0;
const char *username;
const char *password;
bson_t b = BSON_INITIALIZER;
bson_t reply;
size_t len;
char *str;
bool ret;
mongoc_server_stream_t *server_stream;
mc_shared_tpld td;
BSON_ASSERT (cluster);
BSON_ASSERT (stream);
username = mongoc_uri_get_username (cluster->uri);
if (!username) {
username = "";
}
password = mongoc_uri_get_password (cluster->uri);
if (!password) {
password = "";
}
str = bson_strdup_printf ("%c%s%c%s", '\0', username, '\0', password);
len = strlen (username) + strlen (password) + 2;
buflen = mcommon_b64_ntop ((const uint8_t *) str, len, buf, sizeof buf);
bson_free (str);
if (buflen == -1) {
bson_set_error (error, MONGOC_ERROR_CLIENT, MONGOC_ERROR_CLIENT_AUTHENTICATE, "failed base64 encoding message");
return false;
}
BSON_APPEND_INT32 (&b, "saslStart", 1);
BSON_APPEND_UTF8 (&b, "mechanism", "PLAIN");
bson_append_utf8 (&b, "payload", 7, (const char *) buf, buflen);
BSON_APPEND_INT32 (&b, "autoAuthorize", 1);
mongoc_cmd_parts_init (&parts, cluster->client, "$external", MONGOC_QUERY_SECONDARY_OK, &b);
parts.prohibit_lsid = true;
td = mc_tpld_take_ref (cluster->client->topology);
server_stream = _mongoc_cluster_create_server_stream (td.ptr, sd, stream);
mc_tpld_drop_ref (&td);
ret = mongoc_cluster_run_command_parts (cluster, server_stream, &parts, &reply, error);
mongoc_server_stream_cleanup (server_stream);
if (!ret) {
/* error->message is already set */
error->domain = MONGOC_ERROR_CLIENT;
error->code = MONGOC_ERROR_CLIENT_AUTHENTICATE;
}
bson_destroy (&b);
bson_destroy (&reply);
return ret;
}
bool
_mongoc_cluster_get_auth_cmd_x509 (const mongoc_uri_t *uri, bson_t *cmd /* OUT */, bson_error_t *error /* OUT */)
{
#ifndef MONGOC_ENABLE_SSL
bson_set_error (error,
MONGOC_ERROR_CLIENT,
MONGOC_ERROR_CLIENT_AUTHENTICATE,
"The MONGODB-X509 authentication mechanism requires "
"libmongoc built with ENABLE_SSL");
return false;
#else
const char *username_from_uri = NULL;
BSON_ASSERT (uri);
BSON_UNUSED (error);
username_from_uri = mongoc_uri_get_username (uri);
if (username_from_uri) {
TRACE ("%s", "X509: got username from URI");
}
bson_init (cmd);
BSON_APPEND_INT32 (cmd, "authenticate", 1);
BSON_APPEND_UTF8 (cmd, "mechanism", "MONGODB-X509");
if (username_from_uri) {
BSON_APPEND_UTF8 (cmd, "user", username_from_uri);
}
return true;
#endif
}
static bool
_mongoc_cluster_auth_node_x509 (mongoc_cluster_t *cluster,
mongoc_stream_t *stream,
mongoc_server_description_t *sd,
bson_error_t *error)
{
#ifndef MONGOC_ENABLE_SSL
bson_set_error (error,
MONGOC_ERROR_CLIENT,
MONGOC_ERROR_CLIENT_AUTHENTICATE,
"The MONGODB-X509 authentication mechanism requires "
"libmongoc built with ENABLE_SSL");
return false;
#else
mongoc_cmd_parts_t parts;
bson_t cmd;
bson_t reply;
bool ret;
mongoc_server_stream_t *server_stream;
mc_shared_tpld td;
BSON_ASSERT (cluster);
BSON_ASSERT (stream);
if (!_mongoc_cluster_get_auth_cmd_x509 (cluster->uri, &cmd, error)) {
return false;
}
mongoc_cmd_parts_init (&parts, cluster->client, "$external", MONGOC_QUERY_SECONDARY_OK, &cmd);
parts.prohibit_lsid = true;
td = mc_tpld_take_ref (cluster->client->topology);
server_stream = _mongoc_cluster_create_server_stream (td.ptr, sd, stream);
mc_tpld_drop_ref (&td);
ret = mongoc_cluster_run_command_parts (cluster, server_stream, &parts, &reply, error);
mongoc_server_stream_cleanup (server_stream);
if (!ret) {
/* error->message is already set */
error->domain = MONGOC_ERROR_CLIENT;
error->code = MONGOC_ERROR_CLIENT_AUTHENTICATE;
}
bson_destroy (&cmd);
bson_destroy (&reply);
return ret;
#endif
}
bool
mongoc_cluster_uses_server_api (const mongoc_cluster_t *cluster)
{
BSON_ASSERT_PARAM (cluster);
return mongoc_client_uses_server_api (cluster->client);
}
bool
mongoc_cluster_uses_loadbalanced (const mongoc_cluster_t *cluster)
{
BSON_ASSERT_PARAM (cluster);
return mongoc_client_uses_loadbalanced (cluster->client);
}
#ifdef MONGOC_ENABLE_CRYPTO
void
_mongoc_cluster_init_scram (const mongoc_cluster_t *cluster, mongoc_scram_t *scram, mongoc_crypto_hash_algorithm_t algo)
{
_mongoc_uri_init_scram (cluster->uri, scram, algo);
}
/*
*--------------------------------------------------------------------------
*
* _mongoc_cluster_get_auth_cmd_scram --
*
* Generates the saslStart command for scram authentication. Used
* during explicit authentication as well as speculative
* authentication during hello.
*
*
* Returns:
* true if the command could be generated, false otherwise
*
* Side effects:
* @error is set on failure.
*
*--------------------------------------------------------------------------
*/
bool
_mongoc_cluster_get_auth_cmd_scram (mongoc_crypto_hash_algorithm_t algo,
mongoc_scram_t *scram,
bson_t *cmd /* OUT */,
bson_error_t *error /* OUT */)
{
uint8_t buf[4096] = {0};
uint32_t buflen = 0;
bson_t options;
if (!_mongoc_scram_step (scram, buf, buflen, buf, sizeof buf, &buflen, error)) {
return false;
}
BSON_ASSERT (scram->step == 1);
bson_init (cmd);
BSON_APPEND_INT32 (cmd, "saslStart", 1);
if (algo == MONGOC_CRYPTO_ALGORITHM_SHA_1) {
BSON_APPEND_UTF8 (cmd, "mechanism", "SCRAM-SHA-1");
} else if (algo == MONGOC_CRYPTO_ALGORITHM_SHA_256) {
BSON_APPEND_UTF8 (cmd, "mechanism", "SCRAM-SHA-256");
} else {
BSON_ASSERT (false);
}
bson_append_binary (cmd, "payload", 7, BSON_SUBTYPE_BINARY, buf, buflen);
BSON_APPEND_INT32 (cmd, "autoAuthorize", 1);
BSON_APPEND_DOCUMENT_BEGIN (cmd, "options", &options);
BSON_APPEND_BOOL (&options, "skipEmptyExchange", true);
bson_append_document_end (cmd, &options);
bson_destroy (&options);
return true;
}
/*
*--------------------------------------------------------------------------
*
* _mongoc_cluster_run_scram_command --
*
* Runs a scram authentication command, handling auth_source and
* errors during the command.
*
*
* Returns:
* true if the command was successful, false otherwise
*
* Side effects:
* @error is set on failure.
*
*--------------------------------------------------------------------------
*/
static bool
_mongoc_cluster_run_scram_command (mongoc_cluster_t *cluster,
mongoc_stream_t *stream,
const mongoc_server_description_t *handshake_sd,
const bson_t *cmd,
bson_t *reply,
bson_error_t *error)
{
mongoc_cmd_parts_t parts;
mongoc_server_stream_t *server_stream;
const char *auth_source;
mc_shared_tpld td = mc_tpld_take_ref (BSON_ASSERT_PTR_INLINE (cluster)->client->topology);
if (!(auth_source = mongoc_uri_get_auth_source (cluster->uri)) || (*auth_source == '\0')) {
auth_source = "admin";
}
mongoc_cmd_parts_init (&parts, cluster->client, auth_source, MONGOC_QUERY_SECONDARY_OK, cmd);
parts.prohibit_lsid = true;
server_stream = _mongoc_cluster_create_server_stream (td.ptr, handshake_sd, stream);
mc_tpld_drop_ref (&td);
if (!mongoc_cluster_run_command_parts (cluster, server_stream, &parts, reply, error)) {
mongoc_server_stream_cleanup (server_stream);
bson_destroy (reply);
/* error->message is already set */
error->domain = MONGOC_ERROR_CLIENT;
error->code = MONGOC_ERROR_CLIENT_AUTHENTICATE;
return false;
}
mongoc_server_stream_cleanup (server_stream);
return true;
}
/*
*--------------------------------------------------------------------------
*
* _mongoc_cluster_auth_scram_start --
*
* Starts scram authentication by generating and sending the saslStart
* command. The conversation can then be resumed using
* _mongoc_cluster_auth_scram_continue.
*
*
* Returns:
* true if the saslStart command was successful, false otherwise
*
* Side effects:
* @error is set on failure.
*
*--------------------------------------------------------------------------
*/
static bool
_mongoc_cluster_auth_scram_start (mongoc_cluster_t *cluster,
mongoc_stream_t *stream,
const mongoc_server_description_t *handshake_sd,
mongoc_crypto_hash_algorithm_t algo,
mongoc_scram_t *scram,
bson_t *reply,
bson_error_t *error)
{
bson_t cmd;
BSON_ASSERT (scram->step == 0);
if (!_mongoc_cluster_get_auth_cmd_scram (algo, scram, &cmd, error)) {
/* error->message is already set */
error->domain = MONGOC_ERROR_CLIENT;
error->code = MONGOC_ERROR_CLIENT_AUTHENTICATE;
return false;
}
if (!_mongoc_cluster_run_scram_command (cluster, stream, handshake_sd, &cmd, reply, error)) {
bson_destroy (&cmd);
return false;
}
bson_destroy (&cmd);
return true;
}
/*
*--------------------------------------------------------------------------
*
* _mongoc_cluster_scram_handle_reply --
*
* Handles replies from _mongoc_cluster_run_scram_command. The @done
* argument will be set to true if the scram conversation was
* completed successfully.
*
*
* Returns:
* true if the reply was handled successfully, false if there was an
* error. Note that the return value itself does not indicate whether
* authentication was completed successfully.
*
* Side effects:
* @error is set on failure. @done, @conv_id, @buf, and @buflen are
* set for use in the next scram step.
*
*--------------------------------------------------------------------------
*/
static bool
_mongoc_cluster_scram_handle_reply (mongoc_scram_t *scram,
const bson_t *reply,
bool *done /* OUT */,
int *conv_id /* OUT */,
uint8_t *buf /* OUT */,
uint32_t bufmax,
uint32_t *buflen /* OUT */,
bson_error_t *error)
{
bson_iter_t iter;
bson_subtype_t btype;
const char *tmpstr;
BSON_ASSERT (scram);
bool is_done = false;
bsonParse (*reply, find (key ("done"), storeBool (is_done)));
if (is_done) {
if (scram->step < 2) {
/* Prior to step 2, we haven't even received server proof. */
bson_set_error (error, MONGOC_ERROR_CLIENT, MONGOC_ERROR_CLIENT_AUTHENTICATE, "Incorrect step for 'done'");
return false;
}
*done = true;
if (scram->step >= 3) {
return true;
}
}
if (!bson_iter_init_find (&iter, reply, "conversationId") || !BSON_ITER_HOLDS_INT32 (&iter) ||
!(*conv_id = bson_iter_int32 (&iter)) || !bson_iter_init_find (&iter, reply, "payload") ||
!BSON_ITER_HOLDS_BINARY (&iter)) {
const char *errmsg = "Received invalid SCRAM reply from MongoDB server.";
MONGOC_DEBUG ("SCRAM: authentication failed");
if (bson_iter_init_find (&iter, reply, "errmsg") && BSON_ITER_HOLDS_UTF8 (&iter)) {
errmsg = bson_iter_utf8 (&iter, NULL);
}
bson_set_error (error, MONGOC_ERROR_CLIENT, MONGOC_ERROR_CLIENT_AUTHENTICATE, "%s", errmsg);
return false;
}
bson_iter_binary (&iter, &btype, buflen, (const uint8_t **) &tmpstr);
if (*buflen > bufmax) {
bson_set_error (
error, MONGOC_ERROR_CLIENT, MONGOC_ERROR_CLIENT_AUTHENTICATE, "SCRAM reply from MongoDB is too large.");
return false;
}
memcpy (buf, tmpstr, *buflen);
return true;
}
/*
*--------------------------------------------------------------------------
*
* _mongoc_cluster_auth_scram_continue --
*
* Continues the scram conversation from the reply to a saslStart
* command, either sent explicitly or received through speculative
* authentication during hello.
*
*
* Returns:
* true if authenticated. false on failure and @error is set.
*
* Side effects:
* @error is set on failure.
*
*--------------------------------------------------------------------------
*/
static bool
_mongoc_cluster_auth_scram_continue (mongoc_cluster_t *cluster,
mongoc_stream_t *stream,
const mongoc_server_description_t *handshake_sd,
mongoc_scram_t *scram,
const bson_t *sasl_start_reply,
bson_error_t *error)
{
bson_t cmd;
uint8_t buf[4096] = {0};
uint32_t buflen = 0;
int conv_id = 0;
bool done = false;
bson_t reply_local;
if (!_mongoc_cluster_scram_handle_reply (
scram, sasl_start_reply, &done, &conv_id, buf, sizeof buf, &buflen, error)) {
return false;
}
for (;;) {
if (!_mongoc_scram_step (scram, buf, buflen, buf, sizeof buf, &buflen, error)) {
return false;
}
if (done && (scram->step >= 3)) {
break;
}
bson_init (&cmd);
BSON_APPEND_INT32 (&cmd, "saslContinue", 1);
BSON_APPEND_INT32 (&cmd, "conversationId", conv_id);
bson_append_binary (&cmd, "payload", 7, BSON_SUBTYPE_BINARY, buf, buflen);
TRACE ("SCRAM: authenticating (step %d)", scram->step);
if (!_mongoc_cluster_run_scram_command (cluster, stream, handshake_sd, &cmd, &reply_local, error)) {
bson_destroy (&cmd);
return false;
}
bson_destroy (&cmd);
if (!_mongoc_cluster_scram_handle_reply (scram, &reply_local, &done, &conv_id, buf, sizeof buf, &buflen, error)) {
bson_destroy (&reply_local);
return false;
}
bson_destroy (&reply_local);
if (done && (scram->step >= 3)) {
break;
}
}
TRACE ("%s", "SCRAM: authenticated");
return true;
}
/*
*--------------------------------------------------------------------------
*
* _mongoc_cluster_auth_node_scram --
*
* Invokes scram authentication by sending a saslStart command and
* handling all replies.
*
*
* Returns:
* true if authenticated. false on failure and @error is set.
*
* Side effects:
* @error is set on failure.
*
*--------------------------------------------------------------------------
*/
static bool
_mongoc_cluster_auth_node_scram (mongoc_cluster_t *cluster,
mongoc_stream_t *stream,
mongoc_server_description_t *handshake_sd,
mongoc_crypto_hash_algorithm_t algo,
bson_error_t *error)
{
mongoc_scram_t scram;
bool ret = false;
bson_t reply;
BSON_ASSERT (cluster);
_mongoc_cluster_init_scram (cluster, &scram, algo);
if (!_mongoc_cluster_auth_scram_start (cluster, stream, handshake_sd, algo, &scram, &reply, error)) {
goto failure;
}
if (!_mongoc_cluster_auth_scram_continue (cluster, stream, handshake_sd, &scram, &reply, error)) {
bson_destroy (&reply);
goto failure;
}
TRACE ("%s", "SCRAM: authenticated");
ret = true;
bson_destroy (&reply);
failure:
_mongoc_scram_destroy (&scram);
return ret;
}
#endif
static bool
_mongoc_cluster_auth_node_scram_sha_1 (mongoc_cluster_t *cluster,
mongoc_stream_t *stream,
mongoc_server_description_t *sd,
bson_error_t *error)
{
#ifndef MONGOC_ENABLE_CRYPTO
bson_set_error (error,
MONGOC_ERROR_CLIENT,
MONGOC_ERROR_CLIENT_AUTHENTICATE,
"The SCRAM_SHA_1 authentication mechanism requires "
"libmongoc built with ENABLE_SSL");
return false;
#else
return _mongoc_cluster_auth_node_scram (cluster, stream, sd, MONGOC_CRYPTO_ALGORITHM_SHA_1, error);
#endif
}
static bool
_mongoc_cluster_auth_node_scram_sha_256 (mongoc_cluster_t *cluster,
mongoc_stream_t *stream,
mongoc_server_description_t *sd,
bson_error_t *error)
{
#ifndef MONGOC_ENABLE_CRYPTO
bson_set_error (error,
MONGOC_ERROR_CLIENT,
MONGOC_ERROR_CLIENT_AUTHENTICATE,
"The SCRAM_SHA_256 authentication mechanism requires "
"libmongoc built with ENABLE_SSL");
return false;
#else
return _mongoc_cluster_auth_node_scram (cluster, stream, sd, MONGOC_CRYPTO_ALGORITHM_SHA_256, error);
#endif
}
/*
*--------------------------------------------------------------------------
*
* _mongoc_cluster_auth_node --
*
* Authenticate a cluster node depending on the required mechanism.
*
* Returns:
* true if authenticated. false on failure and @error is set.
*
* Side effects:
* @error is set on failure.
*
*--------------------------------------------------------------------------
*/
static bool
_mongoc_cluster_auth_node (mongoc_cluster_t *cluster,
mongoc_stream_t *stream,
mongoc_server_description_t *sd,
const mongoc_handshake_sasl_supported_mechs_t *sasl_supported_mechs,
bson_error_t *error)
{
bool ret = false;
const char *mechanism;
ENTRY;
BSON_ASSERT (cluster);
BSON_ASSERT (stream);
mechanism = mongoc_uri_get_auth_mechanism (cluster->uri);
if (!mechanism) {
if (sasl_supported_mechs->scram_sha_256) {
/* Auth spec: "If SCRAM-SHA-256 is present in the list of mechanisms,
* then it MUST be used as the default; otherwise, SCRAM-SHA-1 MUST be
* used as the default, regardless of whether SCRAM-SHA-1 is in the
* list. Drivers MUST NOT attempt to use any other mechanism (e.g.
* PLAIN) as the default." [...] "If saslSupportedMechs is not present
* in the hello results for mechanism negotiation, then SCRAM-SHA-1
* MUST be used when talking to servers >= 3.0." */
mechanism = "SCRAM-SHA-256";
} else {
mechanism = "SCRAM-SHA-1";
}
}
if (0 == strcasecmp (mechanism, "MONGODB-X509")) {
ret = _mongoc_cluster_auth_node_x509 (cluster, stream, sd, error);
} else if (0 == strcasecmp (mechanism, "SCRAM-SHA-1")) {
ret = _mongoc_cluster_auth_node_scram_sha_1 (cluster, stream, sd, error);
} else if (0 == strcasecmp (mechanism, "SCRAM-SHA-256")) {
ret = _mongoc_cluster_auth_node_scram_sha_256 (cluster, stream, sd, error);
} else if (0 == strcasecmp (mechanism, "GSSAPI")) {
ret = _mongoc_cluster_auth_node_sasl (cluster, stream, sd, error);
} else if (0 == strcasecmp (mechanism, "PLAIN")) {
ret = _mongoc_cluster_auth_node_plain (cluster, stream, sd, error);
} else if (0 == strcasecmp (mechanism, "MONGODB-AWS")) {
ret = _mongoc_cluster_auth_node_aws (cluster, stream, sd, error);
} else {
bson_set_error (error,
MONGOC_ERROR_CLIENT,
MONGOC_ERROR_CLIENT_AUTHENTICATE,
"Unknown authentication mechanism \"%s\".",
mechanism);
}
if (!ret) {
mongoc_counter_auth_failure_inc ();
MONGOC_DEBUG ("Authentication failed: %s", error->message);
} else {
mongoc_counter_auth_success_inc ();
TRACE ("%s", "Authentication succeeded");
}
RETURN (ret);
}
/*
* Close the connection associated with this server.
*
* Called when a network error occurs, or to close connection tied to an exhaust
* cursor.
* If the cluster is pooled, removes the node from cluster's set of nodes.
* WARNING: pointers to a disconnected mongoc_cluster_node_t or its stream are
* now invalid, be careful of dangling pointers.
*/
void
mongoc_cluster_disconnect_node (mongoc_cluster_t *cluster, uint32_t server_id)
{
mongoc_topology_t *topology = cluster->client->topology;
ENTRY;
if (topology->single_threaded) {
mongoc_topology_scanner_node_t *scanner_node;
scanner_node = mongoc_topology_scanner_get_node (topology->scanner, server_id);
/* might never actually have connected */
if (scanner_node && scanner_node->stream) {
mongoc_topology_scanner_node_disconnect (scanner_node, true);
}
} else {
mongoc_set_rm (cluster->nodes, server_id);
}
EXIT;
}
static void
_mongoc_cluster_node_destroy (mongoc_cluster_node_t *node)
{
/* Failure, or Replica Set reconfigure without this node */
mongoc_stream_failed (node->stream);
bson_free (node->connection_address);
mongoc_server_description_destroy (node->handshake_sd);
bson_free (node);
}
static void
_mongoc_cluster_node_dtor (void *data_, void *ctx_)
{
mongoc_cluster_node_t *node = (mongoc_cluster_node_t *) data_;
BSON_UNUSED (ctx_);
_mongoc_cluster_node_destroy (node);
}
static mongoc_cluster_node_t *
_mongoc_cluster_node_new (mongoc_stream_t *stream, const char *connection_address)
{
mongoc_cluster_node_t *node;
if (!stream) {
return NULL;
}
node = (mongoc_cluster_node_t *) bson_malloc0 (sizeof *node);
node->stream = stream;
node->connection_address = bson_strdup (connection_address);
/* Note that the node->sd field is set to NULL by bson_malloc0(),
rather than being explicitly initialized. */
return node;
}
static bool
_mongoc_cluster_finish_speculative_auth (mongoc_cluster_t *cluster,
mongoc_stream_t *stream,
mongoc_server_description_t *handshake_sd,
bson_t *speculative_auth_response,
mongoc_scram_t *scram,
bson_error_t *error)
{
const char *mechanism = _mongoc_topology_scanner_get_speculative_auth_mechanism (cluster->uri);
bool ret = false;
bool auth_handled = false;
BSON_ASSERT (handshake_sd);
BSON_ASSERT (speculative_auth_response);
if (!mechanism) {
return false;
}
if (bson_empty (speculative_auth_response)) {
return false;
}
#ifdef MONGOC_ENABLE_SSL
if (strcasecmp (mechanism, "MONGODB-X509") == 0) {
/* For X509, a successful hello with speculativeAuthenticate field
* indicates successful auth */
ret = true;
auth_handled = true;
}
#endif
#ifdef MONGOC_ENABLE_CRYPTO
if (strcasecmp (mechanism, "SCRAM-SHA-1") == 0 || strcasecmp (mechanism, "SCRAM-SHA-256") == 0) {
/* Don't attempt authentication if scram objects have advanced past
* saslStart */
if (scram->step != 1) {
return false;
}
auth_handled = true;
ret =
_mongoc_cluster_auth_scram_continue (cluster, stream, handshake_sd, scram, speculative_auth_response, error);
}
#endif
if (auth_handled) {
if (!ret) {
mongoc_counter_auth_failure_inc ();
MONGOC_DEBUG ("Speculative authentication failed: %s", error->message);
} else {
mongoc_counter_auth_success_inc ();
TRACE ("%s", "Speculative authentication succeeded");
}
}
bson_reinit (speculative_auth_response);
return ret;
}
/*
*--------------------------------------------------------------------------
*
* mongoc_cluster_add_node --
*
* Add a new node to this cluster for the given server description.
*
* NOTE: does NOT check if this server is already in the cluster.
*
* Returns:
* A stream connected to the server, or NULL on failure.
*
* Side effects:
* Adds a cluster node, or sets error on failure.
*
*--------------------------------------------------------------------------
*/
static mongoc_cluster_node_t *
_cluster_add_node (mongoc_cluster_t *cluster,
const mongoc_topology_description_t *td,
uint32_t server_id,
bson_error_t *error /* OUT */)
{
mongoc_host_list_t *host = NULL;
mongoc_cluster_node_t *cluster_node = NULL;
mongoc_stream_t *stream;
mongoc_server_description_t *handshake_sd;
mongoc_handshake_sasl_supported_mechs_t sasl_supported_mechs;
mongoc_scram_t scram = {0};
bson_t speculative_auth_response = BSON_INITIALIZER;
ENTRY;
BSON_ASSERT (!cluster->client->topology->single_threaded);
host = _mongoc_topology_host_by_id (td, server_id, error);
if (!host) {
GOTO (error);
}
TRACE ("Adding new server to cluster: %s", host->host_and_port);
stream = _mongoc_client_create_stream (cluster->client, host, error);
if (!stream) {
MONGOC_WARNING ("Failed connection to %s (%s)", host->host_and_port, error->message);
GOTO (error);
/* TODO CDRIVER-3654: if this is a non-timeout network error and the
* generation is not stale, mark the server unknown and increment the
* generation. */
}
/* take critical fields from a fresh hello */
cluster_node = _mongoc_cluster_node_new (stream, host->host_and_port);
handshake_sd = _cluster_run_hello (cluster, cluster_node, server_id, &scram, &speculative_auth_response, error);
if (!handshake_sd) {
GOTO (error);
}
_mongoc_handshake_parse_sasl_supported_mechs (&handshake_sd->last_hello_response, &sasl_supported_mechs);
if (cluster->requires_auth) {
/* Complete speculative authentication */
bool is_auth = _mongoc_cluster_finish_speculative_auth (
cluster, stream, handshake_sd, &speculative_auth_response, &scram, error);
if (!is_auth &&
!_mongoc_cluster_auth_node (cluster, cluster_node->stream, handshake_sd, &sasl_supported_mechs, error)) {
MONGOC_WARNING ("Failed authentication to %s (%s)", host->host_and_port, error->message);
mongoc_server_description_destroy (handshake_sd);
GOTO (error);
}
}
/* Transfer ownership of the server description into the cluster node. */
cluster_node->handshake_sd = handshake_sd;
/* Copy the latest connection pool generation.
* TODO (CDRIVER-4078) do not store the generation counter on the server
* description */
handshake_sd->generation =
_mongoc_topology_get_connection_pool_generation (td, server_id, &handshake_sd->service_id);
bson_destroy (&speculative_auth_response);
mongoc_set_add (cluster->nodes, server_id, cluster_node);
_mongoc_host_list_destroy_all (host);
#ifdef MONGOC_ENABLE_CRYPTO
_mongoc_scram_destroy (&scram);
#endif
RETURN (cluster_node);
error:
bson_destroy (&speculative_auth_response);
_mongoc_host_list_destroy_all (host); /* null ok */
#ifdef MONGOC_ENABLE_CRYPTO
_mongoc_scram_destroy (&scram);
#endif
if (cluster_node) {
_mongoc_cluster_node_destroy (cluster_node); /* also destroys stream */
}
RETURN (NULL);
}
static void
node_not_found (const mongoc_topology_description_t *td, uint32_t server_id, bson_error_t *error /* OUT */)
{
mongoc_server_description_t const *sd;
if (!error) {
return;
}
sd = mongoc_topology_description_server_by_id_const (td, server_id, error);
if (!sd) {
return;
}
if (sd->error.code) {
memcpy (error, &sd->error, sizeof *error);
} else {
bson_set_error (error,
MONGOC_ERROR_STREAM,
MONGOC_ERROR_STREAM_NOT_ESTABLISHED,
"Could not find node %s",
sd->host.host_and_port);
}
}
static void
stream_not_found (const mongoc_topology_description_t *td,
uint32_t server_id,
const char *connection_address,
bson_error_t *error /* OUT */)
{
mongoc_server_description_t const *sd;
sd = mongoc_topology_description_server_by_id_const (td, server_id, error);
if (error) {
if (sd && sd->error.code) {
memcpy (error, &sd->error, sizeof *error);
} else {
bson_set_error (error,
MONGOC_ERROR_STREAM,
MONGOC_ERROR_STREAM_NOT_ESTABLISHED,
"Could not find stream for node %s",
connection_address);
}
}
}
static mongoc_server_stream_t *
_try_get_server_stream (mongoc_cluster_t *cluster,
const mongoc_topology_description_t *td,
uint32_t server_id,
bool reconnect_ok,
bson_error_t *error)
{
if (cluster->client->topology->single_threaded) {
/* in the single-threaded use case we share topology's streams */
return _cluster_fetch_stream_single (cluster, td, server_id, reconnect_ok, error);
} else {
return _cluster_fetch_stream_pooled (cluster, td, server_id, reconnect_ok, error);
}
}
static mongoc_server_stream_t *
_mongoc_cluster_stream_for_server (mongoc_cluster_t *cluster,
uint32_t server_id,
bool reconnect_ok,
const mongoc_client_session_t *cs,
bson_t *reply,
bson_error_t *error /* OUT */)
{
mongoc_topology_t *const topology = BSON_ASSERT_PTR_INLINE (cluster)->client->topology;
mongoc_server_stream_t *ret_server_stream;
bson_error_t err_local;
/* if fetch_stream fails we need a place to receive error details and pass
* them to mongoc_topology_description_invalidate_server. */
bson_error_t *err_ptr = error ? error : &err_local;
mc_tpld_modification tdmod;
mc_shared_tpld td;
ENTRY;
td = mc_tpld_take_ref (topology);
ret_server_stream = _try_get_server_stream (cluster, td.ptr, server_id, reconnect_ok, err_ptr);
if (!ret_server_stream) {
/* TODO CDRIVER-3654. A null server stream could be due to:
* 1. Network error during handshake.
* 2. Failure to retrieve server description (if it was removed from
* topology).
* 3. Auth error during handshake.
* Only (1) should mark the server unknown and clear the pool.
* Network errors should be checked at a lower layer than this, when an
* operation on a stream fails, and should take the connection generation
* into account.
*/
_mongoc_bson_init_if_set (reply);
// Add a transient transaction label if applicable.
_mongoc_add_transient_txn_error (cs, reply);
/* Update the topology */
tdmod = mc_tpld_modify_begin (topology);
/* When establishing a new connection in load balanced mode, drivers MUST
* NOT perform SDAM error handling for any errors that occur before the
* MongoDB Handshake. */
if (tdmod.new_td->type == MONGOC_TOPOLOGY_LOAD_BALANCED) {
mc_tpld_modify_drop (tdmod);
ret_server_stream = NULL;
goto done;
}
mongoc_topology_description_invalidate_server (tdmod.new_td, &topology->log_and_monitor, server_id, err_ptr);
mongoc_cluster_disconnect_node (cluster, server_id);
/* This is not load balanced mode, so there are no service IDs associated
* with connections. Pass kZeroObjectId to clear the entire connection
* pool to this server. */
_mongoc_topology_description_clear_connection_pool (tdmod.new_td, server_id, &kZeroObjectId);
if (!topology->single_threaded) {
_mongoc_topology_background_monitoring_cancel_check (topology, server_id);
}
mc_tpld_modify_commit (tdmod);
ret_server_stream = NULL;
goto done;
}
/* If this is a load balanced topology and the server stream does not have a
* service id, disconnect and return an error. */
if (td.ptr->type == MONGOC_TOPOLOGY_LOAD_BALANCED) {
if (!mongoc_server_description_has_service_id (ret_server_stream->sd)) {
bson_set_error (error,
MONGOC_ERROR_CLIENT,
MONGOC_ERROR_CLIENT_INVALID_LOAD_BALANCER,
"Driver attempted to initialize in load balancing "
"mode, but the server does not support this mode.");
mongoc_server_stream_cleanup (ret_server_stream);
mongoc_cluster_disconnect_node (cluster, server_id);
_mongoc_bson_init_if_set (reply);
ret_server_stream = NULL;
goto done;
}
}
done:
mc_tpld_drop_ref (&td);
RETURN (ret_server_stream);
}
mongoc_server_stream_t *
mongoc_cluster_stream_for_server (mongoc_cluster_t *cluster,
uint32_t server_id,
bool reconnect_ok,
mongoc_client_session_t *cs,
bson_t *reply,
bson_error_t *error)
{
BSON_ASSERT_PARAM (cluster);
BSON_OPTIONAL_PARAM (cs);
BSON_OPTIONAL_PARAM (reply);
BSON_OPTIONAL_PARAM (error);
ENTRY;
BSON_ASSERT (cluster);
if (cs && cs->server_id && cs->server_id != server_id) {
_mongoc_bson_init_if_set (reply);
bson_set_error (error,
MONGOC_ERROR_COMMAND,
MONGOC_ERROR_SERVER_SELECTION_INVALID_ID,
"Requested server id does not matched pinned server id");
RETURN (NULL);
}
mongoc_server_stream_t *const server_stream =
_mongoc_cluster_stream_for_server (cluster, server_id, reconnect_ok, cs, reply, error);
if (_in_sharded_txn (cs)) {
_mongoc_client_session_pin (cs, server_id);
} else {
/* Transactions Spec: Additionally, any non-transaction operation using
* a pinned ClientSession MUST unpin the session and the operation MUST
* perform normal server selection. */
if (cs && !_mongoc_client_session_in_txn_or_ending (cs)) {
_mongoc_client_session_unpin (cs);
}
}
RETURN (server_stream);
}
static mongoc_server_stream_t *
_cluster_fetch_stream_single (mongoc_cluster_t *cluster,
const mongoc_topology_description_t *td,
uint32_t server_id,
bool reconnect_ok,
bson_error_t *error /* OUT */)
{
mongoc_server_description_t *handshake_sd;
mongoc_topology_scanner_node_t *scanner_node;
char *address;
scanner_node = mongoc_topology_scanner_get_node (cluster->client->topology->scanner, server_id);
/* This could happen if a user explicitly passes a bad server id. */
if (!scanner_node) {
bson_set_error (error,
MONGOC_ERROR_COMMAND,
MONGOC_ERROR_COMMAND_INVALID_ARG,
"Could not find server with id: %" PRIu32,
server_id);
return NULL;
}
/* Retired scanner nodes are removed at the end of a scan. If the node was
* retired, that would indicate a bug. */
if (scanner_node->retired) {
bson_set_error (error,
MONGOC_ERROR_COMMAND,
MONGOC_ERROR_COMMAND_INVALID_ARG,
"Unexpected, selecting server marked for removal: %s",
scanner_node->host.host_and_port);
return NULL;
}
if (scanner_node->stream) {
handshake_sd = mongoc_server_description_new_copy (scanner_node->handshake_sd);
} else {
if (!reconnect_ok) {
stream_not_found (td, server_id, scanner_node->host.host_and_port, error);
return NULL;
}
/* save the scanner node address in case it is removed during the scan. */
address = bson_strdup (scanner_node->host.host_and_port);
_mongoc_topology_do_blocking_scan (cluster->client->topology, error);
if (error->code) {
bson_free (address);
return NULL;
}
scanner_node = mongoc_topology_scanner_get_node (cluster->client->topology->scanner, server_id);
if (!scanner_node || !scanner_node->stream) {
stream_not_found (td, server_id, address, error);
bson_free (address);
return NULL;
}
bson_free (address);
handshake_sd = mongoc_server_description_new_copy (scanner_node->handshake_sd);
}
if (handshake_sd->type == MONGOC_SERVER_UNKNOWN) {
*error = handshake_sd->error;
mongoc_server_description_destroy (handshake_sd);
return NULL;
}
/* stream open but not auth'ed: first use since connect or reconnect */
if (cluster->requires_auth && !scanner_node->has_auth) {
/* Complete speculative authentication */
bool has_speculative_auth = _mongoc_cluster_finish_speculative_auth (cluster,
scanner_node->stream,
handshake_sd,
&scanner_node->speculative_auth_response,
&scanner_node->scram,
&handshake_sd->error);
#ifdef MONGOC_ENABLE_CRYPTO
_mongoc_scram_destroy (&scanner_node->scram);
#endif
if (!scanner_node->stream) {
*error = handshake_sd->error;
mongoc_server_description_destroy (handshake_sd);
return NULL;
}
if (!has_speculative_auth &&
!_mongoc_cluster_auth_node (
cluster, scanner_node->stream, handshake_sd, &scanner_node->sasl_supported_mechs, &handshake_sd->error)) {
*error = handshake_sd->error;
mongoc_server_description_destroy (handshake_sd);
return NULL;
}
scanner_node->has_auth = true;
}
/* Copy the latest connection pool generation.
* TODO (CDRIVER-4078) do not store the generation counter on the server
* description */
handshake_sd->generation =
_mongoc_topology_get_connection_pool_generation (td, server_id, &handshake_sd->service_id);
return mongoc_server_stream_new (td, handshake_sd, scanner_node->stream);
}
/*
*--------------------------------------------------------------------------
*
* mongoc_cluster_stream_valid --
*
* Internal function to determine if @server_stream is valid and
* associated with the given cluster.
*
* Returns:
* true if @server_stream is not NULL, hasn't been freed or changed;
* otherwise false.
*
*--------------------------------------------------------------------------
*/
bool
mongoc_cluster_stream_valid (mongoc_cluster_t *cluster, mongoc_server_stream_t *server_stream)
{
mongoc_server_stream_t *tmp_stream = NULL;
mongoc_topology_t *topology = BSON_ASSERT_PTR_INLINE (cluster)->client->topology;
const mongoc_server_description_t *sd;
bool ret = false;
bson_error_t error;
mc_shared_tpld td = mc_tpld_take_ref (topology);
if (!server_stream) {
goto done;
}
tmp_stream = mongoc_cluster_stream_for_server (cluster, server_stream->sd->id, false, NULL, NULL, NULL);
if (!tmp_stream || tmp_stream->stream != server_stream->stream) {
/* stream was freed, or has changed. */
goto done;
}
/* Check that the server stream is still valid for the given server, and that
* the server is still registered. */
sd = mongoc_topology_description_server_by_id_const (td.ptr, server_stream->sd->id, &error);
if (!sd || server_stream->sd->generation < _mongoc_topology_get_connection_pool_generation (
td.ptr, server_stream->sd->id, &server_stream->sd->service_id)) {
/* No server description, or the pool has been cleared. */
goto done;
}
ret = true;
done:
mc_tpld_drop_ref (&td);
mongoc_server_stream_cleanup (tmp_stream);
return ret;
}
mongoc_server_stream_t *
_mongoc_cluster_create_server_stream (mongoc_topology_description_t const *td,
const mongoc_server_description_t *handshake_sd,
mongoc_stream_t *stream)
{
mongoc_server_description_t *const sd = mongoc_server_description_new_copy (handshake_sd);
/* can't just use mongoc_topology_server_by_id(), since we must hold the
* lock while copying topology->shared_descr.ptr->logical_time below */
return mongoc_server_stream_new (td, sd, stream);
}
static mongoc_server_stream_t *
_cluster_fetch_stream_pooled (mongoc_cluster_t *cluster,
const mongoc_topology_description_t *td,
uint32_t server_id,
bool reconnect_ok,
bson_error_t *error /* OUT */)
{
mongoc_cluster_node_t *cluster_node;
mongoc_server_description_t const *sd;
bool has_server_description = false;
cluster_node = (mongoc_cluster_node_t *) mongoc_set_get (cluster->nodes, server_id);
sd = mongoc_topology_description_server_by_id_const (td, server_id, error);
if (sd) {
has_server_description = true;
}
if (cluster_node) {
uint32_t connection_pool_generation = 0;
BSON_ASSERT (cluster_node->stream);
connection_pool_generation =
_mongoc_topology_get_connection_pool_generation (td, server_id, &cluster_node->handshake_sd->service_id);
if (!has_server_description || cluster_node->handshake_sd->generation < connection_pool_generation) {
/* Since the stream was created, connections to this server were
* invalidated.
* This may have happened if:
* - A background scan removed the server description.
* - A network error or a "not primary"/"node is recovering" error
* occurred on an app connection.
* - A network error occurred on the monitor connection.
*/
mongoc_cluster_disconnect_node (cluster, server_id);
} else {
return _mongoc_cluster_create_server_stream (td, cluster_node->handshake_sd, cluster_node->stream);
}
}
/* no node, or out of date */
if (!reconnect_ok) {
node_not_found (td, server_id, error);
return NULL;
}
cluster_node = _cluster_add_node (cluster, td, server_id, error);
if (cluster_node) {
return _mongoc_cluster_create_server_stream (td, cluster_node->handshake_sd, cluster_node->stream);
} else {
return NULL;
}
}
/*
*--------------------------------------------------------------------------
*
* mongoc_cluster_init --
*
* Initializes @cluster using the @uri and @client provided. The
* @uri is used to determine the "mode" of the cluster. Based on the
* uri we can determine if we are connected to a single host, a
* replicaSet, or a shardedCluster.
*
* Returns:
* None.
*
* Side effects:
* @cluster is initialized.
*
*--------------------------------------------------------------------------
*/
void
mongoc_cluster_init (mongoc_cluster_t *cluster, const mongoc_uri_t *uri, void *client)
{
ENTRY;
BSON_ASSERT (cluster);
BSON_ASSERT (uri);
memset (cluster, 0, sizeof *cluster);
cluster->uri = mongoc_uri_copy (uri);
cluster->client = (mongoc_client_t *) client;
cluster->requires_auth = (mongoc_uri_get_username (uri) || mongoc_uri_get_auth_mechanism (uri));
mongoc_cluster_reset_sockettimeoutms (cluster);
cluster->socketcheckintervalms =
mongoc_uri_get_option_as_int32 (uri, MONGOC_URI_SOCKETCHECKINTERVALMS, MONGOC_TOPOLOGY_SOCKET_CHECK_INTERVAL_MS);
/* TODO for single-threaded case we don't need this */
cluster->nodes = mongoc_set_new (8, _mongoc_cluster_node_dtor, NULL);
_mongoc_array_init (&cluster->iov, sizeof (mongoc_iovec_t));
cluster->operation_id = rand ();
EXIT;
}
/*
*--------------------------------------------------------------------------
*
* mongoc_cluster_destroy --
*
* Clean up after @cluster and destroy all active connections.
* All resources for @cluster are released.
*
* Returns:
* None.
*
* Side effects:
* Everything.
*
*--------------------------------------------------------------------------
*/
void
mongoc_cluster_destroy (mongoc_cluster_t *cluster) /* INOUT */
{
ENTRY;
BSON_ASSERT (cluster);
mongoc_uri_destroy (cluster->uri);
mongoc_set_destroy (cluster->nodes);
_mongoc_array_destroy (&cluster->iov);
EXIT;
}
void
mongoc_cluster_set_sockettimeoutms (mongoc_cluster_t *cluster, int32_t timeoutms)
{
BSON_ASSERT_PARAM (cluster);
cluster->sockettimeoutms = timeoutms;
}
void
mongoc_cluster_reset_sockettimeoutms (mongoc_cluster_t *cluster)
{
BSON_ASSERT_PARAM (cluster);
cluster->sockettimeoutms =
mongoc_uri_get_option_as_int32 (cluster->uri, MONGOC_URI_SOCKETTIMEOUTMS, MONGOC_DEFAULT_SOCKETTIMEOUTMS);
}
static uint32_t
_mongoc_cluster_select_server_id (mongoc_client_session_t *cs,
mongoc_topology_t *topology,
mongoc_ss_optype_t optype,
const mongoc_ss_log_context_t *log_context,
const mongoc_read_prefs_t *read_prefs,
bool *must_use_primary,
const mongoc_deprioritized_servers_t *ds,
bson_error_t *error)
{
BSON_OPTIONAL_PARAM (cs);
BSON_ASSERT_PARAM (topology);
BSON_OPTIONAL_PARAM (read_prefs);
BSON_ASSERT_PARAM (must_use_primary);
BSON_OPTIONAL_PARAM (error);
uint32_t server_id;
if (_in_sharded_txn (cs)) {
server_id = cs->server_id;
if (!server_id) {
server_id =
mongoc_topology_select_server_id (topology, optype, log_context, read_prefs, must_use_primary, ds, error);
if (server_id) {
_mongoc_client_session_pin (cs, server_id);
}
}
} else {
server_id =
mongoc_topology_select_server_id (topology, optype, log_context, read_prefs, must_use_primary, ds, error);
/* Transactions Spec: Additionally, any non-transaction operation using a
* pinned ClientSession MUST unpin the session and the operation MUST
* perform normal server selection. */
if (cs && !_mongoc_client_session_in_txn_or_ending (cs)) {
_mongoc_client_session_unpin (cs);
}
}
return server_id;
}
/*
*--------------------------------------------------------------------------
*
* mongoc_cluster_stream_for_optype --
*
* Internal server selection.
*
* Returns:
* A mongoc_server_stream_t on which you must call
* mongoc_server_stream_cleanup, or NULL on failure (sets @error)
*
* Side effects:
* May add or disconnect nodes in @cluster->nodes.
* Sets @error and initializes @reply on error.
*
*--------------------------------------------------------------------------
*/
static mongoc_server_stream_t *
_mongoc_cluster_stream_for_optype (mongoc_cluster_t *cluster,
mongoc_ss_optype_t optype,
const mongoc_ss_log_context_t *log_context,
const mongoc_read_prefs_t *read_prefs,
mongoc_client_session_t *cs,
bool is_retryable,
const mongoc_deprioritized_servers_t *ds,
bson_t *reply,
bson_error_t *error)
{
BSON_ASSERT_PARAM (cluster);
BSON_OPTIONAL_PARAM (read_prefs);
BSON_OPTIONAL_PARAM (cs);
BSON_OPTIONAL_PARAM (reply);
BSON_OPTIONAL_PARAM (error);
mongoc_server_stream_t *server_stream;
uint32_t server_id;
mongoc_topology_t *topology = cluster->client->topology;
bool must_use_primary = false;
ENTRY;
BSON_ASSERT (cluster);
server_id =
_mongoc_cluster_select_server_id (cs, topology, optype, log_context, read_prefs, &must_use_primary, ds, error);
if (!server_id) {
if (reply) {
bson_init (reply);
_mongoc_add_transient_txn_error (cs, reply);
}
RETURN (NULL);
}
if (!mongoc_cluster_check_interval (cluster, server_id)) {
/* Server Selection Spec: try once more */
server_id =
_mongoc_cluster_select_server_id (cs, topology, optype, log_context, read_prefs, &must_use_primary, ds, error);
if (!server_id) {
if (reply) {
bson_init (reply);
_mongoc_add_transient_txn_error (cs, reply);
}
RETURN (NULL);
}
}
bson_t first_reply;
bson_error_t first_error = {0};
server_stream =
_mongoc_cluster_stream_for_server (cluster, server_id, true /* reconnect_ok */, cs, &first_reply, &first_error);
if (server_stream) {
server_stream->must_use_primary = must_use_primary;
RETURN (server_stream);
}
// Important: authentication errors are also considered retryable even if
// they not considered a network error.
const bool retryable_error = _mongoc_error_is_network (&first_error) || _mongoc_error_is_auth (&first_error);
if (is_retryable && retryable_error) {
bson_t retry_reply;
bson_error_t retry_error = {0};
server_stream = _mongoc_cluster_stream_for_server (
cluster, server_id, true /* reconnect_ok */, cs, &retry_reply, &retry_error);
if (server_stream) {
server_stream->must_use_primary = must_use_primary;
server_stream->retry_attempted = true;
bson_destroy (&first_reply);
RETURN (server_stream);
}
if (optype != MONGOC_SS_READ) {
// Retryable Writes Spec: When the driver encounters a network error
// establishing an initial connection to a server, it MUST add a
// RetryableWriteError label to that error if the MongoClient
// performing the operation has the retryWrites configuration option
// set to true.
_mongoc_write_error_append_retryable_label (&first_reply);
}
bson_destroy (&retry_reply);
}
// Retryable Writes Spec: If the driver cannot select a server for the retry
// attempt [...], retrying is not possible and drivers MUST raise the
// original retryable error.
{
if (reply) {
bson_copy_to (&first_reply, reply);
}
bson_destroy (&first_reply);
if (error) {
*error = first_error;
}
}
RETURN (NULL);
}
mongoc_server_stream_t *
mongoc_cluster_stream_for_reads (mongoc_cluster_t *cluster,
const mongoc_ss_log_context_t *log_context,
const mongoc_read_prefs_t *read_prefs,
mongoc_client_session_t *cs,
const mongoc_deprioritized_servers_t *ds,
bson_t *reply,
bson_error_t *error)
{
const mongoc_read_prefs_t *const prefs_override =
_mongoc_client_session_in_txn (cs) ? cs->txn.opts.read_prefs : read_prefs;
// Retryable Reads Spec: This boolean option determines whether retryable
// behavior will be applied to all read operations executed within the
// MongoClient.
const bool is_retryable =
mongoc_uri_get_option_as_bool (cluster->uri, MONGOC_URI_RETRYREADS, MONGOC_DEFAULT_RETRYREADS);
return _mongoc_cluster_stream_for_optype (
cluster, MONGOC_SS_READ, log_context, prefs_override, cs, is_retryable, ds, reply, error);
}
mongoc_server_stream_t *
mongoc_cluster_stream_for_writes (mongoc_cluster_t *cluster,
const mongoc_ss_log_context_t *log_context,
mongoc_client_session_t *cs,
const mongoc_deprioritized_servers_t *ds,
bson_t *reply,
bson_error_t *error)
{
const bool is_retryable =
mongoc_uri_get_option_as_bool (cluster->uri, MONGOC_URI_RETRYWRITES, MONGOC_DEFAULT_RETRYWRITES);
return _mongoc_cluster_stream_for_optype (
cluster, MONGOC_SS_WRITE, log_context, NULL, cs, is_retryable, ds, reply, error);
}
mongoc_server_stream_t *
mongoc_cluster_stream_for_aggr_with_write (mongoc_cluster_t *cluster,
const mongoc_ss_log_context_t *log_context,
const mongoc_read_prefs_t *read_prefs,
mongoc_client_session_t *cs,
bson_t *reply,
bson_error_t *error)
{
const mongoc_read_prefs_t *const prefs_override =
_mongoc_client_session_in_txn (cs) ? cs->txn.opts.read_prefs : read_prefs;
const bool is_retryable =
mongoc_uri_get_option_as_bool (cluster->uri, MONGOC_URI_RETRYWRITES, MONGOC_DEFAULT_RETRYWRITES);
return _mongoc_cluster_stream_for_optype (
cluster, MONGOC_SS_AGGREGATE_WITH_WRITE, log_context, prefs_override, cs, is_retryable, NULL, reply, error);
}
static bool
_mongoc_cluster_min_of_max_obj_size_sds (const void *item, void *ctx)
{
const mongoc_server_description_t *sd = item;
int32_t *current_min = (int32_t *) ctx;
if (sd->max_bson_obj_size < *current_min) {
*current_min = sd->max_bson_obj_size;
}
return true;
}
static bool
_mongoc_cluster_min_of_max_obj_size_nodes (void *item, void *ctx)
{
mongoc_cluster_node_t *node = (mongoc_cluster_node_t *) item;
int32_t *current_min = (int32_t *) ctx;
if (node->handshake_sd->max_bson_obj_size < *current_min) {
*current_min = node->handshake_sd->max_bson_obj_size;
}
return true;
}
static bool
_mongoc_cluster_min_of_max_msg_size_sds (const void *item, void *ctx)
{
const mongoc_server_description_t *sd = item;
int32_t *current_min = (int32_t *) ctx;
if (sd->max_msg_size < *current_min) {
*current_min = sd->max_msg_size;
}
return true;
}
static bool
_mongoc_cluster_min_of_max_msg_size_nodes (void *item, void *ctx)
{
mongoc_cluster_node_t *node = (mongoc_cluster_node_t *) item;
int32_t *current_min = (int32_t *) ctx;
if (node->handshake_sd->max_msg_size < *current_min) {
*current_min = node->handshake_sd->max_msg_size;
}
return true;
}
/*
*--------------------------------------------------------------------------
*
* mongoc_cluster_get_max_bson_obj_size --
*
* Return the minimum max_bson_obj_size across all servers in cluster.
*
* Returns:
* The minimum max_bson_obj_size.
*
* Side effects:
* None
*
*--------------------------------------------------------------------------
*/
int32_t
mongoc_cluster_get_max_bson_obj_size (mongoc_cluster_t *cluster)
{
int32_t max_bson_obj_size = -1;
max_bson_obj_size = MONGOC_DEFAULT_BSON_OBJ_SIZE;
if (!cluster->client->topology->single_threaded) {
mongoc_set_for_each (cluster->nodes, _mongoc_cluster_min_of_max_obj_size_nodes, &max_bson_obj_size);
} else {
mc_shared_tpld td = mc_tpld_take_ref (BSON_ASSERT_PTR_INLINE (cluster)->client->topology);
mongoc_set_for_each_const (
mc_tpld_servers_const (td.ptr), _mongoc_cluster_min_of_max_obj_size_sds, &max_bson_obj_size);
mc_tpld_drop_ref (&td);
}
return max_bson_obj_size;
}
/*
*--------------------------------------------------------------------------
*
* mongoc_cluster_get_max_msg_size --
*
* Return the minimum max msg size across all servers in cluster.
*
* Returns:
* The minimum max_msg_size
*
* Side effects:
* None
*
*--------------------------------------------------------------------------
*/
int32_t
mongoc_cluster_get_max_msg_size (mongoc_cluster_t *cluster)
{
int32_t max_msg_size = MONGOC_DEFAULT_MAX_MSG_SIZE;
if (!cluster->client->topology->single_threaded) {
mongoc_set_for_each (cluster->nodes, _mongoc_cluster_min_of_max_msg_size_nodes, &max_msg_size);
} else {
mc_shared_tpld td = mc_tpld_take_ref (BSON_ASSERT_PTR_INLINE (cluster)->client->topology);
mongoc_set_for_each_const (
mc_tpld_servers_const (td.ptr), _mongoc_cluster_min_of_max_msg_size_sds, &max_msg_size);
mc_tpld_drop_ref (&td);
}
return max_msg_size;
}
/*
*--------------------------------------------------------------------------
*
* mongoc_cluster_check_interval --
*
* Server Selection Spec:
*
* Only for single-threaded drivers.
*
* If a server is selected that has an existing connection that has been
* idle for socketCheckIntervalMS, the driver MUST check the connection
* with the "ping" command. If the ping succeeds, use the selected
* connection. If not, set the server's type to Unknown and update the
* Topology Description according to the Server Discovery and Monitoring
* Spec, and attempt once more to select a server.
*
* Returns:
* True if the check succeeded or no check was required, false if the
* check failed.
*
* Side effects:
* If a check fails, closes stream and may set server type Unknown.
*
*--------------------------------------------------------------------------
*/
bool
mongoc_cluster_check_interval (mongoc_cluster_t *cluster, uint32_t server_id)
{
mongoc_cmd_parts_t parts;
mongoc_topology_t *topology;
mongoc_topology_scanner_node_t *scanner_node;
mongoc_stream_t *stream;
int64_t now;
bson_t command;
bson_error_t error;
bool r = true;
mongoc_server_stream_t *server_stream;
mongoc_server_description_t *handshake_sd;
topology = cluster->client->topology;
if (!topology->single_threaded) {
return true;
}
scanner_node = mongoc_topology_scanner_get_node (topology->scanner, server_id);
if (!scanner_node) {
return false;
}
BSON_ASSERT (!scanner_node->retired);
stream = scanner_node->stream;
if (!stream) {
return false;
}
handshake_sd = scanner_node->handshake_sd;
BSON_ASSERT (handshake_sd);
now = bson_get_monotonic_time ();
if (scanner_node->last_used + (1000 * CHECK_CLOSED_DURATION_MSEC) < now) {
if (mongoc_stream_check_closed (stream)) {
mc_tpld_modification tdmod;
bson_set_error (&error, MONGOC_ERROR_STREAM, MONGOC_ERROR_STREAM_SOCKET, "connection closed");
mongoc_cluster_disconnect_node (cluster, server_id);
tdmod = mc_tpld_modify_begin (topology);
/* invalidate_server() is okay if 'server_id' was already removed. */
mongoc_topology_description_invalidate_server (tdmod.new_td, &topology->log_and_monitor, server_id, &error);
mc_tpld_modify_commit (tdmod);
return false;
}
}
if (scanner_node->last_used + (1000 * cluster->socketcheckintervalms) < now) {
mc_shared_tpld td;
bson_init (&command);
BSON_APPEND_INT32 (&command, "ping", 1);
mongoc_cmd_parts_init (&parts, cluster->client, "admin", MONGOC_QUERY_SECONDARY_OK, &command);
parts.prohibit_lsid = true;
td = mc_tpld_take_ref (topology);
server_stream = _mongoc_cluster_create_server_stream (td.ptr, handshake_sd, stream);
mc_tpld_drop_ref (&td);
if (!server_stream) {
bson_destroy (&command);
return false;
}
r = mongoc_cluster_run_command_parts (cluster, server_stream, &parts, NULL, &error);
mongoc_server_stream_cleanup (server_stream);
bson_destroy (&command);
if (!r) {
mc_tpld_modification tdmod;
mongoc_cluster_disconnect_node (cluster, server_id);
tdmod = mc_tpld_modify_begin (topology);
/* invalidate_server() is okay if 'server_id' was already removed. */
mongoc_topology_description_invalidate_server (tdmod.new_td, &topology->log_and_monitor, server_id, &error);
mc_tpld_modify_commit (tdmod);
}
}
return r;
}
bool
mongoc_cluster_legacy_rpc_sendv_to_server (mongoc_cluster_t *cluster,
mcd_rpc_message *rpc,
mongoc_server_stream_t *server_stream,
bson_error_t *error)
{
BSON_ASSERT_PARAM (cluster);
BSON_ASSERT_PARAM (rpc);
BSON_ASSERT_PARAM (server_stream);
BSON_ASSERT_PARAM (error);
ENTRY;
bool ret = false;
void *compressed_data = NULL;
size_t compressed_data_len = 0u;
mongoc_iovec_t *iovecs = NULL;
size_t num_iovecs = 0u;
if (cluster->client->in_exhaust) {
bson_set_error (
error, MONGOC_ERROR_CLIENT, MONGOC_ERROR_CLIENT_IN_EXHAUST, "a cursor derived from this client is in exhaust");
GOTO (done);
}
const int32_t compressor_id = mongoc_server_description_compressor_id (server_stream->sd);
if (compressor_id != -1 && !mcd_rpc_message_compress (rpc,
compressor_id,
_compression_level_from_uri (compressor_id, cluster->uri),
&compressed_data,
&compressed_data_len,
error)) {
GOTO (done);
}
const uint32_t server_id = server_stream->sd->id;
const int32_t max_msg_size = mongoc_server_stream_max_msg_size (server_stream);
const int32_t message_length = mcd_rpc_header_get_message_length (rpc);
if (message_length > max_msg_size) {
bson_set_error (error,
MONGOC_ERROR_CLIENT,
MONGOC_ERROR_CLIENT_TOO_BIG,
"attempted to send an RPC message with length %" PRId32
" which exceeds the maximum allowed length %" PRId32,
message_length,
max_msg_size);
GOTO (done);
}
iovecs = mcd_rpc_message_to_iovecs (rpc, &num_iovecs);
BSON_ASSERT (iovecs);
mcd_rpc_message_egress (rpc);
if (!_mongoc_stream_writev_full (server_stream->stream, iovecs, num_iovecs, cluster->sockettimeoutms, error)) {
GOTO (done);
}
_mongoc_topology_update_last_used (cluster->client->topology, server_id);
ret = true;
done:
bson_free (iovecs);
bson_free (compressed_data);
RETURN (ret);
}
bool
mongoc_cluster_try_recv (mongoc_cluster_t *cluster,
mcd_rpc_message *rpc,
mongoc_buffer_t *buffer,
mongoc_server_stream_t *server_stream,
bson_error_t *error)
{
BSON_ASSERT_PARAM (cluster);
BSON_ASSERT_PARAM (rpc);
BSON_ASSERT_PARAM (server_stream);
BSON_ASSERT_PARAM (error);
ENTRY;
bool ret = false;
TRACE ("Waiting for reply from server_id \"%u\"", server_stream->sd->id);
const size_t offset = buffer->len;
if (!_mongoc_buffer_append_from_stream (
buffer, server_stream->stream, sizeof (int32_t), cluster->sockettimeoutms, error)) {
MONGOC_DEBUG ("could not read message length, stream probably closed or timed out");
mongoc_counter_protocol_ingress_error_inc ();
_handle_network_error (cluster, server_stream, error);
GOTO (done);
}
const int32_t message_length = _int32_from_le (buffer->data + offset);
const int32_t max_msg_size = mongoc_server_stream_max_msg_size (server_stream);
if (message_length < message_header_length || message_length > max_msg_size) {
bson_set_error (error,
MONGOC_ERROR_PROTOCOL,
MONGOC_ERROR_PROTOCOL_INVALID_REPLY,
"message length %" PRId32 " is not within valid range of %" PRId32 "-%" PRId32 " bytes",
message_header_length,
message_length,
server_stream->sd->max_msg_size);
_handle_network_error (cluster, server_stream, error);
mongoc_counter_protocol_ingress_error_inc ();
GOTO (done);
}
const size_t remaining_bytes = (size_t) message_length - sizeof (int32_t);
if (!_mongoc_buffer_append_from_stream (
buffer, server_stream->stream, remaining_bytes, cluster->sockettimeoutms, error)) {
_handle_network_error (cluster, server_stream, error);
mongoc_counter_protocol_ingress_error_inc ();
GOTO (done);
}
if (!mcd_rpc_message_from_data_in_place (rpc, buffer->data + offset, (size_t) message_length, NULL)) {
bson_set_error (
error, MONGOC_ERROR_PROTOCOL, MONGOC_ERROR_PROTOCOL_INVALID_REPLY, "failed to decode reply from server");
_handle_network_error (cluster, server_stream, error);
mongoc_counter_protocol_ingress_error_inc ();
GOTO (done);
}
mcd_rpc_message_ingress (rpc);
void *decompressed_data = NULL;
size_t decompressed_data_len = 0u;
if (!mcd_rpc_message_decompress_if_necessary (rpc, &decompressed_data, &decompressed_data_len)) {
bson_set_error (
error, MONGOC_ERROR_PROTOCOL, MONGOC_ERROR_PROTOCOL_INVALID_REPLY, "could not decompress server reply");
GOTO (done);
}
if (decompressed_data) {
_mongoc_buffer_destroy (buffer);
_mongoc_buffer_init (buffer, decompressed_data, decompressed_data_len, NULL, NULL);
}
ret = true;
done:
return ret;
}
static void
network_error_reply (bson_t *reply, const mongoc_cmd_t *cmd)
{
bson_array_builder_t *labels;
if (reply) {
bson_init (reply);
}
if (cmd->session) {
if (cmd->session->server_session) {
cmd->session->server_session->dirty = true;
}
/* Transactions Spec defines TransientTransactionError: "Any
* network error or server selection error encountered running any
* command besides commitTransaction in a transaction. In the case
* of command errors, the server adds the label; in the case of
* network errors or server selection errors where the client
* receives no server reply, the client adds the label." */
if (_mongoc_client_session_in_txn (cmd->session) && !cmd->is_txn_finish) {
/* Transaction Spec: "Drivers MUST unpin a ClientSession when a command
* within a transaction, including commitTransaction and
* abortTransaction,
* fails with a TransientTransactionError". If we're about to add
* a TransientTransactionError label due to a client side error then we
* unpin. If commitTransaction/abortTransation includes a label in the
* server reply, we unpin in _mongoc_client_session_handle_reply. */
cmd->session->server_id = 0;
if (!reply) {
return;
}
BSON_APPEND_ARRAY_BUILDER_BEGIN (reply, "errorLabels", &labels);
bson_array_builder_append_utf8 (labels, TRANSIENT_TXN_ERR, -1);
bson_append_array_builder_end (reply, labels);
}
}
}
static bool
_mongoc_cluster_run_opmsg_send (
mongoc_cluster_t *cluster, const mongoc_cmd_t *cmd, mcd_rpc_message *rpc, bson_t *reply, bson_error_t *error)
{
BSON_ASSERT_PARAM (cluster);
BSON_ASSERT_PARAM (cmd);
BSON_ASSERT_PARAM (rpc);
BSON_ASSERT_PARAM (reply);
BSON_ASSERT_PARAM (error);
mongoc_server_stream_t *const server_stream = cmd->server_stream;
const uint32_t flags = (cmd->is_acknowledged ? MONGOC_OP_MSG_FLAG_NONE : MONGOC_OP_MSG_FLAG_MORE_TO_COME) |
(cmd->op_msg_is_exhaust ? MONGOC_OP_MSG_FLAG_EXHAUST_ALLOWED : MONGOC_OP_MSG_FLAG_NONE);
{
int32_t message_length = 0;
message_length += mcd_rpc_header_set_message_length (rpc, 0);
message_length += mcd_rpc_header_set_request_id (rpc, ++cluster->request_id);
message_length += mcd_rpc_header_set_response_to (rpc, 0);
message_length += mcd_rpc_header_set_op_code (rpc, MONGOC_OP_CODE_MSG);
BSON_ASSERT (cmd->payloads_count <= MONGOC_CMD_PAYLOADS_COUNT_MAX);
// Reserve one section for the body (kind 0) and any needed sections for document sequences (kind 1)
mcd_rpc_op_msg_set_sections_count (rpc, 1u + cmd->payloads_count);
message_length += mcd_rpc_op_msg_set_flag_bits (rpc, flags);
message_length += mcd_rpc_op_msg_section_set_kind (rpc, 0u, 0);
message_length += mcd_rpc_op_msg_section_set_body (rpc, 0u, bson_get_data (cmd->command));
for (size_t i = 0; i < cmd->payloads_count; i++) {
const mongoc_cmd_payload_t payload = cmd->payloads[i];
BSON_ASSERT (mcommon_in_range_signed (size_t, payload.size));
const size_t section_length = sizeof (int32_t) + strlen (payload.identifier) + 1u + (size_t) payload.size;
BSON_ASSERT (mcommon_in_range_unsigned (int32_t, section_length));
size_t section_idx = 1u + i;
message_length += mcd_rpc_op_msg_section_set_kind (rpc, section_idx, 1);
message_length += mcd_rpc_op_msg_section_set_length (rpc, section_idx, (int32_t) section_length);
message_length += mcd_rpc_op_msg_section_set_identifier (rpc, section_idx, payload.identifier);
message_length +=
mcd_rpc_op_msg_section_set_document_sequence (rpc, section_idx, payload.documents, (size_t) payload.size);
}
mcd_rpc_message_set_length (rpc, message_length);
}
void *compressed_data = NULL;
size_t compressed_data_len = 0u;
if (mongoc_cmd_is_compressible (cmd)) {
const int32_t compressor_id = mongoc_server_description_compressor_id (server_stream->sd);
TRACE ("Function '%s' is compressible: %d", cmd->command_name, compressor_id);
if (compressor_id != -1 && !mcd_rpc_message_compress (rpc,
compressor_id,
_compression_level_from_uri (compressor_id, cluster->uri),
&compressed_data,
&compressed_data_len,
error)) {
RUN_CMD_ERR_DECORATE;
_handle_network_error (cluster, server_stream, error);
server_stream->stream = NULL;
network_error_reply (reply, cmd);
return false;
}
}
size_t num_iovecs = 0u;
mongoc_iovec_t *const iovecs = mcd_rpc_message_to_iovecs (rpc, &num_iovecs);
BSON_ASSERT (iovecs);
mcd_rpc_message_egress (rpc);
const bool res =
_mongoc_stream_writev_full (server_stream->stream, iovecs, num_iovecs, cluster->sockettimeoutms, error);
if (!res) {
RUN_CMD_ERR_DECORATE;
_handle_network_error (cluster, server_stream, error);
server_stream->stream = NULL;
network_error_reply (reply, cmd);
}
bson_free (iovecs);
bson_free (compressed_data);
return res;
}
static bool
_mongoc_cluster_run_opmsg_recv (
mongoc_cluster_t *cluster, const mongoc_cmd_t *cmd, mcd_rpc_message *rpc, bson_t *reply, bson_error_t *error)
{
BSON_ASSERT_PARAM (cluster);
BSON_ASSERT_PARAM (cmd);
BSON_ASSERT_PARAM (rpc);
BSON_ASSERT_PARAM (reply);
BSON_ASSERT_PARAM (error);
bool ret = false;
mongoc_server_stream_t *const server_stream = cmd->server_stream;
mongoc_buffer_t buffer;
_mongoc_buffer_init (&buffer, NULL, 0, NULL, NULL);
if (!_mongoc_buffer_append_from_stream (
&buffer, server_stream->stream, sizeof (int32_t), cluster->sockettimeoutms, error)) {
MONGOC_DEBUG ("could not read message length, stream probably closed or timed out");
RUN_CMD_ERR_DECORATE;
_handle_network_error (cluster, server_stream, error);
server_stream->stream = NULL;
network_error_reply (reply, cmd);
goto done;
}
const int32_t message_length = _int32_from_le (buffer.data);
if (message_length < message_header_length || message_length > server_stream->sd->max_msg_size) {
RUN_CMD_ERR (MONGOC_ERROR_PROTOCOL,
MONGOC_ERROR_PROTOCOL_INVALID_REPLY,
"message length %" PRId32 " is not within valid range of %" PRId32 "-%" PRId32 " bytes",
message_header_length,
message_length,
server_stream->sd->max_msg_size);
_handle_network_error (cluster, server_stream, error);
server_stream->stream = NULL;
network_error_reply (reply, cmd);
goto done;
}
const size_t remaining_bytes = (size_t) message_length - sizeof (int32_t);
if (!_mongoc_buffer_append_from_stream (
&buffer, server_stream->stream, remaining_bytes, cluster->sockettimeoutms, error)) {
RUN_CMD_ERR_DECORATE;
_handle_network_error (cluster, server_stream, error);
server_stream->stream = NULL;
network_error_reply (reply, cmd);
goto done;
}
if (!mcd_rpc_message_from_data_in_place (rpc, buffer.data, buffer.len, NULL)) {
RUN_CMD_ERR (MONGOC_ERROR_PROTOCOL, MONGOC_ERROR_PROTOCOL_INVALID_REPLY, "malformed server message");
_handle_network_error (cluster, server_stream, error);
server_stream->stream = NULL;
network_error_reply (reply, cmd);
goto done;
}
mcd_rpc_message_ingress (rpc);
void *decompressed_data = NULL;
size_t decompressed_data_len = 0u;
if (!mcd_rpc_message_decompress_if_necessary (rpc, &decompressed_data, &decompressed_data_len)) {
bson_set_error (
error, MONGOC_ERROR_PROTOCOL, MONGOC_ERROR_PROTOCOL_INVALID_REPLY, "could not decompress message from server");
_handle_network_error (cluster, server_stream, error);
server_stream->stream = NULL;
network_error_reply (reply, cmd);
GOTO (done);
}
if (decompressed_data) {
_mongoc_buffer_destroy (&buffer);
_mongoc_buffer_init (&buffer, decompressed_data, decompressed_data_len, NULL, NULL);
}
// CDRIVER-5584
{
const int32_t op_code = mcd_rpc_header_get_op_code (rpc);
if (op_code != MONGOC_OP_CODE_MSG) {
RUN_CMD_ERR (MONGOC_ERROR_PROTOCOL,
MONGOC_ERROR_PROTOCOL_INVALID_REPLY,
"malformed message from server: expected opCode %" PRId32 ", got %" PRId32,
MONGOC_OP_CODE_MSG,
op_code);
_handle_network_error (cluster, server_stream, error);
server_stream->stream = NULL;
network_error_reply (reply, cmd);
goto done;
}
}
bson_t body;
if (!mcd_rpc_message_get_body (rpc, &body)) {
RUN_CMD_ERR (MONGOC_ERROR_PROTOCOL, MONGOC_ERROR_PROTOCOL_INVALID_REPLY, "malformed message from server");
_handle_network_error (cluster, server_stream, error);
server_stream->stream = NULL;
network_error_reply (reply, cmd);
goto done;
}
cluster->client->in_exhaust = (mcd_rpc_op_msg_get_flag_bits (rpc) & MONGOC_OP_MSG_FLAG_MORE_TO_COME) != 0u;
_mongoc_topology_update_cluster_time (cluster->client->topology, &body);
ret = _mongoc_cmd_check_ok (&body, cluster->client->error_api_version, error);
if (cmd->session) {
_mongoc_client_session_handle_reply (cmd->session, cmd->is_acknowledged, cmd->command_name, &body);
}
bson_copy_to (&body, reply);
bson_destroy (&body);
done:
_mongoc_buffer_destroy (&buffer);
return ret;
}
static bool
mongoc_cluster_run_opmsg (mongoc_cluster_t *cluster, const mongoc_cmd_t *cmd, bson_t *reply, bson_error_t *error)
{
BSON_ASSERT_PARAM (cluster);
BSON_ASSERT_PARAM (cmd);
BSON_ASSERT_PARAM (reply);
BSON_ASSERT_PARAM (error);
if (!cmd->command_name) {
bson_set_error (error, MONGOC_ERROR_COMMAND, MONGOC_ERROR_COMMAND_INVALID_ARG, "empty command document");
bson_init (reply);
return false;
}
if (!cmd->op_msg_is_exhaust && cluster->client->in_exhaust) {
bson_set_error (error,
MONGOC_ERROR_CLIENT,
MONGOC_ERROR_CLIENT_IN_EXHAUST,
"another cursor derived from this client is in exhaust");
bson_init (reply);
return false;
}
bool ret = false;
mcd_rpc_message *const rpc = mcd_rpc_message_new ();
if (!cluster->client->in_exhaust && !_mongoc_cluster_run_opmsg_send (cluster, cmd, rpc, reply, error)) {
goto done;
}
if (!cmd->is_acknowledged) {
// Nothing more to do.
bson_init (reply);
ret = true;
goto done;
}
mcd_rpc_message_reset (rpc);
if (!_mongoc_cluster_run_opmsg_recv (cluster, cmd, rpc, reply, error)) {
goto done;
}
ret = true;
done:
mcd_rpc_message_destroy (rpc);
return ret;
}
bool
mcd_rpc_message_compress (mcd_rpc_message *rpc,
int32_t compressor_id,
int32_t compression_level,
void **data,
size_t *data_len,
bson_error_t *error)
{
BSON_ASSERT_PARAM (rpc);
BSON_ASSERT_PARAM (data);
BSON_ASSERT_PARAM (data_len);
bool ret = false;
char *uncompressed_message = NULL;
char *compressed_message = NULL;
mongoc_iovec_t *iovecs = NULL;
const int32_t original_message_length = mcd_rpc_header_get_message_length (rpc);
// msgHeader consists of four int32 fields.
const int32_t message_header_length = 4u * sizeof (int32_t);
// compressedMessage does not include msgHeader fields.
BSON_ASSERT (original_message_length >= message_header_length);
const size_t uncompressed_size = (size_t) (original_message_length - message_header_length);
BSON_ASSERT (mcommon_in_range_unsigned (int32_t, uncompressed_size));
const size_t estimated_compressed_size = mongoc_compressor_max_compressed_length (compressor_id, uncompressed_size);
if (estimated_compressed_size == 0u) {
bson_set_error (error,
MONGOC_ERROR_COMMAND,
MONGOC_ERROR_COMMAND_INVALID_ARG,
"Could not determine compression bounds for %s",
mongoc_compressor_id_to_name (compressor_id));
goto fail;
}
// Store values before they are converted to little endian.
const int32_t request_id = mcd_rpc_header_get_request_id (rpc);
const int32_t response_to = mcd_rpc_header_get_response_to (rpc);
const int32_t op_code = mcd_rpc_header_get_op_code (rpc);
size_t num_iovecs;
iovecs = mcd_rpc_message_to_iovecs (rpc, &num_iovecs);
BSON_ASSERT (iovecs);
uncompressed_message = bson_malloc (uncompressed_size);
BSON_ASSERT (_mongoc_cluster_buffer_iovec (iovecs, num_iovecs, message_header_length, uncompressed_message) ==
uncompressed_size);
compressed_message = bson_malloc (estimated_compressed_size);
// This value may be passed as an argument to an in-out parameter depending
// on the compressor, not just an out-parameter.
size_t compressed_size = estimated_compressed_size;
if (!mongoc_compress (compressor_id,
compression_level,
uncompressed_message,
uncompressed_size,
compressed_message,
&compressed_size)) {
MONGOC_WARNING ("Could not compress data with %s", mongoc_compressor_id_to_name (compressor_id));
goto fail;
}
mcd_rpc_message_reset (rpc);
{
int32_t message_len = 0;
message_len += mcd_rpc_header_set_message_length (rpc, 0);
message_len += mcd_rpc_header_set_request_id (rpc, request_id);
message_len += mcd_rpc_header_set_response_to (rpc, response_to);
message_len += mcd_rpc_header_set_op_code (rpc, MONGOC_OP_CODE_COMPRESSED);
message_len += mcd_rpc_op_compressed_set_original_opcode (rpc, op_code);
message_len += mcd_rpc_op_compressed_set_uncompressed_size (rpc, (int32_t) uncompressed_size);
message_len += mcd_rpc_op_compressed_set_compressor_id (rpc, (uint8_t) compressor_id);
message_len += mcd_rpc_op_compressed_set_compressed_message (rpc, compressed_message, compressed_size);
mcd_rpc_message_set_length (rpc, message_len);
}
*data = compressed_message;
*data_len = compressed_size;
compressed_message = NULL;
ret = true;
fail:
bson_free (compressed_message);
bson_free (uncompressed_message);
bson_free (iovecs);
return ret;
}
bool
mcd_rpc_message_decompress (mcd_rpc_message *rpc, void **data, size_t *data_len)
{
BSON_ASSERT_PARAM (rpc);
BSON_ASSERT_PARAM (data);
BSON_ASSERT_PARAM (data_len);
BSON_ASSERT (mcd_rpc_header_get_op_code (rpc) == MONGOC_OP_CODE_COMPRESSED);
// msgHeader consists of four int32 fields.
const size_t message_header_length = 4u * sizeof (int32_t);
const int32_t uncompressed_size_raw = mcd_rpc_op_compressed_get_uncompressed_size (rpc);
// Malformed message: invalid uncompressedSize.
if (BSON_UNLIKELY (uncompressed_size_raw < 0)) {
return false;
}
const size_t uncompressed_size = (size_t) uncompressed_size_raw;
// Malformed message: original message length is not representable.
if (BSON_UNLIKELY (uncompressed_size > SIZE_MAX - message_header_length)) {
return false;
}
// uncompressedSize does not include msgHeader fields.
const size_t original_message_length = message_header_length + uncompressed_size;
uint8_t *const ptr = bson_malloc (original_message_length);
const int32_t message_length = original_message_length;
const int32_t request_id = mcd_rpc_header_get_request_id (rpc);
const int32_t response_to = mcd_rpc_header_get_response_to (rpc);
const int32_t op_code = mcd_rpc_op_compressed_get_original_opcode (rpc);
// Populate the msgHeader fields.
{
uint32_t storage;
memcpy (&storage, &message_length, sizeof (storage));
storage = BSON_UINT32_TO_LE (storage);
memcpy (ptr + 0, &storage, sizeof (storage));
memcpy (&storage, &request_id, sizeof (storage));
storage = BSON_UINT32_TO_LE (storage);
memcpy (ptr + 4, &storage, sizeof (storage));
memcpy (&storage, &response_to, sizeof (storage));
storage = BSON_UINT32_TO_LE (storage);
memcpy (ptr + 8, &storage, sizeof (storage));
memcpy (&storage, &op_code, sizeof (storage));
storage = BSON_UINT32_TO_LE (storage);
memcpy (ptr + 12, &storage, sizeof (storage));
}
// This value may be passed as an argument to an in-out parameter depending
// on the compressor, not just an out-parameter.
size_t actual_uncompressed_size = uncompressed_size;
// Populate the rest of the uncompressed message.
if (!mongoc_uncompress (mcd_rpc_op_compressed_get_compressor_id (rpc),
mcd_rpc_op_compressed_get_compressed_message (rpc),
mcd_rpc_op_compressed_get_compressed_message_length (rpc),
ptr + message_header_length,
&actual_uncompressed_size)) {
bson_free (ptr);
return false;
}
// Malformed message: size inconsistency.
if (BSON_UNLIKELY (uncompressed_size != actual_uncompressed_size)) {
bson_free (ptr);
return false;
}
*data_len = original_message_length;
*data = ptr; // Ownership transfer.
mcd_rpc_message_reset (rpc);
return mcd_rpc_message_from_data_in_place (rpc, *data, *data_len, NULL);
}
bool
mcd_rpc_message_decompress_if_necessary (mcd_rpc_message *rpc, void **data, size_t *data_len)
{
BSON_ASSERT_PARAM (rpc);
BSON_ASSERT_PARAM (data);
BSON_ASSERT_PARAM (data_len);
if (mcd_rpc_header_get_op_code (rpc) != MONGOC_OP_CODE_COMPRESSED) {
// Nothing to do.
*data = NULL;
*data_len = 0u;
return true;
}
return mcd_rpc_message_decompress (rpc, data, data_len);
}
bool
mongoc_cluster_run_retryable_write (mongoc_cluster_t *cluster,
mongoc_cmd_t *cmd,
bool is_retryable_write,
mongoc_server_stream_t **retry_server_stream,
bson_t *reply,
bson_error_t *error)
{
BSON_ASSERT_PARAM (cluster);
BSON_ASSERT_PARAM (cmd);
BSON_ASSERT_PARAM (retry_server_stream);
BSON_ASSERT_PARAM (reply);
BSON_OPTIONAL_PARAM (error);
bool ret;
// `can_retry` is set to false on retry. A retry may only happen once.
bool can_retry = is_retryable_write;
// Increment the transaction number for the first attempt of each retryable write command.
if (is_retryable_write) {
bson_iter_t txn_number_iter;
BSON_ASSERT (bson_iter_init_find (&txn_number_iter, cmd->command, "txnNumber"));
bson_iter_overwrite_int64 (&txn_number_iter, ++cmd->session->server_session->txn_number);
}
// Store the original error and reply if needed.
struct {
bson_t reply;
bson_error_t error;
bool set;
} original_error = {.reply = {0}, .error = {0}, .set = false};
// Ensure `*retry_server_stream` is always valid or null.
*retry_server_stream = NULL;
retry:
ret = mongoc_cluster_run_command_monitored (cluster, cmd, reply, error);
if (is_retryable_write) {
_mongoc_write_error_handle_labels (ret, error, reply, cmd->server_stream->sd);
_mongoc_write_error_update_if_unsupported_storage_engine (ret, error, reply);
}
// If a retryable error is encountered and the write is retryable, select a new writable stream and retry. If server
// selection fails or the selected server does not support retryable writes, fall through and allow the original
// error to be reported.
if (can_retry && _mongoc_write_error_get_type (reply) == MONGOC_WRITE_ERR_RETRY) {
can_retry = false; // Only retry once.
// Select a server.
{
mongoc_deprioritized_servers_t *const ds = mongoc_deprioritized_servers_new ();
// If talking to a sharded cluster, deprioritize the just-used mongos to prefer a new mongos for the retry.
mongoc_deprioritized_servers_add_if_sharded (ds, cmd->server_stream->topology_type, cmd->server_stream->sd);
const mongoc_ss_log_context_t ss_log_context = {
.operation = cmd->command_name, .has_operation_id = true, .operation_id = cmd->operation_id};
*retry_server_stream = mongoc_cluster_stream_for_writes (
cluster, &ss_log_context, cmd->session, ds, NULL /* reply */, NULL /* error */);
mongoc_deprioritized_servers_destroy (ds);
}
if (*retry_server_stream) {
cmd->server_stream = *retry_server_stream; // Non-owning.
{
// Store the original error and reply before retry.
BSON_ASSERT (!original_error.set); // Retry only happens once.
original_error.set = true;
bson_copy_to (reply, &original_error.reply);
if (error) {
original_error.error = *error;
}
}
bson_destroy (reply);
GOTO (retry);
}
}
// If a retry attempt fails with an error labeled NoWritesPerformed, drivers MUST return the original error.
if (original_error.set && mongoc_error_has_label (reply, "NoWritesPerformed")) {
if (error) {
*error = original_error.error;
}
bson_destroy (reply);
bson_copy_to (&original_error.reply, reply);
}
if (original_error.set) {
bson_destroy (&original_error.reply);
}
RETURN (ret);
}
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cmd-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cmd-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cmd-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cmd-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cmd.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cmd.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cmd.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cmd.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-collection-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-collection-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-collection-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-collection-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-collection.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-collection.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-collection.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-collection.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-collection.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-collection.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-collection.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-collection.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-compression-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-compression-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-compression-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-compression-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-compression.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-compression.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-compression.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-compression.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-config.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-config.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-config.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-config.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-config.h.in b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-config.h.in
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-config.h.in
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-config.h.in
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-counters-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-counters-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-counters-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-counters-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-counters.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-counters.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-counters.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-counters.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-counters.defs b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-counters.defs
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-counters.defs
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-counters.defs
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypt-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypt-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypt-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypt-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypt.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypt.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypt.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypt.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypto-cng-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypto-cng-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypto-cng-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypto-cng-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypto-cng.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypto-cng.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypto-cng.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypto-cng.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypto-common-crypto-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypto-common-crypto-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypto-common-crypto-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypto-common-crypto-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypto-common-crypto.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypto-common-crypto.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypto-common-crypto.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypto-common-crypto.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypto-openssl-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypto-openssl-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypto-openssl-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypto-openssl-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypto-openssl.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypto-openssl.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypto-openssl.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypto-openssl.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypto-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypto-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypto-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypto-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypto.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypto.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypto.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypto.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor-array.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor-array.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor-array.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor-array.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor-change-stream.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor-change-stream.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor-change-stream.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor-change-stream.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor-cmd-deprecated.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor-cmd-deprecated.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor-cmd-deprecated.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor-cmd-deprecated.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor-cmd.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor-cmd.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor-cmd.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor-cmd.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor-find-cmd.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor-find-cmd.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor-find-cmd.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor-find-cmd.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor-find-opquery.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor-find-opquery.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor-find-opquery.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor-find-opquery.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor-find.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor-find.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor-find.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor-find.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor-legacy.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor-legacy.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor-legacy.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor-legacy.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cyrus-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cyrus-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cyrus-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cyrus-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cyrus.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cyrus.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cyrus.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cyrus.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-database-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-database-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-database-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-database-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-database.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-database.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-database.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-database.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-database.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-database.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-database.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-database.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-deprioritized-servers-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-deprioritized-servers-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-deprioritized-servers-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-deprioritized-servers-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-deprioritized-servers.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-deprioritized-servers.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-deprioritized-servers.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-deprioritized-servers.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-errno-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-errno-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-errno-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-errno-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-error-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-error-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-error-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-error-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-error.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-error.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-error.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-error.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-error.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-error.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-error.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-error.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-find-and-modify-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-find-and-modify-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-find-and-modify-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-find-and-modify-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-find-and-modify.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-find-and-modify.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-find-and-modify.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-find-and-modify.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-find-and-modify.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-find-and-modify.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-find-and-modify.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-find-and-modify.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-flags-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-flags-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-flags-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-flags-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-flags.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-flags.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-flags.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-flags.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-flags.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-flags.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-flags.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-flags.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-generation-map-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-generation-map-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-generation-map-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-generation-map-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-generation-map.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-generation-map.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-generation-map.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-generation-map.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-bucket-file-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-bucket-file-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-bucket-file-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-bucket-file-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-bucket-file.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-bucket-file.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-bucket-file.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-bucket-file.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-bucket-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-bucket-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-bucket-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-bucket-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-bucket.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-bucket.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-bucket.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-bucket.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-bucket.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-bucket.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-bucket.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-bucket.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-file-list-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-file-list-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-file-list-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-file-list-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-file-list.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-file-list.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-file-list.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-file-list.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-file-list.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-file-list.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-file-list.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-file-list.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-file-page-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-file-page-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-file-page-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-file-page-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-file-page.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-file-page.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-file-page.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-file-page.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-file-page.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-file-page.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-file-page.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-file-page.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-file-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-file-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-file-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-file-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-file.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-file.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-file.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-file.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-file.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-file.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-file.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-file.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-handshake-compiler-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-handshake-compiler-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-handshake-compiler-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-handshake-compiler-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-handshake-os-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-handshake-os-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-handshake-os-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-handshake-os-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-handshake-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-handshake-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-handshake-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-handshake-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-handshake.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-handshake.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-handshake.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-handshake.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-handshake.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-handshake.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-handshake.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-handshake.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-host-list-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-host-list-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-host-list-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-host-list-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-host-list.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-host-list.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-host-list.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-host-list.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-host-list.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-host-list.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-host-list.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-host-list.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-http-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-http-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-http-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-http-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-http.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-http.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-http.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-http.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-index.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-index.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-index.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-index.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-index.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-index.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-index.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-index.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-init.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-init.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-init.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-init.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-init.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-init.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-init.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-init.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-interrupt-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-interrupt-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-interrupt-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-interrupt-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-interrupt.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-interrupt.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-interrupt.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-interrupt.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-iovec.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-iovec.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-iovec.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-iovec.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-libressl-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-libressl-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-libressl-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-libressl-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-libressl.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-libressl.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-libressl.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-libressl.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-linux-distro-scanner-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-linux-distro-scanner-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-linux-distro-scanner-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-linux-distro-scanner-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-linux-distro-scanner.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-linux-distro-scanner.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-linux-distro-scanner.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-linux-distro-scanner.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-list-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-list-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-list-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-list-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-list.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-list.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-list.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-list.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-log-and-monitor-private.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-log-and-monitor-private.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-log-and-monitor-private.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-log-and-monitor-private.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-log-and-monitor-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-log-and-monitor-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-log-and-monitor-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-log-and-monitor-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-log-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-log-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-log-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-log-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-log.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-log.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-log.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-log.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-log.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-log.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-log.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-log.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-macros.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-macros.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-macros.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-macros.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-matcher-op-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-matcher-op-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-matcher-op-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-matcher-op-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-matcher-op.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-matcher-op.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-matcher-op.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-matcher-op.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-matcher-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-matcher-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-matcher-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-matcher-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-matcher.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-matcher.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-matcher.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-matcher.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-matcher.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-matcher.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-matcher.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-matcher.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-memcmp-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-memcmp-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-memcmp-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-memcmp-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-memcmp.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-memcmp.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-memcmp.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-memcmp.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-ocsp-cache-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-ocsp-cache-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-ocsp-cache-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-ocsp-cache-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-ocsp-cache.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-ocsp-cache.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-ocsp-cache.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-ocsp-cache.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-opcode.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-opcode.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-opcode.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-opcode.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-opcode.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-opcode.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-opcode.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-opcode.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-openssl-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-openssl-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-openssl-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-openssl-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-openssl.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-openssl.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-openssl.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-openssl.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-optional.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-optional.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-optional.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-optional.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-optional.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-optional.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-optional.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-optional.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-opts-helpers-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-opts-helpers-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-opts-helpers-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-opts-helpers-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-opts-helpers.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-opts-helpers.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-opts-helpers.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-opts-helpers.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-opts-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-opts-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-opts-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-opts-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-opts.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-opts.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-opts.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-opts.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-prelude.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-prelude.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-prelude.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-prelude.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-queue-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-queue-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-queue-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-queue-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-queue.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-queue.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-queue.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-queue.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-rand-cng.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-rand-cng.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-rand-cng.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-rand-cng.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-rand-common-crypto.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-rand-common-crypto.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-rand-common-crypto.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-rand-common-crypto.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-rand-openssl.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-rand-openssl.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-rand-openssl.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-rand-openssl.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-rand-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-rand-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-rand-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-rand-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-rand.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-rand.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-rand.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-rand.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-read-concern-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-read-concern-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-read-concern-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-read-concern-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-read-concern.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-read-concern.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-read-concern.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-read-concern.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-read-concern.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-read-concern.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-read-concern.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-read-concern.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-read-prefs-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-read-prefs-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-read-prefs-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-read-prefs-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-read-prefs.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-read-prefs.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-read-prefs.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-read-prefs.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-read-prefs.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-read-prefs.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-read-prefs.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-read-prefs.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-rpc-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-rpc-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-rpc-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-rpc-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-rpc.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-rpc.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-rpc.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-rpc.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-sasl-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-sasl-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-sasl-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-sasl-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-sasl.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-sasl.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-sasl.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-sasl.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-scram-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-scram-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-scram-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-scram-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-scram.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-scram.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-scram.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-scram.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-secure-channel-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-secure-channel-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-secure-channel-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-secure-channel-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-secure-channel.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-secure-channel.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-secure-channel.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-secure-channel.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-secure-transport-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-secure-transport-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-secure-transport-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-secure-transport-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-secure-transport.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-secure-transport.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-secure-transport.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-secure-transport.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-api-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-api-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-api-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-api-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-api.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-api.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-api.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-api.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-api.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-api.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-api.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-api.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-description-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-description-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-description-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-description-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-description.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-description.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-description.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-description.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-description.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-description.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-description.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-description.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-monitor-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-monitor-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-monitor-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-monitor-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-monitor.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-monitor.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-monitor.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-monitor.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-stream-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-stream-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-stream-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-stream-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-stream.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-stream.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-stream.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-stream.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-set-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-set-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-set-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-set-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-set.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-set.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-set.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-set.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-shared-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-shared-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-shared-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-shared-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-shared.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-shared.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-shared.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-shared.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-sleep.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-sleep.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-sleep.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-sleep.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-socket-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-socket-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-socket-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-socket-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-socket.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-socket.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-socket.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-socket.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-socket.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-socket.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-socket.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-socket.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-ssl-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-ssl-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-ssl-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-ssl-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-ssl.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-ssl.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-ssl.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-ssl.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-ssl.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-ssl.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-ssl.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-ssl.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-sspi-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-sspi-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-sspi-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-sspi-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-sspi.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-sspi.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-sspi.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-sspi.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-buffered.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-buffered.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-buffered.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-buffered.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-buffered.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-buffered.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-buffered.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-buffered.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-file.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-file.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-file.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-file.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-file.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-file.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-file.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-file.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-gridfs-download-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-gridfs-download-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-gridfs-download-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-gridfs-download-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-gridfs-download.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-gridfs-download.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-gridfs-download.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-gridfs-download.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-gridfs-upload-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-gridfs-upload-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-gridfs-upload-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-gridfs-upload-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-gridfs-upload.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-gridfs-upload.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-gridfs-upload.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-gridfs-upload.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-gridfs.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-gridfs.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-gridfs.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-gridfs.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-gridfs.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-gridfs.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-gridfs.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-gridfs.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-socket.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-socket.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-socket.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-socket.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-socket.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-socket.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-socket.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-socket.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-libressl-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-libressl-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-libressl-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-libressl-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-libressl.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-libressl.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-libressl.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-libressl.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-libressl.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-libressl.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-libressl.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-libressl.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-openssl-bio-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-openssl-bio-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-openssl-bio-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-openssl-bio-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-openssl-bio.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-openssl-bio.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-openssl-bio.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-openssl-bio.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-openssl-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-openssl-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-openssl-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-openssl-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-openssl.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-openssl.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-openssl.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-openssl.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-openssl.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-openssl.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-openssl.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-openssl.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-secure-channel-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-secure-channel-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-secure-channel-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-secure-channel-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-secure-channel.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-secure-channel.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-secure-channel.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-secure-channel.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-secure-channel.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-secure-channel.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-secure-channel.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-secure-channel.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-secure-transport-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-secure-transport-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-secure-transport-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-secure-transport-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-secure-transport.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-secure-transport.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-secure-transport.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-secure-transport.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-secure-transport.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-secure-transport.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-secure-transport.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-secure-transport.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-structured-log-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-structured-log-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-structured-log-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-structured-log-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-structured-log.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-structured-log.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-structured-log.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-structured-log.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-structured-log.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-structured-log.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-structured-log.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-structured-log.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-thread-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-thread-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-thread-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-thread-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-timeout-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-timeout-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-timeout-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-timeout-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-timeout.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-timeout.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-timeout.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-timeout.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-background-monitoring-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-background-monitoring-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-background-monitoring-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-background-monitoring-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-background-monitoring.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-background-monitoring.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-background-monitoring.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-background-monitoring.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-description-apm-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-description-apm-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-description-apm-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-description-apm-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-description-apm.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-description-apm.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-description-apm.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-description-apm.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-description-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-description-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-description-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-description-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-description.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-description.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-description.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-description.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-description.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-description.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-description.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-description.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-scanner-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-scanner-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-scanner-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-scanner-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-scanner.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-scanner.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-scanner.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-scanner.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-trace-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-trace-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-trace-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-trace-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-ts-pool-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-ts-pool-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-ts-pool-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-ts-pool-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-ts-pool.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-ts-pool.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-ts-pool.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-ts-pool.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-uri-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-uri-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-uri-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-uri-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-uri.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-uri.c
similarity index 99%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-uri.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-uri.c
index 5bb2d133..750d4578 100644
--- a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-uri.c
+++ b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-uri.c
@@ -1,3138 +1,3138 @@
/*
* Copyright 2009-present MongoDB, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <ctype.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <math.h>
/* strcasecmp on windows */
#include <mongoc/mongoc-util-private.h>
#include <mongoc/mongoc-config.h>
#include <mongoc/mongoc-host-list.h>
#include <mongoc/mongoc-host-list-private.h>
#include <mongoc/mongoc-log.h>
#include <mongoc/mongoc-handshake-private.h>
#include <mongoc/mongoc-socket.h>
#include <mongoc/mongoc-topology-private.h>
#include <mongoc/mongoc-uri-private.h>
#include <mongoc/mongoc-read-concern-private.h>
#include <mongoc/mongoc-write-concern-private.h>
#include <mongoc/mongoc-compression-private.h>
#include <mongoc/utlist.h>
#include <mongoc/mongoc-trace-private.h>
#include <common-bson-dsl-private.h>
#include <common-string-private.h>
struct _mongoc_uri_t {
char *str;
bool is_srv;
char srv[BSON_HOST_NAME_MAX + 1];
mongoc_host_list_t *hosts;
char *username;
char *password;
char *database;
bson_t raw; /* Unparsed options, see mongoc_uri_parse_options */
bson_t options; /* Type-coerced and canonicalized options */
bson_t credentials;
bson_t compressors;
mongoc_read_prefs_t *read_prefs;
mongoc_read_concern_t *read_concern;
mongoc_write_concern_t *write_concern;
};
#define MONGOC_URI_ERROR(error, format, ...) \
bson_set_error (error, MONGOC_ERROR_COMMAND, MONGOC_ERROR_COMMAND_INVALID_ARG, format, __VA_ARGS__)
static const char *escape_instructions = "Percent-encode username and password"
" according to RFC 3986";
static bool
_mongoc_uri_set_option_as_int32 (mongoc_uri_t *uri, const char *option, int32_t value);
static bool
_mongoc_uri_set_option_as_int32_with_error (mongoc_uri_t *uri, const char *option, int32_t value, bson_error_t *error);
static bool
_mongoc_uri_set_option_as_int64_with_error (mongoc_uri_t *uri, const char *option, int64_t value, bson_error_t *error);
static void
mongoc_uri_do_unescape (char **str)
{
char *tmp;
if ((tmp = *str)) {
*str = mongoc_uri_unescape (tmp);
bson_free (tmp);
}
}
#define VALIDATE_SRV_ERR() \
do { \
bson_set_error (error, \
MONGOC_ERROR_STREAM, \
MONGOC_ERROR_STREAM_NAME_RESOLUTION, \
"Invalid host \"%s\" returned for service \"%s\": " \
"host must be subdomain of service name", \
host, \
srv_hostname); \
return false; \
} while (0)
static int
count_dots (const char *s)
{
int n = 0;
const char *dot = s;
while ((dot = strchr (dot + 1, '.'))) {
n++;
}
return n;
}
static char *
lowercase_str_new (const char *key)
{
char *ret = bson_strdup (key);
mongoc_lowercase (key, ret);
return ret;
}
/* at least one character, and does not start with dot */
static bool
valid_hostname (const char *s)
{
size_t len = strlen (s);
return len > 1 && s[0] != '.';
}
bool
mongoc_uri_validate_srv_result (const mongoc_uri_t *uri, const char *host, bson_error_t *error)
{
const char *srv_hostname;
const char *srv_host;
srv_hostname = mongoc_uri_get_srv_hostname (uri);
BSON_ASSERT (srv_hostname);
if (!valid_hostname (host)) {
VALIDATE_SRV_ERR ();
}
srv_host = strchr (srv_hostname, '.');
BSON_ASSERT (srv_host);
/* host must be descendent of service root: if service is
* "a.foo.co" host can be like "a.foo.co", "b.foo.co", "a.b.foo.co", etc.
*/
if (strlen (host) < strlen (srv_host)) {
VALIDATE_SRV_ERR ();
}
if (!mongoc_ends_with (host, srv_host)) {
VALIDATE_SRV_ERR ();
}
return true;
}
/* copy and upsert @host into @uri's host list. */
static bool
_upsert_into_host_list (mongoc_uri_t *uri, mongoc_host_list_t *host, bson_error_t *error)
{
if (uri->is_srv && !mongoc_uri_validate_srv_result (uri, host->host, error)) {
return false;
}
_mongoc_host_list_upsert (&uri->hosts, host);
return true;
}
bool
mongoc_uri_upsert_host_and_port (mongoc_uri_t *uri, const char *host_and_port, bson_error_t *error)
{
mongoc_host_list_t temp;
memset (&temp, 0, sizeof (mongoc_host_list_t));
if (!_mongoc_host_list_from_string_with_err (&temp, host_and_port, error)) {
return false;
}
return _upsert_into_host_list (uri, &temp, error);
}
bool
mongoc_uri_upsert_host (mongoc_uri_t *uri, const char *host, uint16_t port, bson_error_t *error)
{
mongoc_host_list_t temp;
memset (&temp, 0, sizeof (mongoc_host_list_t));
if (!_mongoc_host_list_from_hostport_with_err (&temp, host, port, error)) {
return false;
}
return _upsert_into_host_list (uri, &temp, error);
}
void
mongoc_uri_remove_host (mongoc_uri_t *uri, const char *host, uint16_t port)
{
_mongoc_host_list_remove_host (&(uri->hosts), host, port);
}
/*
*--------------------------------------------------------------------------
*
* scan_to_unichar --
*
* Scans 'str' until either a character matching 'match' is found,
* until one of the characters in 'terminators' is encountered, or
* until we reach the end of 'str'.
*
* NOTE: 'terminators' may not include multibyte UTF-8 characters.
*
* Returns:
* If 'match' is found, returns a copy of the section of 'str' before
* that character. Otherwise, returns NULL.
*
* Side Effects:
* If 'match' is found, sets 'end' to begin at the matching character
* in 'str'.
*
*--------------------------------------------------------------------------
*/
static char *
scan_to_unichar (const char *str, bson_unichar_t match, const char *terminators, const char **end)
{
bson_unichar_t c;
const char *iter;
for (iter = str; iter && *iter && (c = bson_utf8_get_char (iter)); iter = bson_utf8_next_char (iter)) {
if (c == match) {
*end = iter;
return bson_strndup (str, iter - str);
} else if (c == '\\') {
iter = bson_utf8_next_char (iter);
if (!bson_utf8_get_char (iter)) {
break;
}
} else {
const char *term_iter;
for (term_iter = terminators; *term_iter; term_iter++) {
if (c == *term_iter) {
return NULL;
}
}
}
}
return NULL;
}
static bool
mongoc_uri_parse_scheme (mongoc_uri_t *uri, const char *str, const char **end)
{
if (!strncmp (str, "mongodb+srv://", 14)) {
uri->is_srv = true;
*end = str + 14;
return true;
}
if (!strncmp (str, "mongodb://", 10)) {
uri->is_srv = false;
*end = str + 10;
return true;
}
return false;
}
static bool
mongoc_uri_has_unescaped_chars (const char *str, const char *chars)
{
const char *c;
const char *tmp;
char *s;
for (c = chars; *c; c++) {
s = scan_to_unichar (str, (bson_unichar_t) *c, "", &tmp);
if (s) {
bson_free (s);
return true;
}
}
return false;
}
/* "str" is non-NULL, the part of URI between "mongodb://" and first "@" */
static bool
mongoc_uri_parse_userpass (mongoc_uri_t *uri, const char *str, bson_error_t *error)
{
const char *prohibited = "@:/";
const char *end_user;
BSON_ASSERT (str);
BSON_ASSERT (uri);
if ((uri->username = scan_to_unichar (str, ':', "", &end_user))) {
uri->password = bson_strdup (end_user + 1);
} else {
uri->username = bson_strdup (str);
uri->password = NULL;
}
if (mongoc_uri_has_unescaped_chars (uri->username, prohibited)) {
MONGOC_URI_ERROR (error, "Username \"%s\" must not have unescaped chars. %s", uri->username, escape_instructions);
return false;
}
mongoc_uri_do_unescape (&uri->username);
if (!uri->username) {
MONGOC_URI_ERROR (error, "Incorrect URI escapes in username. %s", escape_instructions);
return false;
}
/* Providing password at all is optional */
if (uri->password) {
if (mongoc_uri_has_unescaped_chars (uri->password, prohibited)) {
MONGOC_URI_ERROR (
error, "Password \"%s\" must not have unescaped chars. %s", uri->password, escape_instructions);
return false;
}
mongoc_uri_do_unescape (&uri->password);
if (!uri->password) {
MONGOC_URI_ERROR (error, "%s", "Incorrect URI escapes in password");
return false;
}
}
return true;
}
bool
mongoc_uri_parse_host (mongoc_uri_t *uri, const char *host_and_port_in)
{
char *host_and_port = bson_strdup (host_and_port_in);
bson_error_t err = {0};
bool r;
/* unescape host. It doesn't hurt including port. */
if (mongoc_uri_has_unescaped_chars (host_and_port, "/")) {
MONGOC_WARNING ("Unix Domain Sockets must be escaped (e.g. / = %%2F)");
bson_free (host_and_port);
return false;
}
mongoc_uri_do_unescape (&host_and_port);
if (!host_and_port) {
/* invalid */
bson_free (host_and_port);
return false;
}
r = mongoc_uri_upsert_host_and_port (uri, host_and_port, &err);
if (!r) {
MONGOC_ERROR ("%s", err.message);
bson_free (host_and_port);
return false;
}
bson_free (host_and_port);
return true;
}
static bool
mongoc_uri_parse_srv (mongoc_uri_t *uri, const char *str, bson_error_t *error)
{
if (*str == '\0') {
MONGOC_URI_ERROR (error, "%s", "Missing service name in SRV URI");
return false;
}
{
char *service = bson_strdup (str);
mongoc_uri_do_unescape (&service);
if (!service || !valid_hostname (service) || count_dots (service) < 2) {
MONGOC_URI_ERROR (error, "%s", "Invalid service name in URI");
bson_free (service);
return false;
}
bson_strncpy (uri->srv, service, sizeof uri->srv);
bson_free (service);
}
if (strchr (uri->srv, ',')) {
MONGOC_URI_ERROR (error, "%s", "Multiple service names are prohibited in an SRV URI");
return false;
}
if (strchr (uri->srv, ':')) {
MONGOC_URI_ERROR (error, "%s", "Port numbers are prohibited in an SRV URI");
return false;
}
return true;
}
/* "hosts" is non-NULL, the part between "mongodb://" or "@" and last "/" */
static bool
mongoc_uri_parse_hosts (mongoc_uri_t *uri, const char *hosts)
{
const char *next;
const char *end_hostport;
char *s;
BSON_ASSERT (hosts);
/*
* Parsing the series of hosts is a lot more complicated than you might
* imagine. This is due to some characters being both separators as well as
* valid characters within the "hostname". In particularly, we can have file
* paths to specify paths to UNIX domain sockets. We impose the restriction
* that they must be suffixed with ".sock" to simplify the parsing.
*
* You can separate hosts and file system paths to UNIX domain sockets with
* ",".
*/
s = scan_to_unichar (hosts, '?', "", &end_hostport);
if (s) {
MONGOC_WARNING ("%s", "A '/' is required between the host list and any options.");
goto error;
}
next = hosts;
do {
/* makes a copy of the section of the string */
s = scan_to_unichar (next, ',', "", &end_hostport);
if (s) {
next = (char *) end_hostport + 1;
} else {
s = bson_strdup (next);
next = NULL;
}
if (!mongoc_uri_parse_host (uri, s)) {
goto error;
}
bson_free (s);
} while (next);
return true;
error:
bson_free (s);
return false;
}
/* -----------------------------------------------------------------------------
*
* mongoc_uri_parse_database --
*
* Parse the database after @str. @str is expected to point after the
* host list to the character immediately after the / in the uri string.
* If no database is specified in the uri, e.g. the uri has a form like:
* mongodb://localhost/?option=X then uri->database remains NULL after
* parsing.
*
* Return:
* True if the parsed database is valid. An empty database is considered
* valid.
* -----------------------------------------------------------------------------
*/
static bool
mongoc_uri_parse_database (mongoc_uri_t *uri, const char *str, const char **end)
{
const char *end_database;
const char *c;
char *invalid_c;
const char *tmp;
if ((uri->database = scan_to_unichar (str, '?', "", &end_database))) {
if (strcmp (uri->database, "") == 0) {
/* no database is found, don't store the empty string. */
bson_free (uri->database);
uri->database = NULL;
/* but it is valid to have an empty database. */
return true;
}
*end = end_database;
} else if (*str) {
uri->database = bson_strdup (str);
*end = str + strlen (str);
}
mongoc_uri_do_unescape (&uri->database);
if (!uri->database) {
/* invalid */
return false;
}
/* invalid characters in database name */
for (c = "/\\. \"$"; *c; c++) {
invalid_c = scan_to_unichar (uri->database, (bson_unichar_t) *c, "", &tmp);
if (invalid_c) {
bson_free (invalid_c);
return false;
}
}
return true;
}
static bool
mongoc_uri_parse_auth_mechanism_properties (mongoc_uri_t *uri, const char *str)
{
char *field;
char *value;
const char *end_scan;
bson_t properties;
bson_init (&properties);
/* build up the properties document */
while ((field = scan_to_unichar (str, ':', "&", &end_scan))) {
str = end_scan + 1;
if (!(value = scan_to_unichar (str, ',', ":&", &end_scan))) {
value = bson_strdup (str);
str = "";
} else {
str = end_scan + 1;
}
bson_append_utf8 (&properties, field, -1, value, -1);
bson_free (field);
bson_free (value);
}
/* append our auth properties to our credentials */
if (!mongoc_uri_set_mechanism_properties (uri, &properties)) {
bson_destroy (&properties);
return false;
}
bson_destroy (&properties);
return true;
}
static bool
mongoc_uri_check_srv_service_name (mongoc_uri_t *uri, const char *str)
{
/* 63 character DNS query limit, excluding prepended underscore. */
const size_t mongoc_srv_service_name_max = 62u;
size_t length = 0u;
size_t num_alpha = 0u;
size_t i = 0u;
char prev = '\0';
BSON_ASSERT_PARAM (uri);
BSON_ASSERT_PARAM (str);
length = strlen (str);
/* Initial DNS Seedlist Discovery Spec: This option specifies a valid SRV
* service name according to RFC 6335, with the exception that it may exceed
* 15 characters as long as the 63rd (62nd with prepended underscore)
* character DNS query limit is not surpassed. */
if (length > mongoc_srv_service_name_max) {
return false;
}
/* RFC 6335: MUST be at least 1 character. */
if (length == 0u) {
return false;
}
for (i = 0u; i < length; ++i) {
const char c = str[i];
/* RFC 6335: MUST contain only US-ASCII letters 'A' - 'Z' and 'a' - 'z',
* digits '0' - '9', and hyphens ('-', ASCII 0x2D or decimal 45). */
if (!isalpha (c) && !isdigit (c) && c != '-') {
return false;
}
/* RFC 6335: hyphens MUST NOT be adjacent to other hyphens. */
if (c == '-' && prev == '-') {
return false;
}
num_alpha += isalpha (c) ? 1u : 0u;
prev = c;
}
/* RFC 6335: MUST contain at least one letter ('A' - 'Z' or 'a' - 'z') */
if (num_alpha == 0u) {
return false;
}
/* RFC 6335: MUST NOT begin or end with a hyphen. */
if (str[0] == '-' || str[length - 1u] == '-') {
return false;
}
return true;
}
static bool
mongoc_uri_parse_tags (mongoc_uri_t *uri, /* IN */
const char *str) /* IN */
{
const char *end_keyval;
const char *end_key;
bson_t b;
char *keyval;
char *key;
bson_init (&b);
again:
if ((keyval = scan_to_unichar (str, ',', "", &end_keyval))) {
if (!(key = scan_to_unichar (keyval, ':', "", &end_key))) {
bson_free (keyval);
goto fail;
}
bson_append_utf8 (&b, key, -1, end_key + 1, -1);
bson_free (key);
bson_free (keyval);
str = end_keyval + 1;
goto again;
} else if ((key = scan_to_unichar (str, ':', "", &end_key))) {
bson_append_utf8 (&b, key, -1, end_key + 1, -1);
bson_free (key);
} else if (strlen (str)) {
/* we're not finished but we couldn't parse the string */
goto fail;
}
mongoc_read_prefs_add_tag (uri->read_prefs, &b);
bson_destroy (&b);
return true;
fail:
MONGOC_WARNING ("Unsupported value for \"" MONGOC_URI_READPREFERENCETAGS "\": \"%s\"", str);
bson_destroy (&b);
return false;
}
/*
*--------------------------------------------------------------------------
*
* mongoc_uri_bson_append_or_replace_key --
*
*
* Appends 'option' to the end of 'options' if not already set.
*
* Since we cannot grow utf8 strings inline, we have to allocate a
* temporary bson variable and splice in the new value if the key
* is already set.
*
* NOTE: This function keeps the order of the BSON keys.
*
* NOTE: 'option' is case*in*sensitive.
*
*
*--------------------------------------------------------------------------
*/
static void
mongoc_uri_bson_append_or_replace_key (bson_t *options, const char *option, const char *value)
{
bson_iter_t iter;
bool found = false;
if (bson_iter_init (&iter, options)) {
bson_t tmp = BSON_INITIALIZER;
while (bson_iter_next (&iter)) {
const bson_value_t *bvalue;
if (!strcasecmp (bson_iter_key (&iter), option)) {
bson_append_utf8 (&tmp, option, -1, value, -1);
found = true;
continue;
}
bvalue = bson_iter_value (&iter);
BSON_APPEND_VALUE (&tmp, bson_iter_key (&iter), bvalue);
}
if (!found) {
bson_append_utf8 (&tmp, option, -1, value, -1);
}
bson_destroy (options);
bson_copy_to (&tmp, options);
bson_destroy (&tmp);
}
}
bool
mongoc_uri_has_option (const mongoc_uri_t *uri, const char *key)
{
bson_iter_t iter;
return bson_iter_init_find_case (&iter, &uri->options, key);
}
bool
mongoc_uri_option_is_int32 (const char *key)
{
return mongoc_uri_option_is_int64 (key) || !strcasecmp (key, MONGOC_URI_CONNECTTIMEOUTMS) ||
!strcasecmp (key, MONGOC_URI_HEARTBEATFREQUENCYMS) ||
!strcasecmp (key, MONGOC_URI_SERVERSELECTIONTIMEOUTMS) ||
!strcasecmp (key, MONGOC_URI_SOCKETCHECKINTERVALMS) || !strcasecmp (key, MONGOC_URI_SOCKETTIMEOUTMS) ||
!strcasecmp (key, MONGOC_URI_LOCALTHRESHOLDMS) || !strcasecmp (key, MONGOC_URI_MAXPOOLSIZE) ||
!strcasecmp (key, MONGOC_URI_MAXSTALENESSSECONDS) || !strcasecmp (key, MONGOC_URI_MINPOOLSIZE) ||
!strcasecmp (key, MONGOC_URI_WAITQUEUETIMEOUTMS) || !strcasecmp (key, MONGOC_URI_ZLIBCOMPRESSIONLEVEL) ||
!strcasecmp (key, MONGOC_URI_SRVMAXHOSTS);
/* Not including deprecated unimplemented options:
* - MONGOC_URI_MAXIDLETIMEMS
* - MONGOC_URI_WAITQUEUEMULTIPLE
*/
}
bool
mongoc_uri_option_is_int64 (const char *key)
{
return !strcasecmp (key, MONGOC_URI_WTIMEOUTMS);
}
bool
mongoc_uri_option_is_bool (const char *key)
{
return !strcasecmp (key, MONGOC_URI_CANONICALIZEHOSTNAME) || !strcasecmp (key, MONGOC_URI_DIRECTCONNECTION) ||
!strcasecmp (key, MONGOC_URI_JOURNAL) || !strcasecmp (key, MONGOC_URI_RETRYREADS) ||
!strcasecmp (key, MONGOC_URI_RETRYWRITES) || !strcasecmp (key, MONGOC_URI_SAFE) ||
!strcasecmp (key, MONGOC_URI_SERVERSELECTIONTRYONCE) || !strcasecmp (key, MONGOC_URI_TLS) ||
!strcasecmp (key, MONGOC_URI_TLSINSECURE) || !strcasecmp (key, MONGOC_URI_TLSALLOWINVALIDCERTIFICATES) ||
!strcasecmp (key, MONGOC_URI_TLSALLOWINVALIDHOSTNAMES) ||
!strcasecmp (key, MONGOC_URI_TLSDISABLECERTIFICATEREVOCATIONCHECK) ||
!strcasecmp (key, MONGOC_URI_TLSDISABLEOCSPENDPOINTCHECK) || !strcasecmp (key, MONGOC_URI_LOADBALANCED) ||
/* deprecated options with canonical equivalents */
!strcasecmp (key, MONGOC_URI_SSL) || !strcasecmp (key, MONGOC_URI_SSLALLOWINVALIDCERTIFICATES) ||
!strcasecmp (key, MONGOC_URI_SSLALLOWINVALIDHOSTNAMES);
}
bool
mongoc_uri_option_is_utf8 (const char *key)
{
return !strcasecmp (key, MONGOC_URI_APPNAME) || !strcasecmp (key, MONGOC_URI_REPLICASET) ||
!strcasecmp (key, MONGOC_URI_READPREFERENCE) || !strcasecmp (key, MONGOC_URI_SERVERMONITORINGMODE) ||
!strcasecmp (key, MONGOC_URI_SRVSERVICENAME) || !strcasecmp (key, MONGOC_URI_TLSCERTIFICATEKEYFILE) ||
!strcasecmp (key, MONGOC_URI_TLSCERTIFICATEKEYFILEPASSWORD) || !strcasecmp (key, MONGOC_URI_TLSCAFILE) ||
/* deprecated options with canonical equivalents */
!strcasecmp (key, MONGOC_URI_SSLCLIENTCERTIFICATEKEYFILE) ||
!strcasecmp (key, MONGOC_URI_SSLCLIENTCERTIFICATEKEYPASSWORD) ||
!strcasecmp (key, MONGOC_URI_SSLCERTIFICATEAUTHORITYFILE);
}
const char *
mongoc_uri_canonicalize_option (const char *key)
{
if (!strcasecmp (key, MONGOC_URI_SSL)) {
return MONGOC_URI_TLS;
} else if (!strcasecmp (key, MONGOC_URI_SSLCLIENTCERTIFICATEKEYFILE)) {
return MONGOC_URI_TLSCERTIFICATEKEYFILE;
} else if (!strcasecmp (key, MONGOC_URI_SSLCLIENTCERTIFICATEKEYPASSWORD)) {
return MONGOC_URI_TLSCERTIFICATEKEYFILEPASSWORD;
} else if (!strcasecmp (key, MONGOC_URI_SSLCERTIFICATEAUTHORITYFILE)) {
return MONGOC_URI_TLSCAFILE;
} else if (!strcasecmp (key, MONGOC_URI_SSLALLOWINVALIDCERTIFICATES)) {
return MONGOC_URI_TLSALLOWINVALIDCERTIFICATES;
} else if (!strcasecmp (key, MONGOC_URI_SSLALLOWINVALIDHOSTNAMES)) {
return MONGOC_URI_TLSALLOWINVALIDHOSTNAMES;
} else {
return key;
}
}
static bool
_mongoc_uri_parse_int64 (const char *key, const char *value, int64_t *result)
{
char *endptr;
int64_t i;
errno = 0;
i = bson_ascii_strtoll (value, &endptr, 10);
if (errno || endptr < value + strlen (value)) {
MONGOC_WARNING ("Invalid %s: cannot parse integer\n", key);
return false;
}
*result = i;
return true;
}
static bool
mongoc_uri_parse_int32 (const char *key, const char *value, int32_t *result)
{
int64_t i;
if (!_mongoc_uri_parse_int64 (key, value, &i)) {
/* _mongoc_uri_parse_int64 emits a warning if it could not parse the
* given value, so we don't have to add one here.
*/
return false;
}
if (i > INT32_MAX || i < INT32_MIN) {
MONGOC_WARNING ("Invalid %s: cannot fit in int32\n", key);
return false;
}
*result = (int32_t) i;
return true;
}
static bool
dns_option_allowed (const char *lkey)
{
/* Initial DNS Seedlist Discovery Spec: "A Client MUST only support the
* authSource, replicaSet, and loadBalanced options through a TXT record, and
* MUST raise an error if any other option is encountered."
*/
return !strcmp (lkey, MONGOC_URI_AUTHSOURCE) || !strcmp (lkey, MONGOC_URI_REPLICASET) ||
!strcmp (lkey, MONGOC_URI_LOADBALANCED);
}
/* Decompose a key=val pair and place them into a document.
* Includes case-folding for key portion.
*/
static bool
mongoc_uri_split_option (mongoc_uri_t *uri, bson_t *options, const char *str, bool from_dns, bson_error_t *error)
{
bson_iter_t iter;
const char *end_key;
char *key = NULL;
char *lkey = NULL;
char *value = NULL;
const char *opt;
char *opt_end;
size_t opt_len;
bool ret = false;
if (!(key = scan_to_unichar (str, '=', "", &end_key))) {
MONGOC_URI_ERROR (error, "URI option \"%s\" contains no \"=\" sign", str);
goto CLEANUP;
}
value = bson_strdup (end_key + 1);
mongoc_uri_do_unescape (&value);
if (!value) {
/* do_unescape detected invalid UTF-8 and freed value */
MONGOC_URI_ERROR (error, "Value for URI option \"%s\" contains invalid UTF-8", key);
goto CLEANUP;
}
lkey = bson_strdup (key);
mongoc_lowercase (key, lkey);
/* Initial DNS Seedlist Discovery Spec: "A Client MUST only support the
* authSource, replicaSet, and loadBalanced options through a TXT record, and
* MUST raise an error if any other option is encountered."*/
if (from_dns && !dns_option_allowed (lkey)) {
MONGOC_URI_ERROR (error, "URI option \"%s\" prohibited in TXT record", key);
goto CLEANUP;
}
/* Special case: READPREFERENCETAGS is a composing option.
* Multiple instances should append, not overwrite.
* Encode them directly to the options field,
* bypassing canonicalization and duplicate checks.
*/
if (!strcmp (lkey, MONGOC_URI_READPREFERENCETAGS)) {
if (!mongoc_uri_parse_tags (uri, value)) {
MONGOC_URI_ERROR (error, "Unsupported value for \"%s\": \"%s\"", key, value);
goto CLEANUP;
}
} else if (bson_iter_init_find (&iter, &uri->raw, lkey) || bson_iter_init_find (&iter, options, lkey)) {
/* Special case, MONGOC_URI_W == "any non-int" is not overridden
* by later values.
*/
if (!strcmp (lkey, MONGOC_URI_W) && (opt = bson_iter_utf8_unsafe (&iter, &opt_len))) {
strtol (opt, &opt_end, 10);
if (*opt_end != '\0') {
ret = true;
goto CLEANUP;
}
}
/* Initial DNS Seedlist Discovery Spec: "Client MUST use options
* specified in the Connection String to override options provided
* through TXT records." So, do NOT override existing options with TXT
* options. */
if (from_dns) {
if (0 == strcmp (lkey, MONGOC_URI_AUTHSOURCE)) {
// Treat `authSource` as a special case. A server may support authentication with multiple mechanisms.
// MONGODB-X509 requires authSource=$external. SCRAM-SHA-256 requires authSource=admin.
// Only log a trace message since this may be expected.
TRACE ("Ignoring URI option \"%s\" from TXT record \"%s\". Option is already present in URI", key, str);
} else {
MONGOC_WARNING (
"Ignoring URI option \"%s\" from TXT record \"%s\". Option is already present in URI", key, str);
}
ret = true;
goto CLEANUP;
}
MONGOC_WARNING ("Overwriting previously provided value for '%s'", key);
}
if (!(strcmp (lkey, MONGOC_URI_REPLICASET)) && *value == '\0') {
MONGOC_URI_ERROR (error, "Value for URI option \"%s\" cannot be empty string", lkey);
goto CLEANUP;
}
mongoc_uri_bson_append_or_replace_key (options, lkey, value);
ret = true;
CLEANUP:
bson_free (key);
bson_free (lkey);
bson_free (value);
return ret;
}
/* Check for canonical/deprecated conflicts
* between the option list a, and b.
* If both names exist either way with differing values, error.
*/
static bool
mongoc_uri_options_validate_names (const bson_t *a, const bson_t *b, bson_error_t *error)
{
bson_iter_t key_iter, canon_iter;
const char *key = NULL;
const char *canon = NULL;
const char *value = NULL;
const char *cval = NULL;
size_t value_len = 0;
size_t cval_len = 0;
/* Scan `a` looking for deprecated names
* where the canonical name was also used in `a`,
* or was used in `b`. */
bson_iter_init (&key_iter, a);
while (bson_iter_next (&key_iter)) {
key = bson_iter_key (&key_iter);
value = bson_iter_utf8_unsafe (&key_iter, &value_len);
canon = mongoc_uri_canonicalize_option (key);
if (key == canon) {
/* Canonical form, no point checking `b`. */
continue;
}
/* Check for a conflict in `a`. */
if (bson_iter_init_find (&canon_iter, a, canon)) {
cval = bson_iter_utf8_unsafe (&canon_iter, &cval_len);
if ((value_len != cval_len) || strcmp (value, cval)) {
goto HANDLE_CONFLICT;
}
}
/* Check for a conflict in `b`. */
if (bson_iter_init_find (&canon_iter, b, canon)) {
cval = bson_iter_utf8_unsafe (&canon_iter, &cval_len);
if ((value_len != cval_len) || strcmp (value, cval)) {
goto HANDLE_CONFLICT;
}
}
}
return true;
HANDLE_CONFLICT:
MONGOC_URI_ERROR (error,
"Deprecated option '%s=%s' conflicts with "
"canonical name '%s=%s'",
key,
value,
canon,
cval);
return false;
}
#define HANDLE_DUPE() \
if (from_dns) { \
MONGOC_WARNING ("Cannot override URI option \"%s\" from TXT record", key); \
continue; \
} else if (1) { \
MONGOC_WARNING ("Overwriting previously provided value for '%s'", key); \
} else \
(void) 0
static bool
mongoc_uri_apply_options (mongoc_uri_t *uri, const bson_t *options, bool from_dns, bson_error_t *error)
{
bson_iter_t iter;
int32_t v_int;
int64_t v_int64;
const char *key = NULL;
const char *canon = NULL;
const char *value = NULL;
size_t value_len;
bool bval;
bson_iter_init (&iter, options);
while (bson_iter_next (&iter)) {
key = bson_iter_key (&iter);
canon = mongoc_uri_canonicalize_option (key);
value = bson_iter_utf8_unsafe (&iter, &value_len);
/* Keep a record of how the option was originally presented. */
mongoc_uri_bson_append_or_replace_key (&uri->raw, key, value);
/* This check precedes mongoc_uri_option_is_int32 as all 64-bit values are
* also recognised as 32-bit ints.
*/
if (mongoc_uri_option_is_int64 (key)) {
if (0 < strlen (value)) {
if (!_mongoc_uri_parse_int64 (key, value, &v_int64)) {
goto UNSUPPORTED_VALUE;
}
if (!_mongoc_uri_set_option_as_int64_with_error (uri, canon, v_int64, error)) {
return false;
}
} else {
MONGOC_WARNING ("Empty value provided for \"%s\"", key);
}
} else if (mongoc_uri_option_is_int32 (key)) {
if (0 < strlen (value)) {
if (!mongoc_uri_parse_int32 (key, value, &v_int)) {
goto UNSUPPORTED_VALUE;
}
if (!_mongoc_uri_set_option_as_int32_with_error (uri, canon, v_int, error)) {
return false;
}
} else {
MONGOC_WARNING ("Empty value provided for \"%s\"", key);
}
} else if (!strcmp (key, MONGOC_URI_W)) {
if (*value == '-' || isdigit (*value)) {
v_int = (int) strtol (value, NULL, 10);
_mongoc_uri_set_option_as_int32 (uri, MONGOC_URI_W, v_int);
} else if (0 == strcasecmp (value, "majority")) {
mongoc_uri_bson_append_or_replace_key (&uri->options, MONGOC_URI_W, "majority");
} else if (*value) {
mongoc_uri_bson_append_or_replace_key (&uri->options, MONGOC_URI_W, value);
}
} else if (mongoc_uri_option_is_bool (key)) {
if (0 < strlen (value)) {
if (0 == strcasecmp (value, "true")) {
bval = true;
} else if (0 == strcasecmp (value, "false")) {
bval = false;
} else if ((0 == strcmp (value, "1")) || (0 == strcasecmp (value, "yes")) ||
(0 == strcasecmp (value, "y")) || (0 == strcasecmp (value, "t"))) {
MONGOC_WARNING ("Deprecated boolean value for \"%s\": \"%s\", "
"please update to \"%s=true\"",
key,
value,
key);
bval = true;
} else if ((0 == strcasecmp (value, "0")) || (0 == strcasecmp (value, "-1")) ||
(0 == strcmp (value, "no")) || (0 == strcmp (value, "n")) || (0 == strcmp (value, "f"))) {
MONGOC_WARNING ("Deprecated boolean value for \"%s\": \"%s\", "
"please update to \"%s=false\"",
key,
value,
key);
bval = false;
} else {
goto UNSUPPORTED_VALUE;
}
if (!mongoc_uri_set_option_as_bool (uri, canon, bval)) {
bson_set_error (
error, MONGOC_ERROR_COMMAND, MONGOC_ERROR_COMMAND_INVALID_ARG, "Failed to set %s to %d", canon, bval);
return false;
}
} else {
MONGOC_WARNING ("Empty value provided for \"%s\"", key);
}
} else if (!strcmp (key, MONGOC_URI_READPREFERENCETAGS)) {
/* Skip this option here.
* It was marshalled during mongoc_uri_split_option()
* as a special case composing option.
*/
} else if (!strcmp (key, MONGOC_URI_AUTHMECHANISM) || !strcmp (key, MONGOC_URI_AUTHSOURCE)) {
if (bson_has_field (&uri->credentials, key)) {
HANDLE_DUPE ();
}
mongoc_uri_bson_append_or_replace_key (&uri->credentials, canon, value);
} else if (!strcmp (key, MONGOC_URI_READCONCERNLEVEL)) {
if (!mongoc_read_concern_is_default (uri->read_concern)) {
HANDLE_DUPE ();
}
mongoc_read_concern_set_level (uri->read_concern, value);
} else if (!strcmp (key, MONGOC_URI_GSSAPISERVICENAME)) {
char *tmp = bson_strdup_printf ("SERVICE_NAME:%s", value);
if (bson_has_field (&uri->credentials, MONGOC_URI_AUTHMECHANISMPROPERTIES)) {
MONGOC_WARNING ("authMechanismProperties SERVICE_NAME already set, "
"ignoring '%s'",
key);
} else if (!mongoc_uri_parse_auth_mechanism_properties (uri, tmp)) {
bson_free (tmp);
goto UNSUPPORTED_VALUE;
}
bson_free (tmp);
} else if (!strcmp (key, MONGOC_URI_SRVSERVICENAME)) {
if (!mongoc_uri_check_srv_service_name (uri, value)) {
goto UNSUPPORTED_VALUE;
}
mongoc_uri_bson_append_or_replace_key (&uri->options, canon, value);
} else if (!strcmp (key, MONGOC_URI_AUTHMECHANISMPROPERTIES)) {
if (bson_has_field (&uri->credentials, key)) {
HANDLE_DUPE ();
}
if (!mongoc_uri_parse_auth_mechanism_properties (uri, value)) {
goto UNSUPPORTED_VALUE;
}
} else if (!strcmp (key, MONGOC_URI_APPNAME)) {
/* Part of uri->options */
if (!mongoc_uri_set_appname (uri, value)) {
goto UNSUPPORTED_VALUE;
}
} else if (!strcmp (key, MONGOC_URI_COMPRESSORS)) {
if (!bson_empty (mongoc_uri_get_compressors (uri))) {
HANDLE_DUPE ();
}
if (!mongoc_uri_set_compressors (uri, value)) {
goto UNSUPPORTED_VALUE;
}
} else if (!strcmp (key, MONGOC_URI_SERVERMONITORINGMODE)) {
if (!mongoc_uri_set_server_monitoring_mode (uri, value)) {
goto UNSUPPORTED_VALUE;
}
} else if (mongoc_uri_option_is_utf8 (key)) {
mongoc_uri_bson_append_or_replace_key (&uri->options, canon, value);
} else {
/*
* Keys that aren't supported by a driver MUST be ignored.
*
* A WARN level logging message MUST be issued
* https://github.com/mongodb/specifications/blob/master/source/connection-string/connection-string-spec.md#keys
*/
MONGOC_WARNING ("Unsupported URI option \"%s\"", key);
}
}
return true;
UNSUPPORTED_VALUE:
MONGOC_URI_ERROR (error, "Unsupported value for \"%s\": \"%s\"", key, value);
return false;
}
/* Processes a query string formatted set of driver options
* (i.e. tls=true&connectTimeoutMS=250 ) into a BSON dict of values.
* uri->raw is initially populated with the raw split of key/value pairs,
* then the keys are canonicalized and the values coerced
* to their appropriate type and stored in uri->options.
*/
bool
mongoc_uri_parse_options (mongoc_uri_t *uri, const char *str, bool from_dns, bson_error_t *error)
{
bson_t options;
const char *end_option;
char *option;
bson_init (&options);
while ((option = scan_to_unichar (str, '&', "", &end_option))) {
if (!mongoc_uri_split_option (uri, &options, option, from_dns, error)) {
bson_free (option);
bson_destroy (&options);
return false;
}
bson_free (option);
str = end_option + 1;
}
if (*str && !mongoc_uri_split_option (uri, &options, str, from_dns, error)) {
bson_destroy (&options);
return false;
}
/* Walk both sides of this map to handle each ordering:
* deprecated first canonical later, and vice-versa.
* Then finalize parse by writing final values to uri->options.
*/
if (!mongoc_uri_options_validate_names (&uri->options, &options, error) ||
!mongoc_uri_options_validate_names (&options, &uri->options, error) ||
!mongoc_uri_apply_options (uri, &options, from_dns, error)) {
bson_destroy (&options);
return false;
}
bson_destroy (&options);
return true;
}
static bool
mongoc_uri_finalize_tls (mongoc_uri_t *uri, bson_error_t *error)
{
/* Initial DNS Seedlist Discovery Spec: "If mongodb+srv is used, a driver
* MUST implicitly also enable TLS." */
if (uri->is_srv && !bson_has_field (&uri->options, MONGOC_URI_TLS)) {
mongoc_uri_set_option_as_bool (uri, MONGOC_URI_TLS, true);
}
/* tlsInsecure implies tlsAllowInvalidCertificates, tlsAllowInvalidHostnames,
* tlsDisableOCSPEndpointCheck, and tlsDisableCertificateRevocationCheck, so
* consider it an error to have both. The user might have the wrong idea. */
if (bson_has_field (&uri->options, MONGOC_URI_TLSINSECURE) &&
(bson_has_field (&uri->options, MONGOC_URI_TLSALLOWINVALIDCERTIFICATES) ||
bson_has_field (&uri->options, MONGOC_URI_TLSALLOWINVALIDHOSTNAMES) ||
bson_has_field (&uri->options, MONGOC_URI_TLSDISABLEOCSPENDPOINTCHECK) ||
bson_has_field (&uri->options, MONGOC_URI_TLSDISABLECERTIFICATEREVOCATIONCHECK))) {
MONGOC_URI_ERROR (error,
"%s may not be specified with %s, %s, %s, or %s",
MONGOC_URI_TLSINSECURE,
MONGOC_URI_TLSALLOWINVALIDCERTIFICATES,
MONGOC_URI_TLSALLOWINVALIDHOSTNAMES,
MONGOC_URI_TLSDISABLEOCSPENDPOINTCHECK,
MONGOC_URI_TLSDISABLECERTIFICATEREVOCATIONCHECK);
return false;
}
/* tlsAllowInvalidCertificates implies tlsDisableOCSPEndpointCheck and
* tlsDisableCertificateRevocationCheck, so consider it an error to have
* both. The user might have the wrong idea. */
if (bson_has_field (&uri->options, MONGOC_URI_TLSALLOWINVALIDCERTIFICATES) &&
(bson_has_field (&uri->options, MONGOC_URI_TLSDISABLECERTIFICATEREVOCATIONCHECK) ||
bson_has_field (&uri->options, MONGOC_URI_TLSDISABLEOCSPENDPOINTCHECK))) {
MONGOC_URI_ERROR (error,
"%s may not be specified with %s or %s",
MONGOC_URI_TLSALLOWINVALIDCERTIFICATES,
MONGOC_URI_TLSDISABLEOCSPENDPOINTCHECK,
MONGOC_URI_TLSDISABLECERTIFICATEREVOCATIONCHECK);
return false;
}
/* tlsDisableCertificateRevocationCheck implies tlsDisableOCSPEndpointCheck,
* so consider it an error to have both. The user might have the wrong idea.
*/
if (bson_has_field (&uri->options, MONGOC_URI_TLSDISABLECERTIFICATEREVOCATIONCHECK) &&
bson_has_field (&uri->options, MONGOC_URI_TLSDISABLEOCSPENDPOINTCHECK)) {
MONGOC_URI_ERROR (error,
"%s may not be specified with %s",
MONGOC_URI_TLSDISABLECERTIFICATEREVOCATIONCHECK,
MONGOC_URI_TLSDISABLEOCSPENDPOINTCHECK);
return false;
}
return true;
}
static bool
mongoc_uri_finalize_auth (mongoc_uri_t *uri, bson_error_t *error)
{
bson_iter_t iter;
const char *source = NULL;
const bool require_auth = uri->username != NULL;
if (bson_iter_init_find_case (&iter, &uri->credentials, MONGOC_URI_AUTHSOURCE)) {
source = bson_iter_utf8 (&iter, NULL);
}
if (mongoc_uri_get_auth_mechanism (uri)) {
/* authSource with GSSAPI or X509 should always be external */
if (!strcasecmp (mongoc_uri_get_auth_mechanism (uri), "GSSAPI") ||
!strcasecmp (mongoc_uri_get_auth_mechanism (uri), "MONGODB-X509")) {
if (source) {
if (strcasecmp (source, "$external")) {
MONGOC_URI_ERROR (error, "%s", "GSSAPI and X509 require \"$external\" authSource");
return false;
}
} else {
bson_append_utf8 (&uri->credentials, MONGOC_URI_AUTHSOURCE, -1, "$external", -1);
}
}
/* MONGODB-X509 and MONGODB-AWS are the only mechanisms that don't require
* username */
if (!(strcasecmp (mongoc_uri_get_auth_mechanism (uri), "MONGODB-X509") == 0 ||
strcasecmp (mongoc_uri_get_auth_mechanism (uri), "MONGODB-AWS") == 0)) {
if (!mongoc_uri_get_username (uri) || strcmp (mongoc_uri_get_username (uri), "") == 0) {
MONGOC_URI_ERROR (
error, "'%s' authentication mechanism requires username", mongoc_uri_get_auth_mechanism (uri));
return false;
}
}
/* MONGODB-X509 errors if a password is supplied. */
if (strcasecmp (mongoc_uri_get_auth_mechanism (uri), "MONGODB-X509") == 0) {
if (mongoc_uri_get_password (uri)) {
MONGOC_URI_ERROR (
error, "'%s' authentication mechanism does not accept a password", mongoc_uri_get_auth_mechanism (uri));
return false;
}
}
/* GSSAPI uses 'mongodb' as the default service name */
if (strcasecmp (mongoc_uri_get_auth_mechanism (uri), "GSSAPI") == 0 &&
!(bson_iter_init_find (&iter, &uri->credentials, MONGOC_URI_AUTHMECHANISMPROPERTIES) &&
BSON_ITER_HOLDS_DOCUMENT (&iter) && bson_iter_recurse (&iter, &iter) &&
bson_iter_find_case (&iter, "SERVICE_NAME"))) {
bson_t tmp;
bson_t *props = NULL;
props = mongoc_uri_get_mechanism_properties (uri, &tmp) ? bson_copy (&tmp) : bson_new ();
BSON_APPEND_UTF8 (props, "SERVICE_NAME", "mongodb");
mongoc_uri_set_mechanism_properties (uri, props);
bson_destroy (props);
}
} else if (require_auth) /* Default auth mechanism is used */ {
if (!mongoc_uri_get_username (uri) || strcmp (mongoc_uri_get_username (uri), "") == 0) {
MONGOC_URI_ERROR (error, "%s", "Default authentication mechanism requires username");
return false;
}
}
return true;
}
static bool
mongoc_uri_finalize_directconnection (mongoc_uri_t *uri, bson_error_t *error)
{
bool directconnection = false;
directconnection = mongoc_uri_get_option_as_bool (uri, MONGOC_URI_DIRECTCONNECTION, false);
if (!directconnection) {
return true;
}
/* URI options spec: "The driver MUST report an error if the
* directConnection=true URI option is specified with an SRV URI, because
* the URI may resolve to multiple hosts. The driver MUST allow specifying
* directConnection=false URI option with an SRV URI." */
if (uri->is_srv) {
MONGOC_URI_ERROR (error, "%s", "SRV URI not allowed with directConnection option");
return false;
}
/* URI options spec: "The driver MUST report an error if the
* directConnection=true URI option is specified with multiple seeds." */
if (uri->hosts && uri->hosts->next) {
MONGOC_URI_ERROR (error, "%s", "Multiple seeds not allowed with directConnection option");
return false;
}
return true;
}
static bool
mongoc_uri_parse_before_slash (mongoc_uri_t *uri, const char *before_slash, bson_error_t *error)
{
char *userpass;
const char *hosts;
userpass = scan_to_unichar (before_slash, '@', "", &hosts);
if (userpass) {
if (!mongoc_uri_parse_userpass (uri, userpass, error)) {
goto error;
}
hosts++; /* advance past "@" */
if (*hosts == '@') {
/* special case: "mongodb://alice@@localhost" */
MONGOC_URI_ERROR (error, "Invalid username or password. %s", escape_instructions);
goto error;
}
} else {
hosts = before_slash;
}
if (uri->is_srv) {
if (!mongoc_uri_parse_srv (uri, hosts, error)) {
goto error;
}
} else {
if (!mongoc_uri_parse_hosts (uri, hosts)) {
MONGOC_URI_ERROR (error, "%s", "Invalid host string in URI");
goto error;
}
}
bson_free (userpass);
return true;
error:
bson_free (userpass);
return false;
}
static bool
mongoc_uri_parse (mongoc_uri_t *uri, const char *str, bson_error_t *error)
{
BSON_ASSERT_PARAM (str);
char *before_slash = NULL;
const char *tmp;
if (!bson_utf8_validate (str, strlen (str), false /* allow_null */)) {
MONGOC_URI_ERROR (error, "%s", "Invalid UTF-8 in URI");
goto error;
}
if (!mongoc_uri_parse_scheme (uri, str, &str)) {
MONGOC_URI_ERROR (error, "%s", "Invalid URI Schema, expecting 'mongodb://' or 'mongodb+srv://'");
goto error;
}
before_slash = scan_to_unichar (str, '/', "", &tmp);
if (!before_slash) {
// Handle cases of optional delimiting slash
char *userpass = NULL;
char *hosts = NULL;
// Skip any "?"s that exist in the userpass
userpass = scan_to_unichar (str, '@', "", &tmp);
if (!userpass) {
// If none found, safely check for "?" indicating beginning of options
before_slash = scan_to_unichar (str, '?', "", &tmp);
} else {
const size_t userpass_len = (size_t) (tmp - str);
// Otherwise, see if options exist after userpass and concatenate result
hosts = scan_to_unichar (tmp, '?', "", &tmp);
if (hosts) {
const size_t hosts_len = (size_t) (tmp - str) - userpass_len;
before_slash = bson_strndup (str, userpass_len + hosts_len);
}
}
bson_free (userpass);
bson_free (hosts);
}
if (!before_slash) {
before_slash = bson_strdup (str);
str += strlen (before_slash);
} else {
str = tmp;
}
if (!mongoc_uri_parse_before_slash (uri, before_slash, error)) {
goto error;
}
BSON_ASSERT (str);
if (*str) {
// Check for valid end of hostname delimeter (skip slash if necessary)
if (*str != '/' && *str != '?') {
MONGOC_URI_ERROR (error, "%s", "Expected end of hostname delimiter");
goto error;
}
if (*str == '/') {
// Try to parse database.
str++;
if (*str) {
if (!mongoc_uri_parse_database (uri, str, &str)) {
MONGOC_URI_ERROR (error, "%s", "Invalid database name in URI");
goto error;
}
}
}
if (*str == '?') {
// Try to parse options.
str++;
if (*str) {
if (!mongoc_uri_parse_options (uri, str, false /* from DNS */, error)) {
goto error;
}
}
}
}
if (!mongoc_uri_finalize (uri, error)) {
goto error;
}
bson_free (before_slash);
return true;
error:
bson_free (before_slash);
return false;
}
const mongoc_host_list_t *
mongoc_uri_get_hosts (const mongoc_uri_t *uri)
{
BSON_ASSERT (uri);
return uri->hosts;
}
const char *
mongoc_uri_get_replica_set (const mongoc_uri_t *uri)
{
bson_iter_t iter;
BSON_ASSERT (uri);
if (bson_iter_init_find_case (&iter, &uri->options, MONGOC_URI_REPLICASET) && BSON_ITER_HOLDS_UTF8 (&iter)) {
return bson_iter_utf8 (&iter, NULL);
}
return NULL;
}
const bson_t *
mongoc_uri_get_credentials (const mongoc_uri_t *uri)
{
BSON_ASSERT (uri);
return &uri->credentials;
}
const char *
mongoc_uri_get_auth_mechanism (const mongoc_uri_t *uri)
{
bson_iter_t iter;
BSON_ASSERT (uri);
if (bson_iter_init_find_case (&iter, &uri->credentials, MONGOC_URI_AUTHMECHANISM) && BSON_ITER_HOLDS_UTF8 (&iter)) {
return bson_iter_utf8 (&iter, NULL);
}
return NULL;
}
bool
mongoc_uri_set_auth_mechanism (mongoc_uri_t *uri, const char *value)
{
size_t len;
BSON_ASSERT (value);
len = strlen (value);
if (!bson_utf8_validate (value, len, false)) {
return false;
}
mongoc_uri_bson_append_or_replace_key (&uri->credentials, MONGOC_URI_AUTHMECHANISM, value);
return true;
}
bool
mongoc_uri_get_mechanism_properties (const mongoc_uri_t *uri, bson_t *properties /* OUT */)
{
bson_iter_t iter;
BSON_ASSERT (uri);
BSON_ASSERT (properties);
if (bson_iter_init_find_case (&iter, &uri->credentials, MONGOC_URI_AUTHMECHANISMPROPERTIES) &&
BSON_ITER_HOLDS_DOCUMENT (&iter)) {
uint32_t len = 0;
const uint8_t *data = NULL;
bson_iter_document (&iter, &len, &data);
BSON_ASSERT (bson_init_static (properties, data, len));
return true;
}
return false;
}
bool
mongoc_uri_set_mechanism_properties (mongoc_uri_t *uri, const bson_t *properties)
{
BSON_ASSERT (uri);
BSON_ASSERT (properties);
bson_t tmp = BSON_INITIALIZER;
bsonBuildAppend (tmp,
// Copy the existing credentials, dropping the existing properties if
// present
insert (uri->credentials, not(key (MONGOC_URI_AUTHMECHANISMPROPERTIES))),
// Append the new properties
kv (MONGOC_URI_AUTHMECHANISMPROPERTIES, bson (*properties)));
bson_reinit (&uri->credentials);
- bsonBuildAppend (uri->credentials, insert (tmp, true));
+ bsonBuildAppend (uri->credentials, insert (tmp, always));
bson_destroy (&tmp);
return bsonBuildError == NULL;
}
static bool
_mongoc_uri_assign_read_prefs_mode (mongoc_uri_t *uri, bson_error_t *error)
{
BSON_ASSERT (uri);
mongoc_read_mode_t mode = 0;
const char *pref = NULL;
bsonParse (uri->options,
find (
// Find the 'readPreference' string
iKeyWithType (MONGOC_URI_READPREFERENCE, utf8),
case ( // Switch on the string content:
when (iStrEqual ("primary"), do (mode = MONGOC_READ_PRIMARY)),
when (iStrEqual ("primaryPreferred"), do (mode = MONGOC_READ_PRIMARY_PREFERRED)),
when (iStrEqual ("secondary"), do (mode = MONGOC_READ_SECONDARY)),
when (iStrEqual ("secondaryPreferred"), do (mode = MONGOC_READ_SECONDARY_PREFERRED)),
when (iStrEqual ("nearest"), do (mode = MONGOC_READ_NEAREST)),
else (do ({
pref = bsonAs (cstr);
bsonParseError = "Unsupported readPreference value";
})))));
if (bsonParseError) {
const char *prefix = "Error while assigning URI read preference";
if (pref) {
MONGOC_URI_ERROR (error, "%s: %s [readPreference=%s]", prefix, bsonParseError, pref);
} else {
MONGOC_URI_ERROR (error, "%s: %s", prefix, bsonParseError);
}
return false;
}
if (mode != 0) {
mongoc_read_prefs_set_mode (uri->read_prefs, mode);
}
return true;
}
static bool
_mongoc_uri_build_write_concern (mongoc_uri_t *uri, bson_error_t *error)
{
mongoc_write_concern_t *write_concern;
int64_t wtimeoutms;
BSON_ASSERT (uri);
write_concern = mongoc_write_concern_new ();
uri->write_concern = write_concern;
bsonParse (uri->options,
find (iKeyWithType (MONGOC_URI_SAFE, boolean),
do (mongoc_write_concern_set_w (write_concern,
bsonAs (boolean) ? 1 : MONGOC_WRITE_CONCERN_W_UNACKNOWLEDGED))));
if (bsonParseError) {
MONGOC_URI_ERROR (error, "Error while parsing 'safe' URI option: %s", bsonParseError);
return false;
}
wtimeoutms = mongoc_uri_get_option_as_int64 (uri, MONGOC_URI_WTIMEOUTMS, 0);
if (wtimeoutms < 0) {
MONGOC_URI_ERROR (error, "Unsupported wtimeoutMS value [w=%" PRId64 "]", wtimeoutms);
return false;
} else if (wtimeoutms > 0) {
mongoc_write_concern_set_wtimeout_int64 (write_concern, wtimeoutms);
}
bsonParse (uri->options,
find (iKeyWithType (MONGOC_URI_JOURNAL, boolean),
do (mongoc_write_concern_set_journal (write_concern, bsonAs (boolean)))));
if (bsonParseError) {
MONGOC_URI_ERROR (error, "Error while parsing 'journal' URI option: %s", bsonParseError);
return false;
}
int w_int = INT_MAX;
const char *w_str = NULL;
bsonParse (uri->options,
find (iKey ("w"), //
storeInt32 (w_int),
storeStrRef (w_str),
case (
// Special W options:
when (anyOf (eq (int32, MONGOC_WRITE_CONCERN_W_ERRORS_IGNORED),
eq (int32, MONGOC_WRITE_CONCERN_W_UNACKNOWLEDGED)),
// These conflict with journalling:
if (eval (mongoc_write_concern_get_journal (write_concern)),
then (error ("Journal conflicts with w value"))),
do (mongoc_write_concern_set_w (write_concern, bsonAs (int32)))),
// Other positive 'w' value:
when (allOf (type (int32), eval (bsonAs (int32) > 0)),
do (mongoc_write_concern_set_w (write_concern, bsonAs (int32)))),
// Special "majority" string:
when (iStrEqual ("majority"),
do (mongoc_write_concern_set_w (write_concern, MONGOC_WRITE_CONCERN_W_MAJORITY))),
// Other string:
when (type (utf8), do (mongoc_write_concern_set_wtag (write_concern, bsonAs (cstr)))),
// Invalid value:
else (error ("Unsupported w value")))));
if (bsonParseError) {
const char *const prefix = "Error while parsing the 'w' URI option";
if (w_str) {
MONGOC_URI_ERROR (error, "%s: %s [w=%s]", prefix, bsonParseError, w_str);
} else if (w_int != INT_MAX) {
MONGOC_URI_ERROR (error, "%s: %s [w=%d]", prefix, bsonParseError, w_int);
} else {
MONGOC_URI_ERROR (error, "%s: %s", prefix, bsonParseError);
}
return false;
}
return true;
}
/* can't use mongoc_uri_get_option_as_int32, it treats 0 specially */
static int32_t
_mongoc_uri_get_max_staleness_option (const mongoc_uri_t *uri)
{
const bson_t *options;
bson_iter_t iter;
int32_t retval = MONGOC_NO_MAX_STALENESS;
if ((options = mongoc_uri_get_options (uri)) &&
bson_iter_init_find_case (&iter, options, MONGOC_URI_MAXSTALENESSSECONDS) && BSON_ITER_HOLDS_INT32 (&iter)) {
retval = bson_iter_int32 (&iter);
if (retval == 0) {
MONGOC_WARNING ("Unsupported value for \"" MONGOC_URI_MAXSTALENESSSECONDS "\": \"%d\"", retval);
retval = -1;
} else if (retval < 0 && retval != -1) {
MONGOC_WARNING ("Unsupported value for \"" MONGOC_URI_MAXSTALENESSSECONDS "\": \"%d\"", retval);
retval = MONGOC_NO_MAX_STALENESS;
}
}
return retval;
}
mongoc_uri_t *
mongoc_uri_new_with_error (const char *uri_string, bson_error_t *error)
{
mongoc_uri_t *uri;
int32_t max_staleness_seconds;
uri = BSON_ALIGNED_ALLOC0 (mongoc_uri_t);
bson_init (&uri->raw);
bson_init (&uri->options);
bson_init (&uri->credentials);
bson_init (&uri->compressors);
/* Initialize read_prefs, since parsing may add to it */
uri->read_prefs = mongoc_read_prefs_new (MONGOC_READ_PRIMARY);
/* Initialize empty read_concern */
uri->read_concern = mongoc_read_concern_new ();
if (!uri_string) {
uri_string = "mongodb://127.0.0.1/";
}
if (!mongoc_uri_parse (uri, uri_string, error)) {
mongoc_uri_destroy (uri);
return NULL;
}
uri->str = bson_strdup (uri_string);
if (!_mongoc_uri_assign_read_prefs_mode (uri, error)) {
mongoc_uri_destroy (uri);
return NULL;
}
max_staleness_seconds = _mongoc_uri_get_max_staleness_option (uri);
mongoc_read_prefs_set_max_staleness_seconds (uri->read_prefs, max_staleness_seconds);
if (!mongoc_read_prefs_is_valid (uri->read_prefs)) {
mongoc_uri_destroy (uri);
MONGOC_URI_ERROR (error, "%s", "Invalid readPreferences");
return NULL;
}
if (!_mongoc_uri_build_write_concern (uri, error)) {
mongoc_uri_destroy (uri);
return NULL;
}
if (!mongoc_write_concern_is_valid (uri->write_concern)) {
mongoc_uri_destroy (uri);
MONGOC_URI_ERROR (error, "%s", "Invalid writeConcern");
return NULL;
}
return uri;
}
mongoc_uri_t *
mongoc_uri_new (const char *uri_string)
{
bson_error_t error = {0};
mongoc_uri_t *uri;
uri = mongoc_uri_new_with_error (uri_string, &error);
if (error.domain) {
MONGOC_WARNING ("Error parsing URI: '%s'", error.message);
}
return uri;
}
mongoc_uri_t *
mongoc_uri_new_for_host_port (const char *hostname, uint16_t port)
{
mongoc_uri_t *uri;
char *str;
BSON_ASSERT (hostname);
BSON_ASSERT (port);
str = bson_strdup_printf ("mongodb://%s:%hu/", hostname, port);
uri = mongoc_uri_new (str);
bson_free (str);
return uri;
}
const char *
mongoc_uri_get_username (const mongoc_uri_t *uri)
{
BSON_ASSERT (uri);
return uri->username;
}
bool
mongoc_uri_set_username (mongoc_uri_t *uri, const char *username)
{
size_t len;
BSON_ASSERT (username);
len = strlen (username);
if (!bson_utf8_validate (username, len, false)) {
return false;
}
if (uri->username) {
bson_free (uri->username);
}
uri->username = bson_strdup (username);
return true;
}
const char *
mongoc_uri_get_password (const mongoc_uri_t *uri)
{
BSON_ASSERT (uri);
return uri->password;
}
bool
mongoc_uri_set_password (mongoc_uri_t *uri, const char *password)
{
size_t len;
BSON_ASSERT (password);
len = strlen (password);
if (!bson_utf8_validate (password, len, false)) {
return false;
}
if (uri->password) {
bson_free (uri->password);
}
uri->password = bson_strdup (password);
return true;
}
const char *
mongoc_uri_get_database (const mongoc_uri_t *uri)
{
BSON_ASSERT (uri);
return uri->database;
}
bool
mongoc_uri_set_database (mongoc_uri_t *uri, const char *database)
{
size_t len;
BSON_ASSERT (database);
len = strlen (database);
if (!bson_utf8_validate (database, len, false)) {
return false;
}
if (uri->database) {
bson_free (uri->database);
}
uri->database = bson_strdup (database);
return true;
}
const char *
mongoc_uri_get_auth_source (const mongoc_uri_t *uri)
{
bson_iter_t iter;
const char *mechanism;
BSON_ASSERT (uri);
if (bson_iter_init_find_case (&iter, &uri->credentials, MONGOC_URI_AUTHSOURCE)) {
return bson_iter_utf8 (&iter, NULL);
}
/* Auth spec:
* "For GSSAPI and MONGODB-X509 authMechanisms the authSource defaults to
* $external. For PLAIN the authSource defaults to the database name if
* supplied on the connection string or $external. For
* SCRAM-SHA-1 and SCRAM-SHA-256 authMechanisms, the authSource defaults to
* the database name if supplied on the connection string or admin."
*/
mechanism = mongoc_uri_get_auth_mechanism (uri);
if (mechanism) {
if (!strcasecmp (mechanism, "GSSAPI") || !strcasecmp (mechanism, "MONGODB-X509")) {
return "$external";
}
if (!strcasecmp (mechanism, "PLAIN")) {
return uri->database ? uri->database : "$external";
}
}
return uri->database ? uri->database : "admin";
}
bool
mongoc_uri_set_auth_source (mongoc_uri_t *uri, const char *value)
{
size_t len;
BSON_ASSERT (value);
len = strlen (value);
if (!bson_utf8_validate (value, len, false)) {
return false;
}
mongoc_uri_bson_append_or_replace_key (&uri->credentials, MONGOC_URI_AUTHSOURCE, value);
return true;
}
const char *
mongoc_uri_get_appname (const mongoc_uri_t *uri)
{
BSON_ASSERT (uri);
return mongoc_uri_get_option_as_utf8 (uri, MONGOC_URI_APPNAME, NULL);
}
bool
mongoc_uri_set_appname (mongoc_uri_t *uri, const char *value)
{
BSON_ASSERT (value);
if (!bson_utf8_validate (value, strlen (value), false)) {
return false;
}
if (!_mongoc_handshake_appname_is_valid (value)) {
return false;
}
mongoc_uri_bson_append_or_replace_key (&uri->options, MONGOC_URI_APPNAME, value);
return true;
}
bool
mongoc_uri_set_compressors (mongoc_uri_t *uri, const char *value)
{
const char *end_compressor;
char *entry;
bson_destroy (&uri->compressors);
bson_init (&uri->compressors);
if (value && !bson_utf8_validate (value, strlen (value), false)) {
return false;
}
while ((entry = scan_to_unichar (value, ',', "", &end_compressor))) {
if (mongoc_compressor_supported (entry)) {
mongoc_uri_bson_append_or_replace_key (&uri->compressors, entry, "yes");
} else {
MONGOC_WARNING ("Unsupported compressor: '%s'", entry);
}
value = end_compressor + 1;
bson_free (entry);
}
if (value) {
if (mongoc_compressor_supported (value)) {
mongoc_uri_bson_append_or_replace_key (&uri->compressors, value, "yes");
} else {
MONGOC_WARNING ("Unsupported compressor: '%s'", value);
}
}
return true;
}
const bson_t *
mongoc_uri_get_compressors (const mongoc_uri_t *uri)
{
BSON_ASSERT (uri);
return &uri->compressors;
}
/* can't use mongoc_uri_get_option_as_int32, it treats 0 specially */
int32_t
mongoc_uri_get_local_threshold_option (const mongoc_uri_t *uri)
{
const bson_t *options;
bson_iter_t iter;
int32_t retval = MONGOC_TOPOLOGY_LOCAL_THRESHOLD_MS;
if ((options = mongoc_uri_get_options (uri)) && bson_iter_init_find_case (&iter, options, "localthresholdms") &&
BSON_ITER_HOLDS_INT32 (&iter)) {
retval = bson_iter_int32 (&iter);
if (retval < 0) {
MONGOC_WARNING ("Invalid localThresholdMS: %d", retval);
retval = MONGOC_TOPOLOGY_LOCAL_THRESHOLD_MS;
}
}
return retval;
}
const char *
mongoc_uri_get_srv_hostname (const mongoc_uri_t *uri)
{
if (uri->is_srv) {
return uri->srv;
}
return NULL;
}
const char *
mongoc_uri_get_service (const mongoc_uri_t *uri)
{
return mongoc_uri_get_srv_hostname (uri);
}
/* Initial DNS Seedlist Discovery Spec: `srvServiceName` requires a string value
* and defaults to "mongodb". */
static const char *const mongoc_default_srv_service_name = "mongodb";
const char *
mongoc_uri_get_srv_service_name (const mongoc_uri_t *uri)
{
bson_iter_t iter;
BSON_ASSERT_PARAM (uri);
if (bson_iter_init_find_case (&iter, &uri->options, MONGOC_URI_SRVSERVICENAME)) {
BSON_ASSERT (BSON_ITER_HOLDS_UTF8 (&iter));
return bson_iter_utf8 (&iter, NULL);
}
return mongoc_default_srv_service_name;
}
const bson_t *
mongoc_uri_get_options (const mongoc_uri_t *uri)
{
BSON_ASSERT (uri);
return &uri->options;
}
void
mongoc_uri_destroy (mongoc_uri_t *uri)
{
if (uri) {
_mongoc_host_list_destroy_all (uri->hosts);
bson_free (uri->str);
bson_free (uri->database);
bson_free (uri->username);
bson_destroy (&uri->raw);
bson_destroy (&uri->options);
bson_destroy (&uri->credentials);
bson_destroy (&uri->compressors);
mongoc_read_prefs_destroy (uri->read_prefs);
mongoc_read_concern_destroy (uri->read_concern);
mongoc_write_concern_destroy (uri->write_concern);
if (uri->password) {
bson_zero_free (uri->password, strlen (uri->password));
}
bson_free (uri);
}
}
mongoc_uri_t *
mongoc_uri_copy (const mongoc_uri_t *uri)
{
mongoc_uri_t *copy;
mongoc_host_list_t *iter;
bson_error_t error;
BSON_ASSERT (uri);
copy = BSON_ALIGNED_ALLOC0 (mongoc_uri_t);
copy->str = bson_strdup (uri->str);
copy->is_srv = uri->is_srv;
bson_strncpy (copy->srv, uri->srv, sizeof uri->srv);
copy->username = bson_strdup (uri->username);
copy->password = bson_strdup (uri->password);
copy->database = bson_strdup (uri->database);
copy->read_prefs = mongoc_read_prefs_copy (uri->read_prefs);
copy->read_concern = mongoc_read_concern_copy (uri->read_concern);
copy->write_concern = mongoc_write_concern_copy (uri->write_concern);
LL_FOREACH (uri->hosts, iter)
{
if (!mongoc_uri_upsert_host (copy, iter->host, iter->port, &error)) {
MONGOC_ERROR ("%s", error.message);
mongoc_uri_destroy (copy);
return NULL;
}
}
bson_copy_to (&uri->raw, &copy->raw);
bson_copy_to (&uri->options, &copy->options);
bson_copy_to (&uri->credentials, &copy->credentials);
bson_copy_to (&uri->compressors, &copy->compressors);
return copy;
}
const char *
mongoc_uri_get_string (const mongoc_uri_t *uri)
{
BSON_ASSERT (uri);
return uri->str;
}
const bson_t *
mongoc_uri_get_read_prefs (const mongoc_uri_t *uri)
{
BSON_ASSERT (uri);
return mongoc_read_prefs_get_tags (uri->read_prefs);
}
char *
mongoc_uri_unescape (const char *escaped_string)
{
bson_unichar_t c;
unsigned int hex = 0;
const char *ptr;
const char *end;
size_t len;
bool unescape_occurred = false;
BSON_ASSERT (escaped_string);
len = strlen (escaped_string);
/*
* Double check that this is a UTF-8 valid string. Bail out if necessary.
*/
if (!bson_utf8_validate (escaped_string, len, false)) {
MONGOC_WARNING ("%s(): escaped_string contains invalid UTF-8", BSON_FUNC);
return NULL;
}
ptr = escaped_string;
end = ptr + len;
mcommon_string_append_t append;
mcommon_string_new_with_capacity_as_append (&append, len);
for (; *ptr; ptr = bson_utf8_next_char (ptr)) {
c = bson_utf8_get_char (ptr);
switch (c) {
case '%':
if (((end - ptr) < 2) || !isxdigit (ptr[1]) || !isxdigit (ptr[2]) ||
#ifdef _MSC_VER
(1 != sscanf_s (&ptr[1], "%02x", &hex))
#else
(1 != sscanf (&ptr[1], "%02x", &hex))
#endif
|| 0 == hex) {
mcommon_string_from_append_destroy (&append);
MONGOC_WARNING ("Invalid %% escape sequence");
return NULL;
}
// This isn't guaranteed to be valid UTF-8, we check again below
char byte = (char) hex;
mcommon_string_append_bytes (&append, &byte, 1);
ptr += 2;
unescape_occurred = true;
break;
default:
mcommon_string_append_unichar (&append, c);
break;
}
}
/* Check that after unescaping, it is still valid UTF-8 */
if (unescape_occurred &&
!bson_utf8_validate (mcommon_str_from_append (&append), mcommon_strlen_from_append (&append), false)) {
MONGOC_WARNING ("Invalid %% escape sequence: unescaped string contains invalid UTF-8");
mcommon_string_from_append_destroy (&append);
return NULL;
}
return mcommon_string_from_append_destroy_with_steal (&append);
}
const mongoc_read_prefs_t *
mongoc_uri_get_read_prefs_t (const mongoc_uri_t *uri) /* IN */
{
BSON_ASSERT (uri);
return uri->read_prefs;
}
void
mongoc_uri_set_read_prefs_t (mongoc_uri_t *uri, const mongoc_read_prefs_t *prefs)
{
BSON_ASSERT (uri);
BSON_ASSERT (prefs);
mongoc_read_prefs_destroy (uri->read_prefs);
uri->read_prefs = mongoc_read_prefs_copy (prefs);
}
const mongoc_read_concern_t *
mongoc_uri_get_read_concern (const mongoc_uri_t *uri) /* IN */
{
BSON_ASSERT (uri);
return uri->read_concern;
}
void
mongoc_uri_set_read_concern (mongoc_uri_t *uri, const mongoc_read_concern_t *rc)
{
BSON_ASSERT (uri);
BSON_ASSERT (rc);
mongoc_read_concern_destroy (uri->read_concern);
uri->read_concern = mongoc_read_concern_copy (rc);
}
const mongoc_write_concern_t *
mongoc_uri_get_write_concern (const mongoc_uri_t *uri) /* IN */
{
BSON_ASSERT (uri);
return uri->write_concern;
}
void
mongoc_uri_set_write_concern (mongoc_uri_t *uri, const mongoc_write_concern_t *wc)
{
BSON_ASSERT (uri);
BSON_ASSERT (wc);
mongoc_write_concern_destroy (uri->write_concern);
uri->write_concern = mongoc_write_concern_copy (wc);
}
bool
mongoc_uri_get_tls (const mongoc_uri_t *uri) /* IN */
{
bson_iter_t iter;
BSON_ASSERT (uri);
if (bson_iter_init_find_case (&iter, &uri->options, MONGOC_URI_TLS) && BSON_ITER_HOLDS_BOOL (&iter)) {
return bson_iter_bool (&iter);
}
if (bson_iter_init_find_case (&iter, &uri->options, MONGOC_URI_TLSCERTIFICATEKEYFILE) ||
bson_iter_init_find_case (&iter, &uri->options, MONGOC_URI_TLSCAFILE) ||
bson_iter_init_find_case (&iter, &uri->options, MONGOC_URI_TLSALLOWINVALIDCERTIFICATES) ||
bson_iter_init_find_case (&iter, &uri->options, MONGOC_URI_TLSALLOWINVALIDHOSTNAMES) ||
bson_iter_init_find_case (&iter, &uri->options, MONGOC_URI_TLSINSECURE) ||
bson_iter_init_find_case (&iter, &uri->options, MONGOC_URI_TLSCERTIFICATEKEYFILEPASSWORD) ||
bson_iter_init_find_case (&iter, &uri->options, MONGOC_URI_TLSDISABLEOCSPENDPOINTCHECK) ||
bson_iter_init_find_case (&iter, &uri->options, MONGOC_URI_TLSDISABLECERTIFICATEREVOCATIONCHECK)) {
return true;
}
return false;
}
bool
mongoc_uri_get_ssl (const mongoc_uri_t *uri) /* IN */
{
return mongoc_uri_get_tls (uri);
}
const char *
mongoc_uri_get_server_monitoring_mode (const mongoc_uri_t *uri)
{
BSON_ASSERT_PARAM (uri);
return mongoc_uri_get_option_as_utf8 (uri, MONGOC_URI_SERVERMONITORINGMODE, "auto");
}
bool
mongoc_uri_set_server_monitoring_mode (mongoc_uri_t *uri, const char *value)
{
BSON_ASSERT_PARAM (uri);
BSON_ASSERT_PARAM (value);
// Check for valid value
if (strcmp (value, "stream") && strcmp (value, "poll") && strcmp (value, "auto")) {
return false;
}
mongoc_uri_bson_append_or_replace_key (&uri->options, MONGOC_URI_SERVERMONITORINGMODE, value);
return true;
}
/*
*--------------------------------------------------------------------------
*
* mongoc_uri_get_option_as_int32 --
*
* Checks if the URI 'option' is set and of correct type (int32).
* The special value '0' is considered as "unset".
* This is so users can provide
* sprintf("mongodb://localhost/?option=%d", myvalue) style connection
* strings, and still apply default values.
*
* If not set, or set to invalid type, 'fallback' is returned.
*
* NOTE: 'option' is case*in*sensitive.
*
* Returns:
* The value of 'option' if available as int32 (and not 0), or
* 'fallback'.
*
*--------------------------------------------------------------------------
*/
int32_t
mongoc_uri_get_option_as_int32 (const mongoc_uri_t *uri, const char *option_orig, int32_t fallback)
{
const char *option;
const bson_t *options;
bson_iter_t iter;
int64_t retval = 0;
option = mongoc_uri_canonicalize_option (option_orig);
/* BC layer to allow retrieving 32-bit values stored in 64-bit options */
if (mongoc_uri_option_is_int64 (option_orig)) {
retval = mongoc_uri_get_option_as_int64 (uri, option_orig, 0);
if (retval > INT32_MAX || retval < INT32_MIN) {
MONGOC_WARNING ("Cannot read 64-bit value for \"%s\": %" PRId64, option_orig, retval);
retval = 0;
}
} else if ((options = mongoc_uri_get_options (uri)) && bson_iter_init_find_case (&iter, options, option) &&
BSON_ITER_HOLDS_INT32 (&iter)) {
retval = bson_iter_int32 (&iter);
}
if (!retval) {
retval = fallback;
}
return (int32_t) retval;
}
/*
*--------------------------------------------------------------------------
*
* mongoc_uri_set_option_as_int32 --
*
* Sets a URI option 'after the fact'. Allows users to set individual
* URI options without passing them as a connection string.
*
* Only allows a set of known options to be set.
* @see mongoc_uri_option_is_int32 ().
*
* Does in-place-update of the option BSON if 'option' is already set.
* Appends the option to the end otherwise.
*
* NOTE: If 'option' is already set, and is of invalid type, this
* function will return false.
*
* NOTE: 'option' is case*in*sensitive.
*
* Returns:
* true on successfully setting the option, false on failure.
*
*--------------------------------------------------------------------------
*/
bool
mongoc_uri_set_option_as_int32 (mongoc_uri_t *uri, const char *option_orig, int32_t value)
{
const char *option;
bson_error_t error;
bool r;
if (mongoc_uri_option_is_int64 (option_orig)) {
return mongoc_uri_set_option_as_int64 (uri, option_orig, value);
}
option = mongoc_uri_canonicalize_option (option_orig);
if (!mongoc_uri_option_is_int32 (option)) {
MONGOC_WARNING ("Unsupported value for \"%s\": %d, \"%s\" is not an int32 option", option_orig, value, option);
return false;
}
r = _mongoc_uri_set_option_as_int32_with_error (uri, option, value, &error);
if (!r) {
MONGOC_WARNING ("%s", error.message);
}
return r;
}
/*
*--------------------------------------------------------------------------
*
* _mongoc_uri_set_option_as_int32_with_error --
*
* Same as mongoc_uri_set_option_as_int32, with error reporting.
*
* Precondition:
* mongoc_uri_option_is_int32(option) must be true.
*
* Returns:
* true on successfully setting the option, false on failure.
*
*--------------------------------------------------------------------------
*/
static bool
_mongoc_uri_set_option_as_int32_with_error (mongoc_uri_t *uri,
const char *option_orig,
int32_t value,
bson_error_t *error)
{
const char *option;
const bson_t *options;
bson_iter_t iter;
char *option_lowercase = NULL;
option = mongoc_uri_canonicalize_option (option_orig);
/* Server Discovery and Monitoring Spec: "the driver MUST NOT permit users
* to configure it less than minHeartbeatFrequencyMS (500ms)." */
if (!bson_strcasecmp (option, MONGOC_URI_HEARTBEATFREQUENCYMS) &&
value < MONGOC_TOPOLOGY_MIN_HEARTBEAT_FREQUENCY_MS) {
MONGOC_URI_ERROR (error,
"Invalid \"%s\" of %d: must be at least %d",
option_orig,
value,
MONGOC_TOPOLOGY_MIN_HEARTBEAT_FREQUENCY_MS);
return false;
}
/* zlib levels are from -1 (default) through 9 (best compression) */
if (!bson_strcasecmp (option, MONGOC_URI_ZLIBCOMPRESSIONLEVEL) && (value < -1 || value > 9)) {
MONGOC_URI_ERROR (error, "Invalid \"%s\" of %d: must be between -1 and 9", option_orig, value);
return false;
}
if ((options = mongoc_uri_get_options (uri)) && bson_iter_init_find_case (&iter, options, option)) {
if (BSON_ITER_HOLDS_INT32 (&iter)) {
bson_iter_overwrite_int32 (&iter, value);
return true;
} else {
MONGOC_URI_ERROR (error,
"Cannot set URI option \"%s\" to %d, it already has "
"a non-32-bit integer value",
option,
value);
return false;
}
}
option_lowercase = lowercase_str_new (option);
if (!bson_append_int32 (&uri->options, option_lowercase, -1, value)) {
bson_free (option_lowercase);
MONGOC_URI_ERROR (error, "Failed to set URI option \"%s\" to %d", option_orig, value);
return false;
}
bson_free (option_lowercase);
return true;
}
/*
*--------------------------------------------------------------------------
*
* _mongoc_uri_set_option_as_int32 --
*
* Same as mongoc_uri_set_option_as_int32, except the option is not
* validated against valid int32 options
*
* Returns:
* true on successfully setting the option, false on failure.
*
*--------------------------------------------------------------------------
*/
static bool
_mongoc_uri_set_option_as_int32 (mongoc_uri_t *uri, const char *option_orig, int32_t value)
{
const char *option;
const bson_t *options;
bson_iter_t iter;
char *option_lowercase = NULL;
option = mongoc_uri_canonicalize_option (option_orig);
if ((options = mongoc_uri_get_options (uri)) && bson_iter_init_find_case (&iter, options, option)) {
if (BSON_ITER_HOLDS_INT32 (&iter)) {
bson_iter_overwrite_int32 (&iter, value);
return true;
} else {
return false;
}
}
option_lowercase = lowercase_str_new (option);
bson_append_int32 (&uri->options, option_lowercase, -1, value);
bson_free (option_lowercase);
return true;
}
/*
*--------------------------------------------------------------------------
*
* mongoc_uri_get_option_as_int64 --
*
* Checks if the URI 'option' is set and of correct type (int32 or
* int64).
* The special value '0' is considered as "unset".
* This is so users can provide
* sprintf("mongodb://localhost/?option=%" PRId64, myvalue) style
* connection strings, and still apply default values.
*
* If not set, or set to invalid type, 'fallback' is returned.
*
* NOTE: 'option' is case*in*sensitive.
*
* Returns:
* The value of 'option' if available as int64 or int32 (and not 0), or
* 'fallback'.
*
*--------------------------------------------------------------------------
*/
int64_t
mongoc_uri_get_option_as_int64 (const mongoc_uri_t *uri, const char *option_orig, int64_t fallback)
{
const char *option;
const bson_t *options;
bson_iter_t iter;
int64_t retval = fallback;
option = mongoc_uri_canonicalize_option (option_orig);
if ((options = mongoc_uri_get_options (uri)) && bson_iter_init_find_case (&iter, options, option)) {
if (BSON_ITER_HOLDS_INT (&iter)) {
if (!(retval = bson_iter_as_int64 (&iter))) {
retval = fallback;
}
}
}
return retval;
}
/*
*--------------------------------------------------------------------------
*
* mongoc_uri_set_option_as_int64 --
*
* Sets a URI option 'after the fact'. Allows users to set individual
* URI options without passing them as a connection string.
*
* Only allows a set of known options to be set.
* @see mongoc_uri_option_is_int64 ().
*
* Does in-place-update of the option BSON if 'option' is already set.
* Appends the option to the end otherwise.
*
* NOTE: If 'option' is already set, and is of invalid type, this
* function will return false.
*
* NOTE: 'option' is case*in*sensitive.
*
* Returns:
* true on successfully setting the option, false on failure.
*
*--------------------------------------------------------------------------
*/
bool
mongoc_uri_set_option_as_int64 (mongoc_uri_t *uri, const char *option_orig, int64_t value)
{
const char *option;
bson_error_t error;
bool r;
option = mongoc_uri_canonicalize_option (option_orig);
if (!mongoc_uri_option_is_int64 (option)) {
if (mongoc_uri_option_is_int32 (option_orig)) {
if (value >= INT32_MIN && value <= INT32_MAX) {
MONGOC_WARNING ("Setting value for 32-bit option \"%s\" through 64-bit method", option_orig);
return mongoc_uri_set_option_as_int32 (uri, option_orig, (int32_t) value);
}
MONGOC_WARNING (
"Unsupported value for \"%s\": %" PRId64 ", \"%s\" is not an int64 option", option_orig, value, option);
return false;
}
}
r = _mongoc_uri_set_option_as_int64_with_error (uri, option, value, &error);
if (!r) {
MONGOC_WARNING ("%s", error.message);
}
return r;
}
/*
*--------------------------------------------------------------------------
*
* _mongoc_uri_set_option_as_int64_with_error --
*
* Same as mongoc_uri_set_option_as_int64, with error reporting.
*
* Precondition:
* mongoc_uri_option_is_int64(option) must be true.
*
* Returns:
* true on successfully setting the option, false on failure.
*
*--------------------------------------------------------------------------
*/
static bool
_mongoc_uri_set_option_as_int64_with_error (mongoc_uri_t *uri,
const char *option_orig,
int64_t value,
bson_error_t *error)
{
const char *option;
const bson_t *options;
bson_iter_t iter;
char *option_lowercase = NULL;
option = mongoc_uri_canonicalize_option (option_orig);
if ((options = mongoc_uri_get_options (uri)) && bson_iter_init_find_case (&iter, options, option)) {
if (BSON_ITER_HOLDS_INT64 (&iter)) {
bson_iter_overwrite_int64 (&iter, value);
return true;
} else {
MONGOC_URI_ERROR (error,
"Cannot set URI option \"%s\" to %" PRId64 ", it already has "
"a non-64-bit integer value",
option,
value);
return false;
}
}
option_lowercase = lowercase_str_new (option);
if (!bson_append_int64 (&uri->options, option_lowercase, -1, value)) {
bson_free (option_lowercase);
MONGOC_URI_ERROR (error, "Failed to set URI option \"%s\" to %" PRId64, option_orig, value);
return false;
}
bson_free (option_lowercase);
return true;
}
/*
*--------------------------------------------------------------------------
*
* mongoc_uri_get_option_as_bool --
*
* Checks if the URI 'option' is set and of correct type (bool).
*
* If not set, or set to invalid type, 'fallback' is returned.
*
* NOTE: 'option' is case*in*sensitive.
*
* Returns:
* The value of 'option' if available as bool, or 'fallback'.
*
*--------------------------------------------------------------------------
*/
bool
mongoc_uri_get_option_as_bool (const mongoc_uri_t *uri, const char *option_orig, bool fallback)
{
const char *option;
const bson_t *options;
bson_iter_t iter;
option = mongoc_uri_canonicalize_option (option_orig);
if ((options = mongoc_uri_get_options (uri)) && bson_iter_init_find_case (&iter, options, option) &&
BSON_ITER_HOLDS_BOOL (&iter)) {
return bson_iter_bool (&iter);
}
return fallback;
}
/*
*--------------------------------------------------------------------------
*
* mongoc_uri_set_option_as_bool --
*
* Sets a URI option 'after the fact'. Allows users to set individual
* URI options without passing them as a connection string.
*
* Only allows a set of known options to be set.
* @see mongoc_uri_option_is_bool ().
*
* Does in-place-update of the option BSON if 'option' is already set.
* Appends the option to the end otherwise.
*
* NOTE: If 'option' is already set, and is of invalid type, this
* function will return false.
*
* NOTE: 'option' is case*in*sensitive.
*
* Returns:
* true on successfully setting the option, false on failure.
*
*--------------------------------------------------------------------------
*/
bool
mongoc_uri_set_option_as_bool (mongoc_uri_t *uri, const char *option_orig, bool value)
{
const char *option;
char *option_lowercase;
const bson_t *options;
bson_iter_t iter;
option = mongoc_uri_canonicalize_option (option_orig);
BSON_ASSERT (option);
if (!mongoc_uri_option_is_bool (option)) {
return false;
}
if ((options = mongoc_uri_get_options (uri)) && bson_iter_init_find_case (&iter, options, option)) {
if (BSON_ITER_HOLDS_BOOL (&iter)) {
bson_iter_overwrite_bool (&iter, value);
return true;
} else {
return false;
}
}
option_lowercase = lowercase_str_new (option);
bson_append_bool (&uri->options, option_lowercase, -1, value);
bson_free (option_lowercase);
return true;
}
/*
*--------------------------------------------------------------------------
*
* mongoc_uri_get_option_as_utf8 --
*
* Checks if the URI 'option' is set and of correct type (utf8).
*
* If not set, or set to invalid type, 'fallback' is returned.
*
* NOTE: 'option' is case*in*sensitive.
*
* Returns:
* The value of 'option' if available as utf8, or 'fallback'.
*
*--------------------------------------------------------------------------
*/
const char *
mongoc_uri_get_option_as_utf8 (const mongoc_uri_t *uri, const char *option_orig, const char *fallback)
{
const char *option;
const bson_t *options;
bson_iter_t iter;
option = mongoc_uri_canonicalize_option (option_orig);
if ((options = mongoc_uri_get_options (uri)) && bson_iter_init_find_case (&iter, options, option) &&
BSON_ITER_HOLDS_UTF8 (&iter)) {
return bson_iter_utf8 (&iter, NULL);
}
return fallback;
}
/*
*--------------------------------------------------------------------------
*
* mongoc_uri_set_option_as_utf8 --
*
* Sets a URI option 'after the fact'. Allows users to set individual
* URI options without passing them as a connection string.
*
* Only allows a set of known options to be set.
* @see mongoc_uri_option_is_utf8 ().
*
* If the option is not already set, this function will append it to
*the end of the options bson. NOTE: If the option is already set the entire
*options bson will be overwritten, containing the new option=value
*(at the same position).
*
* NOTE: If 'option' is already set, and is of invalid type, this
* function will return false.
*
* NOTE: 'option' must be valid utf8.
*
* NOTE: 'option' is case*in*sensitive.
*
* Returns:
* true on successfully setting the option, false on failure.
*
*--------------------------------------------------------------------------
*/
bool
mongoc_uri_set_option_as_utf8 (mongoc_uri_t *uri, const char *option_orig, const char *value)
{
const char *option;
size_t len;
char *option_lowercase = NULL;
option = mongoc_uri_canonicalize_option (option_orig);
BSON_ASSERT (option);
len = strlen (value);
if (!bson_utf8_validate (value, len, false)) {
return false;
}
if (!mongoc_uri_option_is_utf8 (option)) {
return false;
}
if (!bson_strcasecmp (option, MONGOC_URI_APPNAME)) {
return mongoc_uri_set_appname (uri, value);
} else if (!bson_strcasecmp (option, MONGOC_URI_SERVERMONITORINGMODE)) {
return mongoc_uri_set_server_monitoring_mode (uri, value);
} else {
option_lowercase = lowercase_str_new (option);
mongoc_uri_bson_append_or_replace_key (&uri->options, option_lowercase, value);
bson_free (option_lowercase);
}
return true;
}
/*
*--------------------------------------------------------------------------
*
* _mongoc_uri_requires_auth_negotiation --
*
* Returns true if auth mechanism is necessary for this uri. According
* to the auth spec: "If an application provides a username but does
* not provide an authentication mechanism, drivers MUST negotiate a
* mechanism".
*
* Returns:
* true if the driver should negotiate the auth mechanism for the uri
*
*--------------------------------------------------------------------------
*/
bool
_mongoc_uri_requires_auth_negotiation (const mongoc_uri_t *uri)
{
return mongoc_uri_get_username (uri) && !mongoc_uri_get_auth_mechanism (uri);
}
/* A bit of a hack. Needed for multi mongos tests to create a URI with the same
* auth, SSL, and compressors settings but with only one specific host. */
mongoc_uri_t *
_mongoc_uri_copy_and_replace_host_list (const mongoc_uri_t *original, const char *host)
{
mongoc_uri_t *uri = mongoc_uri_copy (original);
_mongoc_host_list_destroy_all (uri->hosts);
uri->hosts = bson_malloc0 (sizeof (mongoc_host_list_t));
_mongoc_host_list_from_string (uri->hosts, host);
return uri;
}
bool
mongoc_uri_init_with_srv_host_list (mongoc_uri_t *uri, mongoc_host_list_t *host_list, bson_error_t *error)
{
mongoc_host_list_t *host;
BSON_ASSERT (uri->is_srv);
BSON_ASSERT (!uri->hosts);
LL_FOREACH (host_list, host)
{
if (!mongoc_uri_upsert_host_and_port (uri, host->host_and_port, error)) {
return false;
}
}
return true;
}
#ifdef MONGOC_ENABLE_CRYPTO
void
_mongoc_uri_init_scram (const mongoc_uri_t *uri, mongoc_scram_t *scram, mongoc_crypto_hash_algorithm_t algo)
{
BSON_ASSERT (uri);
BSON_ASSERT (scram);
_mongoc_scram_init (scram, algo);
_mongoc_scram_set_pass (scram, mongoc_uri_get_password (uri));
_mongoc_scram_set_user (scram, mongoc_uri_get_username (uri));
}
#endif
static bool
mongoc_uri_finalize_loadbalanced (const mongoc_uri_t *uri, bson_error_t *error)
{
if (!mongoc_uri_get_option_as_bool (uri, MONGOC_URI_LOADBALANCED, false)) {
return true;
}
/* Load Balancer Spec: When `loadBalanced=true` is provided in the connection
* string, the driver MUST throw an exception if the connection string
* contains more than one host/port. */
if (uri->hosts && uri->hosts->next) {
MONGOC_URI_ERROR (error, "URI with \"%s\" enabled must not contain more than one host", MONGOC_URI_LOADBALANCED);
return false;
}
if (mongoc_uri_has_option (uri, MONGOC_URI_REPLICASET)) {
MONGOC_URI_ERROR (error,
"URI with \"%s\" enabled must not contain option \"%s\"",
MONGOC_URI_LOADBALANCED,
MONGOC_URI_REPLICASET);
return false;
}
if (mongoc_uri_has_option (uri, MONGOC_URI_DIRECTCONNECTION) &&
mongoc_uri_get_option_as_bool (uri, MONGOC_URI_DIRECTCONNECTION, false)) {
MONGOC_URI_ERROR (error,
"URI with \"%s\" enabled must not contain option \"%s\" enabled",
MONGOC_URI_LOADBALANCED,
MONGOC_URI_DIRECTCONNECTION);
return false;
}
return true;
}
static bool
mongoc_uri_finalize_srv (const mongoc_uri_t *uri, bson_error_t *error)
{
/* Initial DNS Seedlist Discovery Spec: The driver MUST report an error if
* either the `srvServiceName` or `srvMaxHosts` URI options are specified
* with a non-SRV URI. */
if (!uri->is_srv) {
const char *option = NULL;
if (mongoc_uri_has_option (uri, MONGOC_URI_SRVSERVICENAME)) {
option = MONGOC_URI_SRVSERVICENAME;
} else if (mongoc_uri_has_option (uri, MONGOC_URI_SRVMAXHOSTS)) {
option = MONGOC_URI_SRVMAXHOSTS;
}
if (option) {
MONGOC_URI_ERROR (error, "%s must not be specified with a non-SRV URI", option);
return false;
}
}
if (uri->is_srv) {
const int32_t max_hosts = mongoc_uri_get_option_as_int32 (uri, MONGOC_URI_SRVMAXHOSTS, 0);
/* Initial DNS Seedless Discovery Spec: This option requires a
* non-negative integer and defaults to zero (i.e. no limit). */
if (max_hosts < 0) {
MONGOC_URI_ERROR (error,
"%s is required to be a non-negative integer, but "
"has value %" PRId32,
MONGOC_URI_SRVMAXHOSTS,
max_hosts);
return false;
}
if (max_hosts > 0) {
/* Initial DNS Seedless Discovery spec: If srvMaxHosts is a positive
* integer, the driver MUST throw an error if the connection string
* contains a `replicaSet` option. */
if (mongoc_uri_has_option (uri, MONGOC_URI_REPLICASET)) {
MONGOC_URI_ERROR (error, "%s must not be specified with %s", MONGOC_URI_SRVMAXHOSTS, MONGOC_URI_REPLICASET);
return false;
}
/* Initial DNS Seedless Discovery Spec: If srvMaxHosts is a positive
* integer, the driver MUST throw an error if the connection string
* contains a `loadBalanced` option with a value of `true`.
*/
if (mongoc_uri_get_option_as_bool (uri, MONGOC_URI_LOADBALANCED, false)) {
MONGOC_URI_ERROR (
error, "%s must not be specified with %s=true", MONGOC_URI_SRVMAXHOSTS, MONGOC_URI_LOADBALANCED);
return false;
}
}
}
return true;
}
/* This should be called whenever URI options change (e.g. parsing a new URI
* string, after setting one or more options explicitly, applying TXT records).
* While the primary purpose of this function is to validate the URI, it may
* also alter the URI (e.g. implicitly enable TLS when SRV is used). Returns
* true on success; otherwise, returns false and sets @error. */
bool
mongoc_uri_finalize (mongoc_uri_t *uri, bson_error_t *error)
{
BSON_ASSERT_PARAM (uri);
if (!mongoc_uri_finalize_tls (uri, error)) {
return false;
}
if (!mongoc_uri_finalize_auth (uri, error)) {
return false;
}
if (!mongoc_uri_finalize_directconnection (uri, error)) {
return false;
}
if (!mongoc_uri_finalize_loadbalanced (uri, error)) {
return false;
}
if (!mongoc_uri_finalize_srv (uri, error)) {
return false;
}
return true;
}
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-uri.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-uri.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-uri.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-uri.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-util-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-util-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-util-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-util-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-util.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-util.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-util.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-util.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-version-functions.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-version-functions.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-version-functions.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-version-functions.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-version-functions.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-version-functions.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-version-functions.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-version-functions.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-version.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-version.h
similarity index 96%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-version.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-version.h
index cc310c71..abb394b4 100644
--- a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-version.h
+++ b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-version.h
@@ -1,103 +1,103 @@
/*
* Copyright 2009-present MongoDB, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#if !defined(MONGOC_INSIDE) && !defined(MONGOC_COMPILATION)
#error "Only <mongoc/mongoc.h> can be included directly."
#endif
// clang-format off
#ifndef MONGOC_VERSION_H
#define MONGOC_VERSION_H
/**
* MONGOC_MAJOR_VERSION:
*
* MONGOC major version component (e.g. 1 if %MONGOC_VERSION is 1.2.3)
*/
#define MONGOC_MAJOR_VERSION (1)
/**
* MONGOC_MINOR_VERSION:
*
* MONGOC minor version component (e.g. 2 if %MONGOC_VERSION is 1.2.3)
*/
#define MONGOC_MINOR_VERSION (30)
/**
* MONGOC_MICRO_VERSION:
*
* MONGOC micro version component (e.g. 3 if %MONGOC_VERSION is 1.2.3)
*/
-#define MONGOC_MICRO_VERSION (5)
+#define MONGOC_MICRO_VERSION (6)
/**
* MONGOC_PRERELEASE_VERSION:
*
* MONGOC prerelease version component (e.g. pre if %MONGOC_VERSION is 1.2.3-pre)
*/
#define MONGOC_PRERELEASE_VERSION ()
/**
* MONGOC_VERSION:
*
* MONGOC version.
*/
-#define MONGOC_VERSION (1.30.5)
+#define MONGOC_VERSION (1.30.6)
/**
* MONGOC_VERSION_S:
*
* MONGOC version, encoded as a string, useful for printing and
* concatenation.
*/
-#define MONGOC_VERSION_S "1.30.5"
+#define MONGOC_VERSION_S "1.30.6"
/**
* MONGOC_VERSION_HEX:
*
* MONGOC version, encoded as an hexadecimal number, useful for
* integer comparisons.
*/
#define MONGOC_VERSION_HEX (MONGOC_MAJOR_VERSION << 24 | \
MONGOC_MINOR_VERSION << 16 | \
MONGOC_MICRO_VERSION << 8)
/**
* MONGOC_CHECK_VERSION:
* @major: required major version
* @minor: required minor version
* @micro: required micro version
*
* Compile-time version checking. Evaluates to %TRUE if the version
* of MONGOC is greater than or equal to the required one.
*/
#define MONGOC_CHECK_VERSION(major,minor,micro) \
(MONGOC_MAJOR_VERSION > (major) || \
(MONGOC_MAJOR_VERSION == (major) && MONGOC_MINOR_VERSION > (minor)) || \
(MONGOC_MAJOR_VERSION == (major) && MONGOC_MINOR_VERSION == (minor) && \
MONGOC_MICRO_VERSION >= (micro)))
#endif /* MONGOC_VERSION_H */
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-version.h.in b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-version.h.in
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-version.h.in
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-version.h.in
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-write-command-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-write-command-private.h
similarity index 99%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-write-command-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-write-command-private.h
index 85121594..c1bf751e 100644
--- a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-write-command-private.h
+++ b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-write-command-private.h
@@ -1,209 +1,209 @@
/*
* Copyright 2009-present MongoDB, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <mongoc/mongoc-prelude.h>
#ifndef MONGOC_WRITE_COMMAND_PRIVATE_H
#define MONGOC_WRITE_COMMAND_PRIVATE_H
#include <bson/bson.h>
#include <mongoc/mongoc-client.h>
#include <mongoc/mongoc-error.h>
#include <mongoc/mongoc-write-concern.h>
#include <mongoc/mongoc-server-stream-private.h>
#include <mongoc/mongoc-buffer-private.h>
BSON_BEGIN_DECLS
/* forward decl */
struct _mongoc_crud_opts_t;
#define MONGOC_WRITE_COMMAND_DELETE 0
#define MONGOC_WRITE_COMMAND_INSERT 1
#define MONGOC_WRITE_COMMAND_UPDATE 2
/* MongoDB has a extra allowance to allow updating 16mb document, as the update
* operators would otherwise overflow the 16mb object limit. See SERVER-10643
* for context. */
#define BSON_OBJECT_ALLOWANCE (16 * 1024)
#define RETRYABLE_WRITE_ERROR "RetryableWriteError"
struct _mongoc_bulk_write_flags_t {
bool ordered;
bool bypass_document_validation;
bool has_collation;
bool has_multi_write;
bool has_array_filters;
bool has_update_hint;
bool has_delete_hint;
};
typedef struct {
int type;
mongoc_buffer_t payload;
uint32_t n_documents;
mongoc_bulk_write_flags_t flags;
int64_t operation_id;
- bson_t cmd_opts;
+ bson_t *cmd_opts;
} mongoc_write_command_t;
typedef struct {
uint32_t nInserted;
uint32_t nMatched;
uint32_t nModified;
uint32_t nRemoved;
uint32_t nUpserted;
/* like [{"index": int, "code": int, "errmsg": str}, ...] */
bson_t writeErrors;
/* like [{"index": int, "_id": value}, ...] */
bson_t upserted;
uint32_t n_writeConcernErrors;
/* like [{"code": 64, "errmsg": "duplicate"}, ...] */
bson_t writeConcernErrors;
/* like ["TransientTransactionError", ...] */
bson_t errorLabels;
bool failed; /* The command failed */
bool must_stop; /* The stream may have been disconnected */
bson_error_t error;
uint32_t upsert_append_count;
/* If the command initially failed with a retryable write, and selected a new
* primary, this contains the server id of the newly selected primary. Only
* applies to OP_MSG. Is left at 0 if no retry occurs. */
uint32_t retry_server_id;
/* store the raw server response if an error occured */
uint32_t n_errorReplies;
bson_t rawErrorReplies;
} mongoc_write_result_t;
typedef enum {
MONGOC_WRITE_ERR_NONE,
MONGOC_WRITE_ERR_OTHER,
MONGOC_WRITE_ERR_RETRY,
MONGOC_WRITE_ERR_WRITE_CONCERN,
} mongoc_write_err_type_t;
void
_mongoc_write_command_destroy (mongoc_write_command_t *command);
void
_mongoc_write_command_init (bson_t *doc, mongoc_write_command_t *command, const char *collection);
void
_mongoc_write_command_init_insert (mongoc_write_command_t *command,
const bson_t *document,
const bson_t *cmd_opts,
mongoc_bulk_write_flags_t flags,
int64_t operation_id);
void
_mongoc_write_command_init_insert_one_idl (mongoc_write_command_t *command,
const bson_t *document,
const bson_t *cmd_opts,
bson_t *insert_id,
int64_t operation_id);
void
_mongoc_write_command_init_insert_idl (mongoc_write_command_t *command,
const bson_t *document,
const bson_t *cmd_opts,
int64_t operation_id);
void
_mongoc_write_command_init_delete (mongoc_write_command_t *command,
const bson_t *selectors,
const bson_t *cmd_opts,
const bson_t *opts,
mongoc_bulk_write_flags_t flags,
int64_t operation_id);
void
_mongoc_write_command_init_delete_idl (mongoc_write_command_t *command,
const bson_t *selector,
const bson_t *cmd_opts,
const bson_t *opts,
int64_t operation_id);
void
_mongoc_write_command_init_update (mongoc_write_command_t *command,
const bson_t *selector,
const bson_t *update,
const bson_t *cmd_opts,
const bson_t *opts,
mongoc_bulk_write_flags_t flags,
int64_t operation_id);
void
_mongoc_write_command_init_update_idl (mongoc_write_command_t *command,
const bson_t *selector,
const bson_t *update,
const bson_t *cmd_opts,
const bson_t *opts,
int64_t operation_id);
void
_mongoc_write_command_insert_append (mongoc_write_command_t *command, const bson_t *document);
void
_mongoc_write_command_update_append (mongoc_write_command_t *command,
const bson_t *selector,
const bson_t *update,
const bson_t *opts);
void
_mongoc_write_command_delete_append (mongoc_write_command_t *command, const bson_t *selector, const bson_t *opts);
void
_mongoc_write_command_execute (mongoc_write_command_t *command,
mongoc_client_t *client,
mongoc_server_stream_t *server_stream,
const char *database,
const char *collection,
const mongoc_write_concern_t *write_concern,
uint32_t offset,
mongoc_client_session_t *cs,
mongoc_write_result_t *result);
void
_mongoc_write_command_execute_idl (mongoc_write_command_t *command,
mongoc_client_t *client,
mongoc_server_stream_t *server_stream,
const char *database,
const char *collection,
uint32_t offset,
const struct _mongoc_crud_opts_t *crud,
mongoc_write_result_t *result);
const char *
_mongoc_write_command_get_name (const mongoc_write_command_t *command);
void
_mongoc_write_result_init (mongoc_write_result_t *result);
#define MONGOC_WRITE_RESULT_COMPLETE(_result, ...) _mongoc_write_result_complete (_result, __VA_ARGS__, NULL)
bool
_mongoc_write_result_complete (mongoc_write_result_t *result,
int32_t error_api_version,
const mongoc_write_concern_t *wc,
mongoc_error_domain_t err_domain_override,
bson_t *reply,
bson_error_t *error,
...);
void
_mongoc_write_result_destroy (mongoc_write_result_t *result);
mongoc_write_err_type_t
_mongoc_write_error_get_type (bson_t *reply);
bool
_mongoc_write_error_update_if_unsupported_storage_engine (bool cmd_ret, bson_error_t *cmd_err, bson_t *reply);
BSON_END_DECLS
#endif /* MONGOC_WRITE_COMMAND_PRIVATE_H */
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-write-command.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-write-command.c
similarity index 99%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-write-command.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-write-command.c
index a375d8f2..36f2470a 100644
--- a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-write-command.c
+++ b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-write-command.c
@@ -1,1248 +1,1248 @@
/*
* Copyright 2009-present MongoDB, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <bson/bson.h>
#include <mongoc/mongoc-client-private.h>
#include <mongoc/mongoc-client-session-private.h>
#include <mongoc/mongoc-client-side-encryption-private.h>
#include <mongoc/mongoc-error.h>
#include <mongoc/mongoc-error-private.h>
#include <mongoc/mongoc-trace-private.h>
#include <mongoc/mongoc-write-command-private.h>
#include <mongoc/mongoc-write-concern-private.h>
#include <mongoc/mongoc-util-private.h>
#include <mongoc/mongoc-opts-private.h>
#include <common-string-private.h>
#include <common-cmp-private.h>
#include <inttypes.h>
/* indexed by MONGOC_WRITE_COMMAND_DELETE, INSERT, UPDATE */
static const char *gCommandNames[] = {"delete", "insert", "update"};
static const char *gCommandFields[] = {"deletes", "documents", "updates"};
static const uint32_t gCommandFieldLens[] = {7, 9, 7};
void
_mongoc_write_command_insert_append (mongoc_write_command_t *command, const bson_t *document)
{
bson_iter_t iter;
bson_oid_t oid;
bson_t tmp;
ENTRY;
BSON_ASSERT (command);
BSON_ASSERT (command->type == MONGOC_WRITE_COMMAND_INSERT);
BSON_ASSERT (document);
BSON_ASSERT (document->len >= 5);
/*
* If the document does not contain an "_id" field, we need to generate
* a new oid for "_id".
*/
if (!bson_iter_init_find (&iter, document, "_id")) {
bson_init (&tmp);
bson_oid_init (&oid, NULL);
BSON_APPEND_OID (&tmp, "_id", &oid);
bson_concat (&tmp, document);
_mongoc_buffer_append (&command->payload, bson_get_data (&tmp), tmp.len);
bson_destroy (&tmp);
} else {
_mongoc_buffer_append (&command->payload, bson_get_data (document), document->len);
}
command->n_documents++;
EXIT;
}
void
_mongoc_write_command_update_append (mongoc_write_command_t *command,
const bson_t *selector,
const bson_t *update,
const bson_t *opts)
{
bson_t document;
ENTRY;
BSON_ASSERT (command);
BSON_ASSERT (command->type == MONGOC_WRITE_COMMAND_UPDATE);
BSON_ASSERT (selector && update);
bson_init (&document);
BSON_APPEND_DOCUMENT (&document, "q", selector);
if (_mongoc_document_is_pipeline (update)) {
BSON_APPEND_ARRAY (&document, "u", update);
} else {
BSON_APPEND_DOCUMENT (&document, "u", update);
}
if (opts) {
bson_concat (&document, opts);
}
_mongoc_buffer_append (&command->payload, bson_get_data (&document), document.len);
command->n_documents++;
bson_destroy (&document);
EXIT;
}
void
_mongoc_write_command_delete_append (mongoc_write_command_t *command, const bson_t *selector, const bson_t *opts)
{
bson_t document;
ENTRY;
BSON_ASSERT (command);
BSON_ASSERT (command->type == MONGOC_WRITE_COMMAND_DELETE);
BSON_ASSERT (selector);
BSON_ASSERT (selector->len >= 5);
bson_init (&document);
BSON_APPEND_DOCUMENT (&document, "q", selector);
if (opts) {
bson_concat (&document, opts);
}
_mongoc_buffer_append (&command->payload, bson_get_data (&document), document.len);
command->n_documents++;
bson_destroy (&document);
EXIT;
}
static void
_mongoc_write_command_init_bulk (
mongoc_write_command_t *command, int type, mongoc_bulk_write_flags_t flags, int64_t operation_id, const bson_t *opts)
{
ENTRY;
BSON_ASSERT (command);
command->type = type;
command->flags = flags;
command->operation_id = operation_id;
if (!bson_empty0 (opts)) {
- bson_copy_to (opts, &command->cmd_opts);
+ command->cmd_opts = bson_copy (opts);
} else {
- bson_init (&command->cmd_opts);
+ command->cmd_opts = bson_new ();
}
_mongoc_buffer_init (&command->payload, NULL, 0, NULL, NULL);
command->n_documents = 0;
EXIT;
}
void
_mongoc_write_command_init_insert (mongoc_write_command_t *command, /* IN */
const bson_t *document, /* IN */
const bson_t *cmd_opts, /* IN */
mongoc_bulk_write_flags_t flags, /* IN */
int64_t operation_id) /* IN */
{
ENTRY;
BSON_ASSERT (command);
_mongoc_write_command_init_bulk (command, MONGOC_WRITE_COMMAND_INSERT, flags, operation_id, cmd_opts);
/* must handle NULL document from mongoc_collection_insert_bulk */
if (document) {
_mongoc_write_command_insert_append (command, document);
}
EXIT;
}
// `_mongoc_write_command_init_insert_one_idl` returns the inserted ID in `inserted_id`.
// Only called by mongoc_collection_insert_one.
void
_mongoc_write_command_init_insert_one_idl (mongoc_write_command_t *command,
const bson_t *document,
const bson_t *cmd_opts,
bson_t *insert_id,
int64_t operation_id)
{
mongoc_bulk_write_flags_t flags = MONGOC_BULK_WRITE_FLAGS_INIT;
ENTRY;
BSON_ASSERT_PARAM (command);
BSON_ASSERT_PARAM (document);
BSON_ASSERT_PARAM (cmd_opts);
BSON_ASSERT_PARAM (insert_id);
_mongoc_write_command_init_bulk (command, MONGOC_WRITE_COMMAND_INSERT, flags, operation_id, cmd_opts);
/* near identical to _mongoc_write_command_insert_append but additionally records the inserted id */
/* no need to handle NULL document from mongoc_collection_insert_bulk since only called by insert_one */
BSON_ASSERT (command->type == MONGOC_WRITE_COMMAND_INSERT);
BSON_ASSERT (document->len >= 5);
bson_iter_t iter;
bson_oid_t oid;
bson_t tmp;
/*
* If the document does not contain an "_id" field, we need to generate
* a new oid for "_id".
*/
if (!bson_iter_init_find (&iter, document, "_id")) {
bson_init (&tmp);
bson_oid_init (&oid, NULL);
BSON_APPEND_OID (&tmp, "_id", &oid);
bson_concat (&tmp, document);
_mongoc_buffer_append (&command->payload, bson_get_data (&tmp), tmp.len);
BSON_APPEND_OID (insert_id, "insertedId", &oid);
bson_destroy (&tmp);
} else {
_mongoc_buffer_append (&command->payload, bson_get_data (document), document->len);
BSON_APPEND_VALUE (insert_id, "insertedId", bson_iter_value (&iter));
}
command->n_documents++;
EXIT;
}
void
_mongoc_write_command_init_insert_idl (mongoc_write_command_t *command,
const bson_t *document,
const bson_t *cmd_opts,
int64_t operation_id)
{
mongoc_bulk_write_flags_t flags = MONGOC_BULK_WRITE_FLAGS_INIT;
ENTRY;
BSON_ASSERT (command);
_mongoc_write_command_init_bulk (command, MONGOC_WRITE_COMMAND_INSERT, flags, operation_id, cmd_opts);
/* must handle NULL document from mongoc_collection_insert_bulk */
if (document) {
_mongoc_write_command_insert_append (command, document);
}
EXIT;
}
void
_mongoc_write_command_init_delete (mongoc_write_command_t *command, /* IN */
const bson_t *selector, /* IN */
const bson_t *cmd_opts, /* IN */
const bson_t *opts, /* IN */
mongoc_bulk_write_flags_t flags, /* IN */
int64_t operation_id) /* IN */
{
ENTRY;
BSON_ASSERT (command);
BSON_ASSERT (selector);
_mongoc_write_command_init_bulk (command, MONGOC_WRITE_COMMAND_DELETE, flags, operation_id, cmd_opts);
_mongoc_write_command_delete_append (command, selector, opts);
EXIT;
}
void
_mongoc_write_command_init_delete_idl (mongoc_write_command_t *command,
const bson_t *selector,
const bson_t *cmd_opts,
const bson_t *opts,
int64_t operation_id)
{
mongoc_bulk_write_flags_t flags = MONGOC_BULK_WRITE_FLAGS_INIT;
ENTRY;
BSON_ASSERT (command);
BSON_ASSERT (selector);
_mongoc_write_command_init_bulk (command, MONGOC_WRITE_COMMAND_DELETE, flags, operation_id, cmd_opts);
_mongoc_write_command_delete_append (command, selector, opts);
EXIT;
}
void
_mongoc_write_command_init_update (mongoc_write_command_t *command, /* IN */
const bson_t *selector, /* IN */
const bson_t *update, /* IN */
const bson_t *cmd_opts, /* IN */
const bson_t *opts, /* IN */
mongoc_bulk_write_flags_t flags, /* IN */
int64_t operation_id) /* IN */
{
ENTRY;
BSON_ASSERT (command);
BSON_ASSERT (selector);
BSON_ASSERT (update);
_mongoc_write_command_init_bulk (command, MONGOC_WRITE_COMMAND_UPDATE, flags, operation_id, cmd_opts);
_mongoc_write_command_update_append (command, selector, update, opts);
EXIT;
}
void
_mongoc_write_command_init_update_idl (mongoc_write_command_t *command,
const bson_t *selector,
const bson_t *update,
const bson_t *cmd_opts,
const bson_t *opts,
int64_t operation_id)
{
mongoc_bulk_write_flags_t flags = MONGOC_BULK_WRITE_FLAGS_INIT;
ENTRY;
BSON_ASSERT (command);
_mongoc_write_command_init_bulk (command, MONGOC_WRITE_COMMAND_UPDATE, flags, operation_id, cmd_opts);
_mongoc_write_command_update_append (command, selector, update, opts);
EXIT;
}
const char *
_mongoc_write_command_get_name (const mongoc_write_command_t *command)
{
BSON_ASSERT_PARAM (command);
BSON_ASSERT (command->type >= 0 && command->type < (int) (sizeof gCommandNames / sizeof gCommandNames[0]));
return gCommandNames[command->type];
}
/* takes initialized bson_t *doc and begins formatting a write command */
void
_mongoc_write_command_init (bson_t *doc, mongoc_write_command_t *command, const char *collection)
{
ENTRY;
if (!command->n_documents) {
EXIT;
}
BSON_APPEND_UTF8 (doc, _mongoc_write_command_get_name (command), collection);
BSON_APPEND_BOOL (doc, "ordered", command->flags.ordered);
if (command->flags.bypass_document_validation) {
BSON_APPEND_BOOL (doc, "bypassDocumentValidation", command->flags.bypass_document_validation);
}
EXIT;
}
/*
*-------------------------------------------------------------------------
*
* _mongoc_write_command_too_large_error --
*
* Fill a bson_error_t and optional bson_t with error info after
* receiving a document for bulk insert, update, or remove that is
* larger than max_bson_size.
*
* "err_doc" should be NULL or an empty initialized bson_t.
*
* Returns:
* None.
*
* Side effects:
* "error" and optionally "err_doc" are filled out.
*
*-------------------------------------------------------------------------
*/
static void
_mongoc_write_command_too_large_error (bson_error_t *error, int32_t idx, int32_t len, int32_t max_bson_size)
{
bson_set_error (error,
MONGOC_ERROR_BSON,
MONGOC_ERROR_BSON_INVALID,
"Document %" PRId32 " is too large for the cluster. "
"Document is %" PRId32 " bytes, max is %" PRId32 ".",
idx,
len,
max_bson_size);
}
static void
_empty_error (mongoc_write_command_t *command, bson_error_t *error)
{
static const uint32_t codes[] = {MONGOC_ERROR_COLLECTION_DELETE_FAILED,
MONGOC_ERROR_COLLECTION_INSERT_FAILED,
MONGOC_ERROR_COLLECTION_UPDATE_FAILED};
bson_set_error (error,
MONGOC_ERROR_COLLECTION,
codes[command->type],
"Cannot do an empty %s",
_mongoc_write_command_get_name (command));
}
static int32_t
_mongoc_write_result_merge_arrays (uint32_t offset,
mongoc_write_result_t *result, /* IN */
bson_t *dest, /* IN */
bson_iter_t *iter) /* IN */
{
const bson_value_t *value;
bson_iter_t ar;
bson_iter_t citer;
int32_t idx;
int32_t count = 0;
int32_t aridx;
bson_t child;
const char *keyptr = NULL;
char key[12];
int len;
ENTRY;
BSON_ASSERT (result);
BSON_ASSERT (dest);
BSON_ASSERT (iter);
BSON_ASSERT (BSON_ITER_HOLDS_ARRAY (iter));
aridx = bson_count_keys (dest);
if (bson_iter_recurse (iter, &ar)) {
while (bson_iter_next (&ar)) {
if (BSON_ITER_HOLDS_DOCUMENT (&ar) && bson_iter_recurse (&ar, &citer)) {
len = (int) bson_uint32_to_string (aridx++, &keyptr, key, sizeof key);
bson_append_document_begin (dest, keyptr, len, &child);
while (bson_iter_next (&citer)) {
if (BSON_ITER_IS_KEY (&citer, "index")) {
idx = bson_iter_int32 (&citer) + offset;
BSON_APPEND_INT32 (&child, "index", idx);
} else {
value = bson_iter_value (&citer);
BSON_APPEND_VALUE (&child, bson_iter_key (&citer), value);
}
}
bson_append_document_end (dest, &child);
count++;
}
}
}
RETURN (count);
}
static void
_mongoc_write_result_append_upsert (mongoc_write_result_t *result, int32_t idx, const bson_value_t *value)
{
bson_t child;
const char *keyptr = NULL;
char key[12];
int len;
BSON_ASSERT (result);
BSON_ASSERT (value);
len = (int) bson_uint32_to_string (result->upsert_append_count, &keyptr, key, sizeof key);
bson_append_document_begin (&result->upserted, keyptr, len, &child);
BSON_APPEND_INT32 (&child, "index", idx);
BSON_APPEND_VALUE (&child, "_id", value);
bson_append_document_end (&result->upserted, &child);
result->upsert_append_count++;
}
static void
_mongoc_write_result_merge (mongoc_write_result_t *result, /* IN */
mongoc_write_command_t *command, /* IN */
const bson_t *reply, /* IN */
uint32_t offset)
{
int32_t server_index = 0;
const bson_value_t *value;
bson_iter_t iter;
bson_iter_t citer;
bson_iter_t ar;
int32_t n_upserted = 0;
int32_t affected = 0;
ENTRY;
BSON_ASSERT (result);
BSON_ASSERT (reply);
if (bson_iter_init_find (&iter, reply, "n") && BSON_ITER_HOLDS_INT32 (&iter)) {
affected = bson_iter_int32 (&iter);
}
if (bson_iter_init_find (&iter, reply, "writeErrors") && BSON_ITER_HOLDS_ARRAY (&iter) &&
bson_iter_recurse (&iter, &citer) && bson_iter_next (&citer)) {
result->failed = true;
}
switch (command->type) {
case MONGOC_WRITE_COMMAND_INSERT:
result->nInserted += affected;
break;
case MONGOC_WRITE_COMMAND_DELETE:
result->nRemoved += affected;
break;
case MONGOC_WRITE_COMMAND_UPDATE:
/* server returns each upserted _id with its index into this batch
* look for "upserted": [{"index": 4, "_id": ObjectId()}, ...] */
if (bson_iter_init_find (&iter, reply, "upserted")) {
if (BSON_ITER_HOLDS_ARRAY (&iter) && (bson_iter_recurse (&iter, &ar))) {
while (bson_iter_next (&ar)) {
if (BSON_ITER_HOLDS_DOCUMENT (&ar) && bson_iter_recurse (&ar, &citer) &&
bson_iter_find (&citer, "index") && BSON_ITER_HOLDS_INT32 (&citer)) {
server_index = bson_iter_int32 (&citer);
if (bson_iter_recurse (&ar, &citer) && bson_iter_find (&citer, "_id")) {
value = bson_iter_value (&citer);
_mongoc_write_result_append_upsert (result, offset + server_index, value);
n_upserted++;
}
}
}
}
result->nUpserted += n_upserted;
/*
* XXX: The following addition to nMatched needs some checking.
* I'm highly skeptical of it.
*/
result->nMatched += BSON_MAX (0, (affected - n_upserted));
} else {
result->nMatched += affected;
}
if (bson_iter_init_find (&iter, reply, "nModified") && BSON_ITER_HOLDS_INT32 (&iter)) {
result->nModified += bson_iter_int32 (&iter);
}
break;
default:
BSON_ASSERT (false);
break;
}
if (bson_iter_init_find (&iter, reply, "writeErrors") && BSON_ITER_HOLDS_ARRAY (&iter)) {
_mongoc_write_result_merge_arrays (offset, result, &result->writeErrors, &iter);
}
if (bson_iter_init_find (&iter, reply, "writeConcernError") && BSON_ITER_HOLDS_DOCUMENT (&iter)) {
uint32_t len;
const uint8_t *data;
bson_t write_concern_error;
char str[16];
const char *key;
/* writeConcernError is a subdocument in the server response
* append it to the result->writeConcernErrors array */
bson_iter_document (&iter, &len, &data);
BSON_ASSERT (bson_init_static (&write_concern_error, data, len));
bson_uint32_to_string (result->n_writeConcernErrors, &key, str, sizeof str);
if (!bson_append_document (&result->writeConcernErrors, key, -1, &write_concern_error)) {
MONGOC_ERROR ("Error adding \"%s\" to writeConcernErrors.\n", key);
}
result->n_writeConcernErrors++;
}
/* If a server error ocurred, then append the raw response to the
* error_replies array. */
if (!_mongoc_cmd_check_ok (reply, MONGOC_ERROR_API_VERSION_2, NULL /* error */)) {
char str[16];
const char *key;
bson_uint32_to_string (result->n_errorReplies, &key, str, sizeof str);
if (!bson_append_document (&result->rawErrorReplies, key, -1, reply)) {
MONGOC_ERROR ("Error adding \"%s\" to errorReplies.\n", key);
}
result->n_errorReplies++;
}
/* inefficient if there are ever large numbers: for each label in each err,
* we linear-search result->errorLabels to see if it's included yet */
_mongoc_bson_array_copy_labels_to (reply, &result->errorLabels);
EXIT;
}
static void
_mongoc_write_opmsg (mongoc_write_command_t *command,
mongoc_client_t *client,
mongoc_server_stream_t *server_stream,
const char *database,
const char *collection,
const mongoc_write_concern_t *write_concern,
uint32_t index_offset,
mongoc_client_session_t *cs,
mongoc_write_result_t *result,
bson_error_t *error)
{
mongoc_cmd_parts_t parts;
bson_iter_t iter;
bson_t cmd;
bson_t reply;
bool ret = false;
int32_t max_msg_size;
int32_t max_bson_obj_size;
int32_t max_document_count;
uint32_t payload_batch_size = 0;
uint32_t payload_total_offset = 0;
bool ship_it = false;
int document_count = 0;
mongoc_server_stream_t *retry_server_stream = NULL;
ENTRY;
BSON_ASSERT (command);
BSON_ASSERT_PARAM (client);
BSON_ASSERT (database);
BSON_ASSERT (server_stream);
BSON_ASSERT (collection);
max_bson_obj_size = mongoc_server_stream_max_bson_obj_size (server_stream);
max_msg_size = mongoc_server_stream_max_msg_size (server_stream);
if (_mongoc_cse_is_enabled (client)) {
max_msg_size = MONGOC_REDUCED_MAX_MSG_SIZE_FOR_FLE;
}
max_document_count = mongoc_server_stream_max_write_batch_size (server_stream);
bson_init (&cmd);
_mongoc_write_command_init (&cmd, command, collection);
mongoc_cmd_parts_init (&parts, client, database, MONGOC_QUERY_NONE, &cmd);
parts.assembled.operation_id = command->operation_id;
parts.is_write_command = true;
if (!mongoc_cmd_parts_set_write_concern (&parts, write_concern, error)) {
bson_destroy (&cmd);
mongoc_cmd_parts_cleanup (&parts);
EXIT;
}
if (parts.assembled.is_acknowledged) {
mongoc_cmd_parts_set_session (&parts, cs);
}
/* Write commands that include multi-document operations are not retryable.
* Set this explicitly so that mongoc_cmd_parts_assemble does not need to
* inspect the command body later. */
parts.allow_txn_number = (command->flags.has_multi_write || !parts.assembled.is_acknowledged)
? MONGOC_CMD_PARTS_ALLOW_TXN_NUMBER_NO
: MONGOC_CMD_PARTS_ALLOW_TXN_NUMBER_YES;
- BSON_ASSERT (bson_iter_init (&iter, &command->cmd_opts));
+ BSON_ASSERT (bson_iter_init (&iter, command->cmd_opts));
if (!mongoc_cmd_parts_append_opts (&parts, &iter, error)) {
bson_destroy (&cmd);
mongoc_cmd_parts_cleanup (&parts);
EXIT;
}
if (!mongoc_cmd_parts_assemble (&parts, server_stream, error)) {
bson_destroy (&cmd);
mongoc_cmd_parts_cleanup (&parts);
EXIT;
}
// Calculate overhead of OP_MSG data. See OP_MSG spec for description of fields.
uint32_t opmsg_overhead = 0;
{
opmsg_overhead += 16; // OP_MSG.MsgHeader
opmsg_overhead += 4; // OP_MSG.flagBits
opmsg_overhead += 1; // OP_MSG.Section[0].payloadType (0)
opmsg_overhead += parts.assembled.command->len; // OP_MSG.Section[0].payload.document
opmsg_overhead += 1; // OP_MSG.Section[1].payloadType (1)
opmsg_overhead += 4; // OP_MSG.Section[1].payload.size
opmsg_overhead += gCommandFieldLens[command->type] + 1; // OP_MSG.Section[1].payload.identifier
// OP_MSG.Section[1].payload.documents is omitted. Calculated below with remaining size.
}
do {
uint32_t ulen;
memcpy (&ulen, command->payload.data + payload_batch_size + payload_total_offset, 4);
ulen = BSON_UINT32_FROM_LE (ulen);
// Although messageLength is an int32, it should never be negative.
BSON_ASSERT (mcommon_in_range_unsigned (int32_t, ulen));
const int32_t slen = (int32_t) ulen;
if (slen > max_bson_obj_size + BSON_OBJECT_ALLOWANCE) {
/* Quit if the document is too large */
_mongoc_write_command_too_large_error (error, index_offset, slen, max_bson_obj_size);
result->failed = true;
break;
} else if (mcommon_cmp_less_equal_us (payload_batch_size + opmsg_overhead + ulen, max_msg_size) ||
document_count == 0) {
/* The current batch is still under max batch size in bytes */
payload_batch_size += ulen;
/* If this document filled the maximum document count */
if (++document_count == max_document_count) {
ship_it = true;
/* If this document is the last document we have */
} else if (payload_batch_size + payload_total_offset == command->payload.len) {
ship_it = true;
} else {
ship_it = false;
}
} else {
ship_it = true;
}
if (ship_it) {
parts.assembled.payloads_count = 1;
mongoc_cmd_payload_t *const payload = &parts.assembled.payloads[0];
/* Seek past the document offset we have already sent */
payload->documents = command->payload.data + payload_total_offset;
/* Only send the documents up to this size */
payload->size = payload_batch_size;
payload->identifier = gCommandFields[command->type];
mongoc_server_stream_t *new_retry_server_stream = NULL;
ret = mongoc_cluster_run_retryable_write (
&client->cluster, &parts.assembled, parts.is_retryable_write, &new_retry_server_stream, &reply, error);
if (new_retry_server_stream) {
mongoc_server_stream_cleanup (retry_server_stream);
retry_server_stream = new_retry_server_stream;
}
/* Add this batch size so we skip these documents next time */
payload_total_offset += payload_batch_size;
payload_batch_size = 0;
if (!ret) {
result->failed = true;
/* Stop for ordered bulk writes or when the server stream has been
* properly invalidated (e.g., due to a network error). */
if (command->flags.ordered || !mongoc_cluster_stream_valid (&client->cluster, server_stream)) {
result->must_stop = true;
}
}
/* Result merge needs to know the absolute index for a document
* so it can rewrite the error message which contains the relative
* document index per batch
*/
_mongoc_write_result_merge (result, command, &reply, index_offset);
index_offset += document_count;
document_count = 0;
bson_destroy (&reply);
}
/* While we have more documents to write */
} while (payload_total_offset < command->payload.len && !result->must_stop);
bson_destroy (&cmd);
mongoc_cmd_parts_cleanup (&parts);
if (retry_server_stream) {
if (ret) {
/* if a retry succeeded, report that in the result so bulk write can
* use the newly selected server. */
result->retry_server_id = mongoc_server_description_id (retry_server_stream->sd);
}
mongoc_server_stream_cleanup (retry_server_stream);
}
if (ret) {
/* if a retry succeeded, clear the initial error */
memset (&result->error, 0, sizeof (bson_error_t));
}
EXIT;
}
void
_mongoc_write_command_execute (mongoc_write_command_t *command, /* IN */
mongoc_client_t *client, /* IN */
mongoc_server_stream_t *server_stream, /* IN */
const char *database, /* IN */
const char *collection, /* IN */
const mongoc_write_concern_t *write_concern, /* IN */
uint32_t offset, /* IN */
mongoc_client_session_t *cs, /* IN */
mongoc_write_result_t *result) /* OUT */
{
mongoc_crud_opts_t crud = {0};
ENTRY;
BSON_ASSERT (command);
BSON_ASSERT_PARAM (client);
BSON_ASSERT (server_stream);
BSON_ASSERT (database);
BSON_ASSERT (collection);
BSON_ASSERT (result);
if (!write_concern) {
write_concern = client->write_concern;
}
if (!mongoc_write_concern_is_valid (write_concern)) {
bson_set_error (
&result->error, MONGOC_ERROR_COMMAND, MONGOC_ERROR_COMMAND_INVALID_ARG, "The write concern is invalid.");
result->failed = true;
EXIT;
}
crud.client_session = cs;
crud.writeConcern = (mongoc_write_concern_t *) write_concern;
_mongoc_write_command_execute_idl (command, client, server_stream, database, collection, offset, &crud, result);
EXIT;
}
void
_mongoc_write_command_execute_idl (mongoc_write_command_t *command,
mongoc_client_t *client,
mongoc_server_stream_t *server_stream,
const char *database,
const char *collection,
uint32_t offset,
const mongoc_crud_opts_t *crud,
mongoc_write_result_t *result)
{
ENTRY;
BSON_ASSERT (command);
BSON_ASSERT_PARAM (client);
BSON_ASSERT (server_stream);
BSON_ASSERT (database);
BSON_ASSERT (collection);
BSON_ASSERT (result);
if (command->flags.has_collation) {
if (!mongoc_write_concern_is_acknowledged (crud->writeConcern)) {
result->failed = true;
bson_set_error (&result->error,
MONGOC_ERROR_COMMAND,
MONGOC_ERROR_COMMAND_INVALID_ARG,
"Cannot set collation for unacknowledged writes");
EXIT;
}
}
if (command->flags.has_array_filters) {
if (!mongoc_write_concern_is_acknowledged (crud->writeConcern)) {
result->failed = true;
bson_set_error (&result->error,
MONGOC_ERROR_COMMAND,
MONGOC_ERROR_COMMAND_INVALID_ARG,
"Cannot use array filters with unacknowledged writes");
EXIT;
}
}
if (command->flags.has_update_hint) {
if (server_stream->sd->max_wire_version < WIRE_VERSION_UPDATE_HINT &&
!mongoc_write_concern_is_acknowledged (crud->writeConcern)) {
bson_set_error (&result->error,
MONGOC_ERROR_COMMAND,
MONGOC_ERROR_PROTOCOL_BAD_WIRE_VERSION,
"The selected server does not support hint for update");
result->failed = true;
EXIT;
}
}
if (command->flags.has_delete_hint) {
if (server_stream->sd->max_wire_version < WIRE_VERSION_DELETE_HINT &&
!mongoc_write_concern_is_acknowledged (crud->writeConcern)) {
bson_set_error (&result->error,
MONGOC_ERROR_COMMAND,
MONGOC_ERROR_PROTOCOL_BAD_WIRE_VERSION,
"The selected server does not support hint for delete");
result->failed = true;
EXIT;
}
}
if (command->flags.bypass_document_validation) {
if (!mongoc_write_concern_is_acknowledged (crud->writeConcern)) {
result->failed = true;
bson_set_error (&result->error,
MONGOC_ERROR_COMMAND,
MONGOC_ERROR_COMMAND_INVALID_ARG,
"Cannot set bypassDocumentValidation for unacknowledged writes");
EXIT;
}
}
if (crud->client_session && !mongoc_write_concern_is_acknowledged (crud->writeConcern)) {
result->failed = true;
bson_set_error (&result->error,
MONGOC_ERROR_COMMAND,
MONGOC_ERROR_COMMAND_INVALID_ARG,
"Cannot use client session with unacknowledged writes");
EXIT;
}
if (command->payload.len == 0) {
_empty_error (command, &result->error);
EXIT;
}
_mongoc_write_opmsg (command,
client,
server_stream,
database,
collection,
crud->writeConcern,
offset,
crud->client_session,
result,
&result->error);
EXIT;
}
void
_mongoc_write_command_destroy (mongoc_write_command_t *command)
{
ENTRY;
if (command) {
- bson_destroy (&command->cmd_opts);
+ bson_destroy (command->cmd_opts);
_mongoc_buffer_destroy (&command->payload);
}
EXIT;
}
void
_mongoc_write_result_init (mongoc_write_result_t *result) /* IN */
{
ENTRY;
BSON_ASSERT (result);
memset (result, 0, sizeof *result);
bson_init (&result->upserted);
bson_init (&result->writeConcernErrors);
bson_init (&result->writeErrors);
bson_init (&result->errorLabels);
bson_init (&result->rawErrorReplies);
EXIT;
}
void
_mongoc_write_result_destroy (mongoc_write_result_t *result)
{
ENTRY;
BSON_ASSERT (result);
bson_destroy (&result->upserted);
bson_destroy (&result->writeConcernErrors);
bson_destroy (&result->writeErrors);
bson_destroy (&result->errorLabels);
bson_destroy (&result->rawErrorReplies);
EXIT;
}
/*
* If error is not set, set code from first document in array like
* [{"code": 64, "errmsg": "duplicate"}, ...]. Format the error message
* from all errors in array.
*/
static void
_set_error_from_response (bson_t *bson_array,
mongoc_error_domain_t domain,
const char *error_type,
bson_error_t *error /* OUT */)
{
bson_iter_t array_iter;
bson_iter_t doc_iter;
const char *errmsg = NULL;
int32_t code = 0;
uint32_t n_keys, i;
mcommon_string_append_t compound_err;
mcommon_string_new_as_fixed_capacity_append (&compound_err, sizeof error->message - 1u);
n_keys = bson_count_keys (bson_array);
if (n_keys > 1) {
mcommon_string_append_printf (&compound_err, "Multiple %s errors: ", error_type);
}
if (!bson_empty0 (bson_array) && bson_iter_init (&array_iter, bson_array)) {
/* get first code and all error messages */
i = 0;
while (bson_iter_next (&array_iter)) {
if (BSON_ITER_HOLDS_DOCUMENT (&array_iter) && bson_iter_recurse (&array_iter, &doc_iter)) {
/* parse doc, which is like {"code": 64, "errmsg": "duplicate"} */
while (bson_iter_next (&doc_iter)) {
/* use the first error code we find */
if (BSON_ITER_IS_KEY (&doc_iter, "code") && code == 0) {
code = (uint32_t) bson_iter_as_int64 (&doc_iter);
} else if (BSON_ITER_IS_KEY (&doc_iter, "errmsg")) {
errmsg = bson_iter_utf8 (&doc_iter, NULL);
/* build message like 'Multiple write errors: "foo", "bar"' */
if (n_keys > 1) {
mcommon_string_append_printf (&compound_err, "\"%s\"", errmsg);
if (i < n_keys - 1) {
mcommon_string_append (&compound_err, ", ");
}
} else {
/* single error message */
mcommon_string_append (&compound_err, errmsg);
}
}
}
i++;
}
}
if (code && !mcommon_string_from_append_is_empty (&compound_err)) {
bson_set_error (error, domain, (uint32_t) code, "%s", mcommon_str_from_append (&compound_err));
}
}
mcommon_string_from_append_destroy (&compound_err);
}
/* complete a write result, including only certain fields */
bool
_mongoc_write_result_complete (mongoc_write_result_t *result, /* IN */
int32_t error_api_version, /* IN */
const mongoc_write_concern_t *wc, /* IN */
mongoc_error_domain_t err_domain_override, /* IN */
bson_t *bson, /* OUT */
bson_error_t *error, /* OUT */
...)
{
mongoc_error_domain_t domain;
va_list args;
const char *field;
int n_args;
bson_iter_t iter;
bson_iter_t child;
ENTRY;
BSON_ASSERT (result);
if (error_api_version >= MONGOC_ERROR_API_VERSION_2) {
domain = MONGOC_ERROR_SERVER;
} else if (err_domain_override) {
domain = err_domain_override;
} else if (result->error.domain) {
domain = (mongoc_error_domain_t) result->error.domain;
} else {
domain = MONGOC_ERROR_COLLECTION;
}
/* produce either old fields like nModified from the deprecated Bulk API Spec
* or new fields like modifiedCount from the CRUD Spec, which we partly obey
*/
if (bson && mongoc_write_concern_is_acknowledged (wc)) {
n_args = 0;
va_start (args, error);
while ((field = va_arg (args, const char *))) {
n_args++;
if (!strcmp (field, "nInserted")) {
BSON_APPEND_INT32 (bson, field, result->nInserted);
} else if (!strcmp (field, "insertedCount")) {
BSON_APPEND_INT32 (bson, field, result->nInserted);
} else if (!strcmp (field, "nMatched")) {
BSON_APPEND_INT32 (bson, field, result->nMatched);
} else if (!strcmp (field, "matchedCount")) {
BSON_APPEND_INT32 (bson, field, result->nMatched);
} else if (!strcmp (field, "nModified")) {
BSON_APPEND_INT32 (bson, field, result->nModified);
} else if (!strcmp (field, "modifiedCount")) {
BSON_APPEND_INT32 (bson, field, result->nModified);
} else if (!strcmp (field, "nRemoved")) {
BSON_APPEND_INT32 (bson, field, result->nRemoved);
} else if (!strcmp (field, "deletedCount")) {
BSON_APPEND_INT32 (bson, field, result->nRemoved);
} else if (!strcmp (field, "nUpserted")) {
BSON_APPEND_INT32 (bson, field, result->nUpserted);
} else if (!strcmp (field, "upsertedCount")) {
BSON_APPEND_INT32 (bson, field, result->nUpserted);
} else if (!strcmp (field, "upserted") && !bson_empty0 (&result->upserted)) {
BSON_APPEND_ARRAY (bson, field, &result->upserted);
} else if (!strcmp (field, "upsertedId") && !bson_empty0 (&result->upserted) &&
bson_iter_init_find (&iter, &result->upserted, "0") && bson_iter_recurse (&iter, &child) &&
bson_iter_find (&child, "_id")) {
/* "upsertedId", singular, for update_one() */
BSON_APPEND_VALUE (bson, "upsertedId", bson_iter_value (&child));
}
}
va_end (args);
/* default: a standard result includes all Bulk API fields */
if (!n_args) {
BSON_APPEND_INT32 (bson, "nInserted", result->nInserted);
BSON_APPEND_INT32 (bson, "nMatched", result->nMatched);
BSON_APPEND_INT32 (bson, "nModified", result->nModified);
BSON_APPEND_INT32 (bson, "nRemoved", result->nRemoved);
BSON_APPEND_INT32 (bson, "nUpserted", result->nUpserted);
if (!bson_empty0 (&result->upserted)) {
BSON_APPEND_ARRAY (bson, "upserted", &result->upserted);
}
}
/* always append errors if there are any */
if (!n_args || !bson_empty (&result->writeErrors)) {
BSON_APPEND_ARRAY (bson, "writeErrors", &result->writeErrors);
}
if (result->n_writeConcernErrors) {
BSON_APPEND_ARRAY (bson, "writeConcernErrors", &result->writeConcernErrors);
}
}
/* If there is a raw error response then we know a server error has occurred.
* We should add the raw result to the reply. */
if (bson && !bson_empty (&result->rawErrorReplies)) {
BSON_APPEND_ARRAY (bson, "errorReplies", &result->rawErrorReplies);
}
/* set bson_error_t from first write error or write concern error */
_set_error_from_response (&result->writeErrors, domain, "write", &result->error);
if (!result->error.code) {
_set_error_from_response (
&result->writeConcernErrors, MONGOC_ERROR_WRITE_CONCERN, "write concern", &result->error);
}
if (bson && !bson_empty (&result->errorLabels)) {
BSON_APPEND_ARRAY (bson, "errorLabels", &result->errorLabels);
}
if (error) {
memcpy (error, &result->error, sizeof *error);
}
RETURN (!result->failed && result->error.code == 0);
}
/*--------------------------------------------------------------------------
*
* _mongoc_write_error_get_type --
*
* Checks if the error or reply from a write command is considered
* retryable according to the retryable writes spec. Checks both
* for a client error (a network exception) and a server error in
* the reply. @cmd_ret and @cmd_err come from the result of a
* write_command function. This function should be called after
* error labels are appended in _mongoc_write_error_handle_labels,
* which should be called after mongoc_cluster_run_command_monitored.
*
*
* Return:
* A mongoc_write_error_type_t indicating the type of error (if any).
*
*--------------------------------------------------------------------------
*/
mongoc_write_err_type_t
_mongoc_write_error_get_type (bson_t *reply)
{
bson_error_t error;
if (mongoc_error_has_label (reply, RETRYABLE_WRITE_ERROR)) {
return MONGOC_WRITE_ERR_RETRY;
}
/* check for a server error. */
if (_mongoc_cmd_check_ok_no_wce (reply, MONGOC_ERROR_API_VERSION_2, &error)) {
return MONGOC_WRITE_ERR_NONE;
}
switch (error.code) {
case 64: /* WriteConcernFailed */
return MONGOC_WRITE_ERR_WRITE_CONCERN;
default:
return MONGOC_WRITE_ERR_OTHER;
}
}
/* Returns true and modifies reply and cmd_err. */
bool
_mongoc_write_error_update_if_unsupported_storage_engine (bool cmd_ret, bson_error_t *cmd_err, bson_t *reply)
{
bson_error_t server_error;
if (cmd_ret) {
return false;
}
if (_mongoc_cmd_check_ok_no_wce (reply, MONGOC_ERROR_API_VERSION_2, &server_error)) {
return false;
}
if (server_error.code == 20 && strstr (server_error.message, "Transaction numbers") == server_error.message) {
const char *replacement = "This MongoDB deployment does not support "
"retryable writes. Please add "
"retryWrites=false to your connection string.";
strcpy (cmd_err->message, replacement);
if (reply) {
bson_t *new_reply = bson_new ();
bson_copy_to_excluding_noinit (reply, new_reply, "errmsg", NULL);
BSON_APPEND_UTF8 (new_reply, "errmsg", replacement);
bson_destroy (reply);
bson_steal (reply, new_reply);
}
return true;
}
return false;
}
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-write-concern-private.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-write-concern-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-write-concern-private.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-write-concern-private.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-write-concern.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-write-concern.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-write-concern.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-write-concern.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-write-concern.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-write-concern.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc-write-concern.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc-write-concern.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/mongoc.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/mongoc.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/service-gcp.c b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/service-gcp.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/service-gcp.c
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/service-gcp.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/service-gcp.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/service-gcp.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/service-gcp.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/service-gcp.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/uthash.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/uthash.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/uthash.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/uthash.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/utlist.h b/mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/utlist.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/libmongoc/src/mongoc/utlist.h
rename to mongodb-2.1.4/src/libmongoc/src/libmongoc/src/mongoc/utlist.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/utf8proc-2.8.0/utf8proc.c b/mongodb-2.1.4/src/libmongoc/src/utf8proc-2.8.0/utf8proc.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/utf8proc-2.8.0/utf8proc.c
rename to mongodb-2.1.4/src/libmongoc/src/utf8proc-2.8.0/utf8proc.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/utf8proc-2.8.0/utf8proc.h b/mongodb-2.1.4/src/libmongoc/src/utf8proc-2.8.0/utf8proc.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/utf8proc-2.8.0/utf8proc.h
rename to mongodb-2.1.4/src/libmongoc/src/utf8proc-2.8.0/utf8proc.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/utf8proc-2.8.0/utf8proc_data.c b/mongodb-2.1.4/src/libmongoc/src/utf8proc-2.8.0/utf8proc_data.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/utf8proc-2.8.0/utf8proc_data.c
rename to mongodb-2.1.4/src/libmongoc/src/utf8proc-2.8.0/utf8proc_data.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/uthash/uthash-2.3.0/uthash.h b/mongodb-2.1.4/src/libmongoc/src/uthash/uthash-2.3.0/uthash.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/uthash/uthash-2.3.0/uthash.h
rename to mongodb-2.1.4/src/libmongoc/src/uthash/uthash-2.3.0/uthash.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/uthash/uthash-2.3.0/utlist.h b/mongodb-2.1.4/src/libmongoc/src/uthash/uthash-2.3.0/utlist.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/uthash/uthash-2.3.0/utlist.h
rename to mongodb-2.1.4/src/libmongoc/src/uthash/uthash-2.3.0/utlist.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/adler32.c b/mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/adler32.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/adler32.c
rename to mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/adler32.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/compress.c b/mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/compress.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/compress.c
rename to mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/compress.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/crc32.c b/mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/crc32.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/crc32.c
rename to mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/crc32.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/crc32.h b/mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/crc32.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/crc32.h
rename to mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/crc32.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/deflate.c b/mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/deflate.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/deflate.c
rename to mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/deflate.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/deflate.h b/mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/deflate.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/deflate.h
rename to mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/deflate.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/gzclose.c b/mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/gzclose.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/gzclose.c
rename to mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/gzclose.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/gzguts.h b/mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/gzguts.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/gzguts.h
rename to mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/gzguts.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/gzlib.c b/mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/gzlib.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/gzlib.c
rename to mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/gzlib.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/gzread.c b/mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/gzread.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/gzread.c
rename to mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/gzread.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/gzwrite.c b/mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/gzwrite.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/gzwrite.c
rename to mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/gzwrite.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/infback.c b/mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/infback.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/infback.c
rename to mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/infback.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/inffast.c b/mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/inffast.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/inffast.c
rename to mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/inffast.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/inffast.h b/mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/inffast.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/inffast.h
rename to mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/inffast.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/inffixed.h b/mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/inffixed.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/inffixed.h
rename to mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/inffixed.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/inflate.c b/mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/inflate.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/inflate.c
rename to mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/inflate.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/inflate.h b/mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/inflate.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/inflate.h
rename to mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/inflate.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/inftrees.c b/mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/inftrees.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/inftrees.c
rename to mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/inftrees.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/inftrees.h b/mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/inftrees.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/inftrees.h
rename to mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/inftrees.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/trees.c b/mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/trees.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/trees.c
rename to mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/trees.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/trees.h b/mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/trees.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/trees.h
rename to mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/trees.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/uncompr.c b/mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/uncompr.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/uncompr.c
rename to mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/uncompr.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/zconf.h b/mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/zconf.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/zconf.h
rename to mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/zconf.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/zconf.h.in b/mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/zconf.h.in
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/zconf.h.in
rename to mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/zconf.h.in
diff --git a/mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/zlib.h b/mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/zlib.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/zlib.h
rename to mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/zlib.h
diff --git a/mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/zutil.c b/mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/zutil.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/zutil.c
rename to mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/zutil.c
diff --git a/mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/zutil.h b/mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/zutil.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongoc/src/zlib-1.3.1/zutil.h
rename to mongodb-2.1.4/src/libmongoc/src/zlib-1.3.1/zutil.h
diff --git a/mongodb-2.1.1/src/libmongocrypt-compat/mongocrypt-export.h b/mongodb-2.1.4/src/libmongocrypt-compat/mongocrypt-export.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt-compat/mongocrypt-export.h
rename to mongodb-2.1.4/src/libmongocrypt-compat/mongocrypt-export.h
diff --git a/mongodb-2.1.1/src/libmongocrypt-compat/mongocrypt/mongocrypt.h b/mongodb-2.1.4/src/libmongocrypt-compat/mongocrypt/mongocrypt.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt-compat/mongocrypt/mongocrypt.h
rename to mongodb-2.1.4/src/libmongocrypt-compat/mongocrypt/mongocrypt.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/hexlify.c b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/hexlify.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/hexlify.c
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/hexlify.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/hexlify.h b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/hexlify.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/hexlify.h
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/hexlify.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_azure_request.c b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_azure_request.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_azure_request.c
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_azure_request.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_b64.c b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_b64.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_b64.c
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_b64.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_caller_identity_request.c b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_caller_identity_request.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_caller_identity_request.c
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_caller_identity_request.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_crypto.h b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_crypto.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_crypto.h
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_crypto.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_crypto_apple.c b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_crypto_apple.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_crypto_apple.c
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_crypto_apple.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_crypto_libcrypto.c b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_crypto_libcrypto.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_crypto_libcrypto.c
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_crypto_libcrypto.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_crypto_none.c b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_crypto_none.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_crypto_none.c
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_crypto_none.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_crypto_windows.c b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_crypto_windows.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_crypto_windows.c
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_crypto_windows.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_decrypt_request.c b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_decrypt_request.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_decrypt_request.c
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_decrypt_request.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_encrypt_request.c b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_encrypt_request.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_encrypt_request.c
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_encrypt_request.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_endian_private.h b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_endian_private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_endian_private.h
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_endian_private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_gcp_request.c b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_gcp_request.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_gcp_request.c
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_gcp_request.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_kmip_item_type_private.h b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_kmip_item_type_private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_kmip_item_type_private.h
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_kmip_item_type_private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_kmip_reader_writer.c b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_kmip_reader_writer.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_kmip_reader_writer.c
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_kmip_reader_writer.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_kmip_reader_writer_private.h b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_kmip_reader_writer_private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_kmip_reader_writer_private.h
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_kmip_reader_writer_private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_kmip_request.c b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_kmip_request.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_kmip_request.c
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_kmip_request.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_kmip_response.c b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_kmip_response.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_kmip_response.c
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_kmip_response.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_kmip_response_parser.c b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_kmip_response_parser.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_kmip_response_parser.c
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_kmip_response_parser.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_kmip_response_parser_private.h b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_kmip_response_parser_private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_kmip_response_parser_private.h
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_kmip_response_parser_private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_kmip_result_reason_private.h b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_kmip_result_reason_private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_kmip_result_reason_private.h
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_kmip_result_reason_private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_kmip_result_status_private.h b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_kmip_result_status_private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_kmip_result_status_private.h
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_kmip_result_status_private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_kmip_tag_type_private.h b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_kmip_tag_type_private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_kmip_tag_type_private.h
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_kmip_tag_type_private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_kv_list.c b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_kv_list.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_kv_list.c
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_kv_list.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_kv_list.h b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_kv_list.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_kv_list.h
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_kv_list.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_message.c b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_message.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_message.c
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_message.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_message/kms_azure_request.h b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_message/kms_azure_request.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_message/kms_azure_request.h
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_message/kms_azure_request.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_message/kms_b64.h b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_message/kms_b64.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_message/kms_b64.h
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_message/kms_b64.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_message/kms_caller_identity_request.h b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_message/kms_caller_identity_request.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_message/kms_caller_identity_request.h
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_message/kms_caller_identity_request.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_message/kms_decrypt_request.h b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_message/kms_decrypt_request.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_message/kms_decrypt_request.h
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_message/kms_decrypt_request.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_message/kms_encrypt_request.h b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_message/kms_encrypt_request.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_message/kms_encrypt_request.h
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_message/kms_encrypt_request.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_message/kms_gcp_request.h b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_message/kms_gcp_request.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_message/kms_gcp_request.h
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_message/kms_gcp_request.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_message/kms_kmip_request.h b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_message/kms_kmip_request.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_message/kms_kmip_request.h
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_message/kms_kmip_request.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_message/kms_kmip_response.h b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_message/kms_kmip_response.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_message/kms_kmip_response.h
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_message/kms_kmip_response.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_message/kms_kmip_response_parser.h b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_message/kms_kmip_response_parser.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_message/kms_kmip_response_parser.h
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_message/kms_kmip_response_parser.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_message/kms_message.h b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_message/kms_message.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_message/kms_message.h
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_message/kms_message.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_message/kms_message_defines.h b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_message/kms_message_defines.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_message/kms_message_defines.h
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_message/kms_message_defines.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_message/kms_request.h b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_message/kms_request.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_message/kms_request.h
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_message/kms_request.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_message/kms_request_opt.h b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_message/kms_request_opt.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_message/kms_request_opt.h
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_message/kms_request_opt.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_message/kms_response.h b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_message/kms_response.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_message/kms_response.h
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_message/kms_response.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_message/kms_response_parser.h b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_message/kms_response_parser.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_message/kms_response_parser.h
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_message/kms_response_parser.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_message_private.h b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_message_private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_message_private.h
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_message_private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_port.c b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_port.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_port.c
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_port.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_port.h b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_port.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_port.h
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_port.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_request.c b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_request.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_request.c
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_request.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_request_opt.c b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_request_opt.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_request_opt.c
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_request_opt.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_request_opt_private.h b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_request_opt_private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_request_opt_private.h
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_request_opt_private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_request_str.c b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_request_str.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_request_str.c
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_request_str.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_request_str.h b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_request_str.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_request_str.h
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_request_str.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_response.c b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_response.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_response.c
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_response.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_response_parser.c b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_response_parser.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/kms_response_parser.c
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/kms_response_parser.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/sort.c b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/sort.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/sort.c
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/sort.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/kms-message/src/sort.h b/mongodb-2.1.4/src/libmongocrypt/kms-message/src/sort.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/kms-message/src/sort.h
rename to mongodb-2.1.4/src/libmongocrypt/kms-message/src/sort.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/crypto/cng.c b/mongodb-2.1.4/src/libmongocrypt/src/crypto/cng.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/crypto/cng.c
rename to mongodb-2.1.4/src/libmongocrypt/src/crypto/cng.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/crypto/commoncrypto.c b/mongodb-2.1.4/src/libmongocrypt/src/crypto/commoncrypto.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/crypto/commoncrypto.c
rename to mongodb-2.1.4/src/libmongocrypt/src/crypto/commoncrypto.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/crypto/libcrypto.c b/mongodb-2.1.4/src/libmongocrypt/src/crypto/libcrypto.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/crypto/libcrypto.c
rename to mongodb-2.1.4/src/libmongocrypt/src/crypto/libcrypto.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/crypto/none.c b/mongodb-2.1.4/src/libmongocrypt/src/crypto/none.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/crypto/none.c
rename to mongodb-2.1.4/src/libmongocrypt/src/crypto/none.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-array-private.h b/mongodb-2.1.4/src/libmongocrypt/src/mc-array-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-array-private.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-array-private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-array.c b/mongodb-2.1.4/src/libmongocrypt/src/mc-array.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-array.c
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-array.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-check-conversions-private.h b/mongodb-2.1.4/src/libmongocrypt/src/mc-check-conversions-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-check-conversions-private.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-check-conversions-private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-cmp-private.h b/mongodb-2.1.4/src/libmongocrypt/src/mc-cmp-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-cmp-private.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-cmp-private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-dec128.h b/mongodb-2.1.4/src/libmongocrypt/src/mc-dec128.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-dec128.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-dec128.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-efc-private.h b/mongodb-2.1.4/src/libmongocrypt/src/mc-efc-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-efc-private.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-efc-private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-efc.c b/mongodb-2.1.4/src/libmongocrypt/src/mc-efc.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-efc.c
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-efc.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-fle-blob-subtype-private.h b/mongodb-2.1.4/src/libmongocrypt/src/mc-fle-blob-subtype-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-fle-blob-subtype-private.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-fle-blob-subtype-private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-encryption-placeholder-private.h b/mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-encryption-placeholder-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-encryption-placeholder-private.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-encryption-placeholder-private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-encryption-placeholder.c b/mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-encryption-placeholder.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-encryption-placeholder.c
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-encryption-placeholder.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-find-equality-payload-private-v2.h b/mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-find-equality-payload-private-v2.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-find-equality-payload-private-v2.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-find-equality-payload-private-v2.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-find-equality-payload-private.h b/mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-find-equality-payload-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-find-equality-payload-private.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-find-equality-payload-private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-find-equality-payload-v2.c b/mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-find-equality-payload-v2.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-find-equality-payload-v2.c
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-find-equality-payload-v2.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-find-equality-payload.c b/mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-find-equality-payload.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-find-equality-payload.c
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-find-equality-payload.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-find-range-payload-private-v2.h b/mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-find-range-payload-private-v2.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-find-range-payload-private-v2.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-find-range-payload-private-v2.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-find-range-payload-private.h b/mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-find-range-payload-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-find-range-payload-private.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-find-range-payload-private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-find-range-payload-v2.c b/mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-find-range-payload-v2.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-find-range-payload-v2.c
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-find-range-payload-v2.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-find-range-payload.c b/mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-find-range-payload.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-find-range-payload.c
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-find-range-payload.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-insert-update-payload-private-v2.h b/mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-insert-update-payload-private-v2.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-insert-update-payload-private-v2.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-insert-update-payload-private-v2.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-insert-update-payload-private.h b/mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-insert-update-payload-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-insert-update-payload-private.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-insert-update-payload-private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-insert-update-payload-v2.c b/mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-insert-update-payload-v2.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-insert-update-payload-v2.c
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-insert-update-payload-v2.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-insert-update-payload.c b/mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-insert-update-payload.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-insert-update-payload.c
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-insert-update-payload.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-payload-iev-private-v2.h b/mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-payload-iev-private-v2.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-payload-iev-private-v2.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-payload-iev-private-v2.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-payload-iev-private.h b/mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-payload-iev-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-payload-iev-private.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-payload-iev-private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-payload-iev-v2.c b/mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-payload-iev-v2.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-payload-iev-v2.c
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-payload-iev-v2.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-payload-iev.c b/mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-payload-iev.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-payload-iev.c
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-payload-iev.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-payload-uev-common-private.h b/mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-payload-uev-common-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-payload-uev-common-private.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-payload-uev-common-private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-payload-uev-common.c b/mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-payload-uev-common.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-payload-uev-common.c
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-payload-uev-common.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-payload-uev-private.h b/mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-payload-uev-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-payload-uev-private.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-payload-uev-private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-payload-uev-v2-private.h b/mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-payload-uev-v2-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-payload-uev-v2-private.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-payload-uev-v2-private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-payload-uev-v2.c b/mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-payload-uev-v2.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-payload-uev-v2.c
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-payload-uev-v2.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-payload-uev.c b/mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-payload-uev.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-payload-uev.c
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-payload-uev.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-range-operator-private.h b/mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-range-operator-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-range-operator-private.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-range-operator-private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-rfds-private.h b/mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-rfds-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-rfds-private.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-rfds-private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-rfds.c b/mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-rfds.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-rfds.c
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-rfds.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-tag-and-encrypted-metadata-block-private.h b/mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-tag-and-encrypted-metadata-block-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-tag-and-encrypted-metadata-block-private.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-tag-and-encrypted-metadata-block-private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-tag-and-encrypted-metadata-block.c b/mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-tag-and-encrypted-metadata-block.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-fle2-tag-and-encrypted-metadata-block.c
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-fle2-tag-and-encrypted-metadata-block.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-optional-private.h b/mongodb-2.1.4/src/libmongocrypt/src/mc-optional-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-optional-private.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-optional-private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-range-edge-generation-private.h b/mongodb-2.1.4/src/libmongocrypt/src/mc-range-edge-generation-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-range-edge-generation-private.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-range-edge-generation-private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-range-edge-generation.c b/mongodb-2.1.4/src/libmongocrypt/src/mc-range-edge-generation.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-range-edge-generation.c
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-range-edge-generation.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-range-encoding-private.h b/mongodb-2.1.4/src/libmongocrypt/src/mc-range-encoding-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-range-encoding-private.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-range-encoding-private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-range-encoding.c b/mongodb-2.1.4/src/libmongocrypt/src/mc-range-encoding.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-range-encoding.c
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-range-encoding.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-range-mincover-generator.template.h b/mongodb-2.1.4/src/libmongocrypt/src/mc-range-mincover-generator.template.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-range-mincover-generator.template.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-range-mincover-generator.template.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-range-mincover-private.h b/mongodb-2.1.4/src/libmongocrypt/src/mc-range-mincover-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-range-mincover-private.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-range-mincover-private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-range-mincover.c b/mongodb-2.1.4/src/libmongocrypt/src/mc-range-mincover.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-range-mincover.c
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-range-mincover.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-rangeopts-private.h b/mongodb-2.1.4/src/libmongocrypt/src/mc-rangeopts-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-rangeopts-private.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-rangeopts-private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-rangeopts.c b/mongodb-2.1.4/src/libmongocrypt/src/mc-rangeopts.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-rangeopts.c
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-rangeopts.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-reader-private.h b/mongodb-2.1.4/src/libmongocrypt/src/mc-reader-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-reader-private.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-reader-private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-reader.c b/mongodb-2.1.4/src/libmongocrypt/src/mc-reader.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-reader.c
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-reader.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-tokens-private.h b/mongodb-2.1.4/src/libmongocrypt/src/mc-tokens-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-tokens-private.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-tokens-private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-tokens.c b/mongodb-2.1.4/src/libmongocrypt/src/mc-tokens.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-tokens.c
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-tokens.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-writer-private.h b/mongodb-2.1.4/src/libmongocrypt/src/mc-writer-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-writer-private.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-writer-private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mc-writer.c b/mongodb-2.1.4/src/libmongocrypt/src/mc-writer.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mc-writer.c
rename to mongodb-2.1.4/src/libmongocrypt/src/mc-writer.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mlib/endian.h b/mongodb-2.1.4/src/libmongocrypt/src/mlib/endian.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mlib/endian.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mlib/endian.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mlib/error.h b/mongodb-2.1.4/src/libmongocrypt/src/mlib/error.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mlib/error.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mlib/error.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mlib/int128.h b/mongodb-2.1.4/src/libmongocrypt/src/mlib/int128.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mlib/int128.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mlib/int128.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mlib/macros.h b/mongodb-2.1.4/src/libmongocrypt/src/mlib/macros.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mlib/macros.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mlib/macros.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mlib/path.h b/mongodb-2.1.4/src/libmongocrypt/src/mlib/path.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mlib/path.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mlib/path.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mlib/str.h b/mongodb-2.1.4/src/libmongocrypt/src/mlib/str.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mlib/str.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mlib/str.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mlib/thread.h b/mongodb-2.1.4/src/libmongocrypt/src/mlib/thread.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mlib/thread.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mlib/thread.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mlib/user-check.h b/mongodb-2.1.4/src/libmongocrypt/src/mlib/user-check.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mlib/user-check.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mlib/user-check.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mlib/windows-lean.h b/mongodb-2.1.4/src/libmongocrypt/src/mlib/windows-lean.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mlib/windows-lean.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mlib/windows-lean.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongo_crypt-v1.h b/mongodb-2.1.4/src/libmongocrypt/src/mongo_crypt-v1.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongo_crypt-v1.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mongo_crypt-v1.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-binary-private.h b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-binary-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-binary-private.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-binary-private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-binary.c b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-binary.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-binary.c
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-binary.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-buffer-private.h b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-buffer-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-buffer-private.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-buffer-private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-buffer.c b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-buffer.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-buffer.c
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-buffer.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-cache-collinfo-private.h b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-cache-collinfo-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-cache-collinfo-private.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-cache-collinfo-private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-cache-collinfo.c b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-cache-collinfo.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-cache-collinfo.c
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-cache-collinfo.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-cache-key-private.h b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-cache-key-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-cache-key-private.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-cache-key-private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-cache-key.c b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-cache-key.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-cache-key.c
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-cache-key.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-cache-oauth-private.h b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-cache-oauth-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-cache-oauth-private.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-cache-oauth-private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-cache-oauth.c b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-cache-oauth.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-cache-oauth.c
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-cache-oauth.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-cache-private.h b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-cache-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-cache-private.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-cache-private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-cache.c b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-cache.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-cache.c
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-cache.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-ciphertext-private.h b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-ciphertext-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-ciphertext-private.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-ciphertext-private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-ciphertext.c b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-ciphertext.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-ciphertext.c
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-ciphertext.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-compat.h b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-compat.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-compat.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-compat.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-config.h b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-config.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-config.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-config.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-config.h.in b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-config.h.in
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-config.h.in
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-config.h.in
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-crypto-private.h b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-crypto-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-crypto-private.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-crypto-private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-crypto.c b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-crypto.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-crypto.c
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-crypto.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-ctx-datakey.c b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-ctx-datakey.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-ctx-datakey.c
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-ctx-datakey.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-ctx-decrypt.c b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-ctx-decrypt.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-ctx-decrypt.c
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-ctx-decrypt.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-ctx-encrypt.c b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-ctx-encrypt.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-ctx-encrypt.c
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-ctx-encrypt.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-ctx-private.h b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-ctx-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-ctx-private.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-ctx-private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-ctx-rewrap-many-datakey.c b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-ctx-rewrap-many-datakey.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-ctx-rewrap-many-datakey.c
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-ctx-rewrap-many-datakey.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-ctx.c b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-ctx.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-ctx.c
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-ctx.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-dll-private.h b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-dll-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-dll-private.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-dll-private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-endian-private.h b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-endian-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-endian-private.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-endian-private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-endpoint-private.h b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-endpoint-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-endpoint-private.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-endpoint-private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-endpoint.c b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-endpoint.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-endpoint.c
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-endpoint.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-kek-private.h b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-kek-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-kek-private.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-kek-private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-kek.c b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-kek.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-kek.c
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-kek.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-key-broker-private.h b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-key-broker-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-key-broker-private.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-key-broker-private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-key-broker.c b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-key-broker.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-key-broker.c
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-key-broker.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-key-private.h b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-key-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-key-private.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-key-private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-key.c b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-key.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-key.c
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-key.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-kms-ctx-private.h b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-kms-ctx-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-kms-ctx-private.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-kms-ctx-private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-kms-ctx.c b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-kms-ctx.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-kms-ctx.c
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-kms-ctx.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-log-private.h b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-log-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-log-private.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-log-private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-log.c b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-log.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-log.c
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-log.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-marking-private.h b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-marking-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-marking-private.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-marking-private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-marking.c b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-marking.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-marking.c
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-marking.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-mutex-private.h b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-mutex-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-mutex-private.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-mutex-private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-opts-private.h b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-opts-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-opts-private.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-opts-private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-opts.c b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-opts.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-opts.c
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-opts.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-private.h b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-private.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-status-private.h b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-status-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-status-private.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-status-private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-status.c b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-status.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-status.c
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-status.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-traverse-util-private.h b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-traverse-util-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-traverse-util-private.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-traverse-util-private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-traverse-util.c b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-traverse-util.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-traverse-util.c
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-traverse-util.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-util-private.h b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-util-private.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-util-private.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-util-private.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-util.c b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-util.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt-util.c
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt-util.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt.c b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt.c
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/mongocrypt.h b/mongodb-2.1.4/src/libmongocrypt/src/mongocrypt.h
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/mongocrypt.h
rename to mongodb-2.1.4/src/libmongocrypt/src/mongocrypt.h
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/os_posix/os_dll.c b/mongodb-2.1.4/src/libmongocrypt/src/os_posix/os_dll.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/os_posix/os_dll.c
rename to mongodb-2.1.4/src/libmongocrypt/src/os_posix/os_dll.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/os_posix/os_mutex.c b/mongodb-2.1.4/src/libmongocrypt/src/os_posix/os_mutex.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/os_posix/os_mutex.c
rename to mongodb-2.1.4/src/libmongocrypt/src/os_posix/os_mutex.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/os_win/os_dll.c b/mongodb-2.1.4/src/libmongocrypt/src/os_win/os_dll.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/os_win/os_dll.c
rename to mongodb-2.1.4/src/libmongocrypt/src/os_win/os_dll.c
diff --git a/mongodb-2.1.1/src/libmongocrypt/src/os_win/os_mutex.c b/mongodb-2.1.4/src/libmongocrypt/src/os_win/os_mutex.c
similarity index 100%
rename from mongodb-2.1.1/src/libmongocrypt/src/os_win/os_mutex.c
rename to mongodb-2.1.4/src/libmongocrypt/src/os_win/os_mutex.c
diff --git a/mongodb-2.1.1/src/phongo_apm.c b/mongodb-2.1.4/src/phongo_apm.c
similarity index 100%
rename from mongodb-2.1.1/src/phongo_apm.c
rename to mongodb-2.1.4/src/phongo_apm.c
diff --git a/mongodb-2.1.1/src/phongo_apm.h b/mongodb-2.1.4/src/phongo_apm.h
similarity index 100%
rename from mongodb-2.1.1/src/phongo_apm.h
rename to mongodb-2.1.4/src/phongo_apm.h
diff --git a/mongodb-2.1.1/src/phongo_atomic.c b/mongodb-2.1.4/src/phongo_atomic.c
similarity index 100%
rename from mongodb-2.1.1/src/phongo_atomic.c
rename to mongodb-2.1.4/src/phongo_atomic.c
diff --git a/mongodb-2.1.1/src/phongo_atomic.h b/mongodb-2.1.4/src/phongo_atomic.h
similarity index 100%
rename from mongodb-2.1.1/src/phongo_atomic.h
rename to mongodb-2.1.4/src/phongo_atomic.h
diff --git a/mongodb-2.1.1/src/phongo_bson.c b/mongodb-2.1.4/src/phongo_bson.c
similarity index 100%
rename from mongodb-2.1.1/src/phongo_bson.c
rename to mongodb-2.1.4/src/phongo_bson.c
diff --git a/mongodb-2.1.1/src/phongo_bson.h b/mongodb-2.1.4/src/phongo_bson.h
similarity index 100%
rename from mongodb-2.1.1/src/phongo_bson.h
rename to mongodb-2.1.4/src/phongo_bson.h
diff --git a/mongodb-2.1.1/src/phongo_bson_encode.c b/mongodb-2.1.4/src/phongo_bson_encode.c
similarity index 100%
rename from mongodb-2.1.1/src/phongo_bson_encode.c
rename to mongodb-2.1.4/src/phongo_bson_encode.c
diff --git a/mongodb-2.1.1/src/phongo_bson_encode.h b/mongodb-2.1.4/src/phongo_bson_encode.h
similarity index 100%
rename from mongodb-2.1.1/src/phongo_bson_encode.h
rename to mongodb-2.1.4/src/phongo_bson_encode.h
diff --git a/mongodb-2.1.1/src/phongo_classes.h b/mongodb-2.1.4/src/phongo_classes.h
similarity index 100%
rename from mongodb-2.1.1/src/phongo_classes.h
rename to mongodb-2.1.4/src/phongo_classes.h
diff --git a/mongodb-2.1.1/src/phongo_client.c b/mongodb-2.1.4/src/phongo_client.c
similarity index 100%
rename from mongodb-2.1.1/src/phongo_client.c
rename to mongodb-2.1.4/src/phongo_client.c
diff --git a/mongodb-2.1.1/src/phongo_client.h b/mongodb-2.1.4/src/phongo_client.h
similarity index 100%
rename from mongodb-2.1.1/src/phongo_client.h
rename to mongodb-2.1.4/src/phongo_client.h
diff --git a/mongodb-2.1.1/src/phongo_compat.c b/mongodb-2.1.4/src/phongo_compat.c
similarity index 100%
rename from mongodb-2.1.1/src/phongo_compat.c
rename to mongodb-2.1.4/src/phongo_compat.c
diff --git a/mongodb-2.1.1/src/phongo_compat.h b/mongodb-2.1.4/src/phongo_compat.h
similarity index 100%
rename from mongodb-2.1.1/src/phongo_compat.h
rename to mongodb-2.1.4/src/phongo_compat.h
diff --git a/mongodb-2.1.1/src/phongo_error.c b/mongodb-2.1.4/src/phongo_error.c
similarity index 100%
rename from mongodb-2.1.1/src/phongo_error.c
rename to mongodb-2.1.4/src/phongo_error.c
diff --git a/mongodb-2.1.1/src/phongo_error.h b/mongodb-2.1.4/src/phongo_error.h
similarity index 100%
rename from mongodb-2.1.1/src/phongo_error.h
rename to mongodb-2.1.4/src/phongo_error.h
diff --git a/mongodb-2.1.1/src/phongo_execute.c b/mongodb-2.1.4/src/phongo_execute.c
similarity index 100%
rename from mongodb-2.1.1/src/phongo_execute.c
rename to mongodb-2.1.4/src/phongo_execute.c
diff --git a/mongodb-2.1.1/src/phongo_execute.h b/mongodb-2.1.4/src/phongo_execute.h
similarity index 100%
rename from mongodb-2.1.1/src/phongo_execute.h
rename to mongodb-2.1.4/src/phongo_execute.h
diff --git a/mongodb-2.1.1/src/phongo_ini.c b/mongodb-2.1.4/src/phongo_ini.c
similarity index 100%
rename from mongodb-2.1.1/src/phongo_ini.c
rename to mongodb-2.1.4/src/phongo_ini.c
diff --git a/mongodb-2.1.1/src/phongo_ini.h b/mongodb-2.1.4/src/phongo_ini.h
similarity index 100%
rename from mongodb-2.1.1/src/phongo_ini.h
rename to mongodb-2.1.4/src/phongo_ini.h
diff --git a/mongodb-2.1.1/src/phongo_log.c b/mongodb-2.1.4/src/phongo_log.c
similarity index 100%
rename from mongodb-2.1.1/src/phongo_log.c
rename to mongodb-2.1.4/src/phongo_log.c
diff --git a/mongodb-2.1.1/src/phongo_log.h b/mongodb-2.1.4/src/phongo_log.h
similarity index 100%
rename from mongodb-2.1.1/src/phongo_log.h
rename to mongodb-2.1.4/src/phongo_log.h
diff --git a/mongodb-2.1.1/src/phongo_structs.h b/mongodb-2.1.4/src/phongo_structs.h
similarity index 100%
rename from mongodb-2.1.1/src/phongo_structs.h
rename to mongodb-2.1.4/src/phongo_structs.h
diff --git a/mongodb-2.1.1/src/phongo_util.c b/mongodb-2.1.4/src/phongo_util.c
similarity index 100%
rename from mongodb-2.1.1/src/phongo_util.c
rename to mongodb-2.1.4/src/phongo_util.c
diff --git a/mongodb-2.1.1/src/phongo_util.h b/mongodb-2.1.4/src/phongo_util.h
similarity index 100%
rename from mongodb-2.1.1/src/phongo_util.h
rename to mongodb-2.1.4/src/phongo_util.h
diff --git a/mongodb-2.1.1/tests/apm/bug0950-001.phpt b/mongodb-2.1.4/tests/apm/bug0950-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/apm/bug0950-001.phpt
rename to mongodb-2.1.4/tests/apm/bug0950-001.phpt
diff --git a/mongodb-2.1.1/tests/apm/bug0950-002.phpt b/mongodb-2.1.4/tests/apm/bug0950-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/apm/bug0950-002.phpt
rename to mongodb-2.1.4/tests/apm/bug0950-002.phpt
diff --git a/mongodb-2.1.1/tests/apm/commandFailedEvent-001.phpt b/mongodb-2.1.4/tests/apm/commandFailedEvent-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/apm/commandFailedEvent-001.phpt
rename to mongodb-2.1.4/tests/apm/commandFailedEvent-001.phpt
diff --git a/mongodb-2.1.1/tests/apm/commandFailedEvent-002.phpt b/mongodb-2.1.4/tests/apm/commandFailedEvent-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/apm/commandFailedEvent-002.phpt
rename to mongodb-2.1.4/tests/apm/commandFailedEvent-002.phpt
diff --git a/mongodb-2.1.1/tests/apm/commandFailedEvent-debug-001.phpt b/mongodb-2.1.4/tests/apm/commandFailedEvent-debug-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/apm/commandFailedEvent-debug-001.phpt
rename to mongodb-2.1.4/tests/apm/commandFailedEvent-debug-001.phpt
diff --git a/mongodb-2.1.1/tests/apm/commandFailedEvent-getReply-001.phpt b/mongodb-2.1.4/tests/apm/commandFailedEvent-getReply-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/apm/commandFailedEvent-getReply-001.phpt
rename to mongodb-2.1.4/tests/apm/commandFailedEvent-getReply-001.phpt
diff --git a/mongodb-2.1.1/tests/apm/commandFailedEvent-getServerConnectionId-001.phpt b/mongodb-2.1.4/tests/apm/commandFailedEvent-getServerConnectionId-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/apm/commandFailedEvent-getServerConnectionId-001.phpt
rename to mongodb-2.1.4/tests/apm/commandFailedEvent-getServerConnectionId-001.phpt
diff --git a/mongodb-2.1.1/tests/apm/commandFailedEvent-getServiceId-001.phpt b/mongodb-2.1.4/tests/apm/commandFailedEvent-getServiceId-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/apm/commandFailedEvent-getServiceId-001.phpt
rename to mongodb-2.1.4/tests/apm/commandFailedEvent-getServiceId-001.phpt
diff --git a/mongodb-2.1.1/tests/apm/commandFailedEvent-getServiceId-002.phpt b/mongodb-2.1.4/tests/apm/commandFailedEvent-getServiceId-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/apm/commandFailedEvent-getServiceId-002.phpt
rename to mongodb-2.1.4/tests/apm/commandFailedEvent-getServiceId-002.phpt
diff --git a/mongodb-2.1.1/tests/apm/commandStartedEvent-001.phpt b/mongodb-2.1.4/tests/apm/commandStartedEvent-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/apm/commandStartedEvent-001.phpt
rename to mongodb-2.1.4/tests/apm/commandStartedEvent-001.phpt
diff --git a/mongodb-2.1.1/tests/apm/commandStartedEvent-002.phpt b/mongodb-2.1.4/tests/apm/commandStartedEvent-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/apm/commandStartedEvent-002.phpt
rename to mongodb-2.1.4/tests/apm/commandStartedEvent-002.phpt
diff --git a/mongodb-2.1.1/tests/apm/commandStartedEvent-debug-001.phpt b/mongodb-2.1.4/tests/apm/commandStartedEvent-debug-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/apm/commandStartedEvent-debug-001.phpt
rename to mongodb-2.1.4/tests/apm/commandStartedEvent-debug-001.phpt
diff --git a/mongodb-2.1.1/tests/apm/commandStartedEvent-getServerConnectionId-001.phpt b/mongodb-2.1.4/tests/apm/commandStartedEvent-getServerConnectionId-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/apm/commandStartedEvent-getServerConnectionId-001.phpt
rename to mongodb-2.1.4/tests/apm/commandStartedEvent-getServerConnectionId-001.phpt
diff --git a/mongodb-2.1.1/tests/apm/commandStartedEvent-getServiceId-001.phpt b/mongodb-2.1.4/tests/apm/commandStartedEvent-getServiceId-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/apm/commandStartedEvent-getServiceId-001.phpt
rename to mongodb-2.1.4/tests/apm/commandStartedEvent-getServiceId-001.phpt
diff --git a/mongodb-2.1.1/tests/apm/commandStartedEvent-getServiceId-002.phpt b/mongodb-2.1.4/tests/apm/commandStartedEvent-getServiceId-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/apm/commandStartedEvent-getServiceId-002.phpt
rename to mongodb-2.1.4/tests/apm/commandStartedEvent-getServiceId-002.phpt
diff --git a/mongodb-2.1.1/tests/apm/commandSucceededEvent-001.phpt b/mongodb-2.1.4/tests/apm/commandSucceededEvent-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/apm/commandSucceededEvent-001.phpt
rename to mongodb-2.1.4/tests/apm/commandSucceededEvent-001.phpt
diff --git a/mongodb-2.1.1/tests/apm/commandSucceededEvent-002.phpt b/mongodb-2.1.4/tests/apm/commandSucceededEvent-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/apm/commandSucceededEvent-002.phpt
rename to mongodb-2.1.4/tests/apm/commandSucceededEvent-002.phpt
diff --git a/mongodb-2.1.1/tests/apm/commandSucceededEvent-debug-001.phpt b/mongodb-2.1.4/tests/apm/commandSucceededEvent-debug-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/apm/commandSucceededEvent-debug-001.phpt
rename to mongodb-2.1.4/tests/apm/commandSucceededEvent-debug-001.phpt
diff --git a/mongodb-2.1.1/tests/apm/commandSucceededEvent-getServerConnectionId-001.phpt b/mongodb-2.1.4/tests/apm/commandSucceededEvent-getServerConnectionId-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/apm/commandSucceededEvent-getServerConnectionId-001.phpt
rename to mongodb-2.1.4/tests/apm/commandSucceededEvent-getServerConnectionId-001.phpt
diff --git a/mongodb-2.1.1/tests/apm/commandSucceededEvent-getServiceId-001.phpt b/mongodb-2.1.4/tests/apm/commandSucceededEvent-getServiceId-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/apm/commandSucceededEvent-getServiceId-001.phpt
rename to mongodb-2.1.4/tests/apm/commandSucceededEvent-getServiceId-001.phpt
diff --git a/mongodb-2.1.1/tests/apm/commandSucceededEvent-getServiceId-002.phpt b/mongodb-2.1.4/tests/apm/commandSucceededEvent-getServiceId-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/apm/commandSucceededEvent-getServiceId-002.phpt
rename to mongodb-2.1.4/tests/apm/commandSucceededEvent-getServiceId-002.phpt
diff --git a/mongodb-2.1.1/tests/apm/monitoring-addSubscriber-001.phpt b/mongodb-2.1.4/tests/apm/monitoring-addSubscriber-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/apm/monitoring-addSubscriber-001.phpt
rename to mongodb-2.1.4/tests/apm/monitoring-addSubscriber-001.phpt
diff --git a/mongodb-2.1.1/tests/apm/monitoring-addSubscriber-002.phpt b/mongodb-2.1.4/tests/apm/monitoring-addSubscriber-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/apm/monitoring-addSubscriber-002.phpt
rename to mongodb-2.1.4/tests/apm/monitoring-addSubscriber-002.phpt
diff --git a/mongodb-2.1.1/tests/apm/monitoring-addSubscriber-003.phpt b/mongodb-2.1.4/tests/apm/monitoring-addSubscriber-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/apm/monitoring-addSubscriber-003.phpt
rename to mongodb-2.1.4/tests/apm/monitoring-addSubscriber-003.phpt
diff --git a/mongodb-2.1.1/tests/apm/monitoring-addSubscriber-004.phpt b/mongodb-2.1.4/tests/apm/monitoring-addSubscriber-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/apm/monitoring-addSubscriber-004.phpt
rename to mongodb-2.1.4/tests/apm/monitoring-addSubscriber-004.phpt
diff --git a/mongodb-2.1.1/tests/apm/monitoring-removeSubscriber-001.phpt b/mongodb-2.1.4/tests/apm/monitoring-removeSubscriber-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/apm/monitoring-removeSubscriber-001.phpt
rename to mongodb-2.1.4/tests/apm/monitoring-removeSubscriber-001.phpt
diff --git a/mongodb-2.1.1/tests/apm/monitoring-removeSubscriber-002.phpt b/mongodb-2.1.4/tests/apm/monitoring-removeSubscriber-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/apm/monitoring-removeSubscriber-002.phpt
rename to mongodb-2.1.4/tests/apm/monitoring-removeSubscriber-002.phpt
diff --git a/mongodb-2.1.1/tests/apm/serverChangedEvent-001.phpt b/mongodb-2.1.4/tests/apm/serverChangedEvent-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/apm/serverChangedEvent-001.phpt
rename to mongodb-2.1.4/tests/apm/serverChangedEvent-001.phpt
diff --git a/mongodb-2.1.1/tests/apm/serverClosedEvent-001.phpt b/mongodb-2.1.4/tests/apm/serverClosedEvent-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/apm/serverClosedEvent-001.phpt
rename to mongodb-2.1.4/tests/apm/serverClosedEvent-001.phpt
diff --git a/mongodb-2.1.1/tests/apm/serverHeartbeatFailedEvent-001.phpt b/mongodb-2.1.4/tests/apm/serverHeartbeatFailedEvent-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/apm/serverHeartbeatFailedEvent-001.phpt
rename to mongodb-2.1.4/tests/apm/serverHeartbeatFailedEvent-001.phpt
diff --git a/mongodb-2.1.1/tests/apm/serverHeartbeatStartedEvent-001.phpt b/mongodb-2.1.4/tests/apm/serverHeartbeatStartedEvent-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/apm/serverHeartbeatStartedEvent-001.phpt
rename to mongodb-2.1.4/tests/apm/serverHeartbeatStartedEvent-001.phpt
diff --git a/mongodb-2.1.1/tests/apm/serverHeartbeatSucceededEvent-001.phpt b/mongodb-2.1.4/tests/apm/serverHeartbeatSucceededEvent-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/apm/serverHeartbeatSucceededEvent-001.phpt
rename to mongodb-2.1.4/tests/apm/serverHeartbeatSucceededEvent-001.phpt
diff --git a/mongodb-2.1.1/tests/apm/serverOpeningEvent-001.phpt b/mongodb-2.1.4/tests/apm/serverOpeningEvent-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/apm/serverOpeningEvent-001.phpt
rename to mongodb-2.1.4/tests/apm/serverOpeningEvent-001.phpt
diff --git a/mongodb-2.1.1/tests/apm/topologyChangedEvent-001.phpt b/mongodb-2.1.4/tests/apm/topologyChangedEvent-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/apm/topologyChangedEvent-001.phpt
rename to mongodb-2.1.4/tests/apm/topologyChangedEvent-001.phpt
diff --git a/mongodb-2.1.1/tests/apm/topologyClosedEvent-001.phpt b/mongodb-2.1.4/tests/apm/topologyClosedEvent-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/apm/topologyClosedEvent-001.phpt
rename to mongodb-2.1.4/tests/apm/topologyClosedEvent-001.phpt
diff --git a/mongodb-2.1.1/tests/apm/topologyOpeningEvent-001.phpt b/mongodb-2.1.4/tests/apm/topologyOpeningEvent-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/apm/topologyOpeningEvent-001.phpt
rename to mongodb-2.1.4/tests/apm/topologyOpeningEvent-001.phpt
diff --git a/mongodb-2.1.1/tests/apm/topologyOpeningEvent-002.phpt b/mongodb-2.1.4/tests/apm/topologyOpeningEvent-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/apm/topologyOpeningEvent-002.phpt
rename to mongodb-2.1.4/tests/apm/topologyOpeningEvent-002.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/array-decodeError-001.phpt b/mongodb-2.1.4/tests/bson-corpus/array-decodeError-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/array-decodeError-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/array-decodeError-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/array-decodeError-002.phpt b/mongodb-2.1.4/tests/bson-corpus/array-decodeError-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/array-decodeError-002.phpt
rename to mongodb-2.1.4/tests/bson-corpus/array-decodeError-002.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/array-decodeError-003.phpt b/mongodb-2.1.4/tests/bson-corpus/array-decodeError-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/array-decodeError-003.phpt
rename to mongodb-2.1.4/tests/bson-corpus/array-decodeError-003.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/array-valid-001.phpt b/mongodb-2.1.4/tests/bson-corpus/array-valid-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/array-valid-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/array-valid-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/array-valid-002.phpt b/mongodb-2.1.4/tests/bson-corpus/array-valid-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/array-valid-002.phpt
rename to mongodb-2.1.4/tests/bson-corpus/array-valid-002.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/array-valid-003.phpt b/mongodb-2.1.4/tests/bson-corpus/array-valid-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/array-valid-003.phpt
rename to mongodb-2.1.4/tests/bson-corpus/array-valid-003.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/array-valid-004.phpt b/mongodb-2.1.4/tests/bson-corpus/array-valid-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/array-valid-004.phpt
rename to mongodb-2.1.4/tests/bson-corpus/array-valid-004.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/array-valid-005.phpt b/mongodb-2.1.4/tests/bson-corpus/array-valid-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/array-valid-005.phpt
rename to mongodb-2.1.4/tests/bson-corpus/array-valid-005.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/binary-decodeError-001.phpt b/mongodb-2.1.4/tests/bson-corpus/binary-decodeError-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/binary-decodeError-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/binary-decodeError-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/binary-decodeError-002.phpt b/mongodb-2.1.4/tests/bson-corpus/binary-decodeError-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/binary-decodeError-002.phpt
rename to mongodb-2.1.4/tests/bson-corpus/binary-decodeError-002.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/binary-decodeError-003.phpt b/mongodb-2.1.4/tests/bson-corpus/binary-decodeError-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/binary-decodeError-003.phpt
rename to mongodb-2.1.4/tests/bson-corpus/binary-decodeError-003.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/binary-decodeError-004.phpt b/mongodb-2.1.4/tests/bson-corpus/binary-decodeError-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/binary-decodeError-004.phpt
rename to mongodb-2.1.4/tests/bson-corpus/binary-decodeError-004.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/binary-decodeError-005.phpt b/mongodb-2.1.4/tests/bson-corpus/binary-decodeError-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/binary-decodeError-005.phpt
rename to mongodb-2.1.4/tests/bson-corpus/binary-decodeError-005.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/binary-parseError-001.phpt b/mongodb-2.1.4/tests/bson-corpus/binary-parseError-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/binary-parseError-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/binary-parseError-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/binary-parseError-002.phpt b/mongodb-2.1.4/tests/bson-corpus/binary-parseError-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/binary-parseError-002.phpt
rename to mongodb-2.1.4/tests/bson-corpus/binary-parseError-002.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/binary-parseError-003.phpt b/mongodb-2.1.4/tests/bson-corpus/binary-parseError-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/binary-parseError-003.phpt
rename to mongodb-2.1.4/tests/bson-corpus/binary-parseError-003.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/binary-parseError-004.phpt b/mongodb-2.1.4/tests/bson-corpus/binary-parseError-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/binary-parseError-004.phpt
rename to mongodb-2.1.4/tests/bson-corpus/binary-parseError-004.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/binary-parseError-005.phpt b/mongodb-2.1.4/tests/bson-corpus/binary-parseError-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/binary-parseError-005.phpt
rename to mongodb-2.1.4/tests/bson-corpus/binary-parseError-005.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/binary-valid-001.phpt b/mongodb-2.1.4/tests/bson-corpus/binary-valid-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/binary-valid-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/binary-valid-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/binary-valid-002.phpt b/mongodb-2.1.4/tests/bson-corpus/binary-valid-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/binary-valid-002.phpt
rename to mongodb-2.1.4/tests/bson-corpus/binary-valid-002.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/binary-valid-003.phpt b/mongodb-2.1.4/tests/bson-corpus/binary-valid-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/binary-valid-003.phpt
rename to mongodb-2.1.4/tests/bson-corpus/binary-valid-003.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/binary-valid-004.phpt b/mongodb-2.1.4/tests/bson-corpus/binary-valid-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/binary-valid-004.phpt
rename to mongodb-2.1.4/tests/bson-corpus/binary-valid-004.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/binary-valid-005.phpt b/mongodb-2.1.4/tests/bson-corpus/binary-valid-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/binary-valid-005.phpt
rename to mongodb-2.1.4/tests/bson-corpus/binary-valid-005.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/binary-valid-006.phpt b/mongodb-2.1.4/tests/bson-corpus/binary-valid-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/binary-valid-006.phpt
rename to mongodb-2.1.4/tests/bson-corpus/binary-valid-006.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/binary-valid-007.phpt b/mongodb-2.1.4/tests/bson-corpus/binary-valid-007.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/binary-valid-007.phpt
rename to mongodb-2.1.4/tests/bson-corpus/binary-valid-007.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/binary-valid-008.phpt b/mongodb-2.1.4/tests/bson-corpus/binary-valid-008.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/binary-valid-008.phpt
rename to mongodb-2.1.4/tests/bson-corpus/binary-valid-008.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/binary-valid-009.phpt b/mongodb-2.1.4/tests/bson-corpus/binary-valid-009.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/binary-valid-009.phpt
rename to mongodb-2.1.4/tests/bson-corpus/binary-valid-009.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/binary-valid-010.phpt b/mongodb-2.1.4/tests/bson-corpus/binary-valid-010.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/binary-valid-010.phpt
rename to mongodb-2.1.4/tests/bson-corpus/binary-valid-010.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/binary-valid-011.phpt b/mongodb-2.1.4/tests/bson-corpus/binary-valid-011.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/binary-valid-011.phpt
rename to mongodb-2.1.4/tests/bson-corpus/binary-valid-011.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/binary-valid-012.phpt b/mongodb-2.1.4/tests/bson-corpus/binary-valid-012.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/binary-valid-012.phpt
rename to mongodb-2.1.4/tests/bson-corpus/binary-valid-012.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/binary-valid-013.phpt b/mongodb-2.1.4/tests/bson-corpus/binary-valid-013.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/binary-valid-013.phpt
rename to mongodb-2.1.4/tests/bson-corpus/binary-valid-013.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/binary-valid-014.phpt b/mongodb-2.1.4/tests/bson-corpus/binary-valid-014.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/binary-valid-014.phpt
rename to mongodb-2.1.4/tests/bson-corpus/binary-valid-014.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/binary-valid-015.phpt b/mongodb-2.1.4/tests/bson-corpus/binary-valid-015.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/binary-valid-015.phpt
rename to mongodb-2.1.4/tests/bson-corpus/binary-valid-015.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/binary-valid-016.phpt b/mongodb-2.1.4/tests/bson-corpus/binary-valid-016.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/binary-valid-016.phpt
rename to mongodb-2.1.4/tests/bson-corpus/binary-valid-016.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/binary-valid-017.phpt b/mongodb-2.1.4/tests/bson-corpus/binary-valid-017.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/binary-valid-017.phpt
rename to mongodb-2.1.4/tests/bson-corpus/binary-valid-017.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/binary-valid-018.phpt b/mongodb-2.1.4/tests/bson-corpus/binary-valid-018.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/binary-valid-018.phpt
rename to mongodb-2.1.4/tests/bson-corpus/binary-valid-018.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/binary-valid-019.phpt b/mongodb-2.1.4/tests/bson-corpus/binary-valid-019.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/binary-valid-019.phpt
rename to mongodb-2.1.4/tests/bson-corpus/binary-valid-019.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/binary-valid-020.phpt b/mongodb-2.1.4/tests/bson-corpus/binary-valid-020.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/binary-valid-020.phpt
rename to mongodb-2.1.4/tests/bson-corpus/binary-valid-020.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/boolean-decodeError-001.phpt b/mongodb-2.1.4/tests/bson-corpus/boolean-decodeError-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/boolean-decodeError-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/boolean-decodeError-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/boolean-decodeError-002.phpt b/mongodb-2.1.4/tests/bson-corpus/boolean-decodeError-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/boolean-decodeError-002.phpt
rename to mongodb-2.1.4/tests/bson-corpus/boolean-decodeError-002.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/boolean-valid-001.phpt b/mongodb-2.1.4/tests/bson-corpus/boolean-valid-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/boolean-valid-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/boolean-valid-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/boolean-valid-002.phpt b/mongodb-2.1.4/tests/bson-corpus/boolean-valid-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/boolean-valid-002.phpt
rename to mongodb-2.1.4/tests/bson-corpus/boolean-valid-002.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/code-decodeError-001.phpt b/mongodb-2.1.4/tests/bson-corpus/code-decodeError-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/code-decodeError-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/code-decodeError-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/code-decodeError-002.phpt b/mongodb-2.1.4/tests/bson-corpus/code-decodeError-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/code-decodeError-002.phpt
rename to mongodb-2.1.4/tests/bson-corpus/code-decodeError-002.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/code-decodeError-003.phpt b/mongodb-2.1.4/tests/bson-corpus/code-decodeError-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/code-decodeError-003.phpt
rename to mongodb-2.1.4/tests/bson-corpus/code-decodeError-003.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/code-decodeError-004.phpt b/mongodb-2.1.4/tests/bson-corpus/code-decodeError-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/code-decodeError-004.phpt
rename to mongodb-2.1.4/tests/bson-corpus/code-decodeError-004.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/code-decodeError-005.phpt b/mongodb-2.1.4/tests/bson-corpus/code-decodeError-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/code-decodeError-005.phpt
rename to mongodb-2.1.4/tests/bson-corpus/code-decodeError-005.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/code-decodeError-006.phpt b/mongodb-2.1.4/tests/bson-corpus/code-decodeError-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/code-decodeError-006.phpt
rename to mongodb-2.1.4/tests/bson-corpus/code-decodeError-006.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/code-decodeError-007.phpt b/mongodb-2.1.4/tests/bson-corpus/code-decodeError-007.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/code-decodeError-007.phpt
rename to mongodb-2.1.4/tests/bson-corpus/code-decodeError-007.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/code-valid-001.phpt b/mongodb-2.1.4/tests/bson-corpus/code-valid-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/code-valid-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/code-valid-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/code-valid-002.phpt b/mongodb-2.1.4/tests/bson-corpus/code-valid-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/code-valid-002.phpt
rename to mongodb-2.1.4/tests/bson-corpus/code-valid-002.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/code-valid-003.phpt b/mongodb-2.1.4/tests/bson-corpus/code-valid-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/code-valid-003.phpt
rename to mongodb-2.1.4/tests/bson-corpus/code-valid-003.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/code-valid-004.phpt b/mongodb-2.1.4/tests/bson-corpus/code-valid-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/code-valid-004.phpt
rename to mongodb-2.1.4/tests/bson-corpus/code-valid-004.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/code-valid-005.phpt b/mongodb-2.1.4/tests/bson-corpus/code-valid-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/code-valid-005.phpt
rename to mongodb-2.1.4/tests/bson-corpus/code-valid-005.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/code-valid-006.phpt b/mongodb-2.1.4/tests/bson-corpus/code-valid-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/code-valid-006.phpt
rename to mongodb-2.1.4/tests/bson-corpus/code-valid-006.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/code_w_scope-decodeError-001.phpt b/mongodb-2.1.4/tests/bson-corpus/code_w_scope-decodeError-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/code_w_scope-decodeError-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/code_w_scope-decodeError-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/code_w_scope-decodeError-002.phpt b/mongodb-2.1.4/tests/bson-corpus/code_w_scope-decodeError-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/code_w_scope-decodeError-002.phpt
rename to mongodb-2.1.4/tests/bson-corpus/code_w_scope-decodeError-002.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/code_w_scope-decodeError-003.phpt b/mongodb-2.1.4/tests/bson-corpus/code_w_scope-decodeError-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/code_w_scope-decodeError-003.phpt
rename to mongodb-2.1.4/tests/bson-corpus/code_w_scope-decodeError-003.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/code_w_scope-decodeError-004.phpt b/mongodb-2.1.4/tests/bson-corpus/code_w_scope-decodeError-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/code_w_scope-decodeError-004.phpt
rename to mongodb-2.1.4/tests/bson-corpus/code_w_scope-decodeError-004.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/code_w_scope-decodeError-005.phpt b/mongodb-2.1.4/tests/bson-corpus/code_w_scope-decodeError-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/code_w_scope-decodeError-005.phpt
rename to mongodb-2.1.4/tests/bson-corpus/code_w_scope-decodeError-005.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/code_w_scope-decodeError-006.phpt b/mongodb-2.1.4/tests/bson-corpus/code_w_scope-decodeError-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/code_w_scope-decodeError-006.phpt
rename to mongodb-2.1.4/tests/bson-corpus/code_w_scope-decodeError-006.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/code_w_scope-decodeError-007.phpt b/mongodb-2.1.4/tests/bson-corpus/code_w_scope-decodeError-007.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/code_w_scope-decodeError-007.phpt
rename to mongodb-2.1.4/tests/bson-corpus/code_w_scope-decodeError-007.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/code_w_scope-decodeError-008.phpt b/mongodb-2.1.4/tests/bson-corpus/code_w_scope-decodeError-008.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/code_w_scope-decodeError-008.phpt
rename to mongodb-2.1.4/tests/bson-corpus/code_w_scope-decodeError-008.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/code_w_scope-decodeError-009.phpt b/mongodb-2.1.4/tests/bson-corpus/code_w_scope-decodeError-009.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/code_w_scope-decodeError-009.phpt
rename to mongodb-2.1.4/tests/bson-corpus/code_w_scope-decodeError-009.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/code_w_scope-decodeError-010.phpt b/mongodb-2.1.4/tests/bson-corpus/code_w_scope-decodeError-010.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/code_w_scope-decodeError-010.phpt
rename to mongodb-2.1.4/tests/bson-corpus/code_w_scope-decodeError-010.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/code_w_scope-decodeError-011.phpt b/mongodb-2.1.4/tests/bson-corpus/code_w_scope-decodeError-011.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/code_w_scope-decodeError-011.phpt
rename to mongodb-2.1.4/tests/bson-corpus/code_w_scope-decodeError-011.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/code_w_scope-valid-001.phpt b/mongodb-2.1.4/tests/bson-corpus/code_w_scope-valid-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/code_w_scope-valid-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/code_w_scope-valid-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/code_w_scope-valid-002.phpt b/mongodb-2.1.4/tests/bson-corpus/code_w_scope-valid-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/code_w_scope-valid-002.phpt
rename to mongodb-2.1.4/tests/bson-corpus/code_w_scope-valid-002.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/code_w_scope-valid-003.phpt b/mongodb-2.1.4/tests/bson-corpus/code_w_scope-valid-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/code_w_scope-valid-003.phpt
rename to mongodb-2.1.4/tests/bson-corpus/code_w_scope-valid-003.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/code_w_scope-valid-004.phpt b/mongodb-2.1.4/tests/bson-corpus/code_w_scope-valid-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/code_w_scope-valid-004.phpt
rename to mongodb-2.1.4/tests/bson-corpus/code_w_scope-valid-004.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/code_w_scope-valid-005.phpt b/mongodb-2.1.4/tests/bson-corpus/code_w_scope-valid-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/code_w_scope-valid-005.phpt
rename to mongodb-2.1.4/tests/bson-corpus/code_w_scope-valid-005.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/datetime-decodeError-001.phpt b/mongodb-2.1.4/tests/bson-corpus/datetime-decodeError-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/datetime-decodeError-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/datetime-decodeError-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/datetime-valid-001.phpt b/mongodb-2.1.4/tests/bson-corpus/datetime-valid-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/datetime-valid-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/datetime-valid-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/datetime-valid-002.phpt b/mongodb-2.1.4/tests/bson-corpus/datetime-valid-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/datetime-valid-002.phpt
rename to mongodb-2.1.4/tests/bson-corpus/datetime-valid-002.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/datetime-valid-003.phpt b/mongodb-2.1.4/tests/bson-corpus/datetime-valid-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/datetime-valid-003.phpt
rename to mongodb-2.1.4/tests/bson-corpus/datetime-valid-003.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/datetime-valid-004.phpt b/mongodb-2.1.4/tests/bson-corpus/datetime-valid-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/datetime-valid-004.phpt
rename to mongodb-2.1.4/tests/bson-corpus/datetime-valid-004.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/datetime-valid-005.phpt b/mongodb-2.1.4/tests/bson-corpus/datetime-valid-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/datetime-valid-005.phpt
rename to mongodb-2.1.4/tests/bson-corpus/datetime-valid-005.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/dbpointer-decodeError-001.phpt b/mongodb-2.1.4/tests/bson-corpus/dbpointer-decodeError-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/dbpointer-decodeError-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/dbpointer-decodeError-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/dbpointer-decodeError-002.phpt b/mongodb-2.1.4/tests/bson-corpus/dbpointer-decodeError-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/dbpointer-decodeError-002.phpt
rename to mongodb-2.1.4/tests/bson-corpus/dbpointer-decodeError-002.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/dbpointer-decodeError-003.phpt b/mongodb-2.1.4/tests/bson-corpus/dbpointer-decodeError-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/dbpointer-decodeError-003.phpt
rename to mongodb-2.1.4/tests/bson-corpus/dbpointer-decodeError-003.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/dbpointer-decodeError-004.phpt b/mongodb-2.1.4/tests/bson-corpus/dbpointer-decodeError-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/dbpointer-decodeError-004.phpt
rename to mongodb-2.1.4/tests/bson-corpus/dbpointer-decodeError-004.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/dbpointer-decodeError-005.phpt b/mongodb-2.1.4/tests/bson-corpus/dbpointer-decodeError-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/dbpointer-decodeError-005.phpt
rename to mongodb-2.1.4/tests/bson-corpus/dbpointer-decodeError-005.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/dbpointer-decodeError-006.phpt b/mongodb-2.1.4/tests/bson-corpus/dbpointer-decodeError-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/dbpointer-decodeError-006.phpt
rename to mongodb-2.1.4/tests/bson-corpus/dbpointer-decodeError-006.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/dbpointer-valid-001.phpt b/mongodb-2.1.4/tests/bson-corpus/dbpointer-valid-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/dbpointer-valid-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/dbpointer-valid-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/dbpointer-valid-002.phpt b/mongodb-2.1.4/tests/bson-corpus/dbpointer-valid-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/dbpointer-valid-002.phpt
rename to mongodb-2.1.4/tests/bson-corpus/dbpointer-valid-002.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/dbpointer-valid-003.phpt b/mongodb-2.1.4/tests/bson-corpus/dbpointer-valid-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/dbpointer-valid-003.phpt
rename to mongodb-2.1.4/tests/bson-corpus/dbpointer-valid-003.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/dbref-valid-001.phpt b/mongodb-2.1.4/tests/bson-corpus/dbref-valid-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/dbref-valid-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/dbref-valid-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/dbref-valid-002.phpt b/mongodb-2.1.4/tests/bson-corpus/dbref-valid-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/dbref-valid-002.phpt
rename to mongodb-2.1.4/tests/bson-corpus/dbref-valid-002.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/dbref-valid-003.phpt b/mongodb-2.1.4/tests/bson-corpus/dbref-valid-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/dbref-valid-003.phpt
rename to mongodb-2.1.4/tests/bson-corpus/dbref-valid-003.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/dbref-valid-004.phpt b/mongodb-2.1.4/tests/bson-corpus/dbref-valid-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/dbref-valid-004.phpt
rename to mongodb-2.1.4/tests/bson-corpus/dbref-valid-004.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/dbref-valid-005.phpt b/mongodb-2.1.4/tests/bson-corpus/dbref-valid-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/dbref-valid-005.phpt
rename to mongodb-2.1.4/tests/bson-corpus/dbref-valid-005.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/dbref-valid-006.phpt b/mongodb-2.1.4/tests/bson-corpus/dbref-valid-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/dbref-valid-006.phpt
rename to mongodb-2.1.4/tests/bson-corpus/dbref-valid-006.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/dbref-valid-007.phpt b/mongodb-2.1.4/tests/bson-corpus/dbref-valid-007.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/dbref-valid-007.phpt
rename to mongodb-2.1.4/tests/bson-corpus/dbref-valid-007.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/dbref-valid-008.phpt b/mongodb-2.1.4/tests/bson-corpus/dbref-valid-008.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/dbref-valid-008.phpt
rename to mongodb-2.1.4/tests/bson-corpus/dbref-valid-008.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/dbref-valid-009.phpt b/mongodb-2.1.4/tests/bson-corpus/dbref-valid-009.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/dbref-valid-009.phpt
rename to mongodb-2.1.4/tests/bson-corpus/dbref-valid-009.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-001.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-002.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-002.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-002.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-003.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-003.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-003.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-004.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-004.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-004.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-005.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-005.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-005.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-006.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-006.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-006.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-007.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-007.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-007.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-007.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-008.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-008.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-008.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-008.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-009.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-009.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-009.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-009.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-010.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-010.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-010.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-010.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-011.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-011.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-011.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-011.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-012.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-012.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-012.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-012.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-013.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-013.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-013.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-013.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-014.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-014.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-014.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-014.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-015.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-015.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-015.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-015.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-016.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-016.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-016.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-016.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-017.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-017.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-017.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-017.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-018.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-018.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-018.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-018.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-019.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-019.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-019.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-019.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-020.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-020.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-020.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-020.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-021.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-021.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-021.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-021.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-022.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-022.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-022.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-022.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-023.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-023.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-023.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-023.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-024.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-024.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-024.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-024.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-025.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-025.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-025.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-025.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-026.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-026.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-026.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-026.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-027.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-027.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-027.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-027.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-028.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-028.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-028.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-028.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-029.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-029.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-029.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-029.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-030.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-030.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-030.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-030.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-031.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-031.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-031.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-031.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-032.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-032.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-032.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-032.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-033.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-033.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-033.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-033.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-034.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-034.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-034.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-034.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-035.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-035.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-035.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-035.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-036.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-036.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-036.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-036.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-037.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-037.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-037.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-037.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-038.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-038.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-038.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-038.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-039.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-039.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-039.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-039.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-040.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-040.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-040.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-040.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-041.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-041.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-041.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-041.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-042.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-042.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-042.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-042.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-043.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-043.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-043.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-043.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-044.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-044.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-044.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-044.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-045.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-045.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-045.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-045.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-046.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-046.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-046.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-046.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-047.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-047.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-047.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-047.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-048.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-048.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-048.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-048.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-049.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-049.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-049.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-049.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-050.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-050.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-050.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-050.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-051.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-051.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-051.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-051.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-052.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-052.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-052.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-052.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-053.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-053.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-053.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-053.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-054.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-054.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-054.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-054.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-055.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-055.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-055.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-055.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-056.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-056.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-056.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-056.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-057.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-057.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-057.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-057.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-058.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-058.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-058.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-058.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-059.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-059.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-059.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-059.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-060.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-060.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-1-valid-060.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-1-valid-060.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-001.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-002.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-002.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-002.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-003.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-003.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-003.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-004.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-004.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-004.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-005.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-005.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-005.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-006.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-006.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-006.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-007.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-007.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-007.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-007.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-008.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-008.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-008.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-008.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-009.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-009.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-009.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-009.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-010.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-010.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-010.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-010.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-011.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-011.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-011.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-011.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-012.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-012.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-012.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-012.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-013.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-013.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-013.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-013.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-014.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-014.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-014.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-014.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-015.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-015.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-015.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-015.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-016.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-016.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-016.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-016.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-017.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-017.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-017.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-017.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-018.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-018.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-018.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-018.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-019.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-019.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-019.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-019.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-020.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-020.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-020.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-020.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-021.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-021.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-021.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-021.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-022.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-022.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-022.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-022.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-023.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-023.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-023.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-023.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-024.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-024.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-024.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-024.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-025.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-025.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-025.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-025.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-026.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-026.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-026.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-026.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-027.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-027.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-027.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-027.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-028.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-028.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-028.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-028.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-029.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-029.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-029.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-029.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-030.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-030.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-030.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-030.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-031.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-031.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-031.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-031.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-032.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-032.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-032.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-032.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-033.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-033.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-033.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-033.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-034.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-034.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-034.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-034.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-035.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-035.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-035.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-035.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-036.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-036.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-036.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-036.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-037.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-037.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-037.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-037.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-038.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-038.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-038.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-038.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-039.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-039.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-039.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-039.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-040.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-040.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-040.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-040.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-041.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-041.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-041.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-041.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-042.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-042.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-042.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-042.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-043.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-043.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-043.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-043.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-044.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-044.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-044.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-044.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-045.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-045.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-045.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-045.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-046.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-046.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-046.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-046.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-047.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-047.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-047.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-047.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-048.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-048.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-048.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-048.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-049.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-049.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-049.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-049.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-050.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-050.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-050.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-050.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-051.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-051.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-051.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-051.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-052.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-052.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-052.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-052.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-053.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-053.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-053.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-053.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-054.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-054.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-054.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-054.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-055.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-055.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-055.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-055.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-056.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-056.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-056.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-056.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-057.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-057.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-057.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-057.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-058.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-058.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-058.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-058.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-059.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-059.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-059.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-059.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-060.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-060.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-060.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-060.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-061.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-061.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-061.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-061.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-062.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-062.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-062.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-062.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-063.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-063.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-063.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-063.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-064.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-064.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-064.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-064.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-065.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-065.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-065.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-065.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-066.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-066.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-066.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-066.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-067.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-067.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-067.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-067.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-068.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-068.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-068.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-068.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-069.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-069.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-069.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-069.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-070.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-070.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-070.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-070.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-071.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-071.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-071.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-071.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-072.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-072.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-072.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-072.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-073.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-073.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-073.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-073.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-074.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-074.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-074.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-074.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-075.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-075.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-075.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-075.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-076.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-076.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-076.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-076.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-077.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-077.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-077.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-077.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-078.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-078.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-078.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-078.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-079.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-079.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-079.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-079.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-080.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-080.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-080.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-080.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-081.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-081.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-081.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-081.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-082.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-082.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-082.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-082.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-083.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-083.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-083.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-083.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-084.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-084.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-084.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-084.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-085.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-085.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-085.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-085.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-086.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-086.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-086.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-086.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-087.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-087.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-087.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-087.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-088.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-088.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-088.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-088.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-089.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-089.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-089.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-089.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-090.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-090.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-090.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-090.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-091.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-091.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-091.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-091.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-092.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-092.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-092.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-092.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-093.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-093.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-093.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-093.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-094.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-094.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-094.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-094.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-095.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-095.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-095.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-095.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-096.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-096.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-096.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-096.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-097.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-097.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-097.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-097.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-098.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-098.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-098.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-098.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-099.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-099.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-099.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-099.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-100.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-100.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-100.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-100.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-101.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-101.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-101.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-101.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-102.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-102.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-102.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-102.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-103.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-103.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-103.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-103.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-104.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-104.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-104.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-104.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-105.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-105.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-105.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-105.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-106.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-106.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-106.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-106.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-107.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-107.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-107.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-107.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-108.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-108.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-108.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-108.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-109.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-109.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-109.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-109.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-110.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-110.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-110.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-110.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-111.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-111.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-111.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-111.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-112.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-112.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-112.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-112.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-113.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-113.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-113.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-113.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-114.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-114.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-114.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-114.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-115.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-115.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-115.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-115.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-116.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-116.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-116.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-116.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-117.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-117.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-117.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-117.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-118.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-118.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-118.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-118.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-119.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-119.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-119.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-119.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-120.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-120.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-120.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-120.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-121.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-121.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-121.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-121.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-122.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-122.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-122.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-122.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-123.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-123.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-123.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-123.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-124.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-124.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-124.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-124.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-125.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-125.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-125.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-125.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-126.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-126.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-126.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-126.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-127.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-127.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-127.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-127.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-128.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-128.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-128.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-128.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-129.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-129.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-129.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-129.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-130.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-130.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-130.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-130.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-131.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-131.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-131.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-131.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-132.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-132.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-132.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-132.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-133.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-133.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-133.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-133.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-134.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-134.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-134.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-134.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-135.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-135.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-135.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-135.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-136.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-136.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-136.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-136.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-137.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-137.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-137.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-137.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-138.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-138.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-138.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-138.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-139.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-139.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-139.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-139.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-140.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-140.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-140.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-140.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-141.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-141.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-141.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-141.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-142.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-142.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-142.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-142.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-143.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-143.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-143.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-143.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-144.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-144.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-144.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-144.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-145.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-145.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-145.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-145.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-146.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-146.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-146.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-146.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-147.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-147.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-147.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-147.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-148.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-148.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-148.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-148.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-149.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-149.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-149.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-149.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-150.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-150.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-150.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-150.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-151.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-151.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-151.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-151.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-152.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-152.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-152.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-152.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-153.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-153.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-153.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-153.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-154.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-154.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-154.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-154.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-155.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-155.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-155.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-155.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-156.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-156.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-156.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-156.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-157.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-157.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-2-valid-157.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-2-valid-157.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-001.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-002.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-002.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-002.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-003.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-003.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-003.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-004.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-004.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-004.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-005.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-005.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-005.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-006.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-006.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-006.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-007.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-007.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-007.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-007.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-008.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-008.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-008.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-008.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-009.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-009.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-009.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-009.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-010.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-010.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-010.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-010.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-011.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-011.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-011.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-011.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-012.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-012.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-012.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-012.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-013.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-013.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-013.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-013.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-014.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-014.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-014.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-014.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-015.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-015.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-015.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-015.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-016.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-016.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-016.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-016.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-017.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-017.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-017.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-017.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-018.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-018.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-018.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-018.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-019.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-019.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-019.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-019.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-020.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-020.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-020.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-020.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-021.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-021.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-021.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-021.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-022.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-022.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-022.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-022.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-023.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-023.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-023.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-023.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-024.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-024.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-024.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-024.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-025.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-025.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-025.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-025.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-026.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-026.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-026.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-026.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-027.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-027.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-027.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-027.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-028.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-028.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-028.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-028.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-029.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-029.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-029.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-029.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-030.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-030.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-030.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-030.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-031.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-031.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-031.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-031.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-032.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-032.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-032.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-032.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-033.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-033.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-033.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-033.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-034.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-034.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-034.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-034.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-035.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-035.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-035.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-035.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-036.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-036.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-036.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-036.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-037.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-037.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-037.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-037.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-038.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-038.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-038.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-038.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-039.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-039.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-039.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-039.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-040.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-040.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-040.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-040.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-041.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-041.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-041.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-041.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-042.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-042.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-042.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-042.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-043.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-043.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-043.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-043.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-044.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-044.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-044.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-044.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-045.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-045.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-045.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-045.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-046.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-046.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-046.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-046.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-047.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-047.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-047.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-047.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-048.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-048.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-048.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-048.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-049.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-049.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-049.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-049.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-050.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-050.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-050.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-050.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-051.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-051.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-051.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-051.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-052.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-052.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-052.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-052.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-053.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-053.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-053.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-053.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-054.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-054.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-054.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-054.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-055.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-055.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-055.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-055.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-056.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-056.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-056.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-056.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-057.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-057.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-057.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-057.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-058.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-058.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-058.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-058.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-059.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-059.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-059.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-059.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-060.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-060.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-060.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-060.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-061.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-061.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-061.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-061.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-062.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-062.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-062.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-062.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-063.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-063.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-063.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-063.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-064.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-064.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-064.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-064.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-065.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-065.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-065.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-065.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-066.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-066.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-066.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-066.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-067.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-067.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-067.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-067.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-068.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-068.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-068.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-068.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-069.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-069.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-069.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-069.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-070.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-070.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-070.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-070.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-071.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-071.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-071.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-071.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-072.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-072.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-072.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-072.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-073.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-073.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-073.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-073.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-074.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-074.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-074.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-074.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-075.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-075.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-075.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-075.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-076.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-076.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-076.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-076.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-077.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-077.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-077.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-077.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-078.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-078.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-078.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-078.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-079.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-079.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-079.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-079.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-080.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-080.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-080.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-080.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-081.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-081.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-081.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-081.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-082.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-082.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-082.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-082.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-083.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-083.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-083.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-083.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-084.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-084.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-084.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-084.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-085.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-085.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-085.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-085.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-086.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-086.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-086.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-086.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-087.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-087.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-087.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-087.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-088.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-088.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-088.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-088.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-089.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-089.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-089.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-089.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-090.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-090.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-090.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-090.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-091.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-091.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-091.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-091.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-092.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-092.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-092.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-092.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-093.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-093.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-093.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-093.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-094.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-094.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-094.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-094.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-095.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-095.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-095.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-095.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-096.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-096.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-096.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-096.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-097.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-097.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-097.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-097.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-098.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-098.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-098.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-098.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-099.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-099.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-099.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-099.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-100.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-100.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-100.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-100.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-101.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-101.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-101.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-101.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-102.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-102.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-102.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-102.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-103.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-103.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-103.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-103.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-104.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-104.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-104.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-104.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-105.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-105.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-105.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-105.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-106.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-106.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-106.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-106.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-107.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-107.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-107.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-107.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-108.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-108.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-108.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-108.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-109.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-109.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-109.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-109.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-110.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-110.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-110.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-110.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-111.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-111.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-111.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-111.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-112.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-112.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-112.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-112.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-113.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-113.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-113.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-113.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-114.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-114.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-114.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-114.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-115.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-115.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-115.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-115.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-116.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-116.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-116.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-116.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-117.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-117.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-117.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-117.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-118.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-118.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-118.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-118.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-119.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-119.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-119.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-119.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-120.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-120.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-120.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-120.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-121.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-121.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-121.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-121.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-122.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-122.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-122.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-122.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-123.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-123.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-123.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-123.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-124.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-124.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-124.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-124.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-125.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-125.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-125.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-125.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-126.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-126.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-126.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-126.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-127.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-127.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-127.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-127.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-128.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-128.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-128.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-128.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-129.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-129.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-129.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-129.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-130.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-130.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-130.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-130.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-131.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-131.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-131.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-131.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-132.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-132.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-132.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-132.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-133.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-133.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-133.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-133.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-134.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-134.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-134.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-134.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-135.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-135.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-135.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-135.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-136.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-136.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-136.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-136.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-137.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-137.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-137.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-137.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-138.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-138.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-138.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-138.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-139.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-139.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-139.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-139.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-140.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-140.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-140.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-140.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-141.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-141.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-141.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-141.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-142.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-142.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-142.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-142.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-143.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-143.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-143.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-143.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-144.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-144.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-144.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-144.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-145.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-145.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-145.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-145.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-146.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-146.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-146.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-146.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-147.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-147.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-147.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-147.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-148.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-148.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-148.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-148.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-149.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-149.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-149.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-149.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-150.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-150.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-150.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-150.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-151.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-151.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-151.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-151.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-152.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-152.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-152.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-152.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-153.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-153.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-153.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-153.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-154.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-154.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-154.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-154.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-155.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-155.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-155.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-155.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-156.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-156.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-156.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-156.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-157.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-157.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-157.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-157.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-158.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-158.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-158.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-158.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-159.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-159.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-159.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-159.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-160.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-160.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-160.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-160.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-161.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-161.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-161.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-161.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-162.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-162.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-162.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-162.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-163.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-163.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-163.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-163.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-164.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-164.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-164.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-164.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-165.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-165.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-165.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-165.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-166.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-166.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-166.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-166.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-167.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-167.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-167.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-167.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-168.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-168.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-168.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-168.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-169.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-169.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-169.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-169.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-170.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-170.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-170.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-170.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-171.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-171.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-171.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-171.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-172.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-172.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-172.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-172.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-173.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-173.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-173.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-173.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-174.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-174.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-174.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-174.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-175.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-175.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-175.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-175.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-176.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-176.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-176.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-176.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-177.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-177.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-177.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-177.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-178.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-178.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-178.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-178.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-179.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-179.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-179.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-179.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-180.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-180.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-180.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-180.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-181.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-181.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-181.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-181.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-182.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-182.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-182.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-182.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-183.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-183.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-183.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-183.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-184.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-184.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-184.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-184.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-185.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-185.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-185.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-185.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-186.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-186.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-186.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-186.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-187.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-187.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-187.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-187.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-188.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-188.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-188.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-188.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-189.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-189.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-189.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-189.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-190.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-190.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-190.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-190.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-191.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-191.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-191.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-191.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-192.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-192.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-192.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-192.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-193.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-193.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-193.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-193.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-194.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-194.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-194.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-194.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-195.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-195.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-195.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-195.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-196.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-196.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-196.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-196.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-197.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-197.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-197.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-197.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-198.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-198.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-198.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-198.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-199.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-199.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-199.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-199.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-200.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-200.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-200.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-200.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-201.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-201.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-201.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-201.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-202.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-202.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-202.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-202.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-203.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-203.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-203.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-203.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-204.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-204.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-204.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-204.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-205.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-205.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-205.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-205.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-206.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-206.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-206.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-206.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-207.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-207.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-207.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-207.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-208.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-208.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-208.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-208.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-209.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-209.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-209.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-209.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-210.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-210.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-210.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-210.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-211.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-211.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-211.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-211.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-212.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-212.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-212.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-212.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-213.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-213.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-213.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-213.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-214.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-214.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-214.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-214.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-215.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-215.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-215.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-215.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-216.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-216.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-216.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-216.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-217.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-217.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-217.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-217.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-218.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-218.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-218.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-218.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-219.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-219.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-219.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-219.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-220.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-220.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-220.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-220.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-221.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-221.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-221.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-221.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-222.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-222.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-222.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-222.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-223.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-223.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-223.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-223.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-224.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-224.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-224.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-224.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-225.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-225.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-225.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-225.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-226.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-226.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-226.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-226.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-227.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-227.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-227.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-227.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-228.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-228.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-228.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-228.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-229.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-229.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-229.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-229.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-230.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-230.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-230.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-230.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-231.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-231.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-231.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-231.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-232.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-232.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-232.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-232.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-233.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-233.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-233.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-233.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-234.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-234.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-234.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-234.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-235.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-235.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-235.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-235.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-236.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-236.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-236.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-236.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-237.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-237.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-237.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-237.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-238.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-238.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-238.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-238.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-239.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-239.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-239.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-239.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-240.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-240.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-240.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-240.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-241.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-241.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-241.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-241.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-242.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-242.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-242.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-242.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-243.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-243.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-243.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-243.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-244.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-244.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-244.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-244.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-245.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-245.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-245.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-245.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-246.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-246.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-246.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-246.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-247.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-247.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-247.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-247.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-248.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-248.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-248.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-248.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-249.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-249.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-249.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-249.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-250.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-250.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-250.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-250.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-251.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-251.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-251.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-251.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-252.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-252.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-252.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-252.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-253.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-253.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-253.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-253.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-254.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-254.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-254.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-254.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-255.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-255.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-255.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-255.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-256.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-256.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-256.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-256.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-257.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-257.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-257.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-257.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-258.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-258.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-258.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-258.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-259.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-259.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-259.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-259.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-260.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-260.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-260.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-260.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-261.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-261.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-261.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-261.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-262.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-262.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-262.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-262.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-263.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-263.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-263.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-263.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-264.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-264.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-264.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-264.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-265.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-265.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-265.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-265.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-266.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-266.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-266.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-266.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-267.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-267.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-267.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-267.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-268.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-268.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-268.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-268.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-269.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-269.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-269.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-269.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-270.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-270.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-270.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-270.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-271.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-271.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-271.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-271.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-272.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-272.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-272.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-272.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-273.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-273.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-273.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-273.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-274.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-274.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-274.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-274.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-275.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-275.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-275.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-275.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-276.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-276.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-276.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-276.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-277.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-277.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-277.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-277.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-278.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-278.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-278.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-278.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-279.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-279.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-279.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-279.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-280.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-280.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-280.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-280.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-281.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-281.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-281.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-281.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-282.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-282.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-282.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-282.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-283.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-283.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-283.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-283.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-284.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-284.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-284.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-284.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-285.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-285.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-285.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-285.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-286.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-286.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-286.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-286.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-287.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-287.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-287.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-287.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-288.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-288.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-288.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-288.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-289.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-289.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-289.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-289.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-290.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-290.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-290.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-290.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-291.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-291.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-291.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-291.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-292.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-292.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-292.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-292.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-293.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-293.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-293.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-293.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-294.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-294.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-294.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-294.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-295.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-295.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-295.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-295.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-296.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-296.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-296.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-296.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-297.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-297.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-297.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-297.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-298.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-298.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-298.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-298.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-299.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-299.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-299.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-299.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-300.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-300.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-300.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-300.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-301.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-301.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-301.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-301.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-302.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-302.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-302.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-302.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-303.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-303.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-303.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-303.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-304.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-304.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-304.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-304.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-305.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-305.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-305.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-305.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-306.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-306.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-306.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-306.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-307.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-307.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-307.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-307.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-308.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-308.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-3-valid-308.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-3-valid-308.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-4-parseError-001.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-4-parseError-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-4-parseError-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-4-parseError-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-4-parseError-002.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-4-parseError-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-4-parseError-002.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-4-parseError-002.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-4-parseError-003.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-4-parseError-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-4-parseError-003.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-4-parseError-003.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-4-parseError-004.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-4-parseError-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-4-parseError-004.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-4-parseError-004.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-4-parseError-005.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-4-parseError-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-4-parseError-005.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-4-parseError-005.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-4-parseError-006.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-4-parseError-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-4-parseError-006.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-4-parseError-006.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-4-parseError-007.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-4-parseError-007.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-4-parseError-007.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-4-parseError-007.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-4-parseError-008.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-4-parseError-008.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-4-parseError-008.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-4-parseError-008.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-4-parseError-009.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-4-parseError-009.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-4-parseError-009.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-4-parseError-009.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-4-parseError-010.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-4-parseError-010.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-4-parseError-010.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-4-parseError-010.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-4-parseError-011.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-4-parseError-011.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-4-parseError-011.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-4-parseError-011.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-4-parseError-012.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-4-parseError-012.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-4-parseError-012.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-4-parseError-012.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-4-parseError-013.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-4-parseError-013.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-4-parseError-013.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-4-parseError-013.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-4-parseError-014.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-4-parseError-014.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-4-parseError-014.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-4-parseError-014.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-4-parseError-015.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-4-parseError-015.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-4-parseError-015.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-4-parseError-015.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-4-parseError-016.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-4-parseError-016.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-4-parseError-016.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-4-parseError-016.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-4-parseError-017.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-4-parseError-017.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-4-parseError-017.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-4-parseError-017.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-4-parseError-018.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-4-parseError-018.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-4-parseError-018.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-4-parseError-018.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-4-parseError-019.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-4-parseError-019.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-4-parseError-019.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-4-parseError-019.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-4-parseError-020.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-4-parseError-020.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-4-parseError-020.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-4-parseError-020.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-4-valid-001.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-4-valid-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-4-valid-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-4-valid-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-4-valid-002.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-4-valid-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-4-valid-002.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-4-valid-002.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-4-valid-003.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-4-valid-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-4-valid-003.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-4-valid-003.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-4-valid-004.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-4-valid-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-4-valid-004.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-4-valid-004.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-4-valid-005.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-4-valid-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-4-valid-005.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-4-valid-005.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-4-valid-006.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-4-valid-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-4-valid-006.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-4-valid-006.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-4-valid-007.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-4-valid-007.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-4-valid-007.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-4-valid-007.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-4-valid-008.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-4-valid-008.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-4-valid-008.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-4-valid-008.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-4-valid-009.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-4-valid-009.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-4-valid-009.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-4-valid-009.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-4-valid-010.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-4-valid-010.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-4-valid-010.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-4-valid-010.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-4-valid-011.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-4-valid-011.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-4-valid-011.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-4-valid-011.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-4-valid-012.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-4-valid-012.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-4-valid-012.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-4-valid-012.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-4-valid-013.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-4-valid-013.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-4-valid-013.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-4-valid-013.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-001.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-002.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-002.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-002.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-003.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-003.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-003.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-004.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-004.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-004.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-005.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-005.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-005.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-006.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-006.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-006.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-007.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-007.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-007.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-007.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-008.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-008.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-008.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-008.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-009.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-009.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-009.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-009.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-010.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-010.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-010.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-010.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-011.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-011.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-011.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-011.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-012.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-012.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-012.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-012.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-013.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-013.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-013.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-013.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-014.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-014.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-014.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-014.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-015.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-015.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-015.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-015.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-016.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-016.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-016.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-016.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-017.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-017.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-017.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-017.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-018.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-018.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-018.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-018.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-019.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-019.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-019.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-019.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-020.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-020.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-020.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-020.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-021.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-021.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-021.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-021.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-022.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-022.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-022.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-022.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-023.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-023.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-023.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-023.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-024.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-024.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-024.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-024.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-025.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-025.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-025.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-025.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-026.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-026.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-026.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-026.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-027.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-027.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-027.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-027.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-028.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-028.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-028.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-028.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-029.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-029.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-029.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-029.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-030.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-030.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-030.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-030.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-031.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-031.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-031.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-031.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-032.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-032.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-032.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-032.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-033.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-033.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-033.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-033.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-034.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-034.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-034.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-034.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-035.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-035.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-035.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-035.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-036.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-036.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-036.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-036.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-037.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-037.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-037.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-037.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-038.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-038.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-038.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-038.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-039.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-039.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-039.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-039.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-040.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-040.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-040.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-040.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-041.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-041.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-041.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-041.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-042.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-042.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-042.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-042.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-043.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-043.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-043.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-043.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-044.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-044.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-044.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-044.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-045.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-045.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-045.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-045.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-046.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-046.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-046.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-046.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-047.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-047.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-047.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-047.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-048.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-048.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-048.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-048.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-049.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-049.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-049.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-049.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-050.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-050.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-050.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-050.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-051.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-051.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-051.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-051.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-052.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-052.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-052.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-052.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-053.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-053.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-053.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-053.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-054.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-054.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-054.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-054.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-055.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-055.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-055.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-055.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-056.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-056.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-056.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-056.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-057.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-057.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-057.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-057.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-058.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-058.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-058.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-058.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-059.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-059.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-059.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-059.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-060.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-060.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-060.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-060.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-061.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-061.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-061.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-061.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-062.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-062.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-062.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-062.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-063.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-063.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-063.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-063.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-064.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-064.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-064.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-064.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-065.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-065.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-065.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-065.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-066.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-066.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-066.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-066.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-067.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-067.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-5-valid-067.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-5-valid-067.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-001.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-002.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-002.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-002.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-003.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-003.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-003.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-004.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-004.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-004.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-005.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-005.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-005.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-006.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-006.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-006.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-007.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-007.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-007.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-007.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-008.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-008.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-008.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-008.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-009.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-009.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-009.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-009.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-010.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-010.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-010.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-010.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-011.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-011.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-011.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-011.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-012.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-012.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-012.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-012.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-013.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-013.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-013.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-013.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-014.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-014.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-014.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-014.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-015.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-015.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-015.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-015.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-016.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-016.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-016.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-016.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-017.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-017.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-017.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-017.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-018.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-018.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-018.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-018.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-019.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-019.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-019.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-019.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-020.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-020.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-020.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-020.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-021.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-021.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-021.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-021.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-022.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-022.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-022.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-022.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-023.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-023.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-023.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-023.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-024.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-024.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-024.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-024.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-025.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-025.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-025.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-025.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-026.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-026.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-026.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-026.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-027.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-027.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-027.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-027.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-028.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-028.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-028.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-028.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-029.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-029.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-029.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-029.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-030.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-030.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-030.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-030.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-031.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-031.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-6-parseError-031.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-6-parseError-031.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-001.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-002.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-002.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-002.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-003.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-003.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-003.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-004.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-004.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-004.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-005.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-005.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-005.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-006.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-006.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-006.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-007.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-007.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-007.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-007.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-008.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-008.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-008.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-008.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-009.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-009.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-009.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-009.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-010.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-010.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-010.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-010.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-011.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-011.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-011.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-011.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-012.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-012.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-012.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-012.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-013.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-013.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-013.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-013.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-014.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-014.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-014.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-014.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-015.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-015.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-015.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-015.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-016.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-016.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-016.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-016.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-017.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-017.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-017.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-017.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-018.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-018.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-018.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-018.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-019.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-019.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-019.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-019.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-020.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-020.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-020.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-020.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-021.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-021.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-021.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-021.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-022.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-022.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-022.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-022.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-023.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-023.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-023.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-023.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-024.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-024.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-024.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-024.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-025.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-025.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-025.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-025.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-026.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-026.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-026.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-026.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-027.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-027.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-027.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-027.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-028.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-028.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-028.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-028.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-029.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-029.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-029.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-029.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-030.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-030.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-030.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-030.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-031.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-031.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-031.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-031.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-032.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-032.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-032.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-032.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-033.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-033.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-033.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-033.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-034.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-034.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-034.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-034.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-035.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-035.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-035.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-035.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-036.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-036.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-036.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-036.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-037.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-037.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-037.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-037.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-038.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-038.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-038.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-038.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-039.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-039.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-039.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-039.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-040.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-040.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-040.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-040.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-041.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-041.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-041.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-041.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-042.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-042.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-042.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-042.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-043.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-043.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-043.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-043.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-044.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-044.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-044.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-044.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-045.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-045.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-045.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-045.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-046.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-046.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-046.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-046.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-047.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-047.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-047.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-047.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-048.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-048.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-048.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-048.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-049.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-049.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-049.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-049.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-050.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-050.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-050.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-050.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-051.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-051.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-051.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-051.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-052.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-052.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-052.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-052.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-053.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-053.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-053.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-053.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-054.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-054.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-054.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-054.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-055.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-055.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-055.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-055.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-056.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-056.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-056.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-056.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-057.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-057.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-057.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-057.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-058.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-058.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-058.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-058.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-059.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-059.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-059.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-059.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-060.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-060.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-060.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-060.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-061.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-061.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-061.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-061.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-062.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-062.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-062.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-062.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-063.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-063.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-063.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-063.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-064.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-064.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-064.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-064.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-065.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-065.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-065.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-065.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-066.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-066.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-066.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-066.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-067.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-067.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-067.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-067.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-068.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-068.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-068.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-068.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-069.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-069.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-069.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-069.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-070.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-070.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-070.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-070.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-071.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-071.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-071.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-071.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-072.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-072.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-072.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-072.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-073.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-073.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-073.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-073.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-074.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-074.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-074.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-074.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-075.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-075.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-075.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-075.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-076.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-076.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-076.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-076.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-077.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-077.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-077.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-077.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-078.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-078.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-078.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-078.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-079.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-079.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-079.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-079.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-080.phpt b/mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-080.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/decimal128-7-parseError-080.phpt
rename to mongodb-2.1.4/tests/bson-corpus/decimal128-7-parseError-080.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/document-decodeError-001.phpt b/mongodb-2.1.4/tests/bson-corpus/document-decodeError-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/document-decodeError-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/document-decodeError-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/document-decodeError-002.phpt b/mongodb-2.1.4/tests/bson-corpus/document-decodeError-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/document-decodeError-002.phpt
rename to mongodb-2.1.4/tests/bson-corpus/document-decodeError-002.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/document-decodeError-003.phpt b/mongodb-2.1.4/tests/bson-corpus/document-decodeError-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/document-decodeError-003.phpt
rename to mongodb-2.1.4/tests/bson-corpus/document-decodeError-003.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/document-decodeError-004.phpt b/mongodb-2.1.4/tests/bson-corpus/document-decodeError-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/document-decodeError-004.phpt
rename to mongodb-2.1.4/tests/bson-corpus/document-decodeError-004.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/document-valid-001.phpt b/mongodb-2.1.4/tests/bson-corpus/document-valid-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/document-valid-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/document-valid-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/document-valid-002.phpt b/mongodb-2.1.4/tests/bson-corpus/document-valid-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/document-valid-002.phpt
rename to mongodb-2.1.4/tests/bson-corpus/document-valid-002.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/document-valid-003.phpt b/mongodb-2.1.4/tests/bson-corpus/document-valid-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/document-valid-003.phpt
rename to mongodb-2.1.4/tests/bson-corpus/document-valid-003.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/document-valid-004.phpt b/mongodb-2.1.4/tests/bson-corpus/document-valid-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/document-valid-004.phpt
rename to mongodb-2.1.4/tests/bson-corpus/document-valid-004.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/document-valid-005.phpt b/mongodb-2.1.4/tests/bson-corpus/document-valid-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/document-valid-005.phpt
rename to mongodb-2.1.4/tests/bson-corpus/document-valid-005.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/document-valid-006.phpt b/mongodb-2.1.4/tests/bson-corpus/document-valid-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/document-valid-006.phpt
rename to mongodb-2.1.4/tests/bson-corpus/document-valid-006.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/document-valid-007.phpt b/mongodb-2.1.4/tests/bson-corpus/document-valid-007.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/document-valid-007.phpt
rename to mongodb-2.1.4/tests/bson-corpus/document-valid-007.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/double-decodeError-001.phpt b/mongodb-2.1.4/tests/bson-corpus/double-decodeError-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/double-decodeError-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/double-decodeError-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/double-valid-001.phpt b/mongodb-2.1.4/tests/bson-corpus/double-valid-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/double-valid-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/double-valid-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/double-valid-002.phpt b/mongodb-2.1.4/tests/bson-corpus/double-valid-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/double-valid-002.phpt
rename to mongodb-2.1.4/tests/bson-corpus/double-valid-002.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/double-valid-003.phpt b/mongodb-2.1.4/tests/bson-corpus/double-valid-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/double-valid-003.phpt
rename to mongodb-2.1.4/tests/bson-corpus/double-valid-003.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/double-valid-004.phpt b/mongodb-2.1.4/tests/bson-corpus/double-valid-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/double-valid-004.phpt
rename to mongodb-2.1.4/tests/bson-corpus/double-valid-004.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/double-valid-005.phpt b/mongodb-2.1.4/tests/bson-corpus/double-valid-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/double-valid-005.phpt
rename to mongodb-2.1.4/tests/bson-corpus/double-valid-005.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/double-valid-006.phpt b/mongodb-2.1.4/tests/bson-corpus/double-valid-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/double-valid-006.phpt
rename to mongodb-2.1.4/tests/bson-corpus/double-valid-006.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/double-valid-007.phpt b/mongodb-2.1.4/tests/bson-corpus/double-valid-007.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/double-valid-007.phpt
rename to mongodb-2.1.4/tests/bson-corpus/double-valid-007.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/double-valid-008.phpt b/mongodb-2.1.4/tests/bson-corpus/double-valid-008.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/double-valid-008.phpt
rename to mongodb-2.1.4/tests/bson-corpus/double-valid-008.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/double-valid-009.phpt b/mongodb-2.1.4/tests/bson-corpus/double-valid-009.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/double-valid-009.phpt
rename to mongodb-2.1.4/tests/bson-corpus/double-valid-009.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/double-valid-010.phpt b/mongodb-2.1.4/tests/bson-corpus/double-valid-010.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/double-valid-010.phpt
rename to mongodb-2.1.4/tests/bson-corpus/double-valid-010.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/double-valid-011.phpt b/mongodb-2.1.4/tests/bson-corpus/double-valid-011.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/double-valid-011.phpt
rename to mongodb-2.1.4/tests/bson-corpus/double-valid-011.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/double-valid-012.phpt b/mongodb-2.1.4/tests/bson-corpus/double-valid-012.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/double-valid-012.phpt
rename to mongodb-2.1.4/tests/bson-corpus/double-valid-012.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/int32-decodeError-001.phpt b/mongodb-2.1.4/tests/bson-corpus/int32-decodeError-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/int32-decodeError-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/int32-decodeError-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/int32-valid-001.phpt b/mongodb-2.1.4/tests/bson-corpus/int32-valid-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/int32-valid-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/int32-valid-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/int32-valid-002.phpt b/mongodb-2.1.4/tests/bson-corpus/int32-valid-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/int32-valid-002.phpt
rename to mongodb-2.1.4/tests/bson-corpus/int32-valid-002.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/int32-valid-003.phpt b/mongodb-2.1.4/tests/bson-corpus/int32-valid-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/int32-valid-003.phpt
rename to mongodb-2.1.4/tests/bson-corpus/int32-valid-003.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/int32-valid-004.phpt b/mongodb-2.1.4/tests/bson-corpus/int32-valid-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/int32-valid-004.phpt
rename to mongodb-2.1.4/tests/bson-corpus/int32-valid-004.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/int32-valid-005.phpt b/mongodb-2.1.4/tests/bson-corpus/int32-valid-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/int32-valid-005.phpt
rename to mongodb-2.1.4/tests/bson-corpus/int32-valid-005.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/int64-decodeError-001.phpt b/mongodb-2.1.4/tests/bson-corpus/int64-decodeError-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/int64-decodeError-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/int64-decodeError-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/int64-valid-001.phpt b/mongodb-2.1.4/tests/bson-corpus/int64-valid-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/int64-valid-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/int64-valid-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/int64-valid-002.phpt b/mongodb-2.1.4/tests/bson-corpus/int64-valid-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/int64-valid-002.phpt
rename to mongodb-2.1.4/tests/bson-corpus/int64-valid-002.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/int64-valid-003.phpt b/mongodb-2.1.4/tests/bson-corpus/int64-valid-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/int64-valid-003.phpt
rename to mongodb-2.1.4/tests/bson-corpus/int64-valid-003.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/int64-valid-004.phpt b/mongodb-2.1.4/tests/bson-corpus/int64-valid-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/int64-valid-004.phpt
rename to mongodb-2.1.4/tests/bson-corpus/int64-valid-004.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/int64-valid-005.phpt b/mongodb-2.1.4/tests/bson-corpus/int64-valid-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/int64-valid-005.phpt
rename to mongodb-2.1.4/tests/bson-corpus/int64-valid-005.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/maxkey-valid-001.phpt b/mongodb-2.1.4/tests/bson-corpus/maxkey-valid-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/maxkey-valid-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/maxkey-valid-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/minkey-valid-001.phpt b/mongodb-2.1.4/tests/bson-corpus/minkey-valid-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/minkey-valid-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/minkey-valid-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/multi-type-deprecated-valid-001.phpt b/mongodb-2.1.4/tests/bson-corpus/multi-type-deprecated-valid-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/multi-type-deprecated-valid-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/multi-type-deprecated-valid-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/multi-type-valid-001.phpt b/mongodb-2.1.4/tests/bson-corpus/multi-type-valid-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/multi-type-valid-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/multi-type-valid-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/null-valid-001.phpt b/mongodb-2.1.4/tests/bson-corpus/null-valid-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/null-valid-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/null-valid-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/oid-decodeError-001.phpt b/mongodb-2.1.4/tests/bson-corpus/oid-decodeError-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/oid-decodeError-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/oid-decodeError-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/oid-valid-001.phpt b/mongodb-2.1.4/tests/bson-corpus/oid-valid-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/oid-valid-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/oid-valid-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/oid-valid-002.phpt b/mongodb-2.1.4/tests/bson-corpus/oid-valid-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/oid-valid-002.phpt
rename to mongodb-2.1.4/tests/bson-corpus/oid-valid-002.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/oid-valid-003.phpt b/mongodb-2.1.4/tests/bson-corpus/oid-valid-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/oid-valid-003.phpt
rename to mongodb-2.1.4/tests/bson-corpus/oid-valid-003.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/regex-decodeError-001.phpt b/mongodb-2.1.4/tests/bson-corpus/regex-decodeError-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/regex-decodeError-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/regex-decodeError-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/regex-decodeError-002.phpt b/mongodb-2.1.4/tests/bson-corpus/regex-decodeError-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/regex-decodeError-002.phpt
rename to mongodb-2.1.4/tests/bson-corpus/regex-decodeError-002.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/regex-valid-001.phpt b/mongodb-2.1.4/tests/bson-corpus/regex-valid-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/regex-valid-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/regex-valid-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/regex-valid-002.phpt b/mongodb-2.1.4/tests/bson-corpus/regex-valid-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/regex-valid-002.phpt
rename to mongodb-2.1.4/tests/bson-corpus/regex-valid-002.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/regex-valid-003.phpt b/mongodb-2.1.4/tests/bson-corpus/regex-valid-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/regex-valid-003.phpt
rename to mongodb-2.1.4/tests/bson-corpus/regex-valid-003.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/regex-valid-004.phpt b/mongodb-2.1.4/tests/bson-corpus/regex-valid-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/regex-valid-004.phpt
rename to mongodb-2.1.4/tests/bson-corpus/regex-valid-004.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/regex-valid-005.phpt b/mongodb-2.1.4/tests/bson-corpus/regex-valid-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/regex-valid-005.phpt
rename to mongodb-2.1.4/tests/bson-corpus/regex-valid-005.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/regex-valid-006.phpt b/mongodb-2.1.4/tests/bson-corpus/regex-valid-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/regex-valid-006.phpt
rename to mongodb-2.1.4/tests/bson-corpus/regex-valid-006.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/regex-valid-007.phpt b/mongodb-2.1.4/tests/bson-corpus/regex-valid-007.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/regex-valid-007.phpt
rename to mongodb-2.1.4/tests/bson-corpus/regex-valid-007.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/regex-valid-008.phpt b/mongodb-2.1.4/tests/bson-corpus/regex-valid-008.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/regex-valid-008.phpt
rename to mongodb-2.1.4/tests/bson-corpus/regex-valid-008.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/regex-valid-009.phpt b/mongodb-2.1.4/tests/bson-corpus/regex-valid-009.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/regex-valid-009.phpt
rename to mongodb-2.1.4/tests/bson-corpus/regex-valid-009.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/string-decodeError-001.phpt b/mongodb-2.1.4/tests/bson-corpus/string-decodeError-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/string-decodeError-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/string-decodeError-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/string-decodeError-002.phpt b/mongodb-2.1.4/tests/bson-corpus/string-decodeError-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/string-decodeError-002.phpt
rename to mongodb-2.1.4/tests/bson-corpus/string-decodeError-002.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/string-decodeError-003.phpt b/mongodb-2.1.4/tests/bson-corpus/string-decodeError-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/string-decodeError-003.phpt
rename to mongodb-2.1.4/tests/bson-corpus/string-decodeError-003.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/string-decodeError-004.phpt b/mongodb-2.1.4/tests/bson-corpus/string-decodeError-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/string-decodeError-004.phpt
rename to mongodb-2.1.4/tests/bson-corpus/string-decodeError-004.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/string-decodeError-005.phpt b/mongodb-2.1.4/tests/bson-corpus/string-decodeError-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/string-decodeError-005.phpt
rename to mongodb-2.1.4/tests/bson-corpus/string-decodeError-005.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/string-decodeError-006.phpt b/mongodb-2.1.4/tests/bson-corpus/string-decodeError-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/string-decodeError-006.phpt
rename to mongodb-2.1.4/tests/bson-corpus/string-decodeError-006.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/string-decodeError-007.phpt b/mongodb-2.1.4/tests/bson-corpus/string-decodeError-007.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/string-decodeError-007.phpt
rename to mongodb-2.1.4/tests/bson-corpus/string-decodeError-007.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/string-valid-001.phpt b/mongodb-2.1.4/tests/bson-corpus/string-valid-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/string-valid-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/string-valid-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/string-valid-002.phpt b/mongodb-2.1.4/tests/bson-corpus/string-valid-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/string-valid-002.phpt
rename to mongodb-2.1.4/tests/bson-corpus/string-valid-002.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/string-valid-003.phpt b/mongodb-2.1.4/tests/bson-corpus/string-valid-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/string-valid-003.phpt
rename to mongodb-2.1.4/tests/bson-corpus/string-valid-003.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/string-valid-004.phpt b/mongodb-2.1.4/tests/bson-corpus/string-valid-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/string-valid-004.phpt
rename to mongodb-2.1.4/tests/bson-corpus/string-valid-004.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/string-valid-005.phpt b/mongodb-2.1.4/tests/bson-corpus/string-valid-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/string-valid-005.phpt
rename to mongodb-2.1.4/tests/bson-corpus/string-valid-005.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/string-valid-006.phpt b/mongodb-2.1.4/tests/bson-corpus/string-valid-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/string-valid-006.phpt
rename to mongodb-2.1.4/tests/bson-corpus/string-valid-006.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/string-valid-007.phpt b/mongodb-2.1.4/tests/bson-corpus/string-valid-007.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/string-valid-007.phpt
rename to mongodb-2.1.4/tests/bson-corpus/string-valid-007.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/symbol-decodeError-001.phpt b/mongodb-2.1.4/tests/bson-corpus/symbol-decodeError-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/symbol-decodeError-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/symbol-decodeError-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/symbol-decodeError-002.phpt b/mongodb-2.1.4/tests/bson-corpus/symbol-decodeError-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/symbol-decodeError-002.phpt
rename to mongodb-2.1.4/tests/bson-corpus/symbol-decodeError-002.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/symbol-decodeError-003.phpt b/mongodb-2.1.4/tests/bson-corpus/symbol-decodeError-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/symbol-decodeError-003.phpt
rename to mongodb-2.1.4/tests/bson-corpus/symbol-decodeError-003.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/symbol-decodeError-004.phpt b/mongodb-2.1.4/tests/bson-corpus/symbol-decodeError-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/symbol-decodeError-004.phpt
rename to mongodb-2.1.4/tests/bson-corpus/symbol-decodeError-004.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/symbol-decodeError-005.phpt b/mongodb-2.1.4/tests/bson-corpus/symbol-decodeError-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/symbol-decodeError-005.phpt
rename to mongodb-2.1.4/tests/bson-corpus/symbol-decodeError-005.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/symbol-decodeError-006.phpt b/mongodb-2.1.4/tests/bson-corpus/symbol-decodeError-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/symbol-decodeError-006.phpt
rename to mongodb-2.1.4/tests/bson-corpus/symbol-decodeError-006.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/symbol-decodeError-007.phpt b/mongodb-2.1.4/tests/bson-corpus/symbol-decodeError-007.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/symbol-decodeError-007.phpt
rename to mongodb-2.1.4/tests/bson-corpus/symbol-decodeError-007.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/symbol-valid-001.phpt b/mongodb-2.1.4/tests/bson-corpus/symbol-valid-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/symbol-valid-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/symbol-valid-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/symbol-valid-002.phpt b/mongodb-2.1.4/tests/bson-corpus/symbol-valid-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/symbol-valid-002.phpt
rename to mongodb-2.1.4/tests/bson-corpus/symbol-valid-002.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/symbol-valid-003.phpt b/mongodb-2.1.4/tests/bson-corpus/symbol-valid-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/symbol-valid-003.phpt
rename to mongodb-2.1.4/tests/bson-corpus/symbol-valid-003.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/symbol-valid-004.phpt b/mongodb-2.1.4/tests/bson-corpus/symbol-valid-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/symbol-valid-004.phpt
rename to mongodb-2.1.4/tests/bson-corpus/symbol-valid-004.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/symbol-valid-005.phpt b/mongodb-2.1.4/tests/bson-corpus/symbol-valid-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/symbol-valid-005.phpt
rename to mongodb-2.1.4/tests/bson-corpus/symbol-valid-005.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/symbol-valid-006.phpt b/mongodb-2.1.4/tests/bson-corpus/symbol-valid-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/symbol-valid-006.phpt
rename to mongodb-2.1.4/tests/bson-corpus/symbol-valid-006.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/timestamp-decodeError-001.phpt b/mongodb-2.1.4/tests/bson-corpus/timestamp-decodeError-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/timestamp-decodeError-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/timestamp-decodeError-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/timestamp-valid-001.phpt b/mongodb-2.1.4/tests/bson-corpus/timestamp-valid-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/timestamp-valid-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/timestamp-valid-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/timestamp-valid-002.phpt b/mongodb-2.1.4/tests/bson-corpus/timestamp-valid-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/timestamp-valid-002.phpt
rename to mongodb-2.1.4/tests/bson-corpus/timestamp-valid-002.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/timestamp-valid-003.phpt b/mongodb-2.1.4/tests/bson-corpus/timestamp-valid-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/timestamp-valid-003.phpt
rename to mongodb-2.1.4/tests/bson-corpus/timestamp-valid-003.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/timestamp-valid-004.phpt b/mongodb-2.1.4/tests/bson-corpus/timestamp-valid-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/timestamp-valid-004.phpt
rename to mongodb-2.1.4/tests/bson-corpus/timestamp-valid-004.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-decodeError-001.phpt b/mongodb-2.1.4/tests/bson-corpus/top-decodeError-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-decodeError-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-decodeError-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-decodeError-002.phpt b/mongodb-2.1.4/tests/bson-corpus/top-decodeError-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-decodeError-002.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-decodeError-002.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-decodeError-003.phpt b/mongodb-2.1.4/tests/bson-corpus/top-decodeError-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-decodeError-003.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-decodeError-003.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-decodeError-004.phpt b/mongodb-2.1.4/tests/bson-corpus/top-decodeError-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-decodeError-004.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-decodeError-004.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-decodeError-005.phpt b/mongodb-2.1.4/tests/bson-corpus/top-decodeError-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-decodeError-005.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-decodeError-005.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-decodeError-006.phpt b/mongodb-2.1.4/tests/bson-corpus/top-decodeError-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-decodeError-006.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-decodeError-006.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-decodeError-007.phpt b/mongodb-2.1.4/tests/bson-corpus/top-decodeError-007.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-decodeError-007.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-decodeError-007.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-decodeError-008.phpt b/mongodb-2.1.4/tests/bson-corpus/top-decodeError-008.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-decodeError-008.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-decodeError-008.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-decodeError-009.phpt b/mongodb-2.1.4/tests/bson-corpus/top-decodeError-009.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-decodeError-009.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-decodeError-009.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-decodeError-010.phpt b/mongodb-2.1.4/tests/bson-corpus/top-decodeError-010.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-decodeError-010.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-decodeError-010.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-decodeError-011.phpt b/mongodb-2.1.4/tests/bson-corpus/top-decodeError-011.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-decodeError-011.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-decodeError-011.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-decodeError-012.phpt b/mongodb-2.1.4/tests/bson-corpus/top-decodeError-012.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-decodeError-012.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-decodeError-012.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-decodeError-013.phpt b/mongodb-2.1.4/tests/bson-corpus/top-decodeError-013.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-decodeError-013.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-decodeError-013.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-decodeError-014.phpt b/mongodb-2.1.4/tests/bson-corpus/top-decodeError-014.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-decodeError-014.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-decodeError-014.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-decodeError-015.phpt b/mongodb-2.1.4/tests/bson-corpus/top-decodeError-015.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-decodeError-015.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-decodeError-015.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-parseError-001.phpt b/mongodb-2.1.4/tests/bson-corpus/top-parseError-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-parseError-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-parseError-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-parseError-002.phpt b/mongodb-2.1.4/tests/bson-corpus/top-parseError-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-parseError-002.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-parseError-002.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-parseError-003.phpt b/mongodb-2.1.4/tests/bson-corpus/top-parseError-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-parseError-003.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-parseError-003.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-parseError-004.phpt b/mongodb-2.1.4/tests/bson-corpus/top-parseError-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-parseError-004.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-parseError-004.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-parseError-005.phpt b/mongodb-2.1.4/tests/bson-corpus/top-parseError-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-parseError-005.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-parseError-005.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-parseError-006.phpt b/mongodb-2.1.4/tests/bson-corpus/top-parseError-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-parseError-006.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-parseError-006.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-parseError-007.phpt b/mongodb-2.1.4/tests/bson-corpus/top-parseError-007.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-parseError-007.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-parseError-007.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-parseError-008.phpt b/mongodb-2.1.4/tests/bson-corpus/top-parseError-008.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-parseError-008.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-parseError-008.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-parseError-009.phpt b/mongodb-2.1.4/tests/bson-corpus/top-parseError-009.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-parseError-009.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-parseError-009.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-parseError-010.phpt b/mongodb-2.1.4/tests/bson-corpus/top-parseError-010.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-parseError-010.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-parseError-010.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-parseError-011.phpt b/mongodb-2.1.4/tests/bson-corpus/top-parseError-011.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-parseError-011.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-parseError-011.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-parseError-012.phpt b/mongodb-2.1.4/tests/bson-corpus/top-parseError-012.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-parseError-012.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-parseError-012.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-parseError-013.phpt b/mongodb-2.1.4/tests/bson-corpus/top-parseError-013.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-parseError-013.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-parseError-013.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-parseError-014.phpt b/mongodb-2.1.4/tests/bson-corpus/top-parseError-014.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-parseError-014.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-parseError-014.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-parseError-015.phpt b/mongodb-2.1.4/tests/bson-corpus/top-parseError-015.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-parseError-015.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-parseError-015.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-parseError-016.phpt b/mongodb-2.1.4/tests/bson-corpus/top-parseError-016.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-parseError-016.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-parseError-016.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-parseError-017.phpt b/mongodb-2.1.4/tests/bson-corpus/top-parseError-017.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-parseError-017.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-parseError-017.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-parseError-018.phpt b/mongodb-2.1.4/tests/bson-corpus/top-parseError-018.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-parseError-018.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-parseError-018.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-parseError-019.phpt b/mongodb-2.1.4/tests/bson-corpus/top-parseError-019.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-parseError-019.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-parseError-019.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-parseError-020.phpt b/mongodb-2.1.4/tests/bson-corpus/top-parseError-020.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-parseError-020.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-parseError-020.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-parseError-021.phpt b/mongodb-2.1.4/tests/bson-corpus/top-parseError-021.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-parseError-021.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-parseError-021.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-parseError-022.phpt b/mongodb-2.1.4/tests/bson-corpus/top-parseError-022.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-parseError-022.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-parseError-022.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-parseError-023.phpt b/mongodb-2.1.4/tests/bson-corpus/top-parseError-023.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-parseError-023.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-parseError-023.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-parseError-024.phpt b/mongodb-2.1.4/tests/bson-corpus/top-parseError-024.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-parseError-024.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-parseError-024.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-parseError-025.phpt b/mongodb-2.1.4/tests/bson-corpus/top-parseError-025.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-parseError-025.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-parseError-025.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-parseError-026.phpt b/mongodb-2.1.4/tests/bson-corpus/top-parseError-026.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-parseError-026.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-parseError-026.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-parseError-027.phpt b/mongodb-2.1.4/tests/bson-corpus/top-parseError-027.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-parseError-027.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-parseError-027.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-parseError-028.phpt b/mongodb-2.1.4/tests/bson-corpus/top-parseError-028.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-parseError-028.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-parseError-028.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-parseError-029.phpt b/mongodb-2.1.4/tests/bson-corpus/top-parseError-029.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-parseError-029.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-parseError-029.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-parseError-030.phpt b/mongodb-2.1.4/tests/bson-corpus/top-parseError-030.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-parseError-030.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-parseError-030.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-parseError-031.phpt b/mongodb-2.1.4/tests/bson-corpus/top-parseError-031.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-parseError-031.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-parseError-031.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-parseError-032.phpt b/mongodb-2.1.4/tests/bson-corpus/top-parseError-032.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-parseError-032.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-parseError-032.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-parseError-033.phpt b/mongodb-2.1.4/tests/bson-corpus/top-parseError-033.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-parseError-033.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-parseError-033.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-parseError-034.phpt b/mongodb-2.1.4/tests/bson-corpus/top-parseError-034.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-parseError-034.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-parseError-034.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-parseError-035.phpt b/mongodb-2.1.4/tests/bson-corpus/top-parseError-035.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-parseError-035.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-parseError-035.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-parseError-036.phpt b/mongodb-2.1.4/tests/bson-corpus/top-parseError-036.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-parseError-036.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-parseError-036.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-parseError-037.phpt b/mongodb-2.1.4/tests/bson-corpus/top-parseError-037.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-parseError-037.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-parseError-037.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-parseError-038.phpt b/mongodb-2.1.4/tests/bson-corpus/top-parseError-038.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-parseError-038.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-parseError-038.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-parseError-039.phpt b/mongodb-2.1.4/tests/bson-corpus/top-parseError-039.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-parseError-039.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-parseError-039.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-parseError-040.phpt b/mongodb-2.1.4/tests/bson-corpus/top-parseError-040.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-parseError-040.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-parseError-040.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-parseError-041.phpt b/mongodb-2.1.4/tests/bson-corpus/top-parseError-041.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-parseError-041.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-parseError-041.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-parseError-042.phpt b/mongodb-2.1.4/tests/bson-corpus/top-parseError-042.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-parseError-042.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-parseError-042.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-parseError-043.phpt b/mongodb-2.1.4/tests/bson-corpus/top-parseError-043.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-parseError-043.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-parseError-043.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-parseError-044.phpt b/mongodb-2.1.4/tests/bson-corpus/top-parseError-044.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-parseError-044.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-parseError-044.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-valid-001.phpt b/mongodb-2.1.4/tests/bson-corpus/top-valid-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-valid-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-valid-001.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-valid-002.phpt b/mongodb-2.1.4/tests/bson-corpus/top-valid-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-valid-002.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-valid-002.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-valid-003.phpt b/mongodb-2.1.4/tests/bson-corpus/top-valid-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-valid-003.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-valid-003.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/top-valid-004.phpt b/mongodb-2.1.4/tests/bson-corpus/top-valid-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/top-valid-004.phpt
rename to mongodb-2.1.4/tests/bson-corpus/top-valid-004.phpt
diff --git a/mongodb-2.1.1/tests/bson-corpus/undefined-valid-001.phpt b/mongodb-2.1.4/tests/bson-corpus/undefined-valid-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson-corpus/undefined-valid-001.phpt
rename to mongodb-2.1.4/tests/bson-corpus/undefined-valid-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-binary-001.phpt b/mongodb-2.1.4/tests/bson/bson-binary-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-binary-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-binary-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-binary-002.phpt b/mongodb-2.1.4/tests/bson/bson-binary-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-binary-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-binary-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-binary-clone-001.phpt b/mongodb-2.1.4/tests/bson/bson-binary-clone-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-binary-clone-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-binary-clone-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-binary-clone-002.phpt b/mongodb-2.1.4/tests/bson/bson-binary-clone-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-binary-clone-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-binary-clone-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-binary-compare-001.phpt b/mongodb-2.1.4/tests/bson/bson-binary-compare-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-binary-compare-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-binary-compare-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-binary-compare-002.phpt b/mongodb-2.1.4/tests/bson/bson-binary-compare-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-binary-compare-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-binary-compare-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-binary-constants.phpt b/mongodb-2.1.4/tests/bson/bson-binary-constants.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-binary-constants.phpt
rename to mongodb-2.1.4/tests/bson/bson-binary-constants.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-binary-get_properties-001.phpt b/mongodb-2.1.4/tests/bson/bson-binary-get_properties-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-binary-get_properties-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-binary-get_properties-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-binary-get_properties-002.phpt b/mongodb-2.1.4/tests/bson/bson-binary-get_properties-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-binary-get_properties-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-binary-get_properties-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-binary-jsonserialize-001.phpt b/mongodb-2.1.4/tests/bson/bson-binary-jsonserialize-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-binary-jsonserialize-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-binary-jsonserialize-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-binary-jsonserialize-002.phpt b/mongodb-2.1.4/tests/bson/bson-binary-jsonserialize-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-binary-jsonserialize-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-binary-jsonserialize-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-binary-serialization-002.phpt b/mongodb-2.1.4/tests/bson/bson-binary-serialization-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-binary-serialization-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-binary-serialization-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-binary-serialization_error-004.phpt b/mongodb-2.1.4/tests/bson/bson-binary-serialization_error-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-binary-serialization_error-004.phpt
rename to mongodb-2.1.4/tests/bson/bson-binary-serialization_error-004.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-binary-serialization_error-005.phpt b/mongodb-2.1.4/tests/bson/bson-binary-serialization_error-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-binary-serialization_error-005.phpt
rename to mongodb-2.1.4/tests/bson/bson-binary-serialization_error-005.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-binary-serialization_error-006.phpt b/mongodb-2.1.4/tests/bson/bson-binary-serialization_error-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-binary-serialization_error-006.phpt
rename to mongodb-2.1.4/tests/bson/bson-binary-serialization_error-006.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-binary-set_state-001.phpt b/mongodb-2.1.4/tests/bson/bson-binary-set_state-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-binary-set_state-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-binary-set_state-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-binary-set_state_error-001.phpt b/mongodb-2.1.4/tests/bson/bson-binary-set_state_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-binary-set_state_error-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-binary-set_state_error-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-binary-set_state_error-002.phpt b/mongodb-2.1.4/tests/bson/bson-binary-set_state_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-binary-set_state_error-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-binary-set_state_error-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-binary-set_state_error-003.phpt b/mongodb-2.1.4/tests/bson/bson-binary-set_state_error-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-binary-set_state_error-003.phpt
rename to mongodb-2.1.4/tests/bson/bson-binary-set_state_error-003.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-binary-tostring-001.phpt b/mongodb-2.1.4/tests/bson/bson-binary-tostring-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-binary-tostring-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-binary-tostring-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-binary_error-001.phpt b/mongodb-2.1.4/tests/bson/bson-binary_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-binary_error-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-binary_error-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-binary_error-002.phpt b/mongodb-2.1.4/tests/bson/bson-binary_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-binary_error-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-binary_error-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-binary_error-003.phpt b/mongodb-2.1.4/tests/bson/bson-binary_error-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-binary_error-003.phpt
rename to mongodb-2.1.4/tests/bson/bson-binary_error-003.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-binary_error-004.phpt b/mongodb-2.1.4/tests/bson/bson-binary_error-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-binary_error-004.phpt
rename to mongodb-2.1.4/tests/bson/bson-binary_error-004.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-binaryinterface-001.phpt b/mongodb-2.1.4/tests/bson/bson-binaryinterface-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-binaryinterface-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-binaryinterface-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-dbpointer-001.phpt b/mongodb-2.1.4/tests/bson/bson-dbpointer-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-dbpointer-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-dbpointer-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-dbpointer-002.phpt b/mongodb-2.1.4/tests/bson/bson-dbpointer-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-dbpointer-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-dbpointer-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-dbpointer-clone-001.phpt b/mongodb-2.1.4/tests/bson/bson-dbpointer-clone-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-dbpointer-clone-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-dbpointer-clone-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-dbpointer-clone-002.phpt b/mongodb-2.1.4/tests/bson/bson-dbpointer-clone-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-dbpointer-clone-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-dbpointer-clone-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-dbpointer-compare-001.phpt b/mongodb-2.1.4/tests/bson/bson-dbpointer-compare-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-dbpointer-compare-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-dbpointer-compare-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-dbpointer-get_properties-001.phpt b/mongodb-2.1.4/tests/bson/bson-dbpointer-get_properties-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-dbpointer-get_properties-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-dbpointer-get_properties-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-dbpointer-get_properties-002.phpt b/mongodb-2.1.4/tests/bson/bson-dbpointer-get_properties-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-dbpointer-get_properties-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-dbpointer-get_properties-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-dbpointer-jsonserialize-001.phpt b/mongodb-2.1.4/tests/bson/bson-dbpointer-jsonserialize-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-dbpointer-jsonserialize-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-dbpointer-jsonserialize-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-dbpointer-jsonserialize-003.phpt b/mongodb-2.1.4/tests/bson/bson-dbpointer-jsonserialize-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-dbpointer-jsonserialize-003.phpt
rename to mongodb-2.1.4/tests/bson/bson-dbpointer-jsonserialize-003.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-dbpointer-serialization-002.phpt b/mongodb-2.1.4/tests/bson/bson-dbpointer-serialization-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-dbpointer-serialization-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-dbpointer-serialization-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-dbpointer-serialization_error-003.phpt b/mongodb-2.1.4/tests/bson/bson-dbpointer-serialization_error-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-dbpointer-serialization_error-003.phpt
rename to mongodb-2.1.4/tests/bson/bson-dbpointer-serialization_error-003.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-dbpointer-serialization_error-004.phpt b/mongodb-2.1.4/tests/bson/bson-dbpointer-serialization_error-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-dbpointer-serialization_error-004.phpt
rename to mongodb-2.1.4/tests/bson/bson-dbpointer-serialization_error-004.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-dbpointer-set_state-001.phpt b/mongodb-2.1.4/tests/bson/bson-dbpointer-set_state-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-dbpointer-set_state-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-dbpointer-set_state-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-dbpointer-tostring-001.phpt b/mongodb-2.1.4/tests/bson/bson-dbpointer-tostring-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-dbpointer-tostring-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-dbpointer-tostring-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-dbpointer_error-002.phpt b/mongodb-2.1.4/tests/bson/bson-dbpointer_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-dbpointer_error-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-dbpointer_error-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-decimal128-001.phpt b/mongodb-2.1.4/tests/bson/bson-decimal128-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-decimal128-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-decimal128-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-decimal128-002.phpt b/mongodb-2.1.4/tests/bson/bson-decimal128-002.phpt
similarity index 90%
rename from mongodb-2.1.1/tests/bson/bson-decimal128-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-decimal128-002.phpt
index 6c0bdbb3..60286d84 100644
--- a/mongodb-2.1.1/tests/bson/bson-decimal128-002.phpt
+++ b/mongodb-2.1.4/tests/bson/bson-decimal128-002.phpt
@@ -1,29 +1,25 @@
--TEST--
MongoDB\BSON\Decimal128 NaN values
--FILE--
<?php
$tests = [
- acos(8),
- NAN,
'nan',
'Nan',
'NaN',
'NAN',
];
foreach ($tests as $test) {
printf("%s\n", new MongoDB\BSON\Decimal128($test));
}
?>
===DONE===
<?php exit(0); ?>
--EXPECT--
NaN
NaN
NaN
NaN
-NaN
-NaN
===DONE===
diff --git a/mongodb-2.1.1/tests/bson/bson-decimal128-003.phpt b/mongodb-2.1.4/tests/bson/bson-decimal128-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-decimal128-003.phpt
rename to mongodb-2.1.4/tests/bson/bson-decimal128-003.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-decimal128-004.phpt b/mongodb-2.1.4/tests/bson/bson-decimal128-004.phpt
similarity index 91%
rename from mongodb-2.1.1/tests/bson/bson-decimal128-004.phpt
rename to mongodb-2.1.4/tests/bson/bson-decimal128-004.phpt
index 08d4fb2c..2a1203f3 100644
--- a/mongodb-2.1.1/tests/bson/bson-decimal128-004.phpt
+++ b/mongodb-2.1.4/tests/bson/bson-decimal128-004.phpt
@@ -1,32 +1,32 @@
--TEST--
MongoDB\BSON\Decimal128 debug handler
--FILE--
<?php
$tests = [
- 1234.5678,
- NAN,
- INF,
+ '1234.5678',
+ 'NAN',
+ 'INF',
];
foreach ($tests as $test) {
var_dump(new MongoDB\BSON\Decimal128($test));
}
?>
===DONE===
<?php exit(0); ?>
--EXPECTF--
object(MongoDB\BSON\Decimal128)#%d (%d) {
["dec"]=>
string(9) "1234.5678"
}
object(MongoDB\BSON\Decimal128)#%d (%d) {
["dec"]=>
string(3) "NaN"
}
object(MongoDB\BSON\Decimal128)#%d (%d) {
["dec"]=>
string(8) "Infinity"
}
===DONE===
diff --git a/mongodb-2.1.1/tests/bson/bson-decimal128-clone-001.phpt b/mongodb-2.1.4/tests/bson/bson-decimal128-clone-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-decimal128-clone-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-decimal128-clone-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-decimal128-clone-002.phpt b/mongodb-2.1.4/tests/bson/bson-decimal128-clone-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-decimal128-clone-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-decimal128-clone-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-decimal128-get_properties-001.phpt b/mongodb-2.1.4/tests/bson/bson-decimal128-get_properties-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-decimal128-get_properties-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-decimal128-get_properties-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-decimal128-get_properties-002.phpt b/mongodb-2.1.4/tests/bson/bson-decimal128-get_properties-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-decimal128-get_properties-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-decimal128-get_properties-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-decimal128-jsonserialize-001.phpt b/mongodb-2.1.4/tests/bson/bson-decimal128-jsonserialize-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-decimal128-jsonserialize-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-decimal128-jsonserialize-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-decimal128-jsonserialize-002.phpt b/mongodb-2.1.4/tests/bson/bson-decimal128-jsonserialize-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-decimal128-jsonserialize-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-decimal128-jsonserialize-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-decimal128-serialization-002.phpt b/mongodb-2.1.4/tests/bson/bson-decimal128-serialization-002.phpt
similarity index 97%
rename from mongodb-2.1.1/tests/bson/bson-decimal128-serialization-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-decimal128-serialization-002.phpt
index b099a8a2..163ec5b6 100644
--- a/mongodb-2.1.1/tests/bson/bson-decimal128-serialization-002.phpt
+++ b/mongodb-2.1.4/tests/bson/bson-decimal128-serialization-002.phpt
@@ -1,75 +1,75 @@
--TEST--
MongoDB\BSON\Decimal128 serialization (__serialize and __unserialize)
--FILE--
<?php
$tests = [
'1234.5678',
'-1234.5678',
- 1234.56e-78,
- INF,
- NAN,
+ '1234.56e-78',
+ 'INF',
+ 'NAN',
];
foreach ($tests as $value) {
var_dump($decimal = new MongoDB\BSON\Decimal128($value));
var_dump($s = serialize($decimal));
var_dump(unserialize($s));
echo "\n";
}
?>
===DONE===
<?php exit(0); ?>
--EXPECTF--
object(MongoDB\BSON\Decimal128)#%d (%d) {
["dec"]=>
string(9) "1234.5678"
}
string(61) "O:23:"MongoDB\BSON\Decimal128":1:{s:3:"dec";s:9:"1234.5678";}"
object(MongoDB\BSON\Decimal128)#%d (%d) {
["dec"]=>
string(9) "1234.5678"
}
object(MongoDB\BSON\Decimal128)#%d (%d) {
["dec"]=>
string(10) "-1234.5678"
}
string(63) "O:23:"MongoDB\BSON\Decimal128":1:{s:3:"dec";s:10:"-1234.5678";}"
object(MongoDB\BSON\Decimal128)#%d (%d) {
["dec"]=>
string(10) "-1234.5678"
}
object(MongoDB\BSON\Decimal128)#%d (%d) {
["dec"]=>
string(11) "1.23456E-75"
}
string(64) "O:23:"MongoDB\BSON\Decimal128":1:{s:3:"dec";s:11:"1.23456E-75";}"
object(MongoDB\BSON\Decimal128)#%d (%d) {
["dec"]=>
string(11) "1.23456E-75"
}
object(MongoDB\BSON\Decimal128)#%d (%d) {
["dec"]=>
string(8) "Infinity"
}
string(60) "O:23:"MongoDB\BSON\Decimal128":1:{s:3:"dec";s:8:"Infinity";}"
object(MongoDB\BSON\Decimal128)#%d (%d) {
["dec"]=>
string(8) "Infinity"
}
object(MongoDB\BSON\Decimal128)#%d (%d) {
["dec"]=>
string(3) "NaN"
}
string(55) "O:23:"MongoDB\BSON\Decimal128":1:{s:3:"dec";s:3:"NaN";}"
object(MongoDB\BSON\Decimal128)#%d (%d) {
["dec"]=>
string(3) "NaN"
}
===DONE===
diff --git a/mongodb-2.1.1/tests/bson/bson-decimal128-serialization_error-003.phpt b/mongodb-2.1.4/tests/bson/bson-decimal128-serialization_error-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-decimal128-serialization_error-003.phpt
rename to mongodb-2.1.4/tests/bson/bson-decimal128-serialization_error-003.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-decimal128-serialization_error-004.phpt b/mongodb-2.1.4/tests/bson/bson-decimal128-serialization_error-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-decimal128-serialization_error-004.phpt
rename to mongodb-2.1.4/tests/bson/bson-decimal128-serialization_error-004.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-decimal128-set_state-001.phpt b/mongodb-2.1.4/tests/bson/bson-decimal128-set_state-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-decimal128-set_state-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-decimal128-set_state-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-decimal128-set_state_error-001.phpt b/mongodb-2.1.4/tests/bson/bson-decimal128-set_state_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-decimal128-set_state_error-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-decimal128-set_state_error-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-decimal128-set_state_error-002.phpt b/mongodb-2.1.4/tests/bson/bson-decimal128-set_state_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-decimal128-set_state_error-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-decimal128-set_state_error-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-decimal128_error-001.phpt b/mongodb-2.1.4/tests/bson/bson-decimal128_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-decimal128_error-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-decimal128_error-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-decimal128_error-002.phpt b/mongodb-2.1.4/tests/bson/bson-decimal128_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-decimal128_error-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-decimal128_error-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-decimal128interface-001.phpt b/mongodb-2.1.4/tests/bson/bson-decimal128interface-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-decimal128interface-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-decimal128interface-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-decode-001.phpt b/mongodb-2.1.4/tests/bson/bson-decode-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-decode-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-decode-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-decode-002.phpt b/mongodb-2.1.4/tests/bson/bson-decode-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-decode-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-decode-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-array-access-001.phpt b/mongodb-2.1.4/tests/bson/bson-document-array-access-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-array-access-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-array-access-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-array-access-002.phpt b/mongodb-2.1.4/tests/bson/bson-document-array-access-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-array-access-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-array-access-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-array-access-003.phpt b/mongodb-2.1.4/tests/bson/bson-document-array-access-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-array-access-003.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-array-access-003.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-array-access-004.phpt b/mongodb-2.1.4/tests/bson/bson-document-array-access-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-array-access-004.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-array-access-004.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-array-access-005.phpt b/mongodb-2.1.4/tests/bson/bson-document-array-access-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-array-access-005.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-array-access-005.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-array-access_error-001.phpt b/mongodb-2.1.4/tests/bson/bson-document-array-access_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-array-access_error-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-array-access_error-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-array-access_error-002.phpt b/mongodb-2.1.4/tests/bson/bson-document-array-access_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-array-access_error-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-array-access_error-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-array-access_error-003.phpt b/mongodb-2.1.4/tests/bson/bson-document-array-access_error-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-array-access_error-003.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-array-access_error-003.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-array-access_error-004.phpt b/mongodb-2.1.4/tests/bson/bson-document-array-access_error-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-array-access_error-004.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-array-access_error-004.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-clone-001.phpt b/mongodb-2.1.4/tests/bson/bson-document-clone-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-clone-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-clone-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-compare-001.phpt b/mongodb-2.1.4/tests/bson/bson-document-compare-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-compare-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-compare-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-debug-001.phpt b/mongodb-2.1.4/tests/bson/bson-document-debug-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-debug-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-debug-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-fromBSON-001.phpt b/mongodb-2.1.4/tests/bson/bson-document-fromBSON-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-fromBSON-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-fromBSON-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-fromBSON_error-001.phpt b/mongodb-2.1.4/tests/bson/bson-document-fromBSON_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-fromBSON_error-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-fromBSON_error-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-fromBSON_error-002.phpt b/mongodb-2.1.4/tests/bson/bson-document-fromBSON_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-fromBSON_error-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-fromBSON_error-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-fromBSON_error-003.phpt b/mongodb-2.1.4/tests/bson/bson-document-fromBSON_error-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-fromBSON_error-003.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-fromBSON_error-003.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-fromBSON_error-004.phpt b/mongodb-2.1.4/tests/bson/bson-document-fromBSON_error-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-fromBSON_error-004.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-fromBSON_error-004.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-fromBSON_error-005.phpt b/mongodb-2.1.4/tests/bson/bson-document-fromBSON_error-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-fromBSON_error-005.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-fromBSON_error-005.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-fromJSON-001.phpt b/mongodb-2.1.4/tests/bson/bson-document-fromJSON-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-fromJSON-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-fromJSON-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-fromJSON-002.phpt b/mongodb-2.1.4/tests/bson/bson-document-fromJSON-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-fromJSON-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-fromJSON-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-fromJSON_error-001.phpt b/mongodb-2.1.4/tests/bson/bson-document-fromJSON_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-fromJSON_error-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-fromJSON_error-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-fromPHP-001.phpt b/mongodb-2.1.4/tests/bson/bson-document-fromPHP-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-fromPHP-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-fromPHP-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-fromPHP-002.phpt b/mongodb-2.1.4/tests/bson/bson-document-fromPHP-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-fromPHP-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-fromPHP-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-fromPHP-003.phpt b/mongodb-2.1.4/tests/bson/bson-document-fromPHP-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-fromPHP-003.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-fromPHP-003.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-fromPHP-004.phpt b/mongodb-2.1.4/tests/bson/bson-document-fromPHP-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-fromPHP-004.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-fromPHP-004.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-get-001.phpt b/mongodb-2.1.4/tests/bson/bson-document-get-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-get-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-get-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-get-002.phpt b/mongodb-2.1.4/tests/bson/bson-document-get-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-get-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-get-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-get-003.phpt b/mongodb-2.1.4/tests/bson/bson-document-get-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-get-003.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-get-003.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-getIterator-001.phpt b/mongodb-2.1.4/tests/bson/bson-document-getIterator-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-getIterator-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-getIterator-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-get_properties-001.phpt b/mongodb-2.1.4/tests/bson/bson-document-get_properties-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-get_properties-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-get_properties-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-has-001.phpt b/mongodb-2.1.4/tests/bson/bson-document-has-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-has-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-has-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-property-access-001.phpt b/mongodb-2.1.4/tests/bson/bson-document-property-access-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-property-access-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-property-access-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-property-access-002.phpt b/mongodb-2.1.4/tests/bson/bson-document-property-access-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-property-access-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-property-access-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-property-access_error-001.phpt b/mongodb-2.1.4/tests/bson/bson-document-property-access_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-property-access_error-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-property-access_error-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-serialization-002.phpt b/mongodb-2.1.4/tests/bson/bson-document-serialization-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-serialization-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-serialization-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-set_state-001.phpt b/mongodb-2.1.4/tests/bson/bson-document-set_state-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-set_state-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-set_state-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-set_state_error-001.phpt b/mongodb-2.1.4/tests/bson/bson-document-set_state_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-set_state_error-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-set_state_error-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-toCanonicalJSON-001.phpt b/mongodb-2.1.4/tests/bson/bson-document-toCanonicalJSON-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-toCanonicalJSON-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-toCanonicalJSON-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-toCanonicalJSON-002.phpt b/mongodb-2.1.4/tests/bson/bson-document-toCanonicalJSON-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-toCanonicalJSON-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-toCanonicalJSON-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-toPHP-001.phpt b/mongodb-2.1.4/tests/bson/bson-document-toPHP-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-toPHP-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-toPHP-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-toPHP-002.phpt b/mongodb-2.1.4/tests/bson/bson-document-toPHP-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-toPHP-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-toPHP-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-toPHP-003.phpt b/mongodb-2.1.4/tests/bson/bson-document-toPHP-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-toPHP-003.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-toPHP-003.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-toPHP-007.phpt b/mongodb-2.1.4/tests/bson/bson-document-toPHP-007.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-toPHP-007.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-toPHP-007.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-toPHP-008.phpt b/mongodb-2.1.4/tests/bson/bson-document-toPHP-008.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-toPHP-008.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-toPHP-008.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-toPHP-009.phpt b/mongodb-2.1.4/tests/bson/bson-document-toPHP-009.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-toPHP-009.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-toPHP-009.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-toPHP-010.phpt b/mongodb-2.1.4/tests/bson/bson-document-toPHP-010.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-toPHP-010.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-toPHP-010.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-toPHP-011.phpt b/mongodb-2.1.4/tests/bson/bson-document-toPHP-011.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-toPHP-011.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-toPHP-011.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-toPHP-012.phpt b/mongodb-2.1.4/tests/bson/bson-document-toPHP-012.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-toPHP-012.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-toPHP-012.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-toRelaxedJSON-001.phpt b/mongodb-2.1.4/tests/bson/bson-document-toRelaxedJSON-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-toRelaxedJSON-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-toRelaxedJSON-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-toRelaxedJSON-002.phpt b/mongodb-2.1.4/tests/bson/bson-document-toRelaxedJSON-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-toRelaxedJSON-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-toRelaxedJSON-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-document-unserialize_error-002.phpt b/mongodb-2.1.4/tests/bson/bson-document-unserialize_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-document-unserialize_error-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-document-unserialize_error-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-encode-001.phpt b/mongodb-2.1.4/tests/bson/bson-encode-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-encode-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-encode-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-encode-002.phpt b/mongodb-2.1.4/tests/bson/bson-encode-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-encode-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-encode-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-encode-003.phpt b/mongodb-2.1.4/tests/bson/bson-encode-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-encode-003.phpt
rename to mongodb-2.1.4/tests/bson/bson-encode-003.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-encode-004.phpt b/mongodb-2.1.4/tests/bson/bson-encode-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-encode-004.phpt
rename to mongodb-2.1.4/tests/bson/bson-encode-004.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-encode-005.phpt b/mongodb-2.1.4/tests/bson/bson-encode-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-encode-005.phpt
rename to mongodb-2.1.4/tests/bson/bson-encode-005.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-enum-001.phpt b/mongodb-2.1.4/tests/bson/bson-enum-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-enum-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-enum-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-enum-002.phpt b/mongodb-2.1.4/tests/bson/bson-enum-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-enum-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-enum-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-enum-003.phpt b/mongodb-2.1.4/tests/bson/bson-enum-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-enum-003.phpt
rename to mongodb-2.1.4/tests/bson/bson-enum-003.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-enum_error-001.phpt b/mongodb-2.1.4/tests/bson/bson-enum_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-enum_error-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-enum_error-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-enum_error-002.phpt b/mongodb-2.1.4/tests/bson/bson-enum_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-enum_error-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-enum_error-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-enum_error-003.phpt b/mongodb-2.1.4/tests/bson/bson-enum_error-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-enum_error-003.phpt
rename to mongodb-2.1.4/tests/bson/bson-enum_error-003.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-enum_error-004.phpt b/mongodb-2.1.4/tests/bson/bson-enum_error-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-enum_error-004.phpt
rename to mongodb-2.1.4/tests/bson/bson-enum_error-004.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-enum_error-005.phpt b/mongodb-2.1.4/tests/bson/bson-enum_error-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-enum_error-005.phpt
rename to mongodb-2.1.4/tests/bson/bson-enum_error-005.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-enum_error-006.phpt b/mongodb-2.1.4/tests/bson/bson-enum_error-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-enum_error-006.phpt
rename to mongodb-2.1.4/tests/bson/bson-enum_error-006.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-generate-document-id.phpt b/mongodb-2.1.4/tests/bson/bson-generate-document-id.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-generate-document-id.phpt
rename to mongodb-2.1.4/tests/bson/bson-generate-document-id.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-int64-001.phpt b/mongodb-2.1.4/tests/bson/bson-int64-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-int64-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-int64-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-int64-002.phpt b/mongodb-2.1.4/tests/bson/bson-int64-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-int64-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-int64-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-int64-003.phpt b/mongodb-2.1.4/tests/bson/bson-int64-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-int64-003.phpt
rename to mongodb-2.1.4/tests/bson/bson-int64-003.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-int64-cast-001.phpt b/mongodb-2.1.4/tests/bson/bson-int64-cast-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-int64-cast-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-int64-cast-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-int64-cast-002.phpt b/mongodb-2.1.4/tests/bson/bson-int64-cast-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-int64-cast-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-int64-cast-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-int64-cast-003.phpt b/mongodb-2.1.4/tests/bson/bson-int64-cast-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-int64-cast-003.phpt
rename to mongodb-2.1.4/tests/bson/bson-int64-cast-003.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-int64-clone-001.phpt b/mongodb-2.1.4/tests/bson/bson-int64-clone-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-int64-clone-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-int64-clone-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-int64-clone-002.phpt b/mongodb-2.1.4/tests/bson/bson-int64-clone-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-int64-clone-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-int64-clone-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-int64-compare-001.phpt b/mongodb-2.1.4/tests/bson/bson-int64-compare-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-int64-compare-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-int64-compare-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-int64-compare-002.phpt b/mongodb-2.1.4/tests/bson/bson-int64-compare-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-int64-compare-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-int64-compare-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-int64-compare-003.phpt b/mongodb-2.1.4/tests/bson/bson-int64-compare-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-int64-compare-003.phpt
rename to mongodb-2.1.4/tests/bson/bson-int64-compare-003.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-int64-compare-004.phpt b/mongodb-2.1.4/tests/bson/bson-int64-compare-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-int64-compare-004.phpt
rename to mongodb-2.1.4/tests/bson/bson-int64-compare-004.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-int64-compare-005.phpt b/mongodb-2.1.4/tests/bson/bson-int64-compare-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-int64-compare-005.phpt
rename to mongodb-2.1.4/tests/bson/bson-int64-compare-005.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-int64-ctor-001.phpt b/mongodb-2.1.4/tests/bson/bson-int64-ctor-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-int64-ctor-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-int64-ctor-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-int64-ctor-002.phpt b/mongodb-2.1.4/tests/bson/bson-int64-ctor-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-int64-ctor-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-int64-ctor-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-int64-ctor_error-001.phpt b/mongodb-2.1.4/tests/bson/bson-int64-ctor_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-int64-ctor_error-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-int64-ctor_error-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-int64-debug-001.phpt b/mongodb-2.1.4/tests/bson/bson-int64-debug-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-int64-debug-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-int64-debug-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-int64-get_properties-001.phpt b/mongodb-2.1.4/tests/bson/bson-int64-get_properties-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-int64-get_properties-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-int64-get_properties-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-int64-get_properties-002.phpt b/mongodb-2.1.4/tests/bson/bson-int64-get_properties-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-int64-get_properties-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-int64-get_properties-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-int64-jsonserialize-001.phpt b/mongodb-2.1.4/tests/bson/bson-int64-jsonserialize-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-int64-jsonserialize-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-int64-jsonserialize-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-int64-jsonserialize-002.phpt b/mongodb-2.1.4/tests/bson/bson-int64-jsonserialize-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-int64-jsonserialize-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-int64-jsonserialize-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-int64-operation-001.phpt b/mongodb-2.1.4/tests/bson/bson-int64-operation-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-int64-operation-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-int64-operation-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-int64-operation-002.phpt b/mongodb-2.1.4/tests/bson/bson-int64-operation-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-int64-operation-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-int64-operation-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-int64-operation-003.phpt b/mongodb-2.1.4/tests/bson/bson-int64-operation-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-int64-operation-003.phpt
rename to mongodb-2.1.4/tests/bson/bson-int64-operation-003.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-int64-operation-004.phpt b/mongodb-2.1.4/tests/bson/bson-int64-operation-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-int64-operation-004.phpt
rename to mongodb-2.1.4/tests/bson/bson-int64-operation-004.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-int64-operation-005.phpt b/mongodb-2.1.4/tests/bson/bson-int64-operation-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-int64-operation-005.phpt
rename to mongodb-2.1.4/tests/bson/bson-int64-operation-005.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-int64-operation_error-001.phpt b/mongodb-2.1.4/tests/bson/bson-int64-operation_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-int64-operation_error-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-int64-operation_error-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-int64-serialization-002.phpt b/mongodb-2.1.4/tests/bson/bson-int64-serialization-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-int64-serialization-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-int64-serialization-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-int64-serialization_error-003.phpt b/mongodb-2.1.4/tests/bson/bson-int64-serialization_error-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-int64-serialization_error-003.phpt
rename to mongodb-2.1.4/tests/bson/bson-int64-serialization_error-003.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-int64-serialization_error-004.phpt b/mongodb-2.1.4/tests/bson/bson-int64-serialization_error-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-int64-serialization_error-004.phpt
rename to mongodb-2.1.4/tests/bson/bson-int64-serialization_error-004.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-int64-set_state-001.phpt b/mongodb-2.1.4/tests/bson/bson-int64-set_state-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-int64-set_state-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-int64-set_state-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-int64-tostring-001.phpt b/mongodb-2.1.4/tests/bson/bson-int64-tostring-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-int64-tostring-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-int64-tostring-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-int64_error-001.phpt b/mongodb-2.1.4/tests/bson/bson-int64_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-int64_error-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-int64_error-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-iterator-clone-001.phpt b/mongodb-2.1.4/tests/bson/bson-iterator-clone-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-iterator-clone-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-iterator-clone-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-iterator-clone-002.phpt b/mongodb-2.1.4/tests/bson/bson-iterator-clone-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-iterator-clone-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-iterator-clone-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-iterator-debug-001.phpt b/mongodb-2.1.4/tests/bson/bson-iterator-debug-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-iterator-debug-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-iterator-debug-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-iterator-get_properties-001.phpt b/mongodb-2.1.4/tests/bson/bson-iterator-get_properties-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-iterator-get_properties-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-iterator-get_properties-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-iterator-iterator-001.phpt b/mongodb-2.1.4/tests/bson/bson-iterator-iterator-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-iterator-iterator-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-iterator-iterator-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-iterator-iterator-002.phpt b/mongodb-2.1.4/tests/bson/bson-iterator-iterator-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-iterator-iterator-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-iterator-iterator-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-iterator-iterator-003.phpt b/mongodb-2.1.4/tests/bson/bson-iterator-iterator-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-iterator-iterator-003.phpt
rename to mongodb-2.1.4/tests/bson/bson-iterator-iterator-003.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-iterator-rewind-001.phpt b/mongodb-2.1.4/tests/bson/bson-iterator-rewind-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-iterator-rewind-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-iterator-rewind-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-iterator-serialization_error-001.phpt b/mongodb-2.1.4/tests/bson/bson-iterator-serialization_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-iterator-serialization_error-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-iterator-serialization_error-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-javascript-001.phpt b/mongodb-2.1.4/tests/bson/bson-javascript-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-javascript-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-javascript-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-javascript-002.phpt b/mongodb-2.1.4/tests/bson/bson-javascript-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-javascript-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-javascript-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-javascript-clone-001.phpt b/mongodb-2.1.4/tests/bson/bson-javascript-clone-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-javascript-clone-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-javascript-clone-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-javascript-clone-002.phpt b/mongodb-2.1.4/tests/bson/bson-javascript-clone-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-javascript-clone-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-javascript-clone-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-javascript-compare-001.phpt b/mongodb-2.1.4/tests/bson/bson-javascript-compare-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-javascript-compare-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-javascript-compare-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-javascript-compare-002.phpt b/mongodb-2.1.4/tests/bson/bson-javascript-compare-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-javascript-compare-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-javascript-compare-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-javascript-getCode-001.phpt b/mongodb-2.1.4/tests/bson/bson-javascript-getCode-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-javascript-getCode-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-javascript-getCode-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-javascript-getScope-001.phpt b/mongodb-2.1.4/tests/bson/bson-javascript-getScope-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-javascript-getScope-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-javascript-getScope-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-javascript-get_properties-001.phpt b/mongodb-2.1.4/tests/bson/bson-javascript-get_properties-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-javascript-get_properties-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-javascript-get_properties-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-javascript-get_properties-002.phpt b/mongodb-2.1.4/tests/bson/bson-javascript-get_properties-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-javascript-get_properties-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-javascript-get_properties-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-javascript-jsonserialize-001.phpt b/mongodb-2.1.4/tests/bson/bson-javascript-jsonserialize-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-javascript-jsonserialize-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-javascript-jsonserialize-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-javascript-jsonserialize-002.phpt b/mongodb-2.1.4/tests/bson/bson-javascript-jsonserialize-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-javascript-jsonserialize-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-javascript-jsonserialize-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-javascript-jsonserialize-003.phpt b/mongodb-2.1.4/tests/bson/bson-javascript-jsonserialize-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-javascript-jsonserialize-003.phpt
rename to mongodb-2.1.4/tests/bson/bson-javascript-jsonserialize-003.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-javascript-jsonserialize-004.phpt b/mongodb-2.1.4/tests/bson/bson-javascript-jsonserialize-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-javascript-jsonserialize-004.phpt
rename to mongodb-2.1.4/tests/bson/bson-javascript-jsonserialize-004.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-javascript-serialization-002.phpt b/mongodb-2.1.4/tests/bson/bson-javascript-serialization-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-javascript-serialization-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-javascript-serialization-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-javascript-serialization_error-004.phpt b/mongodb-2.1.4/tests/bson/bson-javascript-serialization_error-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-javascript-serialization_error-004.phpt
rename to mongodb-2.1.4/tests/bson/bson-javascript-serialization_error-004.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-javascript-serialization_error-005.phpt b/mongodb-2.1.4/tests/bson/bson-javascript-serialization_error-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-javascript-serialization_error-005.phpt
rename to mongodb-2.1.4/tests/bson/bson-javascript-serialization_error-005.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-javascript-serialization_error-006.phpt b/mongodb-2.1.4/tests/bson/bson-javascript-serialization_error-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-javascript-serialization_error-006.phpt
rename to mongodb-2.1.4/tests/bson/bson-javascript-serialization_error-006.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-javascript-set_state-001.phpt b/mongodb-2.1.4/tests/bson/bson-javascript-set_state-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-javascript-set_state-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-javascript-set_state-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-javascript-set_state_error-001.phpt b/mongodb-2.1.4/tests/bson/bson-javascript-set_state_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-javascript-set_state_error-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-javascript-set_state_error-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-javascript-set_state_error-002.phpt b/mongodb-2.1.4/tests/bson/bson-javascript-set_state_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-javascript-set_state_error-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-javascript-set_state_error-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-javascript-set_state_error-003.phpt b/mongodb-2.1.4/tests/bson/bson-javascript-set_state_error-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-javascript-set_state_error-003.phpt
rename to mongodb-2.1.4/tests/bson/bson-javascript-set_state_error-003.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-javascript-tostring-001.phpt b/mongodb-2.1.4/tests/bson/bson-javascript-tostring-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-javascript-tostring-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-javascript-tostring-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-javascript_error-001.phpt b/mongodb-2.1.4/tests/bson/bson-javascript_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-javascript_error-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-javascript_error-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-javascript_error-002.phpt b/mongodb-2.1.4/tests/bson/bson-javascript_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-javascript_error-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-javascript_error-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-javascript_error-003.phpt b/mongodb-2.1.4/tests/bson/bson-javascript_error-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-javascript_error-003.phpt
rename to mongodb-2.1.4/tests/bson/bson-javascript_error-003.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-javascript_error-004.phpt b/mongodb-2.1.4/tests/bson/bson-javascript_error-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-javascript_error-004.phpt
rename to mongodb-2.1.4/tests/bson/bson-javascript_error-004.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-javascriptinterface-001.phpt b/mongodb-2.1.4/tests/bson/bson-javascriptinterface-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-javascriptinterface-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-javascriptinterface-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-maxkey-001.phpt b/mongodb-2.1.4/tests/bson/bson-maxkey-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-maxkey-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-maxkey-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-maxkey-clone-001.phpt b/mongodb-2.1.4/tests/bson/bson-maxkey-clone-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-maxkey-clone-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-maxkey-clone-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-maxkey-clone-002.phpt b/mongodb-2.1.4/tests/bson/bson-maxkey-clone-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-maxkey-clone-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-maxkey-clone-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-maxkey-compare-001.phpt b/mongodb-2.1.4/tests/bson/bson-maxkey-compare-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-maxkey-compare-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-maxkey-compare-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-maxkey-jsonserialize-001.phpt b/mongodb-2.1.4/tests/bson/bson-maxkey-jsonserialize-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-maxkey-jsonserialize-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-maxkey-jsonserialize-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-maxkey-jsonserialize-002.phpt b/mongodb-2.1.4/tests/bson/bson-maxkey-jsonserialize-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-maxkey-jsonserialize-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-maxkey-jsonserialize-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-maxkey-serialization-002.phpt b/mongodb-2.1.4/tests/bson/bson-maxkey-serialization-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-maxkey-serialization-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-maxkey-serialization-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-maxkey-set_state-001.phpt b/mongodb-2.1.4/tests/bson/bson-maxkey-set_state-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-maxkey-set_state-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-maxkey-set_state-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-maxkey_error-001.phpt b/mongodb-2.1.4/tests/bson/bson-maxkey_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-maxkey_error-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-maxkey_error-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-maxkeyinterface-001.phpt b/mongodb-2.1.4/tests/bson/bson-maxkeyinterface-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-maxkeyinterface-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-maxkeyinterface-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-minkey-001.phpt b/mongodb-2.1.4/tests/bson/bson-minkey-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-minkey-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-minkey-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-minkey-clone-001.phpt b/mongodb-2.1.4/tests/bson/bson-minkey-clone-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-minkey-clone-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-minkey-clone-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-minkey-clone-002.phpt b/mongodb-2.1.4/tests/bson/bson-minkey-clone-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-minkey-clone-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-minkey-clone-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-minkey-compare-001.phpt b/mongodb-2.1.4/tests/bson/bson-minkey-compare-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-minkey-compare-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-minkey-compare-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-minkey-jsonserialize-001.phpt b/mongodb-2.1.4/tests/bson/bson-minkey-jsonserialize-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-minkey-jsonserialize-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-minkey-jsonserialize-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-minkey-jsonserialize-002.phpt b/mongodb-2.1.4/tests/bson/bson-minkey-jsonserialize-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-minkey-jsonserialize-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-minkey-jsonserialize-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-minkey-serialization-002.phpt b/mongodb-2.1.4/tests/bson/bson-minkey-serialization-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-minkey-serialization-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-minkey-serialization-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-minkey-set_state-001.phpt b/mongodb-2.1.4/tests/bson/bson-minkey-set_state-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-minkey-set_state-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-minkey-set_state-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-minkey_error-001.phpt b/mongodb-2.1.4/tests/bson/bson-minkey_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-minkey_error-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-minkey_error-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-minkeyinterface-001.phpt b/mongodb-2.1.4/tests/bson/bson-minkeyinterface-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-minkeyinterface-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-minkeyinterface-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-objectid-001.phpt b/mongodb-2.1.4/tests/bson/bson-objectid-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-objectid-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-objectid-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-objectid-002.phpt b/mongodb-2.1.4/tests/bson/bson-objectid-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-objectid-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-objectid-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-objectid-003.phpt b/mongodb-2.1.4/tests/bson/bson-objectid-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-objectid-003.phpt
rename to mongodb-2.1.4/tests/bson/bson-objectid-003.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-objectid-004.phpt b/mongodb-2.1.4/tests/bson/bson-objectid-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-objectid-004.phpt
rename to mongodb-2.1.4/tests/bson/bson-objectid-004.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-objectid-clone-001.phpt b/mongodb-2.1.4/tests/bson/bson-objectid-clone-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-objectid-clone-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-objectid-clone-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-objectid-clone-002.phpt b/mongodb-2.1.4/tests/bson/bson-objectid-clone-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-objectid-clone-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-objectid-clone-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-objectid-compare-001.phpt b/mongodb-2.1.4/tests/bson/bson-objectid-compare-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-objectid-compare-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-objectid-compare-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-objectid-compare-002.phpt b/mongodb-2.1.4/tests/bson/bson-objectid-compare-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-objectid-compare-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-objectid-compare-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-objectid-getTimestamp-001.phpt b/mongodb-2.1.4/tests/bson/bson-objectid-getTimestamp-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-objectid-getTimestamp-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-objectid-getTimestamp-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-objectid-getTimestamp-002.phpt b/mongodb-2.1.4/tests/bson/bson-objectid-getTimestamp-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-objectid-getTimestamp-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-objectid-getTimestamp-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-objectid-get_properties-001.phpt b/mongodb-2.1.4/tests/bson/bson-objectid-get_properties-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-objectid-get_properties-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-objectid-get_properties-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-objectid-get_properties-002.phpt b/mongodb-2.1.4/tests/bson/bson-objectid-get_properties-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-objectid-get_properties-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-objectid-get_properties-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-objectid-jsonserialize-001.phpt b/mongodb-2.1.4/tests/bson/bson-objectid-jsonserialize-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-objectid-jsonserialize-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-objectid-jsonserialize-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-objectid-jsonserialize-002.phpt b/mongodb-2.1.4/tests/bson/bson-objectid-jsonserialize-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-objectid-jsonserialize-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-objectid-jsonserialize-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-objectid-serialization-002.phpt b/mongodb-2.1.4/tests/bson/bson-objectid-serialization-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-objectid-serialization-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-objectid-serialization-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-objectid-serialization_error-003.phpt b/mongodb-2.1.4/tests/bson/bson-objectid-serialization_error-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-objectid-serialization_error-003.phpt
rename to mongodb-2.1.4/tests/bson/bson-objectid-serialization_error-003.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-objectid-serialization_error-004.phpt b/mongodb-2.1.4/tests/bson/bson-objectid-serialization_error-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-objectid-serialization_error-004.phpt
rename to mongodb-2.1.4/tests/bson/bson-objectid-serialization_error-004.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-objectid-set_state-001.phpt b/mongodb-2.1.4/tests/bson/bson-objectid-set_state-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-objectid-set_state-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-objectid-set_state-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-objectid-set_state_error-001.phpt b/mongodb-2.1.4/tests/bson/bson-objectid-set_state_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-objectid-set_state_error-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-objectid-set_state_error-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-objectid-set_state_error-002.phpt b/mongodb-2.1.4/tests/bson/bson-objectid-set_state_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-objectid-set_state_error-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-objectid-set_state_error-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-objectid-tostring_error-001.phpt b/mongodb-2.1.4/tests/bson/bson-objectid-tostring_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-objectid-tostring_error-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-objectid-tostring_error-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-objectid_error-001.phpt b/mongodb-2.1.4/tests/bson/bson-objectid_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-objectid_error-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-objectid_error-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-objectid_error-002.phpt b/mongodb-2.1.4/tests/bson/bson-objectid_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-objectid_error-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-objectid_error-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-objectid_error-003.phpt b/mongodb-2.1.4/tests/bson/bson-objectid_error-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-objectid_error-003.phpt
rename to mongodb-2.1.4/tests/bson/bson-objectid_error-003.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-objectidinterface-001.phpt b/mongodb-2.1.4/tests/bson/bson-objectidinterface-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-objectidinterface-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-objectidinterface-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-packedarray-array-access-001.phpt b/mongodb-2.1.4/tests/bson/bson-packedarray-array-access-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-packedarray-array-access-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-packedarray-array-access-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-packedarray-array-access-002.phpt b/mongodb-2.1.4/tests/bson/bson-packedarray-array-access-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-packedarray-array-access-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-packedarray-array-access-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-packedarray-array-access-003.phpt b/mongodb-2.1.4/tests/bson/bson-packedarray-array-access-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-packedarray-array-access-003.phpt
rename to mongodb-2.1.4/tests/bson/bson-packedarray-array-access-003.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-packedarray-array-access_error-001.phpt b/mongodb-2.1.4/tests/bson/bson-packedarray-array-access_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-packedarray-array-access_error-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-packedarray-array-access_error-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-packedarray-array-access_error-002.phpt b/mongodb-2.1.4/tests/bson/bson-packedarray-array-access_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-packedarray-array-access_error-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-packedarray-array-access_error-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-packedarray-array-access_error-003.phpt b/mongodb-2.1.4/tests/bson/bson-packedarray-array-access_error-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-packedarray-array-access_error-003.phpt
rename to mongodb-2.1.4/tests/bson/bson-packedarray-array-access_error-003.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-packedarray-array-access_error-004.phpt b/mongodb-2.1.4/tests/bson/bson-packedarray-array-access_error-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-packedarray-array-access_error-004.phpt
rename to mongodb-2.1.4/tests/bson/bson-packedarray-array-access_error-004.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-packedarray-clone-001.phpt b/mongodb-2.1.4/tests/bson/bson-packedarray-clone-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-packedarray-clone-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-packedarray-clone-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-packedarray-compare-001.phpt b/mongodb-2.1.4/tests/bson/bson-packedarray-compare-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-packedarray-compare-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-packedarray-compare-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-packedarray-debug-001.phpt b/mongodb-2.1.4/tests/bson/bson-packedarray-debug-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-packedarray-debug-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-packedarray-debug-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-packedarray-fromJSON-001.phpt b/mongodb-2.1.4/tests/bson/bson-packedarray-fromJSON-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-packedarray-fromJSON-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-packedarray-fromJSON-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-packedarray-fromJSON-002.phpt b/mongodb-2.1.4/tests/bson/bson-packedarray-fromJSON-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-packedarray-fromJSON-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-packedarray-fromJSON-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-packedarray-fromJSON_error-001.phpt b/mongodb-2.1.4/tests/bson/bson-packedarray-fromJSON_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-packedarray-fromJSON_error-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-packedarray-fromJSON_error-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-packedarray-fromPHP-001.phpt b/mongodb-2.1.4/tests/bson/bson-packedarray-fromPHP-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-packedarray-fromPHP-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-packedarray-fromPHP-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-packedarray-fromPHP_error-001.phpt b/mongodb-2.1.4/tests/bson/bson-packedarray-fromPHP_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-packedarray-fromPHP_error-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-packedarray-fromPHP_error-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-packedarray-get-001.phpt b/mongodb-2.1.4/tests/bson/bson-packedarray-get-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-packedarray-get-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-packedarray-get-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-packedarray-get-002.phpt b/mongodb-2.1.4/tests/bson/bson-packedarray-get-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-packedarray-get-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-packedarray-get-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-packedarray-get-003.phpt b/mongodb-2.1.4/tests/bson/bson-packedarray-get-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-packedarray-get-003.phpt
rename to mongodb-2.1.4/tests/bson/bson-packedarray-get-003.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-packedarray-get-004.phpt b/mongodb-2.1.4/tests/bson/bson-packedarray-get-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-packedarray-get-004.phpt
rename to mongodb-2.1.4/tests/bson/bson-packedarray-get-004.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-packedarray-get-005.phpt b/mongodb-2.1.4/tests/bson/bson-packedarray-get-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-packedarray-get-005.phpt
rename to mongodb-2.1.4/tests/bson/bson-packedarray-get-005.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-packedarray-getIterator-001.phpt b/mongodb-2.1.4/tests/bson/bson-packedarray-getIterator-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-packedarray-getIterator-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-packedarray-getIterator-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-packedarray-get_properties-001.phpt b/mongodb-2.1.4/tests/bson/bson-packedarray-get_properties-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-packedarray-get_properties-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-packedarray-get_properties-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-packedarray-has-001.phpt b/mongodb-2.1.4/tests/bson/bson-packedarray-has-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-packedarray-has-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-packedarray-has-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-packedarray-serialization-002.phpt b/mongodb-2.1.4/tests/bson/bson-packedarray-serialization-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-packedarray-serialization-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-packedarray-serialization-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-packedarray-set_state-001.phpt b/mongodb-2.1.4/tests/bson/bson-packedarray-set_state-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-packedarray-set_state-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-packedarray-set_state-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-packedarray-set_state_error-001.phpt b/mongodb-2.1.4/tests/bson/bson-packedarray-set_state_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-packedarray-set_state_error-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-packedarray-set_state_error-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-packedarray-toCanonicalExtendedJSON-001.phpt b/mongodb-2.1.4/tests/bson/bson-packedarray-toCanonicalExtendedJSON-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-packedarray-toCanonicalExtendedJSON-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-packedarray-toCanonicalExtendedJSON-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-packedarray-toCanonicalJSON-002.phpt b/mongodb-2.1.4/tests/bson/bson-packedarray-toCanonicalJSON-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-packedarray-toCanonicalJSON-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-packedarray-toCanonicalJSON-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-packedarray-toPHP-001.phpt b/mongodb-2.1.4/tests/bson/bson-packedarray-toPHP-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-packedarray-toPHP-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-packedarray-toPHP-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-packedarray-toPHP-002.phpt b/mongodb-2.1.4/tests/bson/bson-packedarray-toPHP-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-packedarray-toPHP-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-packedarray-toPHP-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-packedarray-toPHP-003.phpt b/mongodb-2.1.4/tests/bson/bson-packedarray-toPHP-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-packedarray-toPHP-003.phpt
rename to mongodb-2.1.4/tests/bson/bson-packedarray-toPHP-003.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-packedarray-toPHP-004.phpt b/mongodb-2.1.4/tests/bson/bson-packedarray-toPHP-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-packedarray-toPHP-004.phpt
rename to mongodb-2.1.4/tests/bson/bson-packedarray-toPHP-004.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-packedarray-toPHP-005.phpt b/mongodb-2.1.4/tests/bson/bson-packedarray-toPHP-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-packedarray-toPHP-005.phpt
rename to mongodb-2.1.4/tests/bson/bson-packedarray-toPHP-005.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-packedarray-toRelaxedExtendedJSON-001.phpt b/mongodb-2.1.4/tests/bson/bson-packedarray-toRelaxedExtendedJSON-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-packedarray-toRelaxedExtendedJSON-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-packedarray-toRelaxedExtendedJSON-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-packedarray-toRelaxedExtendedJSON-002.phpt b/mongodb-2.1.4/tests/bson/bson-packedarray-toRelaxedExtendedJSON-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-packedarray-toRelaxedExtendedJSON-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-packedarray-toRelaxedExtendedJSON-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-packedarray-unserialize_error-002.phpt b/mongodb-2.1.4/tests/bson/bson-packedarray-unserialize_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-packedarray-unserialize_error-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-packedarray-unserialize_error-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-regex-001.phpt b/mongodb-2.1.4/tests/bson/bson-regex-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-regex-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-regex-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-regex-002.phpt b/mongodb-2.1.4/tests/bson/bson-regex-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-regex-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-regex-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-regex-003.phpt b/mongodb-2.1.4/tests/bson/bson-regex-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-regex-003.phpt
rename to mongodb-2.1.4/tests/bson/bson-regex-003.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-regex-004.phpt b/mongodb-2.1.4/tests/bson/bson-regex-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-regex-004.phpt
rename to mongodb-2.1.4/tests/bson/bson-regex-004.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-regex-005.phpt b/mongodb-2.1.4/tests/bson/bson-regex-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-regex-005.phpt
rename to mongodb-2.1.4/tests/bson/bson-regex-005.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-regex-clone-001.phpt b/mongodb-2.1.4/tests/bson/bson-regex-clone-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-regex-clone-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-regex-clone-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-regex-clone-002.phpt b/mongodb-2.1.4/tests/bson/bson-regex-clone-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-regex-clone-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-regex-clone-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-regex-compare-001.phpt b/mongodb-2.1.4/tests/bson/bson-regex-compare-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-regex-compare-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-regex-compare-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-regex-compare-002.phpt b/mongodb-2.1.4/tests/bson/bson-regex-compare-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-regex-compare-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-regex-compare-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-regex-get_properties-001.phpt b/mongodb-2.1.4/tests/bson/bson-regex-get_properties-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-regex-get_properties-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-regex-get_properties-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-regex-get_properties-002.phpt b/mongodb-2.1.4/tests/bson/bson-regex-get_properties-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-regex-get_properties-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-regex-get_properties-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-regex-jsonserialize-001.phpt b/mongodb-2.1.4/tests/bson/bson-regex-jsonserialize-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-regex-jsonserialize-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-regex-jsonserialize-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-regex-jsonserialize-002.phpt b/mongodb-2.1.4/tests/bson/bson-regex-jsonserialize-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-regex-jsonserialize-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-regex-jsonserialize-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-regex-jsonserialize-003.phpt b/mongodb-2.1.4/tests/bson/bson-regex-jsonserialize-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-regex-jsonserialize-003.phpt
rename to mongodb-2.1.4/tests/bson/bson-regex-jsonserialize-003.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-regex-jsonserialize-004.phpt b/mongodb-2.1.4/tests/bson/bson-regex-jsonserialize-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-regex-jsonserialize-004.phpt
rename to mongodb-2.1.4/tests/bson/bson-regex-jsonserialize-004.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-regex-serialization-004.phpt b/mongodb-2.1.4/tests/bson/bson-regex-serialization-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-regex-serialization-004.phpt
rename to mongodb-2.1.4/tests/bson/bson-regex-serialization-004.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-regex-serialization-005.phpt b/mongodb-2.1.4/tests/bson/bson-regex-serialization-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-regex-serialization-005.phpt
rename to mongodb-2.1.4/tests/bson/bson-regex-serialization-005.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-regex-serialization-006.phpt b/mongodb-2.1.4/tests/bson/bson-regex-serialization-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-regex-serialization-006.phpt
rename to mongodb-2.1.4/tests/bson/bson-regex-serialization-006.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-regex-serialization_error-003.phpt b/mongodb-2.1.4/tests/bson/bson-regex-serialization_error-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-regex-serialization_error-003.phpt
rename to mongodb-2.1.4/tests/bson/bson-regex-serialization_error-003.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-regex-serialization_error-004.phpt b/mongodb-2.1.4/tests/bson/bson-regex-serialization_error-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-regex-serialization_error-004.phpt
rename to mongodb-2.1.4/tests/bson/bson-regex-serialization_error-004.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-regex-set_state-001.phpt b/mongodb-2.1.4/tests/bson/bson-regex-set_state-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-regex-set_state-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-regex-set_state-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-regex-set_state-002.phpt b/mongodb-2.1.4/tests/bson/bson-regex-set_state-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-regex-set_state-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-regex-set_state-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-regex-set_state_error-001.phpt b/mongodb-2.1.4/tests/bson/bson-regex-set_state_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-regex-set_state_error-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-regex-set_state_error-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-regex-set_state_error-002.phpt b/mongodb-2.1.4/tests/bson/bson-regex-set_state_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-regex-set_state_error-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-regex-set_state_error-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-regex_error-001.phpt b/mongodb-2.1.4/tests/bson/bson-regex_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-regex_error-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-regex_error-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-regex_error-002.phpt b/mongodb-2.1.4/tests/bson/bson-regex_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-regex_error-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-regex_error-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-regex_error-003.phpt b/mongodb-2.1.4/tests/bson/bson-regex_error-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-regex_error-003.phpt
rename to mongodb-2.1.4/tests/bson/bson-regex_error-003.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-regexinterface-001.phpt b/mongodb-2.1.4/tests/bson/bson-regexinterface-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-regexinterface-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-regexinterface-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-symbol-001.phpt b/mongodb-2.1.4/tests/bson/bson-symbol-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-symbol-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-symbol-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-symbol-clone-001.phpt b/mongodb-2.1.4/tests/bson/bson-symbol-clone-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-symbol-clone-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-symbol-clone-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-symbol-clone-002.phpt b/mongodb-2.1.4/tests/bson/bson-symbol-clone-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-symbol-clone-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-symbol-clone-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-symbol-compare-001.phpt b/mongodb-2.1.4/tests/bson/bson-symbol-compare-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-symbol-compare-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-symbol-compare-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-symbol-get_properties-001.phpt b/mongodb-2.1.4/tests/bson/bson-symbol-get_properties-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-symbol-get_properties-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-symbol-get_properties-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-symbol-get_properties-002.phpt b/mongodb-2.1.4/tests/bson/bson-symbol-get_properties-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-symbol-get_properties-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-symbol-get_properties-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-symbol-jsonserialize-001.phpt b/mongodb-2.1.4/tests/bson/bson-symbol-jsonserialize-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-symbol-jsonserialize-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-symbol-jsonserialize-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-symbol-jsonserialize-002.phpt b/mongodb-2.1.4/tests/bson/bson-symbol-jsonserialize-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-symbol-jsonserialize-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-symbol-jsonserialize-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-symbol-serialization-002.phpt b/mongodb-2.1.4/tests/bson/bson-symbol-serialization-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-symbol-serialization-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-symbol-serialization-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-symbol-serialization_error-003.phpt b/mongodb-2.1.4/tests/bson/bson-symbol-serialization_error-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-symbol-serialization_error-003.phpt
rename to mongodb-2.1.4/tests/bson/bson-symbol-serialization_error-003.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-symbol-serialization_error-004.phpt b/mongodb-2.1.4/tests/bson/bson-symbol-serialization_error-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-symbol-serialization_error-004.phpt
rename to mongodb-2.1.4/tests/bson/bson-symbol-serialization_error-004.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-symbol-set_state-001.phpt b/mongodb-2.1.4/tests/bson/bson-symbol-set_state-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-symbol-set_state-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-symbol-set_state-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-symbol-tostring-001.phpt b/mongodb-2.1.4/tests/bson/bson-symbol-tostring-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-symbol-tostring-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-symbol-tostring-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-symbol_error-001.phpt b/mongodb-2.1.4/tests/bson/bson-symbol_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-symbol_error-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-symbol_error-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-timestamp-001.phpt b/mongodb-2.1.4/tests/bson/bson-timestamp-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-timestamp-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-timestamp-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-timestamp-002.phpt b/mongodb-2.1.4/tests/bson/bson-timestamp-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-timestamp-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-timestamp-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-timestamp-003.phpt b/mongodb-2.1.4/tests/bson/bson-timestamp-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-timestamp-003.phpt
rename to mongodb-2.1.4/tests/bson/bson-timestamp-003.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-timestamp-004.phpt b/mongodb-2.1.4/tests/bson/bson-timestamp-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-timestamp-004.phpt
rename to mongodb-2.1.4/tests/bson/bson-timestamp-004.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-timestamp-005.phpt b/mongodb-2.1.4/tests/bson/bson-timestamp-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-timestamp-005.phpt
rename to mongodb-2.1.4/tests/bson/bson-timestamp-005.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-timestamp-clone-001.phpt b/mongodb-2.1.4/tests/bson/bson-timestamp-clone-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-timestamp-clone-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-timestamp-clone-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-timestamp-clone-002.phpt b/mongodb-2.1.4/tests/bson/bson-timestamp-clone-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-timestamp-clone-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-timestamp-clone-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-timestamp-compare-001.phpt b/mongodb-2.1.4/tests/bson/bson-timestamp-compare-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-timestamp-compare-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-timestamp-compare-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-timestamp-getIncrement-001.phpt b/mongodb-2.1.4/tests/bson/bson-timestamp-getIncrement-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-timestamp-getIncrement-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-timestamp-getIncrement-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-timestamp-getTimestamp-001.phpt b/mongodb-2.1.4/tests/bson/bson-timestamp-getTimestamp-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-timestamp-getTimestamp-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-timestamp-getTimestamp-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-timestamp-get_properties-001.phpt b/mongodb-2.1.4/tests/bson/bson-timestamp-get_properties-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-timestamp-get_properties-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-timestamp-get_properties-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-timestamp-get_properties-002.phpt b/mongodb-2.1.4/tests/bson/bson-timestamp-get_properties-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-timestamp-get_properties-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-timestamp-get_properties-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-timestamp-jsonserialize-001.phpt b/mongodb-2.1.4/tests/bson/bson-timestamp-jsonserialize-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-timestamp-jsonserialize-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-timestamp-jsonserialize-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-timestamp-jsonserialize-002.phpt b/mongodb-2.1.4/tests/bson/bson-timestamp-jsonserialize-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-timestamp-jsonserialize-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-timestamp-jsonserialize-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-timestamp-serialization-003.phpt b/mongodb-2.1.4/tests/bson/bson-timestamp-serialization-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-timestamp-serialization-003.phpt
rename to mongodb-2.1.4/tests/bson/bson-timestamp-serialization-003.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-timestamp-serialization-004.phpt b/mongodb-2.1.4/tests/bson/bson-timestamp-serialization-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-timestamp-serialization-004.phpt
rename to mongodb-2.1.4/tests/bson/bson-timestamp-serialization-004.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-timestamp-serialization_error-005.phpt b/mongodb-2.1.4/tests/bson/bson-timestamp-serialization_error-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-timestamp-serialization_error-005.phpt
rename to mongodb-2.1.4/tests/bson/bson-timestamp-serialization_error-005.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-timestamp-serialization_error-006.phpt b/mongodb-2.1.4/tests/bson/bson-timestamp-serialization_error-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-timestamp-serialization_error-006.phpt
rename to mongodb-2.1.4/tests/bson/bson-timestamp-serialization_error-006.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-timestamp-serialization_error-007.phpt b/mongodb-2.1.4/tests/bson/bson-timestamp-serialization_error-007.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-timestamp-serialization_error-007.phpt
rename to mongodb-2.1.4/tests/bson/bson-timestamp-serialization_error-007.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-timestamp-serialization_error-008.phpt b/mongodb-2.1.4/tests/bson/bson-timestamp-serialization_error-008.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-timestamp-serialization_error-008.phpt
rename to mongodb-2.1.4/tests/bson/bson-timestamp-serialization_error-008.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-timestamp-set_state-001.phpt b/mongodb-2.1.4/tests/bson/bson-timestamp-set_state-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-timestamp-set_state-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-timestamp-set_state-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-timestamp-set_state-002.phpt b/mongodb-2.1.4/tests/bson/bson-timestamp-set_state-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-timestamp-set_state-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-timestamp-set_state-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-timestamp-set_state_error-001.phpt b/mongodb-2.1.4/tests/bson/bson-timestamp-set_state_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-timestamp-set_state_error-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-timestamp-set_state_error-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-timestamp-set_state_error-002.phpt b/mongodb-2.1.4/tests/bson/bson-timestamp-set_state_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-timestamp-set_state_error-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-timestamp-set_state_error-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-timestamp-set_state_error-003.phpt b/mongodb-2.1.4/tests/bson/bson-timestamp-set_state_error-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-timestamp-set_state_error-003.phpt
rename to mongodb-2.1.4/tests/bson/bson-timestamp-set_state_error-003.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-timestamp-set_state_error-004.phpt b/mongodb-2.1.4/tests/bson/bson-timestamp-set_state_error-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-timestamp-set_state_error-004.phpt
rename to mongodb-2.1.4/tests/bson/bson-timestamp-set_state_error-004.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-timestamp_error-001.phpt b/mongodb-2.1.4/tests/bson/bson-timestamp_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-timestamp_error-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-timestamp_error-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-timestamp_error-002.phpt b/mongodb-2.1.4/tests/bson/bson-timestamp_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-timestamp_error-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-timestamp_error-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-timestamp_error-003.phpt b/mongodb-2.1.4/tests/bson/bson-timestamp_error-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-timestamp_error-003.phpt
rename to mongodb-2.1.4/tests/bson/bson-timestamp_error-003.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-timestamp_error-004.phpt b/mongodb-2.1.4/tests/bson/bson-timestamp_error-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-timestamp_error-004.phpt
rename to mongodb-2.1.4/tests/bson/bson-timestamp_error-004.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-timestamp_error-005.phpt b/mongodb-2.1.4/tests/bson/bson-timestamp_error-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-timestamp_error-005.phpt
rename to mongodb-2.1.4/tests/bson/bson-timestamp_error-005.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-timestamp_error-006.phpt b/mongodb-2.1.4/tests/bson/bson-timestamp_error-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-timestamp_error-006.phpt
rename to mongodb-2.1.4/tests/bson/bson-timestamp_error-006.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-timestampinterface-001.phpt b/mongodb-2.1.4/tests/bson/bson-timestampinterface-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-timestampinterface-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-timestampinterface-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-undefined-001.phpt b/mongodb-2.1.4/tests/bson/bson-undefined-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-undefined-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-undefined-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-undefined-clone-001.phpt b/mongodb-2.1.4/tests/bson/bson-undefined-clone-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-undefined-clone-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-undefined-clone-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-undefined-clone-002.phpt b/mongodb-2.1.4/tests/bson/bson-undefined-clone-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-undefined-clone-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-undefined-clone-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-undefined-compare-001.phpt b/mongodb-2.1.4/tests/bson/bson-undefined-compare-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-undefined-compare-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-undefined-compare-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-undefined-jsonserialize-001.phpt b/mongodb-2.1.4/tests/bson/bson-undefined-jsonserialize-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-undefined-jsonserialize-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-undefined-jsonserialize-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-undefined-jsonserialize-002.phpt b/mongodb-2.1.4/tests/bson/bson-undefined-jsonserialize-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-undefined-jsonserialize-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-undefined-jsonserialize-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-undefined-serialization-002.phpt b/mongodb-2.1.4/tests/bson/bson-undefined-serialization-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-undefined-serialization-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-undefined-serialization-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-undefined-set_state-001.phpt b/mongodb-2.1.4/tests/bson/bson-undefined-set_state-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-undefined-set_state-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-undefined-set_state-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-undefined-tostring-001.phpt b/mongodb-2.1.4/tests/bson/bson-undefined-tostring-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-undefined-tostring-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-undefined-tostring-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-undefined_error-001.phpt b/mongodb-2.1.4/tests/bson/bson-undefined_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-undefined_error-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-undefined_error-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-unknown-001.phpt b/mongodb-2.1.4/tests/bson/bson-unknown-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-unknown-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-unknown-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-utcdatetime-001.phpt b/mongodb-2.1.4/tests/bson/bson-utcdatetime-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-utcdatetime-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-utcdatetime-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-utcdatetime-002.phpt b/mongodb-2.1.4/tests/bson/bson-utcdatetime-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-utcdatetime-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-utcdatetime-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-utcdatetime-003.phpt b/mongodb-2.1.4/tests/bson/bson-utcdatetime-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-utcdatetime-003.phpt
rename to mongodb-2.1.4/tests/bson/bson-utcdatetime-003.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-utcdatetime-004.phpt b/mongodb-2.1.4/tests/bson/bson-utcdatetime-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-utcdatetime-004.phpt
rename to mongodb-2.1.4/tests/bson/bson-utcdatetime-004.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-utcdatetime-005.phpt b/mongodb-2.1.4/tests/bson/bson-utcdatetime-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-utcdatetime-005.phpt
rename to mongodb-2.1.4/tests/bson/bson-utcdatetime-005.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-utcdatetime-006.phpt b/mongodb-2.1.4/tests/bson/bson-utcdatetime-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-utcdatetime-006.phpt
rename to mongodb-2.1.4/tests/bson/bson-utcdatetime-006.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-utcdatetime-009.phpt b/mongodb-2.1.4/tests/bson/bson-utcdatetime-009.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-utcdatetime-009.phpt
rename to mongodb-2.1.4/tests/bson/bson-utcdatetime-009.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-utcdatetime-clone-001.phpt b/mongodb-2.1.4/tests/bson/bson-utcdatetime-clone-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-utcdatetime-clone-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-utcdatetime-clone-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-utcdatetime-clone-002.phpt b/mongodb-2.1.4/tests/bson/bson-utcdatetime-clone-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-utcdatetime-clone-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-utcdatetime-clone-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-utcdatetime-compare-001.phpt b/mongodb-2.1.4/tests/bson/bson-utcdatetime-compare-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-utcdatetime-compare-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-utcdatetime-compare-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-utcdatetime-get_properties-001.phpt b/mongodb-2.1.4/tests/bson/bson-utcdatetime-get_properties-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-utcdatetime-get_properties-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-utcdatetime-get_properties-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-utcdatetime-get_properties-002.phpt b/mongodb-2.1.4/tests/bson/bson-utcdatetime-get_properties-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-utcdatetime-get_properties-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-utcdatetime-get_properties-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-utcdatetime-jsonserialize-001.phpt b/mongodb-2.1.4/tests/bson/bson-utcdatetime-jsonserialize-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-utcdatetime-jsonserialize-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-utcdatetime-jsonserialize-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-utcdatetime-jsonserialize-002.phpt b/mongodb-2.1.4/tests/bson/bson-utcdatetime-jsonserialize-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-utcdatetime-jsonserialize-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-utcdatetime-jsonserialize-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-utcdatetime-serialization-003.phpt b/mongodb-2.1.4/tests/bson/bson-utcdatetime-serialization-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-utcdatetime-serialization-003.phpt
rename to mongodb-2.1.4/tests/bson/bson-utcdatetime-serialization-003.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-utcdatetime-serialization-004.phpt b/mongodb-2.1.4/tests/bson/bson-utcdatetime-serialization-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-utcdatetime-serialization-004.phpt
rename to mongodb-2.1.4/tests/bson/bson-utcdatetime-serialization-004.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-utcdatetime-serialization_error-003.phpt b/mongodb-2.1.4/tests/bson/bson-utcdatetime-serialization_error-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-utcdatetime-serialization_error-003.phpt
rename to mongodb-2.1.4/tests/bson/bson-utcdatetime-serialization_error-003.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-utcdatetime-serialization_error-004.phpt b/mongodb-2.1.4/tests/bson/bson-utcdatetime-serialization_error-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-utcdatetime-serialization_error-004.phpt
rename to mongodb-2.1.4/tests/bson/bson-utcdatetime-serialization_error-004.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-utcdatetime-set_state-001.phpt b/mongodb-2.1.4/tests/bson/bson-utcdatetime-set_state-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-utcdatetime-set_state-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-utcdatetime-set_state-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-utcdatetime-set_state-002.phpt b/mongodb-2.1.4/tests/bson/bson-utcdatetime-set_state-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-utcdatetime-set_state-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-utcdatetime-set_state-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-utcdatetime-set_state_error-001.phpt b/mongodb-2.1.4/tests/bson/bson-utcdatetime-set_state_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-utcdatetime-set_state_error-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-utcdatetime-set_state_error-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-utcdatetime-set_state_error-002.phpt b/mongodb-2.1.4/tests/bson/bson-utcdatetime-set_state_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-utcdatetime-set_state_error-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-utcdatetime-set_state_error-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-utcdatetime-todatetime-001.phpt b/mongodb-2.1.4/tests/bson/bson-utcdatetime-todatetime-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-utcdatetime-todatetime-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-utcdatetime-todatetime-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-utcdatetime-todatetime-002.phpt b/mongodb-2.1.4/tests/bson/bson-utcdatetime-todatetime-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-utcdatetime-todatetime-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-utcdatetime-todatetime-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-utcdatetime-todatetime-003.phpt b/mongodb-2.1.4/tests/bson/bson-utcdatetime-todatetime-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-utcdatetime-todatetime-003.phpt
rename to mongodb-2.1.4/tests/bson/bson-utcdatetime-todatetime-003.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-utcdatetime-todatetimeimmutable-001.phpt b/mongodb-2.1.4/tests/bson/bson-utcdatetime-todatetimeimmutable-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-utcdatetime-todatetimeimmutable-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-utcdatetime-todatetimeimmutable-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-utcdatetime-todatetimeimmutable-002.phpt b/mongodb-2.1.4/tests/bson/bson-utcdatetime-todatetimeimmutable-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-utcdatetime-todatetimeimmutable-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-utcdatetime-todatetimeimmutable-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-utcdatetime-todatetimeimmutable-003.phpt b/mongodb-2.1.4/tests/bson/bson-utcdatetime-todatetimeimmutable-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-utcdatetime-todatetimeimmutable-003.phpt
rename to mongodb-2.1.4/tests/bson/bson-utcdatetime-todatetimeimmutable-003.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-utcdatetime-tostring-001.phpt b/mongodb-2.1.4/tests/bson/bson-utcdatetime-tostring-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-utcdatetime-tostring-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-utcdatetime-tostring-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-utcdatetime_error-002.phpt b/mongodb-2.1.4/tests/bson/bson-utcdatetime_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-utcdatetime_error-002.phpt
rename to mongodb-2.1.4/tests/bson/bson-utcdatetime_error-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-utcdatetime_error-004.phpt b/mongodb-2.1.4/tests/bson/bson-utcdatetime_error-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-utcdatetime_error-004.phpt
rename to mongodb-2.1.4/tests/bson/bson-utcdatetime_error-004.phpt
diff --git a/mongodb-2.1.1/tests/bson/bson-utcdatetimeinterface-001.phpt b/mongodb-2.1.4/tests/bson/bson-utcdatetimeinterface-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bson-utcdatetimeinterface-001.phpt
rename to mongodb-2.1.4/tests/bson/bson-utcdatetimeinterface-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bug0274.phpt b/mongodb-2.1.4/tests/bson/bug0274.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bug0274.phpt
rename to mongodb-2.1.4/tests/bson/bug0274.phpt
diff --git a/mongodb-2.1.1/tests/bson/bug0325.phpt b/mongodb-2.1.4/tests/bson/bug0325.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bug0325.phpt
rename to mongodb-2.1.4/tests/bson/bug0325.phpt
diff --git a/mongodb-2.1.1/tests/bson/bug0334-001.phpt b/mongodb-2.1.4/tests/bson/bug0334-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bug0334-001.phpt
rename to mongodb-2.1.4/tests/bson/bug0334-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bug0334-002.phpt b/mongodb-2.1.4/tests/bson/bug0334-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bug0334-002.phpt
rename to mongodb-2.1.4/tests/bson/bug0334-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bug0341.phpt b/mongodb-2.1.4/tests/bson/bug0341.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bug0341.phpt
rename to mongodb-2.1.4/tests/bson/bug0341.phpt
diff --git a/mongodb-2.1.1/tests/bson/bug0347.phpt b/mongodb-2.1.4/tests/bson/bug0347.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bug0347.phpt
rename to mongodb-2.1.4/tests/bson/bug0347.phpt
diff --git a/mongodb-2.1.1/tests/bson/bug0528.phpt b/mongodb-2.1.4/tests/bson/bug0528.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bug0528.phpt
rename to mongodb-2.1.4/tests/bson/bug0528.phpt
diff --git a/mongodb-2.1.1/tests/bson/bug0531-001.phpt b/mongodb-2.1.4/tests/bson/bug0531-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bug0531-001.phpt
rename to mongodb-2.1.4/tests/bson/bug0531-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bug0544.phpt b/mongodb-2.1.4/tests/bson/bug0544.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bug0544.phpt
rename to mongodb-2.1.4/tests/bson/bug0544.phpt
diff --git a/mongodb-2.1.1/tests/bson/bug0592.phpt b/mongodb-2.1.4/tests/bson/bug0592.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bug0592.phpt
rename to mongodb-2.1.4/tests/bson/bug0592.phpt
diff --git a/mongodb-2.1.1/tests/bson/bug0623.phpt b/mongodb-2.1.4/tests/bson/bug0623.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bug0623.phpt
rename to mongodb-2.1.4/tests/bson/bug0623.phpt
diff --git a/mongodb-2.1.1/tests/bson/bug0631.phpt b/mongodb-2.1.4/tests/bson/bug0631.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bug0631.phpt
rename to mongodb-2.1.4/tests/bson/bug0631.phpt
diff --git a/mongodb-2.1.1/tests/bson/bug0672.phpt b/mongodb-2.1.4/tests/bson/bug0672.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bug0672.phpt
rename to mongodb-2.1.4/tests/bson/bug0672.phpt
diff --git a/mongodb-2.1.1/tests/bson/bug0894-001.phpt b/mongodb-2.1.4/tests/bson/bug0894-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bug0894-001.phpt
rename to mongodb-2.1.4/tests/bson/bug0894-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bug0923-001.phpt b/mongodb-2.1.4/tests/bson/bug0923-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bug0923-001.phpt
rename to mongodb-2.1.4/tests/bson/bug0923-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bug0923-002.phpt b/mongodb-2.1.4/tests/bson/bug0923-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bug0923-002.phpt
rename to mongodb-2.1.4/tests/bson/bug0923-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bug0939-001.phpt b/mongodb-2.1.4/tests/bson/bug0939-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bug0939-001.phpt
rename to mongodb-2.1.4/tests/bson/bug0939-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bug0974-001.phpt b/mongodb-2.1.4/tests/bson/bug0974-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bug0974-001.phpt
rename to mongodb-2.1.4/tests/bson/bug0974-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bug1006-001.phpt b/mongodb-2.1.4/tests/bson/bug1006-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bug1006-001.phpt
rename to mongodb-2.1.4/tests/bson/bug1006-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bug1006-002.phpt b/mongodb-2.1.4/tests/bson/bug1006-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bug1006-002.phpt
rename to mongodb-2.1.4/tests/bson/bug1006-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bug1053.phpt b/mongodb-2.1.4/tests/bson/bug1053.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bug1053.phpt
rename to mongodb-2.1.4/tests/bson/bug1053.phpt
diff --git a/mongodb-2.1.1/tests/bson/bug1067.phpt b/mongodb-2.1.4/tests/bson/bug1067.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bug1067.phpt
rename to mongodb-2.1.4/tests/bson/bug1067.phpt
diff --git a/mongodb-2.1.1/tests/bson/bug1266.phpt b/mongodb-2.1.4/tests/bson/bug1266.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bug1266.phpt
rename to mongodb-2.1.4/tests/bson/bug1266.phpt
diff --git a/mongodb-2.1.1/tests/bson/bug1598-001.phpt b/mongodb-2.1.4/tests/bson/bug1598-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bug1598-001.phpt
rename to mongodb-2.1.4/tests/bson/bug1598-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/bug1598-002.phpt b/mongodb-2.1.4/tests/bson/bug1598-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bug1598-002.phpt
rename to mongodb-2.1.4/tests/bson/bug1598-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/bug1839-005.phpt b/mongodb-2.1.4/tests/bson/bug1839-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bug1839-005.phpt
rename to mongodb-2.1.4/tests/bson/bug1839-005.phpt
diff --git a/mongodb-2.1.1/tests/bson/bug1839-006.phpt b/mongodb-2.1.4/tests/bson/bug1839-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bug1839-006.phpt
rename to mongodb-2.1.4/tests/bson/bug1839-006.phpt
diff --git a/mongodb-2.1.1/tests/bson/bug1839-007.phpt b/mongodb-2.1.4/tests/bson/bug1839-007.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bug1839-007.phpt
rename to mongodb-2.1.4/tests/bson/bug1839-007.phpt
diff --git a/mongodb-2.1.1/tests/bson/bug1839-008.phpt b/mongodb-2.1.4/tests/bson/bug1839-008.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bug1839-008.phpt
rename to mongodb-2.1.4/tests/bson/bug1839-008.phpt
diff --git a/mongodb-2.1.1/tests/bson/bug2456-001.phpt b/mongodb-2.1.4/tests/bson/bug2456-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/bug2456-001.phpt
rename to mongodb-2.1.4/tests/bson/bug2456-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/typemap-001.phpt b/mongodb-2.1.4/tests/bson/typemap-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/typemap-001.phpt
rename to mongodb-2.1.4/tests/bson/typemap-001.phpt
diff --git a/mongodb-2.1.1/tests/bson/typemap-002.phpt b/mongodb-2.1.4/tests/bson/typemap-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/typemap-002.phpt
rename to mongodb-2.1.4/tests/bson/typemap-002.phpt
diff --git a/mongodb-2.1.1/tests/bson/typemap-003.phpt b/mongodb-2.1.4/tests/bson/typemap-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/typemap-003.phpt
rename to mongodb-2.1.4/tests/bson/typemap-003.phpt
diff --git a/mongodb-2.1.1/tests/bson/typemap-004.phpt b/mongodb-2.1.4/tests/bson/typemap-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/typemap-004.phpt
rename to mongodb-2.1.4/tests/bson/typemap-004.phpt
diff --git a/mongodb-2.1.1/tests/bson/typemap-005.phpt b/mongodb-2.1.4/tests/bson/typemap-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/typemap-005.phpt
rename to mongodb-2.1.4/tests/bson/typemap-005.phpt
diff --git a/mongodb-2.1.1/tests/bson/typemap-006.phpt b/mongodb-2.1.4/tests/bson/typemap-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/typemap-006.phpt
rename to mongodb-2.1.4/tests/bson/typemap-006.phpt
diff --git a/mongodb-2.1.1/tests/bson/typemap-007.phpt b/mongodb-2.1.4/tests/bson/typemap-007.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bson/typemap-007.phpt
rename to mongodb-2.1.4/tests/bson/typemap-007.phpt
diff --git a/mongodb-2.1.1/tests/bulk/bug0667.phpt b/mongodb-2.1.4/tests/bulk/bug0667.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulk/bug0667.phpt
rename to mongodb-2.1.4/tests/bulk/bug0667.phpt
diff --git a/mongodb-2.1.1/tests/bulk/bulkwrite-count-001.phpt b/mongodb-2.1.4/tests/bulk/bulkwrite-count-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulk/bulkwrite-count-001.phpt
rename to mongodb-2.1.4/tests/bulk/bulkwrite-count-001.phpt
diff --git a/mongodb-2.1.1/tests/bulk/bulkwrite-countable-001.phpt b/mongodb-2.1.4/tests/bulk/bulkwrite-countable-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulk/bulkwrite-countable-001.phpt
rename to mongodb-2.1.4/tests/bulk/bulkwrite-countable-001.phpt
diff --git a/mongodb-2.1.1/tests/bulk/bulkwrite-ctor-comment-001.phpt b/mongodb-2.1.4/tests/bulk/bulkwrite-ctor-comment-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulk/bulkwrite-ctor-comment-001.phpt
rename to mongodb-2.1.4/tests/bulk/bulkwrite-ctor-comment-001.phpt
diff --git a/mongodb-2.1.1/tests/bulk/bulkwrite-ctor-comment_error-001.phpt b/mongodb-2.1.4/tests/bulk/bulkwrite-ctor-comment_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulk/bulkwrite-ctor-comment_error-001.phpt
rename to mongodb-2.1.4/tests/bulk/bulkwrite-ctor-comment_error-001.phpt
diff --git a/mongodb-2.1.1/tests/bulk/bulkwrite-ctor-let-001.phpt b/mongodb-2.1.4/tests/bulk/bulkwrite-ctor-let-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulk/bulkwrite-ctor-let-001.phpt
rename to mongodb-2.1.4/tests/bulk/bulkwrite-ctor-let-001.phpt
diff --git a/mongodb-2.1.1/tests/bulk/bulkwrite-ctor-let_error-001.phpt b/mongodb-2.1.4/tests/bulk/bulkwrite-ctor-let_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulk/bulkwrite-ctor-let_error-001.phpt
rename to mongodb-2.1.4/tests/bulk/bulkwrite-ctor-let_error-001.phpt
diff --git a/mongodb-2.1.1/tests/bulk/bulkwrite-debug-001.phpt b/mongodb-2.1.4/tests/bulk/bulkwrite-debug-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulk/bulkwrite-debug-001.phpt
rename to mongodb-2.1.4/tests/bulk/bulkwrite-debug-001.phpt
diff --git a/mongodb-2.1.1/tests/bulk/bulkwrite-debug-002.phpt b/mongodb-2.1.4/tests/bulk/bulkwrite-debug-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulk/bulkwrite-debug-002.phpt
rename to mongodb-2.1.4/tests/bulk/bulkwrite-debug-002.phpt
diff --git a/mongodb-2.1.1/tests/bulk/bulkwrite-delete-001.phpt b/mongodb-2.1.4/tests/bulk/bulkwrite-delete-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulk/bulkwrite-delete-001.phpt
rename to mongodb-2.1.4/tests/bulk/bulkwrite-delete-001.phpt
diff --git a/mongodb-2.1.1/tests/bulk/bulkwrite-delete-002.phpt b/mongodb-2.1.4/tests/bulk/bulkwrite-delete-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulk/bulkwrite-delete-002.phpt
rename to mongodb-2.1.4/tests/bulk/bulkwrite-delete-002.phpt
diff --git a/mongodb-2.1.1/tests/bulk/bulkwrite-delete-003.phpt b/mongodb-2.1.4/tests/bulk/bulkwrite-delete-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulk/bulkwrite-delete-003.phpt
rename to mongodb-2.1.4/tests/bulk/bulkwrite-delete-003.phpt
diff --git a/mongodb-2.1.1/tests/bulk/bulkwrite-delete_error-001.phpt b/mongodb-2.1.4/tests/bulk/bulkwrite-delete_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulk/bulkwrite-delete_error-001.phpt
rename to mongodb-2.1.4/tests/bulk/bulkwrite-delete_error-001.phpt
diff --git a/mongodb-2.1.1/tests/bulk/bulkwrite-delete_error-002.phpt b/mongodb-2.1.4/tests/bulk/bulkwrite-delete_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulk/bulkwrite-delete_error-002.phpt
rename to mongodb-2.1.4/tests/bulk/bulkwrite-delete_error-002.phpt
diff --git a/mongodb-2.1.1/tests/bulk/bulkwrite-delete_error-003.phpt b/mongodb-2.1.4/tests/bulk/bulkwrite-delete_error-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulk/bulkwrite-delete_error-003.phpt
rename to mongodb-2.1.4/tests/bulk/bulkwrite-delete_error-003.phpt
diff --git a/mongodb-2.1.1/tests/bulk/bulkwrite-delete_error-004.phpt b/mongodb-2.1.4/tests/bulk/bulkwrite-delete_error-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulk/bulkwrite-delete_error-004.phpt
rename to mongodb-2.1.4/tests/bulk/bulkwrite-delete_error-004.phpt
diff --git a/mongodb-2.1.1/tests/bulk/bulkwrite-delete_error-005.phpt b/mongodb-2.1.4/tests/bulk/bulkwrite-delete_error-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulk/bulkwrite-delete_error-005.phpt
rename to mongodb-2.1.4/tests/bulk/bulkwrite-delete_error-005.phpt
diff --git a/mongodb-2.1.1/tests/bulk/bulkwrite-insert-001.phpt b/mongodb-2.1.4/tests/bulk/bulkwrite-insert-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulk/bulkwrite-insert-001.phpt
rename to mongodb-2.1.4/tests/bulk/bulkwrite-insert-001.phpt
diff --git a/mongodb-2.1.1/tests/bulk/bulkwrite-insert-002.phpt b/mongodb-2.1.4/tests/bulk/bulkwrite-insert-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulk/bulkwrite-insert-002.phpt
rename to mongodb-2.1.4/tests/bulk/bulkwrite-insert-002.phpt
diff --git a/mongodb-2.1.1/tests/bulk/bulkwrite-insert-003.phpt b/mongodb-2.1.4/tests/bulk/bulkwrite-insert-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulk/bulkwrite-insert-003.phpt
rename to mongodb-2.1.4/tests/bulk/bulkwrite-insert-003.phpt
diff --git a/mongodb-2.1.1/tests/bulk/bulkwrite-insert-004.phpt b/mongodb-2.1.4/tests/bulk/bulkwrite-insert-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulk/bulkwrite-insert-004.phpt
rename to mongodb-2.1.4/tests/bulk/bulkwrite-insert-004.phpt
diff --git a/mongodb-2.1.1/tests/bulk/bulkwrite-insert_error-001.phpt b/mongodb-2.1.4/tests/bulk/bulkwrite-insert_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulk/bulkwrite-insert_error-001.phpt
rename to mongodb-2.1.4/tests/bulk/bulkwrite-insert_error-001.phpt
diff --git a/mongodb-2.1.1/tests/bulk/bulkwrite-insert_error-002.phpt b/mongodb-2.1.4/tests/bulk/bulkwrite-insert_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulk/bulkwrite-insert_error-002.phpt
rename to mongodb-2.1.4/tests/bulk/bulkwrite-insert_error-002.phpt
diff --git a/mongodb-2.1.1/tests/bulk/bulkwrite-insert_error-003.phpt b/mongodb-2.1.4/tests/bulk/bulkwrite-insert_error-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulk/bulkwrite-insert_error-003.phpt
rename to mongodb-2.1.4/tests/bulk/bulkwrite-insert_error-003.phpt
diff --git a/mongodb-2.1.1/tests/bulk/bulkwrite-insert_error-004.phpt b/mongodb-2.1.4/tests/bulk/bulkwrite-insert_error-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulk/bulkwrite-insert_error-004.phpt
rename to mongodb-2.1.4/tests/bulk/bulkwrite-insert_error-004.phpt
diff --git a/mongodb-2.1.1/tests/bulk/bulkwrite-update-001.phpt b/mongodb-2.1.4/tests/bulk/bulkwrite-update-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulk/bulkwrite-update-001.phpt
rename to mongodb-2.1.4/tests/bulk/bulkwrite-update-001.phpt
diff --git a/mongodb-2.1.1/tests/bulk/bulkwrite-update-002.phpt b/mongodb-2.1.4/tests/bulk/bulkwrite-update-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulk/bulkwrite-update-002.phpt
rename to mongodb-2.1.4/tests/bulk/bulkwrite-update-002.phpt
diff --git a/mongodb-2.1.1/tests/bulk/bulkwrite-update-003.phpt b/mongodb-2.1.4/tests/bulk/bulkwrite-update-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulk/bulkwrite-update-003.phpt
rename to mongodb-2.1.4/tests/bulk/bulkwrite-update-003.phpt
diff --git a/mongodb-2.1.1/tests/bulk/bulkwrite-update-004.phpt b/mongodb-2.1.4/tests/bulk/bulkwrite-update-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulk/bulkwrite-update-004.phpt
rename to mongodb-2.1.4/tests/bulk/bulkwrite-update-004.phpt
diff --git a/mongodb-2.1.1/tests/bulk/bulkwrite-update-005.phpt b/mongodb-2.1.4/tests/bulk/bulkwrite-update-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulk/bulkwrite-update-005.phpt
rename to mongodb-2.1.4/tests/bulk/bulkwrite-update-005.phpt
diff --git a/mongodb-2.1.1/tests/bulk/bulkwrite-update-006.phpt b/mongodb-2.1.4/tests/bulk/bulkwrite-update-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulk/bulkwrite-update-006.phpt
rename to mongodb-2.1.4/tests/bulk/bulkwrite-update-006.phpt
diff --git a/mongodb-2.1.1/tests/bulk/bulkwrite-update-007.phpt b/mongodb-2.1.4/tests/bulk/bulkwrite-update-007.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulk/bulkwrite-update-007.phpt
rename to mongodb-2.1.4/tests/bulk/bulkwrite-update-007.phpt
diff --git a/mongodb-2.1.1/tests/bulk/bulkwrite-update-008.phpt b/mongodb-2.1.4/tests/bulk/bulkwrite-update-008.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulk/bulkwrite-update-008.phpt
rename to mongodb-2.1.4/tests/bulk/bulkwrite-update-008.phpt
diff --git a/mongodb-2.1.1/tests/bulk/bulkwrite-update_error-001.phpt b/mongodb-2.1.4/tests/bulk/bulkwrite-update_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulk/bulkwrite-update_error-001.phpt
rename to mongodb-2.1.4/tests/bulk/bulkwrite-update_error-001.phpt
diff --git a/mongodb-2.1.1/tests/bulk/bulkwrite-update_error-002.phpt b/mongodb-2.1.4/tests/bulk/bulkwrite-update_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulk/bulkwrite-update_error-002.phpt
rename to mongodb-2.1.4/tests/bulk/bulkwrite-update_error-002.phpt
diff --git a/mongodb-2.1.1/tests/bulk/bulkwrite-update_error-003.phpt b/mongodb-2.1.4/tests/bulk/bulkwrite-update_error-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulk/bulkwrite-update_error-003.phpt
rename to mongodb-2.1.4/tests/bulk/bulkwrite-update_error-003.phpt
diff --git a/mongodb-2.1.1/tests/bulk/bulkwrite-update_error-004.phpt b/mongodb-2.1.4/tests/bulk/bulkwrite-update_error-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulk/bulkwrite-update_error-004.phpt
rename to mongodb-2.1.4/tests/bulk/bulkwrite-update_error-004.phpt
diff --git a/mongodb-2.1.1/tests/bulk/bulkwrite-update_error-005.phpt b/mongodb-2.1.4/tests/bulk/bulkwrite-update_error-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulk/bulkwrite-update_error-005.phpt
rename to mongodb-2.1.4/tests/bulk/bulkwrite-update_error-005.phpt
diff --git a/mongodb-2.1.1/tests/bulk/bulkwrite-update_error-006.phpt b/mongodb-2.1.4/tests/bulk/bulkwrite-update_error-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulk/bulkwrite-update_error-006.phpt
rename to mongodb-2.1.4/tests/bulk/bulkwrite-update_error-006.phpt
diff --git a/mongodb-2.1.1/tests/bulk/bulkwrite-update_error-009.phpt b/mongodb-2.1.4/tests/bulk/bulkwrite-update_error-009.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulk/bulkwrite-update_error-009.phpt
rename to mongodb-2.1.4/tests/bulk/bulkwrite-update_error-009.phpt
diff --git a/mongodb-2.1.1/tests/bulk/bulkwrite_error-001.phpt b/mongodb-2.1.4/tests/bulk/bulkwrite_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulk/bulkwrite_error-001.phpt
rename to mongodb-2.1.4/tests/bulk/bulkwrite_error-001.phpt
diff --git a/mongodb-2.1.1/tests/bulk/bulkwrite_error-002.phpt b/mongodb-2.1.4/tests/bulk/bulkwrite_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulk/bulkwrite_error-002.phpt
rename to mongodb-2.1.4/tests/bulk/bulkwrite_error-002.phpt
diff --git a/mongodb-2.1.1/tests/bulk/write-0001.phpt b/mongodb-2.1.4/tests/bulk/write-0001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulk/write-0001.phpt
rename to mongodb-2.1.4/tests/bulk/write-0001.phpt
diff --git a/mongodb-2.1.1/tests/bulk/write-0002.phpt b/mongodb-2.1.4/tests/bulk/write-0002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulk/write-0002.phpt
rename to mongodb-2.1.4/tests/bulk/write-0002.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-ctor-bypassDocumentValidation-001.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-ctor-bypassDocumentValidation-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-ctor-bypassDocumentValidation-001.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-ctor-bypassDocumentValidation-001.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-ctor-bypassDocumentValidation-002.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-ctor-bypassDocumentValidation-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-ctor-bypassDocumentValidation-002.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-ctor-bypassDocumentValidation-002.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-ctor-comment-001.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-ctor-comment-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-ctor-comment-001.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-ctor-comment-001.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-ctor-comment_error-001.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-ctor-comment_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-ctor-comment_error-001.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-ctor-comment_error-001.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-ctor-let-001.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-ctor-let-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-ctor-let-001.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-ctor-let-001.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-ctor-let_error-001.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-ctor-let_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-ctor-let_error-001.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-ctor-let_error-001.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-ctor-ordered-001.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-ctor-ordered-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-ctor-ordered-001.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-ctor-ordered-001.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-ctor-ordered-002.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-ctor-ordered-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-ctor-ordered-002.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-ctor-ordered-002.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-ctor-verboseresults-001.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-ctor-verboseresults-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-ctor-verboseresults-001.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-ctor-verboseresults-001.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-ctor-verboseresults-002.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-ctor-verboseresults-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-ctor-verboseresults-002.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-ctor-verboseresults-002.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-debug-001.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-debug-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-debug-001.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-debug-001.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-debug-002.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-debug-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-debug-002.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-debug-002.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-debug-003.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-debug-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-debug-003.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-debug-003.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-deleteMany-001.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-deleteMany-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-deleteMany-001.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-deleteMany-001.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-deleteMany-002.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-deleteMany-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-deleteMany-002.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-deleteMany-002.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-deleteMany-003.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-deleteMany-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-deleteMany-003.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-deleteMany-003.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-deleteMany_error-001.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-deleteMany_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-deleteMany_error-001.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-deleteMany_error-001.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-deleteMany_error-002.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-deleteMany_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-deleteMany_error-002.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-deleteMany_error-002.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-deleteMany_error-003.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-deleteMany_error-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-deleteMany_error-003.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-deleteMany_error-003.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-deleteMany_error-004.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-deleteMany_error-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-deleteMany_error-004.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-deleteMany_error-004.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-deleteOne-001.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-deleteOne-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-deleteOne-001.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-deleteOne-001.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-deleteOne-002.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-deleteOne-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-deleteOne-002.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-deleteOne-002.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-deleteOne-003.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-deleteOne-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-deleteOne-003.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-deleteOne-003.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-deleteOne_error-001.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-deleteOne_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-deleteOne_error-001.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-deleteOne_error-001.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-deleteOne_error-002.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-deleteOne_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-deleteOne_error-002.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-deleteOne_error-002.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-deleteOne_error-003.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-deleteOne_error-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-deleteOne_error-003.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-deleteOne_error-003.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-deleteOne_error-004.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-deleteOne_error-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-deleteOne_error-004.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-deleteOne_error-004.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-insertOne-001.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-insertOne-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-insertOne-001.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-insertOne-001.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-insertOne-002.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-insertOne-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-insertOne-002.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-insertOne-002.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-insertOne-003.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-insertOne-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-insertOne-003.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-insertOne-003.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-insertOne-004.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-insertOne-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-insertOne-004.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-insertOne-004.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-insertOne_error-001.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-insertOne_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-insertOne_error-001.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-insertOne_error-001.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-insertOne_error-002.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-insertOne_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-insertOne_error-002.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-insertOne_error-002.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-insertOne_error-003.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-insertOne_error-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-insertOne_error-003.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-insertOne_error-003.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-replaceOne-001.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-replaceOne-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-replaceOne-001.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-replaceOne-001.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-replaceOne-004.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-replaceOne-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-replaceOne-004.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-replaceOne-004.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-replaceOne-008.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-replaceOne-008.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-replaceOne-008.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-replaceOne-008.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-replaceOne_error-003.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-replaceOne_error-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-replaceOne_error-003.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-replaceOne_error-003.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-replaceOne_error-004.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-replaceOne_error-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-replaceOne_error-004.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-replaceOne_error-004.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-replaceOne_error-005.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-replaceOne_error-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-replaceOne_error-005.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-replaceOne_error-005.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-replaceOne_error-006.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-replaceOne_error-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-replaceOne_error-006.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-replaceOne_error-006.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-updateMany-002.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-updateMany-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-updateMany-002.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-updateMany-002.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-updateMany-003.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-updateMany-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-updateMany-003.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-updateMany-003.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-updateMany-005.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-updateMany-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-updateMany-005.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-updateMany-005.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-updateMany-007.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-updateMany-007.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-updateMany-007.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-updateMany-007.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-updateOne-001.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-updateOne-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-updateOne-001.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-updateOne-001.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-updateOne-004.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-updateOne-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-updateOne-004.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-updateOne-004.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-updateOne-006.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-updateOne-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-updateOne-006.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-updateOne-006.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-updateOne-008.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-updateOne-008.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-updateOne-008.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-updateOne-008.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-updateOne_error-003.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-updateOne_error-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-updateOne_error-003.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-updateOne_error-003.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-updateOne_error-004.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-updateOne_error-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-updateOne_error-004.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-updateOne_error-004.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-updateOne_error-005.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-updateOne_error-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-updateOne_error-005.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-updateOne_error-005.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-updateOne_error-006.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-updateOne_error-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommand-updateOne_error-006.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommand-updateOne_error-006.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommandresult-debug-001.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommandresult-debug-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommandresult-debug-001.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommandresult-debug-001.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommandresult-isAcknowledged-001.phpt b/mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommandresult-isAcknowledged-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/bulkwritecommandresult-isAcknowledged-001.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/bulkwritecommandresult-isAcknowledged-001.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/manager-executeBulkWriteCommand-001.phpt b/mongodb-2.1.4/tests/bulkwritecommand/manager-executeBulkWriteCommand-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/manager-executeBulkWriteCommand-001.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/manager-executeBulkWriteCommand-001.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/manager-executeBulkWriteCommand_error-001.phpt b/mongodb-2.1.4/tests/bulkwritecommand/manager-executeBulkWriteCommand_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/manager-executeBulkWriteCommand_error-001.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/manager-executeBulkWriteCommand_error-001.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/manager-executeBulkWriteCommand_error-002.phpt b/mongodb-2.1.4/tests/bulkwritecommand/manager-executeBulkWriteCommand_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/manager-executeBulkWriteCommand_error-002.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/manager-executeBulkWriteCommand_error-002.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/server-executeBulkWriteCommand-001.phpt b/mongodb-2.1.4/tests/bulkwritecommand/server-executeBulkWriteCommand-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/server-executeBulkWriteCommand-001.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/server-executeBulkWriteCommand-001.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/server-executeBulkWriteCommand_error-001.phpt b/mongodb-2.1.4/tests/bulkwritecommand/server-executeBulkWriteCommand_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/server-executeBulkWriteCommand_error-001.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/server-executeBulkWriteCommand_error-001.phpt
diff --git a/mongodb-2.1.1/tests/bulkwritecommand/server-executeBulkWriteCommand_error-002.phpt b/mongodb-2.1.4/tests/bulkwritecommand/server-executeBulkWriteCommand_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/bulkwritecommand/server-executeBulkWriteCommand_error-002.phpt
rename to mongodb-2.1.4/tests/bulkwritecommand/server-executeBulkWriteCommand_error-002.phpt
diff --git a/mongodb-2.1.1/tests/causal-consistency/causal-consistency-001.phpt b/mongodb-2.1.4/tests/causal-consistency/causal-consistency-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/causal-consistency/causal-consistency-001.phpt
rename to mongodb-2.1.4/tests/causal-consistency/causal-consistency-001.phpt
diff --git a/mongodb-2.1.1/tests/causal-consistency/causal-consistency-002.phpt b/mongodb-2.1.4/tests/causal-consistency/causal-consistency-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/causal-consistency/causal-consistency-002.phpt
rename to mongodb-2.1.4/tests/causal-consistency/causal-consistency-002.phpt
diff --git a/mongodb-2.1.1/tests/causal-consistency/causal-consistency-003.phpt b/mongodb-2.1.4/tests/causal-consistency/causal-consistency-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/causal-consistency/causal-consistency-003.phpt
rename to mongodb-2.1.4/tests/causal-consistency/causal-consistency-003.phpt
diff --git a/mongodb-2.1.1/tests/causal-consistency/causal-consistency-004.phpt b/mongodb-2.1.4/tests/causal-consistency/causal-consistency-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/causal-consistency/causal-consistency-004.phpt
rename to mongodb-2.1.4/tests/causal-consistency/causal-consistency-004.phpt
diff --git a/mongodb-2.1.1/tests/causal-consistency/causal-consistency-005.phpt b/mongodb-2.1.4/tests/causal-consistency/causal-consistency-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/causal-consistency/causal-consistency-005.phpt
rename to mongodb-2.1.4/tests/causal-consistency/causal-consistency-005.phpt
diff --git a/mongodb-2.1.1/tests/causal-consistency/causal-consistency-006.phpt b/mongodb-2.1.4/tests/causal-consistency/causal-consistency-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/causal-consistency/causal-consistency-006.phpt
rename to mongodb-2.1.4/tests/causal-consistency/causal-consistency-006.phpt
diff --git a/mongodb-2.1.1/tests/causal-consistency/causal-consistency-007.phpt b/mongodb-2.1.4/tests/causal-consistency/causal-consistency-007.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/causal-consistency/causal-consistency-007.phpt
rename to mongodb-2.1.4/tests/causal-consistency/causal-consistency-007.phpt
diff --git a/mongodb-2.1.1/tests/causal-consistency/causal-consistency-008.phpt b/mongodb-2.1.4/tests/causal-consistency/causal-consistency-008.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/causal-consistency/causal-consistency-008.phpt
rename to mongodb-2.1.4/tests/causal-consistency/causal-consistency-008.phpt
diff --git a/mongodb-2.1.1/tests/causal-consistency/causal-consistency-009.phpt b/mongodb-2.1.4/tests/causal-consistency/causal-consistency-009.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/causal-consistency/causal-consistency-009.phpt
rename to mongodb-2.1.4/tests/causal-consistency/causal-consistency-009.phpt
diff --git a/mongodb-2.1.1/tests/causal-consistency/causal-consistency-010.phpt b/mongodb-2.1.4/tests/causal-consistency/causal-consistency-010.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/causal-consistency/causal-consistency-010.phpt
rename to mongodb-2.1.4/tests/causal-consistency/causal-consistency-010.phpt
diff --git a/mongodb-2.1.1/tests/causal-consistency/causal-consistency-011.phpt b/mongodb-2.1.4/tests/causal-consistency/causal-consistency-011.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/causal-consistency/causal-consistency-011.phpt
rename to mongodb-2.1.4/tests/causal-consistency/causal-consistency-011.phpt
diff --git a/mongodb-2.1.1/tests/causal-consistency/causal-consistency-012.phpt b/mongodb-2.1.4/tests/causal-consistency/causal-consistency-012.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/causal-consistency/causal-consistency-012.phpt
rename to mongodb-2.1.4/tests/causal-consistency/causal-consistency-012.phpt
diff --git a/mongodb-2.1.1/tests/clientEncryption/bug2149.phpt b/mongodb-2.1.4/tests/clientEncryption/bug2149.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/clientEncryption/bug2149.phpt
rename to mongodb-2.1.4/tests/clientEncryption/bug2149.phpt
diff --git a/mongodb-2.1.1/tests/clientEncryption/clientEncryption-addKeyAltName-001.phpt b/mongodb-2.1.4/tests/clientEncryption/clientEncryption-addKeyAltName-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/clientEncryption/clientEncryption-addKeyAltName-001.phpt
rename to mongodb-2.1.4/tests/clientEncryption/clientEncryption-addKeyAltName-001.phpt
diff --git a/mongodb-2.1.1/tests/clientEncryption/clientEncryption-addKeyAltName-002.phpt b/mongodb-2.1.4/tests/clientEncryption/clientEncryption-addKeyAltName-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/clientEncryption/clientEncryption-addKeyAltName-002.phpt
rename to mongodb-2.1.4/tests/clientEncryption/clientEncryption-addKeyAltName-002.phpt
diff --git a/mongodb-2.1.1/tests/clientEncryption/clientEncryption-addKeyAltName_error-001.phpt b/mongodb-2.1.4/tests/clientEncryption/clientEncryption-addKeyAltName_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/clientEncryption/clientEncryption-addKeyAltName_error-001.phpt
rename to mongodb-2.1.4/tests/clientEncryption/clientEncryption-addKeyAltName_error-001.phpt
diff --git a/mongodb-2.1.1/tests/clientEncryption/clientEncryption-constants.phpt b/mongodb-2.1.4/tests/clientEncryption/clientEncryption-constants.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/clientEncryption/clientEncryption-constants.phpt
rename to mongodb-2.1.4/tests/clientEncryption/clientEncryption-constants.phpt
diff --git a/mongodb-2.1.1/tests/clientEncryption/clientEncryption-createDataKey-001.phpt b/mongodb-2.1.4/tests/clientEncryption/clientEncryption-createDataKey-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/clientEncryption/clientEncryption-createDataKey-001.phpt
rename to mongodb-2.1.4/tests/clientEncryption/clientEncryption-createDataKey-001.phpt
diff --git a/mongodb-2.1.1/tests/clientEncryption/clientEncryption-createDataKey-002.phpt b/mongodb-2.1.4/tests/clientEncryption/clientEncryption-createDataKey-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/clientEncryption/clientEncryption-createDataKey-002.phpt
rename to mongodb-2.1.4/tests/clientEncryption/clientEncryption-createDataKey-002.phpt
diff --git a/mongodb-2.1.1/tests/clientEncryption/clientEncryption-createDataKey_error-001.phpt b/mongodb-2.1.4/tests/clientEncryption/clientEncryption-createDataKey_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/clientEncryption/clientEncryption-createDataKey_error-001.phpt
rename to mongodb-2.1.4/tests/clientEncryption/clientEncryption-createDataKey_error-001.phpt
diff --git a/mongodb-2.1.1/tests/clientEncryption/clientEncryption-createDataKey_error-002.phpt b/mongodb-2.1.4/tests/clientEncryption/clientEncryption-createDataKey_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/clientEncryption/clientEncryption-createDataKey_error-002.phpt
rename to mongodb-2.1.4/tests/clientEncryption/clientEncryption-createDataKey_error-002.phpt
diff --git a/mongodb-2.1.1/tests/clientEncryption/clientEncryption-createDataKey_error-003.phpt b/mongodb-2.1.4/tests/clientEncryption/clientEncryption-createDataKey_error-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/clientEncryption/clientEncryption-createDataKey_error-003.phpt
rename to mongodb-2.1.4/tests/clientEncryption/clientEncryption-createDataKey_error-003.phpt
diff --git a/mongodb-2.1.1/tests/clientEncryption/clientEncryption-ctor-001.phpt b/mongodb-2.1.4/tests/clientEncryption/clientEncryption-ctor-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/clientEncryption/clientEncryption-ctor-001.phpt
rename to mongodb-2.1.4/tests/clientEncryption/clientEncryption-ctor-001.phpt
diff --git a/mongodb-2.1.1/tests/clientEncryption/clientEncryption-ctor-002.phpt b/mongodb-2.1.4/tests/clientEncryption/clientEncryption-ctor-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/clientEncryption/clientEncryption-ctor-002.phpt
rename to mongodb-2.1.4/tests/clientEncryption/clientEncryption-ctor-002.phpt
diff --git a/mongodb-2.1.1/tests/clientEncryption/clientEncryption-ctor_error-001.phpt b/mongodb-2.1.4/tests/clientEncryption/clientEncryption-ctor_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/clientEncryption/clientEncryption-ctor_error-001.phpt
rename to mongodb-2.1.4/tests/clientEncryption/clientEncryption-ctor_error-001.phpt
diff --git a/mongodb-2.1.1/tests/clientEncryption/clientEncryption-ctor_error-002.phpt b/mongodb-2.1.4/tests/clientEncryption/clientEncryption-ctor_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/clientEncryption/clientEncryption-ctor_error-002.phpt
rename to mongodb-2.1.4/tests/clientEncryption/clientEncryption-ctor_error-002.phpt
diff --git a/mongodb-2.1.1/tests/clientEncryption/clientEncryption-decrypt-001.phpt b/mongodb-2.1.4/tests/clientEncryption/clientEncryption-decrypt-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/clientEncryption/clientEncryption-decrypt-001.phpt
rename to mongodb-2.1.4/tests/clientEncryption/clientEncryption-decrypt-001.phpt
diff --git a/mongodb-2.1.1/tests/clientEncryption/clientEncryption-deleteKey-001.phpt b/mongodb-2.1.4/tests/clientEncryption/clientEncryption-deleteKey-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/clientEncryption/clientEncryption-deleteKey-001.phpt
rename to mongodb-2.1.4/tests/clientEncryption/clientEncryption-deleteKey-001.phpt
diff --git a/mongodb-2.1.1/tests/clientEncryption/clientEncryption-deleteKey-002.phpt b/mongodb-2.1.4/tests/clientEncryption/clientEncryption-deleteKey-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/clientEncryption/clientEncryption-deleteKey-002.phpt
rename to mongodb-2.1.4/tests/clientEncryption/clientEncryption-deleteKey-002.phpt
diff --git a/mongodb-2.1.1/tests/clientEncryption/clientEncryption-deleteKey_error-001.phpt b/mongodb-2.1.4/tests/clientEncryption/clientEncryption-deleteKey_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/clientEncryption/clientEncryption-deleteKey_error-001.phpt
rename to mongodb-2.1.4/tests/clientEncryption/clientEncryption-deleteKey_error-001.phpt
diff --git a/mongodb-2.1.1/tests/clientEncryption/clientEncryption-encrypt-001.phpt b/mongodb-2.1.4/tests/clientEncryption/clientEncryption-encrypt-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/clientEncryption/clientEncryption-encrypt-001.phpt
rename to mongodb-2.1.4/tests/clientEncryption/clientEncryption-encrypt-001.phpt
diff --git a/mongodb-2.1.1/tests/clientEncryption/clientEncryption-encryptExpression-001.phpt b/mongodb-2.1.4/tests/clientEncryption/clientEncryption-encryptExpression-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/clientEncryption/clientEncryption-encryptExpression-001.phpt
rename to mongodb-2.1.4/tests/clientEncryption/clientEncryption-encryptExpression-001.phpt
diff --git a/mongodb-2.1.1/tests/clientEncryption/clientEncryption-encryptExpression_error-001.phpt b/mongodb-2.1.4/tests/clientEncryption/clientEncryption-encryptExpression_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/clientEncryption/clientEncryption-encryptExpression_error-001.phpt
rename to mongodb-2.1.4/tests/clientEncryption/clientEncryption-encryptExpression_error-001.phpt
diff --git a/mongodb-2.1.1/tests/clientEncryption/clientEncryption-encryptExpression_error-002.phpt b/mongodb-2.1.4/tests/clientEncryption/clientEncryption-encryptExpression_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/clientEncryption/clientEncryption-encryptExpression_error-002.phpt
rename to mongodb-2.1.4/tests/clientEncryption/clientEncryption-encryptExpression_error-002.phpt
diff --git a/mongodb-2.1.1/tests/clientEncryption/clientEncryption-encrypt_error-001.phpt b/mongodb-2.1.4/tests/clientEncryption/clientEncryption-encrypt_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/clientEncryption/clientEncryption-encrypt_error-001.phpt
rename to mongodb-2.1.4/tests/clientEncryption/clientEncryption-encrypt_error-001.phpt
diff --git a/mongodb-2.1.1/tests/clientEncryption/clientEncryption-getKey-001.phpt b/mongodb-2.1.4/tests/clientEncryption/clientEncryption-getKey-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/clientEncryption/clientEncryption-getKey-001.phpt
rename to mongodb-2.1.4/tests/clientEncryption/clientEncryption-getKey-001.phpt
diff --git a/mongodb-2.1.1/tests/clientEncryption/clientEncryption-getKey-002.phpt b/mongodb-2.1.4/tests/clientEncryption/clientEncryption-getKey-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/clientEncryption/clientEncryption-getKey-002.phpt
rename to mongodb-2.1.4/tests/clientEncryption/clientEncryption-getKey-002.phpt
diff --git a/mongodb-2.1.1/tests/clientEncryption/clientEncryption-getKeyByAltName-001.phpt b/mongodb-2.1.4/tests/clientEncryption/clientEncryption-getKeyByAltName-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/clientEncryption/clientEncryption-getKeyByAltName-001.phpt
rename to mongodb-2.1.4/tests/clientEncryption/clientEncryption-getKeyByAltName-001.phpt
diff --git a/mongodb-2.1.1/tests/clientEncryption/clientEncryption-getKeyByAltName-002.phpt b/mongodb-2.1.4/tests/clientEncryption/clientEncryption-getKeyByAltName-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/clientEncryption/clientEncryption-getKeyByAltName-002.phpt
rename to mongodb-2.1.4/tests/clientEncryption/clientEncryption-getKeyByAltName-002.phpt
diff --git a/mongodb-2.1.1/tests/clientEncryption/clientEncryption-getKey_error-001.phpt b/mongodb-2.1.4/tests/clientEncryption/clientEncryption-getKey_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/clientEncryption/clientEncryption-getKey_error-001.phpt
rename to mongodb-2.1.4/tests/clientEncryption/clientEncryption-getKey_error-001.phpt
diff --git a/mongodb-2.1.1/tests/clientEncryption/clientEncryption-getKeys-001.phpt b/mongodb-2.1.4/tests/clientEncryption/clientEncryption-getKeys-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/clientEncryption/clientEncryption-getKeys-001.phpt
rename to mongodb-2.1.4/tests/clientEncryption/clientEncryption-getKeys-001.phpt
diff --git a/mongodb-2.1.1/tests/clientEncryption/clientEncryption-getKeys-002.phpt b/mongodb-2.1.4/tests/clientEncryption/clientEncryption-getKeys-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/clientEncryption/clientEncryption-getKeys-002.phpt
rename to mongodb-2.1.4/tests/clientEncryption/clientEncryption-getKeys-002.phpt
diff --git a/mongodb-2.1.1/tests/clientEncryption/clientEncryption-getKeys-003.phpt b/mongodb-2.1.4/tests/clientEncryption/clientEncryption-getKeys-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/clientEncryption/clientEncryption-getKeys-003.phpt
rename to mongodb-2.1.4/tests/clientEncryption/clientEncryption-getKeys-003.phpt
diff --git a/mongodb-2.1.1/tests/clientEncryption/clientEncryption-removeKeyAltName-001.phpt b/mongodb-2.1.4/tests/clientEncryption/clientEncryption-removeKeyAltName-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/clientEncryption/clientEncryption-removeKeyAltName-001.phpt
rename to mongodb-2.1.4/tests/clientEncryption/clientEncryption-removeKeyAltName-001.phpt
diff --git a/mongodb-2.1.1/tests/clientEncryption/clientEncryption-removeKeyAltName-002.phpt b/mongodb-2.1.4/tests/clientEncryption/clientEncryption-removeKeyAltName-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/clientEncryption/clientEncryption-removeKeyAltName-002.phpt
rename to mongodb-2.1.4/tests/clientEncryption/clientEncryption-removeKeyAltName-002.phpt
diff --git a/mongodb-2.1.1/tests/clientEncryption/clientEncryption-removeKeyAltName-003.phpt b/mongodb-2.1.4/tests/clientEncryption/clientEncryption-removeKeyAltName-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/clientEncryption/clientEncryption-removeKeyAltName-003.phpt
rename to mongodb-2.1.4/tests/clientEncryption/clientEncryption-removeKeyAltName-003.phpt
diff --git a/mongodb-2.1.1/tests/clientEncryption/clientEncryption-removeKeyAltName_error-001.phpt b/mongodb-2.1.4/tests/clientEncryption/clientEncryption-removeKeyAltName_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/clientEncryption/clientEncryption-removeKeyAltName_error-001.phpt
rename to mongodb-2.1.4/tests/clientEncryption/clientEncryption-removeKeyAltName_error-001.phpt
diff --git a/mongodb-2.1.1/tests/clientEncryption/clientEncryption-rewrapManyDataKey-001.phpt b/mongodb-2.1.4/tests/clientEncryption/clientEncryption-rewrapManyDataKey-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/clientEncryption/clientEncryption-rewrapManyDataKey-001.phpt
rename to mongodb-2.1.4/tests/clientEncryption/clientEncryption-rewrapManyDataKey-001.phpt
diff --git a/mongodb-2.1.1/tests/clientEncryption/clientEncryption-rewrapManyDataKey-002.phpt b/mongodb-2.1.4/tests/clientEncryption/clientEncryption-rewrapManyDataKey-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/clientEncryption/clientEncryption-rewrapManyDataKey-002.phpt
rename to mongodb-2.1.4/tests/clientEncryption/clientEncryption-rewrapManyDataKey-002.phpt
diff --git a/mongodb-2.1.1/tests/clientEncryption/clientEncryption-rewrapManyDataKey-003.phpt b/mongodb-2.1.4/tests/clientEncryption/clientEncryption-rewrapManyDataKey-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/clientEncryption/clientEncryption-rewrapManyDataKey-003.phpt
rename to mongodb-2.1.4/tests/clientEncryption/clientEncryption-rewrapManyDataKey-003.phpt
diff --git a/mongodb-2.1.1/tests/clientEncryption/clientEncryption-rewrapManyDataKey_error-001.phpt b/mongodb-2.1.4/tests/clientEncryption/clientEncryption-rewrapManyDataKey_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/clientEncryption/clientEncryption-rewrapManyDataKey_error-001.phpt
rename to mongodb-2.1.4/tests/clientEncryption/clientEncryption-rewrapManyDataKey_error-001.phpt
diff --git a/mongodb-2.1.1/tests/clientEncryption/clientEncryption-rewrapManyDataKey_error-002.phpt b/mongodb-2.1.4/tests/clientEncryption/clientEncryption-rewrapManyDataKey_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/clientEncryption/clientEncryption-rewrapManyDataKey_error-002.phpt
rename to mongodb-2.1.4/tests/clientEncryption/clientEncryption-rewrapManyDataKey_error-002.phpt
diff --git a/mongodb-2.1.1/tests/clientEncryption/clientEncryption-rewrapManyDataKey_error-003.phpt b/mongodb-2.1.4/tests/clientEncryption/clientEncryption-rewrapManyDataKey_error-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/clientEncryption/clientEncryption-rewrapManyDataKey_error-003.phpt
rename to mongodb-2.1.4/tests/clientEncryption/clientEncryption-rewrapManyDataKey_error-003.phpt
diff --git a/mongodb-2.1.1/tests/command/command-ctor-001.phpt b/mongodb-2.1.4/tests/command/command-ctor-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/command/command-ctor-001.phpt
rename to mongodb-2.1.4/tests/command/command-ctor-001.phpt
diff --git a/mongodb-2.1.1/tests/command/command-ctor-002.phpt b/mongodb-2.1.4/tests/command/command-ctor-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/command/command-ctor-002.phpt
rename to mongodb-2.1.4/tests/command/command-ctor-002.phpt
diff --git a/mongodb-2.1.1/tests/command/command-ctor_error-001.phpt b/mongodb-2.1.4/tests/command/command-ctor_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/command/command-ctor_error-001.phpt
rename to mongodb-2.1.4/tests/command/command-ctor_error-001.phpt
diff --git a/mongodb-2.1.1/tests/command/command_error-001.phpt b/mongodb-2.1.4/tests/command/command_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/command/command_error-001.phpt
rename to mongodb-2.1.4/tests/command/command_error-001.phpt
diff --git a/mongodb-2.1.1/tests/command/cursor-batchsize-001.phpt b/mongodb-2.1.4/tests/command/cursor-batchsize-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/command/cursor-batchsize-001.phpt
rename to mongodb-2.1.4/tests/command/cursor-batchsize-001.phpt
diff --git a/mongodb-2.1.1/tests/command/cursor-batchsize-002.phpt b/mongodb-2.1.4/tests/command/cursor-batchsize-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/command/cursor-batchsize-002.phpt
rename to mongodb-2.1.4/tests/command/cursor-batchsize-002.phpt
diff --git a/mongodb-2.1.1/tests/command/cursor-comment-001.phpt b/mongodb-2.1.4/tests/command/cursor-comment-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/command/cursor-comment-001.phpt
rename to mongodb-2.1.4/tests/command/cursor-comment-001.phpt
diff --git a/mongodb-2.1.1/tests/command/cursor-tailable-001.phpt b/mongodb-2.1.4/tests/command/cursor-tailable-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/command/cursor-tailable-001.phpt
rename to mongodb-2.1.4/tests/command/cursor-tailable-001.phpt
diff --git a/mongodb-2.1.1/tests/command/findAndModify-001.phpt b/mongodb-2.1.4/tests/command/findAndModify-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/command/findAndModify-001.phpt
rename to mongodb-2.1.4/tests/command/findAndModify-001.phpt
diff --git a/mongodb-2.1.1/tests/command/update-001.phpt b/mongodb-2.1.4/tests/command/update-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/command/update-001.phpt
rename to mongodb-2.1.4/tests/command/update-001.phpt
diff --git a/mongodb-2.1.1/tests/connect/bug0720.phpt b/mongodb-2.1.4/tests/connect/bug0720.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/connect/bug0720.phpt
rename to mongodb-2.1.4/tests/connect/bug0720.phpt
diff --git a/mongodb-2.1.1/tests/connect/bug1015.phpt b/mongodb-2.1.4/tests/connect/bug1015.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/connect/bug1015.phpt
rename to mongodb-2.1.4/tests/connect/bug1015.phpt
diff --git a/mongodb-2.1.1/tests/connect/bug1045.phpt b/mongodb-2.1.4/tests/connect/bug1045.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/connect/bug1045.phpt
rename to mongodb-2.1.4/tests/connect/bug1045.phpt
diff --git a/mongodb-2.1.1/tests/connect/compression_error-001.phpt b/mongodb-2.1.4/tests/connect/compression_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/connect/compression_error-001.phpt
rename to mongodb-2.1.4/tests/connect/compression_error-001.phpt
diff --git a/mongodb-2.1.1/tests/connect/compression_error-002.phpt b/mongodb-2.1.4/tests/connect/compression_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/connect/compression_error-002.phpt
rename to mongodb-2.1.4/tests/connect/compression_error-002.phpt
diff --git a/mongodb-2.1.1/tests/connect/replicaset-seedlist-001.phpt b/mongodb-2.1.4/tests/connect/replicaset-seedlist-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/connect/replicaset-seedlist-001.phpt
rename to mongodb-2.1.4/tests/connect/replicaset-seedlist-001.phpt
diff --git a/mongodb-2.1.1/tests/connect/replicaset-seedlist-002.phpt b/mongodb-2.1.4/tests/connect/replicaset-seedlist-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/connect/replicaset-seedlist-002.phpt
rename to mongodb-2.1.4/tests/connect/replicaset-seedlist-002.phpt
diff --git a/mongodb-2.1.1/tests/connect/standalone-auth-001.phpt b/mongodb-2.1.4/tests/connect/standalone-auth-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/connect/standalone-auth-001.phpt
rename to mongodb-2.1.4/tests/connect/standalone-auth-001.phpt
diff --git a/mongodb-2.1.1/tests/connect/standalone-auth_error-001.phpt b/mongodb-2.1.4/tests/connect/standalone-auth_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/connect/standalone-auth_error-001.phpt
rename to mongodb-2.1.4/tests/connect/standalone-auth_error-001.phpt
diff --git a/mongodb-2.1.1/tests/connect/standalone-plain-0001.phpt b/mongodb-2.1.4/tests/connect/standalone-plain-0001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/connect/standalone-plain-0001.phpt
rename to mongodb-2.1.4/tests/connect/standalone-plain-0001.phpt
diff --git a/mongodb-2.1.1/tests/connect/standalone-plain-0002.phpt b/mongodb-2.1.4/tests/connect/standalone-plain-0002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/connect/standalone-plain-0002.phpt
rename to mongodb-2.1.4/tests/connect/standalone-plain-0002.phpt
diff --git a/mongodb-2.1.1/tests/connect/standalone-ssl-no_verify-003.phpt b/mongodb-2.1.4/tests/connect/standalone-ssl-no_verify-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/connect/standalone-ssl-no_verify-003.phpt
rename to mongodb-2.1.4/tests/connect/standalone-ssl-no_verify-003.phpt
diff --git a/mongodb-2.1.1/tests/connect/standalone-ssl-verify_cert-003.phpt b/mongodb-2.1.4/tests/connect/standalone-ssl-verify_cert-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/connect/standalone-ssl-verify_cert-003.phpt
rename to mongodb-2.1.4/tests/connect/standalone-ssl-verify_cert-003.phpt
diff --git a/mongodb-2.1.1/tests/connect/standalone-ssl-verify_cert-error-003.phpt b/mongodb-2.1.4/tests/connect/standalone-ssl-verify_cert-error-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/connect/standalone-ssl-verify_cert-error-003.phpt
rename to mongodb-2.1.4/tests/connect/standalone-ssl-verify_cert-error-003.phpt
diff --git a/mongodb-2.1.1/tests/connect/standalone-x509-auth-001.phpt b/mongodb-2.1.4/tests/connect/standalone-x509-auth-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/connect/standalone-x509-auth-001.phpt
rename to mongodb-2.1.4/tests/connect/standalone-x509-auth-001.phpt
diff --git a/mongodb-2.1.1/tests/connect/standalone-x509-error-0001.phpt b/mongodb-2.1.4/tests/connect/standalone-x509-error-0001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/connect/standalone-x509-error-0001.phpt
rename to mongodb-2.1.4/tests/connect/standalone-x509-error-0001.phpt
diff --git a/mongodb-2.1.1/tests/connect/standalone-x509-extract_username-001.phpt b/mongodb-2.1.4/tests/connect/standalone-x509-extract_username-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/connect/standalone-x509-extract_username-001.phpt
rename to mongodb-2.1.4/tests/connect/standalone-x509-extract_username-001.phpt
diff --git a/mongodb-2.1.1/tests/cursor/bug0671-001.phpt b/mongodb-2.1.4/tests/cursor/bug0671-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/bug0671-001.phpt
rename to mongodb-2.1.4/tests/cursor/bug0671-001.phpt
diff --git a/mongodb-2.1.1/tests/cursor/bug0732-001.phpt b/mongodb-2.1.4/tests/cursor/bug0732-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/bug0732-001.phpt
rename to mongodb-2.1.4/tests/cursor/bug0732-001.phpt
diff --git a/mongodb-2.1.1/tests/cursor/bug0849-001.phpt b/mongodb-2.1.4/tests/cursor/bug0849-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/bug0849-001.phpt
rename to mongodb-2.1.4/tests/cursor/bug0849-001.phpt
diff --git a/mongodb-2.1.1/tests/cursor/bug0924-001.phpt b/mongodb-2.1.4/tests/cursor/bug0924-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/bug0924-001.phpt
rename to mongodb-2.1.4/tests/cursor/bug0924-001.phpt
diff --git a/mongodb-2.1.1/tests/cursor/bug0924-002.phpt b/mongodb-2.1.4/tests/cursor/bug0924-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/bug0924-002.phpt
rename to mongodb-2.1.4/tests/cursor/bug0924-002.phpt
diff --git a/mongodb-2.1.1/tests/cursor/bug1050-001.phpt b/mongodb-2.1.4/tests/cursor/bug1050-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/bug1050-001.phpt
rename to mongodb-2.1.4/tests/cursor/bug1050-001.phpt
diff --git a/mongodb-2.1.1/tests/cursor/bug1050-002.phpt b/mongodb-2.1.4/tests/cursor/bug1050-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/bug1050-002.phpt
rename to mongodb-2.1.4/tests/cursor/bug1050-002.phpt
diff --git a/mongodb-2.1.1/tests/cursor/bug1151-001.phpt b/mongodb-2.1.4/tests/cursor/bug1151-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/bug1151-001.phpt
rename to mongodb-2.1.4/tests/cursor/bug1151-001.phpt
diff --git a/mongodb-2.1.1/tests/cursor/bug1151-002.phpt b/mongodb-2.1.4/tests/cursor/bug1151-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/bug1151-002.phpt
rename to mongodb-2.1.4/tests/cursor/bug1151-002.phpt
diff --git a/mongodb-2.1.1/tests/cursor/bug1151-003.phpt b/mongodb-2.1.4/tests/cursor/bug1151-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/bug1151-003.phpt
rename to mongodb-2.1.4/tests/cursor/bug1151-003.phpt
diff --git a/mongodb-2.1.1/tests/cursor/bug1151-004.phpt b/mongodb-2.1.4/tests/cursor/bug1151-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/bug1151-004.phpt
rename to mongodb-2.1.4/tests/cursor/bug1151-004.phpt
diff --git a/mongodb-2.1.1/tests/cursor/bug1152-001.phpt b/mongodb-2.1.4/tests/cursor/bug1152-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/bug1152-001.phpt
rename to mongodb-2.1.4/tests/cursor/bug1152-001.phpt
diff --git a/mongodb-2.1.1/tests/cursor/bug1152-002.phpt b/mongodb-2.1.4/tests/cursor/bug1152-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/bug1152-002.phpt
rename to mongodb-2.1.4/tests/cursor/bug1152-002.phpt
diff --git a/mongodb-2.1.1/tests/cursor/bug1162-001.phpt b/mongodb-2.1.4/tests/cursor/bug1162-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/bug1162-001.phpt
rename to mongodb-2.1.4/tests/cursor/bug1162-001.phpt
diff --git a/mongodb-2.1.1/tests/cursor/bug1274-001.phpt b/mongodb-2.1.4/tests/cursor/bug1274-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/bug1274-001.phpt
rename to mongodb-2.1.4/tests/cursor/bug1274-001.phpt
diff --git a/mongodb-2.1.1/tests/cursor/bug1274-002.phpt b/mongodb-2.1.4/tests/cursor/bug1274-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/bug1274-002.phpt
rename to mongodb-2.1.4/tests/cursor/bug1274-002.phpt
diff --git a/mongodb-2.1.1/tests/cursor/bug1274-003.phpt b/mongodb-2.1.4/tests/cursor/bug1274-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/bug1274-003.phpt
rename to mongodb-2.1.4/tests/cursor/bug1274-003.phpt
diff --git a/mongodb-2.1.1/tests/cursor/bug1274-004.phpt b/mongodb-2.1.4/tests/cursor/bug1274-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/bug1274-004.phpt
rename to mongodb-2.1.4/tests/cursor/bug1274-004.phpt
diff --git a/mongodb-2.1.1/tests/cursor/bug1274-005.phpt b/mongodb-2.1.4/tests/cursor/bug1274-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/bug1274-005.phpt
rename to mongodb-2.1.4/tests/cursor/bug1274-005.phpt
diff --git a/mongodb-2.1.1/tests/cursor/bug1274-006.phpt b/mongodb-2.1.4/tests/cursor/bug1274-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/bug1274-006.phpt
rename to mongodb-2.1.4/tests/cursor/bug1274-006.phpt
diff --git a/mongodb-2.1.1/tests/cursor/bug1419-001.phpt b/mongodb-2.1.4/tests/cursor/bug1419-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/bug1419-001.phpt
rename to mongodb-2.1.4/tests/cursor/bug1419-001.phpt
diff --git a/mongodb-2.1.1/tests/cursor/bug1529-001.phpt b/mongodb-2.1.4/tests/cursor/bug1529-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/bug1529-001.phpt
rename to mongodb-2.1.4/tests/cursor/bug1529-001.phpt
diff --git a/mongodb-2.1.1/tests/cursor/bug1713-001.phpt b/mongodb-2.1.4/tests/cursor/bug1713-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/bug1713-001.phpt
rename to mongodb-2.1.4/tests/cursor/bug1713-001.phpt
diff --git a/mongodb-2.1.1/tests/cursor/cursor-001.phpt b/mongodb-2.1.4/tests/cursor/cursor-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/cursor-001.phpt
rename to mongodb-2.1.4/tests/cursor/cursor-001.phpt
diff --git a/mongodb-2.1.1/tests/cursor/cursor-IteratorIterator-001.phpt b/mongodb-2.1.4/tests/cursor/cursor-IteratorIterator-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/cursor-IteratorIterator-001.phpt
rename to mongodb-2.1.4/tests/cursor/cursor-IteratorIterator-001.phpt
diff --git a/mongodb-2.1.1/tests/cursor/cursor-IteratorIterator-002.phpt b/mongodb-2.1.4/tests/cursor/cursor-IteratorIterator-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/cursor-IteratorIterator-002.phpt
rename to mongodb-2.1.4/tests/cursor/cursor-IteratorIterator-002.phpt
diff --git a/mongodb-2.1.1/tests/cursor/cursor-IteratorIterator-003.phpt b/mongodb-2.1.4/tests/cursor/cursor-IteratorIterator-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/cursor-IteratorIterator-003.phpt
rename to mongodb-2.1.4/tests/cursor/cursor-IteratorIterator-003.phpt
diff --git a/mongodb-2.1.1/tests/cursor/cursor-NoRewindIterator-001.phpt b/mongodb-2.1.4/tests/cursor/cursor-NoRewindIterator-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/cursor-NoRewindIterator-001.phpt
rename to mongodb-2.1.4/tests/cursor/cursor-NoRewindIterator-001.phpt
diff --git a/mongodb-2.1.1/tests/cursor/cursor-destruct-001.phpt b/mongodb-2.1.4/tests/cursor/cursor-destruct-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/cursor-destruct-001.phpt
rename to mongodb-2.1.4/tests/cursor/cursor-destruct-001.phpt
diff --git a/mongodb-2.1.1/tests/cursor/cursor-getmore-001.phpt b/mongodb-2.1.4/tests/cursor/cursor-getmore-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/cursor-getmore-001.phpt
rename to mongodb-2.1.4/tests/cursor/cursor-getmore-001.phpt
diff --git a/mongodb-2.1.1/tests/cursor/cursor-getmore-002.phpt b/mongodb-2.1.4/tests/cursor/cursor-getmore-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/cursor-getmore-002.phpt
rename to mongodb-2.1.4/tests/cursor/cursor-getmore-002.phpt
diff --git a/mongodb-2.1.1/tests/cursor/cursor-getmore-003.phpt b/mongodb-2.1.4/tests/cursor/cursor-getmore-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/cursor-getmore-003.phpt
rename to mongodb-2.1.4/tests/cursor/cursor-getmore-003.phpt
diff --git a/mongodb-2.1.1/tests/cursor/cursor-getmore-004.phpt b/mongodb-2.1.4/tests/cursor/cursor-getmore-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/cursor-getmore-004.phpt
rename to mongodb-2.1.4/tests/cursor/cursor-getmore-004.phpt
diff --git a/mongodb-2.1.1/tests/cursor/cursor-getmore-005.phpt b/mongodb-2.1.4/tests/cursor/cursor-getmore-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/cursor-getmore-005.phpt
rename to mongodb-2.1.4/tests/cursor/cursor-getmore-005.phpt
diff --git a/mongodb-2.1.1/tests/cursor/cursor-getmore-006.phpt b/mongodb-2.1.4/tests/cursor/cursor-getmore-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/cursor-getmore-006.phpt
rename to mongodb-2.1.4/tests/cursor/cursor-getmore-006.phpt
diff --git a/mongodb-2.1.1/tests/cursor/cursor-isDead-001.phpt b/mongodb-2.1.4/tests/cursor/cursor-isDead-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/cursor-isDead-001.phpt
rename to mongodb-2.1.4/tests/cursor/cursor-isDead-001.phpt
diff --git a/mongodb-2.1.1/tests/cursor/cursor-isDead-002.phpt b/mongodb-2.1.4/tests/cursor/cursor-isDead-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/cursor-isDead-002.phpt
rename to mongodb-2.1.4/tests/cursor/cursor-isDead-002.phpt
diff --git a/mongodb-2.1.1/tests/cursor/cursor-iterator-001.phpt b/mongodb-2.1.4/tests/cursor/cursor-iterator-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/cursor-iterator-001.phpt
rename to mongodb-2.1.4/tests/cursor/cursor-iterator-001.phpt
diff --git a/mongodb-2.1.1/tests/cursor/cursor-iterator-002.phpt b/mongodb-2.1.4/tests/cursor/cursor-iterator-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/cursor-iterator-002.phpt
rename to mongodb-2.1.4/tests/cursor/cursor-iterator-002.phpt
diff --git a/mongodb-2.1.1/tests/cursor/cursor-iterator-003.phpt b/mongodb-2.1.4/tests/cursor/cursor-iterator-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/cursor-iterator-003.phpt
rename to mongodb-2.1.4/tests/cursor/cursor-iterator-003.phpt
diff --git a/mongodb-2.1.1/tests/cursor/cursor-iterator-004.phpt b/mongodb-2.1.4/tests/cursor/cursor-iterator-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/cursor-iterator-004.phpt
rename to mongodb-2.1.4/tests/cursor/cursor-iterator-004.phpt
diff --git a/mongodb-2.1.1/tests/cursor/cursor-iterator_handlers-001.phpt b/mongodb-2.1.4/tests/cursor/cursor-iterator_handlers-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/cursor-iterator_handlers-001.phpt
rename to mongodb-2.1.4/tests/cursor/cursor-iterator_handlers-001.phpt
diff --git a/mongodb-2.1.1/tests/cursor/cursor-rewind-001.phpt b/mongodb-2.1.4/tests/cursor/cursor-rewind-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/cursor-rewind-001.phpt
rename to mongodb-2.1.4/tests/cursor/cursor-rewind-001.phpt
diff --git a/mongodb-2.1.1/tests/cursor/cursor-session-001.phpt b/mongodb-2.1.4/tests/cursor/cursor-session-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/cursor-session-001.phpt
rename to mongodb-2.1.4/tests/cursor/cursor-session-001.phpt
diff --git a/mongodb-2.1.1/tests/cursor/cursor-session-002.phpt b/mongodb-2.1.4/tests/cursor/cursor-session-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/cursor-session-002.phpt
rename to mongodb-2.1.4/tests/cursor/cursor-session-002.phpt
diff --git a/mongodb-2.1.1/tests/cursor/cursor-session-003.phpt b/mongodb-2.1.4/tests/cursor/cursor-session-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/cursor-session-003.phpt
rename to mongodb-2.1.4/tests/cursor/cursor-session-003.phpt
diff --git a/mongodb-2.1.1/tests/cursor/cursor-session-004.phpt b/mongodb-2.1.4/tests/cursor/cursor-session-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/cursor-session-004.phpt
rename to mongodb-2.1.4/tests/cursor/cursor-session-004.phpt
diff --git a/mongodb-2.1.1/tests/cursor/cursor-setTypeMap_error-001.phpt b/mongodb-2.1.4/tests/cursor/cursor-setTypeMap_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/cursor-setTypeMap_error-001.phpt
rename to mongodb-2.1.4/tests/cursor/cursor-setTypeMap_error-001.phpt
diff --git a/mongodb-2.1.1/tests/cursor/cursor-setTypeMap_error-002.phpt b/mongodb-2.1.4/tests/cursor/cursor-setTypeMap_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/cursor-setTypeMap_error-002.phpt
rename to mongodb-2.1.4/tests/cursor/cursor-setTypeMap_error-002.phpt
diff --git a/mongodb-2.1.1/tests/cursor/cursor-setTypeMap_error-003.phpt b/mongodb-2.1.4/tests/cursor/cursor-setTypeMap_error-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/cursor-setTypeMap_error-003.phpt
rename to mongodb-2.1.4/tests/cursor/cursor-setTypeMap_error-003.phpt
diff --git a/mongodb-2.1.1/tests/cursor/cursor-setTypeMap_error-004.phpt b/mongodb-2.1.4/tests/cursor/cursor-setTypeMap_error-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/cursor-setTypeMap_error-004.phpt
rename to mongodb-2.1.4/tests/cursor/cursor-setTypeMap_error-004.phpt
diff --git a/mongodb-2.1.1/tests/cursor/cursor-tailable-001.phpt b/mongodb-2.1.4/tests/cursor/cursor-tailable-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/cursor-tailable-001.phpt
rename to mongodb-2.1.4/tests/cursor/cursor-tailable-001.phpt
diff --git a/mongodb-2.1.1/tests/cursor/cursor-tailable-002.phpt b/mongodb-2.1.4/tests/cursor/cursor-tailable-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/cursor-tailable-002.phpt
rename to mongodb-2.1.4/tests/cursor/cursor-tailable-002.phpt
diff --git a/mongodb-2.1.1/tests/cursor/cursor-tailable-003.phpt b/mongodb-2.1.4/tests/cursor/cursor-tailable-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/cursor-tailable-003.phpt
rename to mongodb-2.1.4/tests/cursor/cursor-tailable-003.phpt
diff --git a/mongodb-2.1.1/tests/cursor/cursor-tailable_error-001.phpt b/mongodb-2.1.4/tests/cursor/cursor-tailable_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/cursor-tailable_error-001.phpt
rename to mongodb-2.1.4/tests/cursor/cursor-tailable_error-001.phpt
diff --git a/mongodb-2.1.1/tests/cursor/cursor-tailable_error-002.phpt b/mongodb-2.1.4/tests/cursor/cursor-tailable_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/cursor-tailable_error-002.phpt
rename to mongodb-2.1.4/tests/cursor/cursor-tailable_error-002.phpt
diff --git a/mongodb-2.1.1/tests/cursor/cursor-toArray-001.phpt b/mongodb-2.1.4/tests/cursor/cursor-toArray-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/cursor-toArray-001.phpt
rename to mongodb-2.1.4/tests/cursor/cursor-toArray-001.phpt
diff --git a/mongodb-2.1.1/tests/cursor/cursor-toArray-002.phpt b/mongodb-2.1.4/tests/cursor/cursor-toArray-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/cursor-toArray-002.phpt
rename to mongodb-2.1.4/tests/cursor/cursor-toArray-002.phpt
diff --git a/mongodb-2.1.1/tests/cursor/cursor_error-001.phpt b/mongodb-2.1.4/tests/cursor/cursor_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/cursor_error-001.phpt
rename to mongodb-2.1.4/tests/cursor/cursor_error-001.phpt
diff --git a/mongodb-2.1.1/tests/cursor/cursorid-getId-001.phpt b/mongodb-2.1.4/tests/cursor/cursorid-getId-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/cursorid-getId-001.phpt
rename to mongodb-2.1.4/tests/cursor/cursorid-getId-001.phpt
diff --git a/mongodb-2.1.1/tests/cursor/cursorinterface-001.phpt b/mongodb-2.1.4/tests/cursor/cursorinterface-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/cursorinterface-001.phpt
rename to mongodb-2.1.4/tests/cursor/cursorinterface-001.phpt
diff --git a/mongodb-2.1.1/tests/cursor/cursorinterface-002.phpt b/mongodb-2.1.4/tests/cursor/cursorinterface-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/cursor/cursorinterface-002.phpt
rename to mongodb-2.1.4/tests/cursor/cursorinterface-002.phpt
diff --git a/mongodb-2.1.1/tests/exception/bulkwriteexception-getwriteresult-001.phpt b/mongodb-2.1.4/tests/exception/bulkwriteexception-getwriteresult-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/exception/bulkwriteexception-getwriteresult-001.phpt
rename to mongodb-2.1.4/tests/exception/bulkwriteexception-getwriteresult-001.phpt
diff --git a/mongodb-2.1.1/tests/exception/bulkwriteexception-haserrorlabel-001.phpt b/mongodb-2.1.4/tests/exception/bulkwriteexception-haserrorlabel-001.phpt
similarity index 91%
rename from mongodb-2.1.1/tests/exception/bulkwriteexception-haserrorlabel-001.phpt
rename to mongodb-2.1.4/tests/exception/bulkwriteexception-haserrorlabel-001.phpt
index 6a7a4b39..e1b18dc7 100644
--- a/mongodb-2.1.1/tests/exception/bulkwriteexception-haserrorlabel-001.phpt
+++ b/mongodb-2.1.4/tests/exception/bulkwriteexception-haserrorlabel-001.phpt
@@ -1,24 +1,23 @@
--TEST--
MongoDB\Driver\Exception\BulkWriteException::hasErrorLabel()
--FILE--
<?php
$exception = new MongoDB\Driver\Exception\BulkWriteException();
$labels = ['test', 'foo'];
$reflection = new ReflectionClass($exception);
$resultDocumentProperty = $reflection->getProperty('errorLabels');
-$resultDocumentProperty->setAccessible(true);
$resultDocumentProperty->setValue($exception, $labels);
var_dump($exception->hasErrorLabel('foo'));
var_dump($exception->hasErrorLabel('bar'));
?>
===DONE===
<?php exit(0); ?>
--EXPECT--
bool(true)
bool(false)
===DONE===
diff --git a/mongodb-2.1.1/tests/exception/bulkwriteexception-haserrorlabel-002.phpt b/mongodb-2.1.4/tests/exception/bulkwriteexception-haserrorlabel-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/exception/bulkwriteexception-haserrorlabel-002.phpt
rename to mongodb-2.1.4/tests/exception/bulkwriteexception-haserrorlabel-002.phpt
diff --git a/mongodb-2.1.1/tests/exception/bulkwriteexception-haserrorlabel_error-001.phpt b/mongodb-2.1.4/tests/exception/bulkwriteexception-haserrorlabel_error-001.phpt
similarity index 91%
rename from mongodb-2.1.1/tests/exception/bulkwriteexception-haserrorlabel_error-001.phpt
rename to mongodb-2.1.4/tests/exception/bulkwriteexception-haserrorlabel_error-001.phpt
index 229f50b1..17d806d0 100644
--- a/mongodb-2.1.1/tests/exception/bulkwriteexception-haserrorlabel_error-001.phpt
+++ b/mongodb-2.1.4/tests/exception/bulkwriteexception-haserrorlabel_error-001.phpt
@@ -1,22 +1,21 @@
--TEST--
MongoDB\Driver\Exception\BulkWriteException::hasErrorLabel() with non-array values
--FILE--
<?php
$exception = new MongoDB\Driver\Exception\BulkWriteException();
$labels = 'shouldBeAnArray';
$reflection = new ReflectionClass($exception);
$resultDocumentProperty = $reflection->getProperty('errorLabels');
-$resultDocumentProperty->setAccessible(true);
$resultDocumentProperty->setValue($exception, $labels);
var_dump($exception->hasErrorLabel('bar'));
?>
===DONE===
<?php exit(0); ?>
--EXPECT--
bool(false)
===DONE===
diff --git a/mongodb-2.1.1/tests/exception/commandexception-getresultdocument-001.phpt b/mongodb-2.1.4/tests/exception/commandexception-getresultdocument-001.phpt
similarity index 91%
rename from mongodb-2.1.1/tests/exception/commandexception-getresultdocument-001.phpt
rename to mongodb-2.1.4/tests/exception/commandexception-getresultdocument-001.phpt
index 40c8989f..501a75b8 100644
--- a/mongodb-2.1.1/tests/exception/commandexception-getresultdocument-001.phpt
+++ b/mongodb-2.1.4/tests/exception/commandexception-getresultdocument-001.phpt
@@ -1,22 +1,21 @@
--TEST--
MongoDB\Driver\Exception\CommandException::getResultDocument()
--FILE--
<?php
$exception = new MongoDB\Driver\Exception\CommandException();
$resultDocument = (object) ['x' => 1];
$reflection = new ReflectionClass($exception);
$resultDocumentProperty = $reflection->getProperty('resultDocument');
-$resultDocumentProperty->setAccessible(true);
$resultDocumentProperty->setValue($exception, $resultDocument);
var_dump($resultDocument === $exception->getResultDocument());
?>
===DONE===
<?php exit(0); ?>
--EXPECT--
bool(true)
===DONE===
diff --git a/mongodb-2.1.1/tests/exception/commandexception-haserrorlabel-001.phpt b/mongodb-2.1.4/tests/exception/commandexception-haserrorlabel-001.phpt
similarity index 91%
rename from mongodb-2.1.1/tests/exception/commandexception-haserrorlabel-001.phpt
rename to mongodb-2.1.4/tests/exception/commandexception-haserrorlabel-001.phpt
index 0a338966..7c33f121 100644
--- a/mongodb-2.1.1/tests/exception/commandexception-haserrorlabel-001.phpt
+++ b/mongodb-2.1.4/tests/exception/commandexception-haserrorlabel-001.phpt
@@ -1,24 +1,23 @@
--TEST--
MongoDB\Driver\Exception\CommandException::hasErrorLabel()
--FILE--
<?php
$exception = new MongoDB\Driver\Exception\CommandException();
$labels = ['test', 'foo'];
$reflection = new ReflectionClass($exception);
$resultDocumentProperty = $reflection->getProperty('errorLabels');
-$resultDocumentProperty->setAccessible(true);
$resultDocumentProperty->setValue($exception, $labels);
var_dump($exception->hasErrorLabel('foo'));
var_dump($exception->hasErrorLabel('bar'));
?>
===DONE===
<?php exit(0); ?>
--EXPECT--
bool(true)
bool(false)
===DONE===
diff --git a/mongodb-2.1.1/tests/exception/commandexception-haserrorlabel_error-001.phpt b/mongodb-2.1.4/tests/exception/commandexception-haserrorlabel_error-001.phpt
similarity index 91%
rename from mongodb-2.1.1/tests/exception/commandexception-haserrorlabel_error-001.phpt
rename to mongodb-2.1.4/tests/exception/commandexception-haserrorlabel_error-001.phpt
index ea324148..2631d693 100644
--- a/mongodb-2.1.1/tests/exception/commandexception-haserrorlabel_error-001.phpt
+++ b/mongodb-2.1.4/tests/exception/commandexception-haserrorlabel_error-001.phpt
@@ -1,22 +1,21 @@
--TEST--
MongoDB\Driver\Exception\CommandException::hasErrorLabel() with non-array values
--FILE--
<?php
$exception = new MongoDB\Driver\Exception\CommandException();
$labels = 'shouldBeAnArray';
$reflection = new ReflectionClass($exception);
$resultDocumentProperty = $reflection->getProperty('errorLabels');
-$resultDocumentProperty->setAccessible(true);
$resultDocumentProperty->setValue($exception, $labels);
var_dump($exception->hasErrorLabel('bar'));
?>
===DONE===
<?php exit(0); ?>
--EXPECT--
bool(false)
===DONE===
diff --git a/mongodb-2.1.1/tests/exception/exception-001.phpt b/mongodb-2.1.4/tests/exception/exception-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/exception/exception-001.phpt
rename to mongodb-2.1.4/tests/exception/exception-001.phpt
diff --git a/mongodb-2.1.1/tests/exception/runtimeexception-haserrorlabel-001.phpt b/mongodb-2.1.4/tests/exception/runtimeexception-haserrorlabel-001.phpt
similarity index 91%
rename from mongodb-2.1.1/tests/exception/runtimeexception-haserrorlabel-001.phpt
rename to mongodb-2.1.4/tests/exception/runtimeexception-haserrorlabel-001.phpt
index c9283045..7918b564 100644
--- a/mongodb-2.1.1/tests/exception/runtimeexception-haserrorlabel-001.phpt
+++ b/mongodb-2.1.4/tests/exception/runtimeexception-haserrorlabel-001.phpt
@@ -1,24 +1,23 @@
--TEST--
MongoDB\Driver\Exception\RuntimeException::hasErrorLabel()
--FILE--
<?php
$exception = new MongoDB\Driver\Exception\RuntimeException();
$labels = ['test', 'foo'];
$reflection = new ReflectionClass($exception);
$resultDocumentProperty = $reflection->getProperty('errorLabels');
-$resultDocumentProperty->setAccessible(true);
$resultDocumentProperty->setValue($exception, $labels);
var_dump($exception->hasErrorLabel('foo'));
var_dump($exception->hasErrorLabel('bar'));
?>
===DONE===
<?php exit(0); ?>
--EXPECT--
bool(true)
bool(false)
===DONE===
diff --git a/mongodb-2.1.1/tests/exception/runtimeexception-haserrorlabel_error-001.phpt b/mongodb-2.1.4/tests/exception/runtimeexception-haserrorlabel_error-001.phpt
similarity index 91%
rename from mongodb-2.1.1/tests/exception/runtimeexception-haserrorlabel_error-001.phpt
rename to mongodb-2.1.4/tests/exception/runtimeexception-haserrorlabel_error-001.phpt
index d9de912d..95760aad 100644
--- a/mongodb-2.1.1/tests/exception/runtimeexception-haserrorlabel_error-001.phpt
+++ b/mongodb-2.1.4/tests/exception/runtimeexception-haserrorlabel_error-001.phpt
@@ -1,22 +1,21 @@
--TEST--
MongoDB\Driver\Exception\RuntimeException::hasErrorLabel() with non-array values
--FILE--
<?php
$exception = new MongoDB\Driver\Exception\RuntimeException();
$labels = 'shouldBeAnArray';
$reflection = new ReflectionClass($exception);
$resultDocumentProperty = $reflection->getProperty('errorLabels');
-$resultDocumentProperty->setAccessible(true);
$resultDocumentProperty->setValue($exception, $labels);
var_dump($exception->hasErrorLabel('bar'));
?>
===DONE===
<?php exit(0); ?>
--EXPECT--
bool(false)
===DONE===
diff --git a/mongodb-2.1.1/tests/functional/cursor-001.phpt b/mongodb-2.1.4/tests/functional/cursor-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/functional/cursor-001.phpt
rename to mongodb-2.1.4/tests/functional/cursor-001.phpt
diff --git a/mongodb-2.1.1/tests/functional/cursorid-001.phpt b/mongodb-2.1.4/tests/functional/cursorid-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/functional/cursorid-001.phpt
rename to mongodb-2.1.4/tests/functional/cursorid-001.phpt
diff --git a/mongodb-2.1.1/tests/functional/query-sort-001.phpt b/mongodb-2.1.4/tests/functional/query-sort-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/functional/query-sort-001.phpt
rename to mongodb-2.1.4/tests/functional/query-sort-001.phpt
diff --git a/mongodb-2.1.1/tests/functional/query-sort-002.phpt b/mongodb-2.1.4/tests/functional/query-sort-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/functional/query-sort-002.phpt
rename to mongodb-2.1.4/tests/functional/query-sort-002.phpt
diff --git a/mongodb-2.1.1/tests/functional/query-sort-003.phpt b/mongodb-2.1.4/tests/functional/query-sort-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/functional/query-sort-003.phpt
rename to mongodb-2.1.4/tests/functional/query-sort-003.phpt
diff --git a/mongodb-2.1.1/tests/functional/query-sort-004.phpt b/mongodb-2.1.4/tests/functional/query-sort-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/functional/query-sort-004.phpt
rename to mongodb-2.1.4/tests/functional/query-sort-004.phpt
diff --git a/mongodb-2.1.1/tests/ini/ini-debug-ini_get-001.phpt b/mongodb-2.1.4/tests/ini/ini-debug-ini_get-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/ini/ini-debug-ini_get-001.phpt
rename to mongodb-2.1.4/tests/ini/ini-debug-ini_get-001.phpt
diff --git a/mongodb-2.1.1/tests/ini/ini-debug-ini_get-002.phpt b/mongodb-2.1.4/tests/ini/ini-debug-ini_get-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/ini/ini-debug-ini_get-002.phpt
rename to mongodb-2.1.4/tests/ini/ini-debug-ini_get-002.phpt
diff --git a/mongodb-2.1.1/tests/ini/ini-debug-phpinfo-001.phpt b/mongodb-2.1.4/tests/ini/ini-debug-phpinfo-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/ini/ini-debug-phpinfo-001.phpt
rename to mongodb-2.1.4/tests/ini/ini-debug-phpinfo-001.phpt
diff --git a/mongodb-2.1.1/tests/ini/ini-debug-phpinfo-002.phpt b/mongodb-2.1.4/tests/ini/ini-debug-phpinfo-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/ini/ini-debug-phpinfo-002.phpt
rename to mongodb-2.1.4/tests/ini/ini-debug-phpinfo-002.phpt
diff --git a/mongodb-2.1.1/tests/logging/logging-addSubscriber-001.phpt b/mongodb-2.1.4/tests/logging/logging-addSubscriber-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/logging/logging-addSubscriber-001.phpt
rename to mongodb-2.1.4/tests/logging/logging-addSubscriber-001.phpt
diff --git a/mongodb-2.1.1/tests/logging/logging-addSubscriber-002.phpt b/mongodb-2.1.4/tests/logging/logging-addSubscriber-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/logging/logging-addSubscriber-002.phpt
rename to mongodb-2.1.4/tests/logging/logging-addSubscriber-002.phpt
diff --git a/mongodb-2.1.1/tests/logging/logging-addSubscriber-003.phpt b/mongodb-2.1.4/tests/logging/logging-addSubscriber-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/logging/logging-addSubscriber-003.phpt
rename to mongodb-2.1.4/tests/logging/logging-addSubscriber-003.phpt
diff --git a/mongodb-2.1.1/tests/logging/logging-addSubscriber-004.phpt b/mongodb-2.1.4/tests/logging/logging-addSubscriber-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/logging/logging-addSubscriber-004.phpt
rename to mongodb-2.1.4/tests/logging/logging-addSubscriber-004.phpt
diff --git a/mongodb-2.1.1/tests/logging/logging-addSubscriber-005.phpt b/mongodb-2.1.4/tests/logging/logging-addSubscriber-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/logging/logging-addSubscriber-005.phpt
rename to mongodb-2.1.4/tests/logging/logging-addSubscriber-005.phpt
diff --git a/mongodb-2.1.1/tests/logging/logging-removeSubscriber-001.phpt b/mongodb-2.1.4/tests/logging/logging-removeSubscriber-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/logging/logging-removeSubscriber-001.phpt
rename to mongodb-2.1.4/tests/logging/logging-removeSubscriber-001.phpt
diff --git a/mongodb-2.1.1/tests/logging/logging-removeSubscriber-002.phpt b/mongodb-2.1.4/tests/logging/logging-removeSubscriber-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/logging/logging-removeSubscriber-002.phpt
rename to mongodb-2.1.4/tests/logging/logging-removeSubscriber-002.phpt
diff --git a/mongodb-2.1.1/tests/logging/logging-removeSubscriber-003.phpt b/mongodb-2.1.4/tests/logging/logging-removeSubscriber-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/logging/logging-removeSubscriber-003.phpt
rename to mongodb-2.1.4/tests/logging/logging-removeSubscriber-003.phpt
diff --git a/mongodb-2.1.1/tests/logging/logsubscriber-constants.phpt b/mongodb-2.1.4/tests/logging/logsubscriber-constants.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/logging/logsubscriber-constants.phpt
rename to mongodb-2.1.4/tests/logging/logsubscriber-constants.phpt
diff --git a/mongodb-2.1.1/tests/logging/mongoc_log_error-001.phpt b/mongodb-2.1.4/tests/logging/mongoc_log_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/logging/mongoc_log_error-001.phpt
rename to mongodb-2.1.4/tests/logging/mongoc_log_error-001.phpt
diff --git a/mongodb-2.1.1/tests/logging/mongoc_log_error-002.phpt b/mongodb-2.1.4/tests/logging/mongoc_log_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/logging/mongoc_log_error-002.phpt
rename to mongodb-2.1.4/tests/logging/mongoc_log_error-002.phpt
diff --git a/mongodb-2.1.1/tests/logging/mongoc_log_error-003.phpt b/mongodb-2.1.4/tests/logging/mongoc_log_error-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/logging/mongoc_log_error-003.phpt
rename to mongodb-2.1.4/tests/logging/mongoc_log_error-003.phpt
diff --git a/mongodb-2.1.1/tests/manager/bug0851-001.phpt b/mongodb-2.1.4/tests/manager/bug0851-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/bug0851-001.phpt
rename to mongodb-2.1.4/tests/manager/bug0851-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/bug0912-001.phpt b/mongodb-2.1.4/tests/manager/bug0912-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/bug0912-001.phpt
rename to mongodb-2.1.4/tests/manager/bug0912-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/bug0913-001.phpt b/mongodb-2.1.4/tests/manager/bug0913-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/bug0913-001.phpt
rename to mongodb-2.1.4/tests/manager/bug0913-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/bug0940-001.phpt b/mongodb-2.1.4/tests/manager/bug0940-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/bug0940-001.phpt
rename to mongodb-2.1.4/tests/manager/bug0940-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/bug1163-001.phpt b/mongodb-2.1.4/tests/manager/bug1163-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/bug1163-001.phpt
rename to mongodb-2.1.4/tests/manager/bug1163-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-addSubscriber-001.phpt b/mongodb-2.1.4/tests/manager/manager-addSubscriber-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-addSubscriber-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-addSubscriber-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-addSubscriber-002.phpt b/mongodb-2.1.4/tests/manager/manager-addSubscriber-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-addSubscriber-002.phpt
rename to mongodb-2.1.4/tests/manager/manager-addSubscriber-002.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-addSubscriber-003.phpt b/mongodb-2.1.4/tests/manager/manager-addSubscriber-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-addSubscriber-003.phpt
rename to mongodb-2.1.4/tests/manager/manager-addSubscriber-003.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-addSubscriber-004.phpt b/mongodb-2.1.4/tests/manager/manager-addSubscriber-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-addSubscriber-004.phpt
rename to mongodb-2.1.4/tests/manager/manager-addSubscriber-004.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-addSubscriber-005.phpt b/mongodb-2.1.4/tests/manager/manager-addSubscriber-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-addSubscriber-005.phpt
rename to mongodb-2.1.4/tests/manager/manager-addSubscriber-005.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-addSubscriber-006.phpt b/mongodb-2.1.4/tests/manager/manager-addSubscriber-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-addSubscriber-006.phpt
rename to mongodb-2.1.4/tests/manager/manager-addSubscriber-006.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-addSubscriber_error-001.phpt b/mongodb-2.1.4/tests/manager/manager-addSubscriber_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-addSubscriber_error-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-addSubscriber_error-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-createClientEncryption-001.phpt b/mongodb-2.1.4/tests/manager/manager-createClientEncryption-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-createClientEncryption-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-createClientEncryption-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-createClientEncryption-error-001.phpt b/mongodb-2.1.4/tests/manager/manager-createClientEncryption-error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-createClientEncryption-error-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-createClientEncryption-error-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-createClientEncryption-error-002.phpt b/mongodb-2.1.4/tests/manager/manager-createClientEncryption-error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-createClientEncryption-error-002.phpt
rename to mongodb-2.1.4/tests/manager/manager-createClientEncryption-error-002.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-001.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-002.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-002.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-002.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-003.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-003.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-003.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-004.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-004.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-004.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-005.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-005.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-005.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-006.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-006.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-006.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-007.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-007.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-007.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-007.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-008.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-008.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-008.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-008.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-appname-001.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-appname-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-appname-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-appname-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-appname_error-001.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-appname_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-appname_error-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-appname_error-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-auth_mechanism-001.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-auth_mechanism-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-auth_mechanism-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-auth_mechanism-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-auth_mechanism-002.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-auth_mechanism-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-auth_mechanism-002.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-auth_mechanism-002.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-auth_mechanism-error-001.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-auth_mechanism-error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-auth_mechanism-error-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-auth_mechanism-error-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-auth_source-001.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-auth_source-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-auth_source-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-auth_source-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-auto_encryption-001.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-auto_encryption-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-auto_encryption-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-auto_encryption-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-auto_encryption-002.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-auto_encryption-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-auto_encryption-002.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-auto_encryption-002.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-auto_encryption-error-001.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-auto_encryption-error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-auto_encryption-error-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-auto_encryption-error-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-auto_encryption-error-002.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-auto_encryption-error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-auto_encryption-error-002.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-auto_encryption-error-002.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-auto_encryption-error-003.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-auto_encryption-error-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-auto_encryption-error-003.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-auto_encryption-error-003.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-auto_encryption-error-004.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-auto_encryption-error-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-auto_encryption-error-004.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-auto_encryption-error-004.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-directconnection-001.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-directconnection-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-directconnection-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-directconnection-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-directconnection-error-001.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-directconnection-error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-directconnection-error-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-directconnection-error-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-directconnection-error-002.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-directconnection-error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-directconnection-error-002.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-directconnection-error-002.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-disableClientPersistence-001.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-disableClientPersistence-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-disableClientPersistence-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-disableClientPersistence-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-disableClientPersistence-002.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-disableClientPersistence-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-disableClientPersistence-002.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-disableClientPersistence-002.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-disableClientPersistence-003.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-disableClientPersistence-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-disableClientPersistence-003.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-disableClientPersistence-003.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-disableClientPersistence-004.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-disableClientPersistence-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-disableClientPersistence-004.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-disableClientPersistence-004.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-disableClientPersistence-005.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-disableClientPersistence-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-disableClientPersistence-005.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-disableClientPersistence-005.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-disableClientPersistence-006.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-disableClientPersistence-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-disableClientPersistence-006.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-disableClientPersistence-006.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-disableClientPersistence-007.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-disableClientPersistence-007.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-disableClientPersistence-007.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-disableClientPersistence-007.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-disableClientPersistence_error-001.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-disableClientPersistence_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-disableClientPersistence_error-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-disableClientPersistence_error-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-driver-metadata-001.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-driver-metadata-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-driver-metadata-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-driver-metadata-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-duplicate-option-001.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-duplicate-option-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-duplicate-option-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-duplicate-option-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-duplicate-option-002.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-duplicate-option-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-duplicate-option-002.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-duplicate-option-002.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-duplicate-option-003.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-duplicate-option-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-duplicate-option-003.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-duplicate-option-003.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-duplicate-option-004.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-duplicate-option-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-duplicate-option-004.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-duplicate-option-004.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-loadBalanced_error-001.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-loadBalanced_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-loadBalanced_error-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-loadBalanced_error-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-read_concern-001.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-read_concern-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-read_concern-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-read_concern-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-read_concern-error-001.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-read_concern-error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-read_concern-error-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-read_concern-error-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-read_preference-001.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-read_preference-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-read_preference-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-read_preference-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-read_preference-002.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-read_preference-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-read_preference-002.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-read_preference-002.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-read_preference-error-001.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-read_preference-error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-read_preference-error-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-read_preference-error-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-read_preference-error-002.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-read_preference-error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-read_preference-error-002.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-read_preference-error-002.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-read_preference-error-004.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-read_preference-error-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-read_preference-error-004.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-read_preference-error-004.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-server.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-server.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-server.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-server.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-serverApi-001.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-serverApi-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-serverApi-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-serverApi-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-serverApi-error-001.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-serverApi-error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-serverApi-error-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-serverApi-error-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-srvMaxHosts_error-001.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-srvMaxHosts_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-srvMaxHosts_error-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-srvMaxHosts_error-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-srvServiceName_error-001.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-srvServiceName_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-srvServiceName_error-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-srvServiceName_error-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-ssl-001.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-ssl-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-ssl-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-ssl-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-ssl-002.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-ssl-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-ssl-002.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-ssl-002.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-ssl-003.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-ssl-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-ssl-003.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-ssl-003.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-tls-error-001.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-tls-error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-tls-error-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-tls-error-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-wireversion.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-wireversion.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-wireversion.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-wireversion.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-write_concern-001.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-write_concern-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-write_concern-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-write_concern-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-write_concern-002.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-write_concern-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-write_concern-002.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-write_concern-002.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-write_concern-003.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-write_concern-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-write_concern-003.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-write_concern-003.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-write_concern-004.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-write_concern-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-write_concern-004.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-write_concern-004.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-write_concern-005.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-write_concern-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-write_concern-005.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-write_concern-005.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-write_concern-006.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-write_concern-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-write_concern-006.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-write_concern-006.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-write_concern-error-001.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-write_concern-error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-write_concern-error-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-write_concern-error-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-write_concern-error-002.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-write_concern-error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-write_concern-error-002.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-write_concern-error-002.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-write_concern-error-003.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-write_concern-error-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-write_concern-error-003.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-write_concern-error-003.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-write_concern-error-005.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-write_concern-error-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-write_concern-error-005.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-write_concern-error-005.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-write_concern-error-006.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-write_concern-error-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-write_concern-error-006.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-write_concern-error-006.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor-write_concern-error-007.phpt b/mongodb-2.1.4/tests/manager/manager-ctor-write_concern-error-007.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor-write_concern-error-007.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor-write_concern-error-007.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor_error-001.phpt b/mongodb-2.1.4/tests/manager/manager-ctor_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor_error-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor_error-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor_error-002.phpt b/mongodb-2.1.4/tests/manager/manager-ctor_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor_error-002.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor_error-002.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor_error-003.phpt b/mongodb-2.1.4/tests/manager/manager-ctor_error-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor_error-003.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor_error-003.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor_error-004.phpt b/mongodb-2.1.4/tests/manager/manager-ctor_error-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor_error-004.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor_error-004.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-ctor_error-005.phpt b/mongodb-2.1.4/tests/manager/manager-ctor_error-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-ctor_error-005.phpt
rename to mongodb-2.1.4/tests/manager/manager-ctor_error-005.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-debug-001.phpt b/mongodb-2.1.4/tests/manager/manager-debug-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-debug-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-debug-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-debug-002.phpt b/mongodb-2.1.4/tests/manager/manager-debug-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-debug-002.phpt
rename to mongodb-2.1.4/tests/manager/manager-debug-002.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-debug-003.phpt b/mongodb-2.1.4/tests/manager/manager-debug-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-debug-003.phpt
rename to mongodb-2.1.4/tests/manager/manager-debug-003.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-destruct-001.phpt b/mongodb-2.1.4/tests/manager/manager-destruct-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-destruct-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-destruct-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeBulkWrite-001.phpt b/mongodb-2.1.4/tests/manager/manager-executeBulkWrite-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeBulkWrite-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeBulkWrite-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeBulkWrite-002.phpt b/mongodb-2.1.4/tests/manager/manager-executeBulkWrite-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeBulkWrite-002.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeBulkWrite-002.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeBulkWrite-003.phpt b/mongodb-2.1.4/tests/manager/manager-executeBulkWrite-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeBulkWrite-003.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeBulkWrite-003.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeBulkWrite-004.phpt b/mongodb-2.1.4/tests/manager/manager-executeBulkWrite-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeBulkWrite-004.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeBulkWrite-004.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeBulkWrite-005.phpt b/mongodb-2.1.4/tests/manager/manager-executeBulkWrite-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeBulkWrite-005.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeBulkWrite-005.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeBulkWrite-006.phpt b/mongodb-2.1.4/tests/manager/manager-executeBulkWrite-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeBulkWrite-006.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeBulkWrite-006.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeBulkWrite-007.phpt b/mongodb-2.1.4/tests/manager/manager-executeBulkWrite-007.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeBulkWrite-007.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeBulkWrite-007.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeBulkWrite-008.phpt b/mongodb-2.1.4/tests/manager/manager-executeBulkWrite-008.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeBulkWrite-008.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeBulkWrite-008.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeBulkWrite-009.phpt b/mongodb-2.1.4/tests/manager/manager-executeBulkWrite-009.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeBulkWrite-009.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeBulkWrite-009.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeBulkWrite-010.phpt b/mongodb-2.1.4/tests/manager/manager-executeBulkWrite-010.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeBulkWrite-010.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeBulkWrite-010.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeBulkWrite-011.phpt b/mongodb-2.1.4/tests/manager/manager-executeBulkWrite-011.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeBulkWrite-011.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeBulkWrite-011.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeBulkWrite-012.phpt b/mongodb-2.1.4/tests/manager/manager-executeBulkWrite-012.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeBulkWrite-012.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeBulkWrite-012.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeBulkWrite-013.phpt b/mongodb-2.1.4/tests/manager/manager-executeBulkWrite-013.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeBulkWrite-013.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeBulkWrite-013.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeBulkWrite-014.phpt b/mongodb-2.1.4/tests/manager/manager-executeBulkWrite-014.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeBulkWrite-014.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeBulkWrite-014.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeBulkWrite_error-001.phpt b/mongodb-2.1.4/tests/manager/manager-executeBulkWrite_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeBulkWrite_error-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeBulkWrite_error-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeBulkWrite_error-002.phpt b/mongodb-2.1.4/tests/manager/manager-executeBulkWrite_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeBulkWrite_error-002.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeBulkWrite_error-002.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeBulkWrite_error-003.phpt b/mongodb-2.1.4/tests/manager/manager-executeBulkWrite_error-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeBulkWrite_error-003.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeBulkWrite_error-003.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeBulkWrite_error-004.phpt b/mongodb-2.1.4/tests/manager/manager-executeBulkWrite_error-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeBulkWrite_error-004.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeBulkWrite_error-004.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeBulkWrite_error-005.phpt b/mongodb-2.1.4/tests/manager/manager-executeBulkWrite_error-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeBulkWrite_error-005.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeBulkWrite_error-005.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeBulkWrite_error-006.phpt b/mongodb-2.1.4/tests/manager/manager-executeBulkWrite_error-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeBulkWrite_error-006.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeBulkWrite_error-006.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeBulkWrite_error-007.phpt b/mongodb-2.1.4/tests/manager/manager-executeBulkWrite_error-007.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeBulkWrite_error-007.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeBulkWrite_error-007.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeBulkWrite_error-008.phpt b/mongodb-2.1.4/tests/manager/manager-executeBulkWrite_error-008.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeBulkWrite_error-008.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeBulkWrite_error-008.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeBulkWrite_error-009.phpt b/mongodb-2.1.4/tests/manager/manager-executeBulkWrite_error-009.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeBulkWrite_error-009.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeBulkWrite_error-009.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeBulkWrite_error-010.phpt b/mongodb-2.1.4/tests/manager/manager-executeBulkWrite_error-010.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeBulkWrite_error-010.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeBulkWrite_error-010.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeCommand-001.phpt b/mongodb-2.1.4/tests/manager/manager-executeCommand-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeCommand-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeCommand-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeCommand-002.phpt b/mongodb-2.1.4/tests/manager/manager-executeCommand-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeCommand-002.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeCommand-002.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeCommand-004.phpt b/mongodb-2.1.4/tests/manager/manager-executeCommand-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeCommand-004.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeCommand-004.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeCommand-005.phpt b/mongodb-2.1.4/tests/manager/manager-executeCommand-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeCommand-005.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeCommand-005.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeCommand-006.phpt b/mongodb-2.1.4/tests/manager/manager-executeCommand-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeCommand-006.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeCommand-006.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeCommand-007.phpt b/mongodb-2.1.4/tests/manager/manager-executeCommand-007.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeCommand-007.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeCommand-007.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeCommand_error-001.phpt b/mongodb-2.1.4/tests/manager/manager-executeCommand_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeCommand_error-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeCommand_error-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeCommand_error-002.phpt b/mongodb-2.1.4/tests/manager/manager-executeCommand_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeCommand_error-002.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeCommand_error-002.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeCommand_error-003.phpt b/mongodb-2.1.4/tests/manager/manager-executeCommand_error-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeCommand_error-003.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeCommand_error-003.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeCommand_error-004.phpt b/mongodb-2.1.4/tests/manager/manager-executeCommand_error-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeCommand_error-004.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeCommand_error-004.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeCommand_error-005.phpt b/mongodb-2.1.4/tests/manager/manager-executeCommand_error-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeCommand_error-005.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeCommand_error-005.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeQuery-002.phpt b/mongodb-2.1.4/tests/manager/manager-executeQuery-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeQuery-002.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeQuery-002.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeQuery-003.phpt b/mongodb-2.1.4/tests/manager/manager-executeQuery-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeQuery-003.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeQuery-003.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeQuery-005.phpt b/mongodb-2.1.4/tests/manager/manager-executeQuery-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeQuery-005.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeQuery-005.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeQuery-006.phpt b/mongodb-2.1.4/tests/manager/manager-executeQuery-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeQuery-006.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeQuery-006.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeQuery-007.phpt b/mongodb-2.1.4/tests/manager/manager-executeQuery-007.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeQuery-007.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeQuery-007.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeQuery_error-001.phpt b/mongodb-2.1.4/tests/manager/manager-executeQuery_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeQuery_error-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeQuery_error-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeQuery_error-002.phpt b/mongodb-2.1.4/tests/manager/manager-executeQuery_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeQuery_error-002.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeQuery_error-002.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeQuery_error-003.phpt b/mongodb-2.1.4/tests/manager/manager-executeQuery_error-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeQuery_error-003.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeQuery_error-003.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeReadCommand-001.phpt b/mongodb-2.1.4/tests/manager/manager-executeReadCommand-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeReadCommand-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeReadCommand-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeReadCommand-002.phpt b/mongodb-2.1.4/tests/manager/manager-executeReadCommand-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeReadCommand-002.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeReadCommand-002.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeReadCommand-003.phpt b/mongodb-2.1.4/tests/manager/manager-executeReadCommand-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeReadCommand-003.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeReadCommand-003.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeReadCommand_error-001.phpt b/mongodb-2.1.4/tests/manager/manager-executeReadCommand_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeReadCommand_error-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeReadCommand_error-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeReadWriteCommand-001.phpt b/mongodb-2.1.4/tests/manager/manager-executeReadWriteCommand-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeReadWriteCommand-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeReadWriteCommand-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeReadWriteCommand-002.phpt b/mongodb-2.1.4/tests/manager/manager-executeReadWriteCommand-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeReadWriteCommand-002.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeReadWriteCommand-002.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeReadWriteCommand-003.phpt b/mongodb-2.1.4/tests/manager/manager-executeReadWriteCommand-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeReadWriteCommand-003.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeReadWriteCommand-003.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeReadWriteCommand_error-001.phpt b/mongodb-2.1.4/tests/manager/manager-executeReadWriteCommand_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeReadWriteCommand_error-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeReadWriteCommand_error-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeReadWriteCommand_error-002.phpt b/mongodb-2.1.4/tests/manager/manager-executeReadWriteCommand_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeReadWriteCommand_error-002.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeReadWriteCommand_error-002.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeWriteCommand-001.phpt b/mongodb-2.1.4/tests/manager/manager-executeWriteCommand-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeWriteCommand-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeWriteCommand-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeWriteCommand-002.phpt b/mongodb-2.1.4/tests/manager/manager-executeWriteCommand-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeWriteCommand-002.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeWriteCommand-002.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeWriteCommand-003.phpt b/mongodb-2.1.4/tests/manager/manager-executeWriteCommand-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeWriteCommand-003.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeWriteCommand-003.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeWriteCommand_error-001.phpt b/mongodb-2.1.4/tests/manager/manager-executeWriteCommand_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeWriteCommand_error-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeWriteCommand_error-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeWriteCommand_error-002.phpt b/mongodb-2.1.4/tests/manager/manager-executeWriteCommand_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeWriteCommand_error-002.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeWriteCommand_error-002.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeWriteCommand_error-003.phpt b/mongodb-2.1.4/tests/manager/manager-executeWriteCommand_error-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeWriteCommand_error-003.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeWriteCommand_error-003.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-executeWriteCommand_error-004.phpt b/mongodb-2.1.4/tests/manager/manager-executeWriteCommand_error-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-executeWriteCommand_error-004.phpt
rename to mongodb-2.1.4/tests/manager/manager-executeWriteCommand_error-004.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-getencryptedfieldsmap-001.phpt b/mongodb-2.1.4/tests/manager/manager-getencryptedfieldsmap-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-getencryptedfieldsmap-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-getencryptedfieldsmap-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-getreadconcern-001.phpt b/mongodb-2.1.4/tests/manager/manager-getreadconcern-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-getreadconcern-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-getreadconcern-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-getreadpreference-001.phpt b/mongodb-2.1.4/tests/manager/manager-getreadpreference-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-getreadpreference-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-getreadpreference-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-getservers-001.phpt b/mongodb-2.1.4/tests/manager/manager-getservers-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-getservers-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-getservers-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-getservers-002.phpt b/mongodb-2.1.4/tests/manager/manager-getservers-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-getservers-002.phpt
rename to mongodb-2.1.4/tests/manager/manager-getservers-002.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-getwriteconcern-001.phpt b/mongodb-2.1.4/tests/manager/manager-getwriteconcern-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-getwriteconcern-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-getwriteconcern-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-invalidnamespace.phpt b/mongodb-2.1.4/tests/manager/manager-invalidnamespace.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-invalidnamespace.phpt
rename to mongodb-2.1.4/tests/manager/manager-invalidnamespace.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-removeSubscriber-001.phpt b/mongodb-2.1.4/tests/manager/manager-removeSubscriber-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-removeSubscriber-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-removeSubscriber-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-removeSubscriber-002.phpt b/mongodb-2.1.4/tests/manager/manager-removeSubscriber-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-removeSubscriber-002.phpt
rename to mongodb-2.1.4/tests/manager/manager-removeSubscriber-002.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-selectServer-001.phpt b/mongodb-2.1.4/tests/manager/manager-selectServer-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-selectServer-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-selectServer-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-selectServer-002.phpt b/mongodb-2.1.4/tests/manager/manager-selectServer-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-selectServer-002.phpt
rename to mongodb-2.1.4/tests/manager/manager-selectServer-002.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-selectserver_error-001.phpt b/mongodb-2.1.4/tests/manager/manager-selectserver_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-selectserver_error-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-selectserver_error-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-serialization_error-001.phpt b/mongodb-2.1.4/tests/manager/manager-serialization_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-serialization_error-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-serialization_error-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-set-uri-options-001.phpt b/mongodb-2.1.4/tests/manager/manager-set-uri-options-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-set-uri-options-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-set-uri-options-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-set-uri-options-002.phpt b/mongodb-2.1.4/tests/manager/manager-set-uri-options-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-set-uri-options-002.phpt
rename to mongodb-2.1.4/tests/manager/manager-set-uri-options-002.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-set-uri-options-003.phpt b/mongodb-2.1.4/tests/manager/manager-set-uri-options-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-set-uri-options-003.phpt
rename to mongodb-2.1.4/tests/manager/manager-set-uri-options-003.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-startSession_error-001.phpt b/mongodb-2.1.4/tests/manager/manager-startSession_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-startSession_error-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-startSession_error-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-startSession_error-002.phpt b/mongodb-2.1.4/tests/manager/manager-startSession_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-startSession_error-002.phpt
rename to mongodb-2.1.4/tests/manager/manager-startSession_error-002.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager-var-dump-001.phpt b/mongodb-2.1.4/tests/manager/manager-var-dump-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager-var-dump-001.phpt
rename to mongodb-2.1.4/tests/manager/manager-var-dump-001.phpt
diff --git a/mongodb-2.1.1/tests/manager/manager_error-001.phpt b/mongodb-2.1.4/tests/manager/manager_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/manager/manager_error-001.phpt
rename to mongodb-2.1.4/tests/manager/manager_error-001.phpt
diff --git a/mongodb-2.1.1/tests/query/bug0430-001.phpt b/mongodb-2.1.4/tests/query/bug0430-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/query/bug0430-001.phpt
rename to mongodb-2.1.4/tests/query/bug0430-001.phpt
diff --git a/mongodb-2.1.1/tests/query/bug0430-002.phpt b/mongodb-2.1.4/tests/query/bug0430-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/query/bug0430-002.phpt
rename to mongodb-2.1.4/tests/query/bug0430-002.phpt
diff --git a/mongodb-2.1.1/tests/query/bug0430-003.phpt b/mongodb-2.1.4/tests/query/bug0430-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/query/bug0430-003.phpt
rename to mongodb-2.1.4/tests/query/bug0430-003.phpt
diff --git a/mongodb-2.1.1/tests/query/bug2457-001.phpt b/mongodb-2.1.4/tests/query/bug2457-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/query/bug2457-001.phpt
rename to mongodb-2.1.4/tests/query/bug2457-001.phpt
diff --git a/mongodb-2.1.1/tests/query/query-ctor-001.phpt b/mongodb-2.1.4/tests/query/query-ctor-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/query/query-ctor-001.phpt
rename to mongodb-2.1.4/tests/query/query-ctor-001.phpt
diff --git a/mongodb-2.1.1/tests/query/query-ctor-002.phpt b/mongodb-2.1.4/tests/query/query-ctor-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/query/query-ctor-002.phpt
rename to mongodb-2.1.4/tests/query/query-ctor-002.phpt
diff --git a/mongodb-2.1.1/tests/query/query-ctor-005.phpt b/mongodb-2.1.4/tests/query/query-ctor-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/query/query-ctor-005.phpt
rename to mongodb-2.1.4/tests/query/query-ctor-005.phpt
diff --git a/mongodb-2.1.1/tests/query/query-ctor-007.phpt b/mongodb-2.1.4/tests/query/query-ctor-007.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/query/query-ctor-007.phpt
rename to mongodb-2.1.4/tests/query/query-ctor-007.phpt
diff --git a/mongodb-2.1.1/tests/query/query-ctor-comment-001.phpt b/mongodb-2.1.4/tests/query/query-ctor-comment-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/query/query-ctor-comment-001.phpt
rename to mongodb-2.1.4/tests/query/query-ctor-comment-001.phpt
diff --git a/mongodb-2.1.1/tests/query/query-ctor-comment_error-001.phpt b/mongodb-2.1.4/tests/query/query-ctor-comment_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/query/query-ctor-comment_error-001.phpt
rename to mongodb-2.1.4/tests/query/query-ctor-comment_error-001.phpt
diff --git a/mongodb-2.1.1/tests/query/query-ctor-let-001.phpt b/mongodb-2.1.4/tests/query/query-ctor-let-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/query/query-ctor-let-001.phpt
rename to mongodb-2.1.4/tests/query/query-ctor-let-001.phpt
diff --git a/mongodb-2.1.1/tests/query/query-ctor-let_error-001.phpt b/mongodb-2.1.4/tests/query/query-ctor-let_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/query/query-ctor-let_error-001.phpt
rename to mongodb-2.1.4/tests/query/query-ctor-let_error-001.phpt
diff --git a/mongodb-2.1.1/tests/query/query-ctor_error-001.phpt b/mongodb-2.1.4/tests/query/query-ctor_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/query/query-ctor_error-001.phpt
rename to mongodb-2.1.4/tests/query/query-ctor_error-001.phpt
diff --git a/mongodb-2.1.1/tests/query/query-ctor_error-002.phpt b/mongodb-2.1.4/tests/query/query-ctor_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/query/query-ctor_error-002.phpt
rename to mongodb-2.1.4/tests/query/query-ctor_error-002.phpt
diff --git a/mongodb-2.1.1/tests/query/query-ctor_error-004.phpt b/mongodb-2.1.4/tests/query/query-ctor_error-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/query/query-ctor_error-004.phpt
rename to mongodb-2.1.4/tests/query/query-ctor_error-004.phpt
diff --git a/mongodb-2.1.1/tests/query/query-ctor_error-005.phpt b/mongodb-2.1.4/tests/query/query-ctor_error-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/query/query-ctor_error-005.phpt
rename to mongodb-2.1.4/tests/query/query-ctor_error-005.phpt
diff --git a/mongodb-2.1.1/tests/query/query-ctor_error-006.phpt b/mongodb-2.1.4/tests/query/query-ctor_error-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/query/query-ctor_error-006.phpt
rename to mongodb-2.1.4/tests/query/query-ctor_error-006.phpt
diff --git a/mongodb-2.1.1/tests/query/query-ctor_error-007.phpt b/mongodb-2.1.4/tests/query/query-ctor_error-007.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/query/query-ctor_error-007.phpt
rename to mongodb-2.1.4/tests/query/query-ctor_error-007.phpt
diff --git a/mongodb-2.1.1/tests/query/query-debug-001.phpt b/mongodb-2.1.4/tests/query/query-debug-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/query/query-debug-001.phpt
rename to mongodb-2.1.4/tests/query/query-debug-001.phpt
diff --git a/mongodb-2.1.1/tests/query/query-debug-002.phpt b/mongodb-2.1.4/tests/query/query-debug-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/query/query-debug-002.phpt
rename to mongodb-2.1.4/tests/query/query-debug-002.phpt
diff --git a/mongodb-2.1.1/tests/query/query-debug-003.phpt b/mongodb-2.1.4/tests/query/query-debug-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/query/query-debug-003.phpt
rename to mongodb-2.1.4/tests/query/query-debug-003.phpt
diff --git a/mongodb-2.1.1/tests/query/query_error-001.phpt b/mongodb-2.1.4/tests/query/query_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/query/query_error-001.phpt
rename to mongodb-2.1.4/tests/query/query_error-001.phpt
diff --git a/mongodb-2.1.1/tests/readConcern/bug1598-001.phpt b/mongodb-2.1.4/tests/readConcern/bug1598-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/readConcern/bug1598-001.phpt
rename to mongodb-2.1.4/tests/readConcern/bug1598-001.phpt
diff --git a/mongodb-2.1.1/tests/readConcern/bug1598-002.phpt b/mongodb-2.1.4/tests/readConcern/bug1598-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/readConcern/bug1598-002.phpt
rename to mongodb-2.1.4/tests/readConcern/bug1598-002.phpt
diff --git a/mongodb-2.1.1/tests/readConcern/readconcern-bsonserialize-001.phpt b/mongodb-2.1.4/tests/readConcern/readconcern-bsonserialize-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/readConcern/readconcern-bsonserialize-001.phpt
rename to mongodb-2.1.4/tests/readConcern/readconcern-bsonserialize-001.phpt
diff --git a/mongodb-2.1.1/tests/readConcern/readconcern-bsonserialize-002.phpt b/mongodb-2.1.4/tests/readConcern/readconcern-bsonserialize-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/readConcern/readconcern-bsonserialize-002.phpt
rename to mongodb-2.1.4/tests/readConcern/readconcern-bsonserialize-002.phpt
diff --git a/mongodb-2.1.1/tests/readConcern/readconcern-constants.phpt b/mongodb-2.1.4/tests/readConcern/readconcern-constants.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/readConcern/readconcern-constants.phpt
rename to mongodb-2.1.4/tests/readConcern/readconcern-constants.phpt
diff --git a/mongodb-2.1.1/tests/readConcern/readconcern-ctor-001.phpt b/mongodb-2.1.4/tests/readConcern/readconcern-ctor-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/readConcern/readconcern-ctor-001.phpt
rename to mongodb-2.1.4/tests/readConcern/readconcern-ctor-001.phpt
diff --git a/mongodb-2.1.1/tests/readConcern/readconcern-ctor_error-001.phpt b/mongodb-2.1.4/tests/readConcern/readconcern-ctor_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/readConcern/readconcern-ctor_error-001.phpt
rename to mongodb-2.1.4/tests/readConcern/readconcern-ctor_error-001.phpt
diff --git a/mongodb-2.1.1/tests/readConcern/readconcern-ctor_error-002.phpt b/mongodb-2.1.4/tests/readConcern/readconcern-ctor_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/readConcern/readconcern-ctor_error-002.phpt
rename to mongodb-2.1.4/tests/readConcern/readconcern-ctor_error-002.phpt
diff --git a/mongodb-2.1.1/tests/readConcern/readconcern-debug-001.phpt b/mongodb-2.1.4/tests/readConcern/readconcern-debug-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/readConcern/readconcern-debug-001.phpt
rename to mongodb-2.1.4/tests/readConcern/readconcern-debug-001.phpt
diff --git a/mongodb-2.1.1/tests/readConcern/readconcern-getlevel-001.phpt b/mongodb-2.1.4/tests/readConcern/readconcern-getlevel-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/readConcern/readconcern-getlevel-001.phpt
rename to mongodb-2.1.4/tests/readConcern/readconcern-getlevel-001.phpt
diff --git a/mongodb-2.1.1/tests/readConcern/readconcern-isdefault-001.phpt b/mongodb-2.1.4/tests/readConcern/readconcern-isdefault-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/readConcern/readconcern-isdefault-001.phpt
rename to mongodb-2.1.4/tests/readConcern/readconcern-isdefault-001.phpt
diff --git a/mongodb-2.1.1/tests/readConcern/readconcern-serialization-002.phpt b/mongodb-2.1.4/tests/readConcern/readconcern-serialization-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/readConcern/readconcern-serialization-002.phpt
rename to mongodb-2.1.4/tests/readConcern/readconcern-serialization-002.phpt
diff --git a/mongodb-2.1.1/tests/readConcern/readconcern-serialization_error-002.phpt b/mongodb-2.1.4/tests/readConcern/readconcern-serialization_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/readConcern/readconcern-serialization_error-002.phpt
rename to mongodb-2.1.4/tests/readConcern/readconcern-serialization_error-002.phpt
diff --git a/mongodb-2.1.1/tests/readConcern/readconcern-set_state-001.phpt b/mongodb-2.1.4/tests/readConcern/readconcern-set_state-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/readConcern/readconcern-set_state-001.phpt
rename to mongodb-2.1.4/tests/readConcern/readconcern-set_state-001.phpt
diff --git a/mongodb-2.1.1/tests/readConcern/readconcern-set_state_error-001.phpt b/mongodb-2.1.4/tests/readConcern/readconcern-set_state_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/readConcern/readconcern-set_state_error-001.phpt
rename to mongodb-2.1.4/tests/readConcern/readconcern-set_state_error-001.phpt
diff --git a/mongodb-2.1.1/tests/readConcern/readconcern-var_export-001.phpt b/mongodb-2.1.4/tests/readConcern/readconcern-var_export-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/readConcern/readconcern-var_export-001.phpt
rename to mongodb-2.1.4/tests/readConcern/readconcern-var_export-001.phpt
diff --git a/mongodb-2.1.1/tests/readConcern/readconcern_error-001.phpt b/mongodb-2.1.4/tests/readConcern/readconcern_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/readConcern/readconcern_error-001.phpt
rename to mongodb-2.1.4/tests/readConcern/readconcern_error-001.phpt
diff --git a/mongodb-2.1.1/tests/readPreference/bug0146-001.phpt b/mongodb-2.1.4/tests/readPreference/bug0146-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/readPreference/bug0146-001.phpt
rename to mongodb-2.1.4/tests/readPreference/bug0146-001.phpt
diff --git a/mongodb-2.1.1/tests/readPreference/bug0851-001.phpt b/mongodb-2.1.4/tests/readPreference/bug0851-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/readPreference/bug0851-001.phpt
rename to mongodb-2.1.4/tests/readPreference/bug0851-001.phpt
diff --git a/mongodb-2.1.1/tests/readPreference/bug1598-001.phpt b/mongodb-2.1.4/tests/readPreference/bug1598-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/readPreference/bug1598-001.phpt
rename to mongodb-2.1.4/tests/readPreference/bug1598-001.phpt
diff --git a/mongodb-2.1.1/tests/readPreference/bug1598-002.phpt b/mongodb-2.1.4/tests/readPreference/bug1598-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/readPreference/bug1598-002.phpt
rename to mongodb-2.1.4/tests/readPreference/bug1598-002.phpt
diff --git a/mongodb-2.1.1/tests/readPreference/bug1698-001.phpt b/mongodb-2.1.4/tests/readPreference/bug1698-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/readPreference/bug1698-001.phpt
rename to mongodb-2.1.4/tests/readPreference/bug1698-001.phpt
diff --git a/mongodb-2.1.1/tests/readPreference/readpreference-bsonserialize-001.phpt b/mongodb-2.1.4/tests/readPreference/readpreference-bsonserialize-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/readPreference/readpreference-bsonserialize-001.phpt
rename to mongodb-2.1.4/tests/readPreference/readpreference-bsonserialize-001.phpt
diff --git a/mongodb-2.1.1/tests/readPreference/readpreference-bsonserialize-002.phpt b/mongodb-2.1.4/tests/readPreference/readpreference-bsonserialize-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/readPreference/readpreference-bsonserialize-002.phpt
rename to mongodb-2.1.4/tests/readPreference/readpreference-bsonserialize-002.phpt
diff --git a/mongodb-2.1.1/tests/readPreference/readpreference-constants-001.phpt b/mongodb-2.1.4/tests/readPreference/readpreference-constants-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/readPreference/readpreference-constants-001.phpt
rename to mongodb-2.1.4/tests/readPreference/readpreference-constants-001.phpt
diff --git a/mongodb-2.1.1/tests/readPreference/readpreference-ctor-001.phpt b/mongodb-2.1.4/tests/readPreference/readpreference-ctor-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/readPreference/readpreference-ctor-001.phpt
rename to mongodb-2.1.4/tests/readPreference/readpreference-ctor-001.phpt
diff --git a/mongodb-2.1.1/tests/readPreference/readpreference-ctor-002.phpt b/mongodb-2.1.4/tests/readPreference/readpreference-ctor-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/readPreference/readpreference-ctor-002.phpt
rename to mongodb-2.1.4/tests/readPreference/readpreference-ctor-002.phpt
diff --git a/mongodb-2.1.1/tests/readPreference/readpreference-ctor_error-001.phpt b/mongodb-2.1.4/tests/readPreference/readpreference-ctor_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/readPreference/readpreference-ctor_error-001.phpt
rename to mongodb-2.1.4/tests/readPreference/readpreference-ctor_error-001.phpt
diff --git a/mongodb-2.1.1/tests/readPreference/readpreference-ctor_error-002.phpt b/mongodb-2.1.4/tests/readPreference/readpreference-ctor_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/readPreference/readpreference-ctor_error-002.phpt
rename to mongodb-2.1.4/tests/readPreference/readpreference-ctor_error-002.phpt
diff --git a/mongodb-2.1.1/tests/readPreference/readpreference-ctor_error-003.phpt b/mongodb-2.1.4/tests/readPreference/readpreference-ctor_error-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/readPreference/readpreference-ctor_error-003.phpt
rename to mongodb-2.1.4/tests/readPreference/readpreference-ctor_error-003.phpt
diff --git a/mongodb-2.1.1/tests/readPreference/readpreference-ctor_error-004.phpt b/mongodb-2.1.4/tests/readPreference/readpreference-ctor_error-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/readPreference/readpreference-ctor_error-004.phpt
rename to mongodb-2.1.4/tests/readPreference/readpreference-ctor_error-004.phpt
diff --git a/mongodb-2.1.1/tests/readPreference/readpreference-ctor_error-007.phpt b/mongodb-2.1.4/tests/readPreference/readpreference-ctor_error-007.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/readPreference/readpreference-ctor_error-007.phpt
rename to mongodb-2.1.4/tests/readPreference/readpreference-ctor_error-007.phpt
diff --git a/mongodb-2.1.1/tests/readPreference/readpreference-ctor_error-008.phpt b/mongodb-2.1.4/tests/readPreference/readpreference-ctor_error-008.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/readPreference/readpreference-ctor_error-008.phpt
rename to mongodb-2.1.4/tests/readPreference/readpreference-ctor_error-008.phpt
diff --git a/mongodb-2.1.1/tests/readPreference/readpreference-debug-001.phpt b/mongodb-2.1.4/tests/readPreference/readpreference-debug-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/readPreference/readpreference-debug-001.phpt
rename to mongodb-2.1.4/tests/readPreference/readpreference-debug-001.phpt
diff --git a/mongodb-2.1.1/tests/readPreference/readpreference-getHedge-001.phpt b/mongodb-2.1.4/tests/readPreference/readpreference-getHedge-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/readPreference/readpreference-getHedge-001.phpt
rename to mongodb-2.1.4/tests/readPreference/readpreference-getHedge-001.phpt
diff --git a/mongodb-2.1.1/tests/readPreference/readpreference-getMaxStalenessMS-001.phpt b/mongodb-2.1.4/tests/readPreference/readpreference-getMaxStalenessMS-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/readPreference/readpreference-getMaxStalenessMS-001.phpt
rename to mongodb-2.1.4/tests/readPreference/readpreference-getMaxStalenessMS-001.phpt
diff --git a/mongodb-2.1.1/tests/readPreference/readpreference-getMaxStalenessMS-002.phpt b/mongodb-2.1.4/tests/readPreference/readpreference-getMaxStalenessMS-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/readPreference/readpreference-getMaxStalenessMS-002.phpt
rename to mongodb-2.1.4/tests/readPreference/readpreference-getMaxStalenessMS-002.phpt
diff --git a/mongodb-2.1.1/tests/readPreference/readpreference-getModeString-001.phpt b/mongodb-2.1.4/tests/readPreference/readpreference-getModeString-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/readPreference/readpreference-getModeString-001.phpt
rename to mongodb-2.1.4/tests/readPreference/readpreference-getModeString-001.phpt
diff --git a/mongodb-2.1.1/tests/readPreference/readpreference-getTagSets-001.phpt b/mongodb-2.1.4/tests/readPreference/readpreference-getTagSets-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/readPreference/readpreference-getTagSets-001.phpt
rename to mongodb-2.1.4/tests/readPreference/readpreference-getTagSets-001.phpt
diff --git a/mongodb-2.1.1/tests/readPreference/readpreference-getTagSets-002.phpt b/mongodb-2.1.4/tests/readPreference/readpreference-getTagSets-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/readPreference/readpreference-getTagSets-002.phpt
rename to mongodb-2.1.4/tests/readPreference/readpreference-getTagSets-002.phpt
diff --git a/mongodb-2.1.1/tests/readPreference/readpreference-serialization-002.phpt b/mongodb-2.1.4/tests/readPreference/readpreference-serialization-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/readPreference/readpreference-serialization-002.phpt
rename to mongodb-2.1.4/tests/readPreference/readpreference-serialization-002.phpt
diff --git a/mongodb-2.1.1/tests/readPreference/readpreference-serialization_error-002.phpt b/mongodb-2.1.4/tests/readPreference/readpreference-serialization_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/readPreference/readpreference-serialization_error-002.phpt
rename to mongodb-2.1.4/tests/readPreference/readpreference-serialization_error-002.phpt
diff --git a/mongodb-2.1.1/tests/readPreference/readpreference-set_state-001.phpt b/mongodb-2.1.4/tests/readPreference/readpreference-set_state-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/readPreference/readpreference-set_state-001.phpt
rename to mongodb-2.1.4/tests/readPreference/readpreference-set_state-001.phpt
diff --git a/mongodb-2.1.1/tests/readPreference/readpreference-set_state_error-001.phpt b/mongodb-2.1.4/tests/readPreference/readpreference-set_state_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/readPreference/readpreference-set_state_error-001.phpt
rename to mongodb-2.1.4/tests/readPreference/readpreference-set_state_error-001.phpt
diff --git a/mongodb-2.1.1/tests/readPreference/readpreference-set_state_error-002.phpt b/mongodb-2.1.4/tests/readPreference/readpreference-set_state_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/readPreference/readpreference-set_state_error-002.phpt
rename to mongodb-2.1.4/tests/readPreference/readpreference-set_state_error-002.phpt
diff --git a/mongodb-2.1.1/tests/readPreference/readpreference-var_export-001.phpt b/mongodb-2.1.4/tests/readPreference/readpreference-var_export-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/readPreference/readpreference-var_export-001.phpt
rename to mongodb-2.1.4/tests/readPreference/readpreference-var_export-001.phpt
diff --git a/mongodb-2.1.1/tests/readPreference/readpreference_error-001.phpt b/mongodb-2.1.4/tests/readPreference/readpreference_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/readPreference/readpreference_error-001.phpt
rename to mongodb-2.1.4/tests/readPreference/readpreference_error-001.phpt
diff --git a/mongodb-2.1.1/tests/replicaset/bug0155.phpt b/mongodb-2.1.4/tests/replicaset/bug0155.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/replicaset/bug0155.phpt
rename to mongodb-2.1.4/tests/replicaset/bug0155.phpt
diff --git a/mongodb-2.1.1/tests/replicaset/bug0898-001.phpt b/mongodb-2.1.4/tests/replicaset/bug0898-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/replicaset/bug0898-001.phpt
rename to mongodb-2.1.4/tests/replicaset/bug0898-001.phpt
diff --git a/mongodb-2.1.1/tests/replicaset/bug0898-002.phpt b/mongodb-2.1.4/tests/replicaset/bug0898-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/replicaset/bug0898-002.phpt
rename to mongodb-2.1.4/tests/replicaset/bug0898-002.phpt
diff --git a/mongodb-2.1.1/tests/replicaset/manager-selectserver-001.phpt b/mongodb-2.1.4/tests/replicaset/manager-selectserver-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/replicaset/manager-selectserver-001.phpt
rename to mongodb-2.1.4/tests/replicaset/manager-selectserver-001.phpt
diff --git a/mongodb-2.1.1/tests/replicaset/readconcern-001.phpt b/mongodb-2.1.4/tests/replicaset/readconcern-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/replicaset/readconcern-001.phpt
rename to mongodb-2.1.4/tests/replicaset/readconcern-001.phpt
diff --git a/mongodb-2.1.1/tests/replicaset/writeconcernerror-001.phpt b/mongodb-2.1.4/tests/replicaset/writeconcernerror-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/replicaset/writeconcernerror-001.phpt
rename to mongodb-2.1.4/tests/replicaset/writeconcernerror-001.phpt
diff --git a/mongodb-2.1.1/tests/replicaset/writeconcernerror-002.phpt b/mongodb-2.1.4/tests/replicaset/writeconcernerror-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/replicaset/writeconcernerror-002.phpt
rename to mongodb-2.1.4/tests/replicaset/writeconcernerror-002.phpt
diff --git a/mongodb-2.1.1/tests/replicaset/writeresult-getserver-001.phpt b/mongodb-2.1.4/tests/replicaset/writeresult-getserver-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/replicaset/writeresult-getserver-001.phpt
rename to mongodb-2.1.4/tests/replicaset/writeresult-getserver-001.phpt
diff --git a/mongodb-2.1.1/tests/replicaset/writeresult-getserver-002.phpt b/mongodb-2.1.4/tests/replicaset/writeresult-getserver-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/replicaset/writeresult-getserver-002.phpt
rename to mongodb-2.1.4/tests/replicaset/writeresult-getserver-002.phpt
diff --git a/mongodb-2.1.1/tests/retryable-reads/retryable-reads-001.phpt b/mongodb-2.1.4/tests/retryable-reads/retryable-reads-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/retryable-reads/retryable-reads-001.phpt
rename to mongodb-2.1.4/tests/retryable-reads/retryable-reads-001.phpt
diff --git a/mongodb-2.1.1/tests/retryable-reads/retryable-reads-002.phpt b/mongodb-2.1.4/tests/retryable-reads/retryable-reads-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/retryable-reads/retryable-reads-002.phpt
rename to mongodb-2.1.4/tests/retryable-reads/retryable-reads-002.phpt
diff --git a/mongodb-2.1.1/tests/retryable-reads/retryable-reads_error-001.phpt b/mongodb-2.1.4/tests/retryable-reads/retryable-reads_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/retryable-reads/retryable-reads_error-001.phpt
rename to mongodb-2.1.4/tests/retryable-reads/retryable-reads_error-001.phpt
diff --git a/mongodb-2.1.1/tests/retryable-reads/retryable-reads_error-002.phpt b/mongodb-2.1.4/tests/retryable-reads/retryable-reads_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/retryable-reads/retryable-reads_error-002.phpt
rename to mongodb-2.1.4/tests/retryable-reads/retryable-reads_error-002.phpt
diff --git a/mongodb-2.1.1/tests/retryable-writes/retryable-writes-001.phpt b/mongodb-2.1.4/tests/retryable-writes/retryable-writes-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/retryable-writes/retryable-writes-001.phpt
rename to mongodb-2.1.4/tests/retryable-writes/retryable-writes-001.phpt
diff --git a/mongodb-2.1.1/tests/retryable-writes/retryable-writes-002.phpt b/mongodb-2.1.4/tests/retryable-writes/retryable-writes-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/retryable-writes/retryable-writes-002.phpt
rename to mongodb-2.1.4/tests/retryable-writes/retryable-writes-002.phpt
diff --git a/mongodb-2.1.1/tests/retryable-writes/retryable-writes-003.phpt b/mongodb-2.1.4/tests/retryable-writes/retryable-writes-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/retryable-writes/retryable-writes-003.phpt
rename to mongodb-2.1.4/tests/retryable-writes/retryable-writes-003.phpt
diff --git a/mongodb-2.1.1/tests/retryable-writes/retryable-writes-004.phpt b/mongodb-2.1.4/tests/retryable-writes/retryable-writes-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/retryable-writes/retryable-writes-004.phpt
rename to mongodb-2.1.4/tests/retryable-writes/retryable-writes-004.phpt
diff --git a/mongodb-2.1.1/tests/retryable-writes/retryable-writes-005.phpt b/mongodb-2.1.4/tests/retryable-writes/retryable-writes-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/retryable-writes/retryable-writes-005.phpt
rename to mongodb-2.1.4/tests/retryable-writes/retryable-writes-005.phpt
diff --git a/mongodb-2.1.1/tests/retryable-writes/retryable-writes_error-001.phpt b/mongodb-2.1.4/tests/retryable-writes/retryable-writes_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/retryable-writes/retryable-writes_error-001.phpt
rename to mongodb-2.1.4/tests/retryable-writes/retryable-writes_error-001.phpt
diff --git a/mongodb-2.1.1/tests/server/bug0671-002.phpt b/mongodb-2.1.4/tests/server/bug0671-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/bug0671-002.phpt
rename to mongodb-2.1.4/tests/server/bug0671-002.phpt
diff --git a/mongodb-2.1.1/tests/server/server-constants.phpt b/mongodb-2.1.4/tests/server/server-constants.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-constants.phpt
rename to mongodb-2.1.4/tests/server/server-constants.phpt
diff --git a/mongodb-2.1.1/tests/server/server-construct-001.phpt b/mongodb-2.1.4/tests/server/server-construct-001.phpt
similarity index 91%
rename from mongodb-2.1.1/tests/server/server-construct-001.phpt
rename to mongodb-2.1.4/tests/server/server-construct-001.phpt
index 5c726c67..98c1f482 100644
--- a/mongodb-2.1.1/tests/server/server-construct-001.phpt
+++ b/mongodb-2.1.4/tests/server/server-construct-001.phpt
@@ -1,33 +1,33 @@
--TEST--
MongoDB\Driver\Server::__construct()
--SKIPIF--
<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?>
<?php skip_if_not_live(); ?>
<?php skip_if_multiple_mongos(); ?>
<?php skip_if_not_clean(); ?>
--FILE--
<?php
require_once __DIR__ . "/../utils/basic.inc";
/* For replica sets we need to do some extra work to get the primary */
$uri = is_replica_set(URI) ? get_primary_server(URI)->getInfo()['me'] : URI;
$parsed = parse_url($uri);
$manager = create_test_manager();
$bulk = new \MongoDB\Driver\BulkWrite();
$bulk->insert(array('foo' => 'bar'));
$server = $manager->executeBulkWrite(NS, $bulk)->getServer();
$expectedHost = $parsed['host'];
-$expectedPort = (integer) (isset($parsed['port']) ? $parsed['port'] : 27017);
+$expectedPort = (int) (isset($parsed['port']) ? $parsed['port'] : 27017);
var_dump($server->getHost() == $expectedHost);
var_dump($server->getPort() == $expectedPort);
?>
===DONE===
<?php exit(0); ?>
--EXPECTF--
bool(true)
bool(true)
===DONE===
diff --git a/mongodb-2.1.1/tests/server/server-debug.phpt b/mongodb-2.1.4/tests/server/server-debug.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-debug.phpt
rename to mongodb-2.1.4/tests/server/server-debug.phpt
diff --git a/mongodb-2.1.1/tests/server/server-errors.phpt b/mongodb-2.1.4/tests/server/server-errors.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-errors.phpt
rename to mongodb-2.1.4/tests/server/server-errors.phpt
diff --git a/mongodb-2.1.1/tests/server/server-executeBulkWrite-001.phpt b/mongodb-2.1.4/tests/server/server-executeBulkWrite-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-executeBulkWrite-001.phpt
rename to mongodb-2.1.4/tests/server/server-executeBulkWrite-001.phpt
diff --git a/mongodb-2.1.1/tests/server/server-executeBulkWrite-002.phpt b/mongodb-2.1.4/tests/server/server-executeBulkWrite-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-executeBulkWrite-002.phpt
rename to mongodb-2.1.4/tests/server/server-executeBulkWrite-002.phpt
diff --git a/mongodb-2.1.1/tests/server/server-executeBulkWrite-003.phpt b/mongodb-2.1.4/tests/server/server-executeBulkWrite-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-executeBulkWrite-003.phpt
rename to mongodb-2.1.4/tests/server/server-executeBulkWrite-003.phpt
diff --git a/mongodb-2.1.1/tests/server/server-executeBulkWrite-004.phpt b/mongodb-2.1.4/tests/server/server-executeBulkWrite-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-executeBulkWrite-004.phpt
rename to mongodb-2.1.4/tests/server/server-executeBulkWrite-004.phpt
diff --git a/mongodb-2.1.1/tests/server/server-executeBulkWrite-005.phpt b/mongodb-2.1.4/tests/server/server-executeBulkWrite-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-executeBulkWrite-005.phpt
rename to mongodb-2.1.4/tests/server/server-executeBulkWrite-005.phpt
diff --git a/mongodb-2.1.1/tests/server/server-executeBulkWrite-006.phpt b/mongodb-2.1.4/tests/server/server-executeBulkWrite-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-executeBulkWrite-006.phpt
rename to mongodb-2.1.4/tests/server/server-executeBulkWrite-006.phpt
diff --git a/mongodb-2.1.1/tests/server/server-executeBulkWrite-007.phpt b/mongodb-2.1.4/tests/server/server-executeBulkWrite-007.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-executeBulkWrite-007.phpt
rename to mongodb-2.1.4/tests/server/server-executeBulkWrite-007.phpt
diff --git a/mongodb-2.1.1/tests/server/server-executeBulkWrite-008.phpt b/mongodb-2.1.4/tests/server/server-executeBulkWrite-008.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-executeBulkWrite-008.phpt
rename to mongodb-2.1.4/tests/server/server-executeBulkWrite-008.phpt
diff --git a/mongodb-2.1.1/tests/server/server-executeBulkWrite-009.phpt b/mongodb-2.1.4/tests/server/server-executeBulkWrite-009.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-executeBulkWrite-009.phpt
rename to mongodb-2.1.4/tests/server/server-executeBulkWrite-009.phpt
diff --git a/mongodb-2.1.1/tests/server/server-executeBulkWrite_error-001.phpt b/mongodb-2.1.4/tests/server/server-executeBulkWrite_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-executeBulkWrite_error-001.phpt
rename to mongodb-2.1.4/tests/server/server-executeBulkWrite_error-001.phpt
diff --git a/mongodb-2.1.1/tests/server/server-executeBulkWrite_error-002.phpt b/mongodb-2.1.4/tests/server/server-executeBulkWrite_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-executeBulkWrite_error-002.phpt
rename to mongodb-2.1.4/tests/server/server-executeBulkWrite_error-002.phpt
diff --git a/mongodb-2.1.1/tests/server/server-executeCommand-001.phpt b/mongodb-2.1.4/tests/server/server-executeCommand-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-executeCommand-001.phpt
rename to mongodb-2.1.4/tests/server/server-executeCommand-001.phpt
diff --git a/mongodb-2.1.1/tests/server/server-executeCommand-002.phpt b/mongodb-2.1.4/tests/server/server-executeCommand-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-executeCommand-002.phpt
rename to mongodb-2.1.4/tests/server/server-executeCommand-002.phpt
diff --git a/mongodb-2.1.1/tests/server/server-executeCommand-003.phpt b/mongodb-2.1.4/tests/server/server-executeCommand-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-executeCommand-003.phpt
rename to mongodb-2.1.4/tests/server/server-executeCommand-003.phpt
diff --git a/mongodb-2.1.1/tests/server/server-executeCommand-004.phpt b/mongodb-2.1.4/tests/server/server-executeCommand-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-executeCommand-004.phpt
rename to mongodb-2.1.4/tests/server/server-executeCommand-004.phpt
diff --git a/mongodb-2.1.1/tests/server/server-executeCommand-006.phpt b/mongodb-2.1.4/tests/server/server-executeCommand-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-executeCommand-006.phpt
rename to mongodb-2.1.4/tests/server/server-executeCommand-006.phpt
diff --git a/mongodb-2.1.1/tests/server/server-executeCommand-007.phpt b/mongodb-2.1.4/tests/server/server-executeCommand-007.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-executeCommand-007.phpt
rename to mongodb-2.1.4/tests/server/server-executeCommand-007.phpt
diff --git a/mongodb-2.1.1/tests/server/server-executeCommand-008.phpt b/mongodb-2.1.4/tests/server/server-executeCommand-008.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-executeCommand-008.phpt
rename to mongodb-2.1.4/tests/server/server-executeCommand-008.phpt
diff --git a/mongodb-2.1.1/tests/server/server-executeCommand-009.phpt b/mongodb-2.1.4/tests/server/server-executeCommand-009.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-executeCommand-009.phpt
rename to mongodb-2.1.4/tests/server/server-executeCommand-009.phpt
diff --git a/mongodb-2.1.1/tests/server/server-executeCommand-010.phpt b/mongodb-2.1.4/tests/server/server-executeCommand-010.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-executeCommand-010.phpt
rename to mongodb-2.1.4/tests/server/server-executeCommand-010.phpt
diff --git a/mongodb-2.1.1/tests/server/server-executeCommand_error-001.phpt b/mongodb-2.1.4/tests/server/server-executeCommand_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-executeCommand_error-001.phpt
rename to mongodb-2.1.4/tests/server/server-executeCommand_error-001.phpt
diff --git a/mongodb-2.1.1/tests/server/server-executeQuery-001.phpt b/mongodb-2.1.4/tests/server/server-executeQuery-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-executeQuery-001.phpt
rename to mongodb-2.1.4/tests/server/server-executeQuery-001.phpt
diff --git a/mongodb-2.1.1/tests/server/server-executeQuery-002.phpt b/mongodb-2.1.4/tests/server/server-executeQuery-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-executeQuery-002.phpt
rename to mongodb-2.1.4/tests/server/server-executeQuery-002.phpt
diff --git a/mongodb-2.1.1/tests/server/server-executeQuery-004.phpt b/mongodb-2.1.4/tests/server/server-executeQuery-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-executeQuery-004.phpt
rename to mongodb-2.1.4/tests/server/server-executeQuery-004.phpt
diff --git a/mongodb-2.1.1/tests/server/server-executeQuery-006.phpt b/mongodb-2.1.4/tests/server/server-executeQuery-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-executeQuery-006.phpt
rename to mongodb-2.1.4/tests/server/server-executeQuery-006.phpt
diff --git a/mongodb-2.1.1/tests/server/server-executeQuery-007.phpt b/mongodb-2.1.4/tests/server/server-executeQuery-007.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-executeQuery-007.phpt
rename to mongodb-2.1.4/tests/server/server-executeQuery-007.phpt
diff --git a/mongodb-2.1.1/tests/server/server-executeQuery-008.phpt b/mongodb-2.1.4/tests/server/server-executeQuery-008.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-executeQuery-008.phpt
rename to mongodb-2.1.4/tests/server/server-executeQuery-008.phpt
diff --git a/mongodb-2.1.1/tests/server/server-executeQuery-009.phpt b/mongodb-2.1.4/tests/server/server-executeQuery-009.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-executeQuery-009.phpt
rename to mongodb-2.1.4/tests/server/server-executeQuery-009.phpt
diff --git a/mongodb-2.1.1/tests/server/server-executeQuery-011.phpt b/mongodb-2.1.4/tests/server/server-executeQuery-011.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-executeQuery-011.phpt
rename to mongodb-2.1.4/tests/server/server-executeQuery-011.phpt
diff --git a/mongodb-2.1.1/tests/server/server-executeQuery-012.phpt b/mongodb-2.1.4/tests/server/server-executeQuery-012.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-executeQuery-012.phpt
rename to mongodb-2.1.4/tests/server/server-executeQuery-012.phpt
diff --git a/mongodb-2.1.1/tests/server/server-executeQuery-013.phpt b/mongodb-2.1.4/tests/server/server-executeQuery-013.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-executeQuery-013.phpt
rename to mongodb-2.1.4/tests/server/server-executeQuery-013.phpt
diff --git a/mongodb-2.1.1/tests/server/server-executeQuery_error-001.phpt b/mongodb-2.1.4/tests/server/server-executeQuery_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-executeQuery_error-001.phpt
rename to mongodb-2.1.4/tests/server/server-executeQuery_error-001.phpt
diff --git a/mongodb-2.1.1/tests/server/server-executeReadCommand-001.phpt b/mongodb-2.1.4/tests/server/server-executeReadCommand-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-executeReadCommand-001.phpt
rename to mongodb-2.1.4/tests/server/server-executeReadCommand-001.phpt
diff --git a/mongodb-2.1.1/tests/server/server-executeReadCommand-002.phpt b/mongodb-2.1.4/tests/server/server-executeReadCommand-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-executeReadCommand-002.phpt
rename to mongodb-2.1.4/tests/server/server-executeReadCommand-002.phpt
diff --git a/mongodb-2.1.1/tests/server/server-executeReadCommand-003.phpt b/mongodb-2.1.4/tests/server/server-executeReadCommand-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-executeReadCommand-003.phpt
rename to mongodb-2.1.4/tests/server/server-executeReadCommand-003.phpt
diff --git a/mongodb-2.1.1/tests/server/server-executeReadCommand_error-001.phpt b/mongodb-2.1.4/tests/server/server-executeReadCommand_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-executeReadCommand_error-001.phpt
rename to mongodb-2.1.4/tests/server/server-executeReadCommand_error-001.phpt
diff --git a/mongodb-2.1.1/tests/server/server-executeReadWriteCommand-001.phpt b/mongodb-2.1.4/tests/server/server-executeReadWriteCommand-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-executeReadWriteCommand-001.phpt
rename to mongodb-2.1.4/tests/server/server-executeReadWriteCommand-001.phpt
diff --git a/mongodb-2.1.1/tests/server/server-executeReadWriteCommand-002.phpt b/mongodb-2.1.4/tests/server/server-executeReadWriteCommand-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-executeReadWriteCommand-002.phpt
rename to mongodb-2.1.4/tests/server/server-executeReadWriteCommand-002.phpt
diff --git a/mongodb-2.1.1/tests/server/server-executeReadWriteCommand-003.phpt b/mongodb-2.1.4/tests/server/server-executeReadWriteCommand-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-executeReadWriteCommand-003.phpt
rename to mongodb-2.1.4/tests/server/server-executeReadWriteCommand-003.phpt
diff --git a/mongodb-2.1.1/tests/server/server-executeReadWriteCommand_error-001.phpt b/mongodb-2.1.4/tests/server/server-executeReadWriteCommand_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-executeReadWriteCommand_error-001.phpt
rename to mongodb-2.1.4/tests/server/server-executeReadWriteCommand_error-001.phpt
diff --git a/mongodb-2.1.1/tests/server/server-executeWriteCommand-001.phpt b/mongodb-2.1.4/tests/server/server-executeWriteCommand-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-executeWriteCommand-001.phpt
rename to mongodb-2.1.4/tests/server/server-executeWriteCommand-001.phpt
diff --git a/mongodb-2.1.1/tests/server/server-executeWriteCommand-002.phpt b/mongodb-2.1.4/tests/server/server-executeWriteCommand-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-executeWriteCommand-002.phpt
rename to mongodb-2.1.4/tests/server/server-executeWriteCommand-002.phpt
diff --git a/mongodb-2.1.1/tests/server/server-executeWriteCommand-003.phpt b/mongodb-2.1.4/tests/server/server-executeWriteCommand-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-executeWriteCommand-003.phpt
rename to mongodb-2.1.4/tests/server/server-executeWriteCommand-003.phpt
diff --git a/mongodb-2.1.1/tests/server/server-executeWriteCommand_error-001.phpt b/mongodb-2.1.4/tests/server/server-executeWriteCommand_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-executeWriteCommand_error-001.phpt
rename to mongodb-2.1.4/tests/server/server-executeWriteCommand_error-001.phpt
diff --git a/mongodb-2.1.1/tests/server/server-getInfo-001.phpt b/mongodb-2.1.4/tests/server/server-getInfo-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-getInfo-001.phpt
rename to mongodb-2.1.4/tests/server/server-getInfo-001.phpt
diff --git a/mongodb-2.1.1/tests/server/server-getLatency-001.phpt b/mongodb-2.1.4/tests/server/server-getLatency-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-getLatency-001.phpt
rename to mongodb-2.1.4/tests/server/server-getLatency-001.phpt
diff --git a/mongodb-2.1.1/tests/server/server-getLatency-002.phpt b/mongodb-2.1.4/tests/server/server-getLatency-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-getLatency-002.phpt
rename to mongodb-2.1.4/tests/server/server-getLatency-002.phpt
diff --git a/mongodb-2.1.1/tests/server/server-getServerDescription-001.phpt b/mongodb-2.1.4/tests/server/server-getServerDescription-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-getServerDescription-001.phpt
rename to mongodb-2.1.4/tests/server/server-getServerDescription-001.phpt
diff --git a/mongodb-2.1.1/tests/server/server-getTags-001.phpt b/mongodb-2.1.4/tests/server/server-getTags-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-getTags-001.phpt
rename to mongodb-2.1.4/tests/server/server-getTags-001.phpt
diff --git a/mongodb-2.1.1/tests/server/server-getTags-002.phpt b/mongodb-2.1.4/tests/server/server-getTags-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server-getTags-002.phpt
rename to mongodb-2.1.4/tests/server/server-getTags-002.phpt
diff --git a/mongodb-2.1.1/tests/server/server_error-001.phpt b/mongodb-2.1.4/tests/server/server_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/server/server_error-001.phpt
rename to mongodb-2.1.4/tests/server/server_error-001.phpt
diff --git a/mongodb-2.1.1/tests/serverApi/serverApi-bsonserialize-001.phpt b/mongodb-2.1.4/tests/serverApi/serverApi-bsonserialize-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/serverApi/serverApi-bsonserialize-001.phpt
rename to mongodb-2.1.4/tests/serverApi/serverApi-bsonserialize-001.phpt
diff --git a/mongodb-2.1.1/tests/serverApi/serverApi-bsonserialize-002.phpt b/mongodb-2.1.4/tests/serverApi/serverApi-bsonserialize-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/serverApi/serverApi-bsonserialize-002.phpt
rename to mongodb-2.1.4/tests/serverApi/serverApi-bsonserialize-002.phpt
diff --git a/mongodb-2.1.1/tests/serverApi/serverApi-construct-001.phpt b/mongodb-2.1.4/tests/serverApi/serverApi-construct-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/serverApi/serverApi-construct-001.phpt
rename to mongodb-2.1.4/tests/serverApi/serverApi-construct-001.phpt
diff --git a/mongodb-2.1.1/tests/serverApi/serverApi-debug.phpt b/mongodb-2.1.4/tests/serverApi/serverApi-debug.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/serverApi/serverApi-debug.phpt
rename to mongodb-2.1.4/tests/serverApi/serverApi-debug.phpt
diff --git a/mongodb-2.1.1/tests/serverApi/serverApi-serialization-002.phpt b/mongodb-2.1.4/tests/serverApi/serverApi-serialization-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/serverApi/serverApi-serialization-002.phpt
rename to mongodb-2.1.4/tests/serverApi/serverApi-serialization-002.phpt
diff --git a/mongodb-2.1.1/tests/serverApi/serverApi-serialization_error-002.phpt b/mongodb-2.1.4/tests/serverApi/serverApi-serialization_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/serverApi/serverApi-serialization_error-002.phpt
rename to mongodb-2.1.4/tests/serverApi/serverApi-serialization_error-002.phpt
diff --git a/mongodb-2.1.1/tests/serverApi/serverApi-set_state-001.phpt b/mongodb-2.1.4/tests/serverApi/serverApi-set_state-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/serverApi/serverApi-set_state-001.phpt
rename to mongodb-2.1.4/tests/serverApi/serverApi-set_state-001.phpt
diff --git a/mongodb-2.1.1/tests/serverApi/serverApi-set_state_error-001.phpt b/mongodb-2.1.4/tests/serverApi/serverApi-set_state_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/serverApi/serverApi-set_state_error-001.phpt
rename to mongodb-2.1.4/tests/serverApi/serverApi-set_state_error-001.phpt
diff --git a/mongodb-2.1.1/tests/serverApi/serverApi-var_export-001.phpt b/mongodb-2.1.4/tests/serverApi/serverApi-var_export-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/serverApi/serverApi-var_export-001.phpt
rename to mongodb-2.1.4/tests/serverApi/serverApi-var_export-001.phpt
diff --git a/mongodb-2.1.1/tests/serverDescription/serverDescription-constants.phpt b/mongodb-2.1.4/tests/serverDescription/serverDescription-constants.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/serverDescription/serverDescription-constants.phpt
rename to mongodb-2.1.4/tests/serverDescription/serverDescription-constants.phpt
diff --git a/mongodb-2.1.1/tests/serverDescription/serverDescription-debug-001.phpt b/mongodb-2.1.4/tests/serverDescription/serverDescription-debug-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/serverDescription/serverDescription-debug-001.phpt
rename to mongodb-2.1.4/tests/serverDescription/serverDescription-debug-001.phpt
diff --git a/mongodb-2.1.1/tests/serverDescription/serverDescription-getHelloResponse-001.phpt b/mongodb-2.1.4/tests/serverDescription/serverDescription-getHelloResponse-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/serverDescription/serverDescription-getHelloResponse-001.phpt
rename to mongodb-2.1.4/tests/serverDescription/serverDescription-getHelloResponse-001.phpt
diff --git a/mongodb-2.1.1/tests/serverDescription/serverDescription-getHost-001.phpt b/mongodb-2.1.4/tests/serverDescription/serverDescription-getHost-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/serverDescription/serverDescription-getHost-001.phpt
rename to mongodb-2.1.4/tests/serverDescription/serverDescription-getHost-001.phpt
diff --git a/mongodb-2.1.1/tests/serverDescription/serverDescription-getLastUpdateTime-001.phpt b/mongodb-2.1.4/tests/serverDescription/serverDescription-getLastUpdateTime-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/serverDescription/serverDescription-getLastUpdateTime-001.phpt
rename to mongodb-2.1.4/tests/serverDescription/serverDescription-getLastUpdateTime-001.phpt
diff --git a/mongodb-2.1.1/tests/serverDescription/serverDescription-getLastUpdateTime-002.phpt b/mongodb-2.1.4/tests/serverDescription/serverDescription-getLastUpdateTime-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/serverDescription/serverDescription-getLastUpdateTime-002.phpt
rename to mongodb-2.1.4/tests/serverDescription/serverDescription-getLastUpdateTime-002.phpt
diff --git a/mongodb-2.1.1/tests/serverDescription/serverDescription-getPort-001.phpt b/mongodb-2.1.4/tests/serverDescription/serverDescription-getPort-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/serverDescription/serverDescription-getPort-001.phpt
rename to mongodb-2.1.4/tests/serverDescription/serverDescription-getPort-001.phpt
diff --git a/mongodb-2.1.1/tests/serverDescription/serverDescription-getRoundTripTime-001.phpt b/mongodb-2.1.4/tests/serverDescription/serverDescription-getRoundTripTime-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/serverDescription/serverDescription-getRoundTripTime-001.phpt
rename to mongodb-2.1.4/tests/serverDescription/serverDescription-getRoundTripTime-001.phpt
diff --git a/mongodb-2.1.1/tests/serverDescription/serverDescription-getType-001.phpt b/mongodb-2.1.4/tests/serverDescription/serverDescription-getType-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/serverDescription/serverDescription-getType-001.phpt
rename to mongodb-2.1.4/tests/serverDescription/serverDescription-getType-001.phpt
diff --git a/mongodb-2.1.1/tests/serverDescription/serverDescription-var_export-001.phpt b/mongodb-2.1.4/tests/serverDescription/serverDescription-var_export-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/serverDescription/serverDescription-var_export-001.phpt
rename to mongodb-2.1.4/tests/serverDescription/serverDescription-var_export-001.phpt
diff --git a/mongodb-2.1.1/tests/session/bug1274-001.phpt b/mongodb-2.1.4/tests/session/bug1274-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/session/bug1274-001.phpt
rename to mongodb-2.1.4/tests/session/bug1274-001.phpt
diff --git a/mongodb-2.1.1/tests/session/bug1274-002.phpt b/mongodb-2.1.4/tests/session/bug1274-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/session/bug1274-002.phpt
rename to mongodb-2.1.4/tests/session/bug1274-002.phpt
diff --git a/mongodb-2.1.1/tests/session/bug1274-003.phpt b/mongodb-2.1.4/tests/session/bug1274-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/session/bug1274-003.phpt
rename to mongodb-2.1.4/tests/session/bug1274-003.phpt
diff --git a/mongodb-2.1.1/tests/session/bug1274-004.phpt b/mongodb-2.1.4/tests/session/bug1274-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/session/bug1274-004.phpt
rename to mongodb-2.1.4/tests/session/bug1274-004.phpt
diff --git a/mongodb-2.1.1/tests/session/bug1274-005.phpt b/mongodb-2.1.4/tests/session/bug1274-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/session/bug1274-005.phpt
rename to mongodb-2.1.4/tests/session/bug1274-005.phpt
diff --git a/mongodb-2.1.1/tests/session/bug1274-006.phpt b/mongodb-2.1.4/tests/session/bug1274-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/session/bug1274-006.phpt
rename to mongodb-2.1.4/tests/session/bug1274-006.phpt
diff --git a/mongodb-2.1.1/tests/session/session-001.phpt b/mongodb-2.1.4/tests/session/session-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/session/session-001.phpt
rename to mongodb-2.1.4/tests/session/session-001.phpt
diff --git a/mongodb-2.1.1/tests/session/session-002.phpt b/mongodb-2.1.4/tests/session/session-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/session/session-002.phpt
rename to mongodb-2.1.4/tests/session/session-002.phpt
diff --git a/mongodb-2.1.1/tests/session/session-003.phpt b/mongodb-2.1.4/tests/session/session-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/session/session-003.phpt
rename to mongodb-2.1.4/tests/session/session-003.phpt
diff --git a/mongodb-2.1.1/tests/session/session-004.phpt b/mongodb-2.1.4/tests/session/session-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/session/session-004.phpt
rename to mongodb-2.1.4/tests/session/session-004.phpt
diff --git a/mongodb-2.1.1/tests/session/session-005.phpt b/mongodb-2.1.4/tests/session/session-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/session/session-005.phpt
rename to mongodb-2.1.4/tests/session/session-005.phpt
diff --git a/mongodb-2.1.1/tests/session/session-advanceClusterTime-001.phpt b/mongodb-2.1.4/tests/session/session-advanceClusterTime-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/session/session-advanceClusterTime-001.phpt
rename to mongodb-2.1.4/tests/session/session-advanceClusterTime-001.phpt
diff --git a/mongodb-2.1.1/tests/session/session-advanceOperationTime-001.phpt b/mongodb-2.1.4/tests/session/session-advanceOperationTime-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/session/session-advanceOperationTime-001.phpt
rename to mongodb-2.1.4/tests/session/session-advanceOperationTime-001.phpt
diff --git a/mongodb-2.1.1/tests/session/session-advanceOperationTime-002.phpt b/mongodb-2.1.4/tests/session/session-advanceOperationTime-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/session/session-advanceOperationTime-002.phpt
rename to mongodb-2.1.4/tests/session/session-advanceOperationTime-002.phpt
diff --git a/mongodb-2.1.1/tests/session/session-advanceOperationTime-003.phpt b/mongodb-2.1.4/tests/session/session-advanceOperationTime-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/session/session-advanceOperationTime-003.phpt
rename to mongodb-2.1.4/tests/session/session-advanceOperationTime-003.phpt
diff --git a/mongodb-2.1.1/tests/session/session-advanceOperationTime_error-001.phpt b/mongodb-2.1.4/tests/session/session-advanceOperationTime_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/session/session-advanceOperationTime_error-001.phpt
rename to mongodb-2.1.4/tests/session/session-advanceOperationTime_error-001.phpt
diff --git a/mongodb-2.1.1/tests/session/session-commitTransaction-001.phpt b/mongodb-2.1.4/tests/session/session-commitTransaction-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/session/session-commitTransaction-001.phpt
rename to mongodb-2.1.4/tests/session/session-commitTransaction-001.phpt
diff --git a/mongodb-2.1.1/tests/session/session-constants.phpt b/mongodb-2.1.4/tests/session/session-constants.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/session/session-constants.phpt
rename to mongodb-2.1.4/tests/session/session-constants.phpt
diff --git a/mongodb-2.1.1/tests/session/session-debug-001.phpt b/mongodb-2.1.4/tests/session/session-debug-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/session/session-debug-001.phpt
rename to mongodb-2.1.4/tests/session/session-debug-001.phpt
diff --git a/mongodb-2.1.1/tests/session/session-debug-002.phpt b/mongodb-2.1.4/tests/session/session-debug-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/session/session-debug-002.phpt
rename to mongodb-2.1.4/tests/session/session-debug-002.phpt
diff --git a/mongodb-2.1.1/tests/session/session-debug-003.phpt b/mongodb-2.1.4/tests/session/session-debug-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/session/session-debug-003.phpt
rename to mongodb-2.1.4/tests/session/session-debug-003.phpt
diff --git a/mongodb-2.1.1/tests/session/session-debug-004.phpt b/mongodb-2.1.4/tests/session/session-debug-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/session/session-debug-004.phpt
rename to mongodb-2.1.4/tests/session/session-debug-004.phpt
diff --git a/mongodb-2.1.1/tests/session/session-debug-005.phpt b/mongodb-2.1.4/tests/session/session-debug-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/session/session-debug-005.phpt
rename to mongodb-2.1.4/tests/session/session-debug-005.phpt
diff --git a/mongodb-2.1.1/tests/session/session-debug-006.phpt b/mongodb-2.1.4/tests/session/session-debug-006.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/session/session-debug-006.phpt
rename to mongodb-2.1.4/tests/session/session-debug-006.phpt
diff --git a/mongodb-2.1.1/tests/session/session-debug-007.phpt b/mongodb-2.1.4/tests/session/session-debug-007.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/session/session-debug-007.phpt
rename to mongodb-2.1.4/tests/session/session-debug-007.phpt
diff --git a/mongodb-2.1.1/tests/session/session-endSession-001.phpt b/mongodb-2.1.4/tests/session/session-endSession-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/session/session-endSession-001.phpt
rename to mongodb-2.1.4/tests/session/session-endSession-001.phpt
diff --git a/mongodb-2.1.1/tests/session/session-endSession-002.phpt b/mongodb-2.1.4/tests/session/session-endSession-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/session/session-endSession-002.phpt
rename to mongodb-2.1.4/tests/session/session-endSession-002.phpt
diff --git a/mongodb-2.1.1/tests/session/session-getClusterTime-001.phpt b/mongodb-2.1.4/tests/session/session-getClusterTime-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/session/session-getClusterTime-001.phpt
rename to mongodb-2.1.4/tests/session/session-getClusterTime-001.phpt
diff --git a/mongodb-2.1.1/tests/session/session-getLogicalSessionId-001.phpt b/mongodb-2.1.4/tests/session/session-getLogicalSessionId-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/session/session-getLogicalSessionId-001.phpt
rename to mongodb-2.1.4/tests/session/session-getLogicalSessionId-001.phpt
diff --git a/mongodb-2.1.1/tests/session/session-getOperationTime-001.phpt b/mongodb-2.1.4/tests/session/session-getOperationTime-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/session/session-getOperationTime-001.phpt
rename to mongodb-2.1.4/tests/session/session-getOperationTime-001.phpt
diff --git a/mongodb-2.1.1/tests/session/session-getTransactionOptions-001.phpt b/mongodb-2.1.4/tests/session/session-getTransactionOptions-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/session/session-getTransactionOptions-001.phpt
rename to mongodb-2.1.4/tests/session/session-getTransactionOptions-001.phpt
diff --git a/mongodb-2.1.1/tests/session/session-getTransactionState-001.phpt b/mongodb-2.1.4/tests/session/session-getTransactionState-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/session/session-getTransactionState-001.phpt
rename to mongodb-2.1.4/tests/session/session-getTransactionState-001.phpt
diff --git a/mongodb-2.1.1/tests/session/session-isDirty-001.phpt b/mongodb-2.1.4/tests/session/session-isDirty-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/session/session-isDirty-001.phpt
rename to mongodb-2.1.4/tests/session/session-isDirty-001.phpt
diff --git a/mongodb-2.1.1/tests/session/session-isInTransaction-001.phpt b/mongodb-2.1.4/tests/session/session-isInTransaction-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/session/session-isInTransaction-001.phpt
rename to mongodb-2.1.4/tests/session/session-isInTransaction-001.phpt
diff --git a/mongodb-2.1.1/tests/session/session-startTransaction-001.phpt b/mongodb-2.1.4/tests/session/session-startTransaction-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/session/session-startTransaction-001.phpt
rename to mongodb-2.1.4/tests/session/session-startTransaction-001.phpt
diff --git a/mongodb-2.1.1/tests/session/session-startTransaction_error-001.phpt b/mongodb-2.1.4/tests/session/session-startTransaction_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/session/session-startTransaction_error-001.phpt
rename to mongodb-2.1.4/tests/session/session-startTransaction_error-001.phpt
diff --git a/mongodb-2.1.1/tests/session/session-startTransaction_error-002.phpt b/mongodb-2.1.4/tests/session/session-startTransaction_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/session/session-startTransaction_error-002.phpt
rename to mongodb-2.1.4/tests/session/session-startTransaction_error-002.phpt
diff --git a/mongodb-2.1.1/tests/session/session-startTransaction_error-004.phpt b/mongodb-2.1.4/tests/session/session-startTransaction_error-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/session/session-startTransaction_error-004.phpt
rename to mongodb-2.1.4/tests/session/session-startTransaction_error-004.phpt
diff --git a/mongodb-2.1.1/tests/session/session-startTransaction_error-005.phpt b/mongodb-2.1.4/tests/session/session-startTransaction_error-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/session/session-startTransaction_error-005.phpt
rename to mongodb-2.1.4/tests/session/session-startTransaction_error-005.phpt
diff --git a/mongodb-2.1.1/tests/session/transaction-integration-001.phpt b/mongodb-2.1.4/tests/session/transaction-integration-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/session/transaction-integration-001.phpt
rename to mongodb-2.1.4/tests/session/transaction-integration-001.phpt
diff --git a/mongodb-2.1.1/tests/session/transaction-integration-002.phpt b/mongodb-2.1.4/tests/session/transaction-integration-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/session/transaction-integration-002.phpt
rename to mongodb-2.1.4/tests/session/transaction-integration-002.phpt
diff --git a/mongodb-2.1.1/tests/session/transaction-integration-003.phpt b/mongodb-2.1.4/tests/session/transaction-integration-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/session/transaction-integration-003.phpt
rename to mongodb-2.1.4/tests/session/transaction-integration-003.phpt
diff --git a/mongodb-2.1.1/tests/session/transaction-integration_error-001.phpt b/mongodb-2.1.4/tests/session/transaction-integration_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/session/transaction-integration_error-001.phpt
rename to mongodb-2.1.4/tests/session/transaction-integration_error-001.phpt
diff --git a/mongodb-2.1.1/tests/session/transaction-integration_error-002.phpt b/mongodb-2.1.4/tests/session/transaction-integration_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/session/transaction-integration_error-002.phpt
rename to mongodb-2.1.4/tests/session/transaction-integration_error-002.phpt
diff --git a/mongodb-2.1.1/tests/session/transaction-integration_error-003.phpt b/mongodb-2.1.4/tests/session/transaction-integration_error-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/session/transaction-integration_error-003.phpt
rename to mongodb-2.1.4/tests/session/transaction-integration_error-003.phpt
diff --git a/mongodb-2.1.1/tests/session/transaction-integration_error-004.phpt b/mongodb-2.1.4/tests/session/transaction-integration_error-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/session/transaction-integration_error-004.phpt
rename to mongodb-2.1.4/tests/session/transaction-integration_error-004.phpt
diff --git a/mongodb-2.1.1/tests/standalone/bug0231.phpt b/mongodb-2.1.4/tests/standalone/bug0231.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/standalone/bug0231.phpt
rename to mongodb-2.1.4/tests/standalone/bug0231.phpt
diff --git a/mongodb-2.1.1/tests/standalone/bug0357.phpt b/mongodb-2.1.4/tests/standalone/bug0357.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/standalone/bug0357.phpt
rename to mongodb-2.1.4/tests/standalone/bug0357.phpt
diff --git a/mongodb-2.1.1/tests/standalone/bug0545.phpt b/mongodb-2.1.4/tests/standalone/bug0545.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/standalone/bug0545.phpt
rename to mongodb-2.1.4/tests/standalone/bug0545.phpt
diff --git a/mongodb-2.1.1/tests/standalone/bug0655.phpt b/mongodb-2.1.4/tests/standalone/bug0655.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/standalone/bug0655.phpt
rename to mongodb-2.1.4/tests/standalone/bug0655.phpt
diff --git a/mongodb-2.1.1/tests/standalone/command-aggregate-001.phpt b/mongodb-2.1.4/tests/standalone/command-aggregate-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/standalone/command-aggregate-001.phpt
rename to mongodb-2.1.4/tests/standalone/command-aggregate-001.phpt
diff --git a/mongodb-2.1.1/tests/standalone/connectiontimeoutexception-001.phpt b/mongodb-2.1.4/tests/standalone/connectiontimeoutexception-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/standalone/connectiontimeoutexception-001.phpt
rename to mongodb-2.1.4/tests/standalone/connectiontimeoutexception-001.phpt
diff --git a/mongodb-2.1.1/tests/standalone/executiontimeoutexception-001.phpt b/mongodb-2.1.4/tests/standalone/executiontimeoutexception-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/standalone/executiontimeoutexception-001.phpt
rename to mongodb-2.1.4/tests/standalone/executiontimeoutexception-001.phpt
diff --git a/mongodb-2.1.1/tests/standalone/executiontimeoutexception-002.phpt b/mongodb-2.1.4/tests/standalone/executiontimeoutexception-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/standalone/executiontimeoutexception-002.phpt
rename to mongodb-2.1.4/tests/standalone/executiontimeoutexception-002.phpt
diff --git a/mongodb-2.1.1/tests/standalone/manager-as-singleton.phpt b/mongodb-2.1.4/tests/standalone/manager-as-singleton.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/standalone/manager-as-singleton.phpt
rename to mongodb-2.1.4/tests/standalone/manager-as-singleton.phpt
diff --git a/mongodb-2.1.1/tests/standalone/update-multi-001.phpt b/mongodb-2.1.4/tests/standalone/update-multi-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/standalone/update-multi-001.phpt
rename to mongodb-2.1.4/tests/standalone/update-multi-001.phpt
diff --git a/mongodb-2.1.1/tests/standalone/write-error-001.phpt b/mongodb-2.1.4/tests/standalone/write-error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/standalone/write-error-001.phpt
rename to mongodb-2.1.4/tests/standalone/write-error-001.phpt
diff --git a/mongodb-2.1.1/tests/standalone/writeresult-isacknowledged-001.phpt b/mongodb-2.1.4/tests/standalone/writeresult-isacknowledged-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/standalone/writeresult-isacknowledged-001.phpt
rename to mongodb-2.1.4/tests/standalone/writeresult-isacknowledged-001.phpt
diff --git a/mongodb-2.1.1/tests/standalone/writeresult-isacknowledged-002.phpt b/mongodb-2.1.4/tests/standalone/writeresult-isacknowledged-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/standalone/writeresult-isacknowledged-002.phpt
rename to mongodb-2.1.4/tests/standalone/writeresult-isacknowledged-002.phpt
diff --git a/mongodb-2.1.1/tests/standalone/writeresult-isacknowledged-003.phpt b/mongodb-2.1.4/tests/standalone/writeresult-isacknowledged-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/standalone/writeresult-isacknowledged-003.phpt
rename to mongodb-2.1.4/tests/standalone/writeresult-isacknowledged-003.phpt
diff --git a/mongodb-2.1.1/tests/topologyDescription/topologyDescription-constants.phpt b/mongodb-2.1.4/tests/topologyDescription/topologyDescription-constants.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/topologyDescription/topologyDescription-constants.phpt
rename to mongodb-2.1.4/tests/topologyDescription/topologyDescription-constants.phpt
diff --git a/mongodb-2.1.1/tests/topologyDescription/topologyDescription-debug-001.phpt b/mongodb-2.1.4/tests/topologyDescription/topologyDescription-debug-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/topologyDescription/topologyDescription-debug-001.phpt
rename to mongodb-2.1.4/tests/topologyDescription/topologyDescription-debug-001.phpt
diff --git a/mongodb-2.1.1/tests/topologyDescription/topologyDescription-getServers-001.phpt b/mongodb-2.1.4/tests/topologyDescription/topologyDescription-getServers-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/topologyDescription/topologyDescription-getServers-001.phpt
rename to mongodb-2.1.4/tests/topologyDescription/topologyDescription-getServers-001.phpt
diff --git a/mongodb-2.1.1/tests/topologyDescription/topologyDescription-getType-001.phpt b/mongodb-2.1.4/tests/topologyDescription/topologyDescription-getType-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/topologyDescription/topologyDescription-getType-001.phpt
rename to mongodb-2.1.4/tests/topologyDescription/topologyDescription-getType-001.phpt
diff --git a/mongodb-2.1.1/tests/topologyDescription/topologyDescription-hasReadableServer-001.phpt b/mongodb-2.1.4/tests/topologyDescription/topologyDescription-hasReadableServer-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/topologyDescription/topologyDescription-hasReadableServer-001.phpt
rename to mongodb-2.1.4/tests/topologyDescription/topologyDescription-hasReadableServer-001.phpt
diff --git a/mongodb-2.1.1/tests/topologyDescription/topologyDescription-hasReadableServer-002.phpt b/mongodb-2.1.4/tests/topologyDescription/topologyDescription-hasReadableServer-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/topologyDescription/topologyDescription-hasReadableServer-002.phpt
rename to mongodb-2.1.4/tests/topologyDescription/topologyDescription-hasReadableServer-002.phpt
diff --git a/mongodb-2.1.1/tests/topologyDescription/topologyDescription-hasReadableServer_error-001.phpt b/mongodb-2.1.4/tests/topologyDescription/topologyDescription-hasReadableServer_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/topologyDescription/topologyDescription-hasReadableServer_error-001.phpt
rename to mongodb-2.1.4/tests/topologyDescription/topologyDescription-hasReadableServer_error-001.phpt
diff --git a/mongodb-2.1.1/tests/topologyDescription/topologyDescription-hasWritableServer-001.phpt b/mongodb-2.1.4/tests/topologyDescription/topologyDescription-hasWritableServer-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/topologyDescription/topologyDescription-hasWritableServer-001.phpt
rename to mongodb-2.1.4/tests/topologyDescription/topologyDescription-hasWritableServer-001.phpt
diff --git a/mongodb-2.1.1/tests/utils/PHONGO-FIXTURES.json.gz b/mongodb-2.1.4/tests/utils/PHONGO-FIXTURES.json.gz
similarity index 100%
rename from mongodb-2.1.1/tests/utils/PHONGO-FIXTURES.json.gz
rename to mongodb-2.1.4/tests/utils/PHONGO-FIXTURES.json.gz
diff --git a/mongodb-2.1.1/tests/utils/basic-skipif.inc b/mongodb-2.1.4/tests/utils/basic-skipif.inc
similarity index 100%
rename from mongodb-2.1.1/tests/utils/basic-skipif.inc
rename to mongodb-2.1.4/tests/utils/basic-skipif.inc
diff --git a/mongodb-2.1.1/tests/utils/basic.inc b/mongodb-2.1.4/tests/utils/basic.inc
similarity index 100%
rename from mongodb-2.1.1/tests/utils/basic.inc
rename to mongodb-2.1.4/tests/utils/basic.inc
diff --git a/mongodb-2.1.1/tests/utils/classes.inc b/mongodb-2.1.4/tests/utils/classes.inc
similarity index 100%
rename from mongodb-2.1.1/tests/utils/classes.inc
rename to mongodb-2.1.4/tests/utils/classes.inc
diff --git a/mongodb-2.1.1/tests/utils/observer.php b/mongodb-2.1.4/tests/utils/observer.php
similarity index 100%
rename from mongodb-2.1.1/tests/utils/observer.php
rename to mongodb-2.1.4/tests/utils/observer.php
diff --git a/mongodb-2.1.1/tests/utils/skipif.php b/mongodb-2.1.4/tests/utils/skipif.php
similarity index 100%
rename from mongodb-2.1.1/tests/utils/skipif.php
rename to mongodb-2.1.4/tests/utils/skipif.php
diff --git a/mongodb-2.1.1/tests/utils/tools.php b/mongodb-2.1.4/tests/utils/tools.php
similarity index 100%
rename from mongodb-2.1.1/tests/utils/tools.php
rename to mongodb-2.1.4/tests/utils/tools.php
diff --git a/mongodb-2.1.1/tests/writeConcern/bug1598-001.phpt b/mongodb-2.1.4/tests/writeConcern/bug1598-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeConcern/bug1598-001.phpt
rename to mongodb-2.1.4/tests/writeConcern/bug1598-001.phpt
diff --git a/mongodb-2.1.1/tests/writeConcern/bug1598-002.phpt b/mongodb-2.1.4/tests/writeConcern/bug1598-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeConcern/bug1598-002.phpt
rename to mongodb-2.1.4/tests/writeConcern/bug1598-002.phpt
diff --git a/mongodb-2.1.1/tests/writeConcern/writeconcern-bsonserialize-001.phpt b/mongodb-2.1.4/tests/writeConcern/writeconcern-bsonserialize-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeConcern/writeconcern-bsonserialize-001.phpt
rename to mongodb-2.1.4/tests/writeConcern/writeconcern-bsonserialize-001.phpt
diff --git a/mongodb-2.1.1/tests/writeConcern/writeconcern-bsonserialize-002.phpt b/mongodb-2.1.4/tests/writeConcern/writeconcern-bsonserialize-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeConcern/writeconcern-bsonserialize-002.phpt
rename to mongodb-2.1.4/tests/writeConcern/writeconcern-bsonserialize-002.phpt
diff --git a/mongodb-2.1.1/tests/writeConcern/writeconcern-bsonserialize-003.phpt b/mongodb-2.1.4/tests/writeConcern/writeconcern-bsonserialize-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeConcern/writeconcern-bsonserialize-003.phpt
rename to mongodb-2.1.4/tests/writeConcern/writeconcern-bsonserialize-003.phpt
diff --git a/mongodb-2.1.1/tests/writeConcern/writeconcern-bsonserialize-004.phpt b/mongodb-2.1.4/tests/writeConcern/writeconcern-bsonserialize-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeConcern/writeconcern-bsonserialize-004.phpt
rename to mongodb-2.1.4/tests/writeConcern/writeconcern-bsonserialize-004.phpt
diff --git a/mongodb-2.1.1/tests/writeConcern/writeconcern-constants.phpt b/mongodb-2.1.4/tests/writeConcern/writeconcern-constants.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeConcern/writeconcern-constants.phpt
rename to mongodb-2.1.4/tests/writeConcern/writeconcern-constants.phpt
diff --git a/mongodb-2.1.1/tests/writeConcern/writeconcern-ctor-001.phpt b/mongodb-2.1.4/tests/writeConcern/writeconcern-ctor-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeConcern/writeconcern-ctor-001.phpt
rename to mongodb-2.1.4/tests/writeConcern/writeconcern-ctor-001.phpt
diff --git a/mongodb-2.1.1/tests/writeConcern/writeconcern-ctor-002.phpt b/mongodb-2.1.4/tests/writeConcern/writeconcern-ctor-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeConcern/writeconcern-ctor-002.phpt
rename to mongodb-2.1.4/tests/writeConcern/writeconcern-ctor-002.phpt
diff --git a/mongodb-2.1.1/tests/writeConcern/writeconcern-ctor_error-001.phpt b/mongodb-2.1.4/tests/writeConcern/writeconcern-ctor_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeConcern/writeconcern-ctor_error-001.phpt
rename to mongodb-2.1.4/tests/writeConcern/writeconcern-ctor_error-001.phpt
diff --git a/mongodb-2.1.1/tests/writeConcern/writeconcern-ctor_error-002.phpt b/mongodb-2.1.4/tests/writeConcern/writeconcern-ctor_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeConcern/writeconcern-ctor_error-002.phpt
rename to mongodb-2.1.4/tests/writeConcern/writeconcern-ctor_error-002.phpt
diff --git a/mongodb-2.1.1/tests/writeConcern/writeconcern-ctor_error-003.phpt b/mongodb-2.1.4/tests/writeConcern/writeconcern-ctor_error-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeConcern/writeconcern-ctor_error-003.phpt
rename to mongodb-2.1.4/tests/writeConcern/writeconcern-ctor_error-003.phpt
diff --git a/mongodb-2.1.1/tests/writeConcern/writeconcern-ctor_error-004.phpt b/mongodb-2.1.4/tests/writeConcern/writeconcern-ctor_error-004.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeConcern/writeconcern-ctor_error-004.phpt
rename to mongodb-2.1.4/tests/writeConcern/writeconcern-ctor_error-004.phpt
diff --git a/mongodb-2.1.1/tests/writeConcern/writeconcern-ctor_error-005.phpt b/mongodb-2.1.4/tests/writeConcern/writeconcern-ctor_error-005.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeConcern/writeconcern-ctor_error-005.phpt
rename to mongodb-2.1.4/tests/writeConcern/writeconcern-ctor_error-005.phpt
diff --git a/mongodb-2.1.1/tests/writeConcern/writeconcern-debug-001.phpt b/mongodb-2.1.4/tests/writeConcern/writeconcern-debug-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeConcern/writeconcern-debug-001.phpt
rename to mongodb-2.1.4/tests/writeConcern/writeconcern-debug-001.phpt
diff --git a/mongodb-2.1.1/tests/writeConcern/writeconcern-debug-002.phpt b/mongodb-2.1.4/tests/writeConcern/writeconcern-debug-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeConcern/writeconcern-debug-002.phpt
rename to mongodb-2.1.4/tests/writeConcern/writeconcern-debug-002.phpt
diff --git a/mongodb-2.1.1/tests/writeConcern/writeconcern-debug-003.phpt b/mongodb-2.1.4/tests/writeConcern/writeconcern-debug-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeConcern/writeconcern-debug-003.phpt
rename to mongodb-2.1.4/tests/writeConcern/writeconcern-debug-003.phpt
diff --git a/mongodb-2.1.1/tests/writeConcern/writeconcern-getjournal-001.phpt b/mongodb-2.1.4/tests/writeConcern/writeconcern-getjournal-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeConcern/writeconcern-getjournal-001.phpt
rename to mongodb-2.1.4/tests/writeConcern/writeconcern-getjournal-001.phpt
diff --git a/mongodb-2.1.1/tests/writeConcern/writeconcern-getw-001.phpt b/mongodb-2.1.4/tests/writeConcern/writeconcern-getw-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeConcern/writeconcern-getw-001.phpt
rename to mongodb-2.1.4/tests/writeConcern/writeconcern-getw-001.phpt
diff --git a/mongodb-2.1.1/tests/writeConcern/writeconcern-getwtimeout-001.phpt b/mongodb-2.1.4/tests/writeConcern/writeconcern-getwtimeout-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeConcern/writeconcern-getwtimeout-001.phpt
rename to mongodb-2.1.4/tests/writeConcern/writeconcern-getwtimeout-001.phpt
diff --git a/mongodb-2.1.1/tests/writeConcern/writeconcern-getwtimeout-002.phpt b/mongodb-2.1.4/tests/writeConcern/writeconcern-getwtimeout-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeConcern/writeconcern-getwtimeout-002.phpt
rename to mongodb-2.1.4/tests/writeConcern/writeconcern-getwtimeout-002.phpt
diff --git a/mongodb-2.1.1/tests/writeConcern/writeconcern-isdefault-001.phpt b/mongodb-2.1.4/tests/writeConcern/writeconcern-isdefault-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeConcern/writeconcern-isdefault-001.phpt
rename to mongodb-2.1.4/tests/writeConcern/writeconcern-isdefault-001.phpt
diff --git a/mongodb-2.1.1/tests/writeConcern/writeconcern-serialization-002.phpt b/mongodb-2.1.4/tests/writeConcern/writeconcern-serialization-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeConcern/writeconcern-serialization-002.phpt
rename to mongodb-2.1.4/tests/writeConcern/writeconcern-serialization-002.phpt
diff --git a/mongodb-2.1.1/tests/writeConcern/writeconcern-serialization_error-002.phpt b/mongodb-2.1.4/tests/writeConcern/writeconcern-serialization_error-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeConcern/writeconcern-serialization_error-002.phpt
rename to mongodb-2.1.4/tests/writeConcern/writeconcern-serialization_error-002.phpt
diff --git a/mongodb-2.1.1/tests/writeConcern/writeconcern-set_state-001.phpt b/mongodb-2.1.4/tests/writeConcern/writeconcern-set_state-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeConcern/writeconcern-set_state-001.phpt
rename to mongodb-2.1.4/tests/writeConcern/writeconcern-set_state-001.phpt
diff --git a/mongodb-2.1.1/tests/writeConcern/writeconcern-set_state_error-001.phpt b/mongodb-2.1.4/tests/writeConcern/writeconcern-set_state_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeConcern/writeconcern-set_state_error-001.phpt
rename to mongodb-2.1.4/tests/writeConcern/writeconcern-set_state_error-001.phpt
diff --git a/mongodb-2.1.1/tests/writeConcern/writeconcern-var_export-001.phpt b/mongodb-2.1.4/tests/writeConcern/writeconcern-var_export-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeConcern/writeconcern-var_export-001.phpt
rename to mongodb-2.1.4/tests/writeConcern/writeconcern-var_export-001.phpt
diff --git a/mongodb-2.1.1/tests/writeConcern/writeconcern_error-001.phpt b/mongodb-2.1.4/tests/writeConcern/writeconcern_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeConcern/writeconcern_error-001.phpt
rename to mongodb-2.1.4/tests/writeConcern/writeconcern_error-001.phpt
diff --git a/mongodb-2.1.1/tests/writeConcernError/writeconcernerror-debug-001.phpt b/mongodb-2.1.4/tests/writeConcernError/writeconcernerror-debug-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeConcernError/writeconcernerror-debug-001.phpt
rename to mongodb-2.1.4/tests/writeConcernError/writeconcernerror-debug-001.phpt
diff --git a/mongodb-2.1.1/tests/writeConcernError/writeconcernerror-getcode-001.phpt b/mongodb-2.1.4/tests/writeConcernError/writeconcernerror-getcode-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeConcernError/writeconcernerror-getcode-001.phpt
rename to mongodb-2.1.4/tests/writeConcernError/writeconcernerror-getcode-001.phpt
diff --git a/mongodb-2.1.1/tests/writeConcernError/writeconcernerror-getinfo-001.phpt b/mongodb-2.1.4/tests/writeConcernError/writeconcernerror-getinfo-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeConcernError/writeconcernerror-getinfo-001.phpt
rename to mongodb-2.1.4/tests/writeConcernError/writeconcernerror-getinfo-001.phpt
diff --git a/mongodb-2.1.1/tests/writeConcernError/writeconcernerror-getmessage-001.phpt b/mongodb-2.1.4/tests/writeConcernError/writeconcernerror-getmessage-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeConcernError/writeconcernerror-getmessage-001.phpt
rename to mongodb-2.1.4/tests/writeConcernError/writeconcernerror-getmessage-001.phpt
diff --git a/mongodb-2.1.1/tests/writeConcernError/writeconcernerror_error-001.phpt b/mongodb-2.1.4/tests/writeConcernError/writeconcernerror_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeConcernError/writeconcernerror_error-001.phpt
rename to mongodb-2.1.4/tests/writeConcernError/writeconcernerror_error-001.phpt
diff --git a/mongodb-2.1.1/tests/writeError/writeerror-debug-001.phpt b/mongodb-2.1.4/tests/writeError/writeerror-debug-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeError/writeerror-debug-001.phpt
rename to mongodb-2.1.4/tests/writeError/writeerror-debug-001.phpt
diff --git a/mongodb-2.1.1/tests/writeError/writeerror-getCode-001.phpt b/mongodb-2.1.4/tests/writeError/writeerror-getCode-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeError/writeerror-getCode-001.phpt
rename to mongodb-2.1.4/tests/writeError/writeerror-getCode-001.phpt
diff --git a/mongodb-2.1.1/tests/writeError/writeerror-getIndex-001.phpt b/mongodb-2.1.4/tests/writeError/writeerror-getIndex-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeError/writeerror-getIndex-001.phpt
rename to mongodb-2.1.4/tests/writeError/writeerror-getIndex-001.phpt
diff --git a/mongodb-2.1.1/tests/writeError/writeerror-getInfo-001.phpt b/mongodb-2.1.4/tests/writeError/writeerror-getInfo-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeError/writeerror-getInfo-001.phpt
rename to mongodb-2.1.4/tests/writeError/writeerror-getInfo-001.phpt
diff --git a/mongodb-2.1.1/tests/writeError/writeerror-getInfo-002.phpt b/mongodb-2.1.4/tests/writeError/writeerror-getInfo-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeError/writeerror-getInfo-002.phpt
rename to mongodb-2.1.4/tests/writeError/writeerror-getInfo-002.phpt
diff --git a/mongodb-2.1.1/tests/writeError/writeerror-getMessage-001.phpt b/mongodb-2.1.4/tests/writeError/writeerror-getMessage-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeError/writeerror-getMessage-001.phpt
rename to mongodb-2.1.4/tests/writeError/writeerror-getMessage-001.phpt
diff --git a/mongodb-2.1.1/tests/writeError/writeerror_error-001.phpt b/mongodb-2.1.4/tests/writeError/writeerror_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeError/writeerror_error-001.phpt
rename to mongodb-2.1.4/tests/writeError/writeerror_error-001.phpt
diff --git a/mongodb-2.1.1/tests/writeResult/bug0671-003.phpt b/mongodb-2.1.4/tests/writeResult/bug0671-003.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeResult/bug0671-003.phpt
rename to mongodb-2.1.4/tests/writeResult/bug0671-003.phpt
diff --git a/mongodb-2.1.1/tests/writeResult/writeresult-debug-001.phpt b/mongodb-2.1.4/tests/writeResult/writeresult-debug-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeResult/writeresult-debug-001.phpt
rename to mongodb-2.1.4/tests/writeResult/writeresult-debug-001.phpt
diff --git a/mongodb-2.1.1/tests/writeResult/writeresult-debug-002.phpt b/mongodb-2.1.4/tests/writeResult/writeresult-debug-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeResult/writeresult-debug-002.phpt
rename to mongodb-2.1.4/tests/writeResult/writeresult-debug-002.phpt
diff --git a/mongodb-2.1.1/tests/writeResult/writeresult-getErrorReplies-001.phpt b/mongodb-2.1.4/tests/writeResult/writeresult-getErrorReplies-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeResult/writeresult-getErrorReplies-001.phpt
rename to mongodb-2.1.4/tests/writeResult/writeresult-getErrorReplies-001.phpt
diff --git a/mongodb-2.1.1/tests/writeResult/writeresult-getdeletedcount-001.phpt b/mongodb-2.1.4/tests/writeResult/writeresult-getdeletedcount-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeResult/writeresult-getdeletedcount-001.phpt
rename to mongodb-2.1.4/tests/writeResult/writeresult-getdeletedcount-001.phpt
diff --git a/mongodb-2.1.1/tests/writeResult/writeresult-getdeletedcount-002.phpt b/mongodb-2.1.4/tests/writeResult/writeresult-getdeletedcount-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeResult/writeresult-getdeletedcount-002.phpt
rename to mongodb-2.1.4/tests/writeResult/writeresult-getdeletedcount-002.phpt
diff --git a/mongodb-2.1.1/tests/writeResult/writeresult-getinsertedcount-001.phpt b/mongodb-2.1.4/tests/writeResult/writeresult-getinsertedcount-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeResult/writeresult-getinsertedcount-001.phpt
rename to mongodb-2.1.4/tests/writeResult/writeresult-getinsertedcount-001.phpt
diff --git a/mongodb-2.1.1/tests/writeResult/writeresult-getinsertedcount-002.phpt b/mongodb-2.1.4/tests/writeResult/writeresult-getinsertedcount-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeResult/writeresult-getinsertedcount-002.phpt
rename to mongodb-2.1.4/tests/writeResult/writeresult-getinsertedcount-002.phpt
diff --git a/mongodb-2.1.1/tests/writeResult/writeresult-getmatchedcount-001.phpt b/mongodb-2.1.4/tests/writeResult/writeresult-getmatchedcount-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeResult/writeresult-getmatchedcount-001.phpt
rename to mongodb-2.1.4/tests/writeResult/writeresult-getmatchedcount-001.phpt
diff --git a/mongodb-2.1.1/tests/writeResult/writeresult-getmatchedcount-002.phpt b/mongodb-2.1.4/tests/writeResult/writeresult-getmatchedcount-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeResult/writeresult-getmatchedcount-002.phpt
rename to mongodb-2.1.4/tests/writeResult/writeresult-getmatchedcount-002.phpt
diff --git a/mongodb-2.1.1/tests/writeResult/writeresult-getmodifiedcount-001.phpt b/mongodb-2.1.4/tests/writeResult/writeresult-getmodifiedcount-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeResult/writeresult-getmodifiedcount-001.phpt
rename to mongodb-2.1.4/tests/writeResult/writeresult-getmodifiedcount-001.phpt
diff --git a/mongodb-2.1.1/tests/writeResult/writeresult-getmodifiedcount-002.phpt b/mongodb-2.1.4/tests/writeResult/writeresult-getmodifiedcount-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeResult/writeresult-getmodifiedcount-002.phpt
rename to mongodb-2.1.4/tests/writeResult/writeresult-getmodifiedcount-002.phpt
diff --git a/mongodb-2.1.1/tests/writeResult/writeresult-getserver-001.phpt b/mongodb-2.1.4/tests/writeResult/writeresult-getserver-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeResult/writeresult-getserver-001.phpt
rename to mongodb-2.1.4/tests/writeResult/writeresult-getserver-001.phpt
diff --git a/mongodb-2.1.1/tests/writeResult/writeresult-getupsertedcount-001.phpt b/mongodb-2.1.4/tests/writeResult/writeresult-getupsertedcount-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeResult/writeresult-getupsertedcount-001.phpt
rename to mongodb-2.1.4/tests/writeResult/writeresult-getupsertedcount-001.phpt
diff --git a/mongodb-2.1.1/tests/writeResult/writeresult-getupsertedcount-002.phpt b/mongodb-2.1.4/tests/writeResult/writeresult-getupsertedcount-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeResult/writeresult-getupsertedcount-002.phpt
rename to mongodb-2.1.4/tests/writeResult/writeresult-getupsertedcount-002.phpt
diff --git a/mongodb-2.1.1/tests/writeResult/writeresult-getupsertedids-001.phpt b/mongodb-2.1.4/tests/writeResult/writeresult-getupsertedids-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeResult/writeresult-getupsertedids-001.phpt
rename to mongodb-2.1.4/tests/writeResult/writeresult-getupsertedids-001.phpt
diff --git a/mongodb-2.1.1/tests/writeResult/writeresult-getupsertedids-002.phpt b/mongodb-2.1.4/tests/writeResult/writeresult-getupsertedids-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeResult/writeresult-getupsertedids-002.phpt
rename to mongodb-2.1.4/tests/writeResult/writeresult-getupsertedids-002.phpt
diff --git a/mongodb-2.1.1/tests/writeResult/writeresult-getwriteconcernerror-001.phpt b/mongodb-2.1.4/tests/writeResult/writeresult-getwriteconcernerror-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeResult/writeresult-getwriteconcernerror-001.phpt
rename to mongodb-2.1.4/tests/writeResult/writeresult-getwriteconcernerror-001.phpt
diff --git a/mongodb-2.1.1/tests/writeResult/writeresult-getwriteconcernerror-002.phpt b/mongodb-2.1.4/tests/writeResult/writeresult-getwriteconcernerror-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeResult/writeresult-getwriteconcernerror-002.phpt
rename to mongodb-2.1.4/tests/writeResult/writeresult-getwriteconcernerror-002.phpt
diff --git a/mongodb-2.1.1/tests/writeResult/writeresult-getwriteerrors-001.phpt b/mongodb-2.1.4/tests/writeResult/writeresult-getwriteerrors-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeResult/writeresult-getwriteerrors-001.phpt
rename to mongodb-2.1.4/tests/writeResult/writeresult-getwriteerrors-001.phpt
diff --git a/mongodb-2.1.1/tests/writeResult/writeresult-getwriteerrors-002.phpt b/mongodb-2.1.4/tests/writeResult/writeresult-getwriteerrors-002.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeResult/writeresult-getwriteerrors-002.phpt
rename to mongodb-2.1.4/tests/writeResult/writeresult-getwriteerrors-002.phpt
diff --git a/mongodb-2.1.1/tests/writeResult/writeresult-isacknowledged-001.phpt b/mongodb-2.1.4/tests/writeResult/writeresult-isacknowledged-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeResult/writeresult-isacknowledged-001.phpt
rename to mongodb-2.1.4/tests/writeResult/writeresult-isacknowledged-001.phpt
diff --git a/mongodb-2.1.1/tests/writeResult/writeresult_error-001.phpt b/mongodb-2.1.4/tests/writeResult/writeresult_error-001.phpt
similarity index 100%
rename from mongodb-2.1.1/tests/writeResult/writeresult_error-001.phpt
rename to mongodb-2.1.4/tests/writeResult/writeresult_error-001.phpt
diff --git a/package.xml b/package.xml
index 0dc80bd3..13c9c212 100644
--- a/package.xml
+++ b/package.xml
@@ -1,3180 +1,3179 @@
<?xml version="1.0" encoding="UTF-8"?>
<package packagerversion="1.10.16" version="2.1" xmlns="http://pear.php.net/dtd/package-2.1" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0 http://pear.php.net/dtd/tasks-1.0.xsd http://pear.php.net/dtd/package-2.1 http://pear.php.net/dtd/package-2.1.xsd">
<name>mongodb</name>
<channel>pecl.php.net</channel>
<summary>MongoDB driver for PHP</summary>
<description>The purpose of this driver is to provide exceptionally thin glue between MongoDB
and PHP, implementing only fundamental and performance-critical components
necessary to build a fully-functional MongoDB driver.</description>
<lead>
<name>Andreas Braun</name>
<user>alcaeus</user>
<email>alcaeus@php.net</email>
<active>yes</active>
</lead>
<lead>
<name>Jeremy Mikola</name>
<user>jmikola</user>
<email>jmikola@php.net</email>
<active>yes</active>
</lead>
<lead>
<name>Derick Rethans</name>
<user>derick</user>
<email>derick@php.net</email>
<active>no</active>
</lead>
<lead>
<name>Hannes Magnusson</name>
<user>bjori</user>
<email>bjori@php.net</email>
<active>no</active>
</lead>
<developer>
<name>Katherine Walker</name>
<user>kvwalker</user>
<email>kvwalker@php.net</email>
<active>no</active>
</developer>
- <date>2025-06-13</date>
- <time>12:43:33</time>
+ <date>2025-10-08</date>
+ <time>15:29:35</time>
<version>
- <release>2.1.1</release>
- <api>2.1.1</api>
+ <release>2.1.4</release>
+ <api>2.1.4</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="http://www.apache.org/licenses/LICENSE-2.0">Apache License</license>
<notes>
## What&apos;s Changed
-* Ignore branches that are no longer maintained when merging up by @alcaeus in https://github.com/mongodb/mongo-php-driver/pull/1838
-* PHPC-2593: Update libmongoc to 1.30.5 by @alcaeus in https://github.com/mongodb/mongo-php-driver/pull/1841
+* PHPC-2637: Update to libmongoc 1.30.6 (#1882) by @alcaeus in https://github.com/mongodb/mongo-php-driver/pull/1887
-**Full Changelog**: https://github.com/mongodb/mongo-php-driver/compare/2.1.0...2.1.1
+**Full Changelog**: https://github.com/mongodb/mongo-php-driver/compare/2.1.3...2.1.4
</notes>
<contents>
<dir name="/">
<file md5sum="24efc529aa9f2b40d80cbec3bb635d01" name="scripts/autotools/libbson/CheckHeaders.m4" role="src" />
<file md5sum="60d085042feccb8262e46f9e21b547bf" name="scripts/autotools/libbson/Endian.m4" role="src" />
<file md5sum="770f8b666d42fecd12a7f6bc2c606db4" name="scripts/autotools/libbson/FindDependencies.m4" role="src" />
<file md5sum="b4142eadd77387b28cbf504dd0df8d6f" name="scripts/autotools/libbson/Versions.m4" role="src" />
<file md5sum="4eca880cb796d684de0f012b575bae59" name="scripts/autotools/libmongoc/CheckCompression.m4" role="src" />
<file md5sum="1a10959aa94a21fb9b92ff6f0561592d" name="scripts/autotools/libmongoc/CheckResolv.m4" role="src" />
<file md5sum="ad604ffca9c33396b1fffb1307b8b835" name="scripts/autotools/libmongoc/CheckSSL.m4" role="src" />
<file md5sum="1ced534ba9efa999b90af693ca3ffd53" name="scripts/autotools/libmongoc/CheckSasl.m4" role="src" />
<file md5sum="184de133ad771f2774d4a36028840e30" name="scripts/autotools/libmongoc/CheckUtf8Proc.m4" role="src" />
<file md5sum="5a6f2f36b18bb25a7ec64d3ca3741fff" name="scripts/autotools/libmongoc/Endian.m4" role="src" />
<file md5sum="f718cd36a36d0662fbcfe5c0ed13787f" name="scripts/autotools/libmongoc/FindDependencies.m4" role="src" />
<file md5sum="e8bc1c579ade87da9492ed18b5c371f5" name="scripts/autotools/libmongoc/Versions.m4" role="src" />
<file md5sum="906a71d7858713742f5febc043b9b51b" name="scripts/autotools/libmongocrypt/CheckSSL.m4" role="src" />
<file md5sum="ea0539cf785e89dcb591dd13be2778d1" name="scripts/autotools/libmongocrypt/Endian.m4" role="src" />
<file md5sum="471ed55586aaeef30e1d54a235133735" name="scripts/autotools/libmongocrypt/Version.m4" role="src" />
<file md5sum="dfcf4bbea8efeabaaaf41d09136fb0db" name="scripts/autotools/m4/ax_check_compile_flag.m4" role="src" />
<file md5sum="7a5b33114c4bcb9471c262b85fdf465d" name="scripts/autotools/m4/ax_prototype.m4" role="src" />
<file md5sum="458cfc05b428a2d9fa371909f351fe0a" name="scripts/autotools/m4/ax_prototype_accept.m4" role="src" />
<file md5sum="84854ab762c692762409cf62bec45ff1" name="scripts/autotools/m4/ax_pthread.m4" role="src" />
<file md5sum="a42532113a4386c57f66a5745057134a" name="scripts/autotools/m4/php_mongodb.m4" role="src" />
<file md5sum="53904a5c5ac602365b8de11970cee178" name="scripts/autotools/m4/pkg.m4" role="src" />
<file md5sum="bd74333dc812be6b9dc9e4d7e0aae2c2" name="scripts/autotools/CheckCompiler.m4" role="src" />
<file md5sum="51c4dd11458ad655113dcdb101640b49" name="scripts/autotools/CheckHost.m4" role="src" />
<file md5sum="1b9823e975ca8b15d1880cda2ba57631" name="scripts/autotools/PlatformFlags.m4" role="src" />
<file md5sum="225af6da43bfe48a5afd9227433921a9" name="scripts/clang-format.sh" role="test" />
<file md5sum="af1a3259308551f3565b2409d56ffe41" name="scripts/convert-bson-corpus-tests.php" role="test" />
<file md5sum="1896ef7656da50ca3e89aae510e31ece" name="scripts/generate-functionmap.php" role="test" />
<file md5sum="a985e47fa56ac12e3675753aab892745" name="scripts/update-sbom.sh" role="test" />
<file md5sum="451301c286d16418c08959c1fa893311" name="scripts/update-submodule-sources.php" role="test" />
<file md5sum="70d90ded9748980e2c4f9b55a8459e28" name="src/BSON/Binary.c" role="src" />
<file md5sum="96a84aca20ef169cf4473dc9bb53b81d" name="src/BSON/Binary.h" role="src" />
<file md5sum="140430cee2b73c707e947ae5b22a84e6" name="src/BSON/BinaryInterface.c" role="src" />
<file md5sum="615bf068e6fb21a86b7e8472e6a51838" name="src/BSON/BinaryInterface_arginfo.h" role="src" />
<file md5sum="fca4877bc802cc7aa9b9e73ec747fa2a" name="src/BSON/Binary_arginfo.h" role="src" />
<file md5sum="ccf3606e1cd0b55561a8e827a44efdea" name="src/BSON/DBPointer.c" role="src" />
<file md5sum="0745d03e3664b9fb84fa556353b24841" name="src/BSON/DBPointer.h" role="src" />
<file md5sum="9cb34d66ecee52671668939fd14d06c0" name="src/BSON/DBPointer_arginfo.h" role="src" />
<file md5sum="5293df88b82ca286fe3cbe081308ee9f" name="src/BSON/Decimal128.c" role="src" />
<file md5sum="2dcc8102fcb8bcb96e9b7705d930d525" name="src/BSON/Decimal128.h" role="src" />
<file md5sum="932146fd39bb94506a94b9d1055d8d5e" name="src/BSON/Decimal128Interface.c" role="src" />
<file md5sum="2b5955e6d7c92402d891bb4ff067020a" name="src/BSON/Decimal128Interface_arginfo.h" role="src" />
<file md5sum="6e1dab52f6a8210543280b2b3fe0f566" name="src/BSON/Decimal128_arginfo.h" role="src" />
<file md5sum="c40257f7a26b31737f8e150e6cbc579a" name="src/BSON/Document.c" role="src" />
<file md5sum="4340648ee43a353242289e937fc1a70d" name="src/BSON/Document.h" role="src" />
<file md5sum="c2f7612d1d20db1252477522a68ff2a5" name="src/BSON/Document_arginfo.h" role="src" />
<file md5sum="4e5d0fdcbeb7cc742e926ab2eca684c6" name="src/BSON/Int64.c" role="src" />
<file md5sum="e7f830581fc0609f9ecac5a028704dc5" name="src/BSON/Int64.h" role="src" />
<file md5sum="6c8ea06c3ebaf747e8b9755555c27153" name="src/BSON/Int64_arginfo.h" role="src" />
<file md5sum="cafa84d6a8b4cfedfd560b54b65e47a5" name="src/BSON/Iterator.c" role="src" />
<file md5sum="6fe5e535f5807dc1ff579e4636e2bd44" name="src/BSON/Iterator.h" role="src" />
<file md5sum="6428a01ea3b4f0587c640bfe830f9a3b" name="src/BSON/Iterator_arginfo.h" role="src" />
<file md5sum="583bccab90094bf02c1fd6b0c624f967" name="src/BSON/Javascript.c" role="src" />
<file md5sum="09fab2ce8b26eae7d37d8bde6c85b957" name="src/BSON/Javascript.h" role="src" />
<file md5sum="dd63c870cef0c3dbdbedee66c0ea64af" name="src/BSON/JavascriptInterface.c" role="src" />
<file md5sum="72f8bab1abfa0f3dc2e9d3bccfa48a5e" name="src/BSON/JavascriptInterface_arginfo.h" role="src" />
<file md5sum="29d302e856b44b1f195962ab9573abbc" name="src/BSON/Javascript_arginfo.h" role="src" />
<file md5sum="b6ea995ab15b23d7689de88c2d09aee9" name="src/BSON/MaxKey.c" role="src" />
<file md5sum="2f1256f938367599db37a5dab55757ad" name="src/BSON/MaxKeyInterface.c" role="src" />
<file md5sum="229ca0a23e45c5a43c78ac5676e9334b" name="src/BSON/MaxKeyInterface_arginfo.h" role="src" />
<file md5sum="aa6a97abf68bc42fa53993c3021329f1" name="src/BSON/MaxKey_arginfo.h" role="src" />
<file md5sum="426c8d219806d6d8722410423536531f" name="src/BSON/MinKey.c" role="src" />
<file md5sum="cc134ac10c34aecb378031fba680af5f" name="src/BSON/MinKeyInterface.c" role="src" />
<file md5sum="c50b7b5a5f41d0c7ba310afa8e9d2cca" name="src/BSON/MinKeyInterface_arginfo.h" role="src" />
<file md5sum="a51ff9560855d30af250231c6c4c5a5d" name="src/BSON/MinKey_arginfo.h" role="src" />
<file md5sum="2047d925644792a76e7dba351779c979" name="src/BSON/ObjectId.c" role="src" />
<file md5sum="f9a8a4813b2e1973b203f25e23ce30cf" name="src/BSON/ObjectId.h" role="src" />
<file md5sum="ec38e7f2ad73cbd2d911b6e3468d1dbf" name="src/BSON/ObjectIdInterface.c" role="src" />
<file md5sum="43b8303665cfd2239fff67e924b2c3dc" name="src/BSON/ObjectIdInterface_arginfo.h" role="src" />
<file md5sum="e5023feab66e7bd85a4ae70df1364171" name="src/BSON/ObjectId_arginfo.h" role="src" />
<file md5sum="6417d5198bb139d90bb3bf8998c52a79" name="src/BSON/PackedArray.c" role="src" />
<file md5sum="e3fe9ef40cba4bdb8fa9ca1527a9bbb9" name="src/BSON/PackedArray.h" role="src" />
<file md5sum="f9d2e1ae395222cebba1fc1109d60202" name="src/BSON/PackedArray_arginfo.h" role="src" />
<file md5sum="3368204fd3e6b5cfc47055628a16001a" name="src/BSON/Persistable.c" role="src" />
<file md5sum="562c6a12bbffaf8fe7b78a91ee8bd640" name="src/BSON/Persistable_arginfo.h" role="src" />
<file md5sum="182e49fa4777bf1105c0c7645ac53f25" name="src/BSON/Regex.c" role="src" />
<file md5sum="66c233d3043e3c4f9f236ebddf31d4c5" name="src/BSON/Regex.h" role="src" />
<file md5sum="15869469bd3fbd16fb2301e23d987f4c" name="src/BSON/RegexInterface.c" role="src" />
<file md5sum="ecb4376a9da86fbf6df96b42dc7f8f7b" name="src/BSON/RegexInterface_arginfo.h" role="src" />
<file md5sum="0d5ee77e43326a0cd129949b66c3061b" name="src/BSON/Regex_arginfo.h" role="src" />
<file md5sum="964a8d1b50c09d4bfc4fa2a255839614" name="src/BSON/Serializable.c" role="src" />
<file md5sum="9401a52f4f5d655d7fd715bf2b3456f1" name="src/BSON/Serializable_arginfo.h" role="src" />
<file md5sum="c624ac6aaa6b6ddd72d8e40a3d4a4bf8" name="src/BSON/Symbol.c" role="src" />
<file md5sum="c1bb16783a8b4ff2c16e572322f7a2f8" name="src/BSON/Symbol.h" role="src" />
<file md5sum="7436b8df6dc337cd2b0c453ffab6556b" name="src/BSON/Symbol_arginfo.h" role="src" />
<file md5sum="fcf8d298b4a67a6dc7062cbb4d14971e" name="src/BSON/Timestamp.c" role="src" />
<file md5sum="3ed25163fa717ae35ffa1b009e440e0d" name="src/BSON/Timestamp.h" role="src" />
<file md5sum="37a29721bcf1a5ed70d0a78be184859d" name="src/BSON/TimestampInterface.c" role="src" />
<file md5sum="9de1eac9b9ef934bb8e5995f651d9e9d" name="src/BSON/TimestampInterface_arginfo.h" role="src" />
<file md5sum="9d9e568107e947830f4ea6f407d2520b" name="src/BSON/Timestamp_arginfo.h" role="src" />
<file md5sum="0025122686849ed17e300e449c60d374" name="src/BSON/Type.c" role="src" />
<file md5sum="572e0a60c5ffa75e4478f626496e2b58" name="src/BSON/Type_arginfo.h" role="src" />
<file md5sum="0a1f6b9d5799b5805d9ee61555e5f619" name="src/BSON/UTCDateTime.c" role="src" />
<file md5sum="c898dbddca6b5831a5a971eca47d97e0" name="src/BSON/UTCDateTime.h" role="src" />
<file md5sum="5751c9b49de705cfb8a4ad2a9a1c46d3" name="src/BSON/UTCDateTimeInterface.c" role="src" />
<file md5sum="06f8e0a5dc9447b4af11d44976071ef1" name="src/BSON/UTCDateTimeInterface_arginfo.h" role="src" />
<file md5sum="cb292dc0d73a257404154527f2a14f03" name="src/BSON/UTCDateTime_arginfo.h" role="src" />
<file md5sum="abf489fd3bce852dbc932e9075d41d93" name="src/BSON/Undefined.c" role="src" />
<file md5sum="62d1e3a5bd05311f996f9196f2041ed5" name="src/BSON/Undefined_arginfo.h" role="src" />
<file md5sum="1d284ebbe81aa76609d69dee81f33982" name="src/BSON/Unserializable.c" role="src" />
<file md5sum="ef4bd5f9e77a3615af014893ed3e392c" name="src/BSON/Unserializable_arginfo.h" role="src" />
<file md5sum="ada7cd6c4969924bbcbe34b99df74782" name="src/MongoDB/Exception/AuthenticationException.c" role="src" />
<file md5sum="ef5f22288d29aa9f74373ffb2f103d3d" name="src/MongoDB/Exception/AuthenticationException_arginfo.h" role="src" />
<file md5sum="78843d88942c014cfa1918d1a7734499" name="src/MongoDB/Exception/BulkWriteCommandException.c" role="src" />
<file md5sum="04ca650f0c13d583fbe096a2bc0c46f4" name="src/MongoDB/Exception/BulkWriteCommandException.h" role="src" />
<file md5sum="dedb0641f7ac7aaa36fe2eb810781090" name="src/MongoDB/Exception/BulkWriteCommandException_arginfo.h" role="src" />
<file md5sum="d7036e1fd07bba73d88ed5fea23a542d" name="src/MongoDB/Exception/BulkWriteException.c" role="src" />
<file md5sum="9a6f9ff9d8a8a13c2160a0c8d7c6c539" name="src/MongoDB/Exception/BulkWriteException_arginfo.h" role="src" />
<file md5sum="518e6c402e2a1301f3075bd4e335d775" name="src/MongoDB/Exception/CommandException.c" role="src" />
<file md5sum="dfac42bb92a0b3d162efbea9b875245f" name="src/MongoDB/Exception/CommandException_arginfo.h" role="src" />
<file md5sum="7e4cacf39bd59ef22aa8f843a5d02f33" name="src/MongoDB/Exception/ConnectionException.c" role="src" />
<file md5sum="7f481853a557e84129650e82b06b05ed" name="src/MongoDB/Exception/ConnectionException_arginfo.h" role="src" />
<file md5sum="72559991c8f2967e11089628888eb6fa" name="src/MongoDB/Exception/ConnectionTimeoutException.c" role="src" />
<file md5sum="2804995b9686d4ef4aa5635606917b4c" name="src/MongoDB/Exception/ConnectionTimeoutException_arginfo.h" role="src" />
<file md5sum="836faa9020a44c0464a8a490ee043a9b" name="src/MongoDB/Exception/EncryptionException.c" role="src" />
<file md5sum="f1a1fcac2761a57ad97b256f92960758" name="src/MongoDB/Exception/EncryptionException_arginfo.h" role="src" />
<file md5sum="65236372441308893b51ef09d5163cbd" name="src/MongoDB/Exception/Exception.c" role="src" />
<file md5sum="fd01cbf8ddb8ceb410c8736073988e17" name="src/MongoDB/Exception/Exception_arginfo.h" role="src" />
<file md5sum="9c2991b16eb495697356d81d04d7b53f" name="src/MongoDB/Exception/ExecutionTimeoutException.c" role="src" />
<file md5sum="dd60473d14ebb6ad9a81d51af8db55ad" name="src/MongoDB/Exception/ExecutionTimeoutException_arginfo.h" role="src" />
<file md5sum="cf7cc2e4c99d485a3e454293b9085f4d" name="src/MongoDB/Exception/InvalidArgumentException.c" role="src" />
<file md5sum="9edc79e63460a58f353b3487a184aa2b" name="src/MongoDB/Exception/InvalidArgumentException_arginfo.h" role="src" />
<file md5sum="2ae64f3b95befa7ca0ea6e21a1689604" name="src/MongoDB/Exception/LogicException.c" role="src" />
<file md5sum="7bb0f246fa19568e509ed49fa5ccc827" name="src/MongoDB/Exception/LogicException_arginfo.h" role="src" />
<file md5sum="531d15ce92a69cae1b135a22bbc769d9" name="src/MongoDB/Exception/RuntimeException.c" role="src" />
<file md5sum="eb8095dc10cb3011f006f2f8627fa6c0" name="src/MongoDB/Exception/RuntimeException_arginfo.h" role="src" />
<file md5sum="7cae56b52a117577836a5904429b3490" name="src/MongoDB/Exception/ServerException.c" role="src" />
<file md5sum="af59c4426c08c1b91e35614d888c5b47" name="src/MongoDB/Exception/ServerException_arginfo.h" role="src" />
<file md5sum="020b2337ffb4ba6ff4dc30fe2a9abace" name="src/MongoDB/Exception/UnexpectedValueException.c" role="src" />
<file md5sum="37cb3fef7c5b20aa035861ebe0cb44fe" name="src/MongoDB/Exception/UnexpectedValueException_arginfo.h" role="src" />
<file md5sum="b70104d39dce8c217c3f11b8151f714e" name="src/MongoDB/Monitoring/CommandFailedEvent.c" role="src" />
<file md5sum="82774d36bd1931760a7965555a8cd4b5" name="src/MongoDB/Monitoring/CommandFailedEvent_arginfo.h" role="src" />
<file md5sum="3ed3f0607620cee212a6784aded761ed" name="src/MongoDB/Monitoring/CommandStartedEvent.c" role="src" />
<file md5sum="04c4b28a53c52b49bb35037a4ba70004" name="src/MongoDB/Monitoring/CommandStartedEvent_arginfo.h" role="src" />
<file md5sum="a8fbf9d59fec5e140ee9de675975ca3a" name="src/MongoDB/Monitoring/CommandSubscriber.c" role="src" />
<file md5sum="0f154ec02fd672a7235a83486d8fd243" name="src/MongoDB/Monitoring/CommandSubscriber_arginfo.h" role="src" />
<file md5sum="ebe5af84dff501e8b4c731447f9b6233" name="src/MongoDB/Monitoring/CommandSucceededEvent.c" role="src" />
<file md5sum="171fc4c2aaa04ee6bf18ed2e4c8e179a" name="src/MongoDB/Monitoring/CommandSucceededEvent_arginfo.h" role="src" />
<file md5sum="bb341990ce07312fed3a48b24bc7c6ed" name="src/MongoDB/Monitoring/LogSubscriber.c" role="src" />
<file md5sum="88d73a3c6fdb01e218903253757762c7" name="src/MongoDB/Monitoring/LogSubscriber_arginfo.h" role="src" />
<file md5sum="3c3cb3c54f62262f9b4087132b410e37" name="src/MongoDB/Monitoring/SDAMSubscriber.c" role="src" />
<file md5sum="d1a92d6da29c53ede3b2b857096473a1" name="src/MongoDB/Monitoring/SDAMSubscriber_arginfo.h" role="src" />
<file md5sum="88964a0631437602c9e19d21230ccd7f" name="src/MongoDB/Monitoring/ServerChangedEvent.c" role="src" />
<file md5sum="1884df76a2e164d694b99ad3f99cfb04" name="src/MongoDB/Monitoring/ServerChangedEvent_arginfo.h" role="src" />
<file md5sum="bac7e8144d62afc136d224441d779360" name="src/MongoDB/Monitoring/ServerClosedEvent.c" role="src" />
<file md5sum="90ed0c1e75a4289204d4d16270c30b6c" name="src/MongoDB/Monitoring/ServerClosedEvent_arginfo.h" role="src" />
<file md5sum="4d3e5134add908749552d24a76e012d7" name="src/MongoDB/Monitoring/ServerHeartbeatFailedEvent.c" role="src" />
<file md5sum="fb1e16b7ef7d6aa2ba0183f4108dc30f" name="src/MongoDB/Monitoring/ServerHeartbeatFailedEvent_arginfo.h" role="src" />
<file md5sum="8d39855edeec0767ecc550bc79e4c386" name="src/MongoDB/Monitoring/ServerHeartbeatStartedEvent.c" role="src" />
<file md5sum="f78256e0a188df9b3a88c0699bb55ac4" name="src/MongoDB/Monitoring/ServerHeartbeatStartedEvent_arginfo.h" role="src" />
<file md5sum="55c9564454569ee43b11e7af06922287" name="src/MongoDB/Monitoring/ServerHeartbeatSucceededEvent.c" role="src" />
<file md5sum="d7eaa5bb5796864e5f2a8c6f49947213" name="src/MongoDB/Monitoring/ServerHeartbeatSucceededEvent_arginfo.h" role="src" />
<file md5sum="ac09bf64c4098aa3d7e620a54c31fe37" name="src/MongoDB/Monitoring/ServerOpeningEvent.c" role="src" />
<file md5sum="683da17e1c4565b97d157ad85276dee5" name="src/MongoDB/Monitoring/ServerOpeningEvent_arginfo.h" role="src" />
<file md5sum="b2cb261dd4e8071a7d043972dffc4799" name="src/MongoDB/Monitoring/Subscriber.c" role="src" />
<file md5sum="0613b3123814c69c21a431c0b244b3ce" name="src/MongoDB/Monitoring/Subscriber_arginfo.h" role="src" />
<file md5sum="e3ab03e27ccf54329c4546ebdef99d10" name="src/MongoDB/Monitoring/TopologyChangedEvent.c" role="src" />
<file md5sum="a6e5079b3532056f20b86d491283d1a4" name="src/MongoDB/Monitoring/TopologyChangedEvent_arginfo.h" role="src" />
<file md5sum="23abfad8578e47dc51b8136aa1c4f9c0" name="src/MongoDB/Monitoring/TopologyClosedEvent.c" role="src" />
<file md5sum="1dd21f5f3ecd52194a3b9222b581a6aa" name="src/MongoDB/Monitoring/TopologyClosedEvent_arginfo.h" role="src" />
<file md5sum="fdf380622f0b0997727f475a2aa1001d" name="src/MongoDB/Monitoring/TopologyOpeningEvent.c" role="src" />
<file md5sum="fbd4ae5b9ea524670dd0a1472247de5f" name="src/MongoDB/Monitoring/TopologyOpeningEvent_arginfo.h" role="src" />
<file md5sum="b9d6c320c4c15f23725408466c3f99b4" name="src/MongoDB/Monitoring/functions.c" role="src" />
<file md5sum="dcbccf638a1d98dcf54a320cdea3e6c0" name="src/MongoDB/BulkWrite.c" role="src" />
<file md5sum="8290f94f1ef73a7b9aa0f3b84f7874c8" name="src/MongoDB/BulkWriteCommand.c" role="src" />
<file md5sum="eb1afa5b7c46fc67d4fa3e6bf0f6a839" name="src/MongoDB/BulkWriteCommand.h" role="src" />
<file md5sum="18fd40af94f9d00cf383b5721b067824" name="src/MongoDB/BulkWriteCommandResult.c" role="src" />
<file md5sum="6ef35428ca41e90911c9f319156fdd80" name="src/MongoDB/BulkWriteCommandResult.h" role="src" />
<file md5sum="60bd53f74ecfc21e4431ba3aa568f8e1" name="src/MongoDB/BulkWriteCommandResult_arginfo.h" role="src" />
<file md5sum="23b737360853914a5cbb2931543d7691" name="src/MongoDB/BulkWriteCommand_arginfo.h" role="src" />
<file md5sum="faa7e201c0761e0f37208034eeec0ccf" name="src/MongoDB/BulkWrite_arginfo.h" role="src" />
<file md5sum="e9cae3230f4fb849946324f2224057bd" name="src/MongoDB/ClientEncryption.c" role="src" />
<file md5sum="160fece5814c42a5379dae4a8686ff67" name="src/MongoDB/ClientEncryption.h" role="src" />
<file md5sum="e8930efcad9edc08f5be88f353c7e6c2" name="src/MongoDB/ClientEncryption_arginfo.h" role="src" />
<file md5sum="4fff09ccaddd83d5267f736094312562" name="src/MongoDB/Command.c" role="src" />
<file md5sum="05e89a37fdec11dd48252f35217c2e39" name="src/MongoDB/Command_arginfo.h" role="src" />
<file md5sum="c6842352e38e510c6129c48da009143f" name="src/MongoDB/Cursor.c" role="src" />
<file md5sum="6135ff0c218c575007aae59c71bd4306" name="src/MongoDB/Cursor.h" role="src" />
<file md5sum="620898101dd8d5227d7d6727c30d3283" name="src/MongoDB/CursorInterface.c" role="src" />
<file md5sum="f18d71d408038fc7e7cd694fcaa2cfa0" name="src/MongoDB/CursorInterface_arginfo.h" role="src" />
<file md5sum="890087533a35762d76bd4c9a365648df" name="src/MongoDB/Cursor_arginfo.h" role="src" />
<file md5sum="8a8b364a6180ca20cee147235c95ab2d" name="src/MongoDB/Manager.c" role="src" />
<file md5sum="fc7b47b24d347c2e48e782e3a31b0ca4" name="src/MongoDB/Manager_arginfo.h" role="src" />
<file md5sum="e19a4db6800de8f42afab8f8c032a682" name="src/MongoDB/Query.c" role="src" />
<file md5sum="a89e410479697726b10de0de03a6ee4c" name="src/MongoDB/Query.h" role="src" />
<file md5sum="ebab31c5d931bfed4bba544df6468007" name="src/MongoDB/Query_arginfo.h" role="src" />
<file md5sum="6f2966375ec6404eee4d544a74fbbc17" name="src/MongoDB/ReadConcern.c" role="src" />
<file md5sum="dfc43f39b619cba2223dfe0ec89a1317" name="src/MongoDB/ReadConcern.h" role="src" />
<file md5sum="d3daa1c04520ed378822dd3230a51aec" name="src/MongoDB/ReadConcern_arginfo.h" role="src" />
<file md5sum="3aa5472f5c43caf5889d11ef86e7607a" name="src/MongoDB/ReadPreference.c" role="src" />
<file md5sum="ab47ca59c435b301b76206bff8c00c4b" name="src/MongoDB/ReadPreference.h" role="src" />
<file md5sum="cf60efd8277a1bef53af46fb96563044" name="src/MongoDB/ReadPreference_arginfo.h" role="src" />
<file md5sum="c61642ed29f09ec4fe7637d16c3f6ef3" name="src/MongoDB/Server.c" role="src" />
<file md5sum="d88d4c2dbbc0801b2e193add88fbb282" name="src/MongoDB/Server.h" role="src" />
<file md5sum="8ac36109ead34bfdada99fcf603c02b3" name="src/MongoDB/ServerApi.c" role="src" />
<file md5sum="1552029cc01917b3b721efb8ac96926c" name="src/MongoDB/ServerApi_arginfo.h" role="src" />
<file md5sum="dc72679f56c0d314f731ea751ffa0896" name="src/MongoDB/ServerDescription.c" role="src" />
<file md5sum="901ef117189821306a5285dd658b6d8e" name="src/MongoDB/ServerDescription.h" role="src" />
<file md5sum="be6ace046bce98f2a05703a6f83dfe5d" name="src/MongoDB/ServerDescription_arginfo.h" role="src" />
<file md5sum="80bbb29fe34f3e07ec59d2a0c27e6156" name="src/MongoDB/Server_arginfo.h" role="src" />
<file md5sum="fd94290592ab02e232a4bc53fbd1405f" name="src/MongoDB/Session.c" role="src" />
<file md5sum="f223d4b60d1cc0d260b580753c9b4d71" name="src/MongoDB/Session.h" role="src" />
<file md5sum="b98473b601ec08d30ab2c7defe473332" name="src/MongoDB/Session_arginfo.h" role="src" />
<file md5sum="269b5b4f2513f7bc69963ba0a4751d8d" name="src/MongoDB/TopologyDescription.c" role="src" />
<file md5sum="cc97a8a3224fde58746283170a4c7389" name="src/MongoDB/TopologyDescription.h" role="src" />
<file md5sum="ddcf7d85e85e3e0910857778e4a30978" name="src/MongoDB/TopologyDescription_arginfo.h" role="src" />
<file md5sum="71214ac09aee7fc6c734366a6e7d1bc1" name="src/MongoDB/WriteConcern.c" role="src" />
<file md5sum="2b08c4db364d4a012ab7b2943fb8e568" name="src/MongoDB/WriteConcern.h" role="src" />
<file md5sum="f1984695caf3df1e9a6798d6e54c6bbf" name="src/MongoDB/WriteConcernError.c" role="src" />
<file md5sum="70a70d1c6a8a12fd030b24d34a9b100a" name="src/MongoDB/WriteConcernError.h" role="src" />
<file md5sum="54541f921d62b7c8b8455142f6b9aa58" name="src/MongoDB/WriteConcernError_arginfo.h" role="src" />
<file md5sum="faa250831236e578c2494ced32bb5a89" name="src/MongoDB/WriteConcern_arginfo.h" role="src" />
<file md5sum="b004c0d7ef16e3c120114b86556a4a94" name="src/MongoDB/WriteError.c" role="src" />
<file md5sum="01d7508976554f0ba21898394872214c" name="src/MongoDB/WriteError.h" role="src" />
<file md5sum="1534bed7281d6ae2cea612df7e8ffbea" name="src/MongoDB/WriteError_arginfo.h" role="src" />
<file md5sum="c4f89a299c64ccf829ff431b12abcb44" name="src/MongoDB/WriteResult.c" role="src" />
<file md5sum="8c7156fc7a16438f7b04d880cf7437f1" name="src/MongoDB/WriteResult.h" role="src" />
<file md5sum="841904d2df6178b67104996707c0d8d4" name="src/MongoDB/WriteResult_arginfo.h" role="src" />
- <file md5sum="18265e0feab623aa81eafbf92e5830f6" name="src/contrib/php_array_api.h" role="src" />
+ <file md5sum="6e0cad79a5b09aacf2d6b31d0f7ee321" name="src/contrib/php_array_api.h" role="src" />
<file md5sum="8d5d138780e961233c025681c991ec28" name="src/libmongoc/src/common/src/common-atomic-private.h" role="src" />
<file md5sum="4ef5363caf0a3e4c866abf98b854624e" name="src/libmongoc/src/common/src/common-atomic.c" role="src" />
<file md5sum="c7769fdb4c820238deef4b284250edb6" name="src/libmongoc/src/common/src/common-b64-private.h" role="src" />
<file md5sum="5372cadcda5af0aaf0ec5cc47a3cf26d" name="src/libmongoc/src/common/src/common-b64.c" role="src" />
<file md5sum="db20d66f4962a3d704246d3fb10a3aac" name="src/libmongoc/src/common/src/common-bits-private.h" role="src" />
- <file md5sum="e49c9261e19b14bb6e4cfcda53edbac3" name="src/libmongoc/src/common/src/common-bson-dsl-private.h" role="src" />
+ <file md5sum="e4664366f276d5c008da53af4209630a" name="src/libmongoc/src/common/src/common-bson-dsl-private.h" role="src" />
<file md5sum="a8a94cf5b59fab681fc37085409718fa" name="src/libmongoc/src/common/src/common-cmp-private.h" role="src" />
<file md5sum="de3c3dfa7949127b9ca6bced2928b728" name="src/libmongoc/src/common/src/common-config.h" role="src" />
<file md5sum="619956e6cecc5eb8810b568529e2f63a" name="src/libmongoc/src/common/src/common-config.h.in" role="src" />
<file md5sum="e7952641258976b701a2653651a2e2dd" name="src/libmongoc/src/common/src/common-json-private.h" role="src" />
<file md5sum="499bbd4386d113063581c6eac2f1e277" name="src/libmongoc/src/common/src/common-json.c" role="src" />
<file md5sum="efef99a10c2b63cc99a9e5b8c35cb293" name="src/libmongoc/src/common/src/common-macros-private.h" role="src" />
<file md5sum="101051f42d18586915356c52c48069a8" name="src/libmongoc/src/common/src/common-md5-private.h" role="src" />
<file md5sum="03bb24e00b7013453cc6dc8f151e2663" name="src/libmongoc/src/common/src/common-md5.c" role="src" />
<file md5sum="aa5eace903458f1d2a65ecbcc9d48b79" name="src/libmongoc/src/common/src/common-oid-private.h" role="src" />
<file md5sum="a06bf82b62956856ddd69a90fb80b13a" name="src/libmongoc/src/common/src/common-oid.c" role="src" />
<file md5sum="3a48a66b4bd05c0120304ccc603e0b8f" name="src/libmongoc/src/common/src/common-prelude.h" role="src" />
<file md5sum="831585ade77038df801a296dce211b2a" name="src/libmongoc/src/common/src/common-string-private.h" role="src" />
<file md5sum="9ec95c285a69c066be07f82492bb2735" name="src/libmongoc/src/common/src/common-string.c" role="src" />
<file md5sum="9080da849c2dbfbea004d521eb9bbf12" name="src/libmongoc/src/common/src/common-thread-private.h" role="src" />
<file md5sum="04038be872cfe7a30977bc0c8cbef065" name="src/libmongoc/src/common/src/common-thread.c" role="src" />
<file md5sum="4a1d31da184b0b5157be0dda8bd282eb" name="src/libmongoc/src/common/src/common-utf8-private.h" role="src" />
<file md5sum="ffc011eff957abdff3b1b2dc3360c9ff" name="src/libmongoc/src/kms-message/src/kms_message/kms_azure_request.h" role="src" />
<file md5sum="178bd08ac73470d35b4986e388085161" name="src/libmongoc/src/kms-message/src/kms_message/kms_b64.h" role="src" />
<file md5sum="39ee9cf46b0439403a0f7c8073f583d5" name="src/libmongoc/src/kms-message/src/kms_message/kms_caller_identity_request.h" role="src" />
<file md5sum="8ebc97b8d9401873858ade801e9feb35" name="src/libmongoc/src/kms-message/src/kms_message/kms_decrypt_request.h" role="src" />
<file md5sum="d0fed9c2821dff65ae9dc6879ee881b6" name="src/libmongoc/src/kms-message/src/kms_message/kms_encrypt_request.h" role="src" />
<file md5sum="610a7df9b3f166d1173a890a19784b84" name="src/libmongoc/src/kms-message/src/kms_message/kms_gcp_request.h" role="src" />
<file md5sum="1522adee9e0ade465c313af38aa7aefe" name="src/libmongoc/src/kms-message/src/kms_message/kms_kmip_request.h" role="src" />
<file md5sum="98097ac94c63b8b4e3cabfd637a95315" name="src/libmongoc/src/kms-message/src/kms_message/kms_kmip_response.h" role="src" />
<file md5sum="0cd5c466ec235998c2a758540154ed75" name="src/libmongoc/src/kms-message/src/kms_message/kms_kmip_response_parser.h" role="src" />
<file md5sum="c1a35d0b49f3f920d16ffc84f4d8e373" name="src/libmongoc/src/kms-message/src/kms_message/kms_message.h" role="src" />
<file md5sum="cfef23bb3ac62cf8d3fbd8e08015f0c0" name="src/libmongoc/src/kms-message/src/kms_message/kms_message_defines.h" role="src" />
<file md5sum="5663ee4fe8bcca2dc395cd5be3617b44" name="src/libmongoc/src/kms-message/src/kms_message/kms_request.h" role="src" />
<file md5sum="ad85fcbd4c473f138818a4bd9e7f0815" name="src/libmongoc/src/kms-message/src/kms_message/kms_request_opt.h" role="src" />
<file md5sum="209083716262424fab84d670209755c8" name="src/libmongoc/src/kms-message/src/kms_message/kms_response.h" role="src" />
<file md5sum="6c5066d24cfbd1b4241fb854671503db" name="src/libmongoc/src/kms-message/src/kms_message/kms_response_parser.h" role="src" />
<file md5sum="e87486a63aa846e479f3bf1af7380038" name="src/libmongoc/src/kms-message/src/hexlify.c" role="src" />
<file md5sum="60664bb6d46c14b4eea28f15e6a082e5" name="src/libmongoc/src/kms-message/src/hexlify.h" role="src" />
<file md5sum="1e4af07511a196a91fd60a0e24a6e158" name="src/libmongoc/src/kms-message/src/kms_azure_request.c" role="src" />
<file md5sum="f464fe886184b4bdf04cc73eb17e24ef" name="src/libmongoc/src/kms-message/src/kms_b64.c" role="src" />
<file md5sum="29d5db2215a92ef6121c729f6c75ee00" name="src/libmongoc/src/kms-message/src/kms_caller_identity_request.c" role="src" />
<file md5sum="dc733fe6ab050e08cbd5689f1d2cba34" name="src/libmongoc/src/kms-message/src/kms_crypto.h" role="src" />
<file md5sum="1a549711223d3a9dc124951130fd0620" name="src/libmongoc/src/kms-message/src/kms_crypto_apple.c" role="src" />
<file md5sum="9876d4e3c0de2d0983ff5d68ff1555a4" name="src/libmongoc/src/kms-message/src/kms_crypto_libcrypto.c" role="src" />
<file md5sum="b8ecb9b69824d324900920d9b1a1db7d" name="src/libmongoc/src/kms-message/src/kms_crypto_none.c" role="src" />
<file md5sum="36ddddc32c7e2792bfb199b2000f5b0c" name="src/libmongoc/src/kms-message/src/kms_crypto_windows.c" role="src" />
<file md5sum="aba07d5c53233adfe5d8928b5ef92e06" name="src/libmongoc/src/kms-message/src/kms_decrypt_request.c" role="src" />
<file md5sum="65692a06262c9889f7ce0ae81928d390" name="src/libmongoc/src/kms-message/src/kms_encrypt_request.c" role="src" />
<file md5sum="d96caa47040b3d844be8720df0481477" name="src/libmongoc/src/kms-message/src/kms_endian_private.h" role="src" />
<file md5sum="7e00d14497770adaddad08e074ba80a6" name="src/libmongoc/src/kms-message/src/kms_gcp_request.c" role="src" />
<file md5sum="593d915279b88dcc90ccdc13562ade1d" name="src/libmongoc/src/kms-message/src/kms_kmip_item_type_private.h" role="src" />
<file md5sum="50d109ebf2a1a35f354ce4d77ad66327" name="src/libmongoc/src/kms-message/src/kms_kmip_reader_writer.c" role="src" />
<file md5sum="9a4ba49af76955cc7b5bf23ecca75ae3" name="src/libmongoc/src/kms-message/src/kms_kmip_reader_writer_private.h" role="src" />
<file md5sum="e26382512810f752e568e01ecf83d273" name="src/libmongoc/src/kms-message/src/kms_kmip_request.c" role="src" />
<file md5sum="ce4e975f079a2c7136909f2cc337f897" name="src/libmongoc/src/kms-message/src/kms_kmip_response.c" role="src" />
<file md5sum="ab89b217b929ac4340c9d22287185277" name="src/libmongoc/src/kms-message/src/kms_kmip_response_parser.c" role="src" />
<file md5sum="f64765a9c63171b8aa2c5fd7de738072" name="src/libmongoc/src/kms-message/src/kms_kmip_response_parser_private.h" role="src" />
<file md5sum="21898fd3923dfa059f2139a555643e14" name="src/libmongoc/src/kms-message/src/kms_kmip_result_reason_private.h" role="src" />
<file md5sum="8f826227b67ce2503aeb359cea5a3402" name="src/libmongoc/src/kms-message/src/kms_kmip_result_status_private.h" role="src" />
<file md5sum="e3cd5a25805733845177dc73abf6b11a" name="src/libmongoc/src/kms-message/src/kms_kmip_tag_type_private.h" role="src" />
<file md5sum="2a7f41d0b533d839384c449f05db13c5" name="src/libmongoc/src/kms-message/src/kms_kv_list.c" role="src" />
<file md5sum="69e374f65d9b21695d194e3495941f37" name="src/libmongoc/src/kms-message/src/kms_kv_list.h" role="src" />
<file md5sum="29d4c0130dec0a149b0065c0d3db6848" name="src/libmongoc/src/kms-message/src/kms_message.c" role="src" />
<file md5sum="c92ffd770a609bcecb9656af9c36317c" name="src/libmongoc/src/kms-message/src/kms_message_private.h" role="src" />
<file md5sum="f281a3def21d13d20c78836c3548315f" name="src/libmongoc/src/kms-message/src/kms_port.c" role="src" />
<file md5sum="6a768c38583f0f42f05e6da6d6f61dc4" name="src/libmongoc/src/kms-message/src/kms_port.h" role="src" />
<file md5sum="a43993d39a00a943aeba604f715a84d5" name="src/libmongoc/src/kms-message/src/kms_request.c" role="src" />
<file md5sum="fd15be17d87fa70a2bab1a0309b71b82" name="src/libmongoc/src/kms-message/src/kms_request_opt.c" role="src" />
<file md5sum="c7079940f8096ea3bce05d343de44481" name="src/libmongoc/src/kms-message/src/kms_request_opt_private.h" role="src" />
<file md5sum="1d8afba41df3771c71e52b89c006d1b7" name="src/libmongoc/src/kms-message/src/kms_request_str.c" role="src" />
<file md5sum="8943a55e4b590e6aaf6e7df818922699" name="src/libmongoc/src/kms-message/src/kms_request_str.h" role="src" />
<file md5sum="92b75e5851d90b8d28949ef18417c789" name="src/libmongoc/src/kms-message/src/kms_response.c" role="src" />
<file md5sum="f6ced5985dc5ce3009b2a2717268208d" name="src/libmongoc/src/kms-message/src/kms_response_parser.c" role="src" />
<file md5sum="dff15b5018efb6269a2a0269c5ddb798" name="src/libmongoc/src/kms-message/src/sort.c" role="src" />
<file md5sum="18f9bd055f6a60e7702603b6b8bf07d5" name="src/libmongoc/src/kms-message/src/sort.h" role="src" />
<file md5sum="2e991c298adbb696c584f5f85149b864" name="src/libmongoc/src/libbson/src/bson/bcon.c" role="src" />
<file md5sum="94538a79b0dc528b560d844e34f19947" name="src/libmongoc/src/libbson/src/bson/bcon.h" role="src" />
<file md5sum="21a687d151c2116bac5b4f469dfc665f" name="src/libmongoc/src/libbson/src/bson/bson-atomic.c" role="src" />
<file md5sum="a8717ee6ef098adb5c45bfd7c1fe8db8" name="src/libmongoc/src/libbson/src/bson/bson-atomic.h" role="src" />
<file md5sum="b49d3b11cf5c3edc4bb6d815daf82f2d" name="src/libmongoc/src/libbson/src/bson/bson-clock.c" role="src" />
<file md5sum="baa115830b76c0e46e66a582a3d0b1a3" name="src/libmongoc/src/libbson/src/bson/bson-clock.h" role="src" />
<file md5sum="8d76602f29623594940668f8a9464288" name="src/libmongoc/src/libbson/src/bson/bson-cmp.h" role="src" />
<file md5sum="d8175c9179d219c2ac3659941d39c1ac" name="src/libmongoc/src/libbson/src/bson/bson-compat.h" role="src" />
<file md5sum="8c6f64accb6307e2a97b3350be3c54d0" name="src/libmongoc/src/libbson/src/bson/bson-config.h" role="src" />
<file md5sum="af531055f8519c643d9c1a4bd6397f45" name="src/libmongoc/src/libbson/src/bson/bson-config.h.in" role="src" />
<file md5sum="774b1c66292efab4c671a29f0b805468" name="src/libmongoc/src/libbson/src/bson/bson-context-private.h" role="src" />
<file md5sum="bcd82ae3621e0b5d02f6f10067ed8f4c" name="src/libmongoc/src/libbson/src/bson/bson-context.c" role="src" />
<file md5sum="a6ce84cb1458ff1b995679809406cb85" name="src/libmongoc/src/libbson/src/bson/bson-context.h" role="src" />
<file md5sum="1fc8a2af71a89db893f604138d931ab2" name="src/libmongoc/src/libbson/src/bson/bson-decimal128.c" role="src" />
<file md5sum="c3c1b82ef507cd634de5c1159a4d4ee8" name="src/libmongoc/src/libbson/src/bson/bson-decimal128.h" role="src" />
<file md5sum="895bcf1078820ce2c89334c546de7c12" name="src/libmongoc/src/libbson/src/bson/bson-endian.h" role="src" />
<file md5sum="a380cb085ca56058ca53253339b409e9" name="src/libmongoc/src/libbson/src/bson/bson-error.c" role="src" />
<file md5sum="66c590c21cea4244a4a23f3a11004c95" name="src/libmongoc/src/libbson/src/bson/bson-error.h" role="src" />
<file md5sum="cae7d8858e2b2535d3467c16cca8dbfe" name="src/libmongoc/src/libbson/src/bson/bson-iso8601-private.h" role="src" />
<file md5sum="5c8cae279b6e32db853cb45a2acd57cb" name="src/libmongoc/src/libbson/src/bson/bson-iso8601.c" role="src" />
<file md5sum="94adb872b76d724cd38f58607addc428" name="src/libmongoc/src/libbson/src/bson/bson-iter.c" role="src" />
<file md5sum="00b44a340f4dfc31b8398afb64b104a6" name="src/libmongoc/src/libbson/src/bson/bson-iter.h" role="src" />
<file md5sum="671ee743879d55cb387a22822bcd04b8" name="src/libmongoc/src/libbson/src/bson/bson-json-private.h" role="src" />
<file md5sum="3114058a6bdf367e55bd7bd8f501f8a9" name="src/libmongoc/src/libbson/src/bson/bson-json.c" role="src" />
<file md5sum="678881318543a678942a58b3a9c805f8" name="src/libmongoc/src/libbson/src/bson/bson-json.h" role="src" />
<file md5sum="6469e122ae6151264163b40fe5b03f4e" name="src/libmongoc/src/libbson/src/bson/bson-keys.c" role="src" />
<file md5sum="d244a008321b301066cccfc219ab23b6" name="src/libmongoc/src/libbson/src/bson/bson-keys.h" role="src" />
<file md5sum="df64163505b4f2846151fa487c97546b" name="src/libmongoc/src/libbson/src/bson/bson-macros.h" role="src" />
<file md5sum="369ace6fc1dc485029adc990c669d41a" name="src/libmongoc/src/libbson/src/bson/bson-md5.c" role="src" />
<file md5sum="9eeb0d4aad2e51f99450fd954cc44bfe" name="src/libmongoc/src/libbson/src/bson/bson-md5.h" role="src" />
<file md5sum="b46f2156a9fbd1606098f36e73ee04a2" name="src/libmongoc/src/libbson/src/bson/bson-memory.c" role="src" />
<file md5sum="30e7a234f657ead5b690d63e66d55711" name="src/libmongoc/src/libbson/src/bson/bson-memory.h" role="src" />
<file md5sum="83e48d4ef4fd9c41ac326dc5d3651679" name="src/libmongoc/src/libbson/src/bson/bson-oid.c" role="src" />
<file md5sum="249c62aee2ffd2c5edb454be6b5cd7a6" name="src/libmongoc/src/libbson/src/bson/bson-oid.h" role="src" />
<file md5sum="2c42653a9d3625f02857352dd4d39bf9" name="src/libmongoc/src/libbson/src/bson/bson-prelude.h" role="src" />
<file md5sum="6e0f06532de6809fd418c86baacd48b1" name="src/libmongoc/src/libbson/src/bson/bson-private.h" role="src" />
<file md5sum="97c53cd764f69a22eef73dd14af57112" name="src/libmongoc/src/libbson/src/bson/bson-reader.c" role="src" />
<file md5sum="fe2539d9247600f62edf1d9de89dff19" name="src/libmongoc/src/libbson/src/bson/bson-reader.h" role="src" />
<file md5sum="5239b37b43d558815f882a7bbc6b1785" name="src/libmongoc/src/libbson/src/bson/bson-string.c" role="src" />
<file md5sum="af767afba4f5f7bea3641ed7ef0ca9fb" name="src/libmongoc/src/libbson/src/bson/bson-string.h" role="src" />
<file md5sum="5e925eb64a2048162ff1c9b014a83fbb" name="src/libmongoc/src/libbson/src/bson/bson-timegm-private.h" role="src" />
<file md5sum="c5440999133601cec2e931bf122541a6" name="src/libmongoc/src/libbson/src/bson/bson-timegm.c" role="src" />
<file md5sum="3d9ae9d9fc12e75395e01adc803c1300" name="src/libmongoc/src/libbson/src/bson/bson-types.h" role="src" />
<file md5sum="adb7995805d45f518c5b87a4676c521f" name="src/libmongoc/src/libbson/src/bson/bson-utf8.c" role="src" />
<file md5sum="8142dd67ad8cc94f8d54857881e2809c" name="src/libmongoc/src/libbson/src/bson/bson-utf8.h" role="src" />
<file md5sum="381ba573d2902e62addb73b9c8d35207" name="src/libmongoc/src/libbson/src/bson/bson-value.c" role="src" />
<file md5sum="ed3d9a7731531415ffe512e5cb2bc2b0" name="src/libmongoc/src/libbson/src/bson/bson-value.h" role="src" />
<file md5sum="e87cf558c0ec8c011a3d493281f59d43" name="src/libmongoc/src/libbson/src/bson/bson-version-functions.c" role="src" />
<file md5sum="7626c4729bf8fe9f925ed916b725d187" name="src/libmongoc/src/libbson/src/bson/bson-version-functions.h" role="src" />
- <file md5sum="82eae81d9d3e058cecdacef92540a9ad" name="src/libmongoc/src/libbson/src/bson/bson-version.h" role="src" />
+ <file md5sum="4459c397297398b8467836d4efbe7159" name="src/libmongoc/src/libbson/src/bson/bson-version.h" role="src" />
<file md5sum="b47c63ac799e8f8eaf8824cf9122a898" name="src/libmongoc/src/libbson/src/bson/bson-version.h.in" role="src" />
<file md5sum="a211f7a6693db0fc0aa8f57f241eec02" name="src/libmongoc/src/libbson/src/bson/bson-writer.c" role="src" />
<file md5sum="681fb286b0b4812d5d856cb5cd184489" name="src/libmongoc/src/libbson/src/bson/bson-writer.h" role="src" />
<file md5sum="fafbedd9b50dbfdd72f3080ccd05f6de" name="src/libmongoc/src/libbson/src/bson/bson.c" role="src" />
<file md5sum="a26a053cfdb023727f0544549fd55882" name="src/libmongoc/src/libbson/src/bson/bson.h" role="src" />
<file md5sum="7c7cdbd39a84d00e0b27ed4992e5550d" name="src/libmongoc/src/libbson/src/bson/validate-private.h" role="src" />
<file md5sum="dd0dace5e52819c2b5cd94edad5e2259" name="src/libmongoc/src/libbson/src/bson/validate.c" role="src" />
<file md5sum="c5383f84e9406fe841bc49dc6e3a1e0f" name="src/libmongoc/src/libbson/src/jsonsl/jsonsl.c" role="src" />
<file md5sum="e700e1d622d825ce49b4c87112b56a66" name="src/libmongoc/src/libbson/src/jsonsl/jsonsl.h" role="src" />
<file md5sum="107bf23325e98a03903f9ab045630e6d" name="src/libmongoc/src/libmongoc/src/mongoc/mcd-azure.c" role="src" />
<file md5sum="4db42c7dab4dfeb6aa05661be73b0a09" name="src/libmongoc/src/libmongoc/src/mongoc/mcd-azure.h" role="src" />
<file md5sum="b7c6385094e7107a724e5b81ffc6014e" name="src/libmongoc/src/libmongoc/src/mongoc/mcd-integer.h" role="src" />
<file md5sum="61b21c89af1f00afcda3251dcfe511f9" name="src/libmongoc/src/libmongoc/src/mongoc/mcd-nsinfo.c" role="src" />
<file md5sum="46a79b1a78aeeaa8457818f94f17da0c" name="src/libmongoc/src/libmongoc/src/mongoc/mcd-nsinfo.h" role="src" />
<file md5sum="63a8a30700282d74e380d6371603e3be" name="src/libmongoc/src/libmongoc/src/mongoc/mcd-rpc.c" role="src" />
<file md5sum="e666623b2a67fe23d4024e14da60b2a6" name="src/libmongoc/src/libmongoc/src/mongoc/mcd-rpc.h" role="src" />
<file md5sum="102560dc77c87642d454467bfb627efc" name="src/libmongoc/src/libmongoc/src/mongoc/mcd-time.h" role="src" />
<file md5sum="f74a1ac07fa98124386087b6d7660799" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-aggregate-private.h" role="src" />
- <file md5sum="7d15349bba5fbaf399f30f29bc0ad1ba" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-aggregate.c" role="src" />
+ <file md5sum="0cc859b21c3709f18d7719d9c41935c4" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-aggregate.c" role="src" />
<file md5sum="991cfaffbaf2f17435f93e50f7a03ffc" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-apm-private.h" role="src" />
<file md5sum="ea54f0d35c7786e2ae557d648a241598" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-apm.c" role="src" />
<file md5sum="f22caa7f09e8072129a40d7d70b63e6a" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-apm.h" role="src" />
- <file md5sum="d6d4c651e645e9a6887618a16571e301" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-array-private.h" role="src" />
+ <file md5sum="a26ac1f0d92b9c8ad3ab6ca3396645d0" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-array-private.h" role="src" />
<file md5sum="e8d29420ba861c837577b5ec707ccf5d" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-array.c" role="src" />
<file md5sum="6064c10fc2e7adf45a031a61f0e084c4" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-async-cmd-private.h" role="src" />
<file md5sum="c72ddf26c93124ce5d45f109a12fc0a2" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-async-cmd.c" role="src" />
<file md5sum="ea2ba497f12896b1f7b54d89cef523b7" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-async-private.h" role="src" />
<file md5sum="149cf82a5215fc5ae25c4745331a505b" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-async.c" role="src" />
<file md5sum="f77f0250976c5ee0da26c7dc982ee68c" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-buffer-private.h" role="src" />
<file md5sum="f0711fde372f7b1b58506d48bb06ddf3" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-buffer.c" role="src" />
<file md5sum="bde4c9f536a618703a9529ec24e29a4e" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-bulk-operation-private.h" role="src" />
<file md5sum="150cde99a15c20f85ff57fc307f00d00" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-bulk-operation.c" role="src" />
<file md5sum="8a37a0ea9057ee5717513ddd93a7a7a7" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-bulk-operation.h" role="src" />
<file md5sum="6a44510371724821d8e106274df2f473" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-bulkwrite.c" role="src" />
<file md5sum="535a72272ee1961e0de810e875b7e0d3" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-bulkwrite.h" role="src" />
<file md5sum="914f93211b2870423840e73ed4e53473" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-change-stream-private.h" role="src" />
<file md5sum="a4f5bb5c589aa9032256c8ea20bd7657" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-change-stream.c" role="src" />
<file md5sum="a0ba686f7f78d3e8bafe255e8df2b10f" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-change-stream.h" role="src" />
<file md5sum="8b3bb177feea96b35c6bc4266283710c" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-pool-private.h" role="src" />
<file md5sum="22a19e5b4472b9413f7e3cceb725a0a6" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-pool.c" role="src" />
<file md5sum="0c7e6e5c81c85d92167f2f5c9c19905d" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-pool.h" role="src" />
<file md5sum="0e64f9c5489d3d145ea64b8a111b0436" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-private.h" role="src" />
<file md5sum="6f4079ddf3f9a4ecadee6f497d0a75f1" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-session-private.h" role="src" />
<file md5sum="dc69bb76d550ce52cd762db43823a8f3" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-session.c" role="src" />
<file md5sum="ff56af4296f47d78812110406c9a7836" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-session.h" role="src" />
<file md5sum="07adf783a314f8a8f89672ba94d3085f" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-side-encryption-private.h" role="src" />
- <file md5sum="cb0f5a3dcecfc3e0afa9c0e662c12736" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-side-encryption.c" role="src" />
+ <file md5sum="392f36d16fe892eeda139f3960001df3" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-side-encryption.c" role="src" />
<file md5sum="2159b38c793c159000d7d116890439c7" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-client-side-encryption.h" role="src" />
<file md5sum="770e3fa50fef8474649c50d66778c940" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-client.c" role="src" />
<file md5sum="b0fdd91057b226e48505b23c44c3df88" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-client.h" role="src" />
<file md5sum="6bd521e35b4de4249255904697983853" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster-aws-private.h" role="src" />
<file md5sum="57e344614da01a37f8af19e24f9f51a5" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster-aws.c" role="src" />
<file md5sum="37317b6378c553659f55e53e5376cff8" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster-cyrus-private.h" role="src" />
<file md5sum="9b3add0171f5e904acaea8ab1b3c870a" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster-cyrus.c" role="src" />
<file md5sum="766b00f6d1ea1b068d97f538a389425a" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster-private.h" role="src" />
<file md5sum="0d4e3c1613e17f9e0971efe64c189880" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster-sasl-private.h" role="src" />
<file md5sum="3d3091d2cc60bc97f1e30a6f4788a823" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster-sasl.c" role="src" />
<file md5sum="da5b3db08f41d00ced0b779cbc61a410" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster-sspi-private.h" role="src" />
<file md5sum="193606031d1392c5fca6b31994db71de" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster-sspi.c" role="src" />
- <file md5sum="0e2fa7ed5d94ee54d58db07adfebbb7c" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster.c" role="src" />
+ <file md5sum="88ea8c14d478b11ea54ce3223070347c" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster.c" role="src" />
<file md5sum="9df43fbd52993ad3c6117fb21a5a3c2d" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-cmd-private.h" role="src" />
<file md5sum="1dd1b4ab78a3d052ccd085ff477f95e5" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-cmd.c" role="src" />
<file md5sum="a396d860c74b0fbb2696bdcb5a74aaff" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-collection-private.h" role="src" />
<file md5sum="14cc7ac5c07a19408da77e68a11c013e" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-collection.c" role="src" />
<file md5sum="8ce4ff37de45be52070a27243f57ccd8" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-collection.h" role="src" />
<file md5sum="f5abb7e1cb6ade112b327abd0f85e6d9" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-compression-private.h" role="src" />
<file md5sum="69afebc8eb974fc5e99351091744c7f7" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-compression.c" role="src" />
<file md5sum="141d3bee46b24b0df036aefb703bd4f6" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-config.h" role="src" />
<file md5sum="45ce1e8ab80791d6994b4f0d4f9b1fc4" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-config.h.in" role="src" />
<file md5sum="ee3de5dcf053ca26599e70581f35f10a" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-counters-private.h" role="src" />
<file md5sum="9f997c53b38ece2254a7215b34f99603" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-counters.c" role="src" />
<file md5sum="67fbdae6d242d8ff7a488e9d6ea9769c" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-counters.defs" role="src" />
<file md5sum="a687030ff4be49fb887f41ae422aa52b" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypt-private.h" role="src" />
<file md5sum="6db12a1438cdcdd0034d47374e5da584" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypt.c" role="src" />
<file md5sum="7d2a51189e4abe1f79ee17c7e5d05f39" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypto-cng-private.h" role="src" />
<file md5sum="79a042280ea05afc48c28a26e359de16" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypto-cng.c" role="src" />
<file md5sum="f90af25332d4e00a99dfec23d937d00f" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypto-common-crypto-private.h" role="src" />
<file md5sum="2c161a3620d5a936b7ae691dcbbf3210" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypto-common-crypto.c" role="src" />
<file md5sum="63a0cf5751d7c480f448a5fd01d5dc84" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypto-openssl-private.h" role="src" />
<file md5sum="2cde56c56a6b3170447b2915f651d441" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypto-openssl.c" role="src" />
<file md5sum="c2c41d8923144359dbb2e8ec87a4dbea" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypto-private.h" role="src" />
<file md5sum="a2f481acb8ae40ccd992de8444a56fe3" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypto.c" role="src" />
<file md5sum="5195034a24794c713b011bce04526c6a" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor-array.c" role="src" />
<file md5sum="647efefa7c1b3d1055aeec5d1cb02d38" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor-change-stream.c" role="src" />
<file md5sum="8a523850b0b67b798f182b069eb88b0e" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor-cmd-deprecated.c" role="src" />
<file md5sum="73245f9b2331139db09af8dd38a73dcd" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor-cmd.c" role="src" />
<file md5sum="b286867b8badec32b537a76187f1041a" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor-find-cmd.c" role="src" />
<file md5sum="981449306f72b35b8d706dc20b6f4386" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor-find-opquery.c" role="src" />
<file md5sum="b5e6789604f341db9b8ea498d2fa5e34" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor-find.c" role="src" />
<file md5sum="207d3a9f98ee8fff95d7fd684a52530d" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor-legacy.c" role="src" />
<file md5sum="46790b936b171104ce7a5fc081f7543f" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor-private.h" role="src" />
<file md5sum="2110d301ca0f64ce1898a04294c951d4" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor.c" role="src" />
<file md5sum="4d2a34b06b68c0cb17c9a5011f077343" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor.h" role="src" />
<file md5sum="19a354326881e58341ad091b375aa6d3" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-cyrus-private.h" role="src" />
<file md5sum="987427ea030f88ece786e1d8f04e6664" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-cyrus.c" role="src" />
<file md5sum="1599aaf6282429b1eebe2c715084e0b1" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-database-private.h" role="src" />
<file md5sum="12cafb759fc95b13cb9cc64db65c6a55" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-database.c" role="src" />
<file md5sum="3abcde36f40034892b6edaf467663b2e" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-database.h" role="src" />
<file md5sum="878a2ee72f69bdd280f61233509f1971" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-deprioritized-servers-private.h" role="src" />
<file md5sum="359041d9ae2cf724baee0180d6f258cc" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-deprioritized-servers.c" role="src" />
<file md5sum="6dd837c1847b9981d49c0d161fda23a9" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-errno-private.h" role="src" />
<file md5sum="90694c5521f2209ca93a932858458ebb" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-error-private.h" role="src" />
<file md5sum="a0e04e4b272c271a9acaf5a4390491ba" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-error.c" role="src" />
<file md5sum="a790ed95bd9f39376d8d2f7bf371fc01" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-error.h" role="src" />
<file md5sum="9b923815adaef75d65b343d3b0a3e823" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-find-and-modify-private.h" role="src" />
<file md5sum="bc69eebd9ea2b23ba8691ede3f73ae58" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-find-and-modify.c" role="src" />
<file md5sum="a66730760d3ddf100a085e99777fd94f" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-find-and-modify.h" role="src" />
<file md5sum="672a3c79cc20b3bcb52386d373e04994" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-flags-private.h" role="src" />
<file md5sum="f5de9fd4bc505e4963b3a0525ef9bc61" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-flags.c" role="src" />
<file md5sum="6d6b83c354df207d9504ace90a58ec13" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-flags.h" role="src" />
<file md5sum="bd2b06b6e0c976e0e0258e80ef6683d5" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-generation-map-private.h" role="src" />
<file md5sum="48236db00921f67d8e4a678b504a347f" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-generation-map.c" role="src" />
<file md5sum="b0b354242c0950fe64521a6dc89a14b9" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-bucket-file-private.h" role="src" />
<file md5sum="852ae67e4c05f0532c8c03768d0d9ec0" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-bucket-file.c" role="src" />
<file md5sum="68fbb28c2b090060535a4d2951837208" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-bucket-private.h" role="src" />
<file md5sum="b7ade556470d89370d9100464be2c386" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-bucket.c" role="src" />
<file md5sum="8de94a8c9f3441adb6977afab5a0afd4" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-bucket.h" role="src" />
<file md5sum="ef93262ff040352b1f9059b70bd57679" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-file-list-private.h" role="src" />
<file md5sum="6df133d750a86d4b3263c5164353865c" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-file-list.c" role="src" />
<file md5sum="dda4f026a3757053a3ad10be2dce150a" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-file-list.h" role="src" />
<file md5sum="787adc50949b050772d7aa23040d1a55" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-file-page-private.h" role="src" />
<file md5sum="560497c223b4da272ec002d3fd6a9e31" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-file-page.c" role="src" />
<file md5sum="509f3b1539b9dd6de15a175b215a09e8" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-file-page.h" role="src" />
<file md5sum="b240a635107c5612bd6bebb10dd1859f" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-file-private.h" role="src" />
<file md5sum="0c9cbe01746e28a87fcb85a08e09b981" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-file.c" role="src" />
<file md5sum="57f704d7f5000c80ad0fa65e0a764f2b" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-file.h" role="src" />
<file md5sum="c9cfe6c226ca7338910818636c3f97b5" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs-private.h" role="src" />
<file md5sum="a5dabad88206ed144c6f8524e3d91fcc" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs.c" role="src" />
<file md5sum="3acffb4579f220627cb087205ce99a66" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-gridfs.h" role="src" />
<file md5sum="bbd2223c3ee5fbe3221b003625de3dc5" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-handshake-compiler-private.h" role="src" />
<file md5sum="5a5b5223097eec497e3739ac27661266" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-handshake-os-private.h" role="src" />
<file md5sum="44bcb471bcdb2cd340eae055d6d17d8c" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-handshake-private.h" role="src" />
<file md5sum="b93acff997313d7988a653ef8ee302a6" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-handshake.c" role="src" />
<file md5sum="f4b4b76c46db6a1a5eebd37714de61d4" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-handshake.h" role="src" />
<file md5sum="a52c62bfebf7bbe8ea8ecf8499889ff0" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-host-list-private.h" role="src" />
<file md5sum="ce276d784b0be857e48e3f2466bdf5cb" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-host-list.c" role="src" />
<file md5sum="8fc325b659cec3e62fa65b069f1cb9cb" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-host-list.h" role="src" />
<file md5sum="fed805608d0f58354fea4822c8316eb8" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-http-private.h" role="src" />
<file md5sum="092760cd3372b266a6cb257055cfc263" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-http.c" role="src" />
<file md5sum="30af5b7cbae712efbcf5e1b57e4d9a39" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-index.c" role="src" />
<file md5sum="8dfbcc48a2ed638e7a7aaf205024fabd" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-index.h" role="src" />
<file md5sum="d430a67c052435594d9752b1b678ec4b" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-init.c" role="src" />
<file md5sum="4c94084109e73c3a907600a1b4f65d86" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-init.h" role="src" />
<file md5sum="386ad032d1533310b621c67ae0b4b3ca" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-interrupt-private.h" role="src" />
<file md5sum="3ddb242805f10eae38dcb1017f01899d" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-interrupt.c" role="src" />
<file md5sum="378e3b717d87cf84a4f327e935c3fa97" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-iovec.h" role="src" />
<file md5sum="f49d01ff4e7d574663c0d0edc4bcaf44" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-libressl-private.h" role="src" />
<file md5sum="d11aaf0d3352106e583185ea201959d4" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-libressl.c" role="src" />
<file md5sum="eb6b8dfdd0ddd2e9d3d87c874f2848d3" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-linux-distro-scanner-private.h" role="src" />
<file md5sum="ff2a9129d6f76d78b66b68cbf0c71199" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-linux-distro-scanner.c" role="src" />
<file md5sum="f6704c5ee2b2d9f801a822a7c9299dd1" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-list-private.h" role="src" />
<file md5sum="ff8fad37db71dfa6eec3de47ce781fff" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-list.c" role="src" />
<file md5sum="9f8d9e0f626f7b70b04de206936ec1e8" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-log-and-monitor-private.c" role="src" />
<file md5sum="d2d2e54f5b243fbdccd3d38ff7656a44" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-log-and-monitor-private.h" role="src" />
<file md5sum="b4a5be2e26a9057e9079fe751d24fd15" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-log-private.h" role="src" />
<file md5sum="deb0c62f6875efe52144bd49257b4e9b" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-log.c" role="src" />
<file md5sum="9d552afcb0ff8ea90b28d9816db7a64a" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-log.h" role="src" />
<file md5sum="2c5d086f934cc7796fd2e1f6100ea3cd" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-macros.h" role="src" />
<file md5sum="669395c17d851370d9a6c44d3f78e2a3" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-matcher-op-private.h" role="src" />
<file md5sum="f12bd83a495049a2c0c81315cfb0c752" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-matcher-op.c" role="src" />
<file md5sum="7e9e6574bcfda2e1935710627cd041c9" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-matcher-private.h" role="src" />
<file md5sum="8cfb590bdad22f3122d32fcbed22bba5" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-matcher.c" role="src" />
<file md5sum="a33aa5cb9daa01924620d44e4b24986e" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-matcher.h" role="src" />
<file md5sum="a77663e1782f5bd6e3bf4d29a2c170c1" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-memcmp-private.h" role="src" />
<file md5sum="40a1a866e21df1f45e24b5d641b456d5" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-memcmp.c" role="src" />
<file md5sum="8f6e9074547136bdcd5fad945700170d" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-ocsp-cache-private.h" role="src" />
<file md5sum="4f4ab35f68b7f06fd743ebeb1a6b4a8c" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-ocsp-cache.c" role="src" />
<file md5sum="ed2992d365f66d81a4bba53f3f73af9a" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-opcode.c" role="src" />
<file md5sum="45a2f202aa9b11452d4e115eab61f90d" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-opcode.h" role="src" />
<file md5sum="928bab30e45871d3710eb8001a8ed7e3" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-openssl-private.h" role="src" />
<file md5sum="04fbfecd04aa16a8c2cc5b396ef6664c" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-openssl.c" role="src" />
<file md5sum="40ebdddec3ed127f671e52209b0e978c" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-optional.c" role="src" />
<file md5sum="20b1cba35bfcb135952b28e5ce44d1a5" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-optional.h" role="src" />
<file md5sum="97c22a13f88a19204f358ce69fdc928d" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-opts-helpers-private.h" role="src" />
<file md5sum="307b4374bebb2f56fd20effe87ecd90e" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-opts-helpers.c" role="src" />
<file md5sum="30c6729ada91d8710bae6537f867a9d6" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-opts-private.h" role="src" />
<file md5sum="11152d0ca7ef44b543165d48f4a60700" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-opts.c" role="src" />
<file md5sum="94a345a71f80c0e3d70656feb62284cd" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-prelude.h" role="src" />
<file md5sum="8dbdd27a19d248f88dac1386fc8e37ff" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-queue-private.h" role="src" />
<file md5sum="55477a8df38b6ed6579c7cc2742b5ab4" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-queue.c" role="src" />
<file md5sum="7489180bd7818c9c11b35653f78fb330" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-rand-cng.c" role="src" />
<file md5sum="455d022e1635c57fa4974b9e9afe4453" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-rand-common-crypto.c" role="src" />
<file md5sum="587217bb3cf7a42625658b6b46e530ba" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-rand-openssl.c" role="src" />
<file md5sum="6645f68612ded0cd0c30df0cf40af1e8" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-rand-private.h" role="src" />
<file md5sum="3bf2801b3022f4e118dc04f3c6165f44" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-rand.h" role="src" />
<file md5sum="5969a4e0c732eb1679222557ec4364ca" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-read-concern-private.h" role="src" />
<file md5sum="c8b9aecfe96affab46bb28b771de8f20" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-read-concern.c" role="src" />
<file md5sum="3df80ddd427f42b29480534573037f61" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-read-concern.h" role="src" />
<file md5sum="60449987bb2bf04468b656f0d6dac632" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-read-prefs-private.h" role="src" />
<file md5sum="5793ad17cc6dea119cdf78e1ed023844" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-read-prefs.c" role="src" />
<file md5sum="abd0cc850e3a2f8e825d9d103bd5e9a6" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-read-prefs.h" role="src" />
<file md5sum="f6b3cce2dcef1650951c8f694fd7e7e9" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-rpc-private.h" role="src" />
<file md5sum="75e43f3d59f90ca9094dfd70a5fd4101" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-rpc.c" role="src" />
<file md5sum="e9811cd3fc766d0415b5f514b0be9119" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-sasl-private.h" role="src" />
<file md5sum="d13373442f23e535ff6724955a404c75" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-sasl.c" role="src" />
<file md5sum="d66e0c3f158f65f163263a39e5bb9827" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-scram-private.h" role="src" />
<file md5sum="356e8538bd494e889591c295d096257d" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-scram.c" role="src" />
<file md5sum="9ca3d2b6878485c509d09fdbdec26d25" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-secure-channel-private.h" role="src" />
<file md5sum="706662911975f9c4a8dbc9bb58bf88fb" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-secure-channel.c" role="src" />
<file md5sum="62952629a3601cdda53fb5f10acdb11e" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-secure-transport-private.h" role="src" />
<file md5sum="1e493ede6ba10164b2dd919a877acaa3" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-secure-transport.c" role="src" />
<file md5sum="744d0a63a5958ecde5686ec6c75e64bb" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-api-private.h" role="src" />
<file md5sum="614dfff288d308369f4a0b2934e47d6c" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-api.c" role="src" />
<file md5sum="5c5a73c1c26ffb5c69414279611d0791" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-api.h" role="src" />
<file md5sum="f601e7fca697152edea5bdee6d6e57ab" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-description-private.h" role="src" />
<file md5sum="29757e3b043b5b204759cc6789f9d409" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-description.c" role="src" />
<file md5sum="96532c20a0c2b6c0da87ebf2296a0f38" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-description.h" role="src" />
<file md5sum="f45832b6d845d4473a8262359d4c1c20" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-monitor-private.h" role="src" />
<file md5sum="abd7665f77ec03761e21c989c8c40058" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-monitor.c" role="src" />
<file md5sum="d1c3b137e3a5158c39594eab77563479" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-stream-private.h" role="src" />
<file md5sum="facdcd86b82d518389204f4430f759f1" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-server-stream.c" role="src" />
<file md5sum="c0884e82cad228e046d1adbca382806b" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-set-private.h" role="src" />
<file md5sum="ae7ea547d061ddd2b03ddd33a43f3336" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-set.c" role="src" />
<file md5sum="6af7a5d99b77086246d15d428ebdf8fd" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-shared-private.h" role="src" />
<file md5sum="76e917deb8f8f7a112e929a199a30f49" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-shared.c" role="src" />
<file md5sum="8b8c383174859350d1980a1d6b1d60d2" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-sleep.h" role="src" />
<file md5sum="3a7b540fcf988ee93f3808cafe018463" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-socket-private.h" role="src" />
<file md5sum="eba9dc9657335d2d23e45ebccaaa4133" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-socket.c" role="src" />
<file md5sum="f56c25a05eed1122c80eb58d13c6242f" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-socket.h" role="src" />
<file md5sum="26fbdcf6cc22e129578c21920ac258ed" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-ssl-private.h" role="src" />
<file md5sum="29ee3fd9cfdc24894cad74365a914576" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-ssl.c" role="src" />
<file md5sum="09228dec89de7b0a91762153b12adbbd" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-ssl.h" role="src" />
<file md5sum="84f9561d10ce462699c4defc0895e714" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-sspi-private.h" role="src" />
<file md5sum="af93460c4a40ab6143ff504e663b3515" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-sspi.c" role="src" />
<file md5sum="f798bf3285af9db3d2dd28f5845e9cc4" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-buffered.c" role="src" />
<file md5sum="4410dd658fe5fb5bbc86d37b3118dcec" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-buffered.h" role="src" />
<file md5sum="01da77dc4841919f0daae5e630bcb951" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-file.c" role="src" />
<file md5sum="fa26aca0dfc3d40aa9b82be790dd901f" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-file.h" role="src" />
<file md5sum="61fd008914c88228844c083c361b997b" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-gridfs-download-private.h" role="src" />
<file md5sum="089d73e7795cdc7a236b1b4a48de8486" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-gridfs-download.c" role="src" />
<file md5sum="07aa0af78f2111bc0042a34d4a6849c5" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-gridfs-upload-private.h" role="src" />
<file md5sum="5e181a6bf915fa8c625d423820fd6272" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-gridfs-upload.c" role="src" />
<file md5sum="32d305a739ed8a25683202574262e081" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-gridfs.c" role="src" />
<file md5sum="b80ca98b508f7fc1587573f857673ba8" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-gridfs.h" role="src" />
<file md5sum="3ef5ca2e53cb3a7e69ec74a7ae2a3c18" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-private.h" role="src" />
<file md5sum="b814ded5e440b63e1d1bbef96b910559" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-socket.c" role="src" />
<file md5sum="fe32b6723e9dbb7c57914cc1c79a052b" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-socket.h" role="src" />
<file md5sum="a5f35b30b8b2a75e96c2d33208708341" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-libressl-private.h" role="src" />
<file md5sum="b00593cd81edfca7e5d4a1c22c3576d8" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-libressl.c" role="src" />
<file md5sum="253d7462744eaf0d2319223f2681dc92" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-libressl.h" role="src" />
<file md5sum="267637fbf5afb15b026354e55fa86bfd" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-openssl-bio-private.h" role="src" />
<file md5sum="d0efafe522aa92194b249772113499e7" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-openssl-bio.c" role="src" />
<file md5sum="03ed470a68d30e8e1b6081904eac680d" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-openssl-private.h" role="src" />
<file md5sum="889ef998af7d463d95869187aa0c5e2f" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-openssl.c" role="src" />
<file md5sum="cd14a482a1be5651469b7d4f98205a6f" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-openssl.h" role="src" />
<file md5sum="9e8cfc9f1ac14f5eac9e62d9fc82e14c" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-private.h" role="src" />
<file md5sum="1424428cae7217f454542aa6f345c946" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-secure-channel-private.h" role="src" />
<file md5sum="2c7ea3228969b18d7a84b82d58001444" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-secure-channel.c" role="src" />
<file md5sum="55b489bda4cf0a5f408a96f31f8a804f" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-secure-channel.h" role="src" />
<file md5sum="b6e8d98e4b49562daab8be79b71492a3" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-secure-transport-private.h" role="src" />
<file md5sum="07c3d524da9a2dde68606098ea48a667" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-secure-transport.c" role="src" />
<file md5sum="b8c9a63ae86e076f0b0c54dd9389fac9" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls-secure-transport.h" role="src" />
<file md5sum="bbfbe0c5e1f45fb268fff7ab7f0ac983" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls.c" role="src" />
<file md5sum="722f265383c8a9407ef629d9005f2da3" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream-tls.h" role="src" />
<file md5sum="236aac4441d2bb12263229d23f98bcd5" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream.c" role="src" />
<file md5sum="873f57b470e91ee636fcf70a0ae2e7e0" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-stream.h" role="src" />
<file md5sum="2e7e65c2c9c5a240bb1bd050526df3ba" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-structured-log-private.h" role="src" />
<file md5sum="3c25bdaa49a46d60f784d042226885ab" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-structured-log.c" role="src" />
<file md5sum="cfb69996468137fe8e3faf08e6dadd28" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-structured-log.h" role="src" />
<file md5sum="05cb64de5eb1a3ec7571bccea876cb0e" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-thread-private.h" role="src" />
<file md5sum="2a94a355dfaf49f21d2986fbd5dc5a7b" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-timeout-private.h" role="src" />
<file md5sum="aecfbaaf5f6dddd07969aa440eefcd47" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-timeout.c" role="src" />
<file md5sum="b4aaebe8eb5809c81cfc9774ce1c3d4c" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-background-monitoring-private.h" role="src" />
<file md5sum="132f7caa7c370185c4ba6ad7efc790f9" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-background-monitoring.c" role="src" />
<file md5sum="ee920fc7e29932dd238a311929030075" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-description-apm-private.h" role="src" />
<file md5sum="274cf882fbc92e8b5632695127aba2df" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-description-apm.c" role="src" />
<file md5sum="639fad572cbfdaafb0c941a2efd96450" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-description-private.h" role="src" />
<file md5sum="028ecf1a8f7f28a02f18e671c1df7f01" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-description.c" role="src" />
<file md5sum="7de828c695845b4fd4616b7dfacdcac2" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-description.h" role="src" />
<file md5sum="b7a2dd3937dfa6041706e1a86986219b" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-private.h" role="src" />
<file md5sum="200f67d855f289b5d270af05a32cefce" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-scanner-private.h" role="src" />
<file md5sum="3d1e3ada140ecd03fcb14b9240432b3f" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology-scanner.c" role="src" />
<file md5sum="a56ae7c4875fba3c05da935523a9ca28" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-topology.c" role="src" />
<file md5sum="eedc18c9ebe7bd3233f1c050e76259e0" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-trace-private.h" role="src" />
<file md5sum="e89a6af65e9b898a8e6c3d2cfb646877" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-ts-pool-private.h" role="src" />
<file md5sum="a6161c75a2c276f77d486ea20774a079" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-ts-pool.c" role="src" />
<file md5sum="9afaad4064a213d7fd925e298cdeeb95" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-uri-private.h" role="src" />
- <file md5sum="08ce37c5e6a3147bcfacea339f67c059" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-uri.c" role="src" />
+ <file md5sum="b04776f78627df682bb89e95ffb1bdb5" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-uri.c" role="src" />
<file md5sum="c2b88093f22907042c819abb9e640f9c" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-uri.h" role="src" />
<file md5sum="af6cbf96ebf0d620ba06c2277351ca80" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-util-private.h" role="src" />
<file md5sum="28631c43c7814e896075cabc9aaf5872" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-util.c" role="src" />
<file md5sum="e657811a048738b30192d910b428a4fa" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-version-functions.c" role="src" />
<file md5sum="9cb029f51540bb828acd37c896354a61" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-version-functions.h" role="src" />
- <file md5sum="0ec1b67971521a2b0975f0bd1dd680b6" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-version.h" role="src" />
+ <file md5sum="8b03919723fb3d7dcfefc63d013c676f" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-version.h" role="src" />
<file md5sum="079ea4d9b4f700a8a2b466c2588cf88c" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-version.h.in" role="src" />
- <file md5sum="0636a73c53ae222f4d22ee9e8f6eef63" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-write-command-private.h" role="src" />
- <file md5sum="9a068de9a9d36373c625a1a49f303901" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-write-command.c" role="src" />
+ <file md5sum="8ecf740339ec5d7630bc701f67c14f7c" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-write-command-private.h" role="src" />
+ <file md5sum="748d608d92e5655589f358edda8a0e16" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-write-command.c" role="src" />
<file md5sum="b26445ae3cdb15aeb298b45715991d51" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-write-concern-private.h" role="src" />
<file md5sum="867c6602f3c2bd71dfcababea758863c" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-write-concern.c" role="src" />
<file md5sum="7cd8bb6b81287412cb796ba0b3caf4cf" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc-write-concern.h" role="src" />
<file md5sum="169b26bb131c074d07a2c813ccbd16bc" name="src/libmongoc/src/libmongoc/src/mongoc/mongoc.h" role="src" />
<file md5sum="f9d93f1ef72269fca5efc4e8e34ff6d1" name="src/libmongoc/src/libmongoc/src/mongoc/service-gcp.c" role="src" />
<file md5sum="3979506ddd513d8d7f792f07dff9baeb" name="src/libmongoc/src/libmongoc/src/mongoc/service-gcp.h" role="src" />
<file md5sum="f97452a858a2f22a168016bd68c05178" name="src/libmongoc/src/libmongoc/src/mongoc/uthash.h" role="src" />
<file md5sum="bdfaf1366fff5f890f7f83e3be58551f" name="src/libmongoc/src/libmongoc/src/mongoc/utlist.h" role="src" />
<file md5sum="a94c951db85f6f8620ea499dbbac41d9" name="src/libmongoc/src/utf8proc-2.8.0/utf8proc.c" role="src" />
<file md5sum="fc4a06fecad45716af5b1a5bd21ad689" name="src/libmongoc/src/utf8proc-2.8.0/utf8proc.h" role="src" />
<file md5sum="68c4131e3dbb7ca4facfae88b864f90e" name="src/libmongoc/src/utf8proc-2.8.0/utf8proc_data.c" role="src" />
<file md5sum="5c2d774b2ea5505093daa744580123fb" name="src/libmongoc/src/uthash/uthash-2.3.0/uthash.h" role="src" />
<file md5sum="09693351d290452327e081b62600c29d" name="src/libmongoc/src/uthash/uthash-2.3.0/utlist.h" role="src" />
<file md5sum="cea51e08d9b176c6bf8b5820169d4102" name="src/libmongoc/src/zlib-1.3.1/adler32.c" role="src" />
<file md5sum="b0b5688c87d809bb32d0923dbef28ee6" name="src/libmongoc/src/zlib-1.3.1/compress.c" role="src" />
<file md5sum="47f7b459ecb8e1cc0240d9ae8dda8e6e" name="src/libmongoc/src/zlib-1.3.1/crc32.c" role="src" />
<file md5sum="0ce0ac9394905aa53ed0a915620d9e5d" name="src/libmongoc/src/zlib-1.3.1/crc32.h" role="src" />
<file md5sum="66b59a69012d6f7b6367b9aaa12e6e61" name="src/libmongoc/src/zlib-1.3.1/deflate.c" role="src" />
<file md5sum="ee581a435edb549eafd3debd13405e10" name="src/libmongoc/src/zlib-1.3.1/deflate.h" role="src" />
<file md5sum="83049e4eaab1319f7ed94f15e7de5c4c" name="src/libmongoc/src/zlib-1.3.1/gzclose.c" role="src" />
<file md5sum="87cb921cd718b1d70b1b5e53531f7877" name="src/libmongoc/src/zlib-1.3.1/gzguts.h" role="src" />
<file md5sum="b4425988f5aa88d1a99e3fb4383ec204" name="src/libmongoc/src/zlib-1.3.1/gzlib.c" role="src" />
<file md5sum="1c8f8dfe08e58d6088a3b6c9bf4160bd" name="src/libmongoc/src/zlib-1.3.1/gzread.c" role="src" />
<file md5sum="fc122bb96017e7a19828e04a1b3dd564" name="src/libmongoc/src/zlib-1.3.1/gzwrite.c" role="src" />
<file md5sum="1b8a0a4ebb220896e2610d292b821ce0" name="src/libmongoc/src/zlib-1.3.1/infback.c" role="src" />
<file md5sum="1846b459fac461ded03f741f4953dc00" name="src/libmongoc/src/zlib-1.3.1/inffast.c" role="src" />
<file md5sum="6c907e4d7c65aff48183101b66a6133b" name="src/libmongoc/src/zlib-1.3.1/inffast.h" role="src" />
<file md5sum="7fa3e91804601b6618c915b76a8dc332" name="src/libmongoc/src/zlib-1.3.1/inffixed.h" role="src" />
<file md5sum="c300e231ec51960c347b95b07345f9d7" name="src/libmongoc/src/zlib-1.3.1/inflate.c" role="src" />
<file md5sum="819fb5556d0c65ba2577ee379b4641c0" name="src/libmongoc/src/zlib-1.3.1/inflate.h" role="src" />
<file md5sum="605a4056f9d01d94f0d53042af8f614b" name="src/libmongoc/src/zlib-1.3.1/inftrees.c" role="src" />
<file md5sum="9c8651504da6794ab1989db9a6ed082e" name="src/libmongoc/src/zlib-1.3.1/inftrees.h" role="src" />
<file md5sum="38161dcf9aaa70fb60bd9a2cb7fcc2b9" name="src/libmongoc/src/zlib-1.3.1/trees.c" role="src" />
<file md5sum="51fdcb3e2ccf60ca13c06920c89296a3" name="src/libmongoc/src/zlib-1.3.1/trees.h" role="src" />
<file md5sum="c76e0f7b934ca6695d453b1b51aa3112" name="src/libmongoc/src/zlib-1.3.1/uncompr.c" role="src" />
<file md5sum="055ee783ff2ea41a7e1be73baab1ee05" name="src/libmongoc/src/zlib-1.3.1/zconf.h" role="src" />
<file md5sum="055ee783ff2ea41a7e1be73baab1ee05" name="src/libmongoc/src/zlib-1.3.1/zconf.h.in" role="src" />
<file md5sum="fbab4a455b2970c36a44c9464c9625e4" name="src/libmongoc/src/zlib-1.3.1/zlib.h" role="src" />
<file md5sum="ef9f3b09085209c0193ab0686e1edd5b" name="src/libmongoc/src/zlib-1.3.1/zutil.c" role="src" />
<file md5sum="992eed746c2cd971e8d8af2b67941e1f" name="src/libmongoc/src/zlib-1.3.1/zutil.h" role="src" />
- <file md5sum="f24ddc338d7d2d0cfc3667cc1191cf08" name="src/libmongoc/VERSION_CURRENT" role="src" />
+ <file md5sum="7b4704e6353c20e6c33c5c383eb3dc6b" name="src/libmongoc/VERSION_CURRENT" role="src" />
<file md5sum="d51d8a5b18b24ceb8373aed513d74e63" name="src/libmongocrypt-compat/mongocrypt/mongocrypt.h" role="src" />
<file md5sum="5f1539690df7aa8a72c495ef456aec0c" name="src/libmongocrypt-compat/mongocrypt-export.h" role="src" />
<file md5sum="ffc011eff957abdff3b1b2dc3360c9ff" name="src/libmongocrypt/kms-message/src/kms_message/kms_azure_request.h" role="src" />
<file md5sum="178bd08ac73470d35b4986e388085161" name="src/libmongocrypt/kms-message/src/kms_message/kms_b64.h" role="src" />
<file md5sum="39ee9cf46b0439403a0f7c8073f583d5" name="src/libmongocrypt/kms-message/src/kms_message/kms_caller_identity_request.h" role="src" />
<file md5sum="8ebc97b8d9401873858ade801e9feb35" name="src/libmongocrypt/kms-message/src/kms_message/kms_decrypt_request.h" role="src" />
<file md5sum="d0fed9c2821dff65ae9dc6879ee881b6" name="src/libmongocrypt/kms-message/src/kms_message/kms_encrypt_request.h" role="src" />
<file md5sum="610a7df9b3f166d1173a890a19784b84" name="src/libmongocrypt/kms-message/src/kms_message/kms_gcp_request.h" role="src" />
<file md5sum="1522adee9e0ade465c313af38aa7aefe" name="src/libmongocrypt/kms-message/src/kms_message/kms_kmip_request.h" role="src" />
<file md5sum="98097ac94c63b8b4e3cabfd637a95315" name="src/libmongocrypt/kms-message/src/kms_message/kms_kmip_response.h" role="src" />
<file md5sum="0cd5c466ec235998c2a758540154ed75" name="src/libmongocrypt/kms-message/src/kms_message/kms_kmip_response_parser.h" role="src" />
<file md5sum="c1a35d0b49f3f920d16ffc84f4d8e373" name="src/libmongocrypt/kms-message/src/kms_message/kms_message.h" role="src" />
<file md5sum="cfef23bb3ac62cf8d3fbd8e08015f0c0" name="src/libmongocrypt/kms-message/src/kms_message/kms_message_defines.h" role="src" />
<file md5sum="5663ee4fe8bcca2dc395cd5be3617b44" name="src/libmongocrypt/kms-message/src/kms_message/kms_request.h" role="src" />
<file md5sum="ad85fcbd4c473f138818a4bd9e7f0815" name="src/libmongocrypt/kms-message/src/kms_message/kms_request_opt.h" role="src" />
<file md5sum="209083716262424fab84d670209755c8" name="src/libmongocrypt/kms-message/src/kms_message/kms_response.h" role="src" />
<file md5sum="6c5066d24cfbd1b4241fb854671503db" name="src/libmongocrypt/kms-message/src/kms_message/kms_response_parser.h" role="src" />
<file md5sum="e87486a63aa846e479f3bf1af7380038" name="src/libmongocrypt/kms-message/src/hexlify.c" role="src" />
<file md5sum="60664bb6d46c14b4eea28f15e6a082e5" name="src/libmongocrypt/kms-message/src/hexlify.h" role="src" />
<file md5sum="1e4af07511a196a91fd60a0e24a6e158" name="src/libmongocrypt/kms-message/src/kms_azure_request.c" role="src" />
<file md5sum="f464fe886184b4bdf04cc73eb17e24ef" name="src/libmongocrypt/kms-message/src/kms_b64.c" role="src" />
<file md5sum="29d5db2215a92ef6121c729f6c75ee00" name="src/libmongocrypt/kms-message/src/kms_caller_identity_request.c" role="src" />
<file md5sum="dc733fe6ab050e08cbd5689f1d2cba34" name="src/libmongocrypt/kms-message/src/kms_crypto.h" role="src" />
<file md5sum="1a549711223d3a9dc124951130fd0620" name="src/libmongocrypt/kms-message/src/kms_crypto_apple.c" role="src" />
<file md5sum="9876d4e3c0de2d0983ff5d68ff1555a4" name="src/libmongocrypt/kms-message/src/kms_crypto_libcrypto.c" role="src" />
<file md5sum="b8ecb9b69824d324900920d9b1a1db7d" name="src/libmongocrypt/kms-message/src/kms_crypto_none.c" role="src" />
<file md5sum="bbbf713e38e08b8046229dd15a657ab8" name="src/libmongocrypt/kms-message/src/kms_crypto_windows.c" role="src" />
<file md5sum="aba07d5c53233adfe5d8928b5ef92e06" name="src/libmongocrypt/kms-message/src/kms_decrypt_request.c" role="src" />
<file md5sum="65692a06262c9889f7ce0ae81928d390" name="src/libmongocrypt/kms-message/src/kms_encrypt_request.c" role="src" />
<file md5sum="d96caa47040b3d844be8720df0481477" name="src/libmongocrypt/kms-message/src/kms_endian_private.h" role="src" />
<file md5sum="7e00d14497770adaddad08e074ba80a6" name="src/libmongocrypt/kms-message/src/kms_gcp_request.c" role="src" />
<file md5sum="593d915279b88dcc90ccdc13562ade1d" name="src/libmongocrypt/kms-message/src/kms_kmip_item_type_private.h" role="src" />
<file md5sum="50d109ebf2a1a35f354ce4d77ad66327" name="src/libmongocrypt/kms-message/src/kms_kmip_reader_writer.c" role="src" />
<file md5sum="9a4ba49af76955cc7b5bf23ecca75ae3" name="src/libmongocrypt/kms-message/src/kms_kmip_reader_writer_private.h" role="src" />
<file md5sum="e26382512810f752e568e01ecf83d273" name="src/libmongocrypt/kms-message/src/kms_kmip_request.c" role="src" />
<file md5sum="ce4e975f079a2c7136909f2cc337f897" name="src/libmongocrypt/kms-message/src/kms_kmip_response.c" role="src" />
<file md5sum="ab89b217b929ac4340c9d22287185277" name="src/libmongocrypt/kms-message/src/kms_kmip_response_parser.c" role="src" />
<file md5sum="f64765a9c63171b8aa2c5fd7de738072" name="src/libmongocrypt/kms-message/src/kms_kmip_response_parser_private.h" role="src" />
<file md5sum="21898fd3923dfa059f2139a555643e14" name="src/libmongocrypt/kms-message/src/kms_kmip_result_reason_private.h" role="src" />
<file md5sum="8f826227b67ce2503aeb359cea5a3402" name="src/libmongocrypt/kms-message/src/kms_kmip_result_status_private.h" role="src" />
<file md5sum="e3cd5a25805733845177dc73abf6b11a" name="src/libmongocrypt/kms-message/src/kms_kmip_tag_type_private.h" role="src" />
<file md5sum="2a7f41d0b533d839384c449f05db13c5" name="src/libmongocrypt/kms-message/src/kms_kv_list.c" role="src" />
<file md5sum="69e374f65d9b21695d194e3495941f37" name="src/libmongocrypt/kms-message/src/kms_kv_list.h" role="src" />
<file md5sum="c2189649bce27380a9b07897662901e0" name="src/libmongocrypt/kms-message/src/kms_message.c" role="src" />
<file md5sum="e9c29bb4048e79de614284c77414888f" name="src/libmongocrypt/kms-message/src/kms_message_private.h" role="src" />
<file md5sum="f281a3def21d13d20c78836c3548315f" name="src/libmongocrypt/kms-message/src/kms_port.c" role="src" />
<file md5sum="6a768c38583f0f42f05e6da6d6f61dc4" name="src/libmongocrypt/kms-message/src/kms_port.h" role="src" />
<file md5sum="c627ca26536d393842c2e158dc2eb9c7" name="src/libmongocrypt/kms-message/src/kms_request.c" role="src" />
<file md5sum="fd15be17d87fa70a2bab1a0309b71b82" name="src/libmongocrypt/kms-message/src/kms_request_opt.c" role="src" />
<file md5sum="c7079940f8096ea3bce05d343de44481" name="src/libmongocrypt/kms-message/src/kms_request_opt_private.h" role="src" />
<file md5sum="1d8afba41df3771c71e52b89c006d1b7" name="src/libmongocrypt/kms-message/src/kms_request_str.c" role="src" />
<file md5sum="8943a55e4b590e6aaf6e7df818922699" name="src/libmongocrypt/kms-message/src/kms_request_str.h" role="src" />
<file md5sum="92b75e5851d90b8d28949ef18417c789" name="src/libmongocrypt/kms-message/src/kms_response.c" role="src" />
<file md5sum="f6ced5985dc5ce3009b2a2717268208d" name="src/libmongocrypt/kms-message/src/kms_response_parser.c" role="src" />
<file md5sum="dff15b5018efb6269a2a0269c5ddb798" name="src/libmongocrypt/kms-message/src/sort.c" role="src" />
<file md5sum="18f9bd055f6a60e7702603b6b8bf07d5" name="src/libmongocrypt/kms-message/src/sort.h" role="src" />
<file md5sum="3ac8424f141513ead5f00a87b617bcd0" name="src/libmongocrypt/src/crypto/cng.c" role="src" />
<file md5sum="d447760e0757d37460f33edd35f4e721" name="src/libmongocrypt/src/crypto/commoncrypto.c" role="src" />
<file md5sum="503c28153b757bdfeaa290578701d39e" name="src/libmongocrypt/src/crypto/libcrypto.c" role="src" />
<file md5sum="e9c081f95024633fa2d5ffbb2e04fe16" name="src/libmongocrypt/src/crypto/none.c" role="src" />
<file md5sum="3fa8b3ebbf333e3feae03c58dff8a7be" name="src/libmongocrypt/src/mlib/endian.h" role="src" />
<file md5sum="2d7dc78d3df39aea35816406beafa01b" name="src/libmongocrypt/src/mlib/error.h" role="src" />
<file md5sum="2b50002fef2f60e074dcc79571b12199" name="src/libmongocrypt/src/mlib/int128.h" role="src" />
<file md5sum="509cd04b1a2559cb64c2b6920b8cddb3" name="src/libmongocrypt/src/mlib/macros.h" role="src" />
<file md5sum="b3a524c0cbd9e0f0e0edfeae04974eea" name="src/libmongocrypt/src/mlib/path.h" role="src" />
<file md5sum="23c6292c47cf19bac82823c793b3e5c1" name="src/libmongocrypt/src/mlib/str.h" role="src" />
<file md5sum="e4fda5158a681c96467131a2ad1e659c" name="src/libmongocrypt/src/mlib/thread.h" role="src" />
<file md5sum="9dbd0440750ffc0ef2bb8135f0d75900" name="src/libmongocrypt/src/mlib/user-check.h" role="src" />
<file md5sum="9c0cd74b3c026396ed50fd40839c1a26" name="src/libmongocrypt/src/mlib/windows-lean.h" role="src" />
<file md5sum="5fb6f3b8415556ff5694c7c52207caee" name="src/libmongocrypt/src/os_posix/os_dll.c" role="src" />
<file md5sum="f7dec90cf8f0979d483f519bff304e57" name="src/libmongocrypt/src/os_posix/os_mutex.c" role="src" />
<file md5sum="75f49c83b3beb515ceaf9c17f5742c38" name="src/libmongocrypt/src/os_win/os_dll.c" role="src" />
<file md5sum="16e57d2c27c267fdadfb2659e309ed7b" name="src/libmongocrypt/src/os_win/os_mutex.c" role="src" />
<file md5sum="a1cd86aabe9892ba2ef25ffca2e39821" name="src/libmongocrypt/src/mc-array-private.h" role="src" />
<file md5sum="39d4da69cb8ece52d44305e7474cf15d" name="src/libmongocrypt/src/mc-array.c" role="src" />
<file md5sum="b62233f5e7e2571030c1cf2578076051" name="src/libmongocrypt/src/mc-check-conversions-private.h" role="src" />
<file md5sum="986c515e605f89c01df5a3eb22b57584" name="src/libmongocrypt/src/mc-cmp-private.h" role="src" />
<file md5sum="7545339a44fa4b897e1a0ac38b21e3fc" name="src/libmongocrypt/src/mc-dec128.h" role="src" />
<file md5sum="bfc605e8a8a44077009fb07adce3f969" name="src/libmongocrypt/src/mc-efc-private.h" role="src" />
<file md5sum="3c76e4d68c9b7878b837533e9b4da88e" name="src/libmongocrypt/src/mc-efc.c" role="src" />
<file md5sum="952a4d1f34d3f1e7a429915bce1c2bb8" name="src/libmongocrypt/src/mc-fle-blob-subtype-private.h" role="src" />
<file md5sum="f892d3c13f8125675b59d2af099d010d" name="src/libmongocrypt/src/mc-fle2-encryption-placeholder-private.h" role="src" />
<file md5sum="71255ae09ead17c19c6cf0c8e2f7dc9c" name="src/libmongocrypt/src/mc-fle2-encryption-placeholder.c" role="src" />
<file md5sum="4ab263795d16ba3e0195d4fa4308c37c" name="src/libmongocrypt/src/mc-fle2-find-equality-payload-private-v2.h" role="src" />
<file md5sum="bba6d97092fe0f578fd454913e39ccb0" name="src/libmongocrypt/src/mc-fle2-find-equality-payload-private.h" role="src" />
<file md5sum="7852db255d41eb0ce9009106cfd9871f" name="src/libmongocrypt/src/mc-fle2-find-equality-payload-v2.c" role="src" />
<file md5sum="63874aa04b837d7b2316563b81978e4b" name="src/libmongocrypt/src/mc-fle2-find-equality-payload.c" role="src" />
<file md5sum="7bfa9006afa0a701442f3b538dcc2d5b" name="src/libmongocrypt/src/mc-fle2-find-range-payload-private-v2.h" role="src" />
<file md5sum="4ffcfbc62cfcf694579165292c6e8db9" name="src/libmongocrypt/src/mc-fle2-find-range-payload-private.h" role="src" />
<file md5sum="c4653f64fce270ed8f7580eeff97a023" name="src/libmongocrypt/src/mc-fle2-find-range-payload-v2.c" role="src" />
<file md5sum="9e1c2f8c30bdba999f5f079b4bf19afb" name="src/libmongocrypt/src/mc-fle2-find-range-payload.c" role="src" />
<file md5sum="e8ea4957b65199dfce016892857e70fb" name="src/libmongocrypt/src/mc-fle2-insert-update-payload-private-v2.h" role="src" />
<file md5sum="2eed2b0f9058122b349f79a0c884bb55" name="src/libmongocrypt/src/mc-fle2-insert-update-payload-private.h" role="src" />
<file md5sum="6a74d21a100f5e31042210d88ceabc92" name="src/libmongocrypt/src/mc-fle2-insert-update-payload-v2.c" role="src" />
<file md5sum="93945c871a9cab8310e136c903c8d628" name="src/libmongocrypt/src/mc-fle2-insert-update-payload.c" role="src" />
<file md5sum="b1c632b398dfe6ef3b9adf2d540b6687" name="src/libmongocrypt/src/mc-fle2-payload-iev-private-v2.h" role="src" />
<file md5sum="ed21ac038797e0032a6a17789aa9fb39" name="src/libmongocrypt/src/mc-fle2-payload-iev-private.h" role="src" />
<file md5sum="401f6db24bc46e76347ceff88d161476" name="src/libmongocrypt/src/mc-fle2-payload-iev-v2.c" role="src" />
<file md5sum="8c380a4197a79a8312479d24c46640ba" name="src/libmongocrypt/src/mc-fle2-payload-iev.c" role="src" />
<file md5sum="a4f1cdd59a1e9039d280faf1ee2b51fd" name="src/libmongocrypt/src/mc-fle2-payload-uev-common-private.h" role="src" />
<file md5sum="59e8fdacb1cc6bbb2c73477a6f8b922e" name="src/libmongocrypt/src/mc-fle2-payload-uev-common.c" role="src" />
<file md5sum="aeb2f7a3056bfd2f0810908217edb06c" name="src/libmongocrypt/src/mc-fle2-payload-uev-private.h" role="src" />
<file md5sum="a1e92c0ffe810ae25690b94c24803ea3" name="src/libmongocrypt/src/mc-fle2-payload-uev-v2-private.h" role="src" />
<file md5sum="c78b82a72987ba22671a4d92e425297c" name="src/libmongocrypt/src/mc-fle2-payload-uev-v2.c" role="src" />
<file md5sum="1730e9904bf6bd2d003e363eae254cb5" name="src/libmongocrypt/src/mc-fle2-payload-uev.c" role="src" />
<file md5sum="ac581acbe89c603b79fd95465e023829" name="src/libmongocrypt/src/mc-fle2-range-operator-private.h" role="src" />
<file md5sum="6297b3fe9cf66b8a900294112c17f33f" name="src/libmongocrypt/src/mc-fle2-rfds-private.h" role="src" />
<file md5sum="61b35ec7ef5d278f1b70884fe6bea51e" name="src/libmongocrypt/src/mc-fle2-rfds.c" role="src" />
<file md5sum="7bc995ab73edc94db0f602431f27bcf8" name="src/libmongocrypt/src/mc-fle2-tag-and-encrypted-metadata-block-private.h" role="src" />
<file md5sum="3fc005993b34c47df1ec2e5a8a58a248" name="src/libmongocrypt/src/mc-fle2-tag-and-encrypted-metadata-block.c" role="src" />
<file md5sum="645b1dc64ab766c5e275a6f8d861a616" name="src/libmongocrypt/src/mc-optional-private.h" role="src" />
<file md5sum="49ad01503a6984f64d2e73f71ba28814" name="src/libmongocrypt/src/mc-range-edge-generation-private.h" role="src" />
<file md5sum="feede482b6b9da858ebd65fe499aadcd" name="src/libmongocrypt/src/mc-range-edge-generation.c" role="src" />
<file md5sum="bde78629625301e437d5b1dc1c61257f" name="src/libmongocrypt/src/mc-range-encoding-private.h" role="src" />
<file md5sum="685ed7482b27d38e93fb5d96bd5c3897" name="src/libmongocrypt/src/mc-range-encoding.c" role="src" />
<file md5sum="c0e6862f243b80efa7afa0808e27a845" name="src/libmongocrypt/src/mc-range-mincover-generator.template.h" role="src" />
<file md5sum="e263f1f21d4275391015bf9a9f2f4a19" name="src/libmongocrypt/src/mc-range-mincover-private.h" role="src" />
<file md5sum="86e5363c9b9ce5d6d8fdc764ac9240ab" name="src/libmongocrypt/src/mc-range-mincover.c" role="src" />
<file md5sum="ccb82065f1e4fdd484e825e10f7f05ea" name="src/libmongocrypt/src/mc-rangeopts-private.h" role="src" />
<file md5sum="0b5612a2434569bc14bdfa3e438f6861" name="src/libmongocrypt/src/mc-rangeopts.c" role="src" />
<file md5sum="0d859d06f094d6212fc6d55b4cd15bed" name="src/libmongocrypt/src/mc-reader-private.h" role="src" />
<file md5sum="89739eaf5dcf208db01120e79dc774eb" name="src/libmongocrypt/src/mc-reader.c" role="src" />
<file md5sum="222a416539760c303676e7a3d9f3f2ba" name="src/libmongocrypt/src/mc-tokens-private.h" role="src" />
<file md5sum="948a9e37d4c4fb75be345b9c19604011" name="src/libmongocrypt/src/mc-tokens.c" role="src" />
<file md5sum="b3008b1750223382085b66517dc3a908" name="src/libmongocrypt/src/mc-writer-private.h" role="src" />
<file md5sum="b5afdc80b0568f83f84aa6afbf0cf0f6" name="src/libmongocrypt/src/mc-writer.c" role="src" />
<file md5sum="960d3838ab19c75af6b2fe321a9fe171" name="src/libmongocrypt/src/mongo_crypt-v1.h" role="src" />
<file md5sum="f591b24307fd3273754998de7740f662" name="src/libmongocrypt/src/mongocrypt-binary-private.h" role="src" />
<file md5sum="ea8b4942e64aef9260535684b298a10a" name="src/libmongocrypt/src/mongocrypt-binary.c" role="src" />
<file md5sum="25f20f04cb13cac9e154d80651a5a8b5" name="src/libmongocrypt/src/mongocrypt-buffer-private.h" role="src" />
<file md5sum="869744078bc345a9a4c88a9d13e3af45" name="src/libmongocrypt/src/mongocrypt-buffer.c" role="src" />
<file md5sum="3ed17f811203aca389e0da69f67a902a" name="src/libmongocrypt/src/mongocrypt-cache-collinfo-private.h" role="src" />
<file md5sum="ed637b780aa383cd0c8433b01824e6d2" name="src/libmongocrypt/src/mongocrypt-cache-collinfo.c" role="src" />
<file md5sum="1602b032675f483d5010f7cf40698b31" name="src/libmongocrypt/src/mongocrypt-cache-key-private.h" role="src" />
<file md5sum="d24a251eafb3bbeb884895ddbe64d18a" name="src/libmongocrypt/src/mongocrypt-cache-key.c" role="src" />
<file md5sum="50d3371a8ae6f67dae7d6e64aedc0121" name="src/libmongocrypt/src/mongocrypt-cache-oauth-private.h" role="src" />
<file md5sum="8548a36fe54506d221b565040c08bf19" name="src/libmongocrypt/src/mongocrypt-cache-oauth.c" role="src" />
<file md5sum="b0d6745d6fcc03206c56d522302d0683" name="src/libmongocrypt/src/mongocrypt-cache-private.h" role="src" />
<file md5sum="e7f7da5a397b35b8a31d5caa4bc62d01" name="src/libmongocrypt/src/mongocrypt-cache.c" role="src" />
<file md5sum="18515fe718cbeb4f8167185bffc8e97c" name="src/libmongocrypt/src/mongocrypt-ciphertext-private.h" role="src" />
<file md5sum="251344561088eb6f585e869e7c19217a" name="src/libmongocrypt/src/mongocrypt-ciphertext.c" role="src" />
<file md5sum="01e44ce4e1c4c192a4a32d0a68e37eed" name="src/libmongocrypt/src/mongocrypt-compat.h" role="src" />
<file md5sum="81ee84e6f805f20cd141b96587b06757" name="src/libmongocrypt/src/mongocrypt-config.h" role="src" />
<file md5sum="da03665c049ef6d8f82f588830c73532" name="src/libmongocrypt/src/mongocrypt-config.h.in" role="src" />
<file md5sum="ba97ca66fe231ec9b2b9dd9091b6228e" name="src/libmongocrypt/src/mongocrypt-crypto-private.h" role="src" />
<file md5sum="cef3d9e9a6e56347a99f7e45467d02f0" name="src/libmongocrypt/src/mongocrypt-crypto.c" role="src" />
<file md5sum="329a95c5011d4e5027dcb2a56d66e0f2" name="src/libmongocrypt/src/mongocrypt-ctx-datakey.c" role="src" />
<file md5sum="7aa9d553966c4ab7707aec2cc8ac3e26" name="src/libmongocrypt/src/mongocrypt-ctx-decrypt.c" role="src" />
<file md5sum="a98133084b0a59caebb1774b4babd553" name="src/libmongocrypt/src/mongocrypt-ctx-encrypt.c" role="src" />
<file md5sum="f6d274c2fe86ca720b53f27b8dba0758" name="src/libmongocrypt/src/mongocrypt-ctx-private.h" role="src" />
<file md5sum="b77c3c5b316cef820e72b462cf661d2d" name="src/libmongocrypt/src/mongocrypt-ctx-rewrap-many-datakey.c" role="src" />
<file md5sum="f2891728ccb0add1abc394c33b3c0d66" name="src/libmongocrypt/src/mongocrypt-ctx.c" role="src" />
<file md5sum="124c5911979bad462bebf9669426a5bd" name="src/libmongocrypt/src/mongocrypt-dll-private.h" role="src" />
<file md5sum="ebc53bfc73c08bb99e7c203567013f63" name="src/libmongocrypt/src/mongocrypt-endian-private.h" role="src" />
<file md5sum="326e58b8431b39a0eee4c6c599ce863f" name="src/libmongocrypt/src/mongocrypt-endpoint-private.h" role="src" />
<file md5sum="f68df389f00fb2715fdda175e2ac5d52" name="src/libmongocrypt/src/mongocrypt-endpoint.c" role="src" />
<file md5sum="5f440c62aa1caa82bf9181964fc8916a" name="src/libmongocrypt/src/mongocrypt-kek-private.h" role="src" />
<file md5sum="52e091933de3af3af82fe5b1f032048a" name="src/libmongocrypt/src/mongocrypt-kek.c" role="src" />
<file md5sum="93565598f5d3e70a66318439e2c5fe28" name="src/libmongocrypt/src/mongocrypt-key-broker-private.h" role="src" />
<file md5sum="89225668982c18272674abc1c4790a84" name="src/libmongocrypt/src/mongocrypt-key-broker.c" role="src" />
<file md5sum="afcadb2ebae5f404204a4163c8244ce6" name="src/libmongocrypt/src/mongocrypt-key-private.h" role="src" />
<file md5sum="2275eecb6b238d848fbb8372763df956" name="src/libmongocrypt/src/mongocrypt-key.c" role="src" />
<file md5sum="0ed3c1c62b00f3ef4548365dd496c8ec" name="src/libmongocrypt/src/mongocrypt-kms-ctx-private.h" role="src" />
<file md5sum="db9b2f0317391e66209adfd68807e5e9" name="src/libmongocrypt/src/mongocrypt-kms-ctx.c" role="src" />
<file md5sum="801676eb46bb4cd160bc677e208fd793" name="src/libmongocrypt/src/mongocrypt-log-private.h" role="src" />
<file md5sum="beb7e0b69f363166fe5a123f21098756" name="src/libmongocrypt/src/mongocrypt-log.c" role="src" />
<file md5sum="55dde9934b59991f68777ffef054745d" name="src/libmongocrypt/src/mongocrypt-marking-private.h" role="src" />
<file md5sum="4c39d0e2fd0f19f070882b6d03fec43c" name="src/libmongocrypt/src/mongocrypt-marking.c" role="src" />
<file md5sum="6df239ff1383acbb7fb6946cb47758bf" name="src/libmongocrypt/src/mongocrypt-mutex-private.h" role="src" />
<file md5sum="9b75c0aebae053a740893949c56e9b95" name="src/libmongocrypt/src/mongocrypt-opts-private.h" role="src" />
<file md5sum="be482757adbd9b602cf69097027f2c70" name="src/libmongocrypt/src/mongocrypt-opts.c" role="src" />
<file md5sum="310aa37c47dbf25c486026684bf05c3b" name="src/libmongocrypt/src/mongocrypt-private.h" role="src" />
<file md5sum="86b851d13a6d51e436c09b961be8dee2" name="src/libmongocrypt/src/mongocrypt-status-private.h" role="src" />
<file md5sum="a6554580d43531969e70dd01d4002f13" name="src/libmongocrypt/src/mongocrypt-status.c" role="src" />
<file md5sum="b8fc7157461901e9db6c6445805134cc" name="src/libmongocrypt/src/mongocrypt-traverse-util-private.h" role="src" />
<file md5sum="50143472bdcff54e56596770c1975c79" name="src/libmongocrypt/src/mongocrypt-traverse-util.c" role="src" />
<file md5sum="fcb08a36335d6d88c3dfbe23060c0142" name="src/libmongocrypt/src/mongocrypt-util-private.h" role="src" />
<file md5sum="3d87bc0de03c09303bb9c2af6b6b8271" name="src/libmongocrypt/src/mongocrypt-util.c" role="src" />
<file md5sum="334915b96f6fb3c14978b3005a814351" name="src/libmongocrypt/src/mongocrypt.c" role="src" />
<file md5sum="8581e2f173c20c8f3fd7dbb700464375" name="src/libmongocrypt/src/mongocrypt.h" role="src" />
<file md5sum="bac2df5bff521bdd5b43dae786e9918e" name="src/LIBMONGOCRYPT_VERSION_CURRENT" role="src" />
- <file md5sum="f24ddc338d7d2d0cfc3667cc1191cf08" name="src/LIBMONGOC_VERSION_CURRENT" role="src" />
+ <file md5sum="7b4704e6353c20e6c33c5c383eb3dc6b" name="src/LIBMONGOC_VERSION_CURRENT" role="src" />
<file md5sum="a1957be414805c545d827294d4f866ff" name="src/functions_arginfo.h" role="src" />
<file md5sum="4eafb7a12b659e48105c696f406161b1" name="src/phongo_apm.c" role="src" />
<file md5sum="77a9ea21f15bc0112af0540372bbb10f" name="src/phongo_apm.h" role="src" />
<file md5sum="c1ebaa75872f988de4747b27b1214704" name="src/phongo_atomic.c" role="src" />
<file md5sum="9b7e196a0e4438ee60abaa2f65b5d7bf" name="src/phongo_atomic.h" role="src" />
<file md5sum="531019c1d991456672c8ebf012e50622" name="src/phongo_bson.c" role="src" />
<file md5sum="58735818a5df1a9d533549bedd182865" name="src/phongo_bson.h" role="src" />
<file md5sum="ce3933ca5e62a0ec42917c088d65d011" name="src/phongo_bson_encode.c" role="src" />
<file md5sum="0c2d200db86273153ece963fec599195" name="src/phongo_bson_encode.h" role="src" />
<file md5sum="a170540e77878d7c7b19932f093282f3" name="src/phongo_classes.h" role="src" />
<file md5sum="87ed551ef80304f0ff9cc12c5eac66cc" name="src/phongo_client.c" role="src" />
<file md5sum="02a717bdeddb957cd16505a29eb8285c" name="src/phongo_client.h" role="src" />
<file md5sum="e1359a0456b33faa978f9275928b3ae4" name="src/phongo_compat.c" role="src" />
<file md5sum="ec9df0b365335f4cc3a9c6bbe2bfffbe" name="src/phongo_compat.h" role="src" />
<file md5sum="73b4ddb727956cf6ad56f2d019bff0eb" name="src/phongo_error.c" role="src" />
<file md5sum="136d20717f05027d7b90dd327460cbaf" name="src/phongo_error.h" role="src" />
<file md5sum="3547a3c2b7999715488add37390e5211" name="src/phongo_execute.c" role="src" />
<file md5sum="10fbaafb5ec80592feb6d0266a1890e2" name="src/phongo_execute.h" role="src" />
<file md5sum="59e465a147d74ba4b28ffecdfc85c1bf" name="src/phongo_ini.c" role="src" />
<file md5sum="0022955075b74e8480a29968a9b1fc2c" name="src/phongo_ini.h" role="src" />
<file md5sum="a559479c4a35c6b24bc7aaf0762a77e6" name="src/phongo_log.c" role="src" />
<file md5sum="b152a41e24c169b154c145d88fec7a53" name="src/phongo_log.h" role="src" />
<file md5sum="3216635a72a48218fc1d04e92900ab84" name="src/phongo_structs.h" role="src" />
<file md5sum="c76fca73145f76807ddb7e9a0cbcbdde" name="src/phongo_util.c" role="src" />
<file md5sum="0424534cc970f347aad0841098499620" name="src/phongo_util.h" role="src" />
<file md5sum="ca2c5031647b050893a81fef62317af2" name="tests/apm/bug0950-001.phpt" role="test" />
<file md5sum="ac49ecbadec528e0c4c779ae371ec6e0" name="tests/apm/bug0950-002.phpt" role="test" />
<file md5sum="bb48e35916a6fe95853670998bcc25f2" name="tests/apm/commandFailedEvent-001.phpt" role="test" />
<file md5sum="7c11442ee372181292e6ac8bb41feb50" name="tests/apm/commandFailedEvent-002.phpt" role="test" />
<file md5sum="53fedf7ed330a9df8129b0733e7d1534" name="tests/apm/commandFailedEvent-debug-001.phpt" role="test" />
<file md5sum="e2f6a6cd638c2d7441fedb540d5e699d" name="tests/apm/commandFailedEvent-getReply-001.phpt" role="test" />
<file md5sum="33f0fd0d4fe74e1928696adaaf8c060a" name="tests/apm/commandFailedEvent-getServerConnectionId-001.phpt" role="test" />
<file md5sum="9ff8cd76bcb5c67f2b25b6a082f5f2ac" name="tests/apm/commandFailedEvent-getServiceId-001.phpt" role="test" />
<file md5sum="62915505a26e5a39f65aed8e39cb41b4" name="tests/apm/commandFailedEvent-getServiceId-002.phpt" role="test" />
<file md5sum="c3ae1f1178a51d5b12cc486dd7ed162a" name="tests/apm/commandStartedEvent-001.phpt" role="test" />
<file md5sum="5364476cc8ad732326b85fa204050d25" name="tests/apm/commandStartedEvent-002.phpt" role="test" />
<file md5sum="f370f6503116bad8a548534a57f71e5e" name="tests/apm/commandStartedEvent-debug-001.phpt" role="test" />
<file md5sum="e69771c40ac38f7812615f309c93f72e" name="tests/apm/commandStartedEvent-getServerConnectionId-001.phpt" role="test" />
<file md5sum="6fe9970408f2adece14e9e5bd786401e" name="tests/apm/commandStartedEvent-getServiceId-001.phpt" role="test" />
<file md5sum="a49d45e514f2d748d9b1376e8cd73841" name="tests/apm/commandStartedEvent-getServiceId-002.phpt" role="test" />
<file md5sum="d7907173cc111b57a5960053a62f772b" name="tests/apm/commandSucceededEvent-001.phpt" role="test" />
<file md5sum="0a670be3be4d34c598fa51338dfcb7dd" name="tests/apm/commandSucceededEvent-002.phpt" role="test" />
<file md5sum="bc45c0396de330eed3511ec2d08dfd76" name="tests/apm/commandSucceededEvent-debug-001.phpt" role="test" />
<file md5sum="d5a11c30f4915632a4f15f1686c5fd8b" name="tests/apm/commandSucceededEvent-getServerConnectionId-001.phpt" role="test" />
<file md5sum="55163bebca760d63aa6f0c05036ea3db" name="tests/apm/commandSucceededEvent-getServiceId-001.phpt" role="test" />
<file md5sum="5c1cb73ab65177f29e00f53fabdf2fbf" name="tests/apm/commandSucceededEvent-getServiceId-002.phpt" role="test" />
<file md5sum="1189a9a0e147d5d442c9662f5ceb94e2" name="tests/apm/monitoring-addSubscriber-001.phpt" role="test" />
<file md5sum="ffa34b0faa26b4b3ff134e3e40782292" name="tests/apm/monitoring-addSubscriber-002.phpt" role="test" />
<file md5sum="8a925264177b435bcfeb045b1099eb39" name="tests/apm/monitoring-addSubscriber-003.phpt" role="test" />
<file md5sum="ca36943639ec50e6ea768309430f1bbf" name="tests/apm/monitoring-addSubscriber-004.phpt" role="test" />
<file md5sum="7b647f5ac8558eab19820924abd036cf" name="tests/apm/monitoring-removeSubscriber-001.phpt" role="test" />
<file md5sum="42675a6c7a5f95427c1e8cf2314ffba9" name="tests/apm/monitoring-removeSubscriber-002.phpt" role="test" />
<file md5sum="07c3b289663daff6376f002451bca98e" name="tests/apm/serverChangedEvent-001.phpt" role="test" />
<file md5sum="d46e79a12534439607c3d3270fb1a68c" name="tests/apm/serverClosedEvent-001.phpt" role="test" />
<file md5sum="95c25bd6ebf4e30e0a7812a52ff9c117" name="tests/apm/serverHeartbeatFailedEvent-001.phpt" role="test" />
<file md5sum="e62e516ba55c573f9c09aae111accbd6" name="tests/apm/serverHeartbeatStartedEvent-001.phpt" role="test" />
<file md5sum="39d485cd2bdf496a5a08aed6a900172f" name="tests/apm/serverHeartbeatSucceededEvent-001.phpt" role="test" />
<file md5sum="721afca55baa494a4a8468bdd1a3ed5c" name="tests/apm/serverOpeningEvent-001.phpt" role="test" />
<file md5sum="023bcab9d010aed805d54fdf0ce14e30" name="tests/apm/topologyChangedEvent-001.phpt" role="test" />
<file md5sum="69460132730ce989791caa05d154fdba" name="tests/apm/topologyClosedEvent-001.phpt" role="test" />
<file md5sum="01acee5f4f25d4234f03b56b373b7c8c" name="tests/apm/topologyOpeningEvent-001.phpt" role="test" />
<file md5sum="472f648d2e134b568d192ce624ddd0f1" name="tests/apm/topologyOpeningEvent-002.phpt" role="test" />
<file md5sum="1e7547138f963da568f5687a0edb94b4" name="tests/bson-corpus/array-decodeError-001.phpt" role="test" />
<file md5sum="5426a70f18c5d6dedf360886d786e07e" name="tests/bson-corpus/array-decodeError-002.phpt" role="test" />
<file md5sum="94ce1ba0bbdca27d624f64accc8dfc80" name="tests/bson-corpus/array-decodeError-003.phpt" role="test" />
<file md5sum="1515bf0afbb8fb899ae0aa1003f3c03c" name="tests/bson-corpus/array-valid-001.phpt" role="test" />
<file md5sum="94713da546cc4b0ad2c5cba33ff15907" name="tests/bson-corpus/array-valid-002.phpt" role="test" />
<file md5sum="c89ac3a6155f2b72626e6a5c205d4098" name="tests/bson-corpus/array-valid-003.phpt" role="test" />
<file md5sum="6d78d4964d126879f5eb75048f2dc7e9" name="tests/bson-corpus/array-valid-004.phpt" role="test" />
<file md5sum="b4b65379ae59e50709fe334933ce827a" name="tests/bson-corpus/array-valid-005.phpt" role="test" />
<file md5sum="c6740d03f2e4df8ca6bce1ce96356947" name="tests/bson-corpus/binary-decodeError-001.phpt" role="test" />
<file md5sum="005748a69471fff3c615059a796f1bb5" name="tests/bson-corpus/binary-decodeError-002.phpt" role="test" />
<file md5sum="6af3e997274e1487bf47fe549cc747d0" name="tests/bson-corpus/binary-decodeError-003.phpt" role="test" />
<file md5sum="ae343c29c288680f7a78b6b19e10bc98" name="tests/bson-corpus/binary-decodeError-004.phpt" role="test" />
<file md5sum="e76dff48121c30014e28b5589618cd83" name="tests/bson-corpus/binary-decodeError-005.phpt" role="test" />
<file md5sum="a238dc302011b312847010bd3eef6116" name="tests/bson-corpus/binary-parseError-001.phpt" role="test" />
<file md5sum="c686536586347ac08936b107999f65db" name="tests/bson-corpus/binary-parseError-002.phpt" role="test" />
<file md5sum="47e957a7dc6f9a1e3d1bccfbcaacdc82" name="tests/bson-corpus/binary-parseError-003.phpt" role="test" />
<file md5sum="e800c64afd4f643ef485d98c35c1e286" name="tests/bson-corpus/binary-parseError-004.phpt" role="test" />
<file md5sum="2cfcb78f1005fdf3d121331ab70ddf80" name="tests/bson-corpus/binary-parseError-005.phpt" role="test" />
<file md5sum="efd91b6800250aa842ad35ab055194a9" name="tests/bson-corpus/binary-valid-001.phpt" role="test" />
<file md5sum="f05301b9f2ceeadd899f01520d7cf57b" name="tests/bson-corpus/binary-valid-002.phpt" role="test" />
<file md5sum="17c4b7a7582494b8a01b6ef6dcf2c7e9" name="tests/bson-corpus/binary-valid-003.phpt" role="test" />
<file md5sum="095d95705c3fcd2c93e3f32cd402f99c" name="tests/bson-corpus/binary-valid-004.phpt" role="test" />
<file md5sum="6313de7f3497c6d7bc774ceef53dbb00" name="tests/bson-corpus/binary-valid-005.phpt" role="test" />
<file md5sum="5507760425736ed66db5aadb515f02a9" name="tests/bson-corpus/binary-valid-006.phpt" role="test" />
<file md5sum="956055e286b2f04ba96cbbb53fb59e3d" name="tests/bson-corpus/binary-valid-007.phpt" role="test" />
<file md5sum="e20b97d171092a19385cd7700dcf92bc" name="tests/bson-corpus/binary-valid-008.phpt" role="test" />
<file md5sum="71517280a84a8c9fa3cc9a5a7637e1d9" name="tests/bson-corpus/binary-valid-009.phpt" role="test" />
<file md5sum="c8f3356a246e622f655723dcf0f315c0" name="tests/bson-corpus/binary-valid-010.phpt" role="test" />
<file md5sum="8ecfc5fb863d8eeaf4370e15709f1092" name="tests/bson-corpus/binary-valid-011.phpt" role="test" />
<file md5sum="c98229cfcc5e6c58e43e757b55c9d945" name="tests/bson-corpus/binary-valid-012.phpt" role="test" />
<file md5sum="9fd3da4e9e0297c02cdbc06b86b76933" name="tests/bson-corpus/binary-valid-013.phpt" role="test" />
<file md5sum="73ce7566e825c94c5ab3368a0967f5cc" name="tests/bson-corpus/binary-valid-014.phpt" role="test" />
<file md5sum="c948186b30cbe86bc358e0b2522b3872" name="tests/bson-corpus/binary-valid-015.phpt" role="test" />
<file md5sum="b2c934efd08f03f98e7de8c39020352e" name="tests/bson-corpus/binary-valid-016.phpt" role="test" />
<file md5sum="b21bc9c15cc9ab5ccdb840cb8edf06bd" name="tests/bson-corpus/binary-valid-017.phpt" role="test" />
<file md5sum="14e65999d1cea936a54a7f20e76df54b" name="tests/bson-corpus/binary-valid-018.phpt" role="test" />
<file md5sum="ad65f2500b977509011c6ebe40ce30ad" name="tests/bson-corpus/binary-valid-019.phpt" role="test" />
<file md5sum="fe394b03f560bf2a5b58d88e3a8c389a" name="tests/bson-corpus/binary-valid-020.phpt" role="test" />
<file md5sum="f7c1dde29606ef110f13e34f610e76df" name="tests/bson-corpus/boolean-decodeError-001.phpt" role="test" />
<file md5sum="c3c77686c5476d5d0b06ecc620770169" name="tests/bson-corpus/boolean-decodeError-002.phpt" role="test" />
<file md5sum="e27fe7f82660276055c9bda3023d7206" name="tests/bson-corpus/boolean-valid-001.phpt" role="test" />
<file md5sum="fee6342396713809bd4119f32a2ec1bb" name="tests/bson-corpus/boolean-valid-002.phpt" role="test" />
<file md5sum="66fc55fd78507155f116963765706025" name="tests/bson-corpus/code-decodeError-001.phpt" role="test" />
<file md5sum="4b42b166494cf7722087c9b704de2327" name="tests/bson-corpus/code-decodeError-002.phpt" role="test" />
<file md5sum="c2aae4bc1673543cac2977be2b716da5" name="tests/bson-corpus/code-decodeError-003.phpt" role="test" />
<file md5sum="fb5c5a2fe0fa0f8416d6155a5c0d5866" name="tests/bson-corpus/code-decodeError-004.phpt" role="test" />
<file md5sum="2a8516adaa1aed9f93090429d140f2c9" name="tests/bson-corpus/code-decodeError-005.phpt" role="test" />
<file md5sum="bfd5a7ab4c439fd2eef09d16c5ff97bc" name="tests/bson-corpus/code-decodeError-006.phpt" role="test" />
<file md5sum="bfca5c3fa92d0b87cc429608edd93691" name="tests/bson-corpus/code-decodeError-007.phpt" role="test" />
<file md5sum="b778c6694f9d9238f6fa02583fa165cc" name="tests/bson-corpus/code-valid-001.phpt" role="test" />
<file md5sum="7c3b9ec3c058986362c58b4d75e85da1" name="tests/bson-corpus/code-valid-002.phpt" role="test" />
<file md5sum="fd4f5298eeb3920a7a5831ce94302f51" name="tests/bson-corpus/code-valid-003.phpt" role="test" />
<file md5sum="c3fb49392753b9251ccb360620607ff9" name="tests/bson-corpus/code-valid-004.phpt" role="test" />
<file md5sum="468b06e11101fc3080451e51fc825293" name="tests/bson-corpus/code-valid-005.phpt" role="test" />
<file md5sum="7f8143691829c5407128c7aafba78999" name="tests/bson-corpus/code-valid-006.phpt" role="test" />
<file md5sum="0ad065507bcba520c0a60be5e14114d7" name="tests/bson-corpus/code_w_scope-decodeError-001.phpt" role="test" />
<file md5sum="d8edbb1447d6af8e4644b2402d5200b4" name="tests/bson-corpus/code_w_scope-decodeError-002.phpt" role="test" />
<file md5sum="7a0e9c077a272f3fc106fdcc2a6c0716" name="tests/bson-corpus/code_w_scope-decodeError-003.phpt" role="test" />
<file md5sum="7e6f4e930e693674c9d291136c496852" name="tests/bson-corpus/code_w_scope-decodeError-004.phpt" role="test" />
<file md5sum="7f8fd5823fffa3aa0b43196a6e6b5d04" name="tests/bson-corpus/code_w_scope-decodeError-005.phpt" role="test" />
<file md5sum="01b0ef5733e1728a37525f96931c46e8" name="tests/bson-corpus/code_w_scope-decodeError-006.phpt" role="test" />
<file md5sum="75b1cae6e2908b6862dadfbc264450ca" name="tests/bson-corpus/code_w_scope-decodeError-007.phpt" role="test" />
<file md5sum="8e7c0248aebcfb37ca2d6face6401ffd" name="tests/bson-corpus/code_w_scope-decodeError-008.phpt" role="test" />
<file md5sum="e8994a7797067b259ef0e127317bf95f" name="tests/bson-corpus/code_w_scope-decodeError-009.phpt" role="test" />
<file md5sum="6b2051d0c3ce1ffbec50d863b085d6ad" name="tests/bson-corpus/code_w_scope-decodeError-010.phpt" role="test" />
<file md5sum="bf6c89bcd6c1a0761ad890fa1069eac3" name="tests/bson-corpus/code_w_scope-decodeError-011.phpt" role="test" />
<file md5sum="ec5b9794dde840d35e5e30413222a96a" name="tests/bson-corpus/code_w_scope-valid-001.phpt" role="test" />
<file md5sum="fd38a74bdfbfd41c988e950cc2c80174" name="tests/bson-corpus/code_w_scope-valid-002.phpt" role="test" />
<file md5sum="52173c39f2b38f889d12919b2280e585" name="tests/bson-corpus/code_w_scope-valid-003.phpt" role="test" />
<file md5sum="b354d2dc291e9adfb5949d60986960f0" name="tests/bson-corpus/code_w_scope-valid-004.phpt" role="test" />
<file md5sum="5eb3a24e62657faf114c0dd51e74b431" name="tests/bson-corpus/code_w_scope-valid-005.phpt" role="test" />
<file md5sum="61f880b192f11a149333ad2ddc24fb00" name="tests/bson-corpus/datetime-decodeError-001.phpt" role="test" />
<file md5sum="2b7ed01e3b5f89e207ee4f9f84d3d201" name="tests/bson-corpus/datetime-valid-001.phpt" role="test" />
<file md5sum="4f7402483e75eddda91656b3e1089363" name="tests/bson-corpus/datetime-valid-002.phpt" role="test" />
<file md5sum="15436d363a15f1cc3768ec17e5dd8a18" name="tests/bson-corpus/datetime-valid-003.phpt" role="test" />
<file md5sum="b0d062872fd81150d30a3900edb3043d" name="tests/bson-corpus/datetime-valid-004.phpt" role="test" />
<file md5sum="faed11f7d7873786e1b4158ab5fbaf4e" name="tests/bson-corpus/datetime-valid-005.phpt" role="test" />
<file md5sum="352bd6681e20ced0eb35ad46ea2afee1" name="tests/bson-corpus/dbpointer-decodeError-001.phpt" role="test" />
<file md5sum="7c673df8eec3b8d26f34315bf1799a66" name="tests/bson-corpus/dbpointer-decodeError-002.phpt" role="test" />
<file md5sum="2115b428fa12deed08f24d0e9cca3f34" name="tests/bson-corpus/dbpointer-decodeError-003.phpt" role="test" />
<file md5sum="86731c9d25cfc5e9526bd5715f8c7ff9" name="tests/bson-corpus/dbpointer-decodeError-004.phpt" role="test" />
<file md5sum="308ae8099beef0ea8c973ae2be4e6d49" name="tests/bson-corpus/dbpointer-decodeError-005.phpt" role="test" />
<file md5sum="47eb0f08a60f8ae116700af0dc9218a2" name="tests/bson-corpus/dbpointer-decodeError-006.phpt" role="test" />
<file md5sum="6b8ece946c770e0b92b452145e364ade" name="tests/bson-corpus/dbpointer-valid-001.phpt" role="test" />
<file md5sum="c8d618816f6ecff2a2c873c2073919d9" name="tests/bson-corpus/dbpointer-valid-002.phpt" role="test" />
<file md5sum="27e9db76304e6e6163ae029b52eda9b1" name="tests/bson-corpus/dbpointer-valid-003.phpt" role="test" />
<file md5sum="055660660c1e52ffbd286825613fa746" name="tests/bson-corpus/dbref-valid-001.phpt" role="test" />
<file md5sum="fbf589444675719813667ffd8817c2aa" name="tests/bson-corpus/dbref-valid-002.phpt" role="test" />
<file md5sum="188a5097a4501a21b93862cc915fe725" name="tests/bson-corpus/dbref-valid-003.phpt" role="test" />
<file md5sum="d5400b91d2472c88678d27ee5efbf686" name="tests/bson-corpus/dbref-valid-004.phpt" role="test" />
<file md5sum="437550534c1f51674f04daebedddd451" name="tests/bson-corpus/dbref-valid-005.phpt" role="test" />
<file md5sum="a2f398b3ade4744d3085f7457641f3ae" name="tests/bson-corpus/dbref-valid-006.phpt" role="test" />
<file md5sum="93c7f12a9cced899e46d2faddd793873" name="tests/bson-corpus/dbref-valid-007.phpt" role="test" />
<file md5sum="132028ea592ef557448cdba9b834ec37" name="tests/bson-corpus/dbref-valid-008.phpt" role="test" />
<file md5sum="4f3b3a34f64bd8ccefe4fbbb9cb81047" name="tests/bson-corpus/dbref-valid-009.phpt" role="test" />
<file md5sum="70d0c0cdc503351422bae425b3942221" name="tests/bson-corpus/decimal128-1-valid-001.phpt" role="test" />
<file md5sum="37e26d12cbe352144545f6a93bcf9ea1" name="tests/bson-corpus/decimal128-1-valid-002.phpt" role="test" />
<file md5sum="82027ec4ea132f001af0e4b5bd31cfe9" name="tests/bson-corpus/decimal128-1-valid-003.phpt" role="test" />
<file md5sum="bc48a8ec94cf384007da99415cd1dd7f" name="tests/bson-corpus/decimal128-1-valid-004.phpt" role="test" />
<file md5sum="5604bedfc7729f0ec55bc7673d84a6c0" name="tests/bson-corpus/decimal128-1-valid-005.phpt" role="test" />
<file md5sum="892e0923b7f9b500c8b56f7d6d265464" name="tests/bson-corpus/decimal128-1-valid-006.phpt" role="test" />
<file md5sum="1d031a7aaff9fdeb70cc3f66c22fef24" name="tests/bson-corpus/decimal128-1-valid-007.phpt" role="test" />
<file md5sum="1135ad7d52e211c62618218fdafc3346" name="tests/bson-corpus/decimal128-1-valid-008.phpt" role="test" />
<file md5sum="e9d46a63fd430bbc79a348ec9e2bd492" name="tests/bson-corpus/decimal128-1-valid-009.phpt" role="test" />
<file md5sum="eedfce556c25fc1ffbeb68fc4b980a38" name="tests/bson-corpus/decimal128-1-valid-010.phpt" role="test" />
<file md5sum="89cf59ab1a84f5b1e8281762c78fa613" name="tests/bson-corpus/decimal128-1-valid-011.phpt" role="test" />
<file md5sum="cdd67f4b9c867bb7add854b76207da02" name="tests/bson-corpus/decimal128-1-valid-012.phpt" role="test" />
<file md5sum="cd4405b90412a44acde50a48a521e759" name="tests/bson-corpus/decimal128-1-valid-013.phpt" role="test" />
<file md5sum="d791f2c6eb02de0f8f9fcec6f9dfad88" name="tests/bson-corpus/decimal128-1-valid-014.phpt" role="test" />
<file md5sum="539ffbb1d2c51b4b94fc0bfb5f3d415a" name="tests/bson-corpus/decimal128-1-valid-015.phpt" role="test" />
<file md5sum="afd56c27c4c9114bd7c513325d09df17" name="tests/bson-corpus/decimal128-1-valid-016.phpt" role="test" />
<file md5sum="c770174015cdbe0b3831be9df84699b7" name="tests/bson-corpus/decimal128-1-valid-017.phpt" role="test" />
<file md5sum="7d639e030b70abd8ead5ac266fdc6f5c" name="tests/bson-corpus/decimal128-1-valid-018.phpt" role="test" />
<file md5sum="eda9b2ee4bf4f3f8f6bddfb4e55eddf4" name="tests/bson-corpus/decimal128-1-valid-019.phpt" role="test" />
<file md5sum="33bb43a5d2339f20623f14bdd67713bc" name="tests/bson-corpus/decimal128-1-valid-020.phpt" role="test" />
<file md5sum="10dca06306497a0c9c92322b0fb45d67" name="tests/bson-corpus/decimal128-1-valid-021.phpt" role="test" />
<file md5sum="a2ff8c4bd6a6d2a496393cb21068ce43" name="tests/bson-corpus/decimal128-1-valid-022.phpt" role="test" />
<file md5sum="c52940c4991346fc9a27ced77dcf3db1" name="tests/bson-corpus/decimal128-1-valid-023.phpt" role="test" />
<file md5sum="5011054657b546213dd85a892b536965" name="tests/bson-corpus/decimal128-1-valid-024.phpt" role="test" />
<file md5sum="b3d5907cab1cf2137d3cbce7c3a4f3b3" name="tests/bson-corpus/decimal128-1-valid-025.phpt" role="test" />
<file md5sum="3a3f6e4418e41891d8d680b1f9eab655" name="tests/bson-corpus/decimal128-1-valid-026.phpt" role="test" />
<file md5sum="daf5ac7834c26aa7a2f4997adaac124a" name="tests/bson-corpus/decimal128-1-valid-027.phpt" role="test" />
<file md5sum="4598e0594e7ba8ea6f520d633b0dd0ae" name="tests/bson-corpus/decimal128-1-valid-028.phpt" role="test" />
<file md5sum="7a3ed9dcb238f599a2fc8d7f0f573e49" name="tests/bson-corpus/decimal128-1-valid-029.phpt" role="test" />
<file md5sum="00445bfbf157cdd3ccf65c767d8a391d" name="tests/bson-corpus/decimal128-1-valid-030.phpt" role="test" />
<file md5sum="effa1f7d9eda86199efd93129dfa6fc5" name="tests/bson-corpus/decimal128-1-valid-031.phpt" role="test" />
<file md5sum="a92adf42c06b9a6c821e84d064c7745e" name="tests/bson-corpus/decimal128-1-valid-032.phpt" role="test" />
<file md5sum="153bca4ce42839ebe58967f16ae90428" name="tests/bson-corpus/decimal128-1-valid-033.phpt" role="test" />
<file md5sum="509998f0accd50e2501d0da0db91514e" name="tests/bson-corpus/decimal128-1-valid-034.phpt" role="test" />
<file md5sum="84b92c292ea62d47bffbefe707c10fdb" name="tests/bson-corpus/decimal128-1-valid-035.phpt" role="test" />
<file md5sum="501c8785f9b04bd547a3773d33c4d30c" name="tests/bson-corpus/decimal128-1-valid-036.phpt" role="test" />
<file md5sum="618934a0cf5bd15c4de5c37193a4f0ce" name="tests/bson-corpus/decimal128-1-valid-037.phpt" role="test" />
<file md5sum="34cc3c900550cce797455166891a2c7c" name="tests/bson-corpus/decimal128-1-valid-038.phpt" role="test" />
<file md5sum="4243338d6d541510f3610b4ef9010380" name="tests/bson-corpus/decimal128-1-valid-039.phpt" role="test" />
<file md5sum="5de6357a421d2ad15d307bfe3998df79" name="tests/bson-corpus/decimal128-1-valid-040.phpt" role="test" />
<file md5sum="7d8f6e6bc6d9f021ad8f72bc36d98eeb" name="tests/bson-corpus/decimal128-1-valid-041.phpt" role="test" />
<file md5sum="a673d8a164bd5cb3753e7cf9f4dbfa21" name="tests/bson-corpus/decimal128-1-valid-042.phpt" role="test" />
<file md5sum="d965d00298e2b79e46459a17a58c489d" name="tests/bson-corpus/decimal128-1-valid-043.phpt" role="test" />
<file md5sum="203bd0ea41a34d16c70ef65722a842ad" name="tests/bson-corpus/decimal128-1-valid-044.phpt" role="test" />
<file md5sum="50e3414af902637d224828496e28a5e3" name="tests/bson-corpus/decimal128-1-valid-045.phpt" role="test" />
<file md5sum="1c07e2612d795b2d9273d4574b065549" name="tests/bson-corpus/decimal128-1-valid-046.phpt" role="test" />
<file md5sum="c7eb10a36c4822b096797bbc4f7e2fb7" name="tests/bson-corpus/decimal128-1-valid-047.phpt" role="test" />
<file md5sum="9e534b37aa175aecc6973f7adfb15ac8" name="tests/bson-corpus/decimal128-1-valid-048.phpt" role="test" />
<file md5sum="0f2f049c2caaf824a0016b72c7b09390" name="tests/bson-corpus/decimal128-1-valid-049.phpt" role="test" />
<file md5sum="08d50bbb163a44f31b7a9f1f2e99c8bd" name="tests/bson-corpus/decimal128-1-valid-050.phpt" role="test" />
<file md5sum="f264df4f1c16e7b360beaceda2805ff6" name="tests/bson-corpus/decimal128-1-valid-051.phpt" role="test" />
<file md5sum="d34045c265616a9a71897f63ca7b4633" name="tests/bson-corpus/decimal128-1-valid-052.phpt" role="test" />
<file md5sum="7374188aae99a6d5d79a29cfd849f824" name="tests/bson-corpus/decimal128-1-valid-053.phpt" role="test" />
<file md5sum="05da0fcc9c66ccf37332db502ee18f5d" name="tests/bson-corpus/decimal128-1-valid-054.phpt" role="test" />
<file md5sum="b355636196f1d2083a8bf4d72c7196a6" name="tests/bson-corpus/decimal128-1-valid-055.phpt" role="test" />
<file md5sum="f7d8dbc77cf1909259c40e2adf813e8f" name="tests/bson-corpus/decimal128-1-valid-056.phpt" role="test" />
<file md5sum="4a65ce419b98493efe6e2eab514a3723" name="tests/bson-corpus/decimal128-1-valid-057.phpt" role="test" />
<file md5sum="71a16040d0e993222ab2e647233a20af" name="tests/bson-corpus/decimal128-1-valid-058.phpt" role="test" />
<file md5sum="c1670bc66dd3305d3f1929997d6f9123" name="tests/bson-corpus/decimal128-1-valid-059.phpt" role="test" />
<file md5sum="b1f5d62a250344d69fa079c9284a24a6" name="tests/bson-corpus/decimal128-1-valid-060.phpt" role="test" />
<file md5sum="6886c070dfd20edb65eff5b0cdc824be" name="tests/bson-corpus/decimal128-2-valid-001.phpt" role="test" />
<file md5sum="ebe7cafda73d2ef0b9ad46afe55eaf98" name="tests/bson-corpus/decimal128-2-valid-002.phpt" role="test" />
<file md5sum="c6bb429e6a7db6c816aa6996211ec110" name="tests/bson-corpus/decimal128-2-valid-003.phpt" role="test" />
<file md5sum="c23e3aa46b0f9e8cc2e53d7bfbdd68d0" name="tests/bson-corpus/decimal128-2-valid-004.phpt" role="test" />
<file md5sum="ea86af28dbd6ec53ec0f597273f7d41b" name="tests/bson-corpus/decimal128-2-valid-005.phpt" role="test" />
<file md5sum="fe512a263c2c2b2e00db8c26e4e74f3a" name="tests/bson-corpus/decimal128-2-valid-006.phpt" role="test" />
<file md5sum="358fdccd30a3853beb5c7a38981daf64" name="tests/bson-corpus/decimal128-2-valid-007.phpt" role="test" />
<file md5sum="e0183aa694a9a3d742b3780d7221e947" name="tests/bson-corpus/decimal128-2-valid-008.phpt" role="test" />
<file md5sum="7b3a9a057dd750ac51c61d3cf192e608" name="tests/bson-corpus/decimal128-2-valid-009.phpt" role="test" />
<file md5sum="7a662022e2693a083a07358893b7a698" name="tests/bson-corpus/decimal128-2-valid-010.phpt" role="test" />
<file md5sum="bd28bfbd9cb90778715ec7b19181376d" name="tests/bson-corpus/decimal128-2-valid-011.phpt" role="test" />
<file md5sum="596ece3f76cff0571b0b6d8805ebd6d1" name="tests/bson-corpus/decimal128-2-valid-012.phpt" role="test" />
<file md5sum="c995b9682ddf4093421a5f943add947d" name="tests/bson-corpus/decimal128-2-valid-013.phpt" role="test" />
<file md5sum="5817c3e8f5c5d0dc61a69678bc5fddc4" name="tests/bson-corpus/decimal128-2-valid-014.phpt" role="test" />
<file md5sum="da96a3327b205bd1453d07ccdb2755b6" name="tests/bson-corpus/decimal128-2-valid-015.phpt" role="test" />
<file md5sum="ac4cd2908c4e881af0e7e1f89823161f" name="tests/bson-corpus/decimal128-2-valid-016.phpt" role="test" />
<file md5sum="69dd94fd663803cbadca3e4b674d9d97" name="tests/bson-corpus/decimal128-2-valid-017.phpt" role="test" />
<file md5sum="f745e511795a75cdecd04bb873e5c6bb" name="tests/bson-corpus/decimal128-2-valid-018.phpt" role="test" />
<file md5sum="34624cded99172e1219c1d05cf5b03dd" name="tests/bson-corpus/decimal128-2-valid-019.phpt" role="test" />
<file md5sum="2efa113ebfe03cd7e14797216a80e804" name="tests/bson-corpus/decimal128-2-valid-020.phpt" role="test" />
<file md5sum="5038e19c4e6ff1935ddb6c61322020c6" name="tests/bson-corpus/decimal128-2-valid-021.phpt" role="test" />
<file md5sum="5780171d17e96530caa2e2e5c4e826a3" name="tests/bson-corpus/decimal128-2-valid-022.phpt" role="test" />
<file md5sum="692c9a349391e9a0e3b3098c9264cefc" name="tests/bson-corpus/decimal128-2-valid-023.phpt" role="test" />
<file md5sum="9b55b01cb8a370176aec41c109e945cb" name="tests/bson-corpus/decimal128-2-valid-024.phpt" role="test" />
<file md5sum="81c723891c746e06a6f48faec72a889f" name="tests/bson-corpus/decimal128-2-valid-025.phpt" role="test" />
<file md5sum="33d179a7e4a4ce13f24bd302978a5379" name="tests/bson-corpus/decimal128-2-valid-026.phpt" role="test" />
<file md5sum="81d9e54d939b0ee7f233bdfe2795e683" name="tests/bson-corpus/decimal128-2-valid-027.phpt" role="test" />
<file md5sum="279da82224f4bac44d4ab7e858d1e871" name="tests/bson-corpus/decimal128-2-valid-028.phpt" role="test" />
<file md5sum="09a7b85409b3ed18607f54a4f6514989" name="tests/bson-corpus/decimal128-2-valid-029.phpt" role="test" />
<file md5sum="dd12bcae8fae5debc6e8a789ffd3155e" name="tests/bson-corpus/decimal128-2-valid-030.phpt" role="test" />
<file md5sum="20cea346a01014a177e8e324eb361909" name="tests/bson-corpus/decimal128-2-valid-031.phpt" role="test" />
<file md5sum="1dd6fb3139bd2d899f051f10aa330554" name="tests/bson-corpus/decimal128-2-valid-032.phpt" role="test" />
<file md5sum="8ed78566329a47849dd88186b97cce2f" name="tests/bson-corpus/decimal128-2-valid-033.phpt" role="test" />
<file md5sum="4290415695caf5b7c0f7f9f4d390551a" name="tests/bson-corpus/decimal128-2-valid-034.phpt" role="test" />
<file md5sum="f4fa3899a5e5003753698b693524e17d" name="tests/bson-corpus/decimal128-2-valid-035.phpt" role="test" />
<file md5sum="c7b0ac22414f4d5d79b270651eff5cfa" name="tests/bson-corpus/decimal128-2-valid-036.phpt" role="test" />
<file md5sum="4512635ef56a82cb53e08fda6743b93d" name="tests/bson-corpus/decimal128-2-valid-037.phpt" role="test" />
<file md5sum="8e9190ffa4c24c25b5f290c4921d7c11" name="tests/bson-corpus/decimal128-2-valid-038.phpt" role="test" />
<file md5sum="12efa6dc4b70158d2b568c0e96b72290" name="tests/bson-corpus/decimal128-2-valid-039.phpt" role="test" />
<file md5sum="2aae22b070f53af335a170b5e929b57b" name="tests/bson-corpus/decimal128-2-valid-040.phpt" role="test" />
<file md5sum="3075030d137a90b54fe634729830ef79" name="tests/bson-corpus/decimal128-2-valid-041.phpt" role="test" />
<file md5sum="3a5925af138112fc0369186feb65c707" name="tests/bson-corpus/decimal128-2-valid-042.phpt" role="test" />
<file md5sum="3b5e74cc186aa9517b394cf3d5aaf5c2" name="tests/bson-corpus/decimal128-2-valid-043.phpt" role="test" />
<file md5sum="62b94a9ebc53bf4cdb2a13f62ff1222b" name="tests/bson-corpus/decimal128-2-valid-044.phpt" role="test" />
<file md5sum="b31e2c98cf033295e7f3a631f6959da9" name="tests/bson-corpus/decimal128-2-valid-045.phpt" role="test" />
<file md5sum="f2391841b84d4ba023f52d97309f0102" name="tests/bson-corpus/decimal128-2-valid-046.phpt" role="test" />
<file md5sum="9b6c26d1db301c74bf395df4c4309456" name="tests/bson-corpus/decimal128-2-valid-047.phpt" role="test" />
<file md5sum="ffb3bb7d55546f6ad0ea4e563fe31d02" name="tests/bson-corpus/decimal128-2-valid-048.phpt" role="test" />
<file md5sum="8091cca7ea300eba4c105d4da84754b9" name="tests/bson-corpus/decimal128-2-valid-049.phpt" role="test" />
<file md5sum="7346ca9d62ea4421e8751c7e814c7d3f" name="tests/bson-corpus/decimal128-2-valid-050.phpt" role="test" />
<file md5sum="bf84fcb4f65565a1265b1907f9c2eff6" name="tests/bson-corpus/decimal128-2-valid-051.phpt" role="test" />
<file md5sum="6d35b96bf947b21d7e4a8eb9af5cc385" name="tests/bson-corpus/decimal128-2-valid-052.phpt" role="test" />
<file md5sum="e8a20f682769efc6c92d9e857cd3a9f6" name="tests/bson-corpus/decimal128-2-valid-053.phpt" role="test" />
<file md5sum="b273c31f639e4020d04368210a2f3eae" name="tests/bson-corpus/decimal128-2-valid-054.phpt" role="test" />
<file md5sum="e83aa4b6ba77f95ad70d1fa0b8d1420d" name="tests/bson-corpus/decimal128-2-valid-055.phpt" role="test" />
<file md5sum="914f58e8833a5394050470bbd5489bc4" name="tests/bson-corpus/decimal128-2-valid-056.phpt" role="test" />
<file md5sum="f5c460b7491678c3935c0bc00b2012fc" name="tests/bson-corpus/decimal128-2-valid-057.phpt" role="test" />
<file md5sum="1ee2f7aa76fc9096cb10c8022a5823b9" name="tests/bson-corpus/decimal128-2-valid-058.phpt" role="test" />
<file md5sum="75447e3d5e23437c9ddbee43687a96aa" name="tests/bson-corpus/decimal128-2-valid-059.phpt" role="test" />
<file md5sum="ca819f305924be6c2d07a1d2cdffcaec" name="tests/bson-corpus/decimal128-2-valid-060.phpt" role="test" />
<file md5sum="99c039a1463192e6a83711bafd9277c1" name="tests/bson-corpus/decimal128-2-valid-061.phpt" role="test" />
<file md5sum="838a638a01609aee5519d38178b5cec3" name="tests/bson-corpus/decimal128-2-valid-062.phpt" role="test" />
<file md5sum="dbe912d6c2540a41bb47bdbd2dc4f277" name="tests/bson-corpus/decimal128-2-valid-063.phpt" role="test" />
<file md5sum="9dfb307597be9378d6f17fd021613fc7" name="tests/bson-corpus/decimal128-2-valid-064.phpt" role="test" />
<file md5sum="0eb97edf1018bb886e6051236a7e404d" name="tests/bson-corpus/decimal128-2-valid-065.phpt" role="test" />
<file md5sum="b446693e31de6cbc1850cea06693ec58" name="tests/bson-corpus/decimal128-2-valid-066.phpt" role="test" />
<file md5sum="5c6681f739a1928e26699ddca1952ff3" name="tests/bson-corpus/decimal128-2-valid-067.phpt" role="test" />
<file md5sum="f55ee843ada2cc2e15e44bfc3fb4aa76" name="tests/bson-corpus/decimal128-2-valid-068.phpt" role="test" />
<file md5sum="5174d68fa8f0bdbb6db5c352c11a3685" name="tests/bson-corpus/decimal128-2-valid-069.phpt" role="test" />
<file md5sum="69d2a46b1b44d566e6d18d48ce029406" name="tests/bson-corpus/decimal128-2-valid-070.phpt" role="test" />
<file md5sum="2ac2ccbd8cb23bf5e44331c50b581a6e" name="tests/bson-corpus/decimal128-2-valid-071.phpt" role="test" />
<file md5sum="f1f218392cfa908b2ca55e1b32e03ad7" name="tests/bson-corpus/decimal128-2-valid-072.phpt" role="test" />
<file md5sum="8b83828c8307d77853d9dc0d96e71f23" name="tests/bson-corpus/decimal128-2-valid-073.phpt" role="test" />
<file md5sum="ce636b5e75260e0746ddb035ba20de04" name="tests/bson-corpus/decimal128-2-valid-074.phpt" role="test" />
<file md5sum="91489b8a1be4939f849f1256f1d6952f" name="tests/bson-corpus/decimal128-2-valid-075.phpt" role="test" />
<file md5sum="b91e20481b12bf439cc6e86d554602b4" name="tests/bson-corpus/decimal128-2-valid-076.phpt" role="test" />
<file md5sum="e82f7e786bc30e57adefcdf1c31cc4ba" name="tests/bson-corpus/decimal128-2-valid-077.phpt" role="test" />
<file md5sum="6233e0ea2aa089f3d5bf64a2953c4fd7" name="tests/bson-corpus/decimal128-2-valid-078.phpt" role="test" />
<file md5sum="3a88e594cbaafbe18435d7c4fc7880d3" name="tests/bson-corpus/decimal128-2-valid-079.phpt" role="test" />
<file md5sum="68bd0c7d8510d5b051176e6d8f8828d0" name="tests/bson-corpus/decimal128-2-valid-080.phpt" role="test" />
<file md5sum="d6c8e922fb26e28a5fd43fcfd4ab4c07" name="tests/bson-corpus/decimal128-2-valid-081.phpt" role="test" />
<file md5sum="be7fcbaff7ab3a356d6bebe48f18a626" name="tests/bson-corpus/decimal128-2-valid-082.phpt" role="test" />
<file md5sum="292ebfdece76b7200075b7a3e878fe70" name="tests/bson-corpus/decimal128-2-valid-083.phpt" role="test" />
<file md5sum="d6f6723f3dc54f2be5ac8f55fe61eee2" name="tests/bson-corpus/decimal128-2-valid-084.phpt" role="test" />
<file md5sum="e7fe0a14ed36796b3c9d0dd070fccf57" name="tests/bson-corpus/decimal128-2-valid-085.phpt" role="test" />
<file md5sum="ee75c435a828d5ede2a9d6a72c9e1e5e" name="tests/bson-corpus/decimal128-2-valid-086.phpt" role="test" />
<file md5sum="878821d3e1a6d12e58a1dcbff3c62b98" name="tests/bson-corpus/decimal128-2-valid-087.phpt" role="test" />
<file md5sum="d9c1153f70d345e8bbc7db0e4b3c3c9c" name="tests/bson-corpus/decimal128-2-valid-088.phpt" role="test" />
<file md5sum="597f7e52b0990e746e65ca06807894ef" name="tests/bson-corpus/decimal128-2-valid-089.phpt" role="test" />
<file md5sum="dab76d1616473c7a46a2a12efa3ed078" name="tests/bson-corpus/decimal128-2-valid-090.phpt" role="test" />
<file md5sum="1c72ec11dca94412b855d1d8fca0f218" name="tests/bson-corpus/decimal128-2-valid-091.phpt" role="test" />
<file md5sum="db1f2ae7f696fc2f3e2c4df7507584a0" name="tests/bson-corpus/decimal128-2-valid-092.phpt" role="test" />
<file md5sum="99d19136b72a590fa500e9022106c613" name="tests/bson-corpus/decimal128-2-valid-093.phpt" role="test" />
<file md5sum="19ef078878fd42752fd2c7f2bc490d8f" name="tests/bson-corpus/decimal128-2-valid-094.phpt" role="test" />
<file md5sum="64d0ba079b2730ac81a8229c9f50b8aa" name="tests/bson-corpus/decimal128-2-valid-095.phpt" role="test" />
<file md5sum="b1e2127b77ba70512cbe9a810ed5cbd4" name="tests/bson-corpus/decimal128-2-valid-096.phpt" role="test" />
<file md5sum="5f63aca170e9ec7f3a458fc0d49a1bf3" name="tests/bson-corpus/decimal128-2-valid-097.phpt" role="test" />
<file md5sum="2dfde48d8e83f1845b4878654b1f29f9" name="tests/bson-corpus/decimal128-2-valid-098.phpt" role="test" />
<file md5sum="11d9038122197611b7be1962e511ebf6" name="tests/bson-corpus/decimal128-2-valid-099.phpt" role="test" />
<file md5sum="6e6954d5da610157da85f787468f5011" name="tests/bson-corpus/decimal128-2-valid-100.phpt" role="test" />
<file md5sum="e4ac0734e23a89244f99cca111079f4d" name="tests/bson-corpus/decimal128-2-valid-101.phpt" role="test" />
<file md5sum="5caf3f6345fa529e205b2556ce068741" name="tests/bson-corpus/decimal128-2-valid-102.phpt" role="test" />
<file md5sum="079110ebbead15fc2d1edc1c33609c47" name="tests/bson-corpus/decimal128-2-valid-103.phpt" role="test" />
<file md5sum="f333e1d3b1d82eee09d36934dadab490" name="tests/bson-corpus/decimal128-2-valid-104.phpt" role="test" />
<file md5sum="7ce6dc892473f1cc5d9b4ac19f4a3d36" name="tests/bson-corpus/decimal128-2-valid-105.phpt" role="test" />
<file md5sum="e4e0ddf1a1e2e4e4d4be4bc528d86363" name="tests/bson-corpus/decimal128-2-valid-106.phpt" role="test" />
<file md5sum="f064badcdb7a855e2fe687c5d8fbb308" name="tests/bson-corpus/decimal128-2-valid-107.phpt" role="test" />
<file md5sum="248fc965094a2f3a6bfe25c4bb2e6158" name="tests/bson-corpus/decimal128-2-valid-108.phpt" role="test" />
<file md5sum="3aef13e0c70c7c4b3bac7b1c108b0b6d" name="tests/bson-corpus/decimal128-2-valid-109.phpt" role="test" />
<file md5sum="d8b41e17ec1f2973051819eb484a4bce" name="tests/bson-corpus/decimal128-2-valid-110.phpt" role="test" />
<file md5sum="b9feb88a66d1a47917d3f795cffd10c5" name="tests/bson-corpus/decimal128-2-valid-111.phpt" role="test" />
<file md5sum="e75fd52d3d0aef1512eec4a977f10059" name="tests/bson-corpus/decimal128-2-valid-112.phpt" role="test" />
<file md5sum="ed8ccc7670791b80f6bd60918c92ee90" name="tests/bson-corpus/decimal128-2-valid-113.phpt" role="test" />
<file md5sum="1ce44361ec13453f2adbeb817bcb90e0" name="tests/bson-corpus/decimal128-2-valid-114.phpt" role="test" />
<file md5sum="092805969b923b8244d49fe34007b8d4" name="tests/bson-corpus/decimal128-2-valid-115.phpt" role="test" />
<file md5sum="29cc704f72e2fe7d65004c006ab718d9" name="tests/bson-corpus/decimal128-2-valid-116.phpt" role="test" />
<file md5sum="374314cf21c8a7aa595854fd215dd402" name="tests/bson-corpus/decimal128-2-valid-117.phpt" role="test" />
<file md5sum="ecd169a8997e2b1684ad126826ee2cb1" name="tests/bson-corpus/decimal128-2-valid-118.phpt" role="test" />
<file md5sum="7323bec4d464c266ff485b3aeab380ad" name="tests/bson-corpus/decimal128-2-valid-119.phpt" role="test" />
<file md5sum="596bee046cfa55b9abdc3088201a5f3a" name="tests/bson-corpus/decimal128-2-valid-120.phpt" role="test" />
<file md5sum="ce5a5abd9f315b1d17510e739fdc9def" name="tests/bson-corpus/decimal128-2-valid-121.phpt" role="test" />
<file md5sum="972118c623d9cbbdb32c86b11f282c95" name="tests/bson-corpus/decimal128-2-valid-122.phpt" role="test" />
<file md5sum="43c9b23391cd40444a1bc0c4184dbd80" name="tests/bson-corpus/decimal128-2-valid-123.phpt" role="test" />
<file md5sum="2d5d53083b2f97c304434a497659268e" name="tests/bson-corpus/decimal128-2-valid-124.phpt" role="test" />
<file md5sum="83adb74d077357280737af3454c60bfb" name="tests/bson-corpus/decimal128-2-valid-125.phpt" role="test" />
<file md5sum="6ed2274d8648c34540454c10855f4aac" name="tests/bson-corpus/decimal128-2-valid-126.phpt" role="test" />
<file md5sum="c72e104e5354f97ed71f3ee2ef85480a" name="tests/bson-corpus/decimal128-2-valid-127.phpt" role="test" />
<file md5sum="f9f951dd77b4cd353d525e67e722e9ca" name="tests/bson-corpus/decimal128-2-valid-128.phpt" role="test" />
<file md5sum="0db79f289a2a25d6f6f0b6cbbe4aa836" name="tests/bson-corpus/decimal128-2-valid-129.phpt" role="test" />
<file md5sum="d714f74ae95de70ffb434a1bbf66ddba" name="tests/bson-corpus/decimal128-2-valid-130.phpt" role="test" />
<file md5sum="d20d7895896d5dae2cd35d9f02b4308c" name="tests/bson-corpus/decimal128-2-valid-131.phpt" role="test" />
<file md5sum="42758cc60e7f9c39e64ec9e08589d033" name="tests/bson-corpus/decimal128-2-valid-132.phpt" role="test" />
<file md5sum="d3ea22a731ed66c1c59c5fb070c08de0" name="tests/bson-corpus/decimal128-2-valid-133.phpt" role="test" />
<file md5sum="115b515f2ce58bcf55a9ab533652b3fd" name="tests/bson-corpus/decimal128-2-valid-134.phpt" role="test" />
<file md5sum="cd0f5e211437a5a7606e3379deec795f" name="tests/bson-corpus/decimal128-2-valid-135.phpt" role="test" />
<file md5sum="9681837c2d9e05e668b6cee995b2962d" name="tests/bson-corpus/decimal128-2-valid-136.phpt" role="test" />
<file md5sum="193394e2ea1e5d36ebbc805cbd524be0" name="tests/bson-corpus/decimal128-2-valid-137.phpt" role="test" />
<file md5sum="e4f659de2e08ce0cc1912a5da3d063c9" name="tests/bson-corpus/decimal128-2-valid-138.phpt" role="test" />
<file md5sum="0e90fe680245e56cc5b1565c18a347d0" name="tests/bson-corpus/decimal128-2-valid-139.phpt" role="test" />
<file md5sum="63bdbd10bf86e9d6ea7dbd94ff95e865" name="tests/bson-corpus/decimal128-2-valid-140.phpt" role="test" />
<file md5sum="0cda664012417779d9881342536104f0" name="tests/bson-corpus/decimal128-2-valid-141.phpt" role="test" />
<file md5sum="d2b0ce12b2101271cc3bfbe17d8edd78" name="tests/bson-corpus/decimal128-2-valid-142.phpt" role="test" />
<file md5sum="e56884162b5650ed6424e39a2ec15243" name="tests/bson-corpus/decimal128-2-valid-143.phpt" role="test" />
<file md5sum="fea9341dd80ffcdb47c256a84605840f" name="tests/bson-corpus/decimal128-2-valid-144.phpt" role="test" />
<file md5sum="a59cd1cde6378a1431496482864fbac3" name="tests/bson-corpus/decimal128-2-valid-145.phpt" role="test" />
<file md5sum="4e38d2a1c4e9ee9ef79dbac2512556ce" name="tests/bson-corpus/decimal128-2-valid-146.phpt" role="test" />
<file md5sum="0a7105a9c6e6f5d39b0b7d60c45b64a4" name="tests/bson-corpus/decimal128-2-valid-147.phpt" role="test" />
<file md5sum="c70d01f2244424b3c80f8cee558d90dd" name="tests/bson-corpus/decimal128-2-valid-148.phpt" role="test" />
<file md5sum="b08b51fec7a94b71cdc56cd74825e502" name="tests/bson-corpus/decimal128-2-valid-149.phpt" role="test" />
<file md5sum="c9ddb5f8eb8d5d839e9577346a70860a" name="tests/bson-corpus/decimal128-2-valid-150.phpt" role="test" />
<file md5sum="fe8062174b7a95a744632b8a39831c76" name="tests/bson-corpus/decimal128-2-valid-151.phpt" role="test" />
<file md5sum="dbc6cca18f17936b03ba9e0488894562" name="tests/bson-corpus/decimal128-2-valid-152.phpt" role="test" />
<file md5sum="54a197ff75cf26525f1d4a2731074184" name="tests/bson-corpus/decimal128-2-valid-153.phpt" role="test" />
<file md5sum="b3f7abfb17aef23b068bbc88abe09d92" name="tests/bson-corpus/decimal128-2-valid-154.phpt" role="test" />
<file md5sum="49ff683f2e4ff206575f2540d62d9939" name="tests/bson-corpus/decimal128-2-valid-155.phpt" role="test" />
<file md5sum="9c47453cc892829db8f10ede9a524d04" name="tests/bson-corpus/decimal128-2-valid-156.phpt" role="test" />
<file md5sum="335b2ee5400427a297cd159dfcd8f8b9" name="tests/bson-corpus/decimal128-2-valid-157.phpt" role="test" />
<file md5sum="285061fa1c44ed9bbf4e7677c16dfbdb" name="tests/bson-corpus/decimal128-3-valid-001.phpt" role="test" />
<file md5sum="71e816a512d0617ffb56083f9b253a43" name="tests/bson-corpus/decimal128-3-valid-002.phpt" role="test" />
<file md5sum="2a22fa5987c475c6ef136be9fd35dbe8" name="tests/bson-corpus/decimal128-3-valid-003.phpt" role="test" />
<file md5sum="e818dde2299e57e66daacf15dcd0c487" name="tests/bson-corpus/decimal128-3-valid-004.phpt" role="test" />
<file md5sum="bad325f55d41c2cabc2878932fb1af96" name="tests/bson-corpus/decimal128-3-valid-005.phpt" role="test" />
<file md5sum="707a5e22cdb5ea9dd7b56be0670c8065" name="tests/bson-corpus/decimal128-3-valid-006.phpt" role="test" />
<file md5sum="767412d1a7d808c4ad64332831352f88" name="tests/bson-corpus/decimal128-3-valid-007.phpt" role="test" />
<file md5sum="523b29c71b6662ded756802453b2efa0" name="tests/bson-corpus/decimal128-3-valid-008.phpt" role="test" />
<file md5sum="e885ac93a47321231328c3c288446842" name="tests/bson-corpus/decimal128-3-valid-009.phpt" role="test" />
<file md5sum="8edeb6b1d7cae3f361b187e73deea098" name="tests/bson-corpus/decimal128-3-valid-010.phpt" role="test" />
<file md5sum="09d75cebf55c6f2de98f2b32737353a2" name="tests/bson-corpus/decimal128-3-valid-011.phpt" role="test" />
<file md5sum="99c4d5dd30476828dc6024fb2e02a3c9" name="tests/bson-corpus/decimal128-3-valid-012.phpt" role="test" />
<file md5sum="762ea5994e873349e92b1759ad9fc222" name="tests/bson-corpus/decimal128-3-valid-013.phpt" role="test" />
<file md5sum="efa31de5dbc98e6d5e5b737407e13b33" name="tests/bson-corpus/decimal128-3-valid-014.phpt" role="test" />
<file md5sum="635bd16bcaadb3ce39f15fd5ecdbc6e8" name="tests/bson-corpus/decimal128-3-valid-015.phpt" role="test" />
<file md5sum="3b85e1cd604098694b1915b34031a727" name="tests/bson-corpus/decimal128-3-valid-016.phpt" role="test" />
<file md5sum="8819b3917f648a0fb4af27b03bf7c803" name="tests/bson-corpus/decimal128-3-valid-017.phpt" role="test" />
<file md5sum="36f0f60f4fa723876a33605783c99b15" name="tests/bson-corpus/decimal128-3-valid-018.phpt" role="test" />
<file md5sum="4b2f6a300b7c10e2f544f80f30d30d9f" name="tests/bson-corpus/decimal128-3-valid-019.phpt" role="test" />
<file md5sum="ffc701937d485d9eadb2a4a4a92665fe" name="tests/bson-corpus/decimal128-3-valid-020.phpt" role="test" />
<file md5sum="e38b0ff8f351068e3e166a6dbf621f15" name="tests/bson-corpus/decimal128-3-valid-021.phpt" role="test" />
<file md5sum="65cd782c3febf16d0f5733ff2bfafc96" name="tests/bson-corpus/decimal128-3-valid-022.phpt" role="test" />
<file md5sum="7bf4bcba014e524bc5b45b69e4d8ddef" name="tests/bson-corpus/decimal128-3-valid-023.phpt" role="test" />
<file md5sum="0df4ed3e8b33df779d0c1f0bb25ca864" name="tests/bson-corpus/decimal128-3-valid-024.phpt" role="test" />
<file md5sum="6f9b4206e689827c20eb1a8c39707592" name="tests/bson-corpus/decimal128-3-valid-025.phpt" role="test" />
<file md5sum="b5635f91adcbe5910c9845853c3000e8" name="tests/bson-corpus/decimal128-3-valid-026.phpt" role="test" />
<file md5sum="bc898da6ef93934ecb11b531c3b4c319" name="tests/bson-corpus/decimal128-3-valid-027.phpt" role="test" />
<file md5sum="388247160d0cf976b3d2f731aad836b3" name="tests/bson-corpus/decimal128-3-valid-028.phpt" role="test" />
<file md5sum="ae9bcfa0c72cb120f8954aba150fb0d3" name="tests/bson-corpus/decimal128-3-valid-029.phpt" role="test" />
<file md5sum="72f213804114eaf08b32ba30fdfaf563" name="tests/bson-corpus/decimal128-3-valid-030.phpt" role="test" />
<file md5sum="53697e75afe49541f6cd07588db9a4a5" name="tests/bson-corpus/decimal128-3-valid-031.phpt" role="test" />
<file md5sum="37e1fbad65836304d09913c7237becbe" name="tests/bson-corpus/decimal128-3-valid-032.phpt" role="test" />
<file md5sum="38be2a72668f7ecec231b5cb2143aa7c" name="tests/bson-corpus/decimal128-3-valid-033.phpt" role="test" />
<file md5sum="b684b9b00e1d48faf6c7157c213fe44e" name="tests/bson-corpus/decimal128-3-valid-034.phpt" role="test" />
<file md5sum="beacdb41ee2a019231d731f9978595d2" name="tests/bson-corpus/decimal128-3-valid-035.phpt" role="test" />
<file md5sum="4a28435b044639d1feabbe4574bc640c" name="tests/bson-corpus/decimal128-3-valid-036.phpt" role="test" />
<file md5sum="4b27da376aa5016d6a15a8350b4a8896" name="tests/bson-corpus/decimal128-3-valid-037.phpt" role="test" />
<file md5sum="42ea9bf74f5e119c116ac66353e7a336" name="tests/bson-corpus/decimal128-3-valid-038.phpt" role="test" />
<file md5sum="e2e632a6da598f5df6b9c4f2e69583c9" name="tests/bson-corpus/decimal128-3-valid-039.phpt" role="test" />
<file md5sum="26042ea0a9e57c199541cac0c73cf9df" name="tests/bson-corpus/decimal128-3-valid-040.phpt" role="test" />
<file md5sum="bcfe2333a27268b6f688b35711ed5949" name="tests/bson-corpus/decimal128-3-valid-041.phpt" role="test" />
<file md5sum="bf87106fbdb666c1d8101c76b5135e06" name="tests/bson-corpus/decimal128-3-valid-042.phpt" role="test" />
<file md5sum="d985f2378ebe13f286f0473bc00007ea" name="tests/bson-corpus/decimal128-3-valid-043.phpt" role="test" />
<file md5sum="9489d13ae932c7a274a5b0d3a8aee6bc" name="tests/bson-corpus/decimal128-3-valid-044.phpt" role="test" />
<file md5sum="6cf1f73f1d504c8b16a497fc4e936034" name="tests/bson-corpus/decimal128-3-valid-045.phpt" role="test" />
<file md5sum="7314d5967b8e0b58362c198d4097160c" name="tests/bson-corpus/decimal128-3-valid-046.phpt" role="test" />
<file md5sum="cea8a9ccef84c9bd977d65fd3f0c357f" name="tests/bson-corpus/decimal128-3-valid-047.phpt" role="test" />
<file md5sum="251ff6888529eceed901032a5a07350b" name="tests/bson-corpus/decimal128-3-valid-048.phpt" role="test" />
<file md5sum="60a49ba345ada492a53d0d6d0260d52e" name="tests/bson-corpus/decimal128-3-valid-049.phpt" role="test" />
<file md5sum="dd6c4bd00ae508089a04fe0cc0d46675" name="tests/bson-corpus/decimal128-3-valid-050.phpt" role="test" />
<file md5sum="4d4a12fabbf42d7eae1ae3816589d289" name="tests/bson-corpus/decimal128-3-valid-051.phpt" role="test" />
<file md5sum="5b591c7767672ad4f047f6ac7f1d1470" name="tests/bson-corpus/decimal128-3-valid-052.phpt" role="test" />
<file md5sum="f450bb3ba19ebbea98cb8aff47234e3f" name="tests/bson-corpus/decimal128-3-valid-053.phpt" role="test" />
<file md5sum="50de062de6a62d1b04f52683c409cf9a" name="tests/bson-corpus/decimal128-3-valid-054.phpt" role="test" />
<file md5sum="26223c9c10d8d81f626067dfd157cc66" name="tests/bson-corpus/decimal128-3-valid-055.phpt" role="test" />
<file md5sum="833f85ee40bc2b91ac0f83ac7c2911b7" name="tests/bson-corpus/decimal128-3-valid-056.phpt" role="test" />
<file md5sum="ade35aaa551f08d1db97f192f8935278" name="tests/bson-corpus/decimal128-3-valid-057.phpt" role="test" />
<file md5sum="e6096314e28a61263272383178e521cb" name="tests/bson-corpus/decimal128-3-valid-058.phpt" role="test" />
<file md5sum="f86af89d99f6aae8e2bf8758f3e323b0" name="tests/bson-corpus/decimal128-3-valid-059.phpt" role="test" />
<file md5sum="708d05c9f44a6b6910b0f586d4ea2a48" name="tests/bson-corpus/decimal128-3-valid-060.phpt" role="test" />
<file md5sum="ccef8893bad70c1dd01b012323e41a6e" name="tests/bson-corpus/decimal128-3-valid-061.phpt" role="test" />
<file md5sum="3d01b591b30d0fd551880c86d041ff15" name="tests/bson-corpus/decimal128-3-valid-062.phpt" role="test" />
<file md5sum="a9ffeda3e0c040f3918caa5bbe4eed92" name="tests/bson-corpus/decimal128-3-valid-063.phpt" role="test" />
<file md5sum="712882f545526a817f8cac0f396816f1" name="tests/bson-corpus/decimal128-3-valid-064.phpt" role="test" />
<file md5sum="a13606e8d6a51a91e94b002abf7569ac" name="tests/bson-corpus/decimal128-3-valid-065.phpt" role="test" />
<file md5sum="7bd9c1869f822e1697ab3186fff5ccac" name="tests/bson-corpus/decimal128-3-valid-066.phpt" role="test" />
<file md5sum="42ff6622baa9102dfdab5b4e9219e56c" name="tests/bson-corpus/decimal128-3-valid-067.phpt" role="test" />
<file md5sum="53a12d608c3b6ae3b229282331be4613" name="tests/bson-corpus/decimal128-3-valid-068.phpt" role="test" />
<file md5sum="4d4449891e57385f0a8683106745a6bf" name="tests/bson-corpus/decimal128-3-valid-069.phpt" role="test" />
<file md5sum="b9b353bcef79999222c7bb1e110b1d73" name="tests/bson-corpus/decimal128-3-valid-070.phpt" role="test" />
<file md5sum="b73056684bff62c373e92a2052b9c8fc" name="tests/bson-corpus/decimal128-3-valid-071.phpt" role="test" />
<file md5sum="88a3792345b74c97b88efd93c9bc7e86" name="tests/bson-corpus/decimal128-3-valid-072.phpt" role="test" />
<file md5sum="028321889f48c222c5a50909f54dfba6" name="tests/bson-corpus/decimal128-3-valid-073.phpt" role="test" />
<file md5sum="1220eb5830e06f6b1ebc0e92fb3a0217" name="tests/bson-corpus/decimal128-3-valid-074.phpt" role="test" />
<file md5sum="0b048118c5d2bec5990328f0b44e6b7c" name="tests/bson-corpus/decimal128-3-valid-075.phpt" role="test" />
<file md5sum="d159a63ea062cefce36c083af3f92e09" name="tests/bson-corpus/decimal128-3-valid-076.phpt" role="test" />
<file md5sum="6ebd27d79eb45617037b834a18f1a397" name="tests/bson-corpus/decimal128-3-valid-077.phpt" role="test" />
<file md5sum="ac557749d93ac364f7b7ac1924d7a139" name="tests/bson-corpus/decimal128-3-valid-078.phpt" role="test" />
<file md5sum="9179543cf5dde27908d35b421bafe092" name="tests/bson-corpus/decimal128-3-valid-079.phpt" role="test" />
<file md5sum="1d8995462753bef9a55e3e2a0b1cb8c7" name="tests/bson-corpus/decimal128-3-valid-080.phpt" role="test" />
<file md5sum="36191dd9cb54d47ad07aebf88a0ec450" name="tests/bson-corpus/decimal128-3-valid-081.phpt" role="test" />
<file md5sum="720ddc8130be016b5d743c91389b2308" name="tests/bson-corpus/decimal128-3-valid-082.phpt" role="test" />
<file md5sum="eba1d9851f97087e303f81150daf8acc" name="tests/bson-corpus/decimal128-3-valid-083.phpt" role="test" />
<file md5sum="74ea62a30d2ab023407992b7f6b868e1" name="tests/bson-corpus/decimal128-3-valid-084.phpt" role="test" />
<file md5sum="9cb2e9f4a6114a8a41f4fe0cf5a4b597" name="tests/bson-corpus/decimal128-3-valid-085.phpt" role="test" />
<file md5sum="38faf6b70499448cb39c7ec4693ebe2f" name="tests/bson-corpus/decimal128-3-valid-086.phpt" role="test" />
<file md5sum="ac98dfa8966deffa83814bd660e5116d" name="tests/bson-corpus/decimal128-3-valid-087.phpt" role="test" />
<file md5sum="afdd50ddddde4367798977f3e93d48a1" name="tests/bson-corpus/decimal128-3-valid-088.phpt" role="test" />
<file md5sum="c28ee80f93c0b5120d1374402164d803" name="tests/bson-corpus/decimal128-3-valid-089.phpt" role="test" />
<file md5sum="6a28fded11fbdd2f6fd2a37404fe8e1a" name="tests/bson-corpus/decimal128-3-valid-090.phpt" role="test" />
<file md5sum="6499665b64b2cda5c2caa835c3268b80" name="tests/bson-corpus/decimal128-3-valid-091.phpt" role="test" />
<file md5sum="e513b00463484e7eb6c206d81e7fe685" name="tests/bson-corpus/decimal128-3-valid-092.phpt" role="test" />
<file md5sum="98b719ddd62f5438ffa268724f57a7a6" name="tests/bson-corpus/decimal128-3-valid-093.phpt" role="test" />
<file md5sum="c8236e535105211a46f04c1d9085a956" name="tests/bson-corpus/decimal128-3-valid-094.phpt" role="test" />
<file md5sum="85c68ae6e45740cd54065e02c9aed1ea" name="tests/bson-corpus/decimal128-3-valid-095.phpt" role="test" />
<file md5sum="04a8b02c46373a3cdb504cd20c7a4065" name="tests/bson-corpus/decimal128-3-valid-096.phpt" role="test" />
<file md5sum="769410961825578ccddeffb5c037bbd9" name="tests/bson-corpus/decimal128-3-valid-097.phpt" role="test" />
<file md5sum="b416670da1fed453dcc181a0b4ca4265" name="tests/bson-corpus/decimal128-3-valid-098.phpt" role="test" />
<file md5sum="1c854bc86a5febf071aa30244e9d6158" name="tests/bson-corpus/decimal128-3-valid-099.phpt" role="test" />
<file md5sum="a2ae1aacb4293213ab44de1e4b467d6a" name="tests/bson-corpus/decimal128-3-valid-100.phpt" role="test" />
<file md5sum="f959fb91014e6db6aa7740156e3c415a" name="tests/bson-corpus/decimal128-3-valid-101.phpt" role="test" />
<file md5sum="870b07bd7b870c341266a0f32b0b4ad0" name="tests/bson-corpus/decimal128-3-valid-102.phpt" role="test" />
<file md5sum="2cf3e736ab17b799a600f097e2c207eb" name="tests/bson-corpus/decimal128-3-valid-103.phpt" role="test" />
<file md5sum="5ac5352cfe68b43850524f1258403996" name="tests/bson-corpus/decimal128-3-valid-104.phpt" role="test" />
<file md5sum="f88895c63eeeebcd2f04d03ae4836d46" name="tests/bson-corpus/decimal128-3-valid-105.phpt" role="test" />
<file md5sum="59c88a24b01330d40cbfb588f19f3172" name="tests/bson-corpus/decimal128-3-valid-106.phpt" role="test" />
<file md5sum="ccfd2869199b30a391a9778f6dae8c3a" name="tests/bson-corpus/decimal128-3-valid-107.phpt" role="test" />
<file md5sum="0c8a6d82d7e87c57ae1ca772db47613c" name="tests/bson-corpus/decimal128-3-valid-108.phpt" role="test" />
<file md5sum="8582b2a91ff2603ec41157bcbfe196b8" name="tests/bson-corpus/decimal128-3-valid-109.phpt" role="test" />
<file md5sum="732a1f025e3ae5d80a80a86e90a536e5" name="tests/bson-corpus/decimal128-3-valid-110.phpt" role="test" />
<file md5sum="c98ca02fc53d63ac85a11fc4af7cd31b" name="tests/bson-corpus/decimal128-3-valid-111.phpt" role="test" />
<file md5sum="089bb95ab89e85234feefd511897021f" name="tests/bson-corpus/decimal128-3-valid-112.phpt" role="test" />
<file md5sum="4a63fd31b9eb3ff7e00d8204216acfe5" name="tests/bson-corpus/decimal128-3-valid-113.phpt" role="test" />
<file md5sum="0aff30ba8a67813d40be4f4ddc32fe45" name="tests/bson-corpus/decimal128-3-valid-114.phpt" role="test" />
<file md5sum="3254d5489f515f7ea3f0c3fdffdfac0a" name="tests/bson-corpus/decimal128-3-valid-115.phpt" role="test" />
<file md5sum="c1a9d66b36ee5854b8f05426eb2593d9" name="tests/bson-corpus/decimal128-3-valid-116.phpt" role="test" />
<file md5sum="40519827c1acc93ccfdc79914cab4c44" name="tests/bson-corpus/decimal128-3-valid-117.phpt" role="test" />
<file md5sum="f2a7118530558db91c5af45cce414414" name="tests/bson-corpus/decimal128-3-valid-118.phpt" role="test" />
<file md5sum="ceb4919c0ba27c559fc8289e1d0a8a1f" name="tests/bson-corpus/decimal128-3-valid-119.phpt" role="test" />
<file md5sum="e1114e8d95af2aae260a34d9cc130d59" name="tests/bson-corpus/decimal128-3-valid-120.phpt" role="test" />
<file md5sum="1f80e6da7fc5aa97e8e0fe221fe72b4c" name="tests/bson-corpus/decimal128-3-valid-121.phpt" role="test" />
<file md5sum="1039f322acce0dd32a67c4a1be835f1d" name="tests/bson-corpus/decimal128-3-valid-122.phpt" role="test" />
<file md5sum="9e718c1821be1dce3919661b69b86f78" name="tests/bson-corpus/decimal128-3-valid-123.phpt" role="test" />
<file md5sum="edcda87f242e7aa05885b79ebe8356bd" name="tests/bson-corpus/decimal128-3-valid-124.phpt" role="test" />
<file md5sum="fbc61ecd900b31e916a80a41840ae7d2" name="tests/bson-corpus/decimal128-3-valid-125.phpt" role="test" />
<file md5sum="80aa079e149f647bf1b42371633fad50" name="tests/bson-corpus/decimal128-3-valid-126.phpt" role="test" />
<file md5sum="94ce8b2c5180bbcbc1115d716cfd22ac" name="tests/bson-corpus/decimal128-3-valid-127.phpt" role="test" />
<file md5sum="8f746a5301433896e6ce0f06448f84cb" name="tests/bson-corpus/decimal128-3-valid-128.phpt" role="test" />
<file md5sum="28fd05b37eb2937ec30b7657e65c3239" name="tests/bson-corpus/decimal128-3-valid-129.phpt" role="test" />
<file md5sum="16ed4f19d2c1179b7a9bd6cb1bea5cbe" name="tests/bson-corpus/decimal128-3-valid-130.phpt" role="test" />
<file md5sum="9e9f5b2a501d49448eb49a5bb4e5c145" name="tests/bson-corpus/decimal128-3-valid-131.phpt" role="test" />
<file md5sum="fc2516ab5fc97c767379cd2ce3664703" name="tests/bson-corpus/decimal128-3-valid-132.phpt" role="test" />
<file md5sum="b10a9a9e1fd53de1ceaad9bd76ba5820" name="tests/bson-corpus/decimal128-3-valid-133.phpt" role="test" />
<file md5sum="e3121b9f3762ad5f5e664b8aed2ce790" name="tests/bson-corpus/decimal128-3-valid-134.phpt" role="test" />
<file md5sum="4ac42094f4c6a1702697c88242bf6b22" name="tests/bson-corpus/decimal128-3-valid-135.phpt" role="test" />
<file md5sum="05e3c130ccbe2b4cfa889c32a14d9281" name="tests/bson-corpus/decimal128-3-valid-136.phpt" role="test" />
<file md5sum="b83f8cb4a55308e7c5a866b8e0432286" name="tests/bson-corpus/decimal128-3-valid-137.phpt" role="test" />
<file md5sum="bc7dcfa4b9ff96159dca442ccbfa6f58" name="tests/bson-corpus/decimal128-3-valid-138.phpt" role="test" />
<file md5sum="fdbf8af63147eaf8de4f355f893d82f0" name="tests/bson-corpus/decimal128-3-valid-139.phpt" role="test" />
<file md5sum="3ea4b9196ea0fde3e97531d50497e078" name="tests/bson-corpus/decimal128-3-valid-140.phpt" role="test" />
<file md5sum="548ebf8890210ed924e732e0bb56f268" name="tests/bson-corpus/decimal128-3-valid-141.phpt" role="test" />
<file md5sum="85621a9f6896c13336cc0ad57a178c36" name="tests/bson-corpus/decimal128-3-valid-142.phpt" role="test" />
<file md5sum="dd982fb56f56a2c22df77baeeef5a169" name="tests/bson-corpus/decimal128-3-valid-143.phpt" role="test" />
<file md5sum="e79c06fbd30f5cc500f558d091be2ff6" name="tests/bson-corpus/decimal128-3-valid-144.phpt" role="test" />
<file md5sum="905022562637a0fdf6e29c9f7081f06a" name="tests/bson-corpus/decimal128-3-valid-145.phpt" role="test" />
<file md5sum="85d99996a9edfbf0d1aee337a79807b7" name="tests/bson-corpus/decimal128-3-valid-146.phpt" role="test" />
<file md5sum="4d0b8d01353a0b140f63de1b3249dd1a" name="tests/bson-corpus/decimal128-3-valid-147.phpt" role="test" />
<file md5sum="688b3a5a6145886c0f4dcab0473ce503" name="tests/bson-corpus/decimal128-3-valid-148.phpt" role="test" />
<file md5sum="51102075cbdcc099b594c18b2ec5e804" name="tests/bson-corpus/decimal128-3-valid-149.phpt" role="test" />
<file md5sum="2ce179c33ab369756a3cf2b3ecb83d8f" name="tests/bson-corpus/decimal128-3-valid-150.phpt" role="test" />
<file md5sum="928be20883705fd5fd66e16a652358b2" name="tests/bson-corpus/decimal128-3-valid-151.phpt" role="test" />
<file md5sum="2ac14de8c9f338e2d109b65e1fe9b105" name="tests/bson-corpus/decimal128-3-valid-152.phpt" role="test" />
<file md5sum="8c6851e48419285cc4c41d101e60fa9e" name="tests/bson-corpus/decimal128-3-valid-153.phpt" role="test" />
<file md5sum="82ca8e037fd8ed557fb5276ca2f61511" name="tests/bson-corpus/decimal128-3-valid-154.phpt" role="test" />
<file md5sum="475a1a9f289178ad62c93bfbd211f05d" name="tests/bson-corpus/decimal128-3-valid-155.phpt" role="test" />
<file md5sum="9a35ce310e71145f363a2860b7dc15da" name="tests/bson-corpus/decimal128-3-valid-156.phpt" role="test" />
<file md5sum="dc7986da32ee64e79b78b96217d3910e" name="tests/bson-corpus/decimal128-3-valid-157.phpt" role="test" />
<file md5sum="022eab8694de0e478d59877dd23f3a60" name="tests/bson-corpus/decimal128-3-valid-158.phpt" role="test" />
<file md5sum="2255b591ad9260f3c1ca3c45cd2b9b5f" name="tests/bson-corpus/decimal128-3-valid-159.phpt" role="test" />
<file md5sum="549b36ad3bed3591ff6fcaaee7045313" name="tests/bson-corpus/decimal128-3-valid-160.phpt" role="test" />
<file md5sum="852918f6ad248bc0f2ab5cf0304a4ee5" name="tests/bson-corpus/decimal128-3-valid-161.phpt" role="test" />
<file md5sum="15087fca2e55ab6baa1832609f34ee48" name="tests/bson-corpus/decimal128-3-valid-162.phpt" role="test" />
<file md5sum="4fa5b2b2eecee85bc486722080a2084b" name="tests/bson-corpus/decimal128-3-valid-163.phpt" role="test" />
<file md5sum="23b802f336aea83ebdaedc295cce5a14" name="tests/bson-corpus/decimal128-3-valid-164.phpt" role="test" />
<file md5sum="4aef62831fa0040c1c9244306aed1a7b" name="tests/bson-corpus/decimal128-3-valid-165.phpt" role="test" />
<file md5sum="d294b55c0f5313be509da95c2013a0a7" name="tests/bson-corpus/decimal128-3-valid-166.phpt" role="test" />
<file md5sum="e98a837b3ec3163c840c87af9ab6f9ad" name="tests/bson-corpus/decimal128-3-valid-167.phpt" role="test" />
<file md5sum="d5a4004eb1f2a3305356886dc13e07a6" name="tests/bson-corpus/decimal128-3-valid-168.phpt" role="test" />
<file md5sum="640a7e5f5c96a11079c90695371af9b9" name="tests/bson-corpus/decimal128-3-valid-169.phpt" role="test" />
<file md5sum="b3d815c60e47a7752ce8398e1af99760" name="tests/bson-corpus/decimal128-3-valid-170.phpt" role="test" />
<file md5sum="1209501eba550a7225d10d000d852f64" name="tests/bson-corpus/decimal128-3-valid-171.phpt" role="test" />
<file md5sum="c6b2b546a5ee1715ac8c4a4311035506" name="tests/bson-corpus/decimal128-3-valid-172.phpt" role="test" />
<file md5sum="ad9556bcc698107e38ceb1fc21a99271" name="tests/bson-corpus/decimal128-3-valid-173.phpt" role="test" />
<file md5sum="fcce3b1c961ee40f0a38c8268688a95d" name="tests/bson-corpus/decimal128-3-valid-174.phpt" role="test" />
<file md5sum="93cba83b0a67c0cef8fe130a8952b997" name="tests/bson-corpus/decimal128-3-valid-175.phpt" role="test" />
<file md5sum="48997373a82deeb3d6247a3a8f69c9e5" name="tests/bson-corpus/decimal128-3-valid-176.phpt" role="test" />
<file md5sum="2c21780484c66d146b6c302b6a9ef24d" name="tests/bson-corpus/decimal128-3-valid-177.phpt" role="test" />
<file md5sum="3c4f3fd0776cea8c85eb0566bd3eecf9" name="tests/bson-corpus/decimal128-3-valid-178.phpt" role="test" />
<file md5sum="9e47fa141e942425e40198e81cc58e21" name="tests/bson-corpus/decimal128-3-valid-179.phpt" role="test" />
<file md5sum="0a9b1e1d8237e9d2fc59eab65541eab7" name="tests/bson-corpus/decimal128-3-valid-180.phpt" role="test" />
<file md5sum="fb0e3b45bf9b37a69389463de602637b" name="tests/bson-corpus/decimal128-3-valid-181.phpt" role="test" />
<file md5sum="083f6f7e7d6ab8a25296e3ae8dab4431" name="tests/bson-corpus/decimal128-3-valid-182.phpt" role="test" />
<file md5sum="9c724ce427dcd09269506b9a5186e454" name="tests/bson-corpus/decimal128-3-valid-183.phpt" role="test" />
<file md5sum="6e981891fed29665088fbe135f41e655" name="tests/bson-corpus/decimal128-3-valid-184.phpt" role="test" />
<file md5sum="1b3a8aef835d217bc49606bcc74fd0c7" name="tests/bson-corpus/decimal128-3-valid-185.phpt" role="test" />
<file md5sum="0d3f20ee42be45f3f813a48eb786d4ec" name="tests/bson-corpus/decimal128-3-valid-186.phpt" role="test" />
<file md5sum="140615ad56a7df27dc5bf2556188742d" name="tests/bson-corpus/decimal128-3-valid-187.phpt" role="test" />
<file md5sum="712ad83f86e9448b83cff049278ba028" name="tests/bson-corpus/decimal128-3-valid-188.phpt" role="test" />
<file md5sum="360022ce16ac4511202806dc03e14fde" name="tests/bson-corpus/decimal128-3-valid-189.phpt" role="test" />
<file md5sum="5dd3670e50ea9ff970b8476ca60d83b8" name="tests/bson-corpus/decimal128-3-valid-190.phpt" role="test" />
<file md5sum="73046337955ec3bae9d0922daffcd427" name="tests/bson-corpus/decimal128-3-valid-191.phpt" role="test" />
<file md5sum="c462a78d6f40aedfd7b58940763a6c20" name="tests/bson-corpus/decimal128-3-valid-192.phpt" role="test" />
<file md5sum="9b8f91fc1501e576ab24f52be1e30ba1" name="tests/bson-corpus/decimal128-3-valid-193.phpt" role="test" />
<file md5sum="a532a4e29824ce0b627b5b143b65d0fe" name="tests/bson-corpus/decimal128-3-valid-194.phpt" role="test" />
<file md5sum="01a19f560dc8db673af080d0c6b5941b" name="tests/bson-corpus/decimal128-3-valid-195.phpt" role="test" />
<file md5sum="bd778de3e6c2cfa858cfd3a8bf37e811" name="tests/bson-corpus/decimal128-3-valid-196.phpt" role="test" />
<file md5sum="cb28728c07fc1cd0aa0982a14c20ffc2" name="tests/bson-corpus/decimal128-3-valid-197.phpt" role="test" />
<file md5sum="6950698eb6bd66b2165c26f14964bc53" name="tests/bson-corpus/decimal128-3-valid-198.phpt" role="test" />
<file md5sum="8597c30c2e1fa1d18e0245ce8581c6e0" name="tests/bson-corpus/decimal128-3-valid-199.phpt" role="test" />
<file md5sum="ceee2fbcfd57fc0de2acb9e9701e3260" name="tests/bson-corpus/decimal128-3-valid-200.phpt" role="test" />
<file md5sum="9330fdce1696d89426d812395807dd11" name="tests/bson-corpus/decimal128-3-valid-201.phpt" role="test" />
<file md5sum="ce9aa05b4a206216695d5d3d7dac15e5" name="tests/bson-corpus/decimal128-3-valid-202.phpt" role="test" />
<file md5sum="82988ead7eb7158ff08504203255d4ce" name="tests/bson-corpus/decimal128-3-valid-203.phpt" role="test" />
<file md5sum="5211151734cb7845f6ca881c4822f2af" name="tests/bson-corpus/decimal128-3-valid-204.phpt" role="test" />
<file md5sum="08872007e8a4d43559cd029905a0ea7a" name="tests/bson-corpus/decimal128-3-valid-205.phpt" role="test" />
<file md5sum="8a352ac08b09c3702a7cb9f94ca3782c" name="tests/bson-corpus/decimal128-3-valid-206.phpt" role="test" />
<file md5sum="0ed1395d851d6fd7c8ec955e7d6abef6" name="tests/bson-corpus/decimal128-3-valid-207.phpt" role="test" />
<file md5sum="b912be6a449bd362f1d8d0ab300b95d9" name="tests/bson-corpus/decimal128-3-valid-208.phpt" role="test" />
<file md5sum="6ee07b45fbb74d4c559ccbe35efc293c" name="tests/bson-corpus/decimal128-3-valid-209.phpt" role="test" />
<file md5sum="21ea04fa3cb5725b3e04fa14c05bb778" name="tests/bson-corpus/decimal128-3-valid-210.phpt" role="test" />
<file md5sum="ff27ad73fed31adabb9d4069bf677b6a" name="tests/bson-corpus/decimal128-3-valid-211.phpt" role="test" />
<file md5sum="6daec11b51ce64dc5d30a1670f82b416" name="tests/bson-corpus/decimal128-3-valid-212.phpt" role="test" />
<file md5sum="b157fb300844c85858748952eb1f0136" name="tests/bson-corpus/decimal128-3-valid-213.phpt" role="test" />
<file md5sum="eada6557a178326098659b652bffb6f7" name="tests/bson-corpus/decimal128-3-valid-214.phpt" role="test" />
<file md5sum="b7c179e9d03bb79e7f38dfea985b5451" name="tests/bson-corpus/decimal128-3-valid-215.phpt" role="test" />
<file md5sum="9f5b0b8d05a9389b6907b3170e77530f" name="tests/bson-corpus/decimal128-3-valid-216.phpt" role="test" />
<file md5sum="4dc58778aebb875091dc7629239d8d60" name="tests/bson-corpus/decimal128-3-valid-217.phpt" role="test" />
<file md5sum="7476a23f0971cbf57553ec8c0bab5bf0" name="tests/bson-corpus/decimal128-3-valid-218.phpt" role="test" />
<file md5sum="97edd04bd057eb5ca2c24031e6eba5f3" name="tests/bson-corpus/decimal128-3-valid-219.phpt" role="test" />
<file md5sum="c6e3767973b93b6968713b26feb61005" name="tests/bson-corpus/decimal128-3-valid-220.phpt" role="test" />
<file md5sum="dd81036ab03a0b3b29c3e10f65dd1167" name="tests/bson-corpus/decimal128-3-valid-221.phpt" role="test" />
<file md5sum="c1dfc4ed2e740b49317c47599ec04cc2" name="tests/bson-corpus/decimal128-3-valid-222.phpt" role="test" />
<file md5sum="924938a05241b9cb58c42b153a6f19f7" name="tests/bson-corpus/decimal128-3-valid-223.phpt" role="test" />
<file md5sum="06b5f11b33a213b005dfe03beaaf95f7" name="tests/bson-corpus/decimal128-3-valid-224.phpt" role="test" />
<file md5sum="f2bad9d1effa87b1dd58f6606af08073" name="tests/bson-corpus/decimal128-3-valid-225.phpt" role="test" />
<file md5sum="1e9729bb0b03105563b2a53d4775953f" name="tests/bson-corpus/decimal128-3-valid-226.phpt" role="test" />
<file md5sum="a2d2586990d6235091ae0bc62af2c0ed" name="tests/bson-corpus/decimal128-3-valid-227.phpt" role="test" />
<file md5sum="23ecaa35dafd649994a0761e457e58e1" name="tests/bson-corpus/decimal128-3-valid-228.phpt" role="test" />
<file md5sum="d725ef16afdd2b8d9e9e063eadc6bda5" name="tests/bson-corpus/decimal128-3-valid-229.phpt" role="test" />
<file md5sum="cd804ed178eef641ad8126160f60c3f9" name="tests/bson-corpus/decimal128-3-valid-230.phpt" role="test" />
<file md5sum="fc7c940b358bf23a45757262f89ef06c" name="tests/bson-corpus/decimal128-3-valid-231.phpt" role="test" />
<file md5sum="9e21d07a4603187e9df75c049fbc4253" name="tests/bson-corpus/decimal128-3-valid-232.phpt" role="test" />
<file md5sum="68d0740f71b41d8031284f39121c432b" name="tests/bson-corpus/decimal128-3-valid-233.phpt" role="test" />
<file md5sum="c617e2c306b33b771591f55e12e01208" name="tests/bson-corpus/decimal128-3-valid-234.phpt" role="test" />
<file md5sum="92f087343a550740a22cb4f147ecc19c" name="tests/bson-corpus/decimal128-3-valid-235.phpt" role="test" />
<file md5sum="ef33ecf4b5d635a23bb12cc598b35d44" name="tests/bson-corpus/decimal128-3-valid-236.phpt" role="test" />
<file md5sum="7a8871b4fe2ba1868fcecc9340c0eced" name="tests/bson-corpus/decimal128-3-valid-237.phpt" role="test" />
<file md5sum="a65b16089d9c1388507f72faf6cf78b1" name="tests/bson-corpus/decimal128-3-valid-238.phpt" role="test" />
<file md5sum="6bb8f86dbf852f8efe0245213de2eb84" name="tests/bson-corpus/decimal128-3-valid-239.phpt" role="test" />
<file md5sum="5df85c98d6df6dbac42a85d071c7865e" name="tests/bson-corpus/decimal128-3-valid-240.phpt" role="test" />
<file md5sum="bf03e00dee795accd3e1e0cb30e05b3f" name="tests/bson-corpus/decimal128-3-valid-241.phpt" role="test" />
<file md5sum="e8f2e8d8121aa520c8afb6c1663326c0" name="tests/bson-corpus/decimal128-3-valid-242.phpt" role="test" />
<file md5sum="2bc0cea0d1041b8ad89bd59fca7a9e95" name="tests/bson-corpus/decimal128-3-valid-243.phpt" role="test" />
<file md5sum="a468edc19a97ce6686138cb414112681" name="tests/bson-corpus/decimal128-3-valid-244.phpt" role="test" />
<file md5sum="a0e126c3b8d3585d8cce2c303812123a" name="tests/bson-corpus/decimal128-3-valid-245.phpt" role="test" />
<file md5sum="32ea1cbd06faf58561f3beb21429b560" name="tests/bson-corpus/decimal128-3-valid-246.phpt" role="test" />
<file md5sum="9ada258e7dc0acc1d2e378596403328b" name="tests/bson-corpus/decimal128-3-valid-247.phpt" role="test" />
<file md5sum="6771f016e25d45f7c05613ad4d5add16" name="tests/bson-corpus/decimal128-3-valid-248.phpt" role="test" />
<file md5sum="9838570a99e3dab015d88af89b92e89d" name="tests/bson-corpus/decimal128-3-valid-249.phpt" role="test" />
<file md5sum="1a140b0bc1b882ee7b02b88f87688ca6" name="tests/bson-corpus/decimal128-3-valid-250.phpt" role="test" />
<file md5sum="631514b3be3e9b6db9c8f153cb47acf5" name="tests/bson-corpus/decimal128-3-valid-251.phpt" role="test" />
<file md5sum="88259b7af442f89b6629385ea2926a7a" name="tests/bson-corpus/decimal128-3-valid-252.phpt" role="test" />
<file md5sum="71094365ff5ffe399bbdfd4547384ff6" name="tests/bson-corpus/decimal128-3-valid-253.phpt" role="test" />
<file md5sum="47ab6d71b44afcdca5c0850b6cdfd478" name="tests/bson-corpus/decimal128-3-valid-254.phpt" role="test" />
<file md5sum="fc2dd17d4e77d7a90e162f7c963c2a61" name="tests/bson-corpus/decimal128-3-valid-255.phpt" role="test" />
<file md5sum="7532348e202fd38267184aa19421c95b" name="tests/bson-corpus/decimal128-3-valid-256.phpt" role="test" />
<file md5sum="244aabca840c86b83f73cd8ed1ecdc73" name="tests/bson-corpus/decimal128-3-valid-257.phpt" role="test" />
<file md5sum="967774a176fa6d37767ed0ad67bce078" name="tests/bson-corpus/decimal128-3-valid-258.phpt" role="test" />
<file md5sum="f730195cd5ad240116873ccc889a2158" name="tests/bson-corpus/decimal128-3-valid-259.phpt" role="test" />
<file md5sum="37dfa12a09993dd5ed230653bc7a2749" name="tests/bson-corpus/decimal128-3-valid-260.phpt" role="test" />
<file md5sum="7f641888c1d64767483eb953920ee3c3" name="tests/bson-corpus/decimal128-3-valid-261.phpt" role="test" />
<file md5sum="d0d81043b17f21d5b48a6c3619621704" name="tests/bson-corpus/decimal128-3-valid-262.phpt" role="test" />
<file md5sum="65c1ceaf72034c16a6326ab92ce3db9a" name="tests/bson-corpus/decimal128-3-valid-263.phpt" role="test" />
<file md5sum="b90fa115d7cc79cff9467041f1ff88cc" name="tests/bson-corpus/decimal128-3-valid-264.phpt" role="test" />
<file md5sum="818d85ec516b3be881cf07d93c4b58b1" name="tests/bson-corpus/decimal128-3-valid-265.phpt" role="test" />
<file md5sum="4cc326f9f11387304e84d8ae0b47abde" name="tests/bson-corpus/decimal128-3-valid-266.phpt" role="test" />
<file md5sum="7947f21ea14627043f786e9f217a98e3" name="tests/bson-corpus/decimal128-3-valid-267.phpt" role="test" />
<file md5sum="560a751fb16a9503d36d61ee66f547e2" name="tests/bson-corpus/decimal128-3-valid-268.phpt" role="test" />
<file md5sum="37a698891f45ce70181ccd060859f26a" name="tests/bson-corpus/decimal128-3-valid-269.phpt" role="test" />
<file md5sum="4ca5d01239a10c2d362677d7ed53ab48" name="tests/bson-corpus/decimal128-3-valid-270.phpt" role="test" />
<file md5sum="8684ce51df7b66b332a36529f8ea6686" name="tests/bson-corpus/decimal128-3-valid-271.phpt" role="test" />
<file md5sum="64006f7ab150865f7ca6ba189c193f4b" name="tests/bson-corpus/decimal128-3-valid-272.phpt" role="test" />
<file md5sum="90780ccc70c16a0697e4ea72ca251657" name="tests/bson-corpus/decimal128-3-valid-273.phpt" role="test" />
<file md5sum="74bba8c8d15e67f951f8ddc2bb1b9472" name="tests/bson-corpus/decimal128-3-valid-274.phpt" role="test" />
<file md5sum="66cd26f8db476493d7d090313bc18672" name="tests/bson-corpus/decimal128-3-valid-275.phpt" role="test" />
<file md5sum="a949dce3a31bcd0b549f7983adfe72a0" name="tests/bson-corpus/decimal128-3-valid-276.phpt" role="test" />
<file md5sum="be9d225533c645fa0bb193260ff40bd0" name="tests/bson-corpus/decimal128-3-valid-277.phpt" role="test" />
<file md5sum="18b35ce00a65dc8368f4e56bb38bbf77" name="tests/bson-corpus/decimal128-3-valid-278.phpt" role="test" />
<file md5sum="bdcff02d5473887881c44db441714c81" name="tests/bson-corpus/decimal128-3-valid-279.phpt" role="test" />
<file md5sum="bd95b3c8fcbf4db3c17a0d55cb9988ae" name="tests/bson-corpus/decimal128-3-valid-280.phpt" role="test" />
<file md5sum="d4c0aaddc8e246f8479717db5282334d" name="tests/bson-corpus/decimal128-3-valid-281.phpt" role="test" />
<file md5sum="ea1cfb4d67c27f0978bb6057ae81d806" name="tests/bson-corpus/decimal128-3-valid-282.phpt" role="test" />
<file md5sum="6e9b351fbac950f5c5ac75dd6eda54d1" name="tests/bson-corpus/decimal128-3-valid-283.phpt" role="test" />
<file md5sum="01b6cdd3958739f9f83b458cf4d9ed16" name="tests/bson-corpus/decimal128-3-valid-284.phpt" role="test" />
<file md5sum="eaa2e9d2a5b52fc6879533745d23ca7b" name="tests/bson-corpus/decimal128-3-valid-285.phpt" role="test" />
<file md5sum="a49007eaed23bcb39e8c5ee1936d699c" name="tests/bson-corpus/decimal128-3-valid-286.phpt" role="test" />
<file md5sum="4f6a97dcfeb49296c8ccb33e5f2ec0d7" name="tests/bson-corpus/decimal128-3-valid-287.phpt" role="test" />
<file md5sum="48ac9563087836b90e64409f127082d3" name="tests/bson-corpus/decimal128-3-valid-288.phpt" role="test" />
<file md5sum="0d2332701d4c40459c689a15237e4999" name="tests/bson-corpus/decimal128-3-valid-289.phpt" role="test" />
<file md5sum="d05559eefd3303a4cd6bdd1319098f95" name="tests/bson-corpus/decimal128-3-valid-290.phpt" role="test" />
<file md5sum="340d602a6a9380cc1ec87d5ddd24618a" name="tests/bson-corpus/decimal128-3-valid-291.phpt" role="test" />
<file md5sum="cd9e8cc681b8d5f2883c295263ba681a" name="tests/bson-corpus/decimal128-3-valid-292.phpt" role="test" />
<file md5sum="7b2d84471d3c1803536d56843a3b7189" name="tests/bson-corpus/decimal128-3-valid-293.phpt" role="test" />
<file md5sum="3188b5e9b291d069a71994f6510249c2" name="tests/bson-corpus/decimal128-3-valid-294.phpt" role="test" />
<file md5sum="450f30259936c99fba3c444f39f2fef2" name="tests/bson-corpus/decimal128-3-valid-295.phpt" role="test" />
<file md5sum="89cecda0b20df0fb0641cbdde7a8806c" name="tests/bson-corpus/decimal128-3-valid-296.phpt" role="test" />
<file md5sum="96dabbf4c78cdcd5e929ecc4093215fa" name="tests/bson-corpus/decimal128-3-valid-297.phpt" role="test" />
<file md5sum="f077760907b7746f5472b17bb288b1d6" name="tests/bson-corpus/decimal128-3-valid-298.phpt" role="test" />
<file md5sum="4581bb3a705fc587242055a981aa7384" name="tests/bson-corpus/decimal128-3-valid-299.phpt" role="test" />
<file md5sum="535616671b6f4a39359f54826f9a9323" name="tests/bson-corpus/decimal128-3-valid-300.phpt" role="test" />
<file md5sum="b196774e203878232feb1875b4a8c1fb" name="tests/bson-corpus/decimal128-3-valid-301.phpt" role="test" />
<file md5sum="e6b5fd9b0e5ef6620ea3224697e69ef6" name="tests/bson-corpus/decimal128-3-valid-302.phpt" role="test" />
<file md5sum="7f2d9df7834227fb0e6cdba1380e901c" name="tests/bson-corpus/decimal128-3-valid-303.phpt" role="test" />
<file md5sum="70f792cf0e62c2656b85c1930e54f462" name="tests/bson-corpus/decimal128-3-valid-304.phpt" role="test" />
<file md5sum="ccc5ac34313374e9d7c86f12fc0604ac" name="tests/bson-corpus/decimal128-3-valid-305.phpt" role="test" />
<file md5sum="0e62db478c8d512e0c0a447ff6729ac9" name="tests/bson-corpus/decimal128-3-valid-306.phpt" role="test" />
<file md5sum="8f068e9d28afab1818195d73d2a7a509" name="tests/bson-corpus/decimal128-3-valid-307.phpt" role="test" />
<file md5sum="50e8124f489022a6ffbbac75a5947861" name="tests/bson-corpus/decimal128-3-valid-308.phpt" role="test" />
<file md5sum="ba047e7921fca83be0bbf1ffb9ff32e6" name="tests/bson-corpus/decimal128-4-parseError-001.phpt" role="test" />
<file md5sum="96c4e11223d6a702ce7c160d7f33ec6e" name="tests/bson-corpus/decimal128-4-parseError-002.phpt" role="test" />
<file md5sum="2975e7043d01c304620a4a635c1df627" name="tests/bson-corpus/decimal128-4-parseError-003.phpt" role="test" />
<file md5sum="66ee3e45b68893588ae091b3da40b1c9" name="tests/bson-corpus/decimal128-4-parseError-004.phpt" role="test" />
<file md5sum="5f79cc977af6f42f0d16e23b6b78787a" name="tests/bson-corpus/decimal128-4-parseError-005.phpt" role="test" />
<file md5sum="905801853974398dd4df272c70db9f1f" name="tests/bson-corpus/decimal128-4-parseError-006.phpt" role="test" />
<file md5sum="930136040e99d94cac48f2dc1ea1b4ec" name="tests/bson-corpus/decimal128-4-parseError-007.phpt" role="test" />
<file md5sum="d200890cddd844aa3e417afdfaf66258" name="tests/bson-corpus/decimal128-4-parseError-008.phpt" role="test" />
<file md5sum="6929f5e4aa871b5568760bc96d01963f" name="tests/bson-corpus/decimal128-4-parseError-009.phpt" role="test" />
<file md5sum="14a207527ae35bbbf707219236f86f63" name="tests/bson-corpus/decimal128-4-parseError-010.phpt" role="test" />
<file md5sum="9828ca9e0e1d1af8bba3896ad969cbdc" name="tests/bson-corpus/decimal128-4-parseError-011.phpt" role="test" />
<file md5sum="eeb65b1dc4411a057e3437efd758cad5" name="tests/bson-corpus/decimal128-4-parseError-012.phpt" role="test" />
<file md5sum="ba731b0fd3b5e6f12980c65d3cd4c8c2" name="tests/bson-corpus/decimal128-4-parseError-013.phpt" role="test" />
<file md5sum="e185b77c3f7e11690bd948cff345f6a2" name="tests/bson-corpus/decimal128-4-parseError-014.phpt" role="test" />
<file md5sum="9c019336f3754089c347f727e81fa529" name="tests/bson-corpus/decimal128-4-parseError-015.phpt" role="test" />
<file md5sum="0eee95f4870d4d75daeba9d37a74a3da" name="tests/bson-corpus/decimal128-4-parseError-016.phpt" role="test" />
<file md5sum="9d327df701b1303cf8562508d1b73cc6" name="tests/bson-corpus/decimal128-4-parseError-017.phpt" role="test" />
<file md5sum="1ba071fa83d1712f9e18182a7c609d08" name="tests/bson-corpus/decimal128-4-parseError-018.phpt" role="test" />
<file md5sum="2e18b7b9617a104ca7944660cfbe7d31" name="tests/bson-corpus/decimal128-4-parseError-019.phpt" role="test" />
<file md5sum="54546dd203137c1ad0a58c5fd0144e7f" name="tests/bson-corpus/decimal128-4-parseError-020.phpt" role="test" />
<file md5sum="5169c970d4202cb623f9a7d664fe01f2" name="tests/bson-corpus/decimal128-4-valid-001.phpt" role="test" />
<file md5sum="1eba862b4aa60d111c16c6faf3b80f09" name="tests/bson-corpus/decimal128-4-valid-002.phpt" role="test" />
<file md5sum="da29e9a46961a4feb22c0b9393e1e36d" name="tests/bson-corpus/decimal128-4-valid-003.phpt" role="test" />
<file md5sum="584b10ce8fc2626e965ea68c9e3fa829" name="tests/bson-corpus/decimal128-4-valid-004.phpt" role="test" />
<file md5sum="c142547e8c531f53ccdd34c466b836a5" name="tests/bson-corpus/decimal128-4-valid-005.phpt" role="test" />
<file md5sum="06c186afe899c787f64bb151d3cf04e0" name="tests/bson-corpus/decimal128-4-valid-006.phpt" role="test" />
<file md5sum="50517c7115935799b9ee006f676fdff6" name="tests/bson-corpus/decimal128-4-valid-007.phpt" role="test" />
<file md5sum="1e4e7b8bf6b340bbd3ba7f41095bff8f" name="tests/bson-corpus/decimal128-4-valid-008.phpt" role="test" />
<file md5sum="854cd9d9659e37b517a636ef8647790f" name="tests/bson-corpus/decimal128-4-valid-009.phpt" role="test" />
<file md5sum="b6546de4ba3d2353494dbc9314362834" name="tests/bson-corpus/decimal128-4-valid-010.phpt" role="test" />
<file md5sum="38e99523af154d8e0f7765fd3c1daa82" name="tests/bson-corpus/decimal128-4-valid-011.phpt" role="test" />
<file md5sum="6dc0180bb23776e05347959122c09383" name="tests/bson-corpus/decimal128-4-valid-012.phpt" role="test" />
<file md5sum="ca5e4c8dc112377a2f36823f0c034388" name="tests/bson-corpus/decimal128-4-valid-013.phpt" role="test" />
<file md5sum="55ce9b1d08a495dc0ee1efad2ac94cae" name="tests/bson-corpus/decimal128-5-valid-001.phpt" role="test" />
<file md5sum="f34033470790d5410a784517119eff02" name="tests/bson-corpus/decimal128-5-valid-002.phpt" role="test" />
<file md5sum="ff8c889e2f5979095afee2b3ae433dde" name="tests/bson-corpus/decimal128-5-valid-003.phpt" role="test" />
<file md5sum="1f9a5a0ecc9b999aa981a11922565b1f" name="tests/bson-corpus/decimal128-5-valid-004.phpt" role="test" />
<file md5sum="de52d2fbf33f8fa6f96aa51192e45ce6" name="tests/bson-corpus/decimal128-5-valid-005.phpt" role="test" />
<file md5sum="c7a2a8ac679cbb9aac21773bf4760ff0" name="tests/bson-corpus/decimal128-5-valid-006.phpt" role="test" />
<file md5sum="f25279ed58dd3818e14408540b4e67cb" name="tests/bson-corpus/decimal128-5-valid-007.phpt" role="test" />
<file md5sum="5f9cbe4dd336fbef818e6a05a6705cdb" name="tests/bson-corpus/decimal128-5-valid-008.phpt" role="test" />
<file md5sum="bad9ac38ff0f0e555703b04576307bb9" name="tests/bson-corpus/decimal128-5-valid-009.phpt" role="test" />
<file md5sum="f8d36fbe632ccde721d2f9c67e70ce9f" name="tests/bson-corpus/decimal128-5-valid-010.phpt" role="test" />
<file md5sum="a2c4642a81607e15b402a6392e3c78d3" name="tests/bson-corpus/decimal128-5-valid-011.phpt" role="test" />
<file md5sum="03fe1b0bf3757f0097174ec2372963ae" name="tests/bson-corpus/decimal128-5-valid-012.phpt" role="test" />
<file md5sum="f03f515d198406eea85ef3ba39a4071a" name="tests/bson-corpus/decimal128-5-valid-013.phpt" role="test" />
<file md5sum="0b44f1d906671118fa80c8cfaa3aa071" name="tests/bson-corpus/decimal128-5-valid-014.phpt" role="test" />
<file md5sum="a46b0d591bd7453e0cdd770680978d47" name="tests/bson-corpus/decimal128-5-valid-015.phpt" role="test" />
<file md5sum="d6c61adc530e7136239974038800d998" name="tests/bson-corpus/decimal128-5-valid-016.phpt" role="test" />
<file md5sum="80bd8dc91740c7e8fa57b810c9219d5b" name="tests/bson-corpus/decimal128-5-valid-017.phpt" role="test" />
<file md5sum="9687c315985185080d5db69f36ae1a5c" name="tests/bson-corpus/decimal128-5-valid-018.phpt" role="test" />
<file md5sum="869c1d780811c8817d069123fd7b1935" name="tests/bson-corpus/decimal128-5-valid-019.phpt" role="test" />
<file md5sum="0db62a7dbcc7d587b432801da9c792dd" name="tests/bson-corpus/decimal128-5-valid-020.phpt" role="test" />
<file md5sum="23a43f580c34cea86d0a4092aaf88c8a" name="tests/bson-corpus/decimal128-5-valid-021.phpt" role="test" />
<file md5sum="5b61fb66b3a840012853df1cbda42b78" name="tests/bson-corpus/decimal128-5-valid-022.phpt" role="test" />
<file md5sum="a2b92a88661914d5324f8c770a5b72a7" name="tests/bson-corpus/decimal128-5-valid-023.phpt" role="test" />
<file md5sum="c11892d2d57a803357aa2ca41ac2b8f7" name="tests/bson-corpus/decimal128-5-valid-024.phpt" role="test" />
<file md5sum="37c42c49f7e58b4a20280c37ea1c4abd" name="tests/bson-corpus/decimal128-5-valid-025.phpt" role="test" />
<file md5sum="c3cb746105800f68ff854dd68a1fabc5" name="tests/bson-corpus/decimal128-5-valid-026.phpt" role="test" />
<file md5sum="6a1830a7d640de5bc610073d2e10a743" name="tests/bson-corpus/decimal128-5-valid-027.phpt" role="test" />
<file md5sum="9d6a5511163a40caef95296e83c03ba1" name="tests/bson-corpus/decimal128-5-valid-028.phpt" role="test" />
<file md5sum="fe4f5499ddf1f590be101cca152d1bb9" name="tests/bson-corpus/decimal128-5-valid-029.phpt" role="test" />
<file md5sum="b22c078a19cd728863674e0b526cfea8" name="tests/bson-corpus/decimal128-5-valid-030.phpt" role="test" />
<file md5sum="ad33d7f598f94a812dd3425a104067fa" name="tests/bson-corpus/decimal128-5-valid-031.phpt" role="test" />
<file md5sum="08b8592b8734194bdacef7132e71178c" name="tests/bson-corpus/decimal128-5-valid-032.phpt" role="test" />
<file md5sum="7cc72cb56165af6c577a27bef9703df6" name="tests/bson-corpus/decimal128-5-valid-033.phpt" role="test" />
<file md5sum="060753bf3bee18b7139266ebf79e2c80" name="tests/bson-corpus/decimal128-5-valid-034.phpt" role="test" />
<file md5sum="beeb84bf5a4e07c813bd04c827382a4b" name="tests/bson-corpus/decimal128-5-valid-035.phpt" role="test" />
<file md5sum="2e1d68a8e73312ad9b28248940f6f92d" name="tests/bson-corpus/decimal128-5-valid-036.phpt" role="test" />
<file md5sum="63c5a0f1e2a535d0c4602fe7b2810cde" name="tests/bson-corpus/decimal128-5-valid-037.phpt" role="test" />
<file md5sum="20228d0605f9f854b85e33f24be7aec0" name="tests/bson-corpus/decimal128-5-valid-038.phpt" role="test" />
<file md5sum="30b4da1e9a29b9da83ec0b794ba2fd90" name="tests/bson-corpus/decimal128-5-valid-039.phpt" role="test" />
<file md5sum="bc9e9f12c44e0ae8e656f798dc70441b" name="tests/bson-corpus/decimal128-5-valid-040.phpt" role="test" />
<file md5sum="9a3723451a6a2de7180fe0fd7788bb04" name="tests/bson-corpus/decimal128-5-valid-041.phpt" role="test" />
<file md5sum="1b3c65aefede804ac3ead8b0cb53b86e" name="tests/bson-corpus/decimal128-5-valid-042.phpt" role="test" />
<file md5sum="d2934411639a993fd1796cf9719f147e" name="tests/bson-corpus/decimal128-5-valid-043.phpt" role="test" />
<file md5sum="59039e0eb490c96efab01dcf613fdb29" name="tests/bson-corpus/decimal128-5-valid-044.phpt" role="test" />
<file md5sum="96347b3798efd01b3566b62cd1a9ba5e" name="tests/bson-corpus/decimal128-5-valid-045.phpt" role="test" />
<file md5sum="5d04de9a1b88ea6a23bc0e93fdadb940" name="tests/bson-corpus/decimal128-5-valid-046.phpt" role="test" />
<file md5sum="4bbe2cfcf22e9c4d85b7b19aa0ae96e3" name="tests/bson-corpus/decimal128-5-valid-047.phpt" role="test" />
<file md5sum="d78b87a4becb9b5ab3e7ce7578e63a0e" name="tests/bson-corpus/decimal128-5-valid-048.phpt" role="test" />
<file md5sum="df40dcad5ed42db814bf9920eba71101" name="tests/bson-corpus/decimal128-5-valid-049.phpt" role="test" />
<file md5sum="5088360f8c88410066353583a1670197" name="tests/bson-corpus/decimal128-5-valid-050.phpt" role="test" />
<file md5sum="057fe8e6a88b849b95c09f0054b16dc0" name="tests/bson-corpus/decimal128-5-valid-051.phpt" role="test" />
<file md5sum="8d126da719d2758e20f1d40fe5c67496" name="tests/bson-corpus/decimal128-5-valid-052.phpt" role="test" />
<file md5sum="54e108577f8d564f1e39b23dfb59a378" name="tests/bson-corpus/decimal128-5-valid-053.phpt" role="test" />
<file md5sum="9374a2cdddf9f05259667e905df80fef" name="tests/bson-corpus/decimal128-5-valid-054.phpt" role="test" />
<file md5sum="2083ea48527b612f315c00d9960d86e2" name="tests/bson-corpus/decimal128-5-valid-055.phpt" role="test" />
<file md5sum="a762290ff74783d00d2903ee529e861f" name="tests/bson-corpus/decimal128-5-valid-056.phpt" role="test" />
<file md5sum="9d9ea9e768ff46f44cf61529978ed7b3" name="tests/bson-corpus/decimal128-5-valid-057.phpt" role="test" />
<file md5sum="681c1cf33bfe7a343667fc8cc3e55ee6" name="tests/bson-corpus/decimal128-5-valid-058.phpt" role="test" />
<file md5sum="29f3aea8791610d01d3b88ebf785e968" name="tests/bson-corpus/decimal128-5-valid-059.phpt" role="test" />
<file md5sum="6ef48821cf775a4275f60c36e7df77e6" name="tests/bson-corpus/decimal128-5-valid-060.phpt" role="test" />
<file md5sum="9621186b68b7a53e3407c639c5af7dcc" name="tests/bson-corpus/decimal128-5-valid-061.phpt" role="test" />
<file md5sum="0a0c829699d2005842d977e3da48e9f6" name="tests/bson-corpus/decimal128-5-valid-062.phpt" role="test" />
<file md5sum="21ccb1a0e2ba5da0aef502044aa89cc5" name="tests/bson-corpus/decimal128-5-valid-063.phpt" role="test" />
<file md5sum="b8ff7d055f74b50904572668e07cda11" name="tests/bson-corpus/decimal128-5-valid-064.phpt" role="test" />
<file md5sum="0602af5499447d5eb415bbdda91b32a5" name="tests/bson-corpus/decimal128-5-valid-065.phpt" role="test" />
<file md5sum="a63e0970057c23a90f8d9fd3ff1d50be" name="tests/bson-corpus/decimal128-5-valid-066.phpt" role="test" />
<file md5sum="a05ea33380fc111a6faa36bb19c4c19b" name="tests/bson-corpus/decimal128-5-valid-067.phpt" role="test" />
<file md5sum="9d619c3b0719e7e6075adddc0ea9dbfd" name="tests/bson-corpus/decimal128-6-parseError-001.phpt" role="test" />
<file md5sum="5e5e28715e20456528ad5de48bd7349e" name="tests/bson-corpus/decimal128-6-parseError-002.phpt" role="test" />
<file md5sum="0bcacd7da821fef56d8133be73d34e3f" name="tests/bson-corpus/decimal128-6-parseError-003.phpt" role="test" />
<file md5sum="b330cdf56d272be270e82e2341aff1f4" name="tests/bson-corpus/decimal128-6-parseError-004.phpt" role="test" />
<file md5sum="087821837bfc5cc35f93663233652f5e" name="tests/bson-corpus/decimal128-6-parseError-005.phpt" role="test" />
<file md5sum="b7ff0e65afd02d5000989e467d212c51" name="tests/bson-corpus/decimal128-6-parseError-006.phpt" role="test" />
<file md5sum="32b737ae134b0641800c408a9bc4f4fc" name="tests/bson-corpus/decimal128-6-parseError-007.phpt" role="test" />
<file md5sum="722f4553265a2f16492fedd8cadf5dea" name="tests/bson-corpus/decimal128-6-parseError-008.phpt" role="test" />
<file md5sum="2e6d342b33ad7b6fa79067ccf36a2a9e" name="tests/bson-corpus/decimal128-6-parseError-009.phpt" role="test" />
<file md5sum="da34bfaf1576dc9a3a0c7152ab17551e" name="tests/bson-corpus/decimal128-6-parseError-010.phpt" role="test" />
<file md5sum="86ce002a308067909f42b96eb21308b2" name="tests/bson-corpus/decimal128-6-parseError-011.phpt" role="test" />
<file md5sum="6addc588a3cbc00449082c46a2e121db" name="tests/bson-corpus/decimal128-6-parseError-012.phpt" role="test" />
<file md5sum="473b1b080710a4937c2d7b1586ee40b3" name="tests/bson-corpus/decimal128-6-parseError-013.phpt" role="test" />
<file md5sum="dd0898b2e0802cb47b30753e9da159e3" name="tests/bson-corpus/decimal128-6-parseError-014.phpt" role="test" />
<file md5sum="58eb765b37e2e284a67383aaf3359788" name="tests/bson-corpus/decimal128-6-parseError-015.phpt" role="test" />
<file md5sum="7f360fae68599d98fff6b09d9e2ea8d0" name="tests/bson-corpus/decimal128-6-parseError-016.phpt" role="test" />
<file md5sum="be7a3fadb14f640d88c8423932975813" name="tests/bson-corpus/decimal128-6-parseError-017.phpt" role="test" />
<file md5sum="7a0603436c1795a2a1613a83f90901b7" name="tests/bson-corpus/decimal128-6-parseError-018.phpt" role="test" />
<file md5sum="7d1dccee0bd183c2baf5c9e0c90e6fbb" name="tests/bson-corpus/decimal128-6-parseError-019.phpt" role="test" />
<file md5sum="b979e1cff5d7aac6ac47239fa21baa72" name="tests/bson-corpus/decimal128-6-parseError-020.phpt" role="test" />
<file md5sum="08834e4aa640b820ef329690c28ba6ca" name="tests/bson-corpus/decimal128-6-parseError-021.phpt" role="test" />
<file md5sum="df16fe00ed13b38e8d7c648bd6d89c97" name="tests/bson-corpus/decimal128-6-parseError-022.phpt" role="test" />
<file md5sum="26b48d1f949d0e3aed0b9dedfc185afd" name="tests/bson-corpus/decimal128-6-parseError-023.phpt" role="test" />
<file md5sum="1078595f5fac6bee1267b4d263c6c8cb" name="tests/bson-corpus/decimal128-6-parseError-024.phpt" role="test" />
<file md5sum="e047a839813f6d9e94bae49691dd6701" name="tests/bson-corpus/decimal128-6-parseError-025.phpt" role="test" />
<file md5sum="12a013fe95a88779c348c4cb773115ad" name="tests/bson-corpus/decimal128-6-parseError-026.phpt" role="test" />
<file md5sum="354ff6b5d986470794f59886b683ac70" name="tests/bson-corpus/decimal128-6-parseError-027.phpt" role="test" />
<file md5sum="3ef809210e108a7dc60645c4140f07f9" name="tests/bson-corpus/decimal128-6-parseError-028.phpt" role="test" />
<file md5sum="50f7c0c8c816658e51a3946671bc02b4" name="tests/bson-corpus/decimal128-6-parseError-029.phpt" role="test" />
<file md5sum="93988289538ba9bebb3c9130d0287dd0" name="tests/bson-corpus/decimal128-6-parseError-030.phpt" role="test" />
<file md5sum="6bd10e968b1852735c6047be0e22e523" name="tests/bson-corpus/decimal128-6-parseError-031.phpt" role="test" />
<file md5sum="739125a03b1d42ac4f928dfd98a3f306" name="tests/bson-corpus/decimal128-7-parseError-001.phpt" role="test" />
<file md5sum="3e70c7fd9860e1b557c951895227973b" name="tests/bson-corpus/decimal128-7-parseError-002.phpt" role="test" />
<file md5sum="5680032198806e7625acfcdb227dc67a" name="tests/bson-corpus/decimal128-7-parseError-003.phpt" role="test" />
<file md5sum="bf63ba62a9265425b447d7285f045b28" name="tests/bson-corpus/decimal128-7-parseError-004.phpt" role="test" />
<file md5sum="9319f1a49ec2f2449283c2fd44d8275a" name="tests/bson-corpus/decimal128-7-parseError-005.phpt" role="test" />
<file md5sum="770cd1d3f59b161db855c5838fad7390" name="tests/bson-corpus/decimal128-7-parseError-006.phpt" role="test" />
<file md5sum="0dd5f74d70bd4d09fefaccc0ae3b326c" name="tests/bson-corpus/decimal128-7-parseError-007.phpt" role="test" />
<file md5sum="aec5da5a25c84f34b33d65f347a83c10" name="tests/bson-corpus/decimal128-7-parseError-008.phpt" role="test" />
<file md5sum="ab4f84a31f21de6c7a5a75381d8a8760" name="tests/bson-corpus/decimal128-7-parseError-009.phpt" role="test" />
<file md5sum="e6c669fe4746f25af030f19ca2efe96f" name="tests/bson-corpus/decimal128-7-parseError-010.phpt" role="test" />
<file md5sum="1c512a25e6b3b5eeb7efb02607c01351" name="tests/bson-corpus/decimal128-7-parseError-011.phpt" role="test" />
<file md5sum="5ec3a512414e516a23691ed7ce9c8409" name="tests/bson-corpus/decimal128-7-parseError-012.phpt" role="test" />
<file md5sum="83e1d3549c3e354b4ef47b3a97a42304" name="tests/bson-corpus/decimal128-7-parseError-013.phpt" role="test" />
<file md5sum="d5a3fe0a6355b408d2b5b1e82164dc06" name="tests/bson-corpus/decimal128-7-parseError-014.phpt" role="test" />
<file md5sum="03c2144e7ed68d510609d1882a0d3fb5" name="tests/bson-corpus/decimal128-7-parseError-015.phpt" role="test" />
<file md5sum="5bc01966bae4d9965ca5ab8e64d55d21" name="tests/bson-corpus/decimal128-7-parseError-016.phpt" role="test" />
<file md5sum="19e0f71895b66144e92440e3dcd0ff23" name="tests/bson-corpus/decimal128-7-parseError-017.phpt" role="test" />
<file md5sum="2f9e63cdb60253c97b4a1b709a35b6be" name="tests/bson-corpus/decimal128-7-parseError-018.phpt" role="test" />
<file md5sum="aeaa29b049aae5916bb8cccc8d47e7e8" name="tests/bson-corpus/decimal128-7-parseError-019.phpt" role="test" />
<file md5sum="b103339bc111045d962a5da60907a954" name="tests/bson-corpus/decimal128-7-parseError-020.phpt" role="test" />
<file md5sum="77c0d904a85bc98f4c0d60637a167d59" name="tests/bson-corpus/decimal128-7-parseError-021.phpt" role="test" />
<file md5sum="526a91c29eedfb7e792e31284bce93c2" name="tests/bson-corpus/decimal128-7-parseError-022.phpt" role="test" />
<file md5sum="7fad1b695028cee5b3524ae7795671dd" name="tests/bson-corpus/decimal128-7-parseError-023.phpt" role="test" />
<file md5sum="a284eeae3ac0dc6913c5028765472178" name="tests/bson-corpus/decimal128-7-parseError-024.phpt" role="test" />
<file md5sum="de5e0cfba4ba4e4db4dc6f9bac610bf3" name="tests/bson-corpus/decimal128-7-parseError-025.phpt" role="test" />
<file md5sum="5e8f71033a1f75d2caad14db4806d8b7" name="tests/bson-corpus/decimal128-7-parseError-026.phpt" role="test" />
<file md5sum="3e9808fa4362a86083025c8418b6b300" name="tests/bson-corpus/decimal128-7-parseError-027.phpt" role="test" />
<file md5sum="46c182f2fb62174dbe5ad42d52b1230d" name="tests/bson-corpus/decimal128-7-parseError-028.phpt" role="test" />
<file md5sum="3df633a71755c619e70d3961f3ed778d" name="tests/bson-corpus/decimal128-7-parseError-029.phpt" role="test" />
<file md5sum="7f7590bd2c639fb10e553ea2f1e40a97" name="tests/bson-corpus/decimal128-7-parseError-030.phpt" role="test" />
<file md5sum="b827cc6fea8a64cc770452afa2cb45cb" name="tests/bson-corpus/decimal128-7-parseError-031.phpt" role="test" />
<file md5sum="98f885b5d4b9333ea213f4be4f8ddca6" name="tests/bson-corpus/decimal128-7-parseError-032.phpt" role="test" />
<file md5sum="546c9fa342e790e86e34f6b5c6de3b84" name="tests/bson-corpus/decimal128-7-parseError-033.phpt" role="test" />
<file md5sum="2b073b2ea1bc7fd605780f947ceac75e" name="tests/bson-corpus/decimal128-7-parseError-034.phpt" role="test" />
<file md5sum="9e92800972333c69386eb81e0e3d8ec9" name="tests/bson-corpus/decimal128-7-parseError-035.phpt" role="test" />
<file md5sum="ac308002b7f73ff45b68ce36b38a7275" name="tests/bson-corpus/decimal128-7-parseError-036.phpt" role="test" />
<file md5sum="a10da36d1c1c27079c245ad31d2bce08" name="tests/bson-corpus/decimal128-7-parseError-037.phpt" role="test" />
<file md5sum="c11703f2e41a1e40e993465cc1f5a865" name="tests/bson-corpus/decimal128-7-parseError-038.phpt" role="test" />
<file md5sum="ef094591196f8a16df0cfeb14d7fa8fd" name="tests/bson-corpus/decimal128-7-parseError-039.phpt" role="test" />
<file md5sum="d44551a47e6182cf4c22245df9a49863" name="tests/bson-corpus/decimal128-7-parseError-040.phpt" role="test" />
<file md5sum="bfd6aefac1a28c8f5a576f646d1c8f4b" name="tests/bson-corpus/decimal128-7-parseError-041.phpt" role="test" />
<file md5sum="5e667f745c3bf9dc68b4878a6de2ca7f" name="tests/bson-corpus/decimal128-7-parseError-042.phpt" role="test" />
<file md5sum="e8eb51d644cc1ad01df9f2fe5f8d615c" name="tests/bson-corpus/decimal128-7-parseError-043.phpt" role="test" />
<file md5sum="d0ab46feebf5f41b736c28c25be9c41d" name="tests/bson-corpus/decimal128-7-parseError-044.phpt" role="test" />
<file md5sum="5195470ca981d3b793e4dc7ae16c7b80" name="tests/bson-corpus/decimal128-7-parseError-045.phpt" role="test" />
<file md5sum="5ed083d6153fb2be44b2bdd69cb3ad66" name="tests/bson-corpus/decimal128-7-parseError-046.phpt" role="test" />
<file md5sum="b90aad87eb6e3fdc0f7069a6217bdeb6" name="tests/bson-corpus/decimal128-7-parseError-047.phpt" role="test" />
<file md5sum="24a773cfb9b0f6d19d2f5d23e2d4734f" name="tests/bson-corpus/decimal128-7-parseError-048.phpt" role="test" />
<file md5sum="d49c37b3be2913bbf9e94460aaa6dea5" name="tests/bson-corpus/decimal128-7-parseError-049.phpt" role="test" />
<file md5sum="a8e25353f491c8abcd83ecb445cdbef7" name="tests/bson-corpus/decimal128-7-parseError-050.phpt" role="test" />
<file md5sum="7d957b915a4677d1a743b82ed69b8399" name="tests/bson-corpus/decimal128-7-parseError-051.phpt" role="test" />
<file md5sum="a6c028651988ac5aef2583662d03606d" name="tests/bson-corpus/decimal128-7-parseError-052.phpt" role="test" />
<file md5sum="8b9d5a234c5003562c06a22a6055b9a9" name="tests/bson-corpus/decimal128-7-parseError-053.phpt" role="test" />
<file md5sum="db576d750b955b8133bc3a3ca17b268d" name="tests/bson-corpus/decimal128-7-parseError-054.phpt" role="test" />
<file md5sum="0fe5c131ea839136dbe43eb34956ddea" name="tests/bson-corpus/decimal128-7-parseError-055.phpt" role="test" />
<file md5sum="c8a6b9a6dc2b7fd0859748bf004444ad" name="tests/bson-corpus/decimal128-7-parseError-056.phpt" role="test" />
<file md5sum="e6317794fe425616e7384eaee73d508d" name="tests/bson-corpus/decimal128-7-parseError-057.phpt" role="test" />
<file md5sum="ae9adaf19631cf1b0fc10f5ef2d73fc9" name="tests/bson-corpus/decimal128-7-parseError-058.phpt" role="test" />
<file md5sum="de4ea2c89f6188610d9b754bbe699a64" name="tests/bson-corpus/decimal128-7-parseError-059.phpt" role="test" />
<file md5sum="2ab16b6b73a8fd7a26850ed267dc7839" name="tests/bson-corpus/decimal128-7-parseError-060.phpt" role="test" />
<file md5sum="e9243a30ec1d8601e3349c95a52bb281" name="tests/bson-corpus/decimal128-7-parseError-061.phpt" role="test" />
<file md5sum="deb3afb234ab883875f98adae9ac22c7" name="tests/bson-corpus/decimal128-7-parseError-062.phpt" role="test" />
<file md5sum="7f9efd9d04a8f1dc79a5b0b89fd01591" name="tests/bson-corpus/decimal128-7-parseError-063.phpt" role="test" />
<file md5sum="6e2d1fd08e5c5119473aec4a053a8b28" name="tests/bson-corpus/decimal128-7-parseError-064.phpt" role="test" />
<file md5sum="f01b69a5459752b843c52b2bfa3abe94" name="tests/bson-corpus/decimal128-7-parseError-065.phpt" role="test" />
<file md5sum="5f9f1ec42e3cb971c969c02e21861d35" name="tests/bson-corpus/decimal128-7-parseError-066.phpt" role="test" />
<file md5sum="5f35e09da70142bacb52211bc1c56723" name="tests/bson-corpus/decimal128-7-parseError-067.phpt" role="test" />
<file md5sum="670bba129ff3d44ebcaa75bb1eef54db" name="tests/bson-corpus/decimal128-7-parseError-068.phpt" role="test" />
<file md5sum="9822ce5f455adcb099fb8608ec00447e" name="tests/bson-corpus/decimal128-7-parseError-069.phpt" role="test" />
<file md5sum="3d91bc48b724ce35db3d8ee571201bef" name="tests/bson-corpus/decimal128-7-parseError-070.phpt" role="test" />
<file md5sum="4e27519c86e60695762547d22250a30d" name="tests/bson-corpus/decimal128-7-parseError-071.phpt" role="test" />
<file md5sum="2ad0c662a34e4860d591491568519e0c" name="tests/bson-corpus/decimal128-7-parseError-072.phpt" role="test" />
<file md5sum="8cb216dfac5cb18d1dc67b217b03a75f" name="tests/bson-corpus/decimal128-7-parseError-073.phpt" role="test" />
<file md5sum="102157c1968d887e482664937712f960" name="tests/bson-corpus/decimal128-7-parseError-074.phpt" role="test" />
<file md5sum="1383c9faaea4308830abf57c319d1416" name="tests/bson-corpus/decimal128-7-parseError-075.phpt" role="test" />
<file md5sum="bdc6b09eadb365c1ca90fa5abdcdcb72" name="tests/bson-corpus/decimal128-7-parseError-076.phpt" role="test" />
<file md5sum="fcb39e6d22bec7ae00715559c73d4021" name="tests/bson-corpus/decimal128-7-parseError-077.phpt" role="test" />
<file md5sum="883d74890811efba08b9bdcd00427933" name="tests/bson-corpus/decimal128-7-parseError-078.phpt" role="test" />
<file md5sum="b70276e215fe563edbb78b9ab826ac94" name="tests/bson-corpus/decimal128-7-parseError-079.phpt" role="test" />
<file md5sum="b566a55c4f0abf20272a8a5d7a7b0f86" name="tests/bson-corpus/decimal128-7-parseError-080.phpt" role="test" />
<file md5sum="e162a317afd996068db3d446880ae555" name="tests/bson-corpus/document-decodeError-001.phpt" role="test" />
<file md5sum="2a91de3f33c69e87c71f72c7be1a4c59" name="tests/bson-corpus/document-decodeError-002.phpt" role="test" />
<file md5sum="0c762cd349bb3a8efe75dee194be577c" name="tests/bson-corpus/document-decodeError-003.phpt" role="test" />
<file md5sum="23457ace85afdf7c1654d8bcfd06eb95" name="tests/bson-corpus/document-decodeError-004.phpt" role="test" />
<file md5sum="31fc73d6b0650873461bf4cb0fcd52c4" name="tests/bson-corpus/document-valid-001.phpt" role="test" />
<file md5sum="ee687596c12f725b8dfd329754a925e2" name="tests/bson-corpus/document-valid-002.phpt" role="test" />
<file md5sum="a721880ab6954c9fd4e7d9f0af18d2a1" name="tests/bson-corpus/document-valid-003.phpt" role="test" />
<file md5sum="eb88be611504ac69fccc32cd5de4dbb0" name="tests/bson-corpus/document-valid-004.phpt" role="test" />
<file md5sum="2ae52444a4622ad4776051240cf3b98e" name="tests/bson-corpus/document-valid-005.phpt" role="test" />
<file md5sum="e61af9f8c707cc34bd5ceb3ecf6bf8ae" name="tests/bson-corpus/document-valid-006.phpt" role="test" />
<file md5sum="72213e2316893cdaf534575f89c2fe31" name="tests/bson-corpus/document-valid-007.phpt" role="test" />
<file md5sum="c461353475adbce1be26a01b2b186599" name="tests/bson-corpus/double-decodeError-001.phpt" role="test" />
<file md5sum="6071b7bc49e7c55b03726ad0672c70d6" name="tests/bson-corpus/double-valid-001.phpt" role="test" />
<file md5sum="6bd2d31a39a1ecdab7738e66557b0286" name="tests/bson-corpus/double-valid-002.phpt" role="test" />
<file md5sum="3af8aecd3b02e43d62747712b66d3817" name="tests/bson-corpus/double-valid-003.phpt" role="test" />
<file md5sum="ede2ea2b85475230fd67498c74e6fa9b" name="tests/bson-corpus/double-valid-004.phpt" role="test" />
<file md5sum="10cd3f457bf2effb43f6106d999bdf26" name="tests/bson-corpus/double-valid-005.phpt" role="test" />
<file md5sum="569b6d1e2e75d6711e6ff8f7e32b80c0" name="tests/bson-corpus/double-valid-006.phpt" role="test" />
<file md5sum="d665f52fdd1686dd743f9902130a9239" name="tests/bson-corpus/double-valid-007.phpt" role="test" />
<file md5sum="78eb565b40d7220c6fad8574f9a570b5" name="tests/bson-corpus/double-valid-008.phpt" role="test" />
<file md5sum="0aaae63d1303ed6b7556f6b434d34f30" name="tests/bson-corpus/double-valid-009.phpt" role="test" />
<file md5sum="0595a40ed8f08686b833abffd0bb524f" name="tests/bson-corpus/double-valid-010.phpt" role="test" />
<file md5sum="d255488dfb1f0ee91e9dd229e7bae91e" name="tests/bson-corpus/double-valid-011.phpt" role="test" />
<file md5sum="e7dc4072a01dfe9db7666d4f9b0fa680" name="tests/bson-corpus/double-valid-012.phpt" role="test" />
<file md5sum="ee89e9e34b5126f850f89063d12ad8d9" name="tests/bson-corpus/int32-decodeError-001.phpt" role="test" />
<file md5sum="fb9aa8b1facfc35c75736733ab3de8a9" name="tests/bson-corpus/int32-valid-001.phpt" role="test" />
<file md5sum="7543dc1ec24b1049371d2333b0c073b6" name="tests/bson-corpus/int32-valid-002.phpt" role="test" />
<file md5sum="722cdcdda89a5753c4f0f4dfff37447c" name="tests/bson-corpus/int32-valid-003.phpt" role="test" />
<file md5sum="6d12976ccf74999d3afe83d7c163e688" name="tests/bson-corpus/int32-valid-004.phpt" role="test" />
<file md5sum="050d52fef2d02047b110ba00370bbd09" name="tests/bson-corpus/int32-valid-005.phpt" role="test" />
<file md5sum="40045777cc43b74ef7d5c8e82e5bdbd0" name="tests/bson-corpus/int64-decodeError-001.phpt" role="test" />
<file md5sum="334fb3ffd4ebd9818d71a5a45233e57a" name="tests/bson-corpus/int64-valid-001.phpt" role="test" />
<file md5sum="f7d40a9c1a21967e0d492aa5dba422dc" name="tests/bson-corpus/int64-valid-002.phpt" role="test" />
<file md5sum="2ee3a62722d2e759ca783a25618c6c81" name="tests/bson-corpus/int64-valid-003.phpt" role="test" />
<file md5sum="4291445a50b450d75bcbb87b94b4f2c3" name="tests/bson-corpus/int64-valid-004.phpt" role="test" />
<file md5sum="f5e62025766404a63163a40e0d1539fa" name="tests/bson-corpus/int64-valid-005.phpt" role="test" />
<file md5sum="a105871724a00c3843a750b81bd8796e" name="tests/bson-corpus/maxkey-valid-001.phpt" role="test" />
<file md5sum="65336101d3b785728ad7ccd2d93531cb" name="tests/bson-corpus/minkey-valid-001.phpt" role="test" />
<file md5sum="6e4b65bcb87c80e9b5f8936f8d3bf505" name="tests/bson-corpus/multi-type-deprecated-valid-001.phpt" role="test" />
<file md5sum="1151cabdb3898a3d516341ff879aa025" name="tests/bson-corpus/multi-type-valid-001.phpt" role="test" />
<file md5sum="8824d9530c11e5fe4223ab8fa1555be0" name="tests/bson-corpus/null-valid-001.phpt" role="test" />
<file md5sum="27dd6f992a857d389c05cbc7398e71bb" name="tests/bson-corpus/oid-decodeError-001.phpt" role="test" />
<file md5sum="3bcd6c525875a79319dff444c7616ec5" name="tests/bson-corpus/oid-valid-001.phpt" role="test" />
<file md5sum="650cc81b09d2f9f3d559c4dfca5e9cb3" name="tests/bson-corpus/oid-valid-002.phpt" role="test" />
<file md5sum="e510e39abec7bccccf739af126bb4789" name="tests/bson-corpus/oid-valid-003.phpt" role="test" />
<file md5sum="aa3b57c5353b936f899fd2cdc7b5a28e" name="tests/bson-corpus/regex-decodeError-001.phpt" role="test" />
<file md5sum="aea8e38b3fbc264ceb05d66481d8b3eb" name="tests/bson-corpus/regex-decodeError-002.phpt" role="test" />
<file md5sum="3d753ffdc9a2722cb45b9051e026fe61" name="tests/bson-corpus/regex-valid-001.phpt" role="test" />
<file md5sum="7a9e5aaa600127a2a82bacca979f93df" name="tests/bson-corpus/regex-valid-002.phpt" role="test" />
<file md5sum="ee0b0539d2868f345a71fd024e6329c0" name="tests/bson-corpus/regex-valid-003.phpt" role="test" />
<file md5sum="bcee54584211240f70587e040f01e50b" name="tests/bson-corpus/regex-valid-004.phpt" role="test" />
<file md5sum="4ab247e9369df6d487e4750477e94dd9" name="tests/bson-corpus/regex-valid-005.phpt" role="test" />
<file md5sum="88be2c4d73b5e5adda5854da9e4fc9fd" name="tests/bson-corpus/regex-valid-006.phpt" role="test" />
<file md5sum="65fcce6ad035f420e4a8bf012fe2a1e1" name="tests/bson-corpus/regex-valid-007.phpt" role="test" />
<file md5sum="5c53a03644e5afc2a67689dfdc0a020c" name="tests/bson-corpus/regex-valid-008.phpt" role="test" />
<file md5sum="d6b0311a2da93981473263131e5279d3" name="tests/bson-corpus/regex-valid-009.phpt" role="test" />
<file md5sum="3d0b2e0fc6f387000582d58592731407" name="tests/bson-corpus/string-decodeError-001.phpt" role="test" />
<file md5sum="a9ff41aee3f6e049cd0d2a1bfb60591b" name="tests/bson-corpus/string-decodeError-002.phpt" role="test" />
<file md5sum="6f818d005518cd015e91ebb637b61e99" name="tests/bson-corpus/string-decodeError-003.phpt" role="test" />
<file md5sum="38f890462fc443f52200f50106444acb" name="tests/bson-corpus/string-decodeError-004.phpt" role="test" />
<file md5sum="6aeed9099ff6ed29d8937f3b11dca40f" name="tests/bson-corpus/string-decodeError-005.phpt" role="test" />
<file md5sum="3f7114c77c25e78b24e965c81f592f16" name="tests/bson-corpus/string-decodeError-006.phpt" role="test" />
<file md5sum="cee3ab240e5da16b5ab03e64b8cb432e" name="tests/bson-corpus/string-decodeError-007.phpt" role="test" />
<file md5sum="4f64097b1478f893368c084aa66cb3de" name="tests/bson-corpus/string-valid-001.phpt" role="test" />
<file md5sum="bb4e9c43e6ff040b21c064cba8ab7dec" name="tests/bson-corpus/string-valid-002.phpt" role="test" />
<file md5sum="4193cfb4109fd61da26633aaa372817a" name="tests/bson-corpus/string-valid-003.phpt" role="test" />
<file md5sum="05976af87f90a7a3d22a1bbec08dcb39" name="tests/bson-corpus/string-valid-004.phpt" role="test" />
<file md5sum="5c26a9bfeef5d177a7ae32fe7c614cc2" name="tests/bson-corpus/string-valid-005.phpt" role="test" />
<file md5sum="eee2f345942bd67d3775c9e9de6f4a89" name="tests/bson-corpus/string-valid-006.phpt" role="test" />
<file md5sum="eb4fbca60bbaf85fbab38ed67f1ce236" name="tests/bson-corpus/string-valid-007.phpt" role="test" />
<file md5sum="99d615f9c6d0d10861464768e023fd92" name="tests/bson-corpus/symbol-decodeError-001.phpt" role="test" />
<file md5sum="6ceed877be1ae6ba427d980c541753da" name="tests/bson-corpus/symbol-decodeError-002.phpt" role="test" />
<file md5sum="d00e0cb65aa4a23f832f84f2b5643a41" name="tests/bson-corpus/symbol-decodeError-003.phpt" role="test" />
<file md5sum="899cbd5e4b6ec97eb9f3fc04204fad09" name="tests/bson-corpus/symbol-decodeError-004.phpt" role="test" />
<file md5sum="0e69a16c7a19f7e3cf6773184069b2a9" name="tests/bson-corpus/symbol-decodeError-005.phpt" role="test" />
<file md5sum="b3acd6e8158de0abf54601d24abe78bb" name="tests/bson-corpus/symbol-decodeError-006.phpt" role="test" />
<file md5sum="b39454ebfc8a5b2a642663844cecbc81" name="tests/bson-corpus/symbol-decodeError-007.phpt" role="test" />
<file md5sum="8b0cc3dbd19598be43e29970da50136d" name="tests/bson-corpus/symbol-valid-001.phpt" role="test" />
<file md5sum="5243759573296a2610fca819c47a2edf" name="tests/bson-corpus/symbol-valid-002.phpt" role="test" />
<file md5sum="5ea6e9750d77759dbd6de3b0e5bb640c" name="tests/bson-corpus/symbol-valid-003.phpt" role="test" />
<file md5sum="52a411e360a0c90e114b5331718c007a" name="tests/bson-corpus/symbol-valid-004.phpt" role="test" />
<file md5sum="f4ce7963335f74a25ffb9d212661b4b4" name="tests/bson-corpus/symbol-valid-005.phpt" role="test" />
<file md5sum="6aec147b96abe946444e4e7903afc3ab" name="tests/bson-corpus/symbol-valid-006.phpt" role="test" />
<file md5sum="329ad438956681f6a558279bd21576d6" name="tests/bson-corpus/timestamp-decodeError-001.phpt" role="test" />
<file md5sum="ea94bc85b0195de213b66e27774b9e67" name="tests/bson-corpus/timestamp-valid-001.phpt" role="test" />
<file md5sum="57d34a4a01372e4684f8c54337c04915" name="tests/bson-corpus/timestamp-valid-002.phpt" role="test" />
<file md5sum="00616435a0efd2bcc235997a7c7a0e9d" name="tests/bson-corpus/timestamp-valid-003.phpt" role="test" />
<file md5sum="9dc4f05290dd318d459f266121088a23" name="tests/bson-corpus/timestamp-valid-004.phpt" role="test" />
<file md5sum="5327428b70a624b746af801db14c0400" name="tests/bson-corpus/top-decodeError-001.phpt" role="test" />
<file md5sum="6fca3835a1171790d3eb20a2f6372dee" name="tests/bson-corpus/top-decodeError-002.phpt" role="test" />
<file md5sum="ab8050a94efe37b9d7b68963d3641474" name="tests/bson-corpus/top-decodeError-003.phpt" role="test" />
<file md5sum="fe705496519b93b6b792d22609387240" name="tests/bson-corpus/top-decodeError-004.phpt" role="test" />
<file md5sum="d865c3dc57805206a2793d0fbd966a91" name="tests/bson-corpus/top-decodeError-005.phpt" role="test" />
<file md5sum="b898abcdaf68772ec2e70f36427dcd35" name="tests/bson-corpus/top-decodeError-006.phpt" role="test" />
<file md5sum="267686cb841f9e4325df13417553f537" name="tests/bson-corpus/top-decodeError-007.phpt" role="test" />
<file md5sum="c29685933b2f18c4d103d960aeb33ff0" name="tests/bson-corpus/top-decodeError-008.phpt" role="test" />
<file md5sum="6d97151c7fc571d2c6818693c371e956" name="tests/bson-corpus/top-decodeError-009.phpt" role="test" />
<file md5sum="461e2455ea298ef9ef144e1d6544d335" name="tests/bson-corpus/top-decodeError-010.phpt" role="test" />
<file md5sum="36c313a8095b8d017541133a6c7f8f13" name="tests/bson-corpus/top-decodeError-011.phpt" role="test" />
<file md5sum="89e69127adb3f81a6bebcc7251d4e82f" name="tests/bson-corpus/top-decodeError-012.phpt" role="test" />
<file md5sum="dbb22f932362b66d7cb60aaeb550dcea" name="tests/bson-corpus/top-decodeError-013.phpt" role="test" />
<file md5sum="5a3275d380abbce56fa95d2353e5549c" name="tests/bson-corpus/top-decodeError-014.phpt" role="test" />
<file md5sum="9e6310e91ef3e1e35c4bdd4b48e8607c" name="tests/bson-corpus/top-decodeError-015.phpt" role="test" />
<file md5sum="03f60c1e5b34cb2adea77c1f3fd182e0" name="tests/bson-corpus/top-parseError-001.phpt" role="test" />
<file md5sum="7bc651420ec74663a23198221f5e699c" name="tests/bson-corpus/top-parseError-002.phpt" role="test" />
<file md5sum="32e0c517a448daf253f9ffa3e92c2635" name="tests/bson-corpus/top-parseError-003.phpt" role="test" />
<file md5sum="02ed68013bb2ea427737e4edb62d3ae8" name="tests/bson-corpus/top-parseError-004.phpt" role="test" />
<file md5sum="66e8151e160e8217dbc9fc79d5501ef6" name="tests/bson-corpus/top-parseError-005.phpt" role="test" />
<file md5sum="7184c818f85355993b8fa015fdc754af" name="tests/bson-corpus/top-parseError-006.phpt" role="test" />
<file md5sum="9f805639b8548e8438a7fb5b95e14e6a" name="tests/bson-corpus/top-parseError-007.phpt" role="test" />
<file md5sum="7ed53eedb1a3e391b6b56e3a8b66389f" name="tests/bson-corpus/top-parseError-008.phpt" role="test" />
<file md5sum="07229bcd5a3fbcf621ad1ccb4cdf3da7" name="tests/bson-corpus/top-parseError-009.phpt" role="test" />
<file md5sum="43b817b3e86d79d9656682fd5a8fee8c" name="tests/bson-corpus/top-parseError-010.phpt" role="test" />
<file md5sum="4a3f14b074ff60ecaee50ad858ec7d72" name="tests/bson-corpus/top-parseError-011.phpt" role="test" />
<file md5sum="500e3fce2f8aa981b114e40a572c0367" name="tests/bson-corpus/top-parseError-012.phpt" role="test" />
<file md5sum="6c65d42537d6f4f1f6f3a10533fe0843" name="tests/bson-corpus/top-parseError-013.phpt" role="test" />
<file md5sum="5f03555a3bf2b5c7e5d89ce45d837409" name="tests/bson-corpus/top-parseError-014.phpt" role="test" />
<file md5sum="a529f9cd66d26f9f66692f5ff185093d" name="tests/bson-corpus/top-parseError-015.phpt" role="test" />
<file md5sum="c9be9d1c01a4cd6209d3f7bb1c961e91" name="tests/bson-corpus/top-parseError-016.phpt" role="test" />
<file md5sum="9b0be59539c27f731919489a876be058" name="tests/bson-corpus/top-parseError-017.phpt" role="test" />
<file md5sum="cd123ac789c2fd7ed061f4082ec618a1" name="tests/bson-corpus/top-parseError-018.phpt" role="test" />
<file md5sum="186495fee57d46d6c0cceb51277c6b22" name="tests/bson-corpus/top-parseError-019.phpt" role="test" />
<file md5sum="cd32f0e137ecb6ed215317f7ac7071ad" name="tests/bson-corpus/top-parseError-020.phpt" role="test" />
<file md5sum="c1eec10b6f07f39d41ae110dc661c8e9" name="tests/bson-corpus/top-parseError-021.phpt" role="test" />
<file md5sum="7a368aa740a9a822393921cf4ad8a248" name="tests/bson-corpus/top-parseError-022.phpt" role="test" />
<file md5sum="2588c1b96cd36a58f900b8faa0df1f5a" name="tests/bson-corpus/top-parseError-023.phpt" role="test" />
<file md5sum="c0e7d2bc8f09205b124a74456ee5f4b0" name="tests/bson-corpus/top-parseError-024.phpt" role="test" />
<file md5sum="b55cc7d7145b347076eb70d34b2ba71c" name="tests/bson-corpus/top-parseError-025.phpt" role="test" />
<file md5sum="7ccb5236bf2da26d6cdac7ed5bf74ac9" name="tests/bson-corpus/top-parseError-026.phpt" role="test" />
<file md5sum="1a76ec637a8b148e84994f28ac2c8289" name="tests/bson-corpus/top-parseError-027.phpt" role="test" />
<file md5sum="042c14a0125d3d1953e60e9af462081c" name="tests/bson-corpus/top-parseError-028.phpt" role="test" />
<file md5sum="b00efaefc4a408a20c2737900d446cb2" name="tests/bson-corpus/top-parseError-029.phpt" role="test" />
<file md5sum="088ead9021bc2ddee669eaca1dd38a41" name="tests/bson-corpus/top-parseError-030.phpt" role="test" />
<file md5sum="0b4ad7dee7912f011c783696cf0c5d90" name="tests/bson-corpus/top-parseError-031.phpt" role="test" />
<file md5sum="13f27e41512e85b77097f6fa86ca6b01" name="tests/bson-corpus/top-parseError-032.phpt" role="test" />
<file md5sum="21db377670770539131b0c3f709e4c6e" name="tests/bson-corpus/top-parseError-033.phpt" role="test" />
<file md5sum="d6231fbd84f81aa94043216860f6b1d6" name="tests/bson-corpus/top-parseError-034.phpt" role="test" />
<file md5sum="7e3d83fddb4f6b8bacc606fd70b920bd" name="tests/bson-corpus/top-parseError-035.phpt" role="test" />
<file md5sum="2442a19d317e66a62c9ef64e0d532cf8" name="tests/bson-corpus/top-parseError-036.phpt" role="test" />
<file md5sum="7c41648290ef26acfce2fe0658f10b1e" name="tests/bson-corpus/top-parseError-037.phpt" role="test" />
<file md5sum="25d3e62a7bcb18418d46ba4325886587" name="tests/bson-corpus/top-parseError-038.phpt" role="test" />
<file md5sum="74985a74b55e38bc5bd9a476f8c7520b" name="tests/bson-corpus/top-parseError-039.phpt" role="test" />
<file md5sum="8b3e17d2851447f9c7710717944d62a3" name="tests/bson-corpus/top-parseError-040.phpt" role="test" />
<file md5sum="9d2e817e4017e51424be1ea03ac7b71b" name="tests/bson-corpus/top-parseError-041.phpt" role="test" />
<file md5sum="70926319b71ba636b1dceb066e963b24" name="tests/bson-corpus/top-parseError-042.phpt" role="test" />
<file md5sum="199d1060947586a481a0f02641a140a2" name="tests/bson-corpus/top-parseError-043.phpt" role="test" />
<file md5sum="661d4edba99f1fb76febb6b18ff028d9" name="tests/bson-corpus/top-parseError-044.phpt" role="test" />
<file md5sum="24729b16a83e708374d676c892c18b5c" name="tests/bson-corpus/top-valid-001.phpt" role="test" />
<file md5sum="0550fffd086fd6cfd1c8ec616d2d786b" name="tests/bson-corpus/top-valid-002.phpt" role="test" />
<file md5sum="48ee3b2c5d6fd5a19ff3921263032ef3" name="tests/bson-corpus/top-valid-003.phpt" role="test" />
<file md5sum="bde3d8d9708ec6e8e7735f02b044c198" name="tests/bson-corpus/top-valid-004.phpt" role="test" />
<file md5sum="54281547fb3a2cbb92a045cb3930a5e2" name="tests/bson-corpus/undefined-valid-001.phpt" role="test" />
<file md5sum="0b2a63cf085e5aa31ae1140f56bf66d5" name="tests/bson/bson-binary-001.phpt" role="test" />
<file md5sum="4aba554122bb2541f557d5e07e9fe4b4" name="tests/bson/bson-binary-002.phpt" role="test" />
<file md5sum="374d8f0d87ee57b138a9e5ad47b9fc66" name="tests/bson/bson-binary-clone-001.phpt" role="test" />
<file md5sum="436cd2e6cd03a65162c3bdb19a113cfc" name="tests/bson/bson-binary-clone-002.phpt" role="test" />
<file md5sum="78c016cd924e363fb8433ce673a76b6a" name="tests/bson/bson-binary-compare-001.phpt" role="test" />
<file md5sum="6eb6c83707dd7be5c718fa13b0427d6c" name="tests/bson/bson-binary-compare-002.phpt" role="test" />
<file md5sum="8a3167bc0ab0abc40edee4efc43ab2e7" name="tests/bson/bson-binary-constants.phpt" role="test" />
<file md5sum="58e5df014bd86dd8f1313b3fb734a7ce" name="tests/bson/bson-binary-get_properties-001.phpt" role="test" />
<file md5sum="c61e1c8e4c5327f87674314fde6b5d2f" name="tests/bson/bson-binary-get_properties-002.phpt" role="test" />
<file md5sum="a89324b72c9dbfffca5008d9563565c8" name="tests/bson/bson-binary-jsonserialize-001.phpt" role="test" />
<file md5sum="4a3663438006c53ad7bffb9c7f5be470" name="tests/bson/bson-binary-jsonserialize-002.phpt" role="test" />
<file md5sum="e4e3c7e2b4a9a8fbf210d1b12ca1efdd" name="tests/bson/bson-binary-serialization-002.phpt" role="test" />
<file md5sum="eb63d730910c0fda55394a74150c33d5" name="tests/bson/bson-binary-serialization_error-004.phpt" role="test" />
<file md5sum="bb0438ec381cdbc306818c82666c2bff" name="tests/bson/bson-binary-serialization_error-005.phpt" role="test" />
<file md5sum="fff75a4cc3be5709110200968f2bb314" name="tests/bson/bson-binary-serialization_error-006.phpt" role="test" />
<file md5sum="6da6f8a4527175cf5d9feb152c884ed0" name="tests/bson/bson-binary-set_state-001.phpt" role="test" />
<file md5sum="b7e5915d1450ca8cb5a5e547ca9160b5" name="tests/bson/bson-binary-set_state_error-001.phpt" role="test" />
<file md5sum="4afee01d63968922b4a6642e7bbb401f" name="tests/bson/bson-binary-set_state_error-002.phpt" role="test" />
<file md5sum="ede14af86e066f7e7a2e1f8fb95deef5" name="tests/bson/bson-binary-set_state_error-003.phpt" role="test" />
<file md5sum="2079c2a8ebed8e51c12a0fab40e42ab3" name="tests/bson/bson-binary-tostring-001.phpt" role="test" />
<file md5sum="c63c6bb915dd4a4fd9ced675962c1e4d" name="tests/bson/bson-binary_error-001.phpt" role="test" />
<file md5sum="e19b6d29cb9a0b089ec60d677518b336" name="tests/bson/bson-binary_error-002.phpt" role="test" />
<file md5sum="81379b32b0d5a89ab8a6ff0ac0adadba" name="tests/bson/bson-binary_error-003.phpt" role="test" />
<file md5sum="c06ae96a6cc67f60cbf53231b7a2143f" name="tests/bson/bson-binary_error-004.phpt" role="test" />
<file md5sum="fe638f713510cf803847a14a9109e6e7" name="tests/bson/bson-binaryinterface-001.phpt" role="test" />
<file md5sum="302cf163cfc55c764aeb22e47b7d74e1" name="tests/bson/bson-dbpointer-001.phpt" role="test" />
<file md5sum="9691bbd26a85ed22718fb1b2a40ffd52" name="tests/bson/bson-dbpointer-002.phpt" role="test" />
<file md5sum="6be5b03e29c7ac48224d6adcad50e93c" name="tests/bson/bson-dbpointer-clone-001.phpt" role="test" />
<file md5sum="bc6fbd8d742a4cf6b22134576b1cfe87" name="tests/bson/bson-dbpointer-clone-002.phpt" role="test" />
<file md5sum="505f287b0169c80df7d1036e2714da5c" name="tests/bson/bson-dbpointer-compare-001.phpt" role="test" />
<file md5sum="70e821d17c71685d0a05088777e89b3f" name="tests/bson/bson-dbpointer-get_properties-001.phpt" role="test" />
<file md5sum="231a08f857eda52e042ec4958e31b4f7" name="tests/bson/bson-dbpointer-get_properties-002.phpt" role="test" />
<file md5sum="24066f0bc3a61c01cc77c0107ab544e2" name="tests/bson/bson-dbpointer-jsonserialize-001.phpt" role="test" />
<file md5sum="38d57ef26da3ee2b33cc05bc94df922e" name="tests/bson/bson-dbpointer-jsonserialize-003.phpt" role="test" />
<file md5sum="c412915dcd354804ab27136ca23fdc87" name="tests/bson/bson-dbpointer-serialization-002.phpt" role="test" />
<file md5sum="eea5c5f9105a01f5b8df3fae8783bb18" name="tests/bson/bson-dbpointer-serialization_error-003.phpt" role="test" />
<file md5sum="2e8a25d0add4cdbbc244b92c3d79de85" name="tests/bson/bson-dbpointer-serialization_error-004.phpt" role="test" />
<file md5sum="ce9f338d229d26e3960b581f14d50f1c" name="tests/bson/bson-dbpointer-set_state-001.phpt" role="test" />
<file md5sum="a26220a1b181d28d18193065c703c304" name="tests/bson/bson-dbpointer-tostring-001.phpt" role="test" />
<file md5sum="8586d0a798025c589314ec96271f8ee1" name="tests/bson/bson-dbpointer_error-002.phpt" role="test" />
<file md5sum="71aede00824b421131981d4b63cdc0e3" name="tests/bson/bson-decimal128-001.phpt" role="test" />
- <file md5sum="920f7af62ba2b36e9e195a3145edbc85" name="tests/bson/bson-decimal128-002.phpt" role="test" />
+ <file md5sum="abe4191dfeeca4f28e649ad9467a34ff" name="tests/bson/bson-decimal128-002.phpt" role="test" />
<file md5sum="0760ccefa6247b97d8a089bcf257fbfe" name="tests/bson/bson-decimal128-003.phpt" role="test" />
- <file md5sum="e7f052278786a172f5c6f43e2dd352be" name="tests/bson/bson-decimal128-004.phpt" role="test" />
+ <file md5sum="372d38889e168044078732fb30b1d4d5" name="tests/bson/bson-decimal128-004.phpt" role="test" />
<file md5sum="257f82cc8ccf96e541c381724081d5e3" name="tests/bson/bson-decimal128-clone-001.phpt" role="test" />
<file md5sum="e9934a6a34310c21a2b33fe659a210ef" name="tests/bson/bson-decimal128-clone-002.phpt" role="test" />
<file md5sum="1bc02b5dc178107bfe05d140f1c2dd31" name="tests/bson/bson-decimal128-get_properties-001.phpt" role="test" />
<file md5sum="14207b0fafe19cca6f205ba537863202" name="tests/bson/bson-decimal128-get_properties-002.phpt" role="test" />
<file md5sum="660978d8b64c87ce0451a12b86fdf6f5" name="tests/bson/bson-decimal128-jsonserialize-001.phpt" role="test" />
<file md5sum="dd45fa9fe6da84598e2a2c021ce15e22" name="tests/bson/bson-decimal128-jsonserialize-002.phpt" role="test" />
- <file md5sum="263d08627bd7028e5970ecce6304f9c8" name="tests/bson/bson-decimal128-serialization-002.phpt" role="test" />
+ <file md5sum="bc8b6676652ed927d2ae4965a5d02228" name="tests/bson/bson-decimal128-serialization-002.phpt" role="test" />
<file md5sum="9513d0084ecda47abd10998ba5f47a56" name="tests/bson/bson-decimal128-serialization_error-003.phpt" role="test" />
<file md5sum="c2c54f9bf9350a9821049cdca8e1d1ad" name="tests/bson/bson-decimal128-serialization_error-004.phpt" role="test" />
<file md5sum="1ef16c6d580a6cdd39f0beae1074ffd7" name="tests/bson/bson-decimal128-set_state-001.phpt" role="test" />
<file md5sum="10f051cfd2cc6cb100a3fcf8a58de336" name="tests/bson/bson-decimal128-set_state_error-001.phpt" role="test" />
<file md5sum="81913f487879d03a74858dbe4428decb" name="tests/bson/bson-decimal128-set_state_error-002.phpt" role="test" />
<file md5sum="221c0611a96d5caea567792b7822d05a" name="tests/bson/bson-decimal128_error-001.phpt" role="test" />
<file md5sum="0f4dea68cea5e1b9ec5ea0bbb7e407e1" name="tests/bson/bson-decimal128_error-002.phpt" role="test" />
<file md5sum="a7dbd531a5dace1341acdf77d3821da3" name="tests/bson/bson-decimal128interface-001.phpt" role="test" />
<file md5sum="12e83ec7f1ab05ff525fec7678d0161e" name="tests/bson/bson-decode-001.phpt" role="test" />
<file md5sum="1a0f86b953d55f4672e3ea9b1b3bbe87" name="tests/bson/bson-decode-002.phpt" role="test" />
<file md5sum="08b588902c1d012c43e80d6c409a0439" name="tests/bson/bson-document-array-access-001.phpt" role="test" />
<file md5sum="773e42f818a08bffe606db2ba5f4532c" name="tests/bson/bson-document-array-access-002.phpt" role="test" />
<file md5sum="b9903a6ba907dd49392cf1e5f0631937" name="tests/bson/bson-document-array-access-003.phpt" role="test" />
<file md5sum="90675d792c009cdaa012b373006d6786" name="tests/bson/bson-document-array-access-004.phpt" role="test" />
<file md5sum="d4615c6b92b8c0296baf570b000cbf65" name="tests/bson/bson-document-array-access-005.phpt" role="test" />
<file md5sum="457fde5901a2342c90f3641fd737f4d7" name="tests/bson/bson-document-array-access_error-001.phpt" role="test" />
<file md5sum="cbefc07fb9fed1e09a181746537c1b13" name="tests/bson/bson-document-array-access_error-002.phpt" role="test" />
<file md5sum="7a91b979d9f5f881f95d1d07ba1cca64" name="tests/bson/bson-document-array-access_error-003.phpt" role="test" />
<file md5sum="2443ffa0fe038b1a75e73c7b7a5a9078" name="tests/bson/bson-document-array-access_error-004.phpt" role="test" />
<file md5sum="9cb19abe0fc888469d6ce9b4eff724cd" name="tests/bson/bson-document-clone-001.phpt" role="test" />
<file md5sum="a030f101bcffbf7549a9141408496574" name="tests/bson/bson-document-compare-001.phpt" role="test" />
<file md5sum="4c4a6df4918662272141e36b4b79e52e" name="tests/bson/bson-document-debug-001.phpt" role="test" />
<file md5sum="e4befd1f8d309d98b8f0b612b875f157" name="tests/bson/bson-document-fromBSON-001.phpt" role="test" />
<file md5sum="654da9486650e76408ef36c7a2b87e63" name="tests/bson/bson-document-fromBSON_error-001.phpt" role="test" />
<file md5sum="4d4a4382a9a9b7978179419f73d71856" name="tests/bson/bson-document-fromBSON_error-002.phpt" role="test" />
<file md5sum="54d9559941468ae53999f525941a4bc1" name="tests/bson/bson-document-fromBSON_error-003.phpt" role="test" />
<file md5sum="dbda829bd8c39b86f9468ef704a6a63f" name="tests/bson/bson-document-fromBSON_error-004.phpt" role="test" />
<file md5sum="39d0165b95234778c0b8ccdb43557467" name="tests/bson/bson-document-fromBSON_error-005.phpt" role="test" />
<file md5sum="a7331a6475bab90ff67e645093717023" name="tests/bson/bson-document-fromJSON-001.phpt" role="test" />
<file md5sum="6212f6d4d42e21b9e7192f20f815eee5" name="tests/bson/bson-document-fromJSON-002.phpt" role="test" />
<file md5sum="ee0b75ac6121de1ba77503df7b90ac7a" name="tests/bson/bson-document-fromJSON_error-001.phpt" role="test" />
<file md5sum="9090c29d7245d05b48f784c773fca94c" name="tests/bson/bson-document-fromPHP-001.phpt" role="test" />
<file md5sum="6288b16ea0401cc65d7e9d01d2766963" name="tests/bson/bson-document-fromPHP-002.phpt" role="test" />
<file md5sum="516b2715885ecbbef24a1406cc2fb713" name="tests/bson/bson-document-fromPHP-003.phpt" role="test" />
<file md5sum="5429a4e163724f7ba99c4c6b47e68738" name="tests/bson/bson-document-fromPHP-004.phpt" role="test" />
<file md5sum="20cdaad5980e52b9b1231f1349e235b7" name="tests/bson/bson-document-get-001.phpt" role="test" />
<file md5sum="ebd5864a0363bdd267ea95b68b36bfeb" name="tests/bson/bson-document-get-002.phpt" role="test" />
<file md5sum="f47828b93ad5e5d466a629ae25c17bfb" name="tests/bson/bson-document-get-003.phpt" role="test" />
<file md5sum="c472dd55a2e41c8392d53345f9308027" name="tests/bson/bson-document-getIterator-001.phpt" role="test" />
<file md5sum="be9289e471cd4b2304366d29ab29c018" name="tests/bson/bson-document-get_properties-001.phpt" role="test" />
<file md5sum="a6ca8177f3c4b1b5c9899ec813337473" name="tests/bson/bson-document-has-001.phpt" role="test" />
<file md5sum="f69861fc94447e3f36ff7502a3acbbc4" name="tests/bson/bson-document-property-access-001.phpt" role="test" />
<file md5sum="8c375a6d3ced9ba8e24f9c87f3019c7a" name="tests/bson/bson-document-property-access-002.phpt" role="test" />
<file md5sum="5b62da0f1f279ef06a7a10a156df9adf" name="tests/bson/bson-document-property-access_error-001.phpt" role="test" />
<file md5sum="fc4f37bfed8bae5225030bca1677a7e4" name="tests/bson/bson-document-serialization-002.phpt" role="test" />
<file md5sum="918051d2c309b6cf7abbaf1070f8626e" name="tests/bson/bson-document-set_state-001.phpt" role="test" />
<file md5sum="2cce79f5fd22c9f7df59d892a671fade" name="tests/bson/bson-document-set_state_error-001.phpt" role="test" />
<file md5sum="65a7aaabc3ee4396f3c29b16bb61ad78" name="tests/bson/bson-document-toCanonicalJSON-001.phpt" role="test" />
<file md5sum="245c02efcca5122770b0b6c0783670a4" name="tests/bson/bson-document-toCanonicalJSON-002.phpt" role="test" />
<file md5sum="abea86629d102e7dad2b5efab061a078" name="tests/bson/bson-document-toPHP-001.phpt" role="test" />
<file md5sum="93da112ececad41eb32daef5ff2f4475" name="tests/bson/bson-document-toPHP-002.phpt" role="test" />
<file md5sum="268ae91489f8d964065ce36d2124ec16" name="tests/bson/bson-document-toPHP-003.phpt" role="test" />
<file md5sum="d17973e705c31dd8c536d99183671be4" name="tests/bson/bson-document-toPHP-007.phpt" role="test" />
<file md5sum="04e39b04b456ca55bf80fe1fbfeedc5b" name="tests/bson/bson-document-toPHP-008.phpt" role="test" />
<file md5sum="07b1844156e0b46d81db66a77883a209" name="tests/bson/bson-document-toPHP-009.phpt" role="test" />
<file md5sum="250a1325072049dd549a3096e8c8c606" name="tests/bson/bson-document-toPHP-010.phpt" role="test" />
<file md5sum="f193b6d4417841ae2ee31c54ac2ae6c3" name="tests/bson/bson-document-toPHP-011.phpt" role="test" />
<file md5sum="8454d00e57b1f0bf846a17ed2926b5ce" name="tests/bson/bson-document-toPHP-012.phpt" role="test" />
<file md5sum="ba5f6b18ee3ec3a1d0e2bdf8d3cdc67c" name="tests/bson/bson-document-toRelaxedJSON-001.phpt" role="test" />
<file md5sum="55b8472d3b2f367c9a58d3c139ed1139" name="tests/bson/bson-document-toRelaxedJSON-002.phpt" role="test" />
<file md5sum="a43424253713e258493d6660c95b426f" name="tests/bson/bson-document-unserialize_error-002.phpt" role="test" />
<file md5sum="a8fec2114d290d96bcaec2cca9dcea19" name="tests/bson/bson-encode-001.phpt" role="test" />
<file md5sum="fee3bb678ed7a5d19e6a2184c4f88610" name="tests/bson/bson-encode-002.phpt" role="test" />
<file md5sum="305f9f489da6f601ee78b5c5addf2ef2" name="tests/bson/bson-encode-003.phpt" role="test" />
<file md5sum="02cf4cc73e100c9c2159cd5ed611b0b3" name="tests/bson/bson-encode-004.phpt" role="test" />
<file md5sum="d022201fe63ac3d4eb222f7fc60c794d" name="tests/bson/bson-encode-005.phpt" role="test" />
<file md5sum="87646056151c86f9d8b2dfcaa9f079aa" name="tests/bson/bson-enum-001.phpt" role="test" />
<file md5sum="bb2d778ac1e02d2ff7057aaf1a6eeb06" name="tests/bson/bson-enum-002.phpt" role="test" />
<file md5sum="1aac97426e5b97a6308a0c2d16298b51" name="tests/bson/bson-enum-003.phpt" role="test" />
<file md5sum="7a5c3b5615dd687fb490ce1f363608f1" name="tests/bson/bson-enum_error-001.phpt" role="test" />
<file md5sum="b1519cd3e8ee971b244d52af6d6539ea" name="tests/bson/bson-enum_error-002.phpt" role="test" />
<file md5sum="a503a875fa1ad245da7545a1564b8596" name="tests/bson/bson-enum_error-003.phpt" role="test" />
<file md5sum="3da7ed620dad86c6d9d506f1ee0c231f" name="tests/bson/bson-enum_error-004.phpt" role="test" />
<file md5sum="af67e8a7dfdfe8e9392bc47b5303ea60" name="tests/bson/bson-enum_error-005.phpt" role="test" />
<file md5sum="7bfa3ad68bde298624f1a525583e0306" name="tests/bson/bson-enum_error-006.phpt" role="test" />
<file md5sum="67ad97486ac4414bea88b2ad55ee9fa5" name="tests/bson/bson-generate-document-id.phpt" role="test" />
<file md5sum="26b00eb4f72987208fa3fecc50dde650" name="tests/bson/bson-int64-001.phpt" role="test" />
<file md5sum="24e7bf6670e946e38970c5e5dcf10fd9" name="tests/bson/bson-int64-002.phpt" role="test" />
<file md5sum="066c80e0ed3bbcfbf406259b1ef1ba80" name="tests/bson/bson-int64-003.phpt" role="test" />
<file md5sum="b211da996295679c57b41fe84c5d6f89" name="tests/bson/bson-int64-cast-001.phpt" role="test" />
<file md5sum="f920ea2791708445e5c93614aaced492" name="tests/bson/bson-int64-cast-002.phpt" role="test" />
<file md5sum="9c6c7ea680a5b3bb838e3719392bef6d" name="tests/bson/bson-int64-cast-003.phpt" role="test" />
<file md5sum="95558ff47f33d11479f5d30dcb4c07dd" name="tests/bson/bson-int64-clone-001.phpt" role="test" />
<file md5sum="c19c0577ecc12b50c32568f62dc674bb" name="tests/bson/bson-int64-clone-002.phpt" role="test" />
<file md5sum="e5ab339f9e3623c404807d8c5b4c9b10" name="tests/bson/bson-int64-compare-001.phpt" role="test" />
<file md5sum="2530a6260b84a8b5829834e5f0ee2189" name="tests/bson/bson-int64-compare-002.phpt" role="test" />
<file md5sum="f18e2d2bb6480f6995f2f883b602eb7b" name="tests/bson/bson-int64-compare-003.phpt" role="test" />
<file md5sum="26f38edb5a813f7263533609f8505e9b" name="tests/bson/bson-int64-compare-004.phpt" role="test" />
<file md5sum="caacd3ea5ef8e017df5b4e54e621a90c" name="tests/bson/bson-int64-compare-005.phpt" role="test" />
<file md5sum="9a7451cf6a4cfbc607627c2661a18a1f" name="tests/bson/bson-int64-ctor-001.phpt" role="test" />
<file md5sum="f0e14480bb730590c411b8f79cee424e" name="tests/bson/bson-int64-ctor-002.phpt" role="test" />
<file md5sum="7d9c95017ce6ba9f5442902a778a90e2" name="tests/bson/bson-int64-ctor_error-001.phpt" role="test" />
<file md5sum="545862ca8a00e6120d69b481af064359" name="tests/bson/bson-int64-debug-001.phpt" role="test" />
<file md5sum="e522fe446e26d213af72960b53806ad3" name="tests/bson/bson-int64-get_properties-001.phpt" role="test" />
<file md5sum="726d545089eff9cbe6e1697b5f86e2b0" name="tests/bson/bson-int64-get_properties-002.phpt" role="test" />
<file md5sum="5fcab2e8bad8c5a57451116d8a9aad00" name="tests/bson/bson-int64-jsonserialize-001.phpt" role="test" />
<file md5sum="dd4e62c9333f2e64f0f182575cdbb4ae" name="tests/bson/bson-int64-jsonserialize-002.phpt" role="test" />
<file md5sum="614eb30be75c502fee525edcc7c90304" name="tests/bson/bson-int64-operation-001.phpt" role="test" />
<file md5sum="91ddaaa99dc2ab8174d461226753943e" name="tests/bson/bson-int64-operation-002.phpt" role="test" />
<file md5sum="60a72496e88d85e807279d9cc26de19e" name="tests/bson/bson-int64-operation-003.phpt" role="test" />
<file md5sum="2d73420d6fc9ee451d9d0abdda0313e0" name="tests/bson/bson-int64-operation-004.phpt" role="test" />
<file md5sum="768b503fe7ce1980303b7fc8d180b3d0" name="tests/bson/bson-int64-operation-005.phpt" role="test" />
<file md5sum="3b3bd1655b4248b1710f1e3bb7aaef71" name="tests/bson/bson-int64-operation_error-001.phpt" role="test" />
<file md5sum="cb6c7fac45867b86ce56100656788a9a" name="tests/bson/bson-int64-serialization-002.phpt" role="test" />
<file md5sum="e8554b43780a2dca9a9cf1700b20af9b" name="tests/bson/bson-int64-serialization_error-003.phpt" role="test" />
<file md5sum="6f2461278c36007966e5e5b1bc1e9188" name="tests/bson/bson-int64-serialization_error-004.phpt" role="test" />
<file md5sum="5c75e6e8f5a1158f3f6323628c6a597f" name="tests/bson/bson-int64-set_state-001.phpt" role="test" />
<file md5sum="2655f2c8b2e466a50144cc7d74379f64" name="tests/bson/bson-int64-tostring-001.phpt" role="test" />
<file md5sum="a5e58f843937879d0919b476d879644a" name="tests/bson/bson-int64_error-001.phpt" role="test" />
<file md5sum="e5e18aea31135e3839647a13277a4898" name="tests/bson/bson-iterator-clone-001.phpt" role="test" />
<file md5sum="50de45eca0600d4891502fb00db64bd2" name="tests/bson/bson-iterator-clone-002.phpt" role="test" />
<file md5sum="05b6a2a77e2e47da9e2e027a471f4c32" name="tests/bson/bson-iterator-debug-001.phpt" role="test" />
<file md5sum="a73a83d495c8096c348382f19f112d06" name="tests/bson/bson-iterator-get_properties-001.phpt" role="test" />
<file md5sum="ef5affcf5b86f02a6c05e79986dfacd8" name="tests/bson/bson-iterator-iterator-001.phpt" role="test" />
<file md5sum="d6d4227b6f80ec97d2377665cca2f4f2" name="tests/bson/bson-iterator-iterator-002.phpt" role="test" />
<file md5sum="4abab7edad884c34296189a420c60c61" name="tests/bson/bson-iterator-iterator-003.phpt" role="test" />
<file md5sum="5bfb9f3b1ccf0110d722027aed3e0965" name="tests/bson/bson-iterator-rewind-001.phpt" role="test" />
<file md5sum="8f8e4aff7cdc3ef88b472872550a434d" name="tests/bson/bson-iterator-serialization_error-001.phpt" role="test" />
<file md5sum="831dd0165de5bb42af4979f19b3baf78" name="tests/bson/bson-javascript-001.phpt" role="test" />
<file md5sum="9a467b7dbefee10d37610d2c1bf418ae" name="tests/bson/bson-javascript-002.phpt" role="test" />
<file md5sum="5a0288c0fc9a410672d558c517a7aab2" name="tests/bson/bson-javascript-clone-001.phpt" role="test" />
<file md5sum="30f896fccb4da7bb23febd59c48535fb" name="tests/bson/bson-javascript-clone-002.phpt" role="test" />
<file md5sum="97e60e9d937e0545fdd93efbc9f78c7f" name="tests/bson/bson-javascript-compare-001.phpt" role="test" />
<file md5sum="6fa03185f5a88f493df843621065aeb9" name="tests/bson/bson-javascript-compare-002.phpt" role="test" />
<file md5sum="b9a8c6d1b796fee0f4bf1dcc3ec0f084" name="tests/bson/bson-javascript-getCode-001.phpt" role="test" />
<file md5sum="00cecd00a9ef7be33cbb932a575cc8ba" name="tests/bson/bson-javascript-getScope-001.phpt" role="test" />
<file md5sum="3583fa467242578d595fd83f3556b790" name="tests/bson/bson-javascript-get_properties-001.phpt" role="test" />
<file md5sum="6a7b515b114dcf814edbc5eb6dfdc41b" name="tests/bson/bson-javascript-get_properties-002.phpt" role="test" />
<file md5sum="ed048056560402b72af90dcd75f39641" name="tests/bson/bson-javascript-jsonserialize-001.phpt" role="test" />
<file md5sum="dd59d37315fa855d2650cc7f35620e79" name="tests/bson/bson-javascript-jsonserialize-002.phpt" role="test" />
<file md5sum="01f8ef44e39dcd52327c4c005f259198" name="tests/bson/bson-javascript-jsonserialize-003.phpt" role="test" />
<file md5sum="782bba6bdfec625fe0720abf468d56ce" name="tests/bson/bson-javascript-jsonserialize-004.phpt" role="test" />
<file md5sum="5795e8b1368e80712ab9f7f9cc25d8a1" name="tests/bson/bson-javascript-serialization-002.phpt" role="test" />
<file md5sum="07daa202800cf5728cdd61ec7dc2e45b" name="tests/bson/bson-javascript-serialization_error-004.phpt" role="test" />
<file md5sum="957af791e07c0c41c8bf94f3b7b10921" name="tests/bson/bson-javascript-serialization_error-005.phpt" role="test" />
<file md5sum="47cacec76bfe7d6b5dcb210b432f946c" name="tests/bson/bson-javascript-serialization_error-006.phpt" role="test" />
<file md5sum="5ab6f2dcba79ef40d3dee2426a698703" name="tests/bson/bson-javascript-set_state-001.phpt" role="test" />
<file md5sum="d649a395f0abcd4c41dc59f9344f0a89" name="tests/bson/bson-javascript-set_state_error-001.phpt" role="test" />
<file md5sum="131b1e9e10b78bf739443887d9c39ed7" name="tests/bson/bson-javascript-set_state_error-002.phpt" role="test" />
<file md5sum="cf37d0aa9ec9038651af5f64ba85e40a" name="tests/bson/bson-javascript-set_state_error-003.phpt" role="test" />
<file md5sum="210cbf28e39939c60de208dc48709ba6" name="tests/bson/bson-javascript-tostring-001.phpt" role="test" />
<file md5sum="d33b6fabee6b27aa845112710e0f043e" name="tests/bson/bson-javascript_error-001.phpt" role="test" />
<file md5sum="ebee3faf0213cdf7df62dd289a481297" name="tests/bson/bson-javascript_error-002.phpt" role="test" />
<file md5sum="37c02fc0d6345ae1785f1779d83d6284" name="tests/bson/bson-javascript_error-003.phpt" role="test" />
<file md5sum="ed2574aad887fa2d67e6f43caaf7f6df" name="tests/bson/bson-javascript_error-004.phpt" role="test" />
<file md5sum="bb37a40126c54e2b12ce956b99b3cc3d" name="tests/bson/bson-javascriptinterface-001.phpt" role="test" />
<file md5sum="8443b87ea871db9861558e6979ff0db6" name="tests/bson/bson-maxkey-001.phpt" role="test" />
<file md5sum="560e7ca042006d0f00114e07ba80270e" name="tests/bson/bson-maxkey-clone-001.phpt" role="test" />
<file md5sum="e91441b12e7fb101d60a21bf1c08f85a" name="tests/bson/bson-maxkey-clone-002.phpt" role="test" />
<file md5sum="1640c877e8ffab77ca2a49939721f325" name="tests/bson/bson-maxkey-compare-001.phpt" role="test" />
<file md5sum="4314312c271b5c33f53a4d3887a683b0" name="tests/bson/bson-maxkey-jsonserialize-001.phpt" role="test" />
<file md5sum="b21da8686270aac6b81ec28467ed1144" name="tests/bson/bson-maxkey-jsonserialize-002.phpt" role="test" />
<file md5sum="151abe173c3de94de5095a512429c054" name="tests/bson/bson-maxkey-serialization-002.phpt" role="test" />
<file md5sum="07f32149b1a254231e32378c294e2b82" name="tests/bson/bson-maxkey-set_state-001.phpt" role="test" />
<file md5sum="d4a47acb431463b7f01c83e5db2f2d3d" name="tests/bson/bson-maxkey_error-001.phpt" role="test" />
<file md5sum="d9a42b06a0a7d9b8103ffee8a638c7b5" name="tests/bson/bson-maxkeyinterface-001.phpt" role="test" />
<file md5sum="a472b29a2cbc7ae8065ca1129ec5f699" name="tests/bson/bson-minkey-001.phpt" role="test" />
<file md5sum="e6dde4e168256f42ced88035b990c3dc" name="tests/bson/bson-minkey-clone-001.phpt" role="test" />
<file md5sum="0b618935cb6143aa0ff812eb6c8a0a7d" name="tests/bson/bson-minkey-clone-002.phpt" role="test" />
<file md5sum="cab9d17b350f7ff0fb3930aa298f626a" name="tests/bson/bson-minkey-compare-001.phpt" role="test" />
<file md5sum="6b2c6c29ac2dbc4f91392779b99d562c" name="tests/bson/bson-minkey-jsonserialize-001.phpt" role="test" />
<file md5sum="2f29f939846864d23b0bd7fd3896301a" name="tests/bson/bson-minkey-jsonserialize-002.phpt" role="test" />
<file md5sum="4e664a9e9926a010f8a7278011e31e99" name="tests/bson/bson-minkey-serialization-002.phpt" role="test" />
<file md5sum="7341f784c4cffce859590d969b9ce295" name="tests/bson/bson-minkey-set_state-001.phpt" role="test" />
<file md5sum="64d66ab2ebc01d4b1c271079bb94db72" name="tests/bson/bson-minkey_error-001.phpt" role="test" />
<file md5sum="0a45023579316c69f78806f230ba106c" name="tests/bson/bson-minkeyinterface-001.phpt" role="test" />
<file md5sum="2f8619f0b382f91b183575db2a09fa68" name="tests/bson/bson-objectid-001.phpt" role="test" />
<file md5sum="d1eae72097de3d1e1bd0ef60f4e35cd6" name="tests/bson/bson-objectid-002.phpt" role="test" />
<file md5sum="c994597716974e44d2586b1fd6abe4a8" name="tests/bson/bson-objectid-003.phpt" role="test" />
<file md5sum="b9a3a09dd645ff06e975d192c34ad587" name="tests/bson/bson-objectid-004.phpt" role="test" />
<file md5sum="c3caf970929a6278035c38c80487cf5a" name="tests/bson/bson-objectid-clone-001.phpt" role="test" />
<file md5sum="c7ea45d1dce62294faab695b59a95f18" name="tests/bson/bson-objectid-clone-002.phpt" role="test" />
<file md5sum="a777ad1f36f9f3ab61a31848e29fbda3" name="tests/bson/bson-objectid-compare-001.phpt" role="test" />
<file md5sum="45a5c909f831527ec527dc6dff83a41d" name="tests/bson/bson-objectid-compare-002.phpt" role="test" />
<file md5sum="5f4fc31b72fbf2946cabfbe801e1f8e5" name="tests/bson/bson-objectid-getTimestamp-001.phpt" role="test" />
<file md5sum="04c2bfef7d149d82b796f8257ae8d1ee" name="tests/bson/bson-objectid-getTimestamp-002.phpt" role="test" />
<file md5sum="cae2d6ff62f134db503c739f79da7516" name="tests/bson/bson-objectid-get_properties-001.phpt" role="test" />
<file md5sum="ce20450b15ec7489bc67392e0af50231" name="tests/bson/bson-objectid-get_properties-002.phpt" role="test" />
<file md5sum="2927bb3a1e8581dada0e53f8c701f30d" name="tests/bson/bson-objectid-jsonserialize-001.phpt" role="test" />
<file md5sum="582dc76cd110aac0e0cb8c299e70d076" name="tests/bson/bson-objectid-jsonserialize-002.phpt" role="test" />
<file md5sum="f66fb7d264c20783ab74ecb3bb0c6c15" name="tests/bson/bson-objectid-serialization-002.phpt" role="test" />
<file md5sum="3d399d22bc9b88d34ad33621cdf50a09" name="tests/bson/bson-objectid-serialization_error-003.phpt" role="test" />
<file md5sum="cf8f41631902ea203d9365834930e83a" name="tests/bson/bson-objectid-serialization_error-004.phpt" role="test" />
<file md5sum="eccc24be6c41e6b0595bd62861d54074" name="tests/bson/bson-objectid-set_state-001.phpt" role="test" />
<file md5sum="3667bbb9e3faffc2665641488e24cb93" name="tests/bson/bson-objectid-set_state_error-001.phpt" role="test" />
<file md5sum="4d7026a6b49e6f5d40d51a1003a251b6" name="tests/bson/bson-objectid-set_state_error-002.phpt" role="test" />
<file md5sum="dc3e069b4e1039311345171358f3d795" name="tests/bson/bson-objectid-tostring_error-001.phpt" role="test" />
<file md5sum="70c812dcc1d65a4386e445df430f6903" name="tests/bson/bson-objectid_error-001.phpt" role="test" />
<file md5sum="cdb174d464441a4a3ab142b0d27429ec" name="tests/bson/bson-objectid_error-002.phpt" role="test" />
<file md5sum="556a89c07ebc69c629010a8381f918d3" name="tests/bson/bson-objectid_error-003.phpt" role="test" />
<file md5sum="94512cbf7a26273ee3b7191601600674" name="tests/bson/bson-objectidinterface-001.phpt" role="test" />
<file md5sum="eb39f16e701bdf2108dd204ee51405fb" name="tests/bson/bson-packedarray-array-access-001.phpt" role="test" />
<file md5sum="52b6ab0c5f6cd7dad5fd4409ea583b3e" name="tests/bson/bson-packedarray-array-access-002.phpt" role="test" />
<file md5sum="ecd66e2c79b5817481bdd607cba7857d" name="tests/bson/bson-packedarray-array-access-003.phpt" role="test" />
<file md5sum="1f98980e72757931e76e70d1dcf77872" name="tests/bson/bson-packedarray-array-access_error-001.phpt" role="test" />
<file md5sum="747e37dfcfe1ee95789f6bddc5be7cef" name="tests/bson/bson-packedarray-array-access_error-002.phpt" role="test" />
<file md5sum="da978da9ea5d3f2f50070653605b3465" name="tests/bson/bson-packedarray-array-access_error-003.phpt" role="test" />
<file md5sum="73218e147504b785d006a5343208ec27" name="tests/bson/bson-packedarray-array-access_error-004.phpt" role="test" />
<file md5sum="fe793d5078c373c9eb0029e736666026" name="tests/bson/bson-packedarray-clone-001.phpt" role="test" />
<file md5sum="a7996fc8e10bae1557d8d85e6bb3beb6" name="tests/bson/bson-packedarray-compare-001.phpt" role="test" />
<file md5sum="43b1aa7223598290c0306e2ac3c80e22" name="tests/bson/bson-packedarray-debug-001.phpt" role="test" />
<file md5sum="97176751bb7b770b0ef5c49a44fcc336" name="tests/bson/bson-packedarray-fromJSON-001.phpt" role="test" />
<file md5sum="beb7b4d0cf33bdc6f6a2b37930e257d8" name="tests/bson/bson-packedarray-fromJSON-002.phpt" role="test" />
<file md5sum="97b53bef6bb7fab6a0f99e6234b8c950" name="tests/bson/bson-packedarray-fromJSON_error-001.phpt" role="test" />
<file md5sum="d26fca6895ff6478b0d59b26ce46dca0" name="tests/bson/bson-packedarray-fromPHP-001.phpt" role="test" />
<file md5sum="9452498802a8b3da4a8771289e6f3556" name="tests/bson/bson-packedarray-fromPHP_error-001.phpt" role="test" />
<file md5sum="5d97b770ba48b46a60026a10967155e1" name="tests/bson/bson-packedarray-get-001.phpt" role="test" />
<file md5sum="95c48c8676a7cdd303e592de85bf7131" name="tests/bson/bson-packedarray-get-002.phpt" role="test" />
<file md5sum="566ea47f79bbadd04885480e5b182e37" name="tests/bson/bson-packedarray-get-003.phpt" role="test" />
<file md5sum="40dcc31e987047a25c637ecf355b56e4" name="tests/bson/bson-packedarray-get-004.phpt" role="test" />
<file md5sum="195fc17b2bc0e8084535ed4109c79c6f" name="tests/bson/bson-packedarray-get-005.phpt" role="test" />
<file md5sum="b21d83f036cf16bf67eda403b51055a2" name="tests/bson/bson-packedarray-getIterator-001.phpt" role="test" />
<file md5sum="f9cdf985234efbad92ee13691b2211bf" name="tests/bson/bson-packedarray-get_properties-001.phpt" role="test" />
<file md5sum="0f34620c092764e2335848d9e93f6b00" name="tests/bson/bson-packedarray-has-001.phpt" role="test" />
<file md5sum="4ceb8aba9e203427478697efd6840ef2" name="tests/bson/bson-packedarray-serialization-002.phpt" role="test" />
<file md5sum="e3161a0e1d715b27e32152a7d109fb47" name="tests/bson/bson-packedarray-set_state-001.phpt" role="test" />
<file md5sum="9a3cb33490d5931644035c4ca7def593" name="tests/bson/bson-packedarray-set_state_error-001.phpt" role="test" />
<file md5sum="25a3977556ded083e7c192c51399b0ab" name="tests/bson/bson-packedarray-toCanonicalExtendedJSON-001.phpt" role="test" />
<file md5sum="a0df0b76c36f6d6ca8e8174be8e5408d" name="tests/bson/bson-packedarray-toCanonicalJSON-002.phpt" role="test" />
<file md5sum="05595eb5762e4da11c6deafdcf259129" name="tests/bson/bson-packedarray-toPHP-001.phpt" role="test" />
<file md5sum="b2d51a2d083d50063e58d6e6bcce7eae" name="tests/bson/bson-packedarray-toPHP-002.phpt" role="test" />
<file md5sum="f58e862b1573b7efbc9c0f0b87fb7b32" name="tests/bson/bson-packedarray-toPHP-003.phpt" role="test" />
<file md5sum="085a05a90bce21ba1671cf6f9a7729bb" name="tests/bson/bson-packedarray-toPHP-004.phpt" role="test" />
<file md5sum="b740a1097067bf3b40c6eef75ad12167" name="tests/bson/bson-packedarray-toPHP-005.phpt" role="test" />
<file md5sum="fe0422f209bb9fbf46bd242b14ac5c62" name="tests/bson/bson-packedarray-toRelaxedExtendedJSON-001.phpt" role="test" />
<file md5sum="b124bea9a85ab18c97634b36291b6f2d" name="tests/bson/bson-packedarray-toRelaxedExtendedJSON-002.phpt" role="test" />
<file md5sum="bfd3dcaf1a3bdfda2ae6f0fca850490f" name="tests/bson/bson-packedarray-unserialize_error-002.phpt" role="test" />
<file md5sum="b3a6c1901d96f7fa5e184b284cdef0a7" name="tests/bson/bson-regex-001.phpt" role="test" />
<file md5sum="c6d502bd80b12b49bb86ca15cd80cb5d" name="tests/bson/bson-regex-002.phpt" role="test" />
<file md5sum="4163628356ea84775b80bfb4982f697a" name="tests/bson/bson-regex-003.phpt" role="test" />
<file md5sum="511347e513bdf3bc2ae37aa34b146c01" name="tests/bson/bson-regex-004.phpt" role="test" />
<file md5sum="c5aeef20912e9660c5b9b9916e6061ed" name="tests/bson/bson-regex-005.phpt" role="test" />
<file md5sum="2a1b427a98663ab84e4f5d6e8c030816" name="tests/bson/bson-regex-clone-001.phpt" role="test" />
<file md5sum="848aef00258f0cb8959395b5204864af" name="tests/bson/bson-regex-clone-002.phpt" role="test" />
<file md5sum="6f0accb9c2f47fd13f287b115e1fdb69" name="tests/bson/bson-regex-compare-001.phpt" role="test" />
<file md5sum="78e0fcaa87dc451f34f9ef119e1bd274" name="tests/bson/bson-regex-compare-002.phpt" role="test" />
<file md5sum="7b006f20fc2ac164fb4bdce2846da38b" name="tests/bson/bson-regex-get_properties-001.phpt" role="test" />
<file md5sum="6324a488905bb05b3d2e75375c69d88a" name="tests/bson/bson-regex-get_properties-002.phpt" role="test" />
<file md5sum="6fa2a0677b01b0c63ac9e75d7189de73" name="tests/bson/bson-regex-jsonserialize-001.phpt" role="test" />
<file md5sum="b74df13ee5230ede71e1c6dab4439d2f" name="tests/bson/bson-regex-jsonserialize-002.phpt" role="test" />
<file md5sum="61c2c69dbb3bcf9725bb6153cfd8e010" name="tests/bson/bson-regex-jsonserialize-003.phpt" role="test" />
<file md5sum="571238992f42cba3fbfe5cd33e03af5d" name="tests/bson/bson-regex-jsonserialize-004.phpt" role="test" />
<file md5sum="9c556867e125c456ae3463417791a558" name="tests/bson/bson-regex-serialization-004.phpt" role="test" />
<file md5sum="c144db7e8e5afdb134997fa189c1dcdd" name="tests/bson/bson-regex-serialization-005.phpt" role="test" />
<file md5sum="d7431748e8c3461064c8c388f4c55863" name="tests/bson/bson-regex-serialization-006.phpt" role="test" />
<file md5sum="487f11f005bd48598164423123bcfade" name="tests/bson/bson-regex-serialization_error-003.phpt" role="test" />
<file md5sum="da8a9d25b1a4898e272e05db80a65416" name="tests/bson/bson-regex-serialization_error-004.phpt" role="test" />
<file md5sum="96b300bc1e862965b1766ea87403906b" name="tests/bson/bson-regex-set_state-001.phpt" role="test" />
<file md5sum="eeeddbf1a9e400df5c98e5fd7a56dae7" name="tests/bson/bson-regex-set_state-002.phpt" role="test" />
<file md5sum="fdd23b37dd05d0c7b626bf7192073a26" name="tests/bson/bson-regex-set_state_error-001.phpt" role="test" />
<file md5sum="780b53cc64a01a8d0a74f3cd49563d2e" name="tests/bson/bson-regex-set_state_error-002.phpt" role="test" />
<file md5sum="f86befb012d028c7552ea505725dd6e9" name="tests/bson/bson-regex_error-001.phpt" role="test" />
<file md5sum="009697ca0ba2befc6b308d59fd304b11" name="tests/bson/bson-regex_error-002.phpt" role="test" />
<file md5sum="e8851dee3b4a2cb27016935a7c4fe549" name="tests/bson/bson-regex_error-003.phpt" role="test" />
<file md5sum="b3c02b3eb309f7bbf5a33523a120b43f" name="tests/bson/bson-regexinterface-001.phpt" role="test" />
<file md5sum="c1ed928c4ed93c9509b6c1bb9938b10f" name="tests/bson/bson-symbol-001.phpt" role="test" />
<file md5sum="af596478c0fa453f6f48485f7a592684" name="tests/bson/bson-symbol-clone-001.phpt" role="test" />
<file md5sum="7a92525dfdc365788abdeda20c7f363f" name="tests/bson/bson-symbol-clone-002.phpt" role="test" />
<file md5sum="1f60aba1eb700b7c665446d715446cfe" name="tests/bson/bson-symbol-compare-001.phpt" role="test" />
<file md5sum="64e2111513bb3e0ff5858361edf4c4b7" name="tests/bson/bson-symbol-get_properties-001.phpt" role="test" />
<file md5sum="c60eb96a54efb9a8c606c6912341db0e" name="tests/bson/bson-symbol-get_properties-002.phpt" role="test" />
<file md5sum="3c0bbaafbb9fc89d7ccb3abd186b1048" name="tests/bson/bson-symbol-jsonserialize-001.phpt" role="test" />
<file md5sum="7ec58b996853a49cf17f4dd60fcdcfbd" name="tests/bson/bson-symbol-jsonserialize-002.phpt" role="test" />
<file md5sum="ac7387168703e4207a3690e4a9a6c582" name="tests/bson/bson-symbol-serialization-002.phpt" role="test" />
<file md5sum="969b43019c8a8c86807ec021be8790a6" name="tests/bson/bson-symbol-serialization_error-003.phpt" role="test" />
<file md5sum="bc57a48d67cdfa10c221935571f2d5ae" name="tests/bson/bson-symbol-serialization_error-004.phpt" role="test" />
<file md5sum="18f58ffacee382b3bd44a5f6c2eb338c" name="tests/bson/bson-symbol-set_state-001.phpt" role="test" />
<file md5sum="0d34ec84401d66a4b9d1b1f1d7fc57bd" name="tests/bson/bson-symbol-tostring-001.phpt" role="test" />
<file md5sum="92583aa0415496caf1876468b4814b84" name="tests/bson/bson-symbol_error-001.phpt" role="test" />
<file md5sum="5b5b7584c59afc95c82f798c4405d0e9" name="tests/bson/bson-timestamp-001.phpt" role="test" />
<file md5sum="94cee14f3d06ab8085f06c241a976589" name="tests/bson/bson-timestamp-002.phpt" role="test" />
<file md5sum="a0763909d65abab501df3471d9cf0009" name="tests/bson/bson-timestamp-003.phpt" role="test" />
<file md5sum="3932a3692389d969ee55de22034324b1" name="tests/bson/bson-timestamp-004.phpt" role="test" />
<file md5sum="db926cded84f832c39e527d5fcdadcbb" name="tests/bson/bson-timestamp-005.phpt" role="test" />
<file md5sum="78f7450b370c1c7262ae196206b5f857" name="tests/bson/bson-timestamp-clone-001.phpt" role="test" />
<file md5sum="b4e402a444eda17b63b8c97920379979" name="tests/bson/bson-timestamp-clone-002.phpt" role="test" />
<file md5sum="bf27f37b85d838f7f3601f1733674ebe" name="tests/bson/bson-timestamp-compare-001.phpt" role="test" />
<file md5sum="8d390960f78a0d4c874f1a9bea6f60e1" name="tests/bson/bson-timestamp-getIncrement-001.phpt" role="test" />
<file md5sum="dbc98d4c863f2edbd470a744569b8ebc" name="tests/bson/bson-timestamp-getTimestamp-001.phpt" role="test" />
<file md5sum="70cbe569659d4cd104ded6f0b3954697" name="tests/bson/bson-timestamp-get_properties-001.phpt" role="test" />
<file md5sum="1cb51102b60c196d34c7c1588b91ae78" name="tests/bson/bson-timestamp-get_properties-002.phpt" role="test" />
<file md5sum="4ff5e264bb118d99302fb918e2b54ea4" name="tests/bson/bson-timestamp-jsonserialize-001.phpt" role="test" />
<file md5sum="c4ed3bdd884202c20cf3dfb199f765a2" name="tests/bson/bson-timestamp-jsonserialize-002.phpt" role="test" />
<file md5sum="17e2a8a9495c02994ee8d83d026dd9fb" name="tests/bson/bson-timestamp-serialization-003.phpt" role="test" />
<file md5sum="b6cc6754bb1fbbad9582d71c3b466da9" name="tests/bson/bson-timestamp-serialization-004.phpt" role="test" />
<file md5sum="05c1a7b5a813eacc0d8611a163d73da2" name="tests/bson/bson-timestamp-serialization_error-005.phpt" role="test" />
<file md5sum="95e67f8f621e99c7354a21613c842678" name="tests/bson/bson-timestamp-serialization_error-006.phpt" role="test" />
<file md5sum="0c16788e8546ae0f334d2a5cb929f02c" name="tests/bson/bson-timestamp-serialization_error-007.phpt" role="test" />
<file md5sum="08bcae3b28cbbe0de2d7d818fe3f8845" name="tests/bson/bson-timestamp-serialization_error-008.phpt" role="test" />
<file md5sum="1a6d90d1ec78a94bf5dd01dfd320b190" name="tests/bson/bson-timestamp-set_state-001.phpt" role="test" />
<file md5sum="c66ab8ca2c8eecf65c766cb97e9fa529" name="tests/bson/bson-timestamp-set_state-002.phpt" role="test" />
<file md5sum="8baeba2ddc938df88ba34a03ba47d1d1" name="tests/bson/bson-timestamp-set_state_error-001.phpt" role="test" />
<file md5sum="73a5d3cebea540001cba1b80f1febc52" name="tests/bson/bson-timestamp-set_state_error-002.phpt" role="test" />
<file md5sum="c37df82f2051521242f1dbc7ae1a9ecd" name="tests/bson/bson-timestamp-set_state_error-003.phpt" role="test" />
<file md5sum="d7176a251bfc6af5b814cc7a52a8f4b3" name="tests/bson/bson-timestamp-set_state_error-004.phpt" role="test" />
<file md5sum="6ca746014810084f9fe6cc45bb431ed6" name="tests/bson/bson-timestamp_error-001.phpt" role="test" />
<file md5sum="69daf6c7b6567dfbce4f64a6a77075a5" name="tests/bson/bson-timestamp_error-002.phpt" role="test" />
<file md5sum="c6a934138c3573ae650ea666baa809c5" name="tests/bson/bson-timestamp_error-003.phpt" role="test" />
<file md5sum="6b62f4f50fb29c882e769710d62b1f72" name="tests/bson/bson-timestamp_error-004.phpt" role="test" />
<file md5sum="4345c7e61bb3f6eadf294f1d29d5c4df" name="tests/bson/bson-timestamp_error-005.phpt" role="test" />
<file md5sum="4bed0b71ac3fd2551b3930123c5aed19" name="tests/bson/bson-timestamp_error-006.phpt" role="test" />
<file md5sum="304b9fe634cafb1fb611d793197f60ec" name="tests/bson/bson-timestampinterface-001.phpt" role="test" />
<file md5sum="bb54f21f1f23481b1fa334c2dbd79ef9" name="tests/bson/bson-undefined-001.phpt" role="test" />
<file md5sum="acf352520227675f36c004143ca58c2f" name="tests/bson/bson-undefined-clone-001.phpt" role="test" />
<file md5sum="b83803c662316686d0ed098fb17f4fd4" name="tests/bson/bson-undefined-clone-002.phpt" role="test" />
<file md5sum="45825d4d6a9c9ecc6e8fd10e4da75766" name="tests/bson/bson-undefined-compare-001.phpt" role="test" />
<file md5sum="d191c794da8cc0815f28652ad417f107" name="tests/bson/bson-undefined-jsonserialize-001.phpt" role="test" />
<file md5sum="bd3c6957589c79c829d5ff4c3c4328ca" name="tests/bson/bson-undefined-jsonserialize-002.phpt" role="test" />
<file md5sum="8055e584f9b44c23295e18e2d6935e28" name="tests/bson/bson-undefined-serialization-002.phpt" role="test" />
<file md5sum="a53a82ff2776cc586130abeb79fb8f02" name="tests/bson/bson-undefined-set_state-001.phpt" role="test" />
<file md5sum="47193401ebfb899c91eeb9a9683e1c68" name="tests/bson/bson-undefined-tostring-001.phpt" role="test" />
<file md5sum="40d8bb19b4d396749f94324a6e21cbcb" name="tests/bson/bson-undefined_error-001.phpt" role="test" />
<file md5sum="44f4e512930061f4c42daa0b0a60bfe3" name="tests/bson/bson-unknown-001.phpt" role="test" />
<file md5sum="fc61fde894ab1f742f3f29ff2c8c4473" name="tests/bson/bson-utcdatetime-001.phpt" role="test" />
<file md5sum="c7eaa8dba8f07ca97aa872038428de0a" name="tests/bson/bson-utcdatetime-002.phpt" role="test" />
<file md5sum="4a7ceed02905927b3e2df8c5cc957d98" name="tests/bson/bson-utcdatetime-003.phpt" role="test" />
<file md5sum="de4188f960c7fd6debed280d2ce4da02" name="tests/bson/bson-utcdatetime-004.phpt" role="test" />
<file md5sum="ebcbd881098aeef861090012f341282d" name="tests/bson/bson-utcdatetime-005.phpt" role="test" />
<file md5sum="982f7f8d65d0f7f222f9b2512786dc4c" name="tests/bson/bson-utcdatetime-006.phpt" role="test" />
<file md5sum="bf36a7d3d7534ddb85438307befcfdd2" name="tests/bson/bson-utcdatetime-009.phpt" role="test" />
<file md5sum="348e1935a48b9eb06079ff7d9f56f1c2" name="tests/bson/bson-utcdatetime-clone-001.phpt" role="test" />
<file md5sum="e454dcaec80cc6437a5ae4216f7a7aa1" name="tests/bson/bson-utcdatetime-clone-002.phpt" role="test" />
<file md5sum="6728e628d6cd1def65b21b5d58c477b4" name="tests/bson/bson-utcdatetime-compare-001.phpt" role="test" />
<file md5sum="53e797d1621c0c29961f09c826976bdf" name="tests/bson/bson-utcdatetime-get_properties-001.phpt" role="test" />
<file md5sum="78eaaecda7142bf183cfe24d394b8dcf" name="tests/bson/bson-utcdatetime-get_properties-002.phpt" role="test" />
<file md5sum="a93b633b97ec16f0b7707205f4709d12" name="tests/bson/bson-utcdatetime-jsonserialize-001.phpt" role="test" />
<file md5sum="42e96b6f7303a27c90d400d3369068ef" name="tests/bson/bson-utcdatetime-jsonserialize-002.phpt" role="test" />
<file md5sum="75271190a52ffa146ec46fbf7d49f044" name="tests/bson/bson-utcdatetime-serialization-003.phpt" role="test" />
<file md5sum="765f990f1c4417aa4e66b2432b7ffa99" name="tests/bson/bson-utcdatetime-serialization-004.phpt" role="test" />
<file md5sum="47cf1e235ff220d8343ef93974907760" name="tests/bson/bson-utcdatetime-serialization_error-003.phpt" role="test" />
<file md5sum="ac1840ed9c318f5df5dd886bf38337f3" name="tests/bson/bson-utcdatetime-serialization_error-004.phpt" role="test" />
<file md5sum="eff3be8c77fe2c425963ba6249e1d107" name="tests/bson/bson-utcdatetime-set_state-001.phpt" role="test" />
<file md5sum="00b885edb80273a8e7cba15612edbd9e" name="tests/bson/bson-utcdatetime-set_state-002.phpt" role="test" />
<file md5sum="ddd4b46bb4a6912b2d4f089f0d661cc4" name="tests/bson/bson-utcdatetime-set_state_error-001.phpt" role="test" />
<file md5sum="de23c619cce9e08d277108bf36561af2" name="tests/bson/bson-utcdatetime-set_state_error-002.phpt" role="test" />
<file md5sum="03053954d9d00bfce6b882853e88a60f" name="tests/bson/bson-utcdatetime-todatetime-001.phpt" role="test" />
<file md5sum="11b1e7c4775e3515f3d8ad0bfa019dc1" name="tests/bson/bson-utcdatetime-todatetime-002.phpt" role="test" />
<file md5sum="4b08a3b774c49982230d2c29658b79ef" name="tests/bson/bson-utcdatetime-todatetime-003.phpt" role="test" />
<file md5sum="c757d0b407d06ae8eb3f9efcdae52f69" name="tests/bson/bson-utcdatetime-todatetimeimmutable-001.phpt" role="test" />
<file md5sum="08a15904fda1ec8677a4897d5eb7175c" name="tests/bson/bson-utcdatetime-todatetimeimmutable-002.phpt" role="test" />
<file md5sum="39a0f42c2ff473794228c6ee21ae2b61" name="tests/bson/bson-utcdatetime-todatetimeimmutable-003.phpt" role="test" />
<file md5sum="f0663a4ac7e55542c508fec4f95cdf15" name="tests/bson/bson-utcdatetime-tostring-001.phpt" role="test" />
<file md5sum="d87151a333e0bbdb938955184366451e" name="tests/bson/bson-utcdatetime_error-002.phpt" role="test" />
<file md5sum="107da8b6114d63bd47621248a56c8f58" name="tests/bson/bson-utcdatetime_error-004.phpt" role="test" />
<file md5sum="ddff8c9ef155b69a7c1b5bc76dbaea36" name="tests/bson/bson-utcdatetimeinterface-001.phpt" role="test" />
<file md5sum="24d161034065fd0a4dd2c14d5fd1b34a" name="tests/bson/bug0274.phpt" role="test" />
<file md5sum="703c3782b42782bbb822a94aa3c2d121" name="tests/bson/bug0325.phpt" role="test" />
<file md5sum="dbaf4b5bb5c55c7714171fdcd0cfb1a8" name="tests/bson/bug0334-001.phpt" role="test" />
<file md5sum="4a41daf99f30144a5a9b194c66ba5c6b" name="tests/bson/bug0334-002.phpt" role="test" />
<file md5sum="2040b00df19f44645120f86708a6bbb6" name="tests/bson/bug0341.phpt" role="test" />
<file md5sum="0cdeba17452a000dab636ae0ee32f9d9" name="tests/bson/bug0347.phpt" role="test" />
<file md5sum="1eb798c06998f02912ece8b791d8366f" name="tests/bson/bug0528.phpt" role="test" />
<file md5sum="3813fc4b5a63c2d33d8b3cffaca0e8d5" name="tests/bson/bug0531-001.phpt" role="test" />
<file md5sum="6d10c9e90eab6391719992a8f3324dbd" name="tests/bson/bug0544.phpt" role="test" />
<file md5sum="a89d1fc4dc20b1d9968420222addc1fc" name="tests/bson/bug0592.phpt" role="test" />
<file md5sum="6881f25614a80996fa9edaa608abb5bc" name="tests/bson/bug0623.phpt" role="test" />
<file md5sum="cb18827f9e608f0495afb65515234991" name="tests/bson/bug0631.phpt" role="test" />
<file md5sum="b982dd73d598f1466905d11fdf43bdb2" name="tests/bson/bug0672.phpt" role="test" />
<file md5sum="c44cc21c70f840b307c2d6c687138cf2" name="tests/bson/bug0894-001.phpt" role="test" />
<file md5sum="d0c1fd240ccf37b9af58f7e892278b60" name="tests/bson/bug0923-001.phpt" role="test" />
<file md5sum="8f38c32d045e96c06538bec87e8e7dcd" name="tests/bson/bug0923-002.phpt" role="test" />
<file md5sum="d5ae04b33473bcae9ee977f725d483c4" name="tests/bson/bug0939-001.phpt" role="test" />
<file md5sum="02549d82e75f77cec41464aa41e39bb6" name="tests/bson/bug0974-001.phpt" role="test" />
<file md5sum="3336b8c258b5f2d02e3a89e8fb2f2ac1" name="tests/bson/bug1006-001.phpt" role="test" />
<file md5sum="4b1eaf929d4d3f844209e5045579859c" name="tests/bson/bug1006-002.phpt" role="test" />
<file md5sum="22c30ca9d73e86406d2d6f74861366b7" name="tests/bson/bug1053.phpt" role="test" />
<file md5sum="b32de2d6a5a540a853ad9ae92b466e63" name="tests/bson/bug1067.phpt" role="test" />
<file md5sum="b28e1962db83adea2f0ea6c4604ed006" name="tests/bson/bug1266.phpt" role="test" />
<file md5sum="76e9a816eed3afba93103ec19fd6136d" name="tests/bson/bug1598-001.phpt" role="test" />
<file md5sum="e3e55f188904b4b32750e092bebe7a27" name="tests/bson/bug1598-002.phpt" role="test" />
<file md5sum="476294c9dfa70b8f141fb12a84c7ca6b" name="tests/bson/bug1839-005.phpt" role="test" />
<file md5sum="3bed6592ff07133bdf222a95576e9bd9" name="tests/bson/bug1839-006.phpt" role="test" />
<file md5sum="4f3988011b231ae7e257f3988afcd9dc" name="tests/bson/bug1839-007.phpt" role="test" />
<file md5sum="6b593a76031c325479c57bff654c1e87" name="tests/bson/bug1839-008.phpt" role="test" />
<file md5sum="8f3673da043d04182327260f190d9912" name="tests/bson/bug2456-001.phpt" role="test" />
<file md5sum="a6f0d1b574d418eb3cf44816748f0399" name="tests/bson/typemap-001.phpt" role="test" />
<file md5sum="7d45dc9c4e491d5405fdb3bdc1eaa84b" name="tests/bson/typemap-002.phpt" role="test" />
<file md5sum="aeff3d9f803b3f98b79dbec6cd41771b" name="tests/bson/typemap-003.phpt" role="test" />
<file md5sum="575a0709267bd8ed12363ce6ee84ae96" name="tests/bson/typemap-004.phpt" role="test" />
<file md5sum="30f8b99b36b388fd8e2c4db4876dc114" name="tests/bson/typemap-005.phpt" role="test" />
<file md5sum="c766609987450f6a8e4bb5d5c862f224" name="tests/bson/typemap-006.phpt" role="test" />
<file md5sum="8227e8ae5700ddf9c1d952e0127b8cbf" name="tests/bson/typemap-007.phpt" role="test" />
<file md5sum="55f4be2106b3f9222216570cb4e53df8" name="tests/bulk/bug0667.phpt" role="test" />
<file md5sum="e64d115fba82e356ad50e008520a491f" name="tests/bulk/bulkwrite-count-001.phpt" role="test" />
<file md5sum="0a96053f6e2e81ba25f21c62ab6512fa" name="tests/bulk/bulkwrite-countable-001.phpt" role="test" />
<file md5sum="685a5970da43151c1b3b29e2aebed7ff" name="tests/bulk/bulkwrite-ctor-comment-001.phpt" role="test" />
<file md5sum="225f40bed330d346f15f2adffab7489a" name="tests/bulk/bulkwrite-ctor-comment_error-001.phpt" role="test" />
<file md5sum="8c2b2058aa246d97ce429c5a7d359d74" name="tests/bulk/bulkwrite-ctor-let-001.phpt" role="test" />
<file md5sum="8b863c9fc0aa1207798eb847f4c5ab03" name="tests/bulk/bulkwrite-ctor-let_error-001.phpt" role="test" />
<file md5sum="9c33ddb49a4bd9265a52116e65280ef9" name="tests/bulk/bulkwrite-debug-001.phpt" role="test" />
<file md5sum="1b437c5f96c7e0b7e58adee71d5c9477" name="tests/bulk/bulkwrite-debug-002.phpt" role="test" />
<file md5sum="741f02ccb0d6db972857ac9b55b8c6ab" name="tests/bulk/bulkwrite-delete-001.phpt" role="test" />
<file md5sum="4b42d667776949316e0e8adce5d63ad1" name="tests/bulk/bulkwrite-delete-002.phpt" role="test" />
<file md5sum="1adf644cbc06de9a3cbbfb72ec79361e" name="tests/bulk/bulkwrite-delete-003.phpt" role="test" />
<file md5sum="e47823d799d6c10e06a77fc2aa007402" name="tests/bulk/bulkwrite-delete_error-001.phpt" role="test" />
<file md5sum="8b72f9f86c38e21f2c62a529ac39dfd4" name="tests/bulk/bulkwrite-delete_error-002.phpt" role="test" />
<file md5sum="5c2928e7429cd633e042e59561ff4f00" name="tests/bulk/bulkwrite-delete_error-003.phpt" role="test" />
<file md5sum="a803a27247610de2459aaa5f58d935b0" name="tests/bulk/bulkwrite-delete_error-004.phpt" role="test" />
<file md5sum="e1ac1619f3114f9175e1d0249dbfafb7" name="tests/bulk/bulkwrite-delete_error-005.phpt" role="test" />
<file md5sum="2854e7b5237f021399902b9498f4e216" name="tests/bulk/bulkwrite-insert-001.phpt" role="test" />
<file md5sum="5851b94d556007c481804e26846d68cc" name="tests/bulk/bulkwrite-insert-002.phpt" role="test" />
<file md5sum="3d654ae728b50c9d70ff6a768e56a603" name="tests/bulk/bulkwrite-insert-003.phpt" role="test" />
<file md5sum="dafcdfa75fae5899ae6c38e8d9ed66ef" name="tests/bulk/bulkwrite-insert-004.phpt" role="test" />
<file md5sum="67526db3fbf462f34be71c93c530d341" name="tests/bulk/bulkwrite-insert_error-001.phpt" role="test" />
<file md5sum="a20b0d320adf61d20988b8dcda9580ae" name="tests/bulk/bulkwrite-insert_error-002.phpt" role="test" />
<file md5sum="59c60a17514366c03448112a41fbe726" name="tests/bulk/bulkwrite-insert_error-003.phpt" role="test" />
<file md5sum="70ad43d296f707e97172ef7faa464f48" name="tests/bulk/bulkwrite-insert_error-004.phpt" role="test" />
<file md5sum="c4a14766c89c6c68039cb536cb73c28f" name="tests/bulk/bulkwrite-update-001.phpt" role="test" />
<file md5sum="8257aa4b9b034288c463fa67c72a78e1" name="tests/bulk/bulkwrite-update-002.phpt" role="test" />
<file md5sum="e96c79d2c09602d9253e3342216e78aa" name="tests/bulk/bulkwrite-update-003.phpt" role="test" />
<file md5sum="3ba2d189900b6367288c571322dad3fe" name="tests/bulk/bulkwrite-update-004.phpt" role="test" />
<file md5sum="0d671efaa5ac987034194767db4e0843" name="tests/bulk/bulkwrite-update-005.phpt" role="test" />
<file md5sum="a68a28b671e5e53c1d529658c6d95939" name="tests/bulk/bulkwrite-update-006.phpt" role="test" />
<file md5sum="822ddcf9c1c46fd82bfe8ba4d76e8d51" name="tests/bulk/bulkwrite-update-007.phpt" role="test" />
<file md5sum="20f03dab728362df8796b7573ce03c1d" name="tests/bulk/bulkwrite-update-008.phpt" role="test" />
<file md5sum="ca10155aea6815373abc8e4075a2de10" name="tests/bulk/bulkwrite-update_error-001.phpt" role="test" />
<file md5sum="7cc5d6a971b184b31b38341b9797d628" name="tests/bulk/bulkwrite-update_error-002.phpt" role="test" />
<file md5sum="9005472e4cd1b667948ab0418f7d46e6" name="tests/bulk/bulkwrite-update_error-003.phpt" role="test" />
<file md5sum="08abf78018bdd6d3bb652f86f5653905" name="tests/bulk/bulkwrite-update_error-004.phpt" role="test" />
<file md5sum="9a7d39da76a5c30b106dc891da1f55f7" name="tests/bulk/bulkwrite-update_error-005.phpt" role="test" />
<file md5sum="a8da00636aba72bad78006609dd64bad" name="tests/bulk/bulkwrite-update_error-006.phpt" role="test" />
<file md5sum="7e2dcb2d2678b1712c07517b3e6107af" name="tests/bulk/bulkwrite-update_error-009.phpt" role="test" />
<file md5sum="bd5f1f654b138089ea753c5e20d589f2" name="tests/bulk/bulkwrite_error-001.phpt" role="test" />
<file md5sum="2b2784e0a4fa3c6628a932ee53126946" name="tests/bulk/bulkwrite_error-002.phpt" role="test" />
<file md5sum="9620e8719fb39c100f23862926e2d9ce" name="tests/bulk/write-0001.phpt" role="test" />
<file md5sum="6190534d37b65981e6e06f641ad8200b" name="tests/bulk/write-0002.phpt" role="test" />
<file md5sum="f064d3e4a5c924af3e7776bba6abdeb6" name="tests/bulkwritecommand/bulkwritecommand-ctor-bypassDocumentValidation-001.phpt" role="test" />
<file md5sum="f6157399ff899bc1a6162b5618896314" name="tests/bulkwritecommand/bulkwritecommand-ctor-bypassDocumentValidation-002.phpt" role="test" />
<file md5sum="25402a01de82a0dec4f5631a5f9145b6" name="tests/bulkwritecommand/bulkwritecommand-ctor-comment-001.phpt" role="test" />
<file md5sum="2a06fc6f4dbcb95083820ff8162fd3de" name="tests/bulkwritecommand/bulkwritecommand-ctor-comment_error-001.phpt" role="test" />
<file md5sum="8ca14fc069f25747f981963a33a99bde" name="tests/bulkwritecommand/bulkwritecommand-ctor-let-001.phpt" role="test" />
<file md5sum="aaecfaed9d19ada2e19979b8e17d97e1" name="tests/bulkwritecommand/bulkwritecommand-ctor-let_error-001.phpt" role="test" />
<file md5sum="6b104527e0090834e03f79b6f7dd8347" name="tests/bulkwritecommand/bulkwritecommand-ctor-ordered-001.phpt" role="test" />
<file md5sum="3d5aa60c42824f2decf5366f70bb440d" name="tests/bulkwritecommand/bulkwritecommand-ctor-ordered-002.phpt" role="test" />
<file md5sum="ecc72af6cb700de52f8cdbf38eeb98df" name="tests/bulkwritecommand/bulkwritecommand-ctor-verboseresults-001.phpt" role="test" />
<file md5sum="de62c47d6eb219d2d701f03f5a01d7dd" name="tests/bulkwritecommand/bulkwritecommand-ctor-verboseresults-002.phpt" role="test" />
<file md5sum="425b40b2c4d67e2ac55c1514459f7e5a" name="tests/bulkwritecommand/bulkwritecommand-debug-001.phpt" role="test" />
<file md5sum="3ceb18cc042b647c278f2695cbd28652" name="tests/bulkwritecommand/bulkwritecommand-debug-002.phpt" role="test" />
<file md5sum="bdc0b25f9a900464fc2ea8aeb9fcbb26" name="tests/bulkwritecommand/bulkwritecommand-debug-003.phpt" role="test" />
<file md5sum="766aa925a2c2708a1b54ec96ebe2c6d5" name="tests/bulkwritecommand/bulkwritecommand-deleteMany-001.phpt" role="test" />
<file md5sum="c4ed2b3ebe271f4e46d545013b8f15d7" name="tests/bulkwritecommand/bulkwritecommand-deleteMany-002.phpt" role="test" />
<file md5sum="834da4695723f0638cf8d0af5c765776" name="tests/bulkwritecommand/bulkwritecommand-deleteMany-003.phpt" role="test" />
<file md5sum="59d9d993f060be2140ec5a2df97ba2d8" name="tests/bulkwritecommand/bulkwritecommand-deleteMany_error-001.phpt" role="test" />
<file md5sum="8adfdb75b5e23fc39bf1173c2e2f69e3" name="tests/bulkwritecommand/bulkwritecommand-deleteMany_error-002.phpt" role="test" />
<file md5sum="5e9e651a5f51f89f12bf67fe5ed9ad51" name="tests/bulkwritecommand/bulkwritecommand-deleteMany_error-003.phpt" role="test" />
<file md5sum="ef4eac720a77577d5edab9dd94f52172" name="tests/bulkwritecommand/bulkwritecommand-deleteMany_error-004.phpt" role="test" />
<file md5sum="59b7fe00da2bbbc9d8d624ee0e6bfb43" name="tests/bulkwritecommand/bulkwritecommand-deleteOne-001.phpt" role="test" />
<file md5sum="8b3ba76fd98349a61518723aaba9f477" name="tests/bulkwritecommand/bulkwritecommand-deleteOne-002.phpt" role="test" />
<file md5sum="9501d9971879d2dbee477c99dc0f097b" name="tests/bulkwritecommand/bulkwritecommand-deleteOne-003.phpt" role="test" />
<file md5sum="7e17e3748f841f3aa6bcbad343e9f9fd" name="tests/bulkwritecommand/bulkwritecommand-deleteOne_error-001.phpt" role="test" />
<file md5sum="42cd6457ebdc4354dd1734a47d6052e3" name="tests/bulkwritecommand/bulkwritecommand-deleteOne_error-002.phpt" role="test" />
<file md5sum="b448603094642ec5146018502f8b4938" name="tests/bulkwritecommand/bulkwritecommand-deleteOne_error-003.phpt" role="test" />
<file md5sum="2db455be66d3ec00a79d0e4c5c892d09" name="tests/bulkwritecommand/bulkwritecommand-deleteOne_error-004.phpt" role="test" />
<file md5sum="6e05aaffba6ae9ff9ed4c071b3e7dcef" name="tests/bulkwritecommand/bulkwritecommand-insertOne-001.phpt" role="test" />
<file md5sum="fee79f2f10bcf7f08c720de83c731eb1" name="tests/bulkwritecommand/bulkwritecommand-insertOne-002.phpt" role="test" />
<file md5sum="634f49773aab62e5df6c1c8d4da6ffd5" name="tests/bulkwritecommand/bulkwritecommand-insertOne-003.phpt" role="test" />
<file md5sum="5789e94004aae30f6d2f16cd53fb3ee8" name="tests/bulkwritecommand/bulkwritecommand-insertOne-004.phpt" role="test" />
<file md5sum="c1641f549151b7f35eb85fbec5668b20" name="tests/bulkwritecommand/bulkwritecommand-insertOne_error-001.phpt" role="test" />
<file md5sum="8643d7200827471ac3eda606c04fd07e" name="tests/bulkwritecommand/bulkwritecommand-insertOne_error-002.phpt" role="test" />
<file md5sum="a130cb9ff9800e4f6e42d7639be1a7fd" name="tests/bulkwritecommand/bulkwritecommand-insertOne_error-003.phpt" role="test" />
<file md5sum="2106666754ce4dd64dcaca29baef6543" name="tests/bulkwritecommand/bulkwritecommand-replaceOne-001.phpt" role="test" />
<file md5sum="57e84909cd34bac19038546762b85c80" name="tests/bulkwritecommand/bulkwritecommand-replaceOne-004.phpt" role="test" />
<file md5sum="985681b550c08010e7c62647195f9e38" name="tests/bulkwritecommand/bulkwritecommand-replaceOne-008.phpt" role="test" />
<file md5sum="daadde8951198045841c6fc4a4e2670e" name="tests/bulkwritecommand/bulkwritecommand-replaceOne_error-003.phpt" role="test" />
<file md5sum="5b272e0346d42bc19463ffc7132278f3" name="tests/bulkwritecommand/bulkwritecommand-replaceOne_error-004.phpt" role="test" />
<file md5sum="f4395a75fb90f657fe1e41e735c99243" name="tests/bulkwritecommand/bulkwritecommand-replaceOne_error-005.phpt" role="test" />
<file md5sum="d63ece0ee1dd5c31932310c3e0172dcf" name="tests/bulkwritecommand/bulkwritecommand-replaceOne_error-006.phpt" role="test" />
<file md5sum="e0cee8f72eb2b0df135d4e97d131f57e" name="tests/bulkwritecommand/bulkwritecommand-updateMany-002.phpt" role="test" />
<file md5sum="21a2ee8b65c96997457d5e2310c09141" name="tests/bulkwritecommand/bulkwritecommand-updateMany-003.phpt" role="test" />
<file md5sum="7c44910817dfb0f28e54cba0a332b236" name="tests/bulkwritecommand/bulkwritecommand-updateMany-005.phpt" role="test" />
<file md5sum="0c81c8b2b4495cbdf77f7540f6b7198f" name="tests/bulkwritecommand/bulkwritecommand-updateMany-007.phpt" role="test" />
<file md5sum="912a2102e6a758170b0201ab81136ad4" name="tests/bulkwritecommand/bulkwritecommand-updateOne-001.phpt" role="test" />
<file md5sum="d2db5c040b6c8574f372574100c8e11a" name="tests/bulkwritecommand/bulkwritecommand-updateOne-004.phpt" role="test" />
<file md5sum="bd6da9c40bcc2a4090f28e932206e01a" name="tests/bulkwritecommand/bulkwritecommand-updateOne-006.phpt" role="test" />
<file md5sum="55bfb5857fbd984a41b751356e00d919" name="tests/bulkwritecommand/bulkwritecommand-updateOne-008.phpt" role="test" />
<file md5sum="c382c218a17bbd197ec4287104ae8659" name="tests/bulkwritecommand/bulkwritecommand-updateOne_error-003.phpt" role="test" />
<file md5sum="bdeb514862b7a294b0c939d3bac7b4cb" name="tests/bulkwritecommand/bulkwritecommand-updateOne_error-004.phpt" role="test" />
<file md5sum="f525161e623f7f322d0a473e4a14847b" name="tests/bulkwritecommand/bulkwritecommand-updateOne_error-005.phpt" role="test" />
<file md5sum="e764f349b7b05e3b36ac718d7f141997" name="tests/bulkwritecommand/bulkwritecommand-updateOne_error-006.phpt" role="test" />
<file md5sum="5b81f31167afa52a1756cbfb7e4c9ff0" name="tests/bulkwritecommand/bulkwritecommandresult-debug-001.phpt" role="test" />
<file md5sum="ce4797a9bcdfcced18c66667511eb964" name="tests/bulkwritecommand/bulkwritecommandresult-isAcknowledged-001.phpt" role="test" />
<file md5sum="65991c5cf21ff7880925eb069e7e1619" name="tests/bulkwritecommand/manager-executeBulkWriteCommand-001.phpt" role="test" />
<file md5sum="8a84aa2809e47d792b6f2b7b3406d013" name="tests/bulkwritecommand/manager-executeBulkWriteCommand_error-001.phpt" role="test" />
<file md5sum="0aae966d930a962ae802e22b6a11a26d" name="tests/bulkwritecommand/manager-executeBulkWriteCommand_error-002.phpt" role="test" />
<file md5sum="4caab12c47c744aaa6c5590e783a6842" name="tests/bulkwritecommand/server-executeBulkWriteCommand-001.phpt" role="test" />
<file md5sum="1839a33ce9f62e5707fb2aacc25baa7c" name="tests/bulkwritecommand/server-executeBulkWriteCommand_error-001.phpt" role="test" />
<file md5sum="8d52f7e38c2e9a3d4295f67d36d7a537" name="tests/bulkwritecommand/server-executeBulkWriteCommand_error-002.phpt" role="test" />
<file md5sum="8a59042397146a6403b05d49d19927fc" name="tests/causal-consistency/causal-consistency-001.phpt" role="test" />
<file md5sum="d3e9eae691d9574829c6ac4fc15679cc" name="tests/causal-consistency/causal-consistency-002.phpt" role="test" />
<file md5sum="6d1002a0a4204a5e019e69bf0094d42e" name="tests/causal-consistency/causal-consistency-003.phpt" role="test" />
<file md5sum="01f052b8a6ad5b01bd77502b8629ee32" name="tests/causal-consistency/causal-consistency-004.phpt" role="test" />
<file md5sum="2b4e18dacb87a5d0bf1c918c969370a4" name="tests/causal-consistency/causal-consistency-005.phpt" role="test" />
<file md5sum="9f35b4daf0df6b58088828baa131a511" name="tests/causal-consistency/causal-consistency-006.phpt" role="test" />
<file md5sum="8939f754bbda25f29dec934c71aa6436" name="tests/causal-consistency/causal-consistency-007.phpt" role="test" />
<file md5sum="94d13af15b1f05867936624a980c5af6" name="tests/causal-consistency/causal-consistency-008.phpt" role="test" />
<file md5sum="39354f752f54b2dd511a726e72eb197e" name="tests/causal-consistency/causal-consistency-009.phpt" role="test" />
<file md5sum="91098da345011767e321e75deef99a1a" name="tests/causal-consistency/causal-consistency-010.phpt" role="test" />
<file md5sum="c4ce8b5d2f34064ab19f21e2f7049e2f" name="tests/causal-consistency/causal-consistency-011.phpt" role="test" />
<file md5sum="2528cc9b914cd2e641f673a8bff58c17" name="tests/causal-consistency/causal-consistency-012.phpt" role="test" />
<file md5sum="25a0642f36757a293916ae4ba496b827" name="tests/clientEncryption/bug2149.phpt" role="test" />
<file md5sum="f52b566c92d6ffcea1c1633c5362d3c7" name="tests/clientEncryption/clientEncryption-addKeyAltName-001.phpt" role="test" />
<file md5sum="fe911d4a00c17c837a05d5fc24e7f76e" name="tests/clientEncryption/clientEncryption-addKeyAltName-002.phpt" role="test" />
<file md5sum="1d9197654257f52d5ac746872f571269" name="tests/clientEncryption/clientEncryption-addKeyAltName_error-001.phpt" role="test" />
<file md5sum="6a8ca1d0c0e0154adffb6274ce04a221" name="tests/clientEncryption/clientEncryption-constants.phpt" role="test" />
<file md5sum="bcef1fbf684ee111c66ac9ef6a3697a7" name="tests/clientEncryption/clientEncryption-createDataKey-001.phpt" role="test" />
<file md5sum="b389452f0de6f6855ffc2b6b9f252118" name="tests/clientEncryption/clientEncryption-createDataKey-002.phpt" role="test" />
<file md5sum="f99410d38db30db6c2ff2ed0373e4acb" name="tests/clientEncryption/clientEncryption-createDataKey_error-001.phpt" role="test" />
<file md5sum="882dc3997dfdc9e831787cefb2db8db1" name="tests/clientEncryption/clientEncryption-createDataKey_error-002.phpt" role="test" />
<file md5sum="4d6925396699b926524f1e03fb21b633" name="tests/clientEncryption/clientEncryption-createDataKey_error-003.phpt" role="test" />
<file md5sum="f13a45a1a6a1dea39b571c38e2405310" name="tests/clientEncryption/clientEncryption-ctor-001.phpt" role="test" />
<file md5sum="7f82502e32c5058538fcc02e747c05bc" name="tests/clientEncryption/clientEncryption-ctor-002.phpt" role="test" />
<file md5sum="5b52cafe718fb96587dcae0ed590f734" name="tests/clientEncryption/clientEncryption-ctor_error-001.phpt" role="test" />
<file md5sum="eeb922107d148f5d038f3ff55981b162" name="tests/clientEncryption/clientEncryption-ctor_error-002.phpt" role="test" />
<file md5sum="a5eec1ceba4d50da70c55db512959163" name="tests/clientEncryption/clientEncryption-decrypt-001.phpt" role="test" />
<file md5sum="aaeb6ba827cdb2d2de57d14b52895282" name="tests/clientEncryption/clientEncryption-deleteKey-001.phpt" role="test" />
<file md5sum="5d7b165668ac7db79344d70e4e1bd3b4" name="tests/clientEncryption/clientEncryption-deleteKey-002.phpt" role="test" />
<file md5sum="998e772713ab64b8376f60341da46a47" name="tests/clientEncryption/clientEncryption-deleteKey_error-001.phpt" role="test" />
<file md5sum="9566014fe32a055d3e7127df875f3dc1" name="tests/clientEncryption/clientEncryption-encrypt-001.phpt" role="test" />
<file md5sum="73707ef734c2012e4852a3251f1fd009" name="tests/clientEncryption/clientEncryption-encryptExpression-001.phpt" role="test" />
<file md5sum="098b04b53cc30a3da6d5c527fbc2c760" name="tests/clientEncryption/clientEncryption-encryptExpression_error-001.phpt" role="test" />
<file md5sum="10215193731ac6bef6e940c4a2ded4d6" name="tests/clientEncryption/clientEncryption-encryptExpression_error-002.phpt" role="test" />
<file md5sum="8923ac613294a88ee6f8975b997e3968" name="tests/clientEncryption/clientEncryption-encrypt_error-001.phpt" role="test" />
<file md5sum="dda19841b997e38f1e2f6f146efcbb4f" name="tests/clientEncryption/clientEncryption-getKey-001.phpt" role="test" />
<file md5sum="8d314014bc73d804e4b9bc86837edae6" name="tests/clientEncryption/clientEncryption-getKey-002.phpt" role="test" />
<file md5sum="9e23305b5bcf3f71c5abacfa91788b09" name="tests/clientEncryption/clientEncryption-getKeyByAltName-001.phpt" role="test" />
<file md5sum="1eeb30fde34511203c413d354965c278" name="tests/clientEncryption/clientEncryption-getKeyByAltName-002.phpt" role="test" />
<file md5sum="2fc5c351ee52627dd80f5e7ed89d90ce" name="tests/clientEncryption/clientEncryption-getKey_error-001.phpt" role="test" />
<file md5sum="bd572960fd61e6a6cd1a2e6116396694" name="tests/clientEncryption/clientEncryption-getKeys-001.phpt" role="test" />
<file md5sum="d4fcb3061d9dd10e80fcdc669154e847" name="tests/clientEncryption/clientEncryption-getKeys-002.phpt" role="test" />
<file md5sum="72b64f3d0e78ecb61ec7ce054dd63dfd" name="tests/clientEncryption/clientEncryption-getKeys-003.phpt" role="test" />
<file md5sum="16b79df8100ab160a2272f9e7074ada9" name="tests/clientEncryption/clientEncryption-removeKeyAltName-001.phpt" role="test" />
<file md5sum="d9a64ec94da49129a39ce887ffb33721" name="tests/clientEncryption/clientEncryption-removeKeyAltName-002.phpt" role="test" />
<file md5sum="de1a1b45f1b3ce2933552090bedd790a" name="tests/clientEncryption/clientEncryption-removeKeyAltName-003.phpt" role="test" />
<file md5sum="74b4554e69493b9623407ba9fc5777cd" name="tests/clientEncryption/clientEncryption-removeKeyAltName_error-001.phpt" role="test" />
<file md5sum="bd9e269754dbf488ecb89c3fa4c4b57b" name="tests/clientEncryption/clientEncryption-rewrapManyDataKey-001.phpt" role="test" />
<file md5sum="7cc58929ddfcca7858a905002d6c01bf" name="tests/clientEncryption/clientEncryption-rewrapManyDataKey-002.phpt" role="test" />
<file md5sum="c120fd261fcee3e1f11570590a3c8d8c" name="tests/clientEncryption/clientEncryption-rewrapManyDataKey-003.phpt" role="test" />
<file md5sum="658c48e25f83eefc0c8b0752624dd555" name="tests/clientEncryption/clientEncryption-rewrapManyDataKey_error-001.phpt" role="test" />
<file md5sum="878ad9663955e408ecaff7c328a4924e" name="tests/clientEncryption/clientEncryption-rewrapManyDataKey_error-002.phpt" role="test" />
<file md5sum="ce7acc6ad164292c1ff9ff5fb00b062e" name="tests/clientEncryption/clientEncryption-rewrapManyDataKey_error-003.phpt" role="test" />
<file md5sum="9ad976b8e80eb2d6fc0558e98c96b679" name="tests/command/command-ctor-001.phpt" role="test" />
<file md5sum="f7d19d66f184f1f3a0375cea4bea03a4" name="tests/command/command-ctor-002.phpt" role="test" />
<file md5sum="0846173624e878f9e9fc597b3dd80b7a" name="tests/command/command-ctor_error-001.phpt" role="test" />
<file md5sum="81fbf19cf9cd5f5383c49d9fd3f177e8" name="tests/command/command_error-001.phpt" role="test" />
<file md5sum="df6a388af316e382971324bfe98593a2" name="tests/command/cursor-batchsize-001.phpt" role="test" />
<file md5sum="e2c4da055020ce9f1bf4b6cd20c7457b" name="tests/command/cursor-batchsize-002.phpt" role="test" />
<file md5sum="83726765053bac02f6b940d6fbd3e5eb" name="tests/command/cursor-comment-001.phpt" role="test" />
<file md5sum="dbbcfc4b838dcf02fac66f4e7aa1ffdc" name="tests/command/cursor-tailable-001.phpt" role="test" />
<file md5sum="e1994473378fa4935533460deec15f5b" name="tests/command/findAndModify-001.phpt" role="test" />
<file md5sum="0f0c8d871b716d4b0311b846d98b684c" name="tests/command/update-001.phpt" role="test" />
<file md5sum="ea6be8fad0813dddddd89982c760a34a" name="tests/connect/bug0720.phpt" role="test" />
<file md5sum="189ea40653380005c43dd67b9884450e" name="tests/connect/bug1015.phpt" role="test" />
<file md5sum="0ebcb8e508d1978211d1fe84732360cf" name="tests/connect/bug1045.phpt" role="test" />
<file md5sum="556c4d26da417b73c82bcb0ed9ab41e0" name="tests/connect/compression_error-001.phpt" role="test" />
<file md5sum="341af7c42107c40210903b7cb57070b2" name="tests/connect/compression_error-002.phpt" role="test" />
<file md5sum="83ff07823c743c67c76d808bac72bdd3" name="tests/connect/replicaset-seedlist-001.phpt" role="test" />
<file md5sum="689439f028c731f0daca49ae282096e2" name="tests/connect/replicaset-seedlist-002.phpt" role="test" />
<file md5sum="a4fc8812cf174d4c5d216704fce536ca" name="tests/connect/standalone-auth-001.phpt" role="test" />
<file md5sum="ab62017c209508bcc9cdb1dc4cde8c3b" name="tests/connect/standalone-auth_error-001.phpt" role="test" />
<file md5sum="c678e843cf60d1363dfd1195531f8a86" name="tests/connect/standalone-plain-0001.phpt" role="test" />
<file md5sum="36c31dca4f718a0162c118c50196877a" name="tests/connect/standalone-plain-0002.phpt" role="test" />
<file md5sum="5bd2e78cc438937ba63f4ebdcc7c09b7" name="tests/connect/standalone-ssl-no_verify-003.phpt" role="test" />
<file md5sum="240022b71966207b7b3a7336cba3a0e3" name="tests/connect/standalone-ssl-verify_cert-003.phpt" role="test" />
<file md5sum="36a7dfc2fa0f2841086845a0dc514a92" name="tests/connect/standalone-ssl-verify_cert-error-003.phpt" role="test" />
<file md5sum="04f0d0fb15a36071db84e00e7d72df76" name="tests/connect/standalone-x509-auth-001.phpt" role="test" />
<file md5sum="1773ff37778c0dd25ea59c8ccadf0187" name="tests/connect/standalone-x509-error-0001.phpt" role="test" />
<file md5sum="bcc9f25ee5347178926bd3bc513e65f6" name="tests/connect/standalone-x509-extract_username-001.phpt" role="test" />
<file md5sum="be75a888807351e00540edebf19c921b" name="tests/cursor/bug0671-001.phpt" role="test" />
<file md5sum="de71b16365183778e7d3386f2c077470" name="tests/cursor/bug0732-001.phpt" role="test" />
<file md5sum="034b4c5be16697c07400868165f6a410" name="tests/cursor/bug0849-001.phpt" role="test" />
<file md5sum="89ed69de8606051474d229f52d9c610a" name="tests/cursor/bug0924-001.phpt" role="test" />
<file md5sum="11c61bbbef3061305f14c4ab7a8d66df" name="tests/cursor/bug0924-002.phpt" role="test" />
<file md5sum="eeefe59478612d12a1ae042faab1e05e" name="tests/cursor/bug1050-001.phpt" role="test" />
<file md5sum="e511bdecfb315ca1c43aeda9ae5efea2" name="tests/cursor/bug1050-002.phpt" role="test" />
<file md5sum="963697c64f74660a5adf28d1ad23ff4f" name="tests/cursor/bug1151-001.phpt" role="test" />
<file md5sum="121a051c3f32dda640c00d7b60025fac" name="tests/cursor/bug1151-002.phpt" role="test" />
<file md5sum="25f41f7dee1132a7354f21b8fa0f0119" name="tests/cursor/bug1151-003.phpt" role="test" />
<file md5sum="739f511357f2205d495da8dd59c17cd2" name="tests/cursor/bug1151-004.phpt" role="test" />
<file md5sum="180dbf2e9601971abd6ddb91c1a6eaf1" name="tests/cursor/bug1152-001.phpt" role="test" />
<file md5sum="a292d6f29135e55c83ad0c5fa8dc5022" name="tests/cursor/bug1152-002.phpt" role="test" />
<file md5sum="1d2e6bd077d3d59cdec119361fa53b27" name="tests/cursor/bug1162-001.phpt" role="test" />
<file md5sum="bf8cbc0c05069a152b8ad8dd44ad1c52" name="tests/cursor/bug1274-001.phpt" role="test" />
<file md5sum="f65027c0cbea65ff1d59389522c6c0db" name="tests/cursor/bug1274-002.phpt" role="test" />
<file md5sum="c9fd874700bf6dceb27a030612dcc9b5" name="tests/cursor/bug1274-003.phpt" role="test" />
<file md5sum="87b2a9c6107ebaedc4222bdc5c146544" name="tests/cursor/bug1274-004.phpt" role="test" />
<file md5sum="56069f7c9aa3ad3ac77246cb95660561" name="tests/cursor/bug1274-005.phpt" role="test" />
<file md5sum="ad3d9cdf4554ce582454ee92389af53d" name="tests/cursor/bug1274-006.phpt" role="test" />
<file md5sum="9440c9d5824cb2c7a62e8ea821229519" name="tests/cursor/bug1419-001.phpt" role="test" />
<file md5sum="78ec934d754473d7aa8cedc6e2d2f385" name="tests/cursor/bug1529-001.phpt" role="test" />
<file md5sum="0287863386284b368c94796c8563818b" name="tests/cursor/bug1713-001.phpt" role="test" />
<file md5sum="03bc65d514988acceecd8b830c41f152" name="tests/cursor/cursor-001.phpt" role="test" />
<file md5sum="bf69deaf6361488462540564d8a8b657" name="tests/cursor/cursor-IteratorIterator-001.phpt" role="test" />
<file md5sum="67cadd0d7513523b7b83f0fffb5d2c67" name="tests/cursor/cursor-IteratorIterator-002.phpt" role="test" />
<file md5sum="c099283c71f289238f24febdf4e91a02" name="tests/cursor/cursor-IteratorIterator-003.phpt" role="test" />
<file md5sum="ce2b204d53dde74e4f820cef9ebcf283" name="tests/cursor/cursor-NoRewindIterator-001.phpt" role="test" />
<file md5sum="55ac0cb41e23fd4d7cfafec98db222a9" name="tests/cursor/cursor-destruct-001.phpt" role="test" />
<file md5sum="007dfe8e75d7a3b53f17cba2155544f4" name="tests/cursor/cursor-getmore-001.phpt" role="test" />
<file md5sum="43dc536482d1d475ca02ad3818b99b9f" name="tests/cursor/cursor-getmore-002.phpt" role="test" />
<file md5sum="b18d1c583fc853cd30e933b67a7106c1" name="tests/cursor/cursor-getmore-003.phpt" role="test" />
<file md5sum="1b3d6811a9036c2118bc8fa8d07d3996" name="tests/cursor/cursor-getmore-004.phpt" role="test" />
<file md5sum="8ae9b7ccf9d6d8812ec4e4b0c59da62e" name="tests/cursor/cursor-getmore-005.phpt" role="test" />
<file md5sum="9d12789c2c88b4fc79c512d9bd4661ed" name="tests/cursor/cursor-getmore-006.phpt" role="test" />
<file md5sum="6a28996e14074c84f2c98392786503b8" name="tests/cursor/cursor-isDead-001.phpt" role="test" />
<file md5sum="30d5decc604a425560270049a5ee695b" name="tests/cursor/cursor-isDead-002.phpt" role="test" />
<file md5sum="a587b8ffaf32c40cf2cd6e541b0fbbf1" name="tests/cursor/cursor-iterator-001.phpt" role="test" />
<file md5sum="7415ad3c7ac10d6052686ee1a5169dca" name="tests/cursor/cursor-iterator-002.phpt" role="test" />
<file md5sum="cd965b5a7e8a1037ef83cb2a6dd139b1" name="tests/cursor/cursor-iterator-003.phpt" role="test" />
<file md5sum="bbd82ccf15afb9d9ce2828853d6bc033" name="tests/cursor/cursor-iterator-004.phpt" role="test" />
<file md5sum="8fb2fbf644c00ee7e0bf977f8a1f211a" name="tests/cursor/cursor-iterator_handlers-001.phpt" role="test" />
<file md5sum="9ee993379dae963fa0d04f2311f20f35" name="tests/cursor/cursor-rewind-001.phpt" role="test" />
<file md5sum="9f28a895aad1306bda291b1a646d7413" name="tests/cursor/cursor-session-001.phpt" role="test" />
<file md5sum="bbed84470bb84d579ac1fbfcca009389" name="tests/cursor/cursor-session-002.phpt" role="test" />
<file md5sum="ba1cffb22b89e5bad92f41223d20125d" name="tests/cursor/cursor-session-003.phpt" role="test" />
<file md5sum="48637a611a5d4719d707a3570ac0aa28" name="tests/cursor/cursor-session-004.phpt" role="test" />
<file md5sum="998d0decf6831cdba654d86b6f1df9d4" name="tests/cursor/cursor-setTypeMap_error-001.phpt" role="test" />
<file md5sum="8610f9892fb81dde0b9031042cd6d3c5" name="tests/cursor/cursor-setTypeMap_error-002.phpt" role="test" />
<file md5sum="d96e197d6e6b6a2cb42ce308c7b2750e" name="tests/cursor/cursor-setTypeMap_error-003.phpt" role="test" />
<file md5sum="4abb0c26665adbf6e88f96fbb46eeb4b" name="tests/cursor/cursor-setTypeMap_error-004.phpt" role="test" />
<file md5sum="b84aece5c9dbc1284e9200e75b63713d" name="tests/cursor/cursor-tailable-001.phpt" role="test" />
<file md5sum="b91df472b35c89949aab04c55b91999d" name="tests/cursor/cursor-tailable-002.phpt" role="test" />
<file md5sum="60a670668cf45f8e2ad86a58ddd4ed8b" name="tests/cursor/cursor-tailable-003.phpt" role="test" />
<file md5sum="fb143952fe649c057eb164922963ea39" name="tests/cursor/cursor-tailable_error-001.phpt" role="test" />
<file md5sum="9a11f5ea30986c1ab3d7a72397fe417e" name="tests/cursor/cursor-tailable_error-002.phpt" role="test" />
<file md5sum="b5bda059f5a97bb8b3b012891ba29460" name="tests/cursor/cursor-toArray-001.phpt" role="test" />
<file md5sum="86ada58a54e588c1b9527792de5541d3" name="tests/cursor/cursor-toArray-002.phpt" role="test" />
<file md5sum="11ce7d49c58b1efbef42e52612f2ed3e" name="tests/cursor/cursor_error-001.phpt" role="test" />
<file md5sum="49edc5f2ed0cef6989f5fb272510daba" name="tests/cursor/cursorid-getId-001.phpt" role="test" />
<file md5sum="74ee254ba8edcea3575d523499bc542a" name="tests/cursor/cursorinterface-001.phpt" role="test" />
<file md5sum="750ca6c340fef3613609ea83f6a3752c" name="tests/cursor/cursorinterface-002.phpt" role="test" />
<file md5sum="3131108d88d58ae30f2ac0a9a21d6991" name="tests/exception/bulkwriteexception-getwriteresult-001.phpt" role="test" />
- <file md5sum="0c742d44e6e7d6cc44043ff7c7d52dfd" name="tests/exception/bulkwriteexception-haserrorlabel-001.phpt" role="test" />
+ <file md5sum="eb3a289491c64fd7f021d25f83c8ea1c" name="tests/exception/bulkwriteexception-haserrorlabel-001.phpt" role="test" />
<file md5sum="fce6dc19bc4cb460175affee7d1d7f17" name="tests/exception/bulkwriteexception-haserrorlabel-002.phpt" role="test" />
- <file md5sum="9affde6e5226e248967e3ee33a5feef0" name="tests/exception/bulkwriteexception-haserrorlabel_error-001.phpt" role="test" />
- <file md5sum="3e9c3271339857aef8899898a777f806" name="tests/exception/commandexception-getresultdocument-001.phpt" role="test" />
- <file md5sum="f517ae8a8ad62e3fa2fe69d282367ea4" name="tests/exception/commandexception-haserrorlabel-001.phpt" role="test" />
- <file md5sum="69b64eec21ec54c479dfe557269598ab" name="tests/exception/commandexception-haserrorlabel_error-001.phpt" role="test" />
+ <file md5sum="bf63ef87e74514dfbd22731f8f03fed2" name="tests/exception/bulkwriteexception-haserrorlabel_error-001.phpt" role="test" />
+ <file md5sum="1ad2fb100881e7c33e4aadf6d50de242" name="tests/exception/commandexception-getresultdocument-001.phpt" role="test" />
+ <file md5sum="635137f83ad0ea1e22047f42cc7da770" name="tests/exception/commandexception-haserrorlabel-001.phpt" role="test" />
+ <file md5sum="479c5d7e4f335397fe38f4e913346493" name="tests/exception/commandexception-haserrorlabel_error-001.phpt" role="test" />
<file md5sum="6bcc1ed27df3ddbe16f549c82803d0cf" name="tests/exception/exception-001.phpt" role="test" />
- <file md5sum="0f64ba7a9c355b2ee9a30d5f3f2241b8" name="tests/exception/runtimeexception-haserrorlabel-001.phpt" role="test" />
- <file md5sum="98fe8f2b6fc815b91199a9d9fb9320f3" name="tests/exception/runtimeexception-haserrorlabel_error-001.phpt" role="test" />
+ <file md5sum="3c152adf3d7a976fff52765b0d6e1361" name="tests/exception/runtimeexception-haserrorlabel-001.phpt" role="test" />
+ <file md5sum="7bd9f94bb7d456d51f91134679d60491" name="tests/exception/runtimeexception-haserrorlabel_error-001.phpt" role="test" />
<file md5sum="d078443aa427bf7a9b9fa31383027c38" name="tests/functional/cursor-001.phpt" role="test" />
<file md5sum="da4e53779264aed6c4ee66c918acdc09" name="tests/functional/cursorid-001.phpt" role="test" />
<file md5sum="e2ec8630d72d7056d7e354dfa7c8ceea" name="tests/functional/query-sort-001.phpt" role="test" />
<file md5sum="70eadbd23fde7c9fe3e47c0660019662" name="tests/functional/query-sort-002.phpt" role="test" />
<file md5sum="5ebf5ea95564a7e037329ded2b56a48e" name="tests/functional/query-sort-003.phpt" role="test" />
<file md5sum="8e70257d7a72c98343e8958aba53f720" name="tests/functional/query-sort-004.phpt" role="test" />
<file md5sum="6bbd8a73a4ddc363257f26a055744e05" name="tests/ini/ini-debug-ini_get-001.phpt" role="test" />
<file md5sum="329a0fb960668dfb38b5d59a221c39f5" name="tests/ini/ini-debug-ini_get-002.phpt" role="test" />
<file md5sum="8eb3c43b6e36a4ddb9df1e05439ae08d" name="tests/ini/ini-debug-phpinfo-001.phpt" role="test" />
<file md5sum="09aca68640353346b8794e157930e547" name="tests/ini/ini-debug-phpinfo-002.phpt" role="test" />
<file md5sum="88a957e71c781958e8ede6d9464f8a6b" name="tests/logging/logging-addSubscriber-001.phpt" role="test" />
<file md5sum="96580a8c9af7c742f767b4a0a4b80287" name="tests/logging/logging-addSubscriber-002.phpt" role="test" />
<file md5sum="89dcfe91aefaa5ed057b3dbb365f718b" name="tests/logging/logging-addSubscriber-003.phpt" role="test" />
<file md5sum="53849cdb1d357e025628557e7080781e" name="tests/logging/logging-addSubscriber-004.phpt" role="test" />
<file md5sum="6e46da5c8a56d4f8f0c0d0e7f866fea2" name="tests/logging/logging-addSubscriber-005.phpt" role="test" />
<file md5sum="0eb92d5d7c910d69baa178aea71187c4" name="tests/logging/logging-removeSubscriber-001.phpt" role="test" />
<file md5sum="b7fd3a682ee74af355777ead649a484d" name="tests/logging/logging-removeSubscriber-002.phpt" role="test" />
<file md5sum="58ad191d0046c3c31366fe19fe9ad0f0" name="tests/logging/logging-removeSubscriber-003.phpt" role="test" />
<file md5sum="8f9a9c17da710d6c7bcdabf6022f4ad7" name="tests/logging/logsubscriber-constants.phpt" role="test" />
<file md5sum="671e9a7d73930e111ab8c9dbf2c41aeb" name="tests/logging/mongoc_log_error-001.phpt" role="test" />
<file md5sum="7714b468f9f5113ee55f26bbe4706a0a" name="tests/logging/mongoc_log_error-002.phpt" role="test" />
<file md5sum="4450df6a5d9e58df894eb77f1c5dad2e" name="tests/logging/mongoc_log_error-003.phpt" role="test" />
<file md5sum="f0346e6cd2ba9520eef5021167879c4e" name="tests/manager/bug0851-001.phpt" role="test" />
<file md5sum="eb1c288def3ad2711f856313fabd08ee" name="tests/manager/bug0912-001.phpt" role="test" />
<file md5sum="f6de9f3ae346da76b6a0f777ed1bb04a" name="tests/manager/bug0913-001.phpt" role="test" />
<file md5sum="4109c1ada63f9cb6b50ad61cf831258a" name="tests/manager/bug0940-001.phpt" role="test" />
<file md5sum="bdafd000abbbf9c3dac45926d02a6335" name="tests/manager/bug1163-001.phpt" role="test" />
<file md5sum="472af988ce42a4de1b200ea40f7051bb" name="tests/manager/manager-addSubscriber-001.phpt" role="test" />
<file md5sum="9f07e24879987ab55bfdd775d61d3bcd" name="tests/manager/manager-addSubscriber-002.phpt" role="test" />
<file md5sum="1a3e07055f5e167c115a62ff49227393" name="tests/manager/manager-addSubscriber-003.phpt" role="test" />
<file md5sum="6a6699a0aea2a69ec24c10079d601845" name="tests/manager/manager-addSubscriber-004.phpt" role="test" />
<file md5sum="efadeb0a3d75c816146dadcc3f0e5b3b" name="tests/manager/manager-addSubscriber-005.phpt" role="test" />
<file md5sum="a822fc13c859cdbecb23d151724de057" name="tests/manager/manager-addSubscriber-006.phpt" role="test" />
<file md5sum="ca7d0f8e358b27c1f27db3dc23e85c0d" name="tests/manager/manager-addSubscriber_error-001.phpt" role="test" />
<file md5sum="a82e94f14792da1c8e98885ab49c0d2b" name="tests/manager/manager-createClientEncryption-001.phpt" role="test" />
<file md5sum="cc2ec9dedc92e65426c43fa6e3446b88" name="tests/manager/manager-createClientEncryption-error-001.phpt" role="test" />
<file md5sum="eb71f85d2eb9c38292ad932af4a3b4ba" name="tests/manager/manager-createClientEncryption-error-002.phpt" role="test" />
<file md5sum="d582d6ff744cdbf6f65a37e63faac924" name="tests/manager/manager-ctor-001.phpt" role="test" />
<file md5sum="ddb6ad56c0bddfdcddc28eac459c2ec7" name="tests/manager/manager-ctor-002.phpt" role="test" />
<file md5sum="bf482d24f1467be19b603557a6cb8e6c" name="tests/manager/manager-ctor-003.phpt" role="test" />
<file md5sum="cd62592a5c1c3b6c855b698735a1b9eb" name="tests/manager/manager-ctor-004.phpt" role="test" />
<file md5sum="23db0653a78cb7318c9978f1fc87bba9" name="tests/manager/manager-ctor-005.phpt" role="test" />
<file md5sum="7747cbf6bee84e93ed0ca1bb249af376" name="tests/manager/manager-ctor-006.phpt" role="test" />
<file md5sum="63826ceaf67ba68e92278c9f212ea931" name="tests/manager/manager-ctor-007.phpt" role="test" />
<file md5sum="5114f45044457fc9fa9b6913bb412a7b" name="tests/manager/manager-ctor-008.phpt" role="test" />
<file md5sum="7ee075e78215384bc775165f5bcaecc2" name="tests/manager/manager-ctor-appname-001.phpt" role="test" />
<file md5sum="407f236f707abcb938e7f065dd1346fc" name="tests/manager/manager-ctor-appname_error-001.phpt" role="test" />
<file md5sum="0f29f362757476ecaa36f936d16a7c20" name="tests/manager/manager-ctor-auth_mechanism-001.phpt" role="test" />
<file md5sum="7e334d9c4f17adc4ec5be12d461207b6" name="tests/manager/manager-ctor-auth_mechanism-002.phpt" role="test" />
<file md5sum="2e7cfd7ab77f97ab8261f464f84fb030" name="tests/manager/manager-ctor-auth_mechanism-error-001.phpt" role="test" />
<file md5sum="b36422d0897ec7f315fdb5f3391d7341" name="tests/manager/manager-ctor-auth_source-001.phpt" role="test" />
<file md5sum="8b81b0ec62644af387dd1b88d3c3ba44" name="tests/manager/manager-ctor-auto_encryption-001.phpt" role="test" />
<file md5sum="6750d4ab8192b1244278eafd20828485" name="tests/manager/manager-ctor-auto_encryption-002.phpt" role="test" />
<file md5sum="cd5bc0eccd387c9609e5f89d0446572b" name="tests/manager/manager-ctor-auto_encryption-error-001.phpt" role="test" />
<file md5sum="4c289dc44bc8b0cb26e33502fdc77fa8" name="tests/manager/manager-ctor-auto_encryption-error-002.phpt" role="test" />
<file md5sum="ba43a5ff1ae1f5838dc8fc97b9fb0e7b" name="tests/manager/manager-ctor-auto_encryption-error-003.phpt" role="test" />
<file md5sum="d0238b5a888b09f3fb3ce54c60fc1571" name="tests/manager/manager-ctor-auto_encryption-error-004.phpt" role="test" />
<file md5sum="bbd66e27c8ae892d3ba42417a0bc0fd7" name="tests/manager/manager-ctor-directconnection-001.phpt" role="test" />
<file md5sum="e85a2529c8de114992f22289800615fc" name="tests/manager/manager-ctor-directconnection-error-001.phpt" role="test" />
<file md5sum="b3680d5e2c654cba916f7e523b04ee9c" name="tests/manager/manager-ctor-directconnection-error-002.phpt" role="test" />
<file md5sum="0a4c7fdb304b664df108aa9a6fa54e82" name="tests/manager/manager-ctor-disableClientPersistence-001.phpt" role="test" />
<file md5sum="2e3bbe239f1aba35a1c6ba9589f8ee76" name="tests/manager/manager-ctor-disableClientPersistence-002.phpt" role="test" />
<file md5sum="10c3c2d46b5447b1a7c1b446cef8f5d4" name="tests/manager/manager-ctor-disableClientPersistence-003.phpt" role="test" />
<file md5sum="220dfefa93b81ded8cf90c1be371a6d5" name="tests/manager/manager-ctor-disableClientPersistence-004.phpt" role="test" />
<file md5sum="5f46a29a8e3b5c36a013946b19d0f22a" name="tests/manager/manager-ctor-disableClientPersistence-005.phpt" role="test" />
<file md5sum="3e34e2072d0e054fddc7bdb6ac3c8237" name="tests/manager/manager-ctor-disableClientPersistence-006.phpt" role="test" />
<file md5sum="f6ffd08e1d928971f96f3498eb7a7de6" name="tests/manager/manager-ctor-disableClientPersistence-007.phpt" role="test" />
<file md5sum="b80f61209563751f07a4a285c0b72986" name="tests/manager/manager-ctor-disableClientPersistence_error-001.phpt" role="test" />
<file md5sum="684d21bfb847f1d4f949c55ada08c349" name="tests/manager/manager-ctor-driver-metadata-001.phpt" role="test" />
<file md5sum="67384c6652b0a650e410eb5667e2a5af" name="tests/manager/manager-ctor-duplicate-option-001.phpt" role="test" />
<file md5sum="9311bb62f8740436ef91ef7a0fe5c97a" name="tests/manager/manager-ctor-duplicate-option-002.phpt" role="test" />
<file md5sum="d6b52ffcafa9ceaf363ebdb07c10cc75" name="tests/manager/manager-ctor-duplicate-option-003.phpt" role="test" />
<file md5sum="7538039ec421e2ae634e91ba24999408" name="tests/manager/manager-ctor-duplicate-option-004.phpt" role="test" />
<file md5sum="b5a10d899434b9deef074274da9e6259" name="tests/manager/manager-ctor-loadBalanced_error-001.phpt" role="test" />
<file md5sum="ee7822e3b58b7abb5ccee0a87dc86e4d" name="tests/manager/manager-ctor-read_concern-001.phpt" role="test" />
<file md5sum="c3050181118743d791b3ed29bdb4dd03" name="tests/manager/manager-ctor-read_concern-error-001.phpt" role="test" />
<file md5sum="79e97d46bf35dde168a2b2c8b304d259" name="tests/manager/manager-ctor-read_preference-001.phpt" role="test" />
<file md5sum="a68f0249fa21dc829486e9b349d5835a" name="tests/manager/manager-ctor-read_preference-002.phpt" role="test" />
<file md5sum="804afa19a932863f8cfe321f96b6795f" name="tests/manager/manager-ctor-read_preference-error-001.phpt" role="test" />
<file md5sum="168b9448ba25614c452395a7801acd2d" name="tests/manager/manager-ctor-read_preference-error-002.phpt" role="test" />
<file md5sum="27ca549dbb89c00049059ec7aa61e080" name="tests/manager/manager-ctor-read_preference-error-004.phpt" role="test" />
<file md5sum="15ff7aaa3b2ccb96efac1fd5817e7496" name="tests/manager/manager-ctor-server.phpt" role="test" />
<file md5sum="c171411d3b5afee0d060fac5ed96b8b6" name="tests/manager/manager-ctor-serverApi-001.phpt" role="test" />
<file md5sum="fd58121e4d808d98a6ab5e723fb0948b" name="tests/manager/manager-ctor-serverApi-error-001.phpt" role="test" />
<file md5sum="189f7b0da30ee877dd930d11b14b6a1a" name="tests/manager/manager-ctor-srvMaxHosts_error-001.phpt" role="test" />
<file md5sum="d3c81af87b476fadf7ab31a0830a750e" name="tests/manager/manager-ctor-srvServiceName_error-001.phpt" role="test" />
<file md5sum="0f5384a769df66ede31e0c1bcd91db3b" name="tests/manager/manager-ctor-ssl-001.phpt" role="test" />
<file md5sum="8d337e05d276045180bfba817238f5f9" name="tests/manager/manager-ctor-ssl-002.phpt" role="test" />
<file md5sum="80664e19f82704d7f9fbb9973d34bd4b" name="tests/manager/manager-ctor-ssl-003.phpt" role="test" />
<file md5sum="485381d433a7d2df4e2864183167783d" name="tests/manager/manager-ctor-tls-error-001.phpt" role="test" />
<file md5sum="78fd7230fed15c73d514a4f5bb6b28db" name="tests/manager/manager-ctor-wireversion.phpt" role="test" />
<file md5sum="f5f725515b3e0d3000a190ca90a48902" name="tests/manager/manager-ctor-write_concern-001.phpt" role="test" />
<file md5sum="f57f8e8063d723e1cd9e01a7e65cdcf6" name="tests/manager/manager-ctor-write_concern-002.phpt" role="test" />
<file md5sum="a795c0a05f3f14eee39dc899c6b8b353" name="tests/manager/manager-ctor-write_concern-003.phpt" role="test" />
<file md5sum="243320fdfc028f0156dab89e0a4111fd" name="tests/manager/manager-ctor-write_concern-004.phpt" role="test" />
<file md5sum="3082087d08245cfd506d8e9c065552eb" name="tests/manager/manager-ctor-write_concern-005.phpt" role="test" />
<file md5sum="19a3af22d908692a494ff19407488831" name="tests/manager/manager-ctor-write_concern-006.phpt" role="test" />
<file md5sum="5d28e6043e9e02f5cb9d8cf1888467be" name="tests/manager/manager-ctor-write_concern-error-001.phpt" role="test" />
<file md5sum="90ccf4bb2ee95f53ffbb1e9fb28c77c0" name="tests/manager/manager-ctor-write_concern-error-002.phpt" role="test" />
<file md5sum="e5da84659c4d520d3b4136e0d269bbc6" name="tests/manager/manager-ctor-write_concern-error-003.phpt" role="test" />
<file md5sum="d3b771a0f6d4272d609f30f617ec72cf" name="tests/manager/manager-ctor-write_concern-error-005.phpt" role="test" />
<file md5sum="b84a33ba0c7e0ffbc2d281a260891c96" name="tests/manager/manager-ctor-write_concern-error-006.phpt" role="test" />
<file md5sum="2ad014b8f8dfde5313342d05f0d8198a" name="tests/manager/manager-ctor-write_concern-error-007.phpt" role="test" />
<file md5sum="3ad6b15c16b8d14633b5f677b94a0050" name="tests/manager/manager-ctor_error-001.phpt" role="test" />
<file md5sum="ad3bd333cd908ee4c406c7b110e97f61" name="tests/manager/manager-ctor_error-002.phpt" role="test" />
<file md5sum="86011518b34adc130bbb597b39b95b2e" name="tests/manager/manager-ctor_error-003.phpt" role="test" />
<file md5sum="3626db363099e33cd39331fde78f46c3" name="tests/manager/manager-ctor_error-004.phpt" role="test" />
<file md5sum="1ea3fe7629cdebd837254fd1b0730514" name="tests/manager/manager-ctor_error-005.phpt" role="test" />
<file md5sum="faf8d6c452ba1d3db0765cfdfabf7aee" name="tests/manager/manager-debug-001.phpt" role="test" />
<file md5sum="be7a1f8e254e09eaebe52cfabd489034" name="tests/manager/manager-debug-002.phpt" role="test" />
<file md5sum="b99cf3e782d7e1fba6a320e7815305f5" name="tests/manager/manager-debug-003.phpt" role="test" />
<file md5sum="4259a7b351904d6953d98b315be1ae65" name="tests/manager/manager-destruct-001.phpt" role="test" />
<file md5sum="9858166f195e0b105301c23b6436fdea" name="tests/manager/manager-executeBulkWrite-001.phpt" role="test" />
<file md5sum="9206434f496fb925d1b0a499f4f5b790" name="tests/manager/manager-executeBulkWrite-002.phpt" role="test" />
<file md5sum="d677e3dbe915d7799541477aeb4ea377" name="tests/manager/manager-executeBulkWrite-003.phpt" role="test" />
<file md5sum="3c8bc99af44c66e6c3d36a5a4d5bd8ba" name="tests/manager/manager-executeBulkWrite-004.phpt" role="test" />
<file md5sum="9e2e4162b402edd002462bb5125df34e" name="tests/manager/manager-executeBulkWrite-005.phpt" role="test" />
<file md5sum="795731bd50229fee29f2f80356f9df66" name="tests/manager/manager-executeBulkWrite-006.phpt" role="test" />
<file md5sum="65087ac5e6795aec5235055a07b42d5d" name="tests/manager/manager-executeBulkWrite-007.phpt" role="test" />
<file md5sum="ea6d63c6200730caf72ab5985375bc23" name="tests/manager/manager-executeBulkWrite-008.phpt" role="test" />
<file md5sum="22eecd73ad4e7f112efb4f91dcde274c" name="tests/manager/manager-executeBulkWrite-009.phpt" role="test" />
<file md5sum="1e4b2286bc8e60d3000a70c555857d55" name="tests/manager/manager-executeBulkWrite-010.phpt" role="test" />
<file md5sum="2e069928ae83a0dd0773d30aebab5924" name="tests/manager/manager-executeBulkWrite-011.phpt" role="test" />
<file md5sum="fd19517c24c5a6d555ce057ca860ed71" name="tests/manager/manager-executeBulkWrite-012.phpt" role="test" />
<file md5sum="4a08d8ca47b6634ac392e8551282cd50" name="tests/manager/manager-executeBulkWrite-013.phpt" role="test" />
<file md5sum="d518608f1d6ba9e787603aa42e95a87a" name="tests/manager/manager-executeBulkWrite-014.phpt" role="test" />
<file md5sum="17edeebb5d2d6fe81f16ff75186ecb14" name="tests/manager/manager-executeBulkWrite_error-001.phpt" role="test" />
<file md5sum="055caec5920283895721528c49541692" name="tests/manager/manager-executeBulkWrite_error-002.phpt" role="test" />
<file md5sum="f0eae58e09d0e1059ac6769f99a6fdc4" name="tests/manager/manager-executeBulkWrite_error-003.phpt" role="test" />
<file md5sum="88da3b97b15660e6185a1e9a1bc993ef" name="tests/manager/manager-executeBulkWrite_error-004.phpt" role="test" />
<file md5sum="3dc3b5ef89417bc0590b904585335f88" name="tests/manager/manager-executeBulkWrite_error-005.phpt" role="test" />
<file md5sum="78bf40680ecc66aa370a9bd96e4aa8f9" name="tests/manager/manager-executeBulkWrite_error-006.phpt" role="test" />
<file md5sum="b3ace17b87a0ff9a38535aab0735318f" name="tests/manager/manager-executeBulkWrite_error-007.phpt" role="test" />
<file md5sum="4fc2ff48edb6d3b24c055a79c3768528" name="tests/manager/manager-executeBulkWrite_error-008.phpt" role="test" />
<file md5sum="7c989b5bd98732cfecc3bc46488e76ed" name="tests/manager/manager-executeBulkWrite_error-009.phpt" role="test" />
<file md5sum="0230472d8a9e6e5f979972a5296447e0" name="tests/manager/manager-executeBulkWrite_error-010.phpt" role="test" />
<file md5sum="ec99c21e5928121af04ce66bf708f252" name="tests/manager/manager-executeCommand-001.phpt" role="test" />
<file md5sum="aea9364688bfb5a5b866d50b40ecf86c" name="tests/manager/manager-executeCommand-002.phpt" role="test" />
<file md5sum="9b5c7c64629e6ba652a812a4755a5d9e" name="tests/manager/manager-executeCommand-004.phpt" role="test" />
<file md5sum="eb54735876d5b2cfa2254f36dee96fcb" name="tests/manager/manager-executeCommand-005.phpt" role="test" />
<file md5sum="25703dba306cfa484ea7c7fe150d9a86" name="tests/manager/manager-executeCommand-006.phpt" role="test" />
<file md5sum="c77cc61748533707a12f5fd68839fe9b" name="tests/manager/manager-executeCommand-007.phpt" role="test" />
<file md5sum="414cb9ff3e5179fd483cd2a9d1d5c6c5" name="tests/manager/manager-executeCommand_error-001.phpt" role="test" />
<file md5sum="3a6361131801e5716a8ceacc11632924" name="tests/manager/manager-executeCommand_error-002.phpt" role="test" />
<file md5sum="ac72ebf6080b999ac922854f877c0896" name="tests/manager/manager-executeCommand_error-003.phpt" role="test" />
<file md5sum="609298cc6697cfa6303b3a16ad29fbf2" name="tests/manager/manager-executeCommand_error-004.phpt" role="test" />
<file md5sum="7f2ac9637e5fea5e5a796dffa612ad7b" name="tests/manager/manager-executeCommand_error-005.phpt" role="test" />
<file md5sum="a4bd4054f9e33874b706920dacee6ecf" name="tests/manager/manager-executeQuery-002.phpt" role="test" />
<file md5sum="3fedd10a7a35526ff47009b1e15f98db" name="tests/manager/manager-executeQuery-003.phpt" role="test" />
<file md5sum="0883d41b39acb6bc8347a03038dd19ee" name="tests/manager/manager-executeQuery-005.phpt" role="test" />
<file md5sum="d2b957d04be0f84243425f051329a30c" name="tests/manager/manager-executeQuery-006.phpt" role="test" />
<file md5sum="4397e3a049cf85e53f15beea02220ddc" name="tests/manager/manager-executeQuery-007.phpt" role="test" />
<file md5sum="18e9275267d96345a2365a618bf09ada" name="tests/manager/manager-executeQuery_error-001.phpt" role="test" />
<file md5sum="77de256019cf2c997e2dab1f5bc3a9e0" name="tests/manager/manager-executeQuery_error-002.phpt" role="test" />
<file md5sum="3c9dbb9e16de715ecd2f14d46afe8d0b" name="tests/manager/manager-executeQuery_error-003.phpt" role="test" />
<file md5sum="9dd22c3c91fa7ce10367c4294f55e4ea" name="tests/manager/manager-executeReadCommand-001.phpt" role="test" />
<file md5sum="a0b869caad05b5965cce7cf826904f3c" name="tests/manager/manager-executeReadCommand-002.phpt" role="test" />
<file md5sum="5c93e515f5a14d09fc062d959d105b08" name="tests/manager/manager-executeReadCommand-003.phpt" role="test" />
<file md5sum="10bf137557e0d4db82110694c981d5c6" name="tests/manager/manager-executeReadCommand_error-001.phpt" role="test" />
<file md5sum="4764835d6787201f3457712cf4282f04" name="tests/manager/manager-executeReadWriteCommand-001.phpt" role="test" />
<file md5sum="c813dd43cd5321f0af87763f6b1d9b80" name="tests/manager/manager-executeReadWriteCommand-002.phpt" role="test" />
<file md5sum="4969e1c51e63c5de7dae2228323f51d2" name="tests/manager/manager-executeReadWriteCommand-003.phpt" role="test" />
<file md5sum="7c1a531a50d4abdda38e30aecb95cb28" name="tests/manager/manager-executeReadWriteCommand_error-001.phpt" role="test" />
<file md5sum="c9399ff2f0afba6d4f6eddeef157a0d2" name="tests/manager/manager-executeReadWriteCommand_error-002.phpt" role="test" />
<file md5sum="60e8d449b9e05e92f7bd388728a49fa3" name="tests/manager/manager-executeWriteCommand-001.phpt" role="test" />
<file md5sum="1ad68515d769c576adedc214870fec71" name="tests/manager/manager-executeWriteCommand-002.phpt" role="test" />
<file md5sum="caa13ad0a35b45393296fee760c8624e" name="tests/manager/manager-executeWriteCommand-003.phpt" role="test" />
<file md5sum="3ae03d1aff8ebbc34f63713fc61a3871" name="tests/manager/manager-executeWriteCommand_error-001.phpt" role="test" />
<file md5sum="d0786f10e106a21127d5fffdaac12d90" name="tests/manager/manager-executeWriteCommand_error-002.phpt" role="test" />
<file md5sum="3552239623dd45961c879ac52a69ec17" name="tests/manager/manager-executeWriteCommand_error-003.phpt" role="test" />
<file md5sum="209ae7fa335c75ccbd98deed9d4719f7" name="tests/manager/manager-executeWriteCommand_error-004.phpt" role="test" />
<file md5sum="99763f5ff11405182d4d0ac5fc36d4a2" name="tests/manager/manager-getencryptedfieldsmap-001.phpt" role="test" />
<file md5sum="0c869cc5b61b1891fb9860b5c631797f" name="tests/manager/manager-getreadconcern-001.phpt" role="test" />
<file md5sum="f01ca8d5ec0497d3c83c20fbfbd78df9" name="tests/manager/manager-getreadpreference-001.phpt" role="test" />
<file md5sum="03b5f6a61ced57942d19e3179196e2f3" name="tests/manager/manager-getservers-001.phpt" role="test" />
<file md5sum="ecd5cca20434921ed49475e5bf0a9264" name="tests/manager/manager-getservers-002.phpt" role="test" />
<file md5sum="5cb96f5b8c994e360692ef80b430085d" name="tests/manager/manager-getwriteconcern-001.phpt" role="test" />
<file md5sum="56dac5c4a4ee50a9c4fd1d8d818bf61a" name="tests/manager/manager-invalidnamespace.phpt" role="test" />
<file md5sum="248e50a0cf00d17ab8489cbd5198c47f" name="tests/manager/manager-removeSubscriber-001.phpt" role="test" />
<file md5sum="ec1d9d6544132312d2f961bb0fc6992d" name="tests/manager/manager-removeSubscriber-002.phpt" role="test" />
<file md5sum="59cf29ecacb6f5d625af2b0f72a65445" name="tests/manager/manager-selectServer-001.phpt" role="test" />
<file md5sum="2041bf47ba3d52885998335f0fa3f103" name="tests/manager/manager-selectServer-002.phpt" role="test" />
<file md5sum="85dd0bb1fe863ec492c938eb2f369ae0" name="tests/manager/manager-selectserver_error-001.phpt" role="test" />
<file md5sum="c15437810b5e9743907a04e11ebc4871" name="tests/manager/manager-serialization_error-001.phpt" role="test" />
<file md5sum="8e039926e7293962b4b2fbe1f4b4b02b" name="tests/manager/manager-set-uri-options-001.phpt" role="test" />
<file md5sum="689d0debb6b1cb16c5df289acd7afd78" name="tests/manager/manager-set-uri-options-002.phpt" role="test" />
<file md5sum="b14b9c0c319df84f08950bbb38bfe333" name="tests/manager/manager-set-uri-options-003.phpt" role="test" />
<file md5sum="36c7420f1c3573c6c5fd1e5431b08327" name="tests/manager/manager-startSession_error-001.phpt" role="test" />
<file md5sum="d03c97d72fbfd14acc89562cc6c4f4e1" name="tests/manager/manager-startSession_error-002.phpt" role="test" />
<file md5sum="da2ad1d3d56ad8751c548c3790b56841" name="tests/manager/manager-var-dump-001.phpt" role="test" />
<file md5sum="9fbed7bd60817812ebb3ad0c1554082c" name="tests/manager/manager_error-001.phpt" role="test" />
<file md5sum="2dd9863434c753dd55242243d48091c9" name="tests/query/bug0430-001.phpt" role="test" />
<file md5sum="6cfbe0ca5de33e4402bf779a44d64b4e" name="tests/query/bug0430-002.phpt" role="test" />
<file md5sum="6004d177d8ffc04a0a295eb824697e4a" name="tests/query/bug0430-003.phpt" role="test" />
<file md5sum="98abf3e157699031672444f4bc98193d" name="tests/query/bug2457-001.phpt" role="test" />
<file md5sum="c96eccc22471a2f4b7870adb61fd195b" name="tests/query/query-ctor-001.phpt" role="test" />
<file md5sum="8abde6aa802820f88da79b158033adce" name="tests/query/query-ctor-002.phpt" role="test" />
<file md5sum="67950d4d5797d184b29ac4e09af8a63d" name="tests/query/query-ctor-005.phpt" role="test" />
<file md5sum="260dfd56f6ff3bf9e5bd020136b6109d" name="tests/query/query-ctor-007.phpt" role="test" />
<file md5sum="22863ef6334dfe0cee84c89f08bcdf4f" name="tests/query/query-ctor-comment-001.phpt" role="test" />
<file md5sum="b8d0d76833d79184b7ac187668506dc9" name="tests/query/query-ctor-comment_error-001.phpt" role="test" />
<file md5sum="87fb3754a99ba587db8df50427c44378" name="tests/query/query-ctor-let-001.phpt" role="test" />
<file md5sum="34a38b6cf63e6f4dcbddc2ecff3948a7" name="tests/query/query-ctor-let_error-001.phpt" role="test" />
<file md5sum="1fa6107c1eaf117eaf5407690aea9fd6" name="tests/query/query-ctor_error-001.phpt" role="test" />
<file md5sum="94664c6309b85c31445464a1c7bde394" name="tests/query/query-ctor_error-002.phpt" role="test" />
<file md5sum="de31d8c1a0133c54a5ec710543ebcc52" name="tests/query/query-ctor_error-004.phpt" role="test" />
<file md5sum="d535216394d0c494d16c1b3314a9a84c" name="tests/query/query-ctor_error-005.phpt" role="test" />
<file md5sum="771c2de819fa84ec3f8d89336beb1e14" name="tests/query/query-ctor_error-006.phpt" role="test" />
<file md5sum="fd0c5c65471a77a0390bf9dfd51e6e87" name="tests/query/query-ctor_error-007.phpt" role="test" />
<file md5sum="032695ec9701bef01ec999542edd2d6f" name="tests/query/query-debug-001.phpt" role="test" />
<file md5sum="57f3ca7bf3cfc8f4891162117e0e43ee" name="tests/query/query-debug-002.phpt" role="test" />
<file md5sum="40b6ac367eaa659a9bcfdbd8dc971d9b" name="tests/query/query-debug-003.phpt" role="test" />
<file md5sum="872a288691976f48f0f5c0b03e5cd2ed" name="tests/query/query_error-001.phpt" role="test" />
<file md5sum="a235c15b6d12006dd86cd3fc9d364abd" name="tests/readConcern/bug1598-001.phpt" role="test" />
<file md5sum="a28caee4fb327c3825636a3c84d63b4a" name="tests/readConcern/bug1598-002.phpt" role="test" />
<file md5sum="9d082d9ae5d0620fb87609422f3d848c" name="tests/readConcern/readconcern-bsonserialize-001.phpt" role="test" />
<file md5sum="d69611a05e9f23cc6fc47eb864c6f9fe" name="tests/readConcern/readconcern-bsonserialize-002.phpt" role="test" />
<file md5sum="d964c2eae3f1a7ec5daf4296a9429e0c" name="tests/readConcern/readconcern-constants.phpt" role="test" />
<file md5sum="0b0e4399f655b0af56f9723e68a9ef8f" name="tests/readConcern/readconcern-ctor-001.phpt" role="test" />
<file md5sum="c1f4a3040b96c582e164b9d6aa50e12c" name="tests/readConcern/readconcern-ctor_error-001.phpt" role="test" />
<file md5sum="26e67aad3c09451d3fe96047e0619757" name="tests/readConcern/readconcern-ctor_error-002.phpt" role="test" />
<file md5sum="1754fe8ebbdda6e59d15dabeec37ae71" name="tests/readConcern/readconcern-debug-001.phpt" role="test" />
<file md5sum="84e45c948af32008e5b61eafc1f999fd" name="tests/readConcern/readconcern-getlevel-001.phpt" role="test" />
<file md5sum="7bc12b0529eef007f25068e8a410d755" name="tests/readConcern/readconcern-isdefault-001.phpt" role="test" />
<file md5sum="e270dc3696c9d382c0cf1359aa639992" name="tests/readConcern/readconcern-serialization-002.phpt" role="test" />
<file md5sum="ae3585bd6541c2193757466fed8d911d" name="tests/readConcern/readconcern-serialization_error-002.phpt" role="test" />
<file md5sum="a5049b6a96dd443815d0dd94bb649693" name="tests/readConcern/readconcern-set_state-001.phpt" role="test" />
<file md5sum="324870d2b3da8a4730a2684ffb878724" name="tests/readConcern/readconcern-set_state_error-001.phpt" role="test" />
<file md5sum="b7664c0b4985872d541e1c06f33306da" name="tests/readConcern/readconcern-var_export-001.phpt" role="test" />
<file md5sum="626fe59437a671f6c480e6a813dcf777" name="tests/readConcern/readconcern_error-001.phpt" role="test" />
<file md5sum="ecc8faf6d803e690208d8dec05cf550a" name="tests/readPreference/bug0146-001.phpt" role="test" />
<file md5sum="81d74a6cd47b3ce91943c5e1db170ed8" name="tests/readPreference/bug0851-001.phpt" role="test" />
<file md5sum="bdc1634fe23391ae15928e87da27e5dc" name="tests/readPreference/bug1598-001.phpt" role="test" />
<file md5sum="42932911b10ba1a3be09ef4f883144e9" name="tests/readPreference/bug1598-002.phpt" role="test" />
<file md5sum="20d09af75e7eb7eda7844ad5bb0de8e4" name="tests/readPreference/bug1698-001.phpt" role="test" />
<file md5sum="c881a28c742dd180c730e08bd24383af" name="tests/readPreference/readpreference-bsonserialize-001.phpt" role="test" />
<file md5sum="fbcf4ce321f2aa9e2aa7500858e8716f" name="tests/readPreference/readpreference-bsonserialize-002.phpt" role="test" />
<file md5sum="88d6608ed0e8aca9f935ecb986fec369" name="tests/readPreference/readpreference-constants-001.phpt" role="test" />
<file md5sum="f885a01386ff4e18710df40c06ecb694" name="tests/readPreference/readpreference-ctor-001.phpt" role="test" />
<file md5sum="4fe7a3e52e517e7b76b6bf14e1358a9e" name="tests/readPreference/readpreference-ctor-002.phpt" role="test" />
<file md5sum="f26e3c6d00bee1654069a01df225af66" name="tests/readPreference/readpreference-ctor_error-001.phpt" role="test" />
<file md5sum="8bb8cfd0f7e589fd1c1fd03cc7606613" name="tests/readPreference/readpreference-ctor_error-002.phpt" role="test" />
<file md5sum="7f1b530ab6b5f740104018377027ec88" name="tests/readPreference/readpreference-ctor_error-003.phpt" role="test" />
<file md5sum="abe24d95a13a7c0d837167a8b9a07c1f" name="tests/readPreference/readpreference-ctor_error-004.phpt" role="test" />
<file md5sum="10ef25e96af761a4d69ee7929598d941" name="tests/readPreference/readpreference-ctor_error-007.phpt" role="test" />
<file md5sum="862bf983ced9bcbee9bd9f0f0a852711" name="tests/readPreference/readpreference-ctor_error-008.phpt" role="test" />
<file md5sum="db3aabbd37d4174fa610d708e40a847a" name="tests/readPreference/readpreference-debug-001.phpt" role="test" />
<file md5sum="09ef643089a2ef5a3b7169bd2b4b491b" name="tests/readPreference/readpreference-getHedge-001.phpt" role="test" />
<file md5sum="1a9a6112a7138b77e6466e8ad671bae8" name="tests/readPreference/readpreference-getMaxStalenessMS-001.phpt" role="test" />
<file md5sum="917131aadbd26697fbc3ac5923fa46bf" name="tests/readPreference/readpreference-getMaxStalenessMS-002.phpt" role="test" />
<file md5sum="20dc710725900a46f23dbff1d6366b1d" name="tests/readPreference/readpreference-getModeString-001.phpt" role="test" />
<file md5sum="2c7964e92015a650ab83e5e0f0fc434d" name="tests/readPreference/readpreference-getTagSets-001.phpt" role="test" />
<file md5sum="74a95fd229d950e7116b5ff0fd78db56" name="tests/readPreference/readpreference-getTagSets-002.phpt" role="test" />
<file md5sum="e3c220d3fd305ebe5a13902755779a36" name="tests/readPreference/readpreference-serialization-002.phpt" role="test" />
<file md5sum="203f0edf4dd5661a40d7f1a99a641c90" name="tests/readPreference/readpreference-serialization_error-002.phpt" role="test" />
<file md5sum="bca9617f969c558aabab69cbbb85b54f" name="tests/readPreference/readpreference-set_state-001.phpt" role="test" />
<file md5sum="0b5e53fe4398b1bb8d8fb42487135b39" name="tests/readPreference/readpreference-set_state_error-001.phpt" role="test" />
<file md5sum="862edb823e451326954908c96fa3337d" name="tests/readPreference/readpreference-set_state_error-002.phpt" role="test" />
<file md5sum="60f1af2e0c8526e12b451dffc46c7f03" name="tests/readPreference/readpreference-var_export-001.phpt" role="test" />
<file md5sum="b2df8c5d8346e04359efa29eaab86f3c" name="tests/readPreference/readpreference_error-001.phpt" role="test" />
<file md5sum="8aebe449acfe8c41f341ff03066a6126" name="tests/replicaset/bug0155.phpt" role="test" />
<file md5sum="10bda8d50276bcea0dc8ab4e1b0e07fa" name="tests/replicaset/bug0898-001.phpt" role="test" />
<file md5sum="3055fdc9202aedd4e2ed6c49dd0343c4" name="tests/replicaset/bug0898-002.phpt" role="test" />
<file md5sum="b4785752ada9a060611d03e22d5ad447" name="tests/replicaset/manager-selectserver-001.phpt" role="test" />
<file md5sum="b0086b872237d01e08a0fff849c5787f" name="tests/replicaset/readconcern-001.phpt" role="test" />
<file md5sum="670bad910f75f6a447a68510593da72b" name="tests/replicaset/writeconcernerror-001.phpt" role="test" />
<file md5sum="7e8505a84aebae38f63e488231333e58" name="tests/replicaset/writeconcernerror-002.phpt" role="test" />
<file md5sum="7cf4d893a4cae40d9e7ca817d231c33d" name="tests/replicaset/writeresult-getserver-001.phpt" role="test" />
<file md5sum="47ec43a325b6d0e4a08fae645048ffba" name="tests/replicaset/writeresult-getserver-002.phpt" role="test" />
<file md5sum="f9cb3d4ee014a30264fb5e523e90b377" name="tests/retryable-reads/retryable-reads-001.phpt" role="test" />
<file md5sum="0765100682aed3416ed3f6cdcfb8d9eb" name="tests/retryable-reads/retryable-reads-002.phpt" role="test" />
<file md5sum="3c7da533abca5f44fc2a8c3de857621c" name="tests/retryable-reads/retryable-reads_error-001.phpt" role="test" />
<file md5sum="b183b7709576a5cf64465006b93887e9" name="tests/retryable-reads/retryable-reads_error-002.phpt" role="test" />
<file md5sum="ad58c595b3bd4f7e50bd58be1bb1999c" name="tests/retryable-writes/retryable-writes-001.phpt" role="test" />
<file md5sum="5c9824a483a7ef1ca4a17c0f1cefd313" name="tests/retryable-writes/retryable-writes-002.phpt" role="test" />
<file md5sum="8f6d11e7ca0d9aa16b143099ca6c2d53" name="tests/retryable-writes/retryable-writes-003.phpt" role="test" />
<file md5sum="e79cbdc8001b616fbdbaf81e0e65cca4" name="tests/retryable-writes/retryable-writes-004.phpt" role="test" />
<file md5sum="2bdfbe1a4f28c8a7189e5fd9e492b7d5" name="tests/retryable-writes/retryable-writes-005.phpt" role="test" />
<file md5sum="f73fcc5beca298ed93cfbb920be52a51" name="tests/retryable-writes/retryable-writes_error-001.phpt" role="test" />
<file md5sum="b6eb14c1d79b243c0153dbd551148170" name="tests/server/bug0671-002.phpt" role="test" />
<file md5sum="48b01991b47cc25751a6cf7796aeddaf" name="tests/server/server-constants.phpt" role="test" />
- <file md5sum="118b30ef453ec6253600d76cdd450803" name="tests/server/server-construct-001.phpt" role="test" />
+ <file md5sum="863527d576e919656eb9678203381fc6" name="tests/server/server-construct-001.phpt" role="test" />
<file md5sum="b3317c5a9c1822a706abd8380ad39b96" name="tests/server/server-debug.phpt" role="test" />
<file md5sum="7b1c205df7700100ddd510fe1c02bfa6" name="tests/server/server-errors.phpt" role="test" />
<file md5sum="30bc6beb49545cf838241e2325c1106f" name="tests/server/server-executeBulkWrite-001.phpt" role="test" />
<file md5sum="978ca3d45a1b32970976af272290da75" name="tests/server/server-executeBulkWrite-002.phpt" role="test" />
<file md5sum="1d7b68312471a4c5deeb3163c7955eb6" name="tests/server/server-executeBulkWrite-003.phpt" role="test" />
<file md5sum="4d1ca0190d83fbdef39d6765fc4c53b9" name="tests/server/server-executeBulkWrite-004.phpt" role="test" />
<file md5sum="cd0b19fc4c1aa42280cab30fc403308b" name="tests/server/server-executeBulkWrite-005.phpt" role="test" />
<file md5sum="584c723b46b65ada439833878b9827c0" name="tests/server/server-executeBulkWrite-006.phpt" role="test" />
<file md5sum="df367f2fb167a020a86e4c5f441146bf" name="tests/server/server-executeBulkWrite-007.phpt" role="test" />
<file md5sum="8febec6c2f0d437d0ec29caf8a1bda06" name="tests/server/server-executeBulkWrite-008.phpt" role="test" />
<file md5sum="8e8c4e7c00f1db9cc303003d29b95693" name="tests/server/server-executeBulkWrite-009.phpt" role="test" />
<file md5sum="8aa02e60563a0cd77653110e2f829ebc" name="tests/server/server-executeBulkWrite_error-001.phpt" role="test" />
<file md5sum="62e009034e488ea52b3e4880d5be49eb" name="tests/server/server-executeBulkWrite_error-002.phpt" role="test" />
<file md5sum="c6b762d00285a92cb2ca9d5582bb78fc" name="tests/server/server-executeCommand-001.phpt" role="test" />
<file md5sum="0d30cc0604b5adad99b4de797f87e4c6" name="tests/server/server-executeCommand-002.phpt" role="test" />
<file md5sum="0362d3cada008f319a775a01a9f49c1b" name="tests/server/server-executeCommand-003.phpt" role="test" />
<file md5sum="436a238dc817b3d3c4e8a3b0c599fc45" name="tests/server/server-executeCommand-004.phpt" role="test" />
<file md5sum="95b6835fbd75dd6f1ffcc0568c864e08" name="tests/server/server-executeCommand-006.phpt" role="test" />
<file md5sum="f5cc1886b23eaef43a0f4b743bbbe678" name="tests/server/server-executeCommand-007.phpt" role="test" />
<file md5sum="9a8541f7ee17ee763e2587728a35e70b" name="tests/server/server-executeCommand-008.phpt" role="test" />
<file md5sum="34ba337b799b4d9ac1f6de03ee8c4847" name="tests/server/server-executeCommand-009.phpt" role="test" />
<file md5sum="cb2851e0b80b29bec23b3d87244f6fb5" name="tests/server/server-executeCommand-010.phpt" role="test" />
<file md5sum="6a0b2ee91ae7989f5b0b4157d8beda20" name="tests/server/server-executeCommand_error-001.phpt" role="test" />
<file md5sum="0fba40ada9f345ba296a11e771a4fa28" name="tests/server/server-executeQuery-001.phpt" role="test" />
<file md5sum="7d6abfb7e95373573fbf6fa59e721734" name="tests/server/server-executeQuery-002.phpt" role="test" />
<file md5sum="786fb95ad650d21a3738b31654d6db09" name="tests/server/server-executeQuery-004.phpt" role="test" />
<file md5sum="32f0522d8290b285b64d3c678fcddc1b" name="tests/server/server-executeQuery-006.phpt" role="test" />
<file md5sum="6ddbcd8187987e36aa47b1c91ff47fe5" name="tests/server/server-executeQuery-007.phpt" role="test" />
<file md5sum="bebf95a088f142d1110506924ef8977f" name="tests/server/server-executeQuery-008.phpt" role="test" />
<file md5sum="02bd31c10400675abee9581bff7e3f9b" name="tests/server/server-executeQuery-009.phpt" role="test" />
<file md5sum="66a2e65ff2aeef52273984df64596175" name="tests/server/server-executeQuery-011.phpt" role="test" />
<file md5sum="70627156bf8447754259f4ec54a33ca8" name="tests/server/server-executeQuery-012.phpt" role="test" />
<file md5sum="b82554034b4271053bbe208858cda081" name="tests/server/server-executeQuery-013.phpt" role="test" />
<file md5sum="ac0c93a0c441dba7b48ab59a225b97a9" name="tests/server/server-executeQuery_error-001.phpt" role="test" />
<file md5sum="97d5052ae4e4aef067bf991a1c8ac8a5" name="tests/server/server-executeReadCommand-001.phpt" role="test" />
<file md5sum="8b6fc02521a1901f05e353370e7f8ee5" name="tests/server/server-executeReadCommand-002.phpt" role="test" />
<file md5sum="8fc7bcc947d50d6fccf64fdb34b01e5d" name="tests/server/server-executeReadCommand-003.phpt" role="test" />
<file md5sum="5824b6c364633eed238cf8760bc84295" name="tests/server/server-executeReadCommand_error-001.phpt" role="test" />
<file md5sum="6aa10777cd4b7a5857c71039b58f7940" name="tests/server/server-executeReadWriteCommand-001.phpt" role="test" />
<file md5sum="d1fe71cee62f9491a73b09551840825c" name="tests/server/server-executeReadWriteCommand-002.phpt" role="test" />
<file md5sum="b6350951e4aeb9270d940b551cf5145e" name="tests/server/server-executeReadWriteCommand-003.phpt" role="test" />
<file md5sum="34f3403ae623f7800f68571fd85cf58b" name="tests/server/server-executeReadWriteCommand_error-001.phpt" role="test" />
<file md5sum="a615b7dd0da53299c047a0f905079f1b" name="tests/server/server-executeWriteCommand-001.phpt" role="test" />
<file md5sum="97b1c9cf42fbf431702c78183c6571db" name="tests/server/server-executeWriteCommand-002.phpt" role="test" />
<file md5sum="2f93789872e1453422986a2ed7052f26" name="tests/server/server-executeWriteCommand-003.phpt" role="test" />
<file md5sum="7e3c87b6edf7a64c4465a69530732f98" name="tests/server/server-executeWriteCommand_error-001.phpt" role="test" />
<file md5sum="908279399a57c639c82ff4fe1ea2036d" name="tests/server/server-getInfo-001.phpt" role="test" />
<file md5sum="a0c7cbf92555d8c8a961edbfdac92685" name="tests/server/server-getLatency-001.phpt" role="test" />
<file md5sum="d48bdb590104928b42ace95b62f7ed0a" name="tests/server/server-getLatency-002.phpt" role="test" />
<file md5sum="53d08da4a63f4b403a592c0c4b29526a" name="tests/server/server-getServerDescription-001.phpt" role="test" />
<file md5sum="5a88d70fa5a0cfbf5e0a5030787fb09a" name="tests/server/server-getTags-001.phpt" role="test" />
<file md5sum="93d1818b704c415bb309c58044b299c4" name="tests/server/server-getTags-002.phpt" role="test" />
<file md5sum="eed3333d1956c2ec13d99ad095c5e91c" name="tests/server/server_error-001.phpt" role="test" />
<file md5sum="47317cff71d468ebe61d741d71a2e499" name="tests/serverApi/serverApi-bsonserialize-001.phpt" role="test" />
<file md5sum="afde498a7cdeae0f161a7b130f1c4d8c" name="tests/serverApi/serverApi-bsonserialize-002.phpt" role="test" />
<file md5sum="a2392cc37aa1d30469140b791cc8ed84" name="tests/serverApi/serverApi-construct-001.phpt" role="test" />
<file md5sum="abf58c35668375559c6268ae126efe6d" name="tests/serverApi/serverApi-debug.phpt" role="test" />
<file md5sum="2b7a1a330486b3013688c2f39be19697" name="tests/serverApi/serverApi-serialization-002.phpt" role="test" />
<file md5sum="42f78240cda576fbd76f7e0cfc78f823" name="tests/serverApi/serverApi-serialization_error-002.phpt" role="test" />
<file md5sum="524125419ae9c83fad4fc96533a1a992" name="tests/serverApi/serverApi-set_state-001.phpt" role="test" />
<file md5sum="8e58f2fb54c09f56da57773a188a1c73" name="tests/serverApi/serverApi-set_state_error-001.phpt" role="test" />
<file md5sum="f460a9851721564de331d42d86f44ecd" name="tests/serverApi/serverApi-var_export-001.phpt" role="test" />
<file md5sum="ee1b9429abdc682a0dab5810d5065a49" name="tests/serverDescription/serverDescription-constants.phpt" role="test" />
<file md5sum="0720df3be175bba730376d3dfcc562e0" name="tests/serverDescription/serverDescription-debug-001.phpt" role="test" />
<file md5sum="ee5fcc26ac6494d62d213df062118079" name="tests/serverDescription/serverDescription-getHelloResponse-001.phpt" role="test" />
<file md5sum="85a5f91600730b9909cebef3263269fe" name="tests/serverDescription/serverDescription-getHost-001.phpt" role="test" />
<file md5sum="6260e17daf2ed937773a019b560c0628" name="tests/serverDescription/serverDescription-getLastUpdateTime-001.phpt" role="test" />
<file md5sum="ee367002592bead6eb0f38a96d59fc17" name="tests/serverDescription/serverDescription-getLastUpdateTime-002.phpt" role="test" />
<file md5sum="6da7822ec082fd74c42095dbf0c705ac" name="tests/serverDescription/serverDescription-getPort-001.phpt" role="test" />
<file md5sum="07a5cf52ad8e035fc2ca6e0ed4e08654" name="tests/serverDescription/serverDescription-getRoundTripTime-001.phpt" role="test" />
<file md5sum="00fa91c208967234609f1c70f51b8f4b" name="tests/serverDescription/serverDescription-getType-001.phpt" role="test" />
<file md5sum="e9f4ab03e27a57e3e061428ccfd141ae" name="tests/serverDescription/serverDescription-var_export-001.phpt" role="test" />
<file md5sum="88d6b70b08d0499be1df22f03ffe33fd" name="tests/session/bug1274-001.phpt" role="test" />
<file md5sum="281153d39883a4cfc395347a90766a6e" name="tests/session/bug1274-002.phpt" role="test" />
<file md5sum="6847f7be9faed95de46a43f3b969d078" name="tests/session/bug1274-003.phpt" role="test" />
<file md5sum="77e7a7474ad07ab60895238d17dab331" name="tests/session/bug1274-004.phpt" role="test" />
<file md5sum="24a3b4f65057a4d2edf4a5a7665641d4" name="tests/session/bug1274-005.phpt" role="test" />
<file md5sum="564b331a0c0a0e4865561fa132ac622f" name="tests/session/bug1274-006.phpt" role="test" />
<file md5sum="e02e97bba7cda7f3b1a9f733370d4186" name="tests/session/session-001.phpt" role="test" />
<file md5sum="a0bde2bc600e656ce4fc68c82c962149" name="tests/session/session-002.phpt" role="test" />
<file md5sum="07f179ebe1cd9e281688be12bac98855" name="tests/session/session-003.phpt" role="test" />
<file md5sum="50d18fb03e0c133f58a48ac0567cce0b" name="tests/session/session-004.phpt" role="test" />
<file md5sum="55028dc0255b302ea1e48b70d9c84633" name="tests/session/session-005.phpt" role="test" />
<file md5sum="a1534efa6e4be70889ce4e3cdd5bfeb4" name="tests/session/session-advanceClusterTime-001.phpt" role="test" />
<file md5sum="1f64cf2fc890b0cddf04b0a0694fd2c2" name="tests/session/session-advanceOperationTime-001.phpt" role="test" />
<file md5sum="35cc4f4df8c4f6823d639be1e1d3f5d0" name="tests/session/session-advanceOperationTime-002.phpt" role="test" />
<file md5sum="5918049b83c009a0428450429d89b751" name="tests/session/session-advanceOperationTime-003.phpt" role="test" />
<file md5sum="1f17d580ae59b10f5cf420d554a917c0" name="tests/session/session-advanceOperationTime_error-001.phpt" role="test" />
<file md5sum="fbb595e8678c01364659e4e6b966133c" name="tests/session/session-commitTransaction-001.phpt" role="test" />
<file md5sum="ae4075d8629d54ce74448dc56562af31" name="tests/session/session-constants.phpt" role="test" />
<file md5sum="5b28cc9db2744f230aebbed44e6ccc8c" name="tests/session/session-debug-001.phpt" role="test" />
<file md5sum="820590242b5e118fa46f15087995b766" name="tests/session/session-debug-002.phpt" role="test" />
<file md5sum="7ddae48afa4a0061992d429d7f33994d" name="tests/session/session-debug-003.phpt" role="test" />
<file md5sum="b8428d2436e019d424a16f1e64ae8fe5" name="tests/session/session-debug-004.phpt" role="test" />
<file md5sum="313f189ea60620ce3f23c6ce5c0be05a" name="tests/session/session-debug-005.phpt" role="test" />
<file md5sum="311571cea0857208bf3477d5bf696048" name="tests/session/session-debug-006.phpt" role="test" />
<file md5sum="ebded0814c160954f0f725a1d139ba84" name="tests/session/session-debug-007.phpt" role="test" />
<file md5sum="007301127176ed86d3717a4a120fcabf" name="tests/session/session-endSession-001.phpt" role="test" />
<file md5sum="be157fd514c0e54b02ddd0d001e9b733" name="tests/session/session-endSession-002.phpt" role="test" />
<file md5sum="047663a229a1398ddf09580af0b1065f" name="tests/session/session-getClusterTime-001.phpt" role="test" />
<file md5sum="dd1b4d449e49ff4ad12b7dcae787a045" name="tests/session/session-getLogicalSessionId-001.phpt" role="test" />
<file md5sum="c7731b7bb01087a5a302e193d4d4de04" name="tests/session/session-getOperationTime-001.phpt" role="test" />
<file md5sum="4f144ae06868c02faddbeaf7a3c99a85" name="tests/session/session-getTransactionOptions-001.phpt" role="test" />
<file md5sum="d8861674e657c7f538bfec79587d8daa" name="tests/session/session-getTransactionState-001.phpt" role="test" />
<file md5sum="b2f2659248eac4a9fa069c1764d8a458" name="tests/session/session-isDirty-001.phpt" role="test" />
<file md5sum="79abf68b491c002b36c67b1485dcea20" name="tests/session/session-isInTransaction-001.phpt" role="test" />
<file md5sum="d2e85244ca1595ea1aea216ce74cb3b0" name="tests/session/session-startTransaction-001.phpt" role="test" />
<file md5sum="66b3d2185152fed858c46a333cf7cfb4" name="tests/session/session-startTransaction_error-001.phpt" role="test" />
<file md5sum="7e0f0cb9c9acaab18feb93171707fad3" name="tests/session/session-startTransaction_error-002.phpt" role="test" />
<file md5sum="8ed626b15b7b51bc62a30ed19d9164d5" name="tests/session/session-startTransaction_error-004.phpt" role="test" />
<file md5sum="f11a7d20e9064f2e464aa3472dac377f" name="tests/session/session-startTransaction_error-005.phpt" role="test" />
<file md5sum="cf9cb4bd8e63acaad16ffb6a1b3cf4e1" name="tests/session/transaction-integration-001.phpt" role="test" />
<file md5sum="0e8b366aa9781103bb1fc37fc685b9ab" name="tests/session/transaction-integration-002.phpt" role="test" />
<file md5sum="c0a958f2da4e0e64e946b2d21a391475" name="tests/session/transaction-integration-003.phpt" role="test" />
<file md5sum="2205a55501e7d1b51873749f6f73380b" name="tests/session/transaction-integration_error-001.phpt" role="test" />
<file md5sum="8f80677316e350aa0f839263120d32df" name="tests/session/transaction-integration_error-002.phpt" role="test" />
<file md5sum="005c410b5eae4853c8181e9da9dfe9d9" name="tests/session/transaction-integration_error-003.phpt" role="test" />
<file md5sum="8d57f720d8c54d0a09ed8dd5c3b57998" name="tests/session/transaction-integration_error-004.phpt" role="test" />
<file md5sum="f8500fd70f234db2c5b176de9768fc18" name="tests/standalone/bug0231.phpt" role="test" />
<file md5sum="d3780db83fa5dd757b2fa14e6e8cee69" name="tests/standalone/bug0357.phpt" role="test" />
<file md5sum="5252574e766615dc8e3f59832aef1214" name="tests/standalone/bug0545.phpt" role="test" />
<file md5sum="7ec0be606371d41790ba43b1de8fc308" name="tests/standalone/bug0655.phpt" role="test" />
<file md5sum="ec3c0bb4e15c9c29e46f84c4b0189794" name="tests/standalone/command-aggregate-001.phpt" role="test" />
<file md5sum="545faf9d019b2c579f0cebc65e78927a" name="tests/standalone/connectiontimeoutexception-001.phpt" role="test" />
<file md5sum="1d77a988b9eb32025b6e87f228ad0363" name="tests/standalone/executiontimeoutexception-001.phpt" role="test" />
<file md5sum="4d78ffda28c4d6ec4201ad9c7311bd9d" name="tests/standalone/executiontimeoutexception-002.phpt" role="test" />
<file md5sum="68994a8889b0374c6cda3226457901bb" name="tests/standalone/manager-as-singleton.phpt" role="test" />
<file md5sum="bb25fc25c134935d184b9f5dff5a9a79" name="tests/standalone/update-multi-001.phpt" role="test" />
<file md5sum="30a26e97af13ade9aa65992a5d5d85d8" name="tests/standalone/write-error-001.phpt" role="test" />
<file md5sum="6a29cd2e4dc1dcbbd4eb4f22eabec4f5" name="tests/standalone/writeresult-isacknowledged-001.phpt" role="test" />
<file md5sum="dadcd10a51366a31ba1782e8073dffb5" name="tests/standalone/writeresult-isacknowledged-002.phpt" role="test" />
<file md5sum="013890a5136f2606e6632ce1cc13525c" name="tests/standalone/writeresult-isacknowledged-003.phpt" role="test" />
<file md5sum="3add3334968577e9622a91649d79c63a" name="tests/topologyDescription/topologyDescription-constants.phpt" role="test" />
<file md5sum="2fae346fdc3e134dbe622f5035ff1be6" name="tests/topologyDescription/topologyDescription-debug-001.phpt" role="test" />
<file md5sum="7c85ec90de7a1bfa3c29fe3224245cd7" name="tests/topologyDescription/topologyDescription-getServers-001.phpt" role="test" />
<file md5sum="882e1374fc007a5578707b86c660f8c8" name="tests/topologyDescription/topologyDescription-getType-001.phpt" role="test" />
<file md5sum="b31e651818dc08504eb7b09a0c919be0" name="tests/topologyDescription/topologyDescription-hasReadableServer-001.phpt" role="test" />
<file md5sum="69425510e007602bfaecdb2d36c77221" name="tests/topologyDescription/topologyDescription-hasReadableServer-002.phpt" role="test" />
<file md5sum="5d0dabd42c4e862cd6b9dca2b5769dab" name="tests/topologyDescription/topologyDescription-hasReadableServer_error-001.phpt" role="test" />
<file md5sum="8cd6d1bf40d0e2d5e1e59311525aafbd" name="tests/topologyDescription/topologyDescription-hasWritableServer-001.phpt" role="test" />
<file md5sum="59adebd29ef983f00c4d55cfc4b2d10d" name="tests/utils/PHONGO-FIXTURES.json.gz" role="test" />
<file md5sum="20bcdb186e464bebff08400730d55afd" name="tests/utils/basic-skipif.inc" role="test" />
<file md5sum="db6db9ef2eaccae822679906332c27a2" name="tests/utils/basic.inc" role="test" />
<file md5sum="087aa9fa4d115c8c971e7b1db8cf59f9" name="tests/utils/classes.inc" role="test" />
<file md5sum="8e3aeef58e3b8540755e37817a8b4d8d" name="tests/utils/observer.php" role="test" />
<file md5sum="c2267289417ef149ff27a5df1ed06a58" name="tests/utils/skipif.php" role="test" />
<file md5sum="e414de7f7a7d5508845ada571238d2ab" name="tests/utils/tools.php" role="test" />
<file md5sum="64ee8e2ef24e46d681df686739aa4e69" name="tests/writeConcern/bug1598-001.phpt" role="test" />
<file md5sum="c7771ec7a47f2d16de18a16c0b932576" name="tests/writeConcern/bug1598-002.phpt" role="test" />
<file md5sum="040454fc69c09b2b2238cfa218f4b434" name="tests/writeConcern/writeconcern-bsonserialize-001.phpt" role="test" />
<file md5sum="073e73d11253900ad6d1e3e1b0656d20" name="tests/writeConcern/writeconcern-bsonserialize-002.phpt" role="test" />
<file md5sum="a02e1015d4bc797ff8a68613342f28c5" name="tests/writeConcern/writeconcern-bsonserialize-003.phpt" role="test" />
<file md5sum="64c7fb44e466938561d753546b82c22f" name="tests/writeConcern/writeconcern-bsonserialize-004.phpt" role="test" />
<file md5sum="08cc65bfe3d89314eca5a43616e12202" name="tests/writeConcern/writeconcern-constants.phpt" role="test" />
<file md5sum="3dbbdae846359bf00358aad47b0b7ae6" name="tests/writeConcern/writeconcern-ctor-001.phpt" role="test" />
<file md5sum="1f9f66d9446fa0f5ce954d88abe56e70" name="tests/writeConcern/writeconcern-ctor-002.phpt" role="test" />
<file md5sum="04b1a413620234518b86f7ce3d5c7be0" name="tests/writeConcern/writeconcern-ctor_error-001.phpt" role="test" />
<file md5sum="02824e85df59bb1d26cd28e0c6d4775d" name="tests/writeConcern/writeconcern-ctor_error-002.phpt" role="test" />
<file md5sum="727cc4fe9885dc11716446782384160f" name="tests/writeConcern/writeconcern-ctor_error-003.phpt" role="test" />
<file md5sum="be881f8e0077d593ce05110808600265" name="tests/writeConcern/writeconcern-ctor_error-004.phpt" role="test" />
<file md5sum="6ff4840ca262801e9e58c69253f45ae8" name="tests/writeConcern/writeconcern-ctor_error-005.phpt" role="test" />
<file md5sum="22dfaec3917fe798f71c15d857a36921" name="tests/writeConcern/writeconcern-debug-001.phpt" role="test" />
<file md5sum="56555f30c1e42233cb65ef12a0fb870b" name="tests/writeConcern/writeconcern-debug-002.phpt" role="test" />
<file md5sum="7feb66ce332c7b57016aa3f40e157480" name="tests/writeConcern/writeconcern-debug-003.phpt" role="test" />
<file md5sum="544bc7904161390cd99e1603b71eb0c6" name="tests/writeConcern/writeconcern-getjournal-001.phpt" role="test" />
<file md5sum="c64faac6dd9eeb55bb27b2d82acb7d86" name="tests/writeConcern/writeconcern-getw-001.phpt" role="test" />
<file md5sum="9ec2c850fc6202678ea402e96a56e530" name="tests/writeConcern/writeconcern-getwtimeout-001.phpt" role="test" />
<file md5sum="c63e6a803d425dd751247d43f24b3525" name="tests/writeConcern/writeconcern-getwtimeout-002.phpt" role="test" />
<file md5sum="7ac2556e20b9fda6524d291b695f9241" name="tests/writeConcern/writeconcern-isdefault-001.phpt" role="test" />
<file md5sum="61667a3f963d47a96695a7eaddae1b18" name="tests/writeConcern/writeconcern-serialization-002.phpt" role="test" />
<file md5sum="40f5922b4844e84db3ba9d4e5633e292" name="tests/writeConcern/writeconcern-serialization_error-002.phpt" role="test" />
<file md5sum="4ac22dfa32fef83cf3ad4a2aa7c0de26" name="tests/writeConcern/writeconcern-set_state-001.phpt" role="test" />
<file md5sum="6866ee01eeb3334135ae6daf61f1463d" name="tests/writeConcern/writeconcern-set_state_error-001.phpt" role="test" />
<file md5sum="b55df581a202f138f22b142055eb7073" name="tests/writeConcern/writeconcern-var_export-001.phpt" role="test" />
<file md5sum="17b4be0b8f641686cbfa42b324101697" name="tests/writeConcern/writeconcern_error-001.phpt" role="test" />
<file md5sum="c01b4c9c46c154a0e934effdaaed37f1" name="tests/writeConcernError/writeconcernerror-debug-001.phpt" role="test" />
<file md5sum="9de1c12ff56885812a9a66441bab5417" name="tests/writeConcernError/writeconcernerror-getcode-001.phpt" role="test" />
<file md5sum="a583c58406aa12633b755bbebd0f8dc6" name="tests/writeConcernError/writeconcernerror-getinfo-001.phpt" role="test" />
<file md5sum="4ab25052d470f07ce79ade5ab7f853ba" name="tests/writeConcernError/writeconcernerror-getmessage-001.phpt" role="test" />
<file md5sum="3aca836caa673a3a3f636679f5216839" name="tests/writeConcernError/writeconcernerror_error-001.phpt" role="test" />
<file md5sum="5e4dafe8f5dbe27f4628ad27c597d4b9" name="tests/writeError/writeerror-debug-001.phpt" role="test" />
<file md5sum="0bd364116e4769f2267bc4957eec4b26" name="tests/writeError/writeerror-getCode-001.phpt" role="test" />
<file md5sum="239052e89e6a23ff9ad83cb504e84115" name="tests/writeError/writeerror-getIndex-001.phpt" role="test" />
<file md5sum="b2a070ca4c4ecb4655b9e26a8b42d1bd" name="tests/writeError/writeerror-getInfo-001.phpt" role="test" />
<file md5sum="68999c6e5b802d35c1fbb8c5dfaad920" name="tests/writeError/writeerror-getInfo-002.phpt" role="test" />
<file md5sum="8f029a6c06d58a0ba358b281589e3712" name="tests/writeError/writeerror-getMessage-001.phpt" role="test" />
<file md5sum="8c4a875920ce58be5d2b2bd54329f277" name="tests/writeError/writeerror_error-001.phpt" role="test" />
<file md5sum="b018cf23e251de1fbafba2e1afef0d85" name="tests/writeResult/bug0671-003.phpt" role="test" />
<file md5sum="2f29fbdfe9c9df0d86d52822c8d66623" name="tests/writeResult/writeresult-debug-001.phpt" role="test" />
<file md5sum="cca4b70f2d08c782ab85630bc43bad7c" name="tests/writeResult/writeresult-debug-002.phpt" role="test" />
<file md5sum="7a4777eeb06443ee9373e54382de4da5" name="tests/writeResult/writeresult-getErrorReplies-001.phpt" role="test" />
<file md5sum="528005c11553cf65c27292a21c846eed" name="tests/writeResult/writeresult-getdeletedcount-001.phpt" role="test" />
<file md5sum="c387a44a9bbfc5d297a3ed86b97a331d" name="tests/writeResult/writeresult-getdeletedcount-002.phpt" role="test" />
<file md5sum="77194d0db2a6c41f1e449ccebf5bb8c3" name="tests/writeResult/writeresult-getinsertedcount-001.phpt" role="test" />
<file md5sum="a19cb16e3c49c424bfc7526346ade6bc" name="tests/writeResult/writeresult-getinsertedcount-002.phpt" role="test" />
<file md5sum="ba801c202cd4376858f2bb6cbf80dd2a" name="tests/writeResult/writeresult-getmatchedcount-001.phpt" role="test" />
<file md5sum="bab247c6101572ea2265ac9519568da5" name="tests/writeResult/writeresult-getmatchedcount-002.phpt" role="test" />
<file md5sum="5d5e9abd30c4abb7847c1de3419c28c7" name="tests/writeResult/writeresult-getmodifiedcount-001.phpt" role="test" />
<file md5sum="8a181a3fcbe32647901c720d3aed176c" name="tests/writeResult/writeresult-getmodifiedcount-002.phpt" role="test" />
<file md5sum="3b63ddad569b29fa0a6a6efd047807c0" name="tests/writeResult/writeresult-getserver-001.phpt" role="test" />
<file md5sum="7713f25147d7307652fccf53314438b4" name="tests/writeResult/writeresult-getupsertedcount-001.phpt" role="test" />
<file md5sum="c3ac8f7608857b8f1d82b6f04bcdac84" name="tests/writeResult/writeresult-getupsertedcount-002.phpt" role="test" />
<file md5sum="394e1ffea610e9132248ca78a99a4a34" name="tests/writeResult/writeresult-getupsertedids-001.phpt" role="test" />
<file md5sum="1b9fe5f2a6241ff8973cc4d222f9da0a" name="tests/writeResult/writeresult-getupsertedids-002.phpt" role="test" />
<file md5sum="cf82781569a619836ee6f7276a808bb9" name="tests/writeResult/writeresult-getwriteconcernerror-001.phpt" role="test" />
<file md5sum="d5e00a45b430969dc5b0787e9fe8adf2" name="tests/writeResult/writeresult-getwriteconcernerror-002.phpt" role="test" />
<file md5sum="0d2bc8d0be8bd62a0a1c098aa342c936" name="tests/writeResult/writeresult-getwriteerrors-001.phpt" role="test" />
<file md5sum="6c58b57bc400142dc88ce373dacdc1f5" name="tests/writeResult/writeresult-getwriteerrors-002.phpt" role="test" />
<file md5sum="ad5c7f8d6390f4e14ef1f13f945a48eb" name="tests/writeResult/writeresult-isacknowledged-001.phpt" role="test" />
<file md5sum="089e1618e09d5e4ba4b79eb4c1f54ea3" name="tests/writeResult/writeresult_error-001.phpt" role="test" />
<file md5sum="f224d15e15cc2f3789d62447379500d9" name="CONTRIBUTING.md" role="doc" />
<file md5sum="198d0ffaabbd88f77e9b9067b694ca10" name="CREDITS" role="doc" />
<file md5sum="b1e01b26bacfc2232046c90a330332b3" name="LICENSE" role="doc" />
<file md5sum="689288240bbe5442850399ed56daa2a1" name="Makefile.frag" role="src" />
<file md5sum="7d2544e26d9b709c280d498a42cf5177" name="README.md" role="doc" />
<file md5sum="eadbe8ccffa540f5ac53ffc59e36a727" name="THIRD_PARTY_NOTICES" role="doc" />
<file md5sum="0962c850da28d6d16b471cc9e9c976d9" name="Vagrantfile" role="test" />
- <file md5sum="9030eb40f8e73c62a429e156681d1ef5" name="config.m4" role="src" />
+ <file md5sum="001b5ca0cef7246e59c6b450692689b9" name="config.m4" role="src" />
<file md5sum="e10a6fa4aef2a417be06cc30c9db51f1" name="config.w32" role="src" />
- <file md5sum="5870a464ff7b2dd1964e0d661a6525af" name="phongo_version.h" role="src" />
+ <file md5sum="64a9684efb5e9d292d89283ca201023d" name="phongo_version.h" role="src" />
<file md5sum="be0ef9b4dba2cd07730fb5843e8c9ffe" name="php_phongo.c" role="src" />
<file md5sum="94777b5ce41b5b029b994def2333ea9c" name="php_phongo.h" role="src" />
</dir>
</contents>
<dependencies>
<required>
<php>
<min>8.1.0</min>
<max>8.99.99</max>
</php>
<pearinstaller>
<min>1.4.8</min>
</pearinstaller>
</required>
</dependencies>
<providesextension>mongodb</providesextension>
<extsrcrelease>
<configureoption default="no" name="enable-mongodb-developer-flags" prompt="Enable developer flags? (yes/no)" />
<configureoption default="no" name="enable-mongodb-coverage" prompt="Enable code coverage? (yes/no)" />
<configureoption default="no" name="with-mongodb-system-libs" prompt="Use system libraries for libbson, libmongoc, and libmongocrypt? (yes/no)" />
<configureoption default="auto" name="with-mongodb-client-side-encryption" prompt="Enable client-side encryption? (auto/yes/no)" />
<configureoption default="auto" name="with-mongodb-snappy" prompt="Enable Snappy for compression? (auto/yes/no)" />
<configureoption default="auto" name="with-mongodb-zlib" prompt="Enable zlib for compression? (auto/system/bundled/no)" />
<configureoption default="auto" name="with-mongodb-zstd" prompt="Enable zstd for compression? (auto/yes/no)" />
<configureoption default="auto" name="with-mongodb-sasl" prompt="Enable SASL for Kerberos authentication? (auto/cyrus/no)" />
<configureoption default="auto" name="with-mongodb-ssl" prompt="Enable crypto and TLS? (auto/openssl/libressl/darwin/no)" />
<configureoption default="no" name="enable-mongodb-crypto-system-profile" prompt="Use system crypto profile (OpenSSL only)? (yes/no)" />
<configureoption default="bundled" name="with-mongodb-utf8proc" prompt="Use bundled or system utf8proc for SCRAM-SHA-256 SASLprep? (bundled/system)" />
</extsrcrelease>
</package>

File Metadata

Mime Type
text/x-diff
Expires
Fri, Feb 6, 4:15 PM (1 d, 11 h)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
d2/6e/3ff421eb98a4cc25a9eaa3e53db3
Default Alt Text
(1 MB)

Event Timeline