| 
							
							
							
						 |  |  | @@ -1,6 +1,6 @@ | 
		
	
		
			
				|  |  |  |  | /* | 
		
	
		
			
				|  |  |  |  |  *  Catch v2.7.0 | 
		
	
		
			
				|  |  |  |  |  *  Generated: 2019-03-07 21:34:30.252164 | 
		
	
		
			
				|  |  |  |  |  *  Catch v2.7.1 | 
		
	
		
			
				|  |  |  |  |  *  Generated: 2019-04-05 18:22:37.720122 | 
		
	
		
			
				|  |  |  |  |  *  ---------------------------------------------------------- | 
		
	
		
			
				|  |  |  |  |  *  This file has been merged from multiple headers. Please don't edit it directly | 
		
	
		
			
				|  |  |  |  |  *  Copyright (c) 2019 Two Blue Cubes Ltd. All rights reserved. | 
		
	
	
		
			
				
					
					|  |  |  | @@ -15,7 +15,7 @@ | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  | #define CATCH_VERSION_MAJOR 2 | 
		
	
		
			
				|  |  |  |  | #define CATCH_VERSION_MINOR 7 | 
		
	
		
			
				|  |  |  |  | #define CATCH_VERSION_PATCH 0 | 
		
	
		
			
				|  |  |  |  | #define CATCH_VERSION_PATCH 1 | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  | #ifdef __clang__ | 
		
	
		
			
				|  |  |  |  | #    pragma clang system_header | 
		
	
	
		
			
				
					
					|  |  |  | @@ -3687,6 +3687,10 @@ namespace Generators { | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  | #define GENERATE( ... ) \ | 
		
	
		
			
				|  |  |  |  |     Catch::Generators::generate( CATCH_INTERNAL_LINEINFO, [ ]{ using namespace Catch::Generators; return makeGenerators( __VA_ARGS__ ); } ) | 
		
	
		
			
				|  |  |  |  | #define GENERATE_COPY( ... ) \ | 
		
	
		
			
				|  |  |  |  |     Catch::Generators::generate( CATCH_INTERNAL_LINEINFO, [=]{ using namespace Catch::Generators; return makeGenerators( __VA_ARGS__ ); } ) | 
		
	
		
			
				|  |  |  |  | #define GENERATE_REF( ... ) \ | 
		
	
		
			
				|  |  |  |  |     Catch::Generators::generate( CATCH_INTERNAL_LINEINFO, [&]{ using namespace Catch::Generators; return makeGenerators( __VA_ARGS__ ); } ) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  | // end catch_generators.hpp | 
		
	
		
			
				|  |  |  |  | // start catch_generators_generic.hpp | 
		
	
	
		
			
				
					
					|  |  |  | @@ -3849,16 +3853,28 @@ namespace Generators { | 
		
	
		
			
				|  |  |  |  |         } | 
		
	
		
			
				|  |  |  |  |     }; | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |     template <typename T, typename U, typename Func> | 
		
	
		
			
				|  |  |  |  | #if defined(__cpp_lib_is_invocable) && __cpp_lib_is_invocable >= 201703 | 
		
	
		
			
				|  |  |  |  |     // std::result_of is deprecated in C++17 and removed in C++20. Hence, it is | 
		
	
		
			
				|  |  |  |  |     // replaced with std::invoke_result here. Also *_t format is preferred over | 
		
	
		
			
				|  |  |  |  |     // typename *::type format. | 
		
	
		
			
				|  |  |  |  |     template <typename Func, typename U> | 
		
	
		
			
				|  |  |  |  |     using MapFunctionReturnType = std::remove_reference_t<std::remove_cv_t<std::invoke_result_t<Func, U>>>; | 
		
	
		
			
				|  |  |  |  | #else | 
		
	
		
			
				|  |  |  |  |     template <typename Func, typename U> | 
		
	
		
			
				|  |  |  |  |     using MapFunctionReturnType = typename std::remove_reference<typename std::remove_cv<typename std::result_of<Func(U)>::type>::type>::type; | 
		
	
		
			
				|  |  |  |  | #endif | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |     template <typename Func, typename U, typename T = MapFunctionReturnType<Func, U>> | 
		
	
		
			
				|  |  |  |  |     GeneratorWrapper<T> map(Func&& function, GeneratorWrapper<U>&& generator) { | 
		
	
		
			
				|  |  |  |  |         return GeneratorWrapper<T>( | 
		
	
		
			
				|  |  |  |  |             pf::make_unique<MapGenerator<T, U, Func>>(std::forward<Func>(function), std::move(generator)) | 
		
	
		
			
				|  |  |  |  |         ); | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  |     template <typename T, typename Func> | 
		
	
		
			
				|  |  |  |  |     GeneratorWrapper<T> map(Func&& function, GeneratorWrapper<T>&& generator) { | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |     template <typename T, typename U, typename Func> | 
		
	
		
			
				|  |  |  |  |     GeneratorWrapper<T> map(Func&& function, GeneratorWrapper<U>&& generator) { | 
		
	
		
			
				|  |  |  |  |         return GeneratorWrapper<T>( | 
		
	
		
			
				|  |  |  |  |             pf::make_unique<MapGenerator<T, T, Func>>(std::forward<Func>(function), std::move(generator)) | 
		
	
		
			
				|  |  |  |  |             pf::make_unique<MapGenerator<T, U, Func>>(std::forward<Func>(function), std::move(generator)) | 
		
	
		
			
				|  |  |  |  |         ); | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  |  | 
		
	
	
		
			
				
					
					|  |  |  | @@ -4022,6 +4038,7 @@ namespace Catch { | 
		
	
		
			
				|  |  |  |  |         virtual ShowDurations::OrNot showDurations() const = 0; | 
		
	
		
			
				|  |  |  |  |         virtual TestSpec const& testSpec() const = 0; | 
		
	
		
			
				|  |  |  |  |         virtual bool hasTestFilters() const = 0; | 
		
	
		
			
				|  |  |  |  |         virtual std::vector<std::string> const& getTestsOrTags() const = 0; | 
		
	
		
			
				|  |  |  |  |         virtual RunTests::InWhatOrder runOrder() const = 0; | 
		
	
		
			
				|  |  |  |  |         virtual unsigned int rngSeed() const = 0; | 
		
	
		
			
				|  |  |  |  |         virtual int benchmarkResolutionMultiple() const = 0; | 
		
	
	
		
			
				
					
					|  |  |  | @@ -4352,7 +4369,7 @@ namespace Catch { | 
		
	
		
			
				|  |  |  |  |                     arcSafeRelease( m_substr ); | 
		
	
		
			
				|  |  |  |  |                 } | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |                 bool match( NSString* arg ) const override { | 
		
	
		
			
				|  |  |  |  |                 bool match( NSString* const& str ) const override { | 
		
	
		
			
				|  |  |  |  |                     return false; | 
		
	
		
			
				|  |  |  |  |                 } | 
		
	
		
			
				|  |  |  |  |  | 
		
	
	
		
			
				
					
					|  |  |  | @@ -4362,7 +4379,7 @@ namespace Catch { | 
		
	
		
			
				|  |  |  |  |             struct Equals : StringHolder { | 
		
	
		
			
				|  |  |  |  |                 Equals( NSString* substr ) : StringHolder( substr ){} | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |                 bool match( NSString* str ) const override { | 
		
	
		
			
				|  |  |  |  |                 bool match( NSString* const& str ) const override { | 
		
	
		
			
				|  |  |  |  |                     return  (str != nil || m_substr == nil ) && | 
		
	
		
			
				|  |  |  |  |                             [str isEqualToString:m_substr]; | 
		
	
		
			
				|  |  |  |  |                 } | 
		
	
	
		
			
				
					
					|  |  |  | @@ -4375,7 +4392,7 @@ namespace Catch { | 
		
	
		
			
				|  |  |  |  |             struct Contains : StringHolder { | 
		
	
		
			
				|  |  |  |  |                 Contains( NSString* substr ) : StringHolder( substr ){} | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |                 bool match( NSString* str ) const { | 
		
	
		
			
				|  |  |  |  |                 bool match( NSString* const& str ) const override { | 
		
	
		
			
				|  |  |  |  |                     return  (str != nil || m_substr == nil ) && | 
		
	
		
			
				|  |  |  |  |                             [str rangeOfString:m_substr].location != NSNotFound; | 
		
	
		
			
				|  |  |  |  |                 } | 
		
	
	
		
			
				
					
					|  |  |  | @@ -4388,7 +4405,7 @@ namespace Catch { | 
		
	
		
			
				|  |  |  |  |             struct StartsWith : StringHolder { | 
		
	
		
			
				|  |  |  |  |                 StartsWith( NSString* substr ) : StringHolder( substr ){} | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |                 bool match( NSString* str ) const override { | 
		
	
		
			
				|  |  |  |  |                 bool match( NSString* const& str ) const override { | 
		
	
		
			
				|  |  |  |  |                     return  (str != nil || m_substr == nil ) && | 
		
	
		
			
				|  |  |  |  |                             [str rangeOfString:m_substr].location == 0; | 
		
	
		
			
				|  |  |  |  |                 } | 
		
	
	
		
			
				
					
					|  |  |  | @@ -4400,7 +4417,7 @@ namespace Catch { | 
		
	
		
			
				|  |  |  |  |             struct EndsWith : StringHolder { | 
		
	
		
			
				|  |  |  |  |                 EndsWith( NSString* substr ) : StringHolder( substr ){} | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |                 bool match( NSString* str ) const override { | 
		
	
		
			
				|  |  |  |  |                 bool match( NSString* const& str ) const override { | 
		
	
		
			
				|  |  |  |  |                     return  (str != nil || m_substr == nil ) && | 
		
	
		
			
				|  |  |  |  |                             [str rangeOfString:m_substr].location == [str length] - [m_substr length]; | 
		
	
		
			
				|  |  |  |  |                 } | 
		
	
	
		
			
				
					
					|  |  |  | @@ -4708,7 +4725,7 @@ namespace Catch { | 
		
	
		
			
				|  |  |  |  |         std::string getProcessName() const; | 
		
	
		
			
				|  |  |  |  |         std::string const& getReporterName() const; | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         std::vector<std::string> const& getTestsOrTags() const; | 
		
	
		
			
				|  |  |  |  |         std::vector<std::string> const& getTestsOrTags() const override; | 
		
	
		
			
				|  |  |  |  |         std::vector<std::string> const& getSectionsToRun() const override; | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         virtual TestSpec const& testSpec() const override; | 
		
	
	
		
			
				
					
					|  |  |  | @@ -5082,6 +5099,8 @@ namespace Catch { | 
		
	
		
			
				|  |  |  |  |     // Returns double formatted as %.3f (format expected on output) | 
		
	
		
			
				|  |  |  |  |     std::string getFormattedDuration( double duration ); | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |     std::string serializeFilters( std::vector<std::string> const& container ); | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |     template<typename DerivedT> | 
		
	
		
			
				|  |  |  |  |     struct StreamingReporterBase : IStreamingReporter { | 
		
	
		
			
				|  |  |  |  |  | 
		
	
	
		
			
				
					
					|  |  |  | @@ -5109,6 +5128,7 @@ namespace Catch { | 
		
	
		
			
				|  |  |  |  |         void testRunStarting(TestRunInfo const& _testRunInfo) override { | 
		
	
		
			
				|  |  |  |  |             currentTestRunInfo = _testRunInfo; | 
		
	
		
			
				|  |  |  |  |         } | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         void testGroupStarting(GroupInfo const& _groupInfo) override { | 
		
	
		
			
				|  |  |  |  |             currentGroupInfo = _groupInfo; | 
		
	
		
			
				|  |  |  |  |         } | 
		
	
	
		
			
				
					
					|  |  |  | @@ -5521,7 +5541,7 @@ namespace Catch { | 
		
	
		
			
				|  |  |  |  |         void testCaseEnded(TestCaseStats const& _testCaseStats) override; | 
		
	
		
			
				|  |  |  |  |         void testGroupEnded(TestGroupStats const& _testGroupStats) override; | 
		
	
		
			
				|  |  |  |  |         void testRunEnded(TestRunStats const& _testRunStats) override; | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         void testRunStarting(TestRunInfo const& _testRunInfo) override; | 
		
	
		
			
				|  |  |  |  |     private: | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         void lazyPrint(); | 
		
	
	
		
			
				
					
					|  |  |  | @@ -5543,6 +5563,7 @@ namespace Catch { | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         void printTotalsDivider(Totals const& totals); | 
		
	
		
			
				|  |  |  |  |         void printSummaryDivider(); | 
		
	
		
			
				|  |  |  |  |         void printTestFilters(); | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |     private: | 
		
	
		
			
				|  |  |  |  |         bool m_headerPrinted = false; | 
		
	
	
		
			
				
					
					|  |  |  | @@ -8660,10 +8681,10 @@ namespace Catch { | 
		
	
		
			
				|  |  |  |  |     // Windows can easily distinguish between SO and SigSegV, | 
		
	
		
			
				|  |  |  |  |     // but SigInt, SigTerm, etc are handled differently. | 
		
	
		
			
				|  |  |  |  |     static SignalDefs signalDefs[] = { | 
		
	
		
			
				|  |  |  |  |         { EXCEPTION_ILLEGAL_INSTRUCTION,  "SIGILL - Illegal instruction signal" }, | 
		
	
		
			
				|  |  |  |  |         { EXCEPTION_STACK_OVERFLOW, "SIGSEGV - Stack overflow" }, | 
		
	
		
			
				|  |  |  |  |         { EXCEPTION_ACCESS_VIOLATION, "SIGSEGV - Segmentation violation signal" }, | 
		
	
		
			
				|  |  |  |  |         { EXCEPTION_INT_DIVIDE_BY_ZERO, "Divide by zero error" }, | 
		
	
		
			
				|  |  |  |  |         { static_cast<DWORD>(EXCEPTION_ILLEGAL_INSTRUCTION),  "SIGILL - Illegal instruction signal" }, | 
		
	
		
			
				|  |  |  |  |         { static_cast<DWORD>(EXCEPTION_STACK_OVERFLOW), "SIGSEGV - Stack overflow" }, | 
		
	
		
			
				|  |  |  |  |         { static_cast<DWORD>(EXCEPTION_ACCESS_VIOLATION), "SIGSEGV - Segmentation violation signal" }, | 
		
	
		
			
				|  |  |  |  |         { static_cast<DWORD>(EXCEPTION_INT_DIVIDE_BY_ZERO), "Divide by zero error" }, | 
		
	
		
			
				|  |  |  |  |     }; | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |     LONG CALLBACK FatalConditionHandler::handleVectoredException(PEXCEPTION_POINTERS ExceptionInfo) { | 
		
	
	
		
			
				
					
					|  |  |  | @@ -11657,6 +11678,12 @@ namespace Catch { | 
		
	
		
			
				|  |  |  |  |                     else if( prop == TestCaseInfo::None ) | 
		
	
		
			
				|  |  |  |  |                         enforceNotReservedTag( tag, _lineInfo ); | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |                     // Merged hide tags like `[.approvals]` should be added as | 
		
	
		
			
				|  |  |  |  |                     // `[.][approvals]`. The `[.]` is added at later point, so | 
		
	
		
			
				|  |  |  |  |                     // we only strip the prefix | 
		
	
		
			
				|  |  |  |  |                     if (startsWith(tag, '.') && tag.size() > 1) { | 
		
	
		
			
				|  |  |  |  |                         tag.erase(0, 1); | 
		
	
		
			
				|  |  |  |  |                     } | 
		
	
		
			
				|  |  |  |  |                     tags.push_back( tag ); | 
		
	
		
			
				|  |  |  |  |                     tag.clear(); | 
		
	
		
			
				|  |  |  |  |                     inTag = false; | 
		
	
	
		
			
				
					
					|  |  |  | @@ -12665,7 +12692,7 @@ namespace Catch { | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |     Version const& libraryVersion() { | 
		
	
		
			
				|  |  |  |  |         static Version version( 2, 7, 0, "", 0 ); | 
		
	
		
			
				|  |  |  |  |         static Version version( 2, 7, 1, "", 0 ); | 
		
	
		
			
				|  |  |  |  |         return version; | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  |  | 
		
	
	
		
			
				
					
					|  |  |  | @@ -13022,6 +13049,21 @@ namespace Catch { | 
		
	
		
			
				|  |  |  |  |         return std::string(buffer); | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |     std::string serializeFilters( std::vector<std::string> const& container ) { | 
		
	
		
			
				|  |  |  |  |         ReusableStringStream oss; | 
		
	
		
			
				|  |  |  |  |         bool first = true; | 
		
	
		
			
				|  |  |  |  |         for (auto&& filter : container) | 
		
	
		
			
				|  |  |  |  |         { | 
		
	
		
			
				|  |  |  |  |             if (!first) | 
		
	
		
			
				|  |  |  |  |                 oss << ' '; | 
		
	
		
			
				|  |  |  |  |             else | 
		
	
		
			
				|  |  |  |  |                 first = false; | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |             oss << filter; | 
		
	
		
			
				|  |  |  |  |         } | 
		
	
		
			
				|  |  |  |  |         return oss.str(); | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |     TestEventListenerBase::TestEventListenerBase(ReporterConfig const & _config) | 
		
	
		
			
				|  |  |  |  |         :StreamingReporterBase(_config) {} | 
		
	
		
			
				|  |  |  |  |  | 
		
	
	
		
			
				
					
					|  |  |  | @@ -13746,6 +13788,10 @@ void ConsoleReporter::testRunEnded(TestRunStats const& _testRunStats) { | 
		
	
		
			
				|  |  |  |  |     stream << std::endl; | 
		
	
		
			
				|  |  |  |  |     StreamingReporterBase::testRunEnded(_testRunStats); | 
		
	
		
			
				|  |  |  |  | } | 
		
	
		
			
				|  |  |  |  | void ConsoleReporter::testRunStarting(TestRunInfo const& _testInfo) { | 
		
	
		
			
				|  |  |  |  |     StreamingReporterBase::testRunStarting(_testInfo); | 
		
	
		
			
				|  |  |  |  |     printTestFilters(); | 
		
	
		
			
				|  |  |  |  | } | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  | void ConsoleReporter::lazyPrint() { | 
		
	
		
			
				|  |  |  |  |  | 
		
	
	
		
			
				
					
					|  |  |  | @@ -13927,6 +13973,11 @@ void ConsoleReporter::printSummaryDivider() { | 
		
	
		
			
				|  |  |  |  |     stream << getLineOfChars<'-'>() << '\n'; | 
		
	
		
			
				|  |  |  |  | } | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  | void ConsoleReporter::printTestFilters() { | 
		
	
		
			
				|  |  |  |  |     if (m_config->testSpec().hasFilters()) | 
		
	
		
			
				|  |  |  |  |         stream << Colour(Colour::BrightYellow) << "Filters: " << serializeFilters( m_config->getTestsOrTags() ) << '\n'; | 
		
	
		
			
				|  |  |  |  | } | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  | CATCH_REGISTER_REPORTER("console", ConsoleReporter) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  | } // end namespace Catch | 
		
	
	
		
			
				
					
					|  |  |  | @@ -14000,8 +14051,17 @@ namespace Catch { | 
		
	
		
			
				|  |  |  |  |     void JunitReporter::testRunStarting( TestRunInfo const& runInfo )  { | 
		
	
		
			
				|  |  |  |  |         CumulativeReporterBase::testRunStarting( runInfo ); | 
		
	
		
			
				|  |  |  |  |         xml.startElement( "testsuites" ); | 
		
	
		
			
				|  |  |  |  |         if( m_config->rngSeed() != 0 ) { | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         if ( m_config->hasTestFilters() || m_config->rngSeed() != 0 ) | 
		
	
		
			
				|  |  |  |  |             xml.startElement("properties"); | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         if ( m_config->hasTestFilters() ) { | 
		
	
		
			
				|  |  |  |  |             xml.scopedElement( "property" ) | 
		
	
		
			
				|  |  |  |  |                 .writeAttribute( "name" , "filters" ) | 
		
	
		
			
				|  |  |  |  |                 .writeAttribute( "value" , serializeFilters( m_config->getTestsOrTags() ) ); | 
		
	
		
			
				|  |  |  |  |         } | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         if( m_config->rngSeed() != 0 ) { | 
		
	
		
			
				|  |  |  |  |             xml.scopedElement( "property" ) | 
		
	
		
			
				|  |  |  |  |                 .writeAttribute( "name", "random-seed" ) | 
		
	
		
			
				|  |  |  |  |                 .writeAttribute( "value", m_config->rngSeed() ); | 
		
	
	
		
			
				
					
					|  |  |  | @@ -14357,6 +14417,8 @@ namespace Catch { | 
		
	
		
			
				|  |  |  |  |         m_xml.startElement( "Catch" ); | 
		
	
		
			
				|  |  |  |  |         if( !m_config->name().empty() ) | 
		
	
		
			
				|  |  |  |  |             m_xml.writeAttribute( "name", m_config->name() ); | 
		
	
		
			
				|  |  |  |  |         if (m_config->testSpec().hasFilters()) | 
		
	
		
			
				|  |  |  |  |             m_xml.writeAttribute( "filters", serializeFilters( m_config->getTestsOrTags() ) ); | 
		
	
		
			
				|  |  |  |  |         if( m_config->rngSeed() != 0 ) | 
		
	
		
			
				|  |  |  |  |             m_xml.scopedElement( "Randomness" ) | 
		
	
		
			
				|  |  |  |  |                 .writeAttribute( "seed", m_config->rngSeed() ); | 
		
	
	
		
			
				
					
					|  |  |  |   |