From 7269a3501a14997c428821c8422bf693747cbb3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20S=C3=A1nchez=20L=C3=B3pez?= <1175054+carlossanlop@users.noreply.github.com> Date: Tue, 13 Aug 2024 16:14:53 -0700 Subject: [PATCH 01/23] Move System.Data.SqlClient source code to src folder --- Directory.Build.props | 4 + MaintenancePackages.sln | 147 ++- migrated/Directory.Build.props | 13 - migrated/System.Data.SqlClient.sln | 173 --- migrated/pkg/System.Data.SqlClient.pkgproj | 31 - migrated/ref/Configurations.props | 14 - .../ref/System.Data.SqlClient.Forwards.cs | 31 - migrated/ref/System.Data.SqlClient.Manual.cs | 25 - .../ref/System.Data.SqlClient.NetCoreApp.cs | 57 - migrated/ref/System.Data.SqlClient.cs | 842 ------------- migrated/ref/System.Data.SqlClient.csproj | 42 - migrated/src/System.Data.SqlClient.csproj | 587 --------- .../SQL/UdtTest/UDTs/Address/Address.csproj | 9 - .../SQL/UdtTest/UDTs/Circle/Circle.csproj | 10 - .../SQL/UdtTest/UDTs/Shapes/Shapes.csproj | 10 - .../UdtTest/UDTs/Utf8String/Utf8String.csproj | 9 - migrated/tests/Tools/TDS/TDS/TDS.csproj | 106 -- .../Windows/Kernel32/Interop.FileTypes.cs | 17 + .../Interop.GetFileType_SafeHandle.cs | 15 + .../Kernel32/Interop.SetThreadErrorMode.cs | 16 + .../Win32/SafeHandles/SafeLibraryHandle.cs | 16 + .../CodeAnalysis/NullableAttributes.cs | 128 ++ .../CoreLib/System/IO/PathHelper.Windows.cs | 254 ++++ .../CoreLib/System/Text/ValueStringBuilder.cs | 300 +++++ .../System/Threading/Tasks/TaskToApm.cs | 190 +++ .../src/Interop/Unix/Interop.Libraries.cs | 18 + .../Interop.GssApiException.cs | 92 ++ .../Interop.GssBuffer.cs | 76 ++ .../Interop.NetSecurityNative.Extended.cs | 0 ...terop.NetSecurityNative.IsNtlmInstalled.cs | 15 + .../Interop.NetSecurityNative.cs | 217 ++++ .../Windows/Crypt32/Interop.certificates.cs | 26 + .../Crypt32/Interop.certificates_types.cs | 127 ++ .../src/Interop/Windows/Interop.Errors.cs | 89 ++ .../src/Interop/Windows/Interop.Libraries.cs | 41 + .../Windows/Interop.OBJECT_ATTRIBUTES.cs | 103 ++ .../Interop/Windows/Interop.UNICODE_STRING.cs | 26 + .../Windows/Kernel32/Interop.CTL_CODE.cs | 32 + .../Kernel32/Interop.DeviceIoControl.cs | 26 + .../Kernel32/Interop.FileOperations.cs | 28 + .../Windows/Kernel32/Interop.FreeLibrary.cs | 17 + .../Kernel32/Interop.GetProcAddress.cs | 20 + .../Kernel32/Interop.IoControlCodeAccess.cs | 39 + .../Kernel32/Interop.IoControlTransferType.cs | 43 + .../Windows/Kernel32/Interop.LoadLibraryEx.cs | 20 + .../NtDll/Interop.FILE_FULL_EA_INFORMATION.cs | 41 + .../Windows/NtDll/Interop.IO_STATUS_BLOCK.cs | 47 + .../Windows/NtDll/Interop.NtCreateFile.cs | 492 ++++++++ .../NtDll/Interop.RtlNtStatusToDosError.cs | 17 + .../SChannel/Interop.SECURITY_STATUS.cs | 361 ++++++ ...terop.SecPkgContext_ApplicationProtocol.cs | 44 + .../SChannel/SecPkgContext_CipherInfo.cs | 32 + .../SChannel/SecPkgContext_ConnectionInfo.cs | 21 + .../Interop/Windows/SspiCli/Interop.SSPI.cs | 381 ++++++ .../Windows/SspiCli/NegotiationInfoClass.cs | 57 + .../Interop/Windows/SspiCli/SSPIAuthType.cs | 190 +++ .../Windows/SspiCli/SSPISecureChannelType.cs | 145 +++ .../Interop/Windows/SspiCli/SSPIWrapper.cs | 550 +++++++++ .../Windows/SspiCli/SafeDeleteContext.cs | 55 + .../Windows/SspiCli/SecPkgContext_Bindings.cs | 16 + .../SspiCli/SecPkgContext_NegotiationInfoW.cs | 16 + .../Windows/SspiCli/SecPkgContext_Sizes.cs | 18 + .../SspiCli/SecPkgContext_StreamSizes.cs | 19 + .../Windows/SspiCli/SecurityPackageInfo.cs | 20 + .../Windows/SspiCli/SecuritySafeHandles.cs | 1066 +++++++++++++++++ .../Win32/SafeHandles/GssSafeHandles.cs | 164 +++ .../Generic/BidirectionalDictionary.cs | 61 + .../System/Data/Common/AdapterUtil.Drivers.cs | 35 + .../src/System/Data/Common/AdapterUtil.cs | 502 ++++++++ .../Data/Common/BasicFieldNameLookup.cs | 142 +++ .../Data/Common/DbConnectionOptions.Common.cs | 654 ++++++++++ .../System/Data/Common/DbConnectionPoolKey.cs | 58 + .../src/System/Data/Common/FieldNameLookup.cs | 49 + .../System/Data/Common/MultipartIdentifier.cs | 295 +++++ .../src/System/Data/Common/NameValuePair.cs | 49 + .../src/System/Data/Common/SQLResource.cs | 77 ++ .../Data/ProviderBase/DbConnectionClosed.cs | 138 +++ .../Data/ProviderBase/DbConnectionFactory.cs | 427 +++++++ .../Data/ProviderBase/DbConnectionInternal.cs | 434 +++++++ .../ProviderBase/DbConnectionPoolGroup.cs | 286 +++++ .../Data/ProviderBase/DbMetaDataFactory.cs | 563 +++++++++ .../ProviderBase/DbReferenceCollection.cs | 286 +++++ .../System/Data/ProviderBase/TimeoutTimer.cs | 170 +++ .../System/Net/ContextFlagsAdapterPal.Unix.cs | 86 ++ .../Net/ContextFlagsAdapterPal.Windows.cs | 77 ++ src/Common/src/System/Net/ContextFlagsPal.cs | 35 + .../DebugCriticalHandleMinusOneIsInvalid.cs | 40 + src/Common/src/System/Net/DebugSafeHandle.cs | 50 + .../src/System/Net/InternalException.cs | 29 + .../System/Net/Logging/DebugThreadTracking.cs | 157 +++ .../Net/Logging/NetEventSource.Common.cs | 739 ++++++++++++ .../src/System/Net/NegotiationInfoClass.cs | 16 + .../Net/Security/NegotiateStreamPal.Unix.cs | 613 ++++++++++ .../Security/NegotiateStreamPal.Windows.cs | 289 +++++ .../NetEventSource.Security.Windows.cs | 90 ++ .../Net/Security/NetEventSource.Security.cs | 36 + .../Net/Security/SecurityBuffer.Windows.cs | 91 ++ .../Security/SecurityBufferType.Windows.cs | 28 + .../Security/SecurityContextTokenHandle.cs | 41 + .../Net/Security/Unix/SafeDeleteContext.cs | 46 + .../Security/Unix/SafeDeleteNegoContext.cs | 85 ++ .../Net/Security/Unix/SafeFreeCredentials.cs | 74 ++ .../Security/Unix/SafeFreeNegoCredentials.cs | 89 ++ .../Net/Security/Unix/SecChannelBindings.cs | 20 + .../Net/SecurityStatusAdapterPal.Windows.cs | 104 ++ .../src/System/Net/SecurityStatusPal.cs | 74 ++ .../Collections/DictionaryExtensions.cs | 20 + .../Common/Interop/Unix/Interop.Libraries.cs | 18 + .../Interop.NetSecurityNative.Extended.cs | 27 + .../src/Configurations.props | 0 .../src/GenerateThisAssemblyCs.targets | 0 .../Interop/SNINativeMethodWrapper.Common.cs | 0 .../Interop/SNINativeMethodWrapper.Unix.cs | 0 .../Interop/SNINativeMethodWrapper.Windows.cs | 0 .../src/MatchingRefApiCompatBaseline.txt | 0 .../SqlServer/Server/ExtendedClrTypeCode.cs | 0 .../SqlServer/Server/ITypedGetters.cs | 0 .../SqlServer/Server/ITypedGettersV3.cs | 0 .../SqlServer/Server/ITypedSetters.cs | 0 .../SqlServer/Server/ITypedSettersV3.cs | 0 .../SqlServer/Server/MemoryRecordBuffer.cs | 0 .../SqlServer/Server/MetadataUtilsSmi.cs | 0 .../SqlServer/Server/SmiEventSink.cs | 0 .../SqlServer/Server/SmiEventSink_Default.cs | 0 .../SqlServer/Server/SmiGettersStream.cs | 0 .../Microsoft/SqlServer/Server/SmiMetaData.cs | 0 .../SqlServer/Server/SmiMetaDataProperty.cs | 0 .../SqlServer/Server/SmiRecordBuffer.cs | 0 .../SqlServer/Server/SmiSettersStream.cs | 0 .../SqlServer/Server/SmiTypedGetterSetter.cs | 0 .../SqlServer/Server/SmiXetterAccessMap.cs | 0 .../SqlServer/Server/SmiXetterTypeCode.cs | 0 .../SqlServer/Server/SqlDataRecord.cs | 0 .../SqlServer/Server/SqlFacetAttribute.cs | 0 .../SqlServer/Server/SqlRecordBuffer.cs | 0 .../SqlServer/Server/ValueUtilsSmi.cs | 0 ...AnalyzerExceptionList.analyzerdata.windows | 0 .../src/Resources/Strings.resx | 0 .../System.Data.SqlClient.SqlMetaData.xml | 0 .../src/System.Data.SqlClient.TypeForwards.cs | 0 .../src/System.Data.SqlClient.csproj | 661 +++++++++- .../System/Data/Common/ActivityCorrelator.cs | 0 .../Data/Common/AdapterUtil.SqlClient.cs | 0 .../System/Data/Common/DbConnectionOptions.cs | 0 .../DbConnectionStringCommon.NetCoreApp.cs | 0 .../Data/Common/DbConnectionStringCommon.cs | 0 .../src/System/Data/Common/SR.cs | 0 .../src/System/Data/DataException.cs | 0 .../System/Data/OperationAbortedException.cs | 0 .../Data/ProviderBase/DbConnectionClosed.cs | 0 .../Data/ProviderBase/DbConnectionFactory.cs | 0 .../Data/ProviderBase/DbConnectionInternal.cs | 0 .../DbConnectionPool.NetCoreApp.cs | 0 .../Data/ProviderBase/DbConnectionPool.cs | 0 .../DbConnectionPoolGroupProviderInfo.cs | 0 .../DbConnectionPoolIdentity.Unix.cs | 0 .../DbConnectionPoolIdentity.Windows.cs | 0 .../ProviderBase/DbConnectionPoolIdentity.cs | 0 .../ProviderBase/DbConnectionPoolOptions.cs | 0 .../DbConnectionPoolProviderInfo.cs | 0 .../src/System/Data/Sql/IBinarySerialize.cs | 0 .../System/Data/Sql/InvalidUdtException.cs | 0 .../System/Data/Sql/SqlFunctionAttribute.cs | 0 .../src/System/Data/Sql/SqlMetaData.cs | 0 .../src/System/Data/Sql/SqlMethodAttribute.cs | 0 .../src/System/Data/Sql/SqlNorm.cs | 0 .../System/Data/Sql/SqlNotificationRequest.cs | 0 .../src/System/Data/Sql/SqlSer.cs | 0 .../Sql/SqlUserDefinedAggregateAttribute.cs | 0 .../Data/Sql/SqlUserDefinedTypeAttribute.cs | 0 .../Data/SqlClient/ApplicationIntent.cs | 0 .../Data/SqlClient/LocalDBAPI.Common.cs | 0 .../System/Data/SqlClient/LocalDBAPI.Unix.cs | 0 .../Data/SqlClient/LocalDBAPI.Windows.cs | 0 .../src/System/Data/SqlClient/LocalDBAPI.cs | 0 .../System/Data/SqlClient/LocalDBAPI.uap.cs | 0 .../Data/SqlClient/OnChangedEventHandler.cs | 0 .../Data/SqlClient/PacketHandle.Unix.cs | 0 .../Data/SqlClient/PacketHandle.Windows.cs | 0 .../Data/SqlClient/ParameterPeekAheadValue.cs | 0 .../Data/SqlClient/PoolBlockingPeriod.cs | 0 .../Data/SqlClient/RowsCopiedEventArgs.cs | 0 .../Data/SqlClient/RowsCopiedEventHandler.cs | 0 .../System/Data/SqlClient/SNI/LocalDB.Unix.cs | 0 .../Data/SqlClient/SNI/LocalDB.Windows.cs | 0 .../System/Data/SqlClient/SNI/LocalDB.uap.cs | 0 .../System/Data/SqlClient/SNI/SNICommon.cs | 0 .../src/System/Data/SqlClient/SNI/SNIError.cs | 0 .../System/Data/SqlClient/SNI/SNIHandle.cs | 0 .../Data/SqlClient/SNI/SNILoadHandle.cs | 0 .../Data/SqlClient/SNI/SNIMarsConnection.cs | 0 .../Data/SqlClient/SNI/SNIMarsHandle.cs | 0 .../Data/SqlClient/SNI/SNIMarsQueuedPacket.cs | 0 .../System/Data/SqlClient/SNI/SNINpHandle.cs | 0 .../System/Data/SqlClient/SNI/SNIPacket.cs | 0 .../src/System/Data/SqlClient/SNI/SNIProxy.cs | 0 .../Data/SqlClient/SNI/SNITcpHandle.Unix.cs | 0 .../SqlClient/SNI/SNITcpHandle.Windows.cs | 0 .../System/Data/SqlClient/SNI/SNITcpHandle.cs | 0 .../src/System/Data/SqlClient/SNI/SSRP.cs | 0 .../Data/SqlClient/SNI/SslOverTdsStream.cs | 0 .../SqlClient/SNI/SspiClientContextStatus.cs | 0 .../Data/SqlClient/SessionHandle.Unix.cs | 0 .../Data/SqlClient/SessionHandle.Windows.cs | 0 .../src/System/Data/SqlClient/SortOrder.cs | 0 .../src/System/Data/SqlClient/SqlBuffer.cs | 0 .../src/System/Data/SqlClient/SqlBulkCopy.cs | 0 .../SqlClient/SqlBulkCopyColumnMapping.cs | 0 .../SqlBulkCopyColumnMappingCollection.cs | 0 .../Data/SqlClient/SqlBulkCopyOptions.cs | 0 .../System/Data/SqlClient/SqlCachedBuffer.cs | 0 .../SqlClientDiagnosticListenerExtensions.cs | 0 .../System/Data/SqlClient/SqlClientFactory.cs | 0 .../SqlClientMetaDataCollectionNames.cs | 0 .../src/System/Data/SqlClient/SqlCommand.cs | 0 .../Data/SqlClient/SqlCommandBuilder.cs | 0 .../System/Data/SqlClient/SqlCommandSet.cs | 0 .../System/Data/SqlClient/SqlConnection.cs | 0 .../Data/SqlClient/SqlConnectionFactory.cs | 0 .../Data/SqlClient/SqlConnectionHelper.cs | 0 .../SqlConnectionPoolGroupProviderInfo.cs | 0 .../Data/SqlClient/SqlConnectionPoolKey.cs | 0 .../SqlConnectionPoolProviderInfo.cs | 0 .../SqlConnectionString.NetCoreApp.cs | 0 .../Data/SqlClient/SqlConnectionString.cs | 0 .../SqlConnectionStringBuilder.NetCoreApp.cs | 0 .../SqlClient/SqlConnectionStringBuilder.cs | 0 .../SqlConnectionTimeoutErrorInternal.cs | 0 .../System/Data/SqlClient/SqlCredential.cs | 0 .../System/Data/SqlClient/SqlDataAdapter.cs | 0 .../System/Data/SqlClient/SqlDataReader.cs | 0 .../src/System/Data/SqlClient/SqlDbColumn.cs | 0 .../SqlDelegatedTransaction.NetCoreApp.cs | 0 .../SqlDelegatedTransaction.NetStandard.cs | 0 .../Data/SqlClient/SqlDelegatedTransaction.cs | 0 .../System/Data/SqlClient/SqlDependency.cs | 0 .../Data/SqlClient/SqlDependencyListener.cs | 0 .../SqlClient/SqlDependencyUtils.AppDomain.cs | 0 .../Data/SqlClient/SqlDependencyUtils.cs | 0 .../src/System/Data/SqlClient/SqlEnums.cs | 0 .../src/System/Data/SqlClient/SqlError.cs | 0 .../Data/SqlClient/SqlErrorCollection.cs | 0 .../src/System/Data/SqlClient/SqlException.cs | 0 .../SqlClient/SqlFileStream.Unsupported.cs | 0 .../Data/SqlClient/SqlFileStream.Windows.cs | 0 .../Data/SqlClient/SqlInfoMessageEvent.cs | 0 .../SqlClient/SqlInfoMessageEventHandler.cs | 0 .../Data/SqlClient/SqlInternalConnection.cs | 0 .../SqlClient/SqlInternalConnectionTds.cs | 0 .../Data/SqlClient/SqlInternalTransaction.cs | 0 .../Data/SqlClient/SqlMetadataFactory.cs | 0 .../SqlClient/SqlNotificationEventArgs.cs | 0 .../Data/SqlClient/SqlNotificationInfo.cs | 0 .../Data/SqlClient/SqlNotificationSource.cs | 0 .../Data/SqlClient/SqlNotificationType.cs | 0 .../src/System/Data/SqlClient/SqlParameter.cs | 0 .../Data/SqlClient/SqlParameterCollection.cs | 0 .../SqlClient/SqlParameterCollectionHelper.cs | 0 .../Data/SqlClient/SqlParameterHelper.cs | 0 .../Data/SqlClient/SqlReferenceCollection.cs | 0 .../Data/SqlClient/SqlRowUpdatedEvent.cs | 0 .../SqlClient/SqlRowUpdatedEventHandler.cs | 0 .../Data/SqlClient/SqlRowUpdatingEvent.cs | 0 .../SqlClient/SqlRowUpdatingEventHandler.cs | 0 .../Data/SqlClient/SqlSequentialStream.cs | 0 .../Data/SqlClient/SqlSequentialTextReader.cs | 0 .../System/Data/SqlClient/SqlStatistics.cs | 0 .../src/System/Data/SqlClient/SqlStream.cs | 0 .../System/Data/SqlClient/SqlTransaction.cs | 0 .../src/System/Data/SqlClient/SqlUdtInfo.cs | 0 .../src/System/Data/SqlClient/SqlUtil.cs | 0 .../src/System/Data/SqlClient/TdsEnums.cs | 0 .../Data/SqlClient/TdsParameterSetter.cs | 0 .../Data/SqlClient/TdsParser.NetCoreApp.cs | 0 .../Data/SqlClient/TdsParser.NetStandard.cs | 0 .../SqlClient/TdsParser.RegisterEncoding.cs | 0 .../System/Data/SqlClient/TdsParser.Unix.cs | 0 .../Data/SqlClient/TdsParser.Windows.cs | 0 .../src/System/Data/SqlClient/TdsParser.cs | 0 .../Data/SqlClient/TdsParserHelperClasses.cs | 0 .../Data/SqlClient/TdsParserSafeHandles.cs | 0 .../Data/SqlClient/TdsParserSessionPool.cs | 0 .../Data/SqlClient/TdsParserStateObject.cs | 0 .../TdsParserStateObjectFactory.Managed.cs | 0 .../TdsParserStateObjectFactory.Windows.cs | 0 .../SqlClient/TdsParserStateObjectManaged.cs | 0 .../SqlClient/TdsParserStateObjectNative.cs | 0 .../Data/SqlClient/TdsParserStaticMethods.cs | 0 .../Data/SqlClient/TdsRecordBufferSetter.cs | 0 .../System/Data/SqlClient/TdsValueSetter.cs | 0 .../Data/SqlTypes/SqlTypeWorkarounds.cs | 0 .../FunctionalTests/AADAccessTokenTest.cs | 0 .../AmbientTransactionFailureTest.cs | 0 .../BaseProviderAsyncTest.cs | 0 .../BaseProviderAsyncTest/MockCommand.cs | 0 .../BaseProviderAsyncTest/MockConnection.cs | 0 .../BaseProviderAsyncTest/MockDataReader.cs | 0 .../tests/FunctionalTests/CloneTests.cs | 0 .../FunctionalTests/Configurations.props | 0 .../tests/FunctionalTests/DiagnosticTest.cs | 0 .../tests/FunctionalTests/ExceptionTest.cs | 0 .../FakeDiagnosticListenerObserver.cs | 0 .../SqlBulkCopyColumnMappingCollectionTest.cs | 0 .../FunctionalTests/SqlClientFactoryTest.cs | 0 .../SqlConnectionBasicTests.cs | 0 .../SqlConnectionTest.RetrieveStatistics.cs | 0 .../FunctionalTests/SqlCredentialTest.cs | 0 .../FunctionalTests/SqlDataRecordTest.cs | 0 .../FunctionalTests/SqlErrorCollectionTest.cs | 0 .../FunctionalTests/SqlFacetAttributeTest.cs | 0 .../tests/FunctionalTests/SqlMetaDataTest.cs | 0 .../tests/FunctionalTests/SqlParameterTest.cs | 0 .../System.Data.SqlClient.Tests.csproj | 7 +- .../FunctionalTests/TcpDefaultForAzureTest.cs | 0 .../tests/FunctionalTests/TestTdsServer.cs | 0 .../tests/ManualTests/Configurations.props | 0 .../DDBasics/DDAsyncTest/DDAsyncTest.cs | 0 .../DDDataTypesTest/DDDataTypesTest.cs | 0 .../DDBasics/DDDataTypesTest/data.xml | 0 .../DDBasics/DDMARSTest/DDMARSTest.cs | 0 .../DataCommon/AssemblyResourceManager.cs | 0 .../DataCommon/DataSourceBuilder.cs | 0 .../ManualTests/DataCommon/DataTestUtility.cs | 0 .../ManualTests/DataCommon/ProxyServer.cs | 0 .../DataCommon/SystemDataResourceManager.cs | 0 .../MultipleResultsTest.bsl | 0 .../MultipleResultsTest.cs | 0 .../ReaderTest/ConcurrentLoadContext.cs | 0 .../ProviderAgnostic/ReaderTest/ReaderTest.cs | 0 .../tests/ManualTests/README.md | 0 .../tests/ManualTests/RunTests.cmd | 0 .../SQL/AdapterTest/AdapterTest.cs | 0 .../AsyncCancelledConnectionsTest.cs | 2 +- .../ManualTests/SQL/AsyncTest/AsyncTest.cs | 0 .../SQL/AsyncTest/AsyncTimeoutTest.cs | 0 .../SQL/AsyncTest/BeginExecAsyncTest.cs | 0 .../SQL/AsyncTest/BeginExecReaderAsyncTest.cs | 0 .../SQL/AsyncTest/XmlReaderAsyncTest.cs | 0 .../CommandCancelTest/CommandCancelTest.cs | 0 .../ManualTests/SQL/Common/AsyncDebugScope.cs | 0 .../SQL/Common/ConnectionPoolWrapper.cs | 0 .../SQL/Common/InternalConnectionWrapper.cs | 0 .../SQL/Common/SystemDataExtensions.cs | 0 .../SystemDataInternals/CommandHelper.cs | 0 .../SystemDataInternals/ConnectionHelper.cs | 0 .../ConnectionPoolHelper.cs | 0 .../SystemDataInternals/DataReaderHelper.cs | 0 .../SystemDataInternals/TdsParserHelper.cs | 0 .../TdsParserStateObjectHelper.cs | 0 .../ConnectionPoolTest/ConnectionPoolTest.cs | 0 .../PoolBlockPeriodTest.netcoreapp.cs | 0 .../ConnectivityTests/AADAccessTokenTest.cs | 0 .../SQL/ConnectivityTests/ConnectivityTest.cs | 0 .../ConnectionSchemaTest.cs | 0 .../SQL/DataReaderTest/DataReaderTest.cs | 0 .../SQL/DataStreamTest/DataStreamTest.cs | 0 .../SQL/DateTimeTest/DateTimeTest.cs | 0 .../SQL/ExceptionTest/ExceptionTest.cs | 0 .../SQL/InstanceNameTest/InstanceNameTest.cs | 0 .../IntegratedAuthenticationTest.cs | 0 .../SQL/LocalDBTest/LocalDBTest.cs | 0 .../MARSSessionPoolingTest.cs | 0 .../ManualTests/SQL/MARSTest/MARSTest.cs | 0 .../ConnectionOnMirroringTest.cs | 0 .../ParallelTransactionsTest.cs | 0 .../SQL/ParameterTest/DateTimeVariantTest.cs | 0 .../SQL/ParameterTest/OutputParameter.cs | 0 .../SQL/ParameterTest/ParametersTest.cs | 0 .../ParameterTest/SqlAdapterUpdateBatch.cs | 0 .../SqlParameterTest_DebugMode.bsl | 0 .../SqlParameterTest_ReleaseMode.bsl | 0 .../SQL/ParameterTest/SqlVariantParam.cs | 0 .../SQL/ParameterTest/SteAttribute.cs | 0 .../ManualTests/SQL/ParameterTest/SteParam.cs | 0 .../SQL/ParameterTest/StePermutationSet.cs | 0 .../SQL/ParameterTest/SteTypeBoundaries.cs | 0 .../SQL/ParameterTest/StreamInputParam.cs | 0 .../ManualTests/SQL/ParameterTest/TvpTest.cs | 0 .../SQL/RandomStressTest/RandomStressTest.cs | 0 .../SQL/RandomStressTest/Randomizer.cs | 0 .../SQL/RandomStressTest/RandomizerPool.cs | 0 .../SqlRandomColumnOptions.cs | 0 .../SQL/RandomStressTest/SqlRandomTable.cs | 0 .../RandomStressTest/SqlRandomTableColumn.cs | 0 .../SQL/RandomStressTest/SqlRandomTypeInfo.cs | 0 .../SqlRandomTypeInfoCollection.cs | 0 .../SqlRandomTypesForSqlServer.cs | 0 .../SQL/RandomStressTest/SqlRandomizer.cs | 0 .../SQL/SplitPacketTest/SplitPacketTest.cs | 0 .../AdjustPrecScaleForBulkCopy.cs | 0 .../AzureDistributedTransaction.cs | 0 .../SQL/SqlBulkCopyTest/Bug84548.cs | 0 .../SQL/SqlBulkCopyTest/Bug85007.cs | 0 .../SQL/SqlBulkCopyTest/Bug903514.cs | 0 .../SQL/SqlBulkCopyTest/Bug98182.cs | 0 .../SQL/SqlBulkCopyTest/CheckConstraints.cs | 0 .../SQL/SqlBulkCopyTest/ColumnCollation.cs | 0 .../SQL/SqlBulkCopyTest/CopyAllFromReader.cs | 0 .../SQL/SqlBulkCopyTest/CopyAllFromReader1.cs | 0 .../SqlBulkCopyTest/CopyAllFromReaderAsync.cs | 0 .../CopyAllFromReaderCancelAsync.cs | 0 .../CopyAllFromReaderConnectionCloseAsync.cs | 0 ...llFromReaderConnectionCloseOnEventAsync.cs | 0 .../SqlBulkCopyTest/CopyMultipleReaders.cs | 0 .../SqlBulkCopyTest/CopySomeFromDatatable.cs | 0 .../CopySomeFromDatatableAsync.cs | 0 .../SQL/SqlBulkCopyTest/CopySomeFromReader.cs | 0 .../SqlBulkCopyTest/CopySomeFromRowArray.cs | 0 .../CopySomeFromRowArrayAsync.cs | 0 .../SQL/SqlBulkCopyTest/CopyVariants.cs | 0 .../SQL/SqlBulkCopyTest/CopyWithEvent.cs | 0 .../SQL/SqlBulkCopyTest/CopyWithEvent1.cs | 0 .../SQL/SqlBulkCopyTest/CopyWithEventAsync.cs | 0 .../ErrorOnRowsMarkedAsDeleted.cs | 0 .../SQL/SqlBulkCopyTest/FireTrigger.cs | 0 .../SQL/SqlBulkCopyTest/Helpers.cs | 0 .../SqlBulkCopyTest/InvalidAccessFromEvent.cs | 0 .../SqlBulkCopyTest/MissingTargetColumn.cs | 0 .../SQL/SqlBulkCopyTest/MissingTargetTable.cs | 0 .../SqlBulkCopyTest/SpecialCharacterNames.cs | 0 .../SQL/SqlBulkCopyTest/SqlBulkCopyTest.cs | 0 .../SQL/SqlBulkCopyTest/Transaction.cs | 0 .../SQL/SqlBulkCopyTest/Transaction1.cs | 0 .../SQL/SqlBulkCopyTest/Transaction2.cs | 0 .../SQL/SqlBulkCopyTest/Transaction3.cs | 0 .../SQL/SqlBulkCopyTest/Transaction4.cs | 0 .../SqlBulkCopyTest/TransactionTestAsync.cs | 0 .../SqlCredentialTest/SqlCredentialTest.cs | 0 .../SqlFileStreamTest/SqlFileStreamTest.cs | 0 .../SqlNamedPipesTest/SqlNamedPipesTest.cs | 0 .../SqlNotificationTest.cs | 0 .../SqlSchemaInfoTest/SqlSchemaInfoTest.cs | 0 .../TransactionEnlistmentTest.cs | 0 .../SQL/TransactionTest/TransactionTest.cs | 0 .../SQL/TransactionTest/TransactionTest.snk | Bin .../SQL/UdtTest/SqlServerTypesTest.cs | 0 .../SQL/UdtTest/UDTs/Address/Address.cs | 0 .../SQL/UdtTest/UDTs/Address/Address.csproj | 6 + .../UdtTest/UDTs/Address/Configurations.props | 0 .../SQL/UdtTest/UDTs/Circle/Circle.cs | 0 .../SQL/UdtTest/UDTs/Circle/Circle.csproj | 6 + .../UdtTest/UDTs/Circle/Configurations.props | 0 .../SQL/UdtTest/UDTs/Circle/Point1.cs | 0 .../UdtTest/UDTs/Shapes/Configurations.props | 0 .../SQL/UdtTest/UDTs/Shapes/Line.cs | 0 .../SQL/UdtTest/UDTs/Shapes/Point.cs | 0 .../SQL/UdtTest/UDTs/Shapes/Shapes.csproj | 6 + .../UDTs/Utf8String/Configurations.props | 0 .../SQL/UdtTest/UDTs/Utf8String/Utf8String.cs | 0 .../UdtTest/UDTs/Utf8String/Utf8String.csproj | 6 + .../SQL/UdtTest/UdtBulkCopyTest.cs | 0 .../tests/ManualTests/SQL/UdtTest/UdtTest.cs | 0 .../tests/ManualTests/SQL/UdtTest/UdtTest2.cs | 0 .../ManualTests/SQL/UdtTest/UdtTestHelpers.cs | 0 .../SQL/Utf8SupportTest/Utf8SupportTest.cs | 0 .../SQL/WeakRefTest/WeakRefTest.cs | 0 .../WeakRefTestYukonSpecific.cs | 0 ....Data.SqlClient.ManualTesting.Tests.csproj | 7 +- .../ManualTests/XUnitAssemblyAttributes.cs | 0 .../ManualTests/createUdtTestDb_corefx.sql | 0 .../IMonitorLoader/Configurations.props | 0 .../IMonitorLoader/IMonitorLoader.cs | 0 .../IMonitorLoader/IMonitorLoader.csproj | 0 .../IMonitorLoader/MonitorMetrics.cs | 0 .../Configurations.props | 0 .../FilteredDefaultTraceListener.cs | 0 .../HostsFileManager.cs | 0 .../MultiSubnetFailoverSetup.cs | 0 .../NetUtils.cs | 0 .../SqlClientStressFactory.cs | 0 .../SqlClientTestGroup.cs | 0 .../System.Data.SqlClient.Stress.Tests.csproj | 0 .../System.Data.StressFramework/AsyncUtils.cs | 0 .../Configurations.props | 0 .../System.Data.StressFramework/DataSource.cs | 0 .../DataStressConnection.cs | 0 .../DataStressErrors.cs | 0 .../DataStressFactory.cs | 0 .../DataStressReader.cs | 0 .../DataStressSettings.cs | 0 .../DataTestGroup.cs | 0 .../System.Data.StressFramework/Extensions.cs | 0 .../StressConfigReader.cs | 0 .../StressTest.config | 0 .../System.Data.StressFramework.csproj | 0 .../TrackedRandom.cs | 0 .../Configurations.props | 0 .../System.Data.StressRunner/Constants.cs | 0 .../DeadlockDetection.cs | 0 .../DeadlockDetectionTaskScheduler.cs | 0 .../System.Data.StressRunner/FakeConsole.cs | 0 .../GlobalExceptionHandlerAttribute.cs | 0 .../GlobalTestCleanupAttribute.cs | 0 .../GlobalTestSetupAttribute.cs | 0 .../ITestAttributeFilter.cs | 0 .../System.Data.StressRunner/Logger.cs | 0 .../System.Data.StressRunner/MemApi.Unix.cs | 0 .../MemApi.Windows.cs | 0 .../MonitorLoadUtils.cs | 0 .../MultithreadedTest.cs | 0 .../System.Data.StressRunner/PerfCounters.cs | 0 .../System.Data.StressRunner/Program.cs | 0 .../RecordedExceptions.cs | 0 .../System.Data.StressRunner/SqlScript.cs | 0 .../System.Data.StressRunner/StressEngine.cs | 0 .../System.Data.StressRunner/StressTest.cs | 0 .../System.Data.StressRunner.csproj | 0 .../System.Data.StressRunner/Test.cs | 0 .../System.Data.StressRunner/TestAttribute.cs | 0 .../System.Data.StressRunner/TestBase.cs | 0 .../TestCleanupAttribute.cs | 0 .../System.Data.StressRunner/TestFinder.cs | 0 .../System.Data.StressRunner/TestMetrics.cs | 0 .../TestSetupAttribute.cs | 0 .../TestVariationAttribute.cs | 0 .../ThreadPoolTest.cs | 0 .../System.Data.StressRunner/VersionUtil.cs | 0 .../TDS/TDS.EndPoint/Configurations.props | 0 .../FederatedAuthenticationTicketService.cs | 0 .../IFederatedAuthenticationTicket.cs | 0 .../FederatedAuthentication/Rps.cs | 0 .../FederatedAuthentication/RpsTicket.cs | 0 .../Tools/TDS/TDS.EndPoint/ITDSClient.cs | 0 .../TDS/TDS.EndPoint/ITDSClientContext.cs | 0 .../Tools/TDS/TDS.EndPoint/ITDSServer.cs | 0 .../TDS/TDS.EndPoint/ITDSServerSession.cs | 0 .../TDS/TDS.EndPoint/PlaceholderStream.cs | 0 .../TDS/TDS.EndPoint/SSPI/SSPIContext.Unix.cs | 0 .../TDS.EndPoint/SSPI/SSPIContext.Windows.cs | 0 .../TDS/TDS.EndPoint/SSPI/SSPIResponse.cs | 0 .../Tools/TDS/TDS.EndPoint/SSPI/SecBuffer.cs | 0 .../TDS/TDS.EndPoint/SSPI/SecBufferDesc.cs | 0 .../TDS.EndPoint/SSPI/SecBufferDescType.cs | 0 .../TDS/TDS.EndPoint/SSPI/SecBufferType.cs | 0 .../TDS/TDS.EndPoint/SSPI/SecConstants.cs | 0 .../SSPI/SecContextRequirements.cs | 0 .../SSPI/SecDataRepresentation.cs | 0 .../TDS.EndPoint/SSPI/SecPgkCredentials.cs | 0 .../Tools/TDS/TDS.EndPoint/SSPI/SecPkgInfo.cs | 0 .../Tools/TDS/TDS.EndPoint/SSPI/SecResult.cs | 0 .../TDS/TDS.EndPoint/SSPI/SecurityHandle.cs | 0 .../TDS/TDS.EndPoint/SSPI/SecurityInteger.cs | 0 .../TDS/TDS.EndPoint/SSPI/SecurityWrapper.cs | 0 .../TDS/TDS.EndPoint/TDS.EndPoint.csproj | 7 +- .../TDS/TDS.EndPoint/TDSClientEndPoint.cs | 2 +- .../Tools/TDS/TDS.EndPoint/TDSClientParser.cs | 0 .../Tools/TDS/TDS.EndPoint/TDSEndPointInfo.cs | 0 .../TDS.EndPoint/TDSEndPointTransportType.cs | 0 .../tests/Tools/TDS/TDS.EndPoint/TDSParser.cs | 0 .../TDS/TDS.EndPoint/TDSServerEndPoint.cs | 0 .../TDSServerEndPointConnection.cs | 0 .../Tools/TDS/TDS.EndPoint/TDSServerParser.cs | 0 .../ApplicationIntentFilterType.cs | 0 .../TDS.Servers/AuthenticatingTDSServer.cs | 0 .../AuthenticatingTDSServerArguments.cs | 0 .../TDS/TDS.Servers/Configurations.props | 0 .../Tools/TDS/TDS.Servers/DateFormatString.cs | 0 ...edAuthenticationNegativeTDSScenarioType.cs | 0 ...ederatedAuthenticationNegativeTDSServer.cs | 0 ...uthenticationNegativeTDSServerArguments.cs | 0 .../Tools/TDS/TDS.Servers/GenericTDSServer.cs | 0 .../TDS.Servers/GenericTDSServerSession.cs | 0 .../Tools/TDS/TDS.Servers/QueryEngine.cs | 0 .../Tools/TDS/TDS.Servers/RoutingTDSServer.cs | 0 .../TDS.Servers/RoutingTDSServerArguments.cs | 0 .../TDS/TDS.Servers/ServerNameFilterType.cs | 0 .../Tools/TDS/TDS.Servers/TDS.Servers.csproj | 5 +- .../TDS/TDS.Servers/TDSServerArguments.cs | 0 .../TDS/TDS.Servers/TdsServerCertificate.pfx | Bin .../Tools/TDS/TDS/AllHeaders/TDSAllHeaders.cs | 0 .../Tools/TDS/TDS/AllHeaders/TDSHeaderType.cs | 0 .../AllHeaders/TDSQueryNotificationsHeader.cs | 0 .../TDS/TDS/AllHeaders/TDSTraceHeader.cs | 0 .../TDSTransactionDescriptorHeader.cs | 0 .../tests/Tools/TDS/TDS/AutoTDSStream.cs | 0 .../Tools/TDS/TDS/ColInfo/TDSColInfoToken.cs | 0 .../TDS/TDS/ColInfo/TDSColumnProperty.cs | 0 .../Tools/TDS/TDS/ColInfo/TDSColumnStatus.cs | 0 .../TDS/ColMetadata/TDSColMetadataToken.cs | 0 .../TDS/TDS/ColMetadata/TDSColumnData.cs | 0 .../TDS/ColMetadata/TDSColumnDataCollation.cs | 0 .../TDS/TDS/ColMetadata/TDSColumnDataFlags.cs | 0 .../ColMetadata/TDSColumnDataUpdatableFlag.cs | 0 .../ColMetadata/TDSDecimalColumnSpecific.cs | 0 .../TDSShilohVarCharColumnSpecific.cs | 0 .../tests/Tools/TDS/TDS/Configurations.props | 0 .../tests/Tools/TDS/TDS/DateFormatType.cs | 0 .../Tools/TDS/TDS/Done/TDSDoneInProcToken.cs | 0 .../TDS/TDS/Done/TDSDoneProcedureToken.cs | 0 .../tests/Tools/TDS/TDS/Done/TDSDoneToken.cs | 0 .../TDS/TDS/Done/TDSDoneTokenCommandType.cs | 0 .../TDS/TDS/Done/TDSDoneTokenStatusType.cs | 0 .../TDS/TDS/EnvChange/TDSEnvChangeToken.cs | 0 .../TDS/EnvChange/TDSEnvChangeTokenType.cs | 0 .../TDSRoutingEnvChangeTokenValue.cs | 0 .../TDSRoutingEnvChangeTokenValueType.cs | 0 .../Tools/TDS/TDS/Error/TDSErrorToken.cs | 0 ...tureExtAckFederatedAuthenticationOption.cs | 0 .../TDSFeatureExtAckGenericOption.cs | 0 .../FeatureExtAck/TDSFeatureExtAckOption.cs | 0 .../TDSFeatureExtAckSessionStateOption.cs | 0 .../FeatureExtAck/TDSFeatureExtAckToken.cs | 0 .../TDS/TDS/FedAuthInfo/TDSFedAuthInfoId.cs | 0 .../TDS/FedAuthInfo/TDSFedAuthInfoOption.cs | 0 .../FedAuthInfo/TDSFedAuthInfoOptionSPN.cs | 0 .../FedAuthInfo/TDSFedAuthInfoOptionSTSURL.cs | 0 .../TDS/FedAuthInfo/TDSFedAuthInfoToken.cs | 0 .../FedAuthMessage/TDSFedAuthMessageToken.cs | 0 .../tests/Tools/TDS/TDS/IDeflatable.cs | 0 .../tests/Tools/TDS/TDS/IInflatable.cs | 0 .../tests/Tools/TDS/TDS/Info/TDSInfoToken.cs | 0 .../tests/Tools/TDS/TDS/LanguageString.cs | 0 .../tests/Tools/TDS/TDS/LanguageType.cs | 0 .../TDS/Login7/TDSLogin7FeatureOptionToken.cs | 0 .../Login7/TDSLogin7FeatureOptionsToken.cs | 0 .../TDS/Login7/TDSLogin7FedAuthOptionToken.cs | 0 .../TDS/Login7/TDSLogin7GenericOptionToken.cs | 0 .../TDSLogin7SessionRecoveryOptionToken.cs | 0 .../Tools/TDS/TDS/Login7/TDSLogin7Token.cs | 0 .../Login7/TDSLogin7TokenOffsetProperty.cs | 0 .../Login7/TDSLogin7TokenOptionalFlags1.cs | 0 .../Login7/TDSLogin7TokenOptionalFlags2.cs | 0 .../Login7/TDSLogin7TokenOptionalFlags3.cs | 0 .../TDS/TDS/Login7/TDSLogin7TokenTypeFlags.cs | 0 .../TDS/TDS/LoginAck/TDSLoginAckToken.cs | 0 .../Tools/TDS/TDS/Order/TDSOrderToken.cs | 0 .../PreLogin/TDSPreLoginAuthenticationType.cs | 0 .../TDS/TDS/PreLogin/TDSPreLoginToken.cs | 0 .../TDSPreLoginTokenEncryptionType.cs | 0 .../TDS/PreLogin/TDSPreLoginTokenOption.cs | 0 .../PreLogin/TDSPreLoginTokenOptionType.cs | 0 .../TDS/ReturnStatus/TDSReturnStatusToken.cs | 0 .../tests/Tools/TDS/TDS/Row/TDSNBCRowToken.cs | 0 .../tests/Tools/TDS/TDS/Row/TDSRowToken.cs | 0 .../Tools/TDS/TDS/Row/TDSRowTokenBase.cs | 0 .../TDS/TDS/SQLBatch/TDSSQLBatchToken.cs | 0 .../Tools/TDS/TDS/SSPI/TDSSSPIClientToken.cs | 0 .../tests/Tools/TDS/TDS/SSPI/TDSSSPIToken.cs | 0 .../SessionState/TDSSessionRecoveryData.cs | 0 .../TDSSessionStateContextInfoOption.cs | 0 ...DSSessionStateDateFirstDateFormatOption.cs | 0 .../TDSSessionStateDeadlockPriorityOption.cs | 0 .../TDSSessionStateGenericOption.cs | 0 .../TDSSessionStateISOFipsOption.cs | 0 .../TDSSessionStateLockTimeoutOption.cs | 0 .../TDS/SessionState/TDSSessionStateOption.cs | 0 .../TDSSessionStateTextSizeOption.cs | 0 .../TDS/SessionState/TDSSessionStateToken.cs | 0 .../TDSSessionStateUserOptionsOption.cs | 0 .../tests/Tools/TDS/TDS/TDS.csproj | 9 + .../tests/Tools/TDS/TDS/TDSClientState.cs | 0 .../tests/Tools/TDS/TDS/TDSDataType.cs | 0 .../tests/Tools/TDS/TDS/TDSEncryptionType.cs | 0 .../tests/Tools/TDS/TDS/TDSFeatureID.cs | 0 .../tests/Tools/TDS/TDS/TDSMessage.cs | 0 .../Tools/TDS/TDS/TDSMessageCollection.cs | 0 .../tests/Tools/TDS/TDS/TDSMessageType.cs | 0 .../tests/Tools/TDS/TDS/TDSPacketHeader.cs | 0 .../tests/Tools/TDS/TDS/TDSPacketStatus.cs | 0 .../tests/Tools/TDS/TDS/TDSPacketToken.cs | 0 .../tests/Tools/TDS/TDS/TDSStream.cs | 0 .../tests/Tools/TDS/TDS/TDSTokenFactory.cs | 0 .../tests/Tools/TDS/TDS/TDSTokenType.cs | 0 .../tests/Tools/TDS/TDS/TDSUtilities.cs | 0 .../tests/Tools/TDS/TDS/TDSVersion.cs | 0 .../TDS/TDS/TransactionIsolationLevelType.cs | 0 666 files changed, 13766 insertions(+), 2011 deletions(-) delete mode 100644 migrated/Directory.Build.props delete mode 100644 migrated/System.Data.SqlClient.sln delete mode 100644 migrated/pkg/System.Data.SqlClient.pkgproj delete mode 100644 migrated/ref/Configurations.props delete mode 100644 migrated/ref/System.Data.SqlClient.Forwards.cs delete mode 100644 migrated/ref/System.Data.SqlClient.Manual.cs delete mode 100644 migrated/ref/System.Data.SqlClient.NetCoreApp.cs delete mode 100644 migrated/ref/System.Data.SqlClient.cs delete mode 100644 migrated/ref/System.Data.SqlClient.csproj delete mode 100644 migrated/src/System.Data.SqlClient.csproj delete mode 100644 migrated/tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.csproj delete mode 100644 migrated/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Circle.csproj delete mode 100644 migrated/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Shapes.csproj delete mode 100644 migrated/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Utf8String.csproj delete mode 100644 migrated/tests/Tools/TDS/TDS/TDS.csproj create mode 100644 src/Common/src/CoreLib/Interop/Windows/Kernel32/Interop.FileTypes.cs create mode 100644 src/Common/src/CoreLib/Interop/Windows/Kernel32/Interop.GetFileType_SafeHandle.cs create mode 100644 src/Common/src/CoreLib/Interop/Windows/Kernel32/Interop.SetThreadErrorMode.cs create mode 100644 src/Common/src/CoreLib/Microsoft/Win32/SafeHandles/SafeLibraryHandle.cs create mode 100644 src/Common/src/CoreLib/System/Diagnostics/CodeAnalysis/NullableAttributes.cs create mode 100644 src/Common/src/CoreLib/System/IO/PathHelper.Windows.cs create mode 100644 src/Common/src/CoreLib/System/Text/ValueStringBuilder.cs create mode 100644 src/Common/src/CoreLib/System/Threading/Tasks/TaskToApm.cs create mode 100644 src/Common/src/Interop/Unix/Interop.Libraries.cs create mode 100644 src/Common/src/Interop/Unix/System.Net.Security.Native/Interop.GssApiException.cs create mode 100644 src/Common/src/Interop/Unix/System.Net.Security.Native/Interop.GssBuffer.cs rename {migrated/src/Common => src/Common/src}/Interop/Unix/System.Net.Security.Native/Interop.NetSecurityNative.Extended.cs (100%) create mode 100644 src/Common/src/Interop/Unix/System.Net.Security.Native/Interop.NetSecurityNative.IsNtlmInstalled.cs create mode 100644 src/Common/src/Interop/Unix/System.Net.Security.Native/Interop.NetSecurityNative.cs create mode 100644 src/Common/src/Interop/Windows/Crypt32/Interop.certificates.cs create mode 100644 src/Common/src/Interop/Windows/Crypt32/Interop.certificates_types.cs create mode 100644 src/Common/src/Interop/Windows/Interop.Errors.cs create mode 100644 src/Common/src/Interop/Windows/Interop.Libraries.cs create mode 100644 src/Common/src/Interop/Windows/Interop.OBJECT_ATTRIBUTES.cs create mode 100644 src/Common/src/Interop/Windows/Interop.UNICODE_STRING.cs create mode 100644 src/Common/src/Interop/Windows/Kernel32/Interop.CTL_CODE.cs create mode 100644 src/Common/src/Interop/Windows/Kernel32/Interop.DeviceIoControl.cs create mode 100644 src/Common/src/Interop/Windows/Kernel32/Interop.FileOperations.cs create mode 100644 src/Common/src/Interop/Windows/Kernel32/Interop.FreeLibrary.cs create mode 100644 src/Common/src/Interop/Windows/Kernel32/Interop.GetProcAddress.cs create mode 100644 src/Common/src/Interop/Windows/Kernel32/Interop.IoControlCodeAccess.cs create mode 100644 src/Common/src/Interop/Windows/Kernel32/Interop.IoControlTransferType.cs create mode 100644 src/Common/src/Interop/Windows/Kernel32/Interop.LoadLibraryEx.cs create mode 100644 src/Common/src/Interop/Windows/NtDll/Interop.FILE_FULL_EA_INFORMATION.cs create mode 100644 src/Common/src/Interop/Windows/NtDll/Interop.IO_STATUS_BLOCK.cs create mode 100644 src/Common/src/Interop/Windows/NtDll/Interop.NtCreateFile.cs create mode 100644 src/Common/src/Interop/Windows/NtDll/Interop.RtlNtStatusToDosError.cs create mode 100644 src/Common/src/Interop/Windows/SChannel/Interop.SECURITY_STATUS.cs create mode 100644 src/Common/src/Interop/Windows/SChannel/Interop.SecPkgContext_ApplicationProtocol.cs create mode 100644 src/Common/src/Interop/Windows/SChannel/SecPkgContext_CipherInfo.cs create mode 100644 src/Common/src/Interop/Windows/SChannel/SecPkgContext_ConnectionInfo.cs create mode 100644 src/Common/src/Interop/Windows/SspiCli/Interop.SSPI.cs create mode 100644 src/Common/src/Interop/Windows/SspiCli/NegotiationInfoClass.cs create mode 100644 src/Common/src/Interop/Windows/SspiCli/SSPIAuthType.cs create mode 100644 src/Common/src/Interop/Windows/SspiCli/SSPISecureChannelType.cs create mode 100644 src/Common/src/Interop/Windows/SspiCli/SSPIWrapper.cs create mode 100644 src/Common/src/Interop/Windows/SspiCli/SafeDeleteContext.cs create mode 100644 src/Common/src/Interop/Windows/SspiCli/SecPkgContext_Bindings.cs create mode 100644 src/Common/src/Interop/Windows/SspiCli/SecPkgContext_NegotiationInfoW.cs create mode 100644 src/Common/src/Interop/Windows/SspiCli/SecPkgContext_Sizes.cs create mode 100644 src/Common/src/Interop/Windows/SspiCli/SecPkgContext_StreamSizes.cs create mode 100644 src/Common/src/Interop/Windows/SspiCli/SecurityPackageInfo.cs create mode 100644 src/Common/src/Interop/Windows/SspiCli/SecuritySafeHandles.cs create mode 100644 src/Common/src/Microsoft/Win32/SafeHandles/GssSafeHandles.cs create mode 100644 src/Common/src/System/Collections/Generic/BidirectionalDictionary.cs create mode 100644 src/Common/src/System/Data/Common/AdapterUtil.Drivers.cs create mode 100644 src/Common/src/System/Data/Common/AdapterUtil.cs create mode 100644 src/Common/src/System/Data/Common/BasicFieldNameLookup.cs create mode 100644 src/Common/src/System/Data/Common/DbConnectionOptions.Common.cs create mode 100644 src/Common/src/System/Data/Common/DbConnectionPoolKey.cs create mode 100644 src/Common/src/System/Data/Common/FieldNameLookup.cs create mode 100644 src/Common/src/System/Data/Common/MultipartIdentifier.cs create mode 100644 src/Common/src/System/Data/Common/NameValuePair.cs create mode 100644 src/Common/src/System/Data/Common/SQLResource.cs create mode 100644 src/Common/src/System/Data/ProviderBase/DbConnectionClosed.cs create mode 100644 src/Common/src/System/Data/ProviderBase/DbConnectionFactory.cs create mode 100644 src/Common/src/System/Data/ProviderBase/DbConnectionInternal.cs create mode 100644 src/Common/src/System/Data/ProviderBase/DbConnectionPoolGroup.cs create mode 100644 src/Common/src/System/Data/ProviderBase/DbMetaDataFactory.cs create mode 100644 src/Common/src/System/Data/ProviderBase/DbReferenceCollection.cs create mode 100644 src/Common/src/System/Data/ProviderBase/TimeoutTimer.cs create mode 100644 src/Common/src/System/Net/ContextFlagsAdapterPal.Unix.cs create mode 100644 src/Common/src/System/Net/ContextFlagsAdapterPal.Windows.cs create mode 100644 src/Common/src/System/Net/ContextFlagsPal.cs create mode 100644 src/Common/src/System/Net/DebugCriticalHandleMinusOneIsInvalid.cs create mode 100644 src/Common/src/System/Net/DebugSafeHandle.cs create mode 100644 src/Common/src/System/Net/InternalException.cs create mode 100644 src/Common/src/System/Net/Logging/DebugThreadTracking.cs create mode 100644 src/Common/src/System/Net/Logging/NetEventSource.Common.cs create mode 100644 src/Common/src/System/Net/NegotiationInfoClass.cs create mode 100644 src/Common/src/System/Net/Security/NegotiateStreamPal.Unix.cs create mode 100644 src/Common/src/System/Net/Security/NegotiateStreamPal.Windows.cs create mode 100644 src/Common/src/System/Net/Security/NetEventSource.Security.Windows.cs create mode 100644 src/Common/src/System/Net/Security/NetEventSource.Security.cs create mode 100644 src/Common/src/System/Net/Security/SecurityBuffer.Windows.cs create mode 100644 src/Common/src/System/Net/Security/SecurityBufferType.Windows.cs create mode 100644 src/Common/src/System/Net/Security/SecurityContextTokenHandle.cs create mode 100644 src/Common/src/System/Net/Security/Unix/SafeDeleteContext.cs create mode 100644 src/Common/src/System/Net/Security/Unix/SafeDeleteNegoContext.cs create mode 100644 src/Common/src/System/Net/Security/Unix/SafeFreeCredentials.cs create mode 100644 src/Common/src/System/Net/Security/Unix/SafeFreeNegoCredentials.cs create mode 100644 src/Common/src/System/Net/Security/Unix/SecChannelBindings.cs create mode 100644 src/Common/src/System/Net/SecurityStatusAdapterPal.Windows.cs create mode 100644 src/Common/src/System/Net/SecurityStatusPal.cs create mode 100644 src/Common/tests/System/Collections/DictionaryExtensions.cs create mode 100644 src/System.Data.SqlClient/src/Common/Interop/Unix/Interop.Libraries.cs create mode 100644 src/System.Data.SqlClient/src/Common/Interop/Unix/System.Net.Security.Native/Interop.NetSecurityNative.Extended.cs rename {migrated => src/System.Data.SqlClient}/src/Configurations.props (100%) rename {migrated => src/System.Data.SqlClient}/src/GenerateThisAssemblyCs.targets (100%) rename {migrated => src/System.Data.SqlClient}/src/Interop/SNINativeMethodWrapper.Common.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/Interop/SNINativeMethodWrapper.Unix.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/Interop/SNINativeMethodWrapper.Windows.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/MatchingRefApiCompatBaseline.txt (100%) rename {migrated => src/System.Data.SqlClient}/src/Microsoft/SqlServer/Server/ExtendedClrTypeCode.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/Microsoft/SqlServer/Server/ITypedGetters.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/Microsoft/SqlServer/Server/ITypedGettersV3.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/Microsoft/SqlServer/Server/ITypedSetters.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/Microsoft/SqlServer/Server/ITypedSettersV3.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/Microsoft/SqlServer/Server/MemoryRecordBuffer.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/Microsoft/SqlServer/Server/MetadataUtilsSmi.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/Microsoft/SqlServer/Server/SmiEventSink.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/Microsoft/SqlServer/Server/SmiEventSink_Default.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/Microsoft/SqlServer/Server/SmiGettersStream.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/Microsoft/SqlServer/Server/SmiMetaData.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/Microsoft/SqlServer/Server/SmiMetaDataProperty.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/Microsoft/SqlServer/Server/SmiRecordBuffer.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/Microsoft/SqlServer/Server/SmiSettersStream.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/Microsoft/SqlServer/Server/SmiTypedGetterSetter.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/Microsoft/SqlServer/Server/SmiXetterAccessMap.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/Microsoft/SqlServer/Server/SmiXetterTypeCode.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/Microsoft/SqlServer/Server/SqlDataRecord.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/Microsoft/SqlServer/Server/SqlFacetAttribute.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/Microsoft/SqlServer/Server/SqlRecordBuffer.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/Microsoft/SqlServer/Server/ValueUtilsSmi.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/PinvokeAnalyzerExceptionList.analyzerdata.windows (100%) rename {migrated => src/System.Data.SqlClient}/src/Resources/Strings.resx (100%) rename {migrated => src/System.Data.SqlClient}/src/Resources/System.Data.SqlClient.SqlMetaData.xml (100%) rename {migrated => src/System.Data.SqlClient}/src/System.Data.SqlClient.TypeForwards.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/Common/ActivityCorrelator.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/Common/AdapterUtil.SqlClient.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/Common/DbConnectionOptions.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/Common/DbConnectionStringCommon.NetCoreApp.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/Common/DbConnectionStringCommon.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/Common/SR.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/DataException.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/OperationAbortedException.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/ProviderBase/DbConnectionClosed.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/ProviderBase/DbConnectionFactory.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/ProviderBase/DbConnectionInternal.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/ProviderBase/DbConnectionPool.NetCoreApp.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/ProviderBase/DbConnectionPool.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/ProviderBase/DbConnectionPoolGroupProviderInfo.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/ProviderBase/DbConnectionPoolIdentity.Unix.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/ProviderBase/DbConnectionPoolIdentity.Windows.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/ProviderBase/DbConnectionPoolIdentity.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/ProviderBase/DbConnectionPoolOptions.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/ProviderBase/DbConnectionPoolProviderInfo.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/Sql/IBinarySerialize.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/Sql/InvalidUdtException.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/Sql/SqlFunctionAttribute.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/Sql/SqlMetaData.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/Sql/SqlMethodAttribute.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/Sql/SqlNorm.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/Sql/SqlNotificationRequest.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/Sql/SqlSer.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/Sql/SqlUserDefinedAggregateAttribute.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/Sql/SqlUserDefinedTypeAttribute.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/ApplicationIntent.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/LocalDBAPI.Common.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/LocalDBAPI.Unix.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/LocalDBAPI.Windows.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/LocalDBAPI.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/LocalDBAPI.uap.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/OnChangedEventHandler.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/PacketHandle.Unix.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/PacketHandle.Windows.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/ParameterPeekAheadValue.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/PoolBlockingPeriod.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/RowsCopiedEventArgs.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/RowsCopiedEventHandler.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SNI/LocalDB.Unix.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SNI/LocalDB.Windows.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SNI/LocalDB.uap.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SNI/SNICommon.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SNI/SNIError.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SNI/SNIHandle.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SNI/SNILoadHandle.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SNI/SNIMarsConnection.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SNI/SNIMarsHandle.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SNI/SNIMarsQueuedPacket.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SNI/SNINpHandle.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SNI/SNIPacket.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SNI/SNIProxy.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SNI/SNITcpHandle.Unix.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SNI/SNITcpHandle.Windows.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SNI/SNITcpHandle.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SNI/SSRP.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SNI/SslOverTdsStream.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SNI/SspiClientContextStatus.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SessionHandle.Unix.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SessionHandle.Windows.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SortOrder.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlBuffer.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlBulkCopy.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlBulkCopyColumnMapping.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlBulkCopyColumnMappingCollection.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlBulkCopyOptions.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlCachedBuffer.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlClientDiagnosticListenerExtensions.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlClientFactory.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlClientMetaDataCollectionNames.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlCommand.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlCommandBuilder.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlCommandSet.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlConnection.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlConnectionFactory.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlConnectionHelper.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlConnectionPoolGroupProviderInfo.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlConnectionPoolKey.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlConnectionPoolProviderInfo.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlConnectionString.NetCoreApp.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlConnectionString.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlConnectionStringBuilder.NetCoreApp.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlConnectionStringBuilder.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlConnectionTimeoutErrorInternal.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlCredential.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlDataAdapter.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlDataReader.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlDbColumn.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlDelegatedTransaction.NetCoreApp.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlDelegatedTransaction.NetStandard.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlDelegatedTransaction.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlDependency.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlDependencyListener.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlDependencyUtils.AppDomain.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlDependencyUtils.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlEnums.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlError.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlErrorCollection.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlException.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlFileStream.Unsupported.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlFileStream.Windows.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlInfoMessageEvent.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlInfoMessageEventHandler.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlInternalConnection.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlInternalConnectionTds.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlInternalTransaction.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlMetadataFactory.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlNotificationEventArgs.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlNotificationInfo.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlNotificationSource.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlNotificationType.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlParameter.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlParameterCollection.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlParameterCollectionHelper.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlParameterHelper.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlReferenceCollection.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlRowUpdatedEvent.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlRowUpdatedEventHandler.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlRowUpdatingEvent.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlRowUpdatingEventHandler.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlSequentialStream.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlSequentialTextReader.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlStatistics.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlStream.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlTransaction.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlUdtInfo.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/SqlUtil.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/TdsEnums.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/TdsParameterSetter.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/TdsParser.NetCoreApp.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/TdsParser.NetStandard.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/TdsParser.RegisterEncoding.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/TdsParser.Unix.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/TdsParser.Windows.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/TdsParser.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/TdsParserHelperClasses.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/TdsParserSafeHandles.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/TdsParserSessionPool.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/TdsParserStateObject.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/TdsParserStateObjectFactory.Managed.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/TdsParserStateObjectFactory.Windows.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/TdsParserStateObjectManaged.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/TdsParserStateObjectNative.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/TdsParserStaticMethods.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/TdsRecordBufferSetter.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlClient/TdsValueSetter.cs (100%) rename {migrated => src/System.Data.SqlClient}/src/System/Data/SqlTypes/SqlTypeWorkarounds.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/FunctionalTests/AADAccessTokenTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/FunctionalTests/AmbientTransactionFailureTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/FunctionalTests/BaseProviderAsyncTest/BaseProviderAsyncTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/FunctionalTests/BaseProviderAsyncTest/MockCommand.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/FunctionalTests/BaseProviderAsyncTest/MockConnection.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/FunctionalTests/BaseProviderAsyncTest/MockDataReader.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/FunctionalTests/CloneTests.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/FunctionalTests/Configurations.props (100%) rename {migrated => src/System.Data.SqlClient}/tests/FunctionalTests/DiagnosticTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/FunctionalTests/ExceptionTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/FunctionalTests/FakeDiagnosticListenerObserver.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/FunctionalTests/SqlBulkCopyColumnMappingCollectionTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/FunctionalTests/SqlClientFactoryTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/FunctionalTests/SqlConnectionBasicTests.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/FunctionalTests/SqlConnectionTest.RetrieveStatistics.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/FunctionalTests/SqlCredentialTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/FunctionalTests/SqlDataRecordTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/FunctionalTests/SqlErrorCollectionTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/FunctionalTests/SqlFacetAttributeTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/FunctionalTests/SqlMetaDataTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/FunctionalTests/SqlParameterTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/FunctionalTests/System.Data.SqlClient.Tests.csproj (87%) rename {migrated => src/System.Data.SqlClient}/tests/FunctionalTests/TcpDefaultForAzureTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/FunctionalTests/TestTdsServer.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/Configurations.props (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/DDBasics/DDAsyncTest/DDAsyncTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/DDBasics/DDDataTypesTest/DDDataTypesTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/DDBasics/DDDataTypesTest/data.xml (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/DDBasics/DDMARSTest/DDMARSTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/DataCommon/AssemblyResourceManager.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/DataCommon/DataSourceBuilder.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/DataCommon/DataTestUtility.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/DataCommon/ProxyServer.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/DataCommon/SystemDataResourceManager.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/ProviderAgnostic/MultipleResultsTest/MultipleResultsTest.bsl (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/ProviderAgnostic/MultipleResultsTest/MultipleResultsTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/ProviderAgnostic/ReaderTest/ConcurrentLoadContext.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/ProviderAgnostic/ReaderTest/ReaderTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/README.md (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/RunTests.cmd (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/AdapterTest/AdapterTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/AsyncTest/AsyncCancelledConnectionsTest.cs (98%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/AsyncTest/AsyncTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/AsyncTest/AsyncTimeoutTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/AsyncTest/BeginExecAsyncTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/AsyncTest/BeginExecReaderAsyncTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/AsyncTest/XmlReaderAsyncTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/CommandCancelTest/CommandCancelTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/Common/AsyncDebugScope.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/Common/ConnectionPoolWrapper.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/Common/InternalConnectionWrapper.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/Common/SystemDataExtensions.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/Common/SystemDataInternals/CommandHelper.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/Common/SystemDataInternals/ConnectionHelper.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/Common/SystemDataInternals/ConnectionPoolHelper.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/Common/SystemDataInternals/DataReaderHelper.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/Common/SystemDataInternals/TdsParserHelper.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/Common/SystemDataInternals/TdsParserStateObjectHelper.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/ConnectionPoolTest/ConnectionPoolTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/ConnectionPoolTest/PoolBlockPeriodTest.netcoreapp.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/ConnectivityTests/AADAccessTokenTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/ConnectivityTests/ConnectivityTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/DataBaseSchemaTest/ConnectionSchemaTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/DataReaderTest/DataReaderTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/DataStreamTest/DataStreamTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/DateTimeTest/DateTimeTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/ExceptionTest/ExceptionTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/InstanceNameTest/InstanceNameTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/IntegratedAuthenticationTest/IntegratedAuthenticationTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/LocalDBTest/LocalDBTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/MARSSessionPoolingTest/MARSSessionPoolingTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/MARSTest/MARSTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/MirroringTest/ConnectionOnMirroringTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/ParallelTransactionsTest/ParallelTransactionsTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/ParameterTest/DateTimeVariantTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/ParameterTest/OutputParameter.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/ParameterTest/ParametersTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/ParameterTest/SqlAdapterUpdateBatch.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/ParameterTest/SqlParameterTest_DebugMode.bsl (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/ParameterTest/SqlParameterTest_ReleaseMode.bsl (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/ParameterTest/SqlVariantParam.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/ParameterTest/SteAttribute.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/ParameterTest/SteParam.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/ParameterTest/StePermutationSet.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/ParameterTest/SteTypeBoundaries.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/ParameterTest/StreamInputParam.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/ParameterTest/TvpTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/RandomStressTest/RandomStressTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/RandomStressTest/Randomizer.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/RandomStressTest/RandomizerPool.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/RandomStressTest/SqlRandomColumnOptions.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/RandomStressTest/SqlRandomTable.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/RandomStressTest/SqlRandomTableColumn.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/RandomStressTest/SqlRandomTypeInfo.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/RandomStressTest/SqlRandomTypeInfoCollection.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/RandomStressTest/SqlRandomTypesForSqlServer.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/RandomStressTest/SqlRandomizer.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/SplitPacketTest/SplitPacketTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/SqlBulkCopyTest/AdjustPrecScaleForBulkCopy.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/SqlBulkCopyTest/AzureDistributedTransaction.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/SqlBulkCopyTest/Bug84548.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/SqlBulkCopyTest/Bug85007.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/SqlBulkCopyTest/Bug903514.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/SqlBulkCopyTest/Bug98182.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/SqlBulkCopyTest/CheckConstraints.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/SqlBulkCopyTest/ColumnCollation.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/SqlBulkCopyTest/CopyAllFromReader.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/SqlBulkCopyTest/CopyAllFromReader1.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/SqlBulkCopyTest/CopyAllFromReaderAsync.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/SqlBulkCopyTest/CopyAllFromReaderCancelAsync.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/SqlBulkCopyTest/CopyAllFromReaderConnectionCloseAsync.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/SqlBulkCopyTest/CopyAllFromReaderConnectionCloseOnEventAsync.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/SqlBulkCopyTest/CopyMultipleReaders.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/SqlBulkCopyTest/CopySomeFromDatatable.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/SqlBulkCopyTest/CopySomeFromDatatableAsync.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/SqlBulkCopyTest/CopySomeFromReader.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/SqlBulkCopyTest/CopySomeFromRowArray.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/SqlBulkCopyTest/CopySomeFromRowArrayAsync.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/SqlBulkCopyTest/CopyVariants.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/SqlBulkCopyTest/CopyWithEvent.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/SqlBulkCopyTest/CopyWithEvent1.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/SqlBulkCopyTest/CopyWithEventAsync.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/SqlBulkCopyTest/ErrorOnRowsMarkedAsDeleted.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/SqlBulkCopyTest/FireTrigger.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/SqlBulkCopyTest/Helpers.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/SqlBulkCopyTest/InvalidAccessFromEvent.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/SqlBulkCopyTest/MissingTargetColumn.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/SqlBulkCopyTest/MissingTargetTable.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/SqlBulkCopyTest/SpecialCharacterNames.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/SqlBulkCopyTest/SqlBulkCopyTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/SqlBulkCopyTest/Transaction.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/SqlBulkCopyTest/Transaction1.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/SqlBulkCopyTest/Transaction2.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/SqlBulkCopyTest/Transaction3.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/SqlBulkCopyTest/Transaction4.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/SqlBulkCopyTest/TransactionTestAsync.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/SqlCredentialTest/SqlCredentialTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/SqlFileStreamTest/SqlFileStreamTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/SqlNamedPipesTest/SqlNamedPipesTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/SqlNotificationTest/SqlNotificationTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/SqlSchemaInfoTest/SqlSchemaInfoTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/TransactionTest/TransactionEnlistmentTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/TransactionTest/TransactionTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/TransactionTest/TransactionTest.snk (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/UdtTest/SqlServerTypesTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.cs (100%) create mode 100644 src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.csproj rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/UdtTest/UDTs/Address/Configurations.props (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Circle.cs (100%) create mode 100644 src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Circle.csproj rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Configurations.props (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Point1.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Configurations.props (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Line.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Point.cs (100%) create mode 100644 src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Shapes.csproj rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Configurations.props (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Utf8String.cs (100%) create mode 100644 src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Utf8String.csproj rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/UdtTest/UdtBulkCopyTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/UdtTest/UdtTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/UdtTest/UdtTest2.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/UdtTest/UdtTestHelpers.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/Utf8SupportTest/Utf8SupportTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/WeakRefTest/WeakRefTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/SQL/WeakRefTestYukonSpecific/WeakRefTestYukonSpecific.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/System.Data.SqlClient.ManualTesting.Tests.csproj (97%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/XUnitAssemblyAttributes.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/ManualTests/createUdtTestDb_corefx.sql (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/IMonitorLoader/Configurations.props (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/IMonitorLoader/IMonitorLoader.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/IMonitorLoader/IMonitorLoader.csproj (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/IMonitorLoader/MonitorMetrics.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.SqlClient.Stress.Tests/Configurations.props (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.SqlClient.Stress.Tests/FilteredDefaultTraceListener.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.SqlClient.Stress.Tests/HostsFileManager.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.SqlClient.Stress.Tests/MultiSubnetFailoverSetup.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.SqlClient.Stress.Tests/NetUtils.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.SqlClient.Stress.Tests/SqlClientStressFactory.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.SqlClient.Stress.Tests/SqlClientTestGroup.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.SqlClient.Stress.Tests/System.Data.SqlClient.Stress.Tests.csproj (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.StressFramework/AsyncUtils.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.StressFramework/Configurations.props (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.StressFramework/DataSource.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.StressFramework/DataStressConnection.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.StressFramework/DataStressErrors.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.StressFramework/DataStressFactory.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.StressFramework/DataStressReader.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.StressFramework/DataStressSettings.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.StressFramework/DataTestGroup.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.StressFramework/Extensions.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.StressFramework/StressConfigReader.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.StressFramework/StressTest.config (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.StressFramework/System.Data.StressFramework.csproj (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.StressFramework/TrackedRandom.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.StressRunner/Configurations.props (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.StressRunner/Constants.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.StressRunner/DeadlockDetection.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.StressRunner/DeadlockDetectionTaskScheduler.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.StressRunner/FakeConsole.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.StressRunner/GlobalExceptionHandlerAttribute.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.StressRunner/GlobalTestCleanupAttribute.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.StressRunner/GlobalTestSetupAttribute.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.StressRunner/ITestAttributeFilter.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.StressRunner/Logger.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.StressRunner/MemApi.Unix.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.StressRunner/MemApi.Windows.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.StressRunner/MonitorLoadUtils.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.StressRunner/MultithreadedTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.StressRunner/PerfCounters.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.StressRunner/Program.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.StressRunner/RecordedExceptions.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.StressRunner/SqlScript.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.StressRunner/StressEngine.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.StressRunner/StressTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.StressRunner/System.Data.StressRunner.csproj (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.StressRunner/Test.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.StressRunner/TestAttribute.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.StressRunner/TestBase.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.StressRunner/TestCleanupAttribute.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.StressRunner/TestFinder.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.StressRunner/TestMetrics.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.StressRunner/TestSetupAttribute.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.StressRunner/TestVariationAttribute.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.StressRunner/ThreadPoolTest.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/StressTests/System.Data.StressRunner/VersionUtil.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.EndPoint/Configurations.props (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.EndPoint/FederatedAuthentication/FederatedAuthenticationTicketService.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.EndPoint/FederatedAuthentication/IFederatedAuthenticationTicket.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.EndPoint/FederatedAuthentication/Rps.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.EndPoint/FederatedAuthentication/RpsTicket.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.EndPoint/ITDSClient.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.EndPoint/ITDSClientContext.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.EndPoint/ITDSServer.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.EndPoint/ITDSServerSession.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.EndPoint/PlaceholderStream.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.EndPoint/SSPI/SSPIContext.Unix.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.EndPoint/SSPI/SSPIContext.Windows.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.EndPoint/SSPI/SSPIResponse.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.EndPoint/SSPI/SecBuffer.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.EndPoint/SSPI/SecBufferDesc.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.EndPoint/SSPI/SecBufferDescType.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.EndPoint/SSPI/SecBufferType.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.EndPoint/SSPI/SecConstants.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.EndPoint/SSPI/SecContextRequirements.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.EndPoint/SSPI/SecDataRepresentation.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.EndPoint/SSPI/SecPgkCredentials.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.EndPoint/SSPI/SecPkgInfo.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.EndPoint/SSPI/SecResult.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.EndPoint/SSPI/SecurityHandle.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.EndPoint/SSPI/SecurityInteger.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.EndPoint/SSPI/SecurityWrapper.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj (91%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.EndPoint/TDSClientEndPoint.cs (99%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.EndPoint/TDSClientParser.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.EndPoint/TDSEndPointInfo.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.EndPoint/TDSEndPointTransportType.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.EndPoint/TDSParser.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.EndPoint/TDSServerEndPoint.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.EndPoint/TDSServerEndPointConnection.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.EndPoint/TDSServerParser.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.Servers/ApplicationIntentFilterType.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.Servers/AuthenticatingTDSServer.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.Servers/AuthenticatingTDSServerArguments.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.Servers/Configurations.props (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.Servers/DateFormatString.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.Servers/FederatedAuthenticationNegativeTDSScenarioType.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.Servers/FederatedAuthenticationNegativeTDSServer.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.Servers/FederatedAuthenticationNegativeTDSServerArguments.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.Servers/GenericTDSServer.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.Servers/GenericTDSServerSession.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.Servers/QueryEngine.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.Servers/RoutingTDSServer.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.Servers/RoutingTDSServerArguments.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.Servers/ServerNameFilterType.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.Servers/TDS.Servers.csproj (90%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.Servers/TDSServerArguments.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS.Servers/TdsServerCertificate.pfx (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/AllHeaders/TDSAllHeaders.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/AllHeaders/TDSHeaderType.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/AllHeaders/TDSQueryNotificationsHeader.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/AllHeaders/TDSTraceHeader.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/AllHeaders/TDSTransactionDescriptorHeader.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/AutoTDSStream.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/ColInfo/TDSColInfoToken.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/ColInfo/TDSColumnProperty.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/ColInfo/TDSColumnStatus.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/ColMetadata/TDSColMetadataToken.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/ColMetadata/TDSColumnData.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/ColMetadata/TDSColumnDataCollation.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/ColMetadata/TDSColumnDataFlags.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/ColMetadata/TDSColumnDataUpdatableFlag.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/ColMetadata/TDSDecimalColumnSpecific.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/ColMetadata/TDSShilohVarCharColumnSpecific.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/Configurations.props (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/DateFormatType.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/Done/TDSDoneInProcToken.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/Done/TDSDoneProcedureToken.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/Done/TDSDoneToken.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/Done/TDSDoneTokenCommandType.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/Done/TDSDoneTokenStatusType.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/EnvChange/TDSEnvChangeToken.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/EnvChange/TDSEnvChangeTokenType.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/EnvChange/TDSRoutingEnvChangeTokenValue.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/EnvChange/TDSRoutingEnvChangeTokenValueType.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/Error/TDSErrorToken.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/FeatureExtAck/TDSFeatureExtAckFederatedAuthenticationOption.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/FeatureExtAck/TDSFeatureExtAckGenericOption.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/FeatureExtAck/TDSFeatureExtAckOption.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/FeatureExtAck/TDSFeatureExtAckSessionStateOption.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/FeatureExtAck/TDSFeatureExtAckToken.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/FedAuthInfo/TDSFedAuthInfoId.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/FedAuthInfo/TDSFedAuthInfoOption.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/FedAuthInfo/TDSFedAuthInfoOptionSPN.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/FedAuthInfo/TDSFedAuthInfoOptionSTSURL.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/FedAuthInfo/TDSFedAuthInfoToken.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/FedAuthMessage/TDSFedAuthMessageToken.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/IDeflatable.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/IInflatable.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/Info/TDSInfoToken.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/LanguageString.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/LanguageType.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/Login7/TDSLogin7FeatureOptionToken.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/Login7/TDSLogin7FeatureOptionsToken.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/Login7/TDSLogin7FedAuthOptionToken.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/Login7/TDSLogin7GenericOptionToken.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/Login7/TDSLogin7SessionRecoveryOptionToken.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/Login7/TDSLogin7Token.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/Login7/TDSLogin7TokenOffsetProperty.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/Login7/TDSLogin7TokenOptionalFlags1.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/Login7/TDSLogin7TokenOptionalFlags2.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/Login7/TDSLogin7TokenOptionalFlags3.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/Login7/TDSLogin7TokenTypeFlags.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/LoginAck/TDSLoginAckToken.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/Order/TDSOrderToken.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/PreLogin/TDSPreLoginAuthenticationType.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/PreLogin/TDSPreLoginToken.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/PreLogin/TDSPreLoginTokenEncryptionType.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/PreLogin/TDSPreLoginTokenOption.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/PreLogin/TDSPreLoginTokenOptionType.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/ReturnStatus/TDSReturnStatusToken.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/Row/TDSNBCRowToken.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/Row/TDSRowToken.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/Row/TDSRowTokenBase.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/SQLBatch/TDSSQLBatchToken.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/SSPI/TDSSSPIClientToken.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/SSPI/TDSSSPIToken.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/SessionState/TDSSessionRecoveryData.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/SessionState/TDSSessionStateContextInfoOption.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/SessionState/TDSSessionStateDateFirstDateFormatOption.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/SessionState/TDSSessionStateDeadlockPriorityOption.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/SessionState/TDSSessionStateGenericOption.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/SessionState/TDSSessionStateISOFipsOption.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/SessionState/TDSSessionStateLockTimeoutOption.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/SessionState/TDSSessionStateOption.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/SessionState/TDSSessionStateTextSizeOption.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/SessionState/TDSSessionStateToken.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/SessionState/TDSSessionStateUserOptionsOption.cs (100%) create mode 100644 src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDS.csproj rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/TDSClientState.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/TDSDataType.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/TDSEncryptionType.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/TDSFeatureID.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/TDSMessage.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/TDSMessageCollection.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/TDSMessageType.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/TDSPacketHeader.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/TDSPacketStatus.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/TDSPacketToken.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/TDSStream.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/TDSTokenFactory.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/TDSTokenType.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/TDSUtilities.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/TDSVersion.cs (100%) rename {migrated => src/System.Data.SqlClient}/tests/Tools/TDS/TDS/TransactionIsolationLevelType.cs (100%) diff --git a/Directory.Build.props b/Directory.Build.props index b03a420e1..014a1c210 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -21,4 +21,8 @@ $(RepositoryEngineeringDir)BeforeTargetFrameworkInference.targets + + + + \ No newline at end of file diff --git a/MaintenancePackages.sln b/MaintenancePackages.sln index 0260e5e3c..5b78c524c 100644 --- a/MaintenancePackages.sln +++ b/MaintenancePackages.sln @@ -1,4 +1,4 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 +Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.0.31903.59 MinimumVisualStudioVersion = 10.0.40219.1 @@ -100,8 +100,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{4361DC59 EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Data.SqlClient", "src\System.Data.SqlClient\src\System.Data.SqlClient.csproj", "{9F2F4AE9-0194-4DB8-8BD2-F7ABE009CCFD}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Data.SqlClient.Tests", "src\System.Data.SqlClient\tests\System.Data.SqlClient.Tests.csproj", "{2213D108-7E59-44A4-9B97-F25538A58AB1}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "System.Runtime.CompilerServices.Unsafe", "System.Runtime.CompilerServices.Unsafe", "{C8D70D0B-A9D9-4386-A9A2-CFC3C2FDEBDF}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{18188B46-A3A3-4026-8D4C-59BF50EC1BB2}" @@ -112,6 +110,62 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Runtime.CompilerServices.Unsafe", "src\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{CF99D9B6-B784-4FF5-AE08-19662FAE7D91}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "FunctionalTests", "FunctionalTests", "{581FAEF2-301E-41F9-B46B-6B51EA2B927E}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ManualTests", "ManualTests", "{695749E8-3339-48D0-9650-34C72CCEEBFF}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "StressTests", "StressTests", "{9848761F-32CD-442C-BC55-ECC21562426D}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TDS", "TDS", "{CD601656-2933-4096-98D9-F82D41A85DD1}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TDS", "TDS", "{60604421-DA9B-4573-947F-375E2BEE85FD}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TDS.EndPoint", "TDS.EndPoint", "{344BA1A5-BAC4-4D80-A070-DB2CEEEF2FBF}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TDS.Servers", "TDS.Servers", "{17991DFF-526A-4A5E-9B6A-FBF6FC15E621}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Data.SqlClient.Tests", "src\System.Data.SqlClient\tests\FunctionalTests\System.Data.SqlClient.Tests.csproj", "{F3E72F35-0351-4D67-9388-725BCAD807BA}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Data.SqlClient.ManualTesting.Tests", "src\System.Data.SqlClient\tests\ManualTests\System.Data.SqlClient.ManualTesting.Tests.csproj", "{45DB5F86-7AE3-45C6-870D-F9357B66BDB5}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Address", "Address", "{206C7C67-377B-475D-9A6D-B13E0FF4FECB}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Circle", "Circle", "{9F564E0C-4486-4B03-A263-ACF04A17013D}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Shapes", "Shapes", "{8D538D30-A55E-4F96-AA6D-0C4F7483E698}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Utf8String", "Utf8String", "{57D149AF-87A0-4E04-82AE-5E6BEB80D610}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Circle", "src\System.Data.SqlClient\tests\ManualTests\SQL\UdtTest\UDTs\Circle\Circle.csproj", "{6C88F00F-9597-43AD-9E5F-9B344DA3B16F}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Shapes", "src\System.Data.SqlClient\tests\ManualTests\SQL\UdtTest\UDTs\Shapes\Shapes.csproj", "{B73A7063-37C3-415D-AD53-BB3DA20ABD6E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Utf8String", "src\System.Data.SqlClient\tests\ManualTests\SQL\UdtTest\UDTs\Utf8String\Utf8String.csproj", "{E0A6BB21-574B-43D9-890D-6E1144F2EE9E}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "IMonitorLoader", "IMonitorLoader", "{E5A83331-B0F8-45DE-A7E7-C1459A981289}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Stress", "Stress", "{6C2A4465-1A7E-4E28-BA64-5E8A489CE09F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "StressFramework", "StressFramework", "{DF4A2ACC-14C7-4C9D-B85C-ED03B9E21AB1}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "StressRunner", "StressRunner", "{E75FE0AF-5F06-4BE8-9059-D0E799D98260}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IMonitorLoader", "src\System.Data.SqlClient\tests\StressTests\IMonitorLoader\IMonitorLoader.csproj", "{AF78BA88-6428-47EA-8682-442DAF8E9656}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Data.SqlClient.Stress.Tests", "src\System.Data.SqlClient\tests\StressTests\System.Data.SqlClient.Stress.Tests\System.Data.SqlClient.Stress.Tests.csproj", "{B94B8E6D-3E41-4046-B758-4A2E281F74EE}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Data.StressFramework", "src\System.Data.SqlClient\tests\StressTests\System.Data.StressFramework\System.Data.StressFramework.csproj", "{518A4E22-0144-4699-80AE-757B744E8E38}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Data.StressRunner", "src\System.Data.SqlClient\tests\StressTests\System.Data.StressRunner\System.Data.StressRunner.csproj", "{529B187A-DE4F-4F4D-9FBB-D3D416FDB683}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TDS", "src\System.Data.SqlClient\tests\Tools\TDS\TDS\TDS.csproj", "{8DC9D1A0-351B-47BC-A90F-B9DA542550E9}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TDS.EndPoint", "src\System.Data.SqlClient\tests\Tools\TDS\TDS.EndPoint\TDS.EndPoint.csproj", "{1FF891B4-D3DE-4CCE-887C-CB48F5351A45}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TDS.Servers", "src\System.Data.SqlClient\tests\Tools\TDS\TDS.Servers\TDS.Servers.csproj", "{978063D3-FBB5-4E10-8C45-67C90BE1B931}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Address", "src\System.Data.SqlClient\tests\ManualTests\SQL\UdtTest\UDTs\Address\Address.csproj", "{D1392B54-998A-4F27-BC17-4CE149117BCC}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -194,10 +248,6 @@ Global {9F2F4AE9-0194-4DB8-8BD2-F7ABE009CCFD}.Debug|Any CPU.Build.0 = Debug|Any CPU {9F2F4AE9-0194-4DB8-8BD2-F7ABE009CCFD}.Release|Any CPU.ActiveCfg = Release|Any CPU {9F2F4AE9-0194-4DB8-8BD2-F7ABE009CCFD}.Release|Any CPU.Build.0 = Release|Any CPU - {2213D108-7E59-44A4-9B97-F25538A58AB1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2213D108-7E59-44A4-9B97-F25538A58AB1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2213D108-7E59-44A4-9B97-F25538A58AB1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2213D108-7E59-44A4-9B97-F25538A58AB1}.Release|Any CPU.Build.0 = Release|Any CPU {968B2C10-1F18-4A12-8E22-833E4195C2D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {968B2C10-1F18-4A12-8E22-833E4195C2D1}.Debug|Any CPU.Build.0 = Debug|Any CPU {968B2C10-1F18-4A12-8E22-833E4195C2D1}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -206,6 +256,58 @@ Global {CF99D9B6-B784-4FF5-AE08-19662FAE7D91}.Debug|Any CPU.Build.0 = Debug|Any CPU {CF99D9B6-B784-4FF5-AE08-19662FAE7D91}.Release|Any CPU.ActiveCfg = Release|Any CPU {CF99D9B6-B784-4FF5-AE08-19662FAE7D91}.Release|Any CPU.Build.0 = Release|Any CPU + {F3E72F35-0351-4D67-9388-725BCAD807BA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F3E72F35-0351-4D67-9388-725BCAD807BA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F3E72F35-0351-4D67-9388-725BCAD807BA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F3E72F35-0351-4D67-9388-725BCAD807BA}.Release|Any CPU.Build.0 = Release|Any CPU + {45DB5F86-7AE3-45C6-870D-F9357B66BDB5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {45DB5F86-7AE3-45C6-870D-F9357B66BDB5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {45DB5F86-7AE3-45C6-870D-F9357B66BDB5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {45DB5F86-7AE3-45C6-870D-F9357B66BDB5}.Release|Any CPU.Build.0 = Release|Any CPU + {6C88F00F-9597-43AD-9E5F-9B344DA3B16F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6C88F00F-9597-43AD-9E5F-9B344DA3B16F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6C88F00F-9597-43AD-9E5F-9B344DA3B16F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6C88F00F-9597-43AD-9E5F-9B344DA3B16F}.Release|Any CPU.Build.0 = Release|Any CPU + {B73A7063-37C3-415D-AD53-BB3DA20ABD6E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B73A7063-37C3-415D-AD53-BB3DA20ABD6E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B73A7063-37C3-415D-AD53-BB3DA20ABD6E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B73A7063-37C3-415D-AD53-BB3DA20ABD6E}.Release|Any CPU.Build.0 = Release|Any CPU + {E0A6BB21-574B-43D9-890D-6E1144F2EE9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E0A6BB21-574B-43D9-890D-6E1144F2EE9E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E0A6BB21-574B-43D9-890D-6E1144F2EE9E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E0A6BB21-574B-43D9-890D-6E1144F2EE9E}.Release|Any CPU.Build.0 = Release|Any CPU + {AF78BA88-6428-47EA-8682-442DAF8E9656}.Debug|Any CPU.ActiveCfg = netstandard-Unix-Debug|Any CPU + {AF78BA88-6428-47EA-8682-442DAF8E9656}.Debug|Any CPU.Build.0 = netstandard-Unix-Debug|Any CPU + {AF78BA88-6428-47EA-8682-442DAF8E9656}.Release|Any CPU.ActiveCfg = netstandard-Unix-Debug|Any CPU + {AF78BA88-6428-47EA-8682-442DAF8E9656}.Release|Any CPU.Build.0 = netstandard-Unix-Debug|Any CPU + {B94B8E6D-3E41-4046-B758-4A2E281F74EE}.Debug|Any CPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU + {B94B8E6D-3E41-4046-B758-4A2E281F74EE}.Debug|Any CPU.Build.0 = netcoreapp-Unix-Debug|Any CPU + {B94B8E6D-3E41-4046-B758-4A2E281F74EE}.Release|Any CPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU + {B94B8E6D-3E41-4046-B758-4A2E281F74EE}.Release|Any CPU.Build.0 = netcoreapp-Unix-Debug|Any CPU + {518A4E22-0144-4699-80AE-757B744E8E38}.Debug|Any CPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU + {518A4E22-0144-4699-80AE-757B744E8E38}.Debug|Any CPU.Build.0 = netcoreapp-Unix-Debug|Any CPU + {518A4E22-0144-4699-80AE-757B744E8E38}.Release|Any CPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU + {518A4E22-0144-4699-80AE-757B744E8E38}.Release|Any CPU.Build.0 = netcoreapp-Unix-Debug|Any CPU + {529B187A-DE4F-4F4D-9FBB-D3D416FDB683}.Debug|Any CPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU + {529B187A-DE4F-4F4D-9FBB-D3D416FDB683}.Debug|Any CPU.Build.0 = netcoreapp-Unix-Debug|Any CPU + {529B187A-DE4F-4F4D-9FBB-D3D416FDB683}.Release|Any CPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU + {529B187A-DE4F-4F4D-9FBB-D3D416FDB683}.Release|Any CPU.Build.0 = netcoreapp-Unix-Debug|Any CPU + {8DC9D1A0-351B-47BC-A90F-B9DA542550E9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8DC9D1A0-351B-47BC-A90F-B9DA542550E9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8DC9D1A0-351B-47BC-A90F-B9DA542550E9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8DC9D1A0-351B-47BC-A90F-B9DA542550E9}.Release|Any CPU.Build.0 = Release|Any CPU + {1FF891B4-D3DE-4CCE-887C-CB48F5351A45}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1FF891B4-D3DE-4CCE-887C-CB48F5351A45}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1FF891B4-D3DE-4CCE-887C-CB48F5351A45}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1FF891B4-D3DE-4CCE-887C-CB48F5351A45}.Release|Any CPU.Build.0 = Release|Any CPU + {978063D3-FBB5-4E10-8C45-67C90BE1B931}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {978063D3-FBB5-4E10-8C45-67C90BE1B931}.Debug|Any CPU.Build.0 = Debug|Any CPU + {978063D3-FBB5-4E10-8C45-67C90BE1B931}.Release|Any CPU.ActiveCfg = Release|Any CPU + {978063D3-FBB5-4E10-8C45-67C90BE1B931}.Release|Any CPU.Build.0 = Release|Any CPU + {D1392B54-998A-4F27-BC17-4CE149117BCC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D1392B54-998A-4F27-BC17-4CE149117BCC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D1392B54-998A-4F27-BC17-4CE149117BCC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D1392B54-998A-4F27-BC17-4CE149117BCC}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -250,13 +352,40 @@ Global {C5E54919-D128-450F-9BC5-5DCC53E30BB7} = {0CBCFB7A-1844-40A8-86F3-5FDA33E8077B} {4361DC59-9F75-487B-841B-A067B0E5B9D4} = {0CBCFB7A-1844-40A8-86F3-5FDA33E8077B} {9F2F4AE9-0194-4DB8-8BD2-F7ABE009CCFD} = {C5E54919-D128-450F-9BC5-5DCC53E30BB7} - {2213D108-7E59-44A4-9B97-F25538A58AB1} = {4361DC59-9F75-487B-841B-A067B0E5B9D4} {18188B46-A3A3-4026-8D4C-59BF50EC1BB2} = {C8D70D0B-A9D9-4386-A9A2-CFC3C2FDEBDF} {981189F1-3DF3-44ED-BB11-20822008F85D} = {C8D70D0B-A9D9-4386-A9A2-CFC3C2FDEBDF} {968B2C10-1F18-4A12-8E22-833E4195C2D1} = {981189F1-3DF3-44ED-BB11-20822008F85D} {CF99D9B6-B784-4FF5-AE08-19662FAE7D91} = {18188B46-A3A3-4026-8D4C-59BF50EC1BB2} + {581FAEF2-301E-41F9-B46B-6B51EA2B927E} = {4361DC59-9F75-487B-841B-A067B0E5B9D4} + {695749E8-3339-48D0-9650-34C72CCEEBFF} = {4361DC59-9F75-487B-841B-A067B0E5B9D4} + {9848761F-32CD-442C-BC55-ECC21562426D} = {4361DC59-9F75-487B-841B-A067B0E5B9D4} + {CD601656-2933-4096-98D9-F82D41A85DD1} = {4361DC59-9F75-487B-841B-A067B0E5B9D4} + {60604421-DA9B-4573-947F-375E2BEE85FD} = {CD601656-2933-4096-98D9-F82D41A85DD1} + {344BA1A5-BAC4-4D80-A070-DB2CEEEF2FBF} = {CD601656-2933-4096-98D9-F82D41A85DD1} + {17991DFF-526A-4A5E-9B6A-FBF6FC15E621} = {CD601656-2933-4096-98D9-F82D41A85DD1} + {F3E72F35-0351-4D67-9388-725BCAD807BA} = {581FAEF2-301E-41F9-B46B-6B51EA2B927E} + {45DB5F86-7AE3-45C6-870D-F9357B66BDB5} = {695749E8-3339-48D0-9650-34C72CCEEBFF} + {206C7C67-377B-475D-9A6D-B13E0FF4FECB} = {695749E8-3339-48D0-9650-34C72CCEEBFF} + {9F564E0C-4486-4B03-A263-ACF04A17013D} = {695749E8-3339-48D0-9650-34C72CCEEBFF} + {8D538D30-A55E-4F96-AA6D-0C4F7483E698} = {695749E8-3339-48D0-9650-34C72CCEEBFF} + {57D149AF-87A0-4E04-82AE-5E6BEB80D610} = {695749E8-3339-48D0-9650-34C72CCEEBFF} + {6C88F00F-9597-43AD-9E5F-9B344DA3B16F} = {9F564E0C-4486-4B03-A263-ACF04A17013D} + {B73A7063-37C3-415D-AD53-BB3DA20ABD6E} = {8D538D30-A55E-4F96-AA6D-0C4F7483E698} + {E0A6BB21-574B-43D9-890D-6E1144F2EE9E} = {57D149AF-87A0-4E04-82AE-5E6BEB80D610} + {E5A83331-B0F8-45DE-A7E7-C1459A981289} = {9848761F-32CD-442C-BC55-ECC21562426D} + {6C2A4465-1A7E-4E28-BA64-5E8A489CE09F} = {9848761F-32CD-442C-BC55-ECC21562426D} + {DF4A2ACC-14C7-4C9D-B85C-ED03B9E21AB1} = {9848761F-32CD-442C-BC55-ECC21562426D} + {E75FE0AF-5F06-4BE8-9059-D0E799D98260} = {9848761F-32CD-442C-BC55-ECC21562426D} + {AF78BA88-6428-47EA-8682-442DAF8E9656} = {E5A83331-B0F8-45DE-A7E7-C1459A981289} + {B94B8E6D-3E41-4046-B758-4A2E281F74EE} = {6C2A4465-1A7E-4E28-BA64-5E8A489CE09F} + {518A4E22-0144-4699-80AE-757B744E8E38} = {DF4A2ACC-14C7-4C9D-B85C-ED03B9E21AB1} + {529B187A-DE4F-4F4D-9FBB-D3D416FDB683} = {E75FE0AF-5F06-4BE8-9059-D0E799D98260} + {8DC9D1A0-351B-47BC-A90F-B9DA542550E9} = {60604421-DA9B-4573-947F-375E2BEE85FD} + {1FF891B4-D3DE-4CCE-887C-CB48F5351A45} = {344BA1A5-BAC4-4D80-A070-DB2CEEEF2FBF} + {978063D3-FBB5-4E10-8C45-67C90BE1B931} = {17991DFF-526A-4A5E-9B6A-FBF6FC15E621} + {D1392B54-998A-4F27-BC17-4CE149117BCC} = {206C7C67-377B-475D-9A6D-B13E0FF4FECB} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {588483EB-F59C-4D9E-A1C7-C85D719CA1B0} EndGlobalSection -EndGlobal \ No newline at end of file +EndGlobal diff --git a/migrated/Directory.Build.props b/migrated/Directory.Build.props deleted file mode 100644 index fd941e01d..000000000 --- a/migrated/Directory.Build.props +++ /dev/null @@ -1,13 +0,0 @@ - - - - - 4.8.6 - 4.6.1.6 - - 4.6.1.0 - Microsoft - true - - \ No newline at end of file diff --git a/migrated/System.Data.SqlClient.sln b/migrated/System.Data.SqlClient.sln deleted file mode 100644 index 6dfcf8dbe..000000000 --- a/migrated/System.Data.SqlClient.sln +++ /dev/null @@ -1,173 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27213.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Data.SqlClient.Tests", "tests\FunctionalTests\System.Data.SqlClient.Tests.csproj", "{F3E72F35-0351-4D67-9388-725BCAD807BA}" - ProjectSection(ProjectDependencies) = postProject - {D4550556-4745-457F-BA8F-3EBF3836D6B4} = {D4550556-4745-457F-BA8F-3EBF3836D6B4} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Address", "tests\ManualTests\SQL\UdtTest\UDTs\Address\Address.csproj", "{D1392B54-998A-4F27-BC17-4CE149117BCC}" - ProjectSection(ProjectDependencies) = postProject - {D4550556-4745-457F-BA8F-3EBF3836D6B4} = {D4550556-4745-457F-BA8F-3EBF3836D6B4} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Circle", "tests\ManualTests\SQL\UdtTest\UDTs\Circle\Circle.csproj", "{6C88F00F-9597-43AD-9E5F-9B344DA3B16F}" - ProjectSection(ProjectDependencies) = postProject - {D4550556-4745-457F-BA8F-3EBF3836D6B4} = {D4550556-4745-457F-BA8F-3EBF3836D6B4} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Shapes", "tests\ManualTests\SQL\UdtTest\UDTs\Shapes\Shapes.csproj", "{B73A7063-37C3-415D-AD53-BB3DA20ABD6E}" - ProjectSection(ProjectDependencies) = postProject - {D4550556-4745-457F-BA8F-3EBF3836D6B4} = {D4550556-4745-457F-BA8F-3EBF3836D6B4} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Utf8String", "tests\ManualTests\SQL\UdtTest\UDTs\Utf8String\Utf8String.csproj", "{E0A6BB21-574B-43D9-890D-6E1144F2EE9E}" - ProjectSection(ProjectDependencies) = postProject - {D4550556-4745-457F-BA8F-3EBF3836D6B4} = {D4550556-4745-457F-BA8F-3EBF3836D6B4} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Data.SqlClient.ManualTesting.Tests", "tests\ManualTests\System.Data.SqlClient.ManualTesting.Tests.csproj", "{45DB5F86-7AE3-45C6-870D-F9357B66BDB5}" - ProjectSection(ProjectDependencies) = postProject - {D4550556-4745-457F-BA8F-3EBF3836D6B4} = {D4550556-4745-457F-BA8F-3EBF3836D6B4} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IMonitorLoader", "tests\StressTests\IMonitorLoader\IMonitorLoader.csproj", "{AF78BA88-6428-47EA-8682-442DAF8E9656}" - ProjectSection(ProjectDependencies) = postProject - {D4550556-4745-457F-BA8F-3EBF3836D6B4} = {D4550556-4745-457F-BA8F-3EBF3836D6B4} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Data.SqlClient.Stress.Tests", "tests\StressTests\System.Data.SqlClient.Stress.Tests\System.Data.SqlClient.Stress.Tests.csproj", "{B94B8E6D-3E41-4046-B758-4A2E281F74EE}" - ProjectSection(ProjectDependencies) = postProject - {D4550556-4745-457F-BA8F-3EBF3836D6B4} = {D4550556-4745-457F-BA8F-3EBF3836D6B4} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Data.StressFramework", "tests\StressTests\System.Data.StressFramework\System.Data.StressFramework.csproj", "{518A4E22-0144-4699-80AE-757B744E8E38}" - ProjectSection(ProjectDependencies) = postProject - {D4550556-4745-457F-BA8F-3EBF3836D6B4} = {D4550556-4745-457F-BA8F-3EBF3836D6B4} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Data.StressRunner", "tests\StressTests\System.Data.StressRunner\System.Data.StressRunner.csproj", "{529B187A-DE4F-4F4D-9FBB-D3D416FDB683}" - ProjectSection(ProjectDependencies) = postProject - {D4550556-4745-457F-BA8F-3EBF3836D6B4} = {D4550556-4745-457F-BA8F-3EBF3836D6B4} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TDS.EndPoint", "tests\Tools\TDS\TDS.EndPoint\TDS.EndPoint.csproj", "{1FF891B4-D3DE-4CCE-887C-CB48F5351A45}" - ProjectSection(ProjectDependencies) = postProject - {D4550556-4745-457F-BA8F-3EBF3836D6B4} = {D4550556-4745-457F-BA8F-3EBF3836D6B4} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TDS.Servers", "tests\Tools\TDS\TDS.Servers\TDS.Servers.csproj", "{978063D3-FBB5-4E10-8C45-67C90BE1B931}" - ProjectSection(ProjectDependencies) = postProject - {D4550556-4745-457F-BA8F-3EBF3836D6B4} = {D4550556-4745-457F-BA8F-3EBF3836D6B4} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TDS", "tests\Tools\TDS\TDS\TDS.csproj", "{8DC9D1A0-351B-47BC-A90F-B9DA542550E9}" - ProjectSection(ProjectDependencies) = postProject - {D4550556-4745-457F-BA8F-3EBF3836D6B4} = {D4550556-4745-457F-BA8F-3EBF3836D6B4} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Data.SqlClient", "src\System.Data.SqlClient.csproj", "{D4550556-4745-457F-BA8F-3EBF3836D6B4}" - ProjectSection(ProjectDependencies) = postProject - {D58E8D2B-3331-4660-8DFB-512D66F8EC63} = {D58E8D2B-3331-4660-8DFB-512D66F8EC63} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Data.SqlClient", "ref\System.Data.SqlClient.csproj", "{D58E8D2B-3331-4660-8DFB-512D66F8EC63}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {F3E72F35-0351-4D67-9388-725BCAD807BA}.Debug|Any CPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU - {F3E72F35-0351-4D67-9388-725BCAD807BA}.Debug|Any CPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU - {F3E72F35-0351-4D67-9388-725BCAD807BA}.Release|Any CPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU - {F3E72F35-0351-4D67-9388-725BCAD807BA}.Release|Any CPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU - {D1392B54-998A-4F27-BC17-4CE149117BCC}.Debug|Any CPU.ActiveCfg = netcoreapp-Debug|Any CPU - {D1392B54-998A-4F27-BC17-4CE149117BCC}.Debug|Any CPU.Build.0 = netcoreapp-Debug|Any CPU - {D1392B54-998A-4F27-BC17-4CE149117BCC}.Release|Any CPU.ActiveCfg = netstandard-Release|Any CPU - {D1392B54-998A-4F27-BC17-4CE149117BCC}.Release|Any CPU.Build.0 = netstandard-Release|Any CPU - {6C88F00F-9597-43AD-9E5F-9B344DA3B16F}.Debug|Any CPU.ActiveCfg = netcoreapp-Debug|Any CPU - {6C88F00F-9597-43AD-9E5F-9B344DA3B16F}.Debug|Any CPU.Build.0 = netcoreapp-Debug|Any CPU - {6C88F00F-9597-43AD-9E5F-9B344DA3B16F}.Release|Any CPU.ActiveCfg = netstandard-Release|Any CPU - {6C88F00F-9597-43AD-9E5F-9B344DA3B16F}.Release|Any CPU.Build.0 = netstandard-Release|Any CPU - {B73A7063-37C3-415D-AD53-BB3DA20ABD6E}.Debug|Any CPU.ActiveCfg = netcoreapp-Debug|Any CPU - {B73A7063-37C3-415D-AD53-BB3DA20ABD6E}.Debug|Any CPU.Build.0 = netcoreapp-Debug|Any CPU - {B73A7063-37C3-415D-AD53-BB3DA20ABD6E}.Release|Any CPU.ActiveCfg = netstandard-Release|Any CPU - {B73A7063-37C3-415D-AD53-BB3DA20ABD6E}.Release|Any CPU.Build.0 = netstandard-Release|Any CPU - {E0A6BB21-574B-43D9-890D-6E1144F2EE9E}.Debug|Any CPU.ActiveCfg = netcoreapp-Debug|Any CPU - {E0A6BB21-574B-43D9-890D-6E1144F2EE9E}.Debug|Any CPU.Build.0 = netcoreapp-Debug|Any CPU - {E0A6BB21-574B-43D9-890D-6E1144F2EE9E}.Release|Any CPU.ActiveCfg = netstandard-Release|Any CPU - {E0A6BB21-574B-43D9-890D-6E1144F2EE9E}.Release|Any CPU.Build.0 = netstandard-Release|Any CPU - {45DB5F86-7AE3-45C6-870D-F9357B66BDB5}.Debug|Any CPU.ActiveCfg = netcoreapp-Debug|Any CPU - {45DB5F86-7AE3-45C6-870D-F9357B66BDB5}.Debug|Any CPU.Build.0 = netcoreapp-Debug|Any CPU - {45DB5F86-7AE3-45C6-870D-F9357B66BDB5}.Release|Any CPU.ActiveCfg = netcoreapp-Release|Any CPU - {45DB5F86-7AE3-45C6-870D-F9357B66BDB5}.Release|Any CPU.Build.0 = netcoreapp-Release|Any CPU - {AF78BA88-6428-47EA-8682-442DAF8E9656}.Debug|Any CPU.ActiveCfg = netstandard-Windows_NT-Debug|Any CPU - {AF78BA88-6428-47EA-8682-442DAF8E9656}.Debug|Any CPU.Build.0 = netstandard-Windows_NT-Debug|Any CPU - {AF78BA88-6428-47EA-8682-442DAF8E9656}.Release|Any CPU.ActiveCfg = netstandard-Windows_NT-Release|Any CPU - {AF78BA88-6428-47EA-8682-442DAF8E9656}.Release|Any CPU.Build.0 = netstandard-Windows_NT-Release|Any CPU - {B94B8E6D-3E41-4046-B758-4A2E281F74EE}.Debug|Any CPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU - {B94B8E6D-3E41-4046-B758-4A2E281F74EE}.Debug|Any CPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU - {B94B8E6D-3E41-4046-B758-4A2E281F74EE}.Release|Any CPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU - {B94B8E6D-3E41-4046-B758-4A2E281F74EE}.Release|Any CPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU - {518A4E22-0144-4699-80AE-757B744E8E38}.Debug|Any CPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU - {518A4E22-0144-4699-80AE-757B744E8E38}.Debug|Any CPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU - {518A4E22-0144-4699-80AE-757B744E8E38}.Release|Any CPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU - {518A4E22-0144-4699-80AE-757B744E8E38}.Release|Any CPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU - {529B187A-DE4F-4F4D-9FBB-D3D416FDB683}.Debug|Any CPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU - {529B187A-DE4F-4F4D-9FBB-D3D416FDB683}.Debug|Any CPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU - {529B187A-DE4F-4F4D-9FBB-D3D416FDB683}.Release|Any CPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU - {529B187A-DE4F-4F4D-9FBB-D3D416FDB683}.Release|Any CPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU - {1FF891B4-D3DE-4CCE-887C-CB48F5351A45}.Debug|Any CPU.ActiveCfg = netstandard-Windows_NT-Debug|Any CPU - {1FF891B4-D3DE-4CCE-887C-CB48F5351A45}.Debug|Any CPU.Build.0 = netstandard-Windows_NT-Debug|Any CPU - {1FF891B4-D3DE-4CCE-887C-CB48F5351A45}.Release|Any CPU.ActiveCfg = netstandard-Windows_NT-Release|Any CPU - {1FF891B4-D3DE-4CCE-887C-CB48F5351A45}.Release|Any CPU.Build.0 = netstandard-Windows_NT-Release|Any CPU - {978063D3-FBB5-4E10-8C45-67C90BE1B931}.Debug|Any CPU.ActiveCfg = netstandard-Windows_NT-Debug|Any CPU - {978063D3-FBB5-4E10-8C45-67C90BE1B931}.Debug|Any CPU.Build.0 = netstandard-Windows_NT-Debug|Any CPU - {978063D3-FBB5-4E10-8C45-67C90BE1B931}.Release|Any CPU.ActiveCfg = netstandard-Windows_NT-Release|Any CPU - {978063D3-FBB5-4E10-8C45-67C90BE1B931}.Release|Any CPU.Build.0 = netstandard-Windows_NT-Release|Any CPU - {8DC9D1A0-351B-47BC-A90F-B9DA542550E9}.Debug|Any CPU.ActiveCfg = netstandard-Windows_NT-Debug|Any CPU - {8DC9D1A0-351B-47BC-A90F-B9DA542550E9}.Debug|Any CPU.Build.0 = netstandard-Windows_NT-Debug|Any CPU - {8DC9D1A0-351B-47BC-A90F-B9DA542550E9}.Release|Any CPU.ActiveCfg = netstandard-Windows_NT-Release|Any CPU - {8DC9D1A0-351B-47BC-A90F-B9DA542550E9}.Release|Any CPU.Build.0 = netstandard-Windows_NT-Release|Any CPU - {D4550556-4745-457F-BA8F-3EBF3836D6B4}.Debug|Any CPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU - {D4550556-4745-457F-BA8F-3EBF3836D6B4}.Debug|Any CPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU - {D4550556-4745-457F-BA8F-3EBF3836D6B4}.Release|Any CPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU - {D4550556-4745-457F-BA8F-3EBF3836D6B4}.Release|Any CPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU - {D58E8D2B-3331-4660-8DFB-512D66F8EC63}.Debug|Any CPU.ActiveCfg = netcoreapp-Debug|Any CPU - {D58E8D2B-3331-4660-8DFB-512D66F8EC63}.Debug|Any CPU.Build.0 = netcoreapp-Debug|Any CPU - {D58E8D2B-3331-4660-8DFB-512D66F8EC63}.Release|Any CPU.ActiveCfg = netcoreapp-Release|Any CPU - {D58E8D2B-3331-4660-8DFB-512D66F8EC63}.Release|Any CPU.Build.0 = netcoreapp-Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {F3E72F35-0351-4D67-9388-725BCAD807BA} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {D1392B54-998A-4F27-BC17-4CE149117BCC} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {6C88F00F-9597-43AD-9E5F-9B344DA3B16F} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {B73A7063-37C3-415D-AD53-BB3DA20ABD6E} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {E0A6BB21-574B-43D9-890D-6E1144F2EE9E} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {45DB5F86-7AE3-45C6-870D-F9357B66BDB5} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {AF78BA88-6428-47EA-8682-442DAF8E9656} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {B94B8E6D-3E41-4046-B758-4A2E281F74EE} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {518A4E22-0144-4699-80AE-757B744E8E38} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {529B187A-DE4F-4F4D-9FBB-D3D416FDB683} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {1FF891B4-D3DE-4CCE-887C-CB48F5351A45} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {978063D3-FBB5-4E10-8C45-67C90BE1B931} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {8DC9D1A0-351B-47BC-A90F-B9DA542550E9} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} - {D4550556-4745-457F-BA8F-3EBF3836D6B4} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} - {D58E8D2B-3331-4660-8DFB-512D66F8EC63} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {D25C803E-4BF4-4DC3-BCD4-F9E7C193FF4D} - EndGlobalSection -EndGlobal diff --git a/migrated/pkg/System.Data.SqlClient.pkgproj b/migrated/pkg/System.Data.SqlClient.pkgproj deleted file mode 100644 index 807212a50..000000000 --- a/migrated/pkg/System.Data.SqlClient.pkgproj +++ /dev/null @@ -1,31 +0,0 @@ - - - - - net461;netcoreapp2.0;uap10.0.16299;$(UAPvNextTFM);$(AllXamarinFrameworks) - - - - - - net451;win81;wpa81 - - - net46;netcoreapp1.0 - - - - - - .NETCoreApp;UAP - - - - - - - \ No newline at end of file diff --git a/migrated/ref/Configurations.props b/migrated/ref/Configurations.props deleted file mode 100644 index 329687c1c..000000000 --- a/migrated/ref/Configurations.props +++ /dev/null @@ -1,14 +0,0 @@ - - - - netcoreapp2.1; - netstandard; - net461; - - - $(PackageConfigurations) - netcoreapp; - netfx; - - - \ No newline at end of file diff --git a/migrated/ref/System.Data.SqlClient.Forwards.cs b/migrated/ref/System.Data.SqlClient.Forwards.cs deleted file mode 100644 index f1a8014e2..000000000 --- a/migrated/ref/System.Data.SqlClient.Forwards.cs +++ /dev/null @@ -1,31 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. -// ------------------------------------------------------------------------------ -// Changes to this file must follow the http://aka.ms/api-review process. -// ------------------------------------------------------------------------------ - -[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlDbType))] -[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.StatementCompletedEventArgs))] -[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.StatementCompletedEventHandler))] -[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlTypes.INullable))] -[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlTypes.SqlBinary))] -[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlTypes.SqlBoolean))] -[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlTypes.SqlByte))] -[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlTypes.SqlBytes))] -[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlTypes.SqlChars))] -[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlTypes.SqlCompareOptions))] -[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlTypes.SqlDateTime))] -[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlTypes.SqlDecimal))] -[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlTypes.SqlDouble))] -[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlTypes.SqlGuid))] -[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlTypes.SqlInt16))] -[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlTypes.SqlInt32))] -[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlTypes.SqlInt64))] -[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlTypes.SqlMoney))] -[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlTypes.SqlNullValueException))] -[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlTypes.SqlSingle))] -[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlTypes.SqlString))] -[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlTypes.SqlTruncateException))] -[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlTypes.SqlTypeException))] -[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlTypes.SqlXml))] diff --git a/migrated/ref/System.Data.SqlClient.Manual.cs b/migrated/ref/System.Data.SqlClient.Manual.cs deleted file mode 100644 index 01af8569b..000000000 --- a/migrated/ref/System.Data.SqlClient.Manual.cs +++ /dev/null @@ -1,25 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. -// ------------------------------------------------------------------------------ -// Changes to this file must follow the http://aka.ms/api-review process. -// ------------------------------------------------------------------------------ - -namespace System.Data.SqlClient -{ - public sealed partial class SqlCommand : System.Data.Common.DbCommand - { - // SqlCommand expects IDisposable methods to be implemented via System.ComponentModel.Component, which it no longer inherits from - protected override void Dispose(bool disposing) { } - } - public sealed partial class SqlConnection : System.Data.Common.DbConnection - { - // SqlConection expects IDisposable methods to be implemented via System.ComponentModel.Component, which it no longer inherits from - protected override void Dispose(bool disposing) { } - } - [System.ComponentModel.TypeConverter(typeof(SqlParameterConverter))] - public sealed partial class SqlParameter - { - internal class SqlParameterConverter { } - } -} diff --git a/migrated/ref/System.Data.SqlClient.NetCoreApp.cs b/migrated/ref/System.Data.SqlClient.NetCoreApp.cs deleted file mode 100644 index 742e5012f..000000000 --- a/migrated/ref/System.Data.SqlClient.NetCoreApp.cs +++ /dev/null @@ -1,57 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. -// ------------------------------------------------------------------------------ -// Changes to this file must follow the http://aka.ms/api-review process. -// ------------------------------------------------------------------------------ - -namespace Microsoft.SqlServer.Server -{ - [System.AttributeUsageAttribute(System.AttributeTargets.Field | System.AttributeTargets.Parameter | System.AttributeTargets.Property | System.AttributeTargets.ReturnValue, AllowMultiple=false, Inherited=false)] - public partial class SqlFacetAttribute : System.Attribute - { - public SqlFacetAttribute() { } - public bool IsFixedLength { get { throw null; } set { } } - public bool IsNullable { get { throw null; } set { } } - public int MaxSize { get { throw null; } set { } } - public int Precision { get { throw null; } set { } } - public int Scale { get { throw null; } set { } } - } -} -namespace System.Data.SqlClient -{ - public partial class SqlDataReader : System.Data.Common.IDbColumnSchemaGenerator - { - public System.Collections.ObjectModel.ReadOnlyCollection GetColumnSchema() { throw null; } - } - public enum PoolBlockingPeriod - { - AlwaysBlock = 1, - Auto = 0, - NeverBlock = 2, - } - public sealed partial class SqlConnectionStringBuilder : System.Data.Common.DbConnectionStringBuilder - { - public System.Data.SqlClient.PoolBlockingPeriod PoolBlockingPeriod { get { throw null; } set { } } - } -} -namespace System.Data.SqlTypes -{ - public sealed partial class SqlFileStream : System.IO.Stream - { - public SqlFileStream(string path, byte[] transactionContext, System.IO.FileAccess access) { } - public SqlFileStream(string path, byte[] transactionContext, System.IO.FileAccess access, System.IO.FileOptions options, long allocationSize) { } - public override bool CanRead { get { throw null; } } - public override bool CanSeek { get { throw null; } } - public override bool CanWrite { get { throw null; } } - public override long Length { get { throw null; } } - public string Name { get { throw null; } } - public override long Position { get { throw null; } set { } } - public byte[] TransactionContext { get { throw null; } } - public override void Flush() { } - public override int Read(byte[] buffer, int offset, int count) { throw null; } - public override long Seek(long offset, System.IO.SeekOrigin origin) { throw null; } - public override void SetLength(long value) { } - public override void Write(byte[] buffer, int offset, int count) { } - } -} diff --git a/migrated/ref/System.Data.SqlClient.cs b/migrated/ref/System.Data.SqlClient.cs deleted file mode 100644 index f28542b0b..000000000 --- a/migrated/ref/System.Data.SqlClient.cs +++ /dev/null @@ -1,842 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. -// ------------------------------------------------------------------------------ -// Changes to this file must follow the http://aka.ms/api-review process. -// ------------------------------------------------------------------------------ - -namespace Microsoft.SqlServer.Server -{ - public enum DataAccessKind - { - None = 0, - Read = 1, - } - public enum Format - { - Unknown = 0, - Native = 1, - UserDefined = 2, - } - public partial interface IBinarySerialize - { - void Read(System.IO.BinaryReader r); - void Write(System.IO.BinaryWriter w); - } - public sealed partial class InvalidUdtException : System.SystemException - { - internal InvalidUdtException() { } - } - public partial class SqlDataRecord : System.Data.IDataRecord - { - public SqlDataRecord(params Microsoft.SqlServer.Server.SqlMetaData[] metaData) { } - public virtual int FieldCount { get { throw null; } } - public virtual object this[int ordinal] { get { throw null; } } - public virtual object this[string name] { get { throw null; } } - public virtual bool GetBoolean(int ordinal) { throw null; } - public virtual byte GetByte(int ordinal) { throw null; } - public virtual long GetBytes(int ordinal, long fieldOffset, byte[] buffer, int bufferOffset, int length) { throw null; } - public virtual char GetChar(int ordinal) { throw null; } - public virtual long GetChars(int ordinal, long fieldOffset, char[] buffer, int bufferOffset, int length) { throw null; } - public virtual string GetDataTypeName(int ordinal) { throw null; } - public virtual System.DateTime GetDateTime(int ordinal) { throw null; } - public virtual System.DateTimeOffset GetDateTimeOffset(int ordinal) { throw null; } - public virtual decimal GetDecimal(int ordinal) { throw null; } - public virtual double GetDouble(int ordinal) { throw null; } - public virtual System.Type GetFieldType(int ordinal) { throw null; } - public virtual float GetFloat(int ordinal) { throw null; } - public virtual System.Guid GetGuid(int ordinal) { throw null; } - public virtual short GetInt16(int ordinal) { throw null; } - public virtual int GetInt32(int ordinal) { throw null; } - public virtual long GetInt64(int ordinal) { throw null; } - public virtual string GetName(int ordinal) { throw null; } - public virtual int GetOrdinal(string name) { throw null; } - public virtual System.Data.SqlTypes.SqlBinary GetSqlBinary(int ordinal) { throw null; } - public virtual System.Data.SqlTypes.SqlBoolean GetSqlBoolean(int ordinal) { throw null; } - public virtual System.Data.SqlTypes.SqlByte GetSqlByte(int ordinal) { throw null; } - public virtual System.Data.SqlTypes.SqlBytes GetSqlBytes(int ordinal) { throw null; } - public virtual System.Data.SqlTypes.SqlChars GetSqlChars(int ordinal) { throw null; } - public virtual System.Data.SqlTypes.SqlDateTime GetSqlDateTime(int ordinal) { throw null; } - public virtual System.Data.SqlTypes.SqlDecimal GetSqlDecimal(int ordinal) { throw null; } - public virtual System.Data.SqlTypes.SqlDouble GetSqlDouble(int ordinal) { throw null; } - public virtual System.Type GetSqlFieldType(int ordinal) { throw null; } - public virtual System.Data.SqlTypes.SqlGuid GetSqlGuid(int ordinal) { throw null; } - public virtual System.Data.SqlTypes.SqlInt16 GetSqlInt16(int ordinal) { throw null; } - public virtual System.Data.SqlTypes.SqlInt32 GetSqlInt32(int ordinal) { throw null; } - public virtual System.Data.SqlTypes.SqlInt64 GetSqlInt64(int ordinal) { throw null; } - public virtual Microsoft.SqlServer.Server.SqlMetaData GetSqlMetaData(int ordinal) { throw null; } - public virtual System.Data.SqlTypes.SqlMoney GetSqlMoney(int ordinal) { throw null; } - public virtual System.Data.SqlTypes.SqlSingle GetSqlSingle(int ordinal) { throw null; } - public virtual System.Data.SqlTypes.SqlString GetSqlString(int ordinal) { throw null; } - public virtual object GetSqlValue(int ordinal) { throw null; } - public virtual int GetSqlValues(object[] values) { throw null; } - public virtual System.Data.SqlTypes.SqlXml GetSqlXml(int ordinal) { throw null; } - public virtual string GetString(int ordinal) { throw null; } - public virtual System.TimeSpan GetTimeSpan(int ordinal) { throw null; } - public virtual object GetValue(int ordinal) { throw null; } - public virtual int GetValues(object[] values) { throw null; } - public virtual bool IsDBNull(int ordinal) { throw null; } - public virtual void SetBoolean(int ordinal, bool value) { } - public virtual void SetByte(int ordinal, byte value) { } - public virtual void SetBytes(int ordinal, long fieldOffset, byte[] buffer, int bufferOffset, int length) { } - public virtual void SetChar(int ordinal, char value) { } - public virtual void SetChars(int ordinal, long fieldOffset, char[] buffer, int bufferOffset, int length) { } - public virtual void SetDateTime(int ordinal, System.DateTime value) { } - public virtual void SetDateTimeOffset(int ordinal, System.DateTimeOffset value) { } - public virtual void SetDBNull(int ordinal) { } - public virtual void SetDecimal(int ordinal, decimal value) { } - public virtual void SetDouble(int ordinal, double value) { } - public virtual void SetFloat(int ordinal, float value) { } - public virtual void SetGuid(int ordinal, System.Guid value) { } - public virtual void SetInt16(int ordinal, short value) { } - public virtual void SetInt32(int ordinal, int value) { } - public virtual void SetInt64(int ordinal, long value) { } - public virtual void SetSqlBinary(int ordinal, System.Data.SqlTypes.SqlBinary value) { } - public virtual void SetSqlBoolean(int ordinal, System.Data.SqlTypes.SqlBoolean value) { } - public virtual void SetSqlByte(int ordinal, System.Data.SqlTypes.SqlByte value) { } - public virtual void SetSqlBytes(int ordinal, System.Data.SqlTypes.SqlBytes value) { } - public virtual void SetSqlChars(int ordinal, System.Data.SqlTypes.SqlChars value) { } - public virtual void SetSqlDateTime(int ordinal, System.Data.SqlTypes.SqlDateTime value) { } - public virtual void SetSqlDecimal(int ordinal, System.Data.SqlTypes.SqlDecimal value) { } - public virtual void SetSqlDouble(int ordinal, System.Data.SqlTypes.SqlDouble value) { } - public virtual void SetSqlGuid(int ordinal, System.Data.SqlTypes.SqlGuid value) { } - public virtual void SetSqlInt16(int ordinal, System.Data.SqlTypes.SqlInt16 value) { } - public virtual void SetSqlInt32(int ordinal, System.Data.SqlTypes.SqlInt32 value) { } - public virtual void SetSqlInt64(int ordinal, System.Data.SqlTypes.SqlInt64 value) { } - public virtual void SetSqlMoney(int ordinal, System.Data.SqlTypes.SqlMoney value) { } - public virtual void SetSqlSingle(int ordinal, System.Data.SqlTypes.SqlSingle value) { } - public virtual void SetSqlString(int ordinal, System.Data.SqlTypes.SqlString value) { } - public virtual void SetSqlXml(int ordinal, System.Data.SqlTypes.SqlXml value) { } - public virtual void SetString(int ordinal, string value) { } - public virtual void SetTimeSpan(int ordinal, System.TimeSpan value) { } - public virtual void SetValue(int ordinal, object value) { } - public virtual int SetValues(params object[] values) { throw null; } - System.Data.IDataReader System.Data.IDataRecord.GetData(int ordinal) { throw null; } - } - [System.AttributeUsageAttribute(System.AttributeTargets.Method, AllowMultiple=false, Inherited=false)] - public partial class SqlFunctionAttribute : System.Attribute - { - public SqlFunctionAttribute() { } - public Microsoft.SqlServer.Server.DataAccessKind DataAccess { get { throw null; } set { } } - public string FillRowMethodName { get { throw null; } set { } } - public bool IsDeterministic { get { throw null; } set { } } - public bool IsPrecise { get { throw null; } set { } } - public string Name { get { throw null; } set { } } - public Microsoft.SqlServer.Server.SystemDataAccessKind SystemDataAccess { get { throw null; } set { } } - public string TableDefinition { get { throw null; } set { } } - } - public sealed partial class SqlMetaData - { - public SqlMetaData(string name, System.Data.SqlDbType dbType) { } - public SqlMetaData(string name, System.Data.SqlDbType dbType, bool useServerDefault, bool isUniqueKey, System.Data.SqlClient.SortOrder columnSortOrder, int sortOrdinal) { } - public SqlMetaData(string name, System.Data.SqlDbType dbType, byte precision, byte scale) { } - public SqlMetaData(string name, System.Data.SqlDbType dbType, byte precision, byte scale, bool useServerDefault, bool isUniqueKey, System.Data.SqlClient.SortOrder columnSortOrder, int sortOrdinal) { } - public SqlMetaData(string name, System.Data.SqlDbType dbType, long maxLength) { } - public SqlMetaData(string name, System.Data.SqlDbType dbType, long maxLength, bool useServerDefault, bool isUniqueKey, System.Data.SqlClient.SortOrder columnSortOrder, int sortOrdinal) { } - public SqlMetaData(string name, System.Data.SqlDbType dbType, long maxLength, byte precision, byte scale, long locale, System.Data.SqlTypes.SqlCompareOptions compareOptions, System.Type userDefinedType) { } - public SqlMetaData(string name, System.Data.SqlDbType dbType, long maxLength, byte precision, byte scale, long localeId, System.Data.SqlTypes.SqlCompareOptions compareOptions, System.Type userDefinedType, bool useServerDefault, bool isUniqueKey, System.Data.SqlClient.SortOrder columnSortOrder, int sortOrdinal) { } - public SqlMetaData(string name, System.Data.SqlDbType dbType, long maxLength, long locale, System.Data.SqlTypes.SqlCompareOptions compareOptions) { } - public SqlMetaData(string name, System.Data.SqlDbType dbType, long maxLength, long locale, System.Data.SqlTypes.SqlCompareOptions compareOptions, bool useServerDefault, bool isUniqueKey, System.Data.SqlClient.SortOrder columnSortOrder, int sortOrdinal) { } - public SqlMetaData(string name, System.Data.SqlDbType dbType, string database, string owningSchema, string objectName) { } - public SqlMetaData(string name, System.Data.SqlDbType dbType, string database, string owningSchema, string objectName, bool useServerDefault, bool isUniqueKey, System.Data.SqlClient.SortOrder columnSortOrder, int sortOrdinal) { } - public SqlMetaData(string name, System.Data.SqlDbType dbType, System.Type userDefinedType) { } - public SqlMetaData(string name, System.Data.SqlDbType dbType, System.Type userDefinedType, string serverTypeName) { } - public SqlMetaData(string name, System.Data.SqlDbType dbType, System.Type userDefinedType, string serverTypeName, bool useServerDefault, bool isUniqueKey, System.Data.SqlClient.SortOrder columnSortOrder, int sortOrdinal) { } - public System.Data.SqlTypes.SqlCompareOptions CompareOptions { get { throw null; } } - public System.Data.DbType DbType { get { throw null; } } - public bool IsUniqueKey { get { throw null; } } - public long LocaleId { get { throw null; } } - public static long Max { get { throw null; } } - public long MaxLength { get { throw null; } } - public string Name { get { throw null; } } - public byte Precision { get { throw null; } } - public byte Scale { get { throw null; } } - public System.Data.SqlClient.SortOrder SortOrder { get { throw null; } } - public int SortOrdinal { get { throw null; } } - public System.Data.SqlDbType SqlDbType { get { throw null; } } - public System.Type Type { get { throw null; } } - public string TypeName { get { throw null; } } - public bool UseServerDefault { get { throw null; } } - public string XmlSchemaCollectionDatabase { get { throw null; } } - public string XmlSchemaCollectionName { get { throw null; } } - public string XmlSchemaCollectionOwningSchema { get { throw null; } } - public bool Adjust(bool value) { throw null; } - public byte Adjust(byte value) { throw null; } - public byte[] Adjust(byte[] value) { throw null; } - public char Adjust(char value) { throw null; } - public char[] Adjust(char[] value) { throw null; } - public System.Data.SqlTypes.SqlBinary Adjust(System.Data.SqlTypes.SqlBinary value) { throw null; } - public System.Data.SqlTypes.SqlBoolean Adjust(System.Data.SqlTypes.SqlBoolean value) { throw null; } - public System.Data.SqlTypes.SqlByte Adjust(System.Data.SqlTypes.SqlByte value) { throw null; } - public System.Data.SqlTypes.SqlBytes Adjust(System.Data.SqlTypes.SqlBytes value) { throw null; } - public System.Data.SqlTypes.SqlChars Adjust(System.Data.SqlTypes.SqlChars value) { throw null; } - public System.Data.SqlTypes.SqlDateTime Adjust(System.Data.SqlTypes.SqlDateTime value) { throw null; } - public System.Data.SqlTypes.SqlDecimal Adjust(System.Data.SqlTypes.SqlDecimal value) { throw null; } - public System.Data.SqlTypes.SqlDouble Adjust(System.Data.SqlTypes.SqlDouble value) { throw null; } - public System.Data.SqlTypes.SqlGuid Adjust(System.Data.SqlTypes.SqlGuid value) { throw null; } - public System.Data.SqlTypes.SqlInt16 Adjust(System.Data.SqlTypes.SqlInt16 value) { throw null; } - public System.Data.SqlTypes.SqlInt32 Adjust(System.Data.SqlTypes.SqlInt32 value) { throw null; } - public System.Data.SqlTypes.SqlInt64 Adjust(System.Data.SqlTypes.SqlInt64 value) { throw null; } - public System.Data.SqlTypes.SqlMoney Adjust(System.Data.SqlTypes.SqlMoney value) { throw null; } - public System.Data.SqlTypes.SqlSingle Adjust(System.Data.SqlTypes.SqlSingle value) { throw null; } - public System.Data.SqlTypes.SqlString Adjust(System.Data.SqlTypes.SqlString value) { throw null; } - public System.Data.SqlTypes.SqlXml Adjust(System.Data.SqlTypes.SqlXml value) { throw null; } - public System.DateTime Adjust(System.DateTime value) { throw null; } - public System.DateTimeOffset Adjust(System.DateTimeOffset value) { throw null; } - public decimal Adjust(decimal value) { throw null; } - public double Adjust(double value) { throw null; } - public System.Guid Adjust(System.Guid value) { throw null; } - public short Adjust(short value) { throw null; } - public int Adjust(int value) { throw null; } - public long Adjust(long value) { throw null; } - public object Adjust(object value) { throw null; } - public float Adjust(float value) { throw null; } - public string Adjust(string value) { throw null; } - public System.TimeSpan Adjust(System.TimeSpan value) { throw null; } - public static Microsoft.SqlServer.Server.SqlMetaData InferFromValue(object value, string name) { throw null; } - } - [System.AttributeUsageAttribute(System.AttributeTargets.Method, AllowMultiple=false, Inherited=false)] - public sealed partial class SqlMethodAttribute : Microsoft.SqlServer.Server.SqlFunctionAttribute - { - public SqlMethodAttribute() { } - public bool InvokeIfReceiverIsNull { get { throw null; } set { } } - public bool IsMutator { get { throw null; } set { } } - public bool OnNullCall { get { throw null; } set { } } - } - [System.AttributeUsageAttribute(System.AttributeTargets.Class | System.AttributeTargets.Struct, AllowMultiple=false, Inherited=false)] - public sealed partial class SqlUserDefinedAggregateAttribute : System.Attribute - { - public const int MaxByteSizeValue = 8000; - public SqlUserDefinedAggregateAttribute(Microsoft.SqlServer.Server.Format format) { } - public Microsoft.SqlServer.Server.Format Format { get { throw null; } } - public bool IsInvariantToDuplicates { get { throw null; } set { } } - public bool IsInvariantToNulls { get { throw null; } set { } } - public bool IsInvariantToOrder { get { throw null; } set { } } - public bool IsNullIfEmpty { get { throw null; } set { } } - public int MaxByteSize { get { throw null; } set { } } - public string Name { get { throw null; } set { } } - } - [System.AttributeUsageAttribute(System.AttributeTargets.Class | System.AttributeTargets.Struct, AllowMultiple=false, Inherited=true)] - public sealed partial class SqlUserDefinedTypeAttribute : System.Attribute - { - public SqlUserDefinedTypeAttribute(Microsoft.SqlServer.Server.Format format) { } - public Microsoft.SqlServer.Server.Format Format { get { throw null; } } - public bool IsByteOrdered { get { throw null; } set { } } - public bool IsFixedLength { get { throw null; } set { } } - public int MaxByteSize { get { throw null; } set { } } - public string Name { get { throw null; } set { } } - public string ValidationMethodName { get { throw null; } set { } } - } - public enum SystemDataAccessKind - { - None = 0, - Read = 1, - } -} -namespace System.Data -{ - public sealed partial class OperationAbortedException : System.SystemException - { - internal OperationAbortedException() { } - } -} -namespace System.Data.Sql -{ - public sealed partial class SqlNotificationRequest - { - public SqlNotificationRequest() { } - public SqlNotificationRequest(string userData, string options, int timeout) { } - public string Options { get { throw null; } set { } } - public int Timeout { get { throw null; } set { } } - public string UserData { get { throw null; } set { } } - } -} -namespace System.Data.SqlClient -{ - public enum ApplicationIntent - { - ReadWrite = 0, - ReadOnly = 1, - } - public delegate void OnChangeEventHandler(object sender, System.Data.SqlClient.SqlNotificationEventArgs e); - public enum SortOrder - { - Unspecified = -1, - Ascending = 0, - Descending = 1, - } - public sealed partial class SqlBulkCopy : System.IDisposable - { - public SqlBulkCopy(System.Data.SqlClient.SqlConnection connection) { } - public SqlBulkCopy(System.Data.SqlClient.SqlConnection connection, System.Data.SqlClient.SqlBulkCopyOptions copyOptions, System.Data.SqlClient.SqlTransaction externalTransaction) { } - public SqlBulkCopy(string connectionString) { } - public SqlBulkCopy(string connectionString, System.Data.SqlClient.SqlBulkCopyOptions copyOptions) { } - public int BatchSize { get { throw null; } set { } } - public int BulkCopyTimeout { get { throw null; } set { } } - public System.Data.SqlClient.SqlBulkCopyColumnMappingCollection ColumnMappings { get { throw null; } } - public string DestinationTableName { get { throw null; } set { } } - public bool EnableStreaming { get { throw null; } set { } } - public int NotifyAfter { get { throw null; } set { } } - public event System.Data.SqlClient.SqlRowsCopiedEventHandler SqlRowsCopied { add { } remove { } } - public void Close() { } - void System.IDisposable.Dispose() { } - public void WriteToServer(System.Data.Common.DbDataReader reader) { } - public void WriteToServer(System.Data.DataRow[] rows) { } - public void WriteToServer(System.Data.DataTable table) { } - public void WriteToServer(System.Data.DataTable table, System.Data.DataRowState rowState) { } - public void WriteToServer(System.Data.IDataReader reader) { } - public System.Threading.Tasks.Task WriteToServerAsync(System.Data.Common.DbDataReader reader) { throw null; } - public System.Threading.Tasks.Task WriteToServerAsync(System.Data.Common.DbDataReader reader, System.Threading.CancellationToken cancellationToken) { throw null; } - public System.Threading.Tasks.Task WriteToServerAsync(System.Data.DataRow[] rows) { throw null; } - public System.Threading.Tasks.Task WriteToServerAsync(System.Data.DataRow[] rows, System.Threading.CancellationToken cancellationToken) { throw null; } - public System.Threading.Tasks.Task WriteToServerAsync(System.Data.DataTable table) { throw null; } - public System.Threading.Tasks.Task WriteToServerAsync(System.Data.DataTable table, System.Data.DataRowState rowState) { throw null; } - public System.Threading.Tasks.Task WriteToServerAsync(System.Data.DataTable table, System.Data.DataRowState rowState, System.Threading.CancellationToken cancellationToken) { throw null; } - public System.Threading.Tasks.Task WriteToServerAsync(System.Data.DataTable table, System.Threading.CancellationToken cancellationToken) { throw null; } - public System.Threading.Tasks.Task WriteToServerAsync(System.Data.IDataReader reader) { throw null; } - public System.Threading.Tasks.Task WriteToServerAsync(System.Data.IDataReader reader, System.Threading.CancellationToken cancellationToken) { throw null; } - } - public sealed partial class SqlBulkCopyColumnMapping - { - public SqlBulkCopyColumnMapping() { } - public SqlBulkCopyColumnMapping(int sourceColumnOrdinal, int destinationOrdinal) { } - public SqlBulkCopyColumnMapping(int sourceColumnOrdinal, string destinationColumn) { } - public SqlBulkCopyColumnMapping(string sourceColumn, int destinationOrdinal) { } - public SqlBulkCopyColumnMapping(string sourceColumn, string destinationColumn) { } - public string DestinationColumn { get { throw null; } set { } } - public int DestinationOrdinal { get { throw null; } set { } } - public string SourceColumn { get { throw null; } set { } } - public int SourceOrdinal { get { throw null; } set { } } - } - public sealed partial class SqlBulkCopyColumnMappingCollection : System.Collections.CollectionBase - { - internal SqlBulkCopyColumnMappingCollection() { } - public System.Data.SqlClient.SqlBulkCopyColumnMapping this[int index] { get { throw null; } } - public System.Data.SqlClient.SqlBulkCopyColumnMapping Add(System.Data.SqlClient.SqlBulkCopyColumnMapping bulkCopyColumnMapping) { throw null; } - public System.Data.SqlClient.SqlBulkCopyColumnMapping Add(int sourceColumnIndex, int destinationColumnIndex) { throw null; } - public System.Data.SqlClient.SqlBulkCopyColumnMapping Add(int sourceColumnIndex, string destinationColumn) { throw null; } - public System.Data.SqlClient.SqlBulkCopyColumnMapping Add(string sourceColumn, int destinationColumnIndex) { throw null; } - public System.Data.SqlClient.SqlBulkCopyColumnMapping Add(string sourceColumn, string destinationColumn) { throw null; } - public new void Clear() { } - public bool Contains(System.Data.SqlClient.SqlBulkCopyColumnMapping value) { throw null; } - public void CopyTo(System.Data.SqlClient.SqlBulkCopyColumnMapping[] array, int index) { } - public int IndexOf(System.Data.SqlClient.SqlBulkCopyColumnMapping value) { throw null; } - public void Insert(int index, System.Data.SqlClient.SqlBulkCopyColumnMapping value) { } - public void Remove(System.Data.SqlClient.SqlBulkCopyColumnMapping value) { } - public new void RemoveAt(int index) { } - } - [System.FlagsAttribute] - public enum SqlBulkCopyOptions - { - Default = 0, - KeepIdentity = 1, - CheckConstraints = 2, - TableLock = 4, - KeepNulls = 8, - FireTriggers = 16, - UseInternalTransaction = 32, - } - public sealed partial class SqlClientFactory : System.Data.Common.DbProviderFactory - { - internal SqlClientFactory() { } - public static readonly System.Data.SqlClient.SqlClientFactory Instance; - public override System.Data.Common.DbCommand CreateCommand() { throw null; } - public override System.Data.Common.DbCommandBuilder CreateCommandBuilder() { throw null; } - public override System.Data.Common.DbConnection CreateConnection() { throw null; } - public override System.Data.Common.DbConnectionStringBuilder CreateConnectionStringBuilder() { throw null; } - public override System.Data.Common.DbDataAdapter CreateDataAdapter() { throw null; } - public override System.Data.Common.DbParameter CreateParameter() { throw null; } - } - public static partial class SqlClientMetaDataCollectionNames - { - public static readonly string Columns; - public static readonly string Databases; - public static readonly string ForeignKeys; - public static readonly string IndexColumns; - public static readonly string Indexes; - public static readonly string Parameters; - public static readonly string ProcedureColumns; - public static readonly string Procedures; - public static readonly string Tables; - public static readonly string UserDefinedTypes; - public static readonly string Users; - public static readonly string ViewColumns; - public static readonly string Views; - } - public sealed partial class SqlCommand : System.Data.Common.DbCommand, System.ICloneable - { - public SqlCommand() { } - public SqlCommand(string cmdText) { } - public SqlCommand(string cmdText, System.Data.SqlClient.SqlConnection connection) { } - public SqlCommand(string cmdText, System.Data.SqlClient.SqlConnection connection, System.Data.SqlClient.SqlTransaction transaction) { } - public override string CommandText { get { throw null; } set { } } - public override int CommandTimeout { get { throw null; } set { } } - public override System.Data.CommandType CommandType { get { throw null; } set { } } - public new System.Data.SqlClient.SqlConnection Connection { get { throw null; } set { } } - protected override System.Data.Common.DbConnection DbConnection { get { throw null; } set { } } - protected override System.Data.Common.DbParameterCollection DbParameterCollection { get { throw null; } } - protected override System.Data.Common.DbTransaction DbTransaction { get { throw null; } set { } } - public override bool DesignTimeVisible { get { throw null; } set { } } - public System.Data.Sql.SqlNotificationRequest Notification { get { throw null; } set { } } - public new System.Data.SqlClient.SqlParameterCollection Parameters { get { throw null; } } - public new System.Data.SqlClient.SqlTransaction Transaction { get { throw null; } set { } } - public override System.Data.UpdateRowSource UpdatedRowSource { get { throw null; } set { } } - public event System.Data.StatementCompletedEventHandler StatementCompleted { add { } remove { } } - public System.IAsyncResult BeginExecuteNonQuery() { throw null; } - public System.IAsyncResult BeginExecuteNonQuery(System.AsyncCallback callback, object stateObject) { throw null; } - public System.IAsyncResult BeginExecuteReader() { throw null; } - public System.IAsyncResult BeginExecuteReader(System.AsyncCallback callback, object stateObject) { throw null; } - public System.IAsyncResult BeginExecuteReader(System.AsyncCallback callback, object stateObject, System.Data.CommandBehavior behavior) { throw null; } - public System.IAsyncResult BeginExecuteReader(System.Data.CommandBehavior behavior) { throw null; } - public System.IAsyncResult BeginExecuteXmlReader() { throw null; } - public System.IAsyncResult BeginExecuteXmlReader(System.AsyncCallback callback, object stateObject) { throw null; } - public override void Cancel() { } - public System.Data.SqlClient.SqlCommand Clone() { throw null; } - protected override System.Data.Common.DbParameter CreateDbParameter() { throw null; } - public new System.Data.SqlClient.SqlParameter CreateParameter() { throw null; } - public int EndExecuteNonQuery(System.IAsyncResult asyncResult) { throw null; } - public System.Data.SqlClient.SqlDataReader EndExecuteReader(System.IAsyncResult asyncResult) { throw null; } - public System.Xml.XmlReader EndExecuteXmlReader(System.IAsyncResult asyncResult) { throw null; } - protected override System.Data.Common.DbDataReader ExecuteDbDataReader(System.Data.CommandBehavior behavior) { throw null; } - protected override System.Threading.Tasks.Task ExecuteDbDataReaderAsync(System.Data.CommandBehavior behavior, System.Threading.CancellationToken cancellationToken) { throw null; } - public override int ExecuteNonQuery() { throw null; } - public override System.Threading.Tasks.Task ExecuteNonQueryAsync(System.Threading.CancellationToken cancellationToken) { throw null; } - public new System.Data.SqlClient.SqlDataReader ExecuteReader() { throw null; } - public new System.Data.SqlClient.SqlDataReader ExecuteReader(System.Data.CommandBehavior behavior) { throw null; } - public new System.Threading.Tasks.Task ExecuteReaderAsync() { throw null; } - public new System.Threading.Tasks.Task ExecuteReaderAsync(System.Data.CommandBehavior behavior) { throw null; } - public new System.Threading.Tasks.Task ExecuteReaderAsync(System.Data.CommandBehavior behavior, System.Threading.CancellationToken cancellationToken) { throw null; } - public new System.Threading.Tasks.Task ExecuteReaderAsync(System.Threading.CancellationToken cancellationToken) { throw null; } - public override object ExecuteScalar() { throw null; } - public override System.Threading.Tasks.Task ExecuteScalarAsync(System.Threading.CancellationToken cancellationToken) { throw null; } - public System.Xml.XmlReader ExecuteXmlReader() { throw null; } - public System.Threading.Tasks.Task ExecuteXmlReaderAsync() { throw null; } - public System.Threading.Tasks.Task ExecuteXmlReaderAsync(System.Threading.CancellationToken cancellationToken) { throw null; } - public override void Prepare() { } - public void ResetCommandTimeout() { } - object System.ICloneable.Clone() { throw null; } - } - public sealed partial class SqlCommandBuilder : System.Data.Common.DbCommandBuilder - { - public SqlCommandBuilder() { } - public SqlCommandBuilder(System.Data.SqlClient.SqlDataAdapter adapter) { } - public override System.Data.Common.CatalogLocation CatalogLocation { get { throw null; } set { } } - public override string CatalogSeparator { get { throw null; } set { } } - public new System.Data.SqlClient.SqlDataAdapter DataAdapter { get { throw null; } set { } } - public override string QuotePrefix { get { throw null; } set { } } - public override string QuoteSuffix { get { throw null; } set { } } - public override string SchemaSeparator { get { throw null; } set { } } - protected override void ApplyParameterInfo(System.Data.Common.DbParameter parameter, System.Data.DataRow datarow, System.Data.StatementType statementType, bool whereClause) { } - public static void DeriveParameters(System.Data.SqlClient.SqlCommand command) { } - public new System.Data.SqlClient.SqlCommand GetDeleteCommand() { throw null; } - public new System.Data.SqlClient.SqlCommand GetDeleteCommand(bool useColumnsForParameterNames) { throw null; } - public new System.Data.SqlClient.SqlCommand GetInsertCommand() { throw null; } - public new System.Data.SqlClient.SqlCommand GetInsertCommand(bool useColumnsForParameterNames) { throw null; } - protected override string GetParameterName(int parameterOrdinal) { throw null; } - protected override string GetParameterName(string parameterName) { throw null; } - protected override string GetParameterPlaceholder(int parameterOrdinal) { throw null; } - protected override System.Data.DataTable GetSchemaTable(System.Data.Common.DbCommand srcCommand) { throw null; } - public new System.Data.SqlClient.SqlCommand GetUpdateCommand() { throw null; } - public new System.Data.SqlClient.SqlCommand GetUpdateCommand(bool useColumnsForParameterNames) { throw null; } - protected override System.Data.Common.DbCommand InitializeCommand(System.Data.Common.DbCommand command) { throw null; } - public override string QuoteIdentifier(string unquotedIdentifier) { throw null; } - protected override void SetRowUpdatingHandler(System.Data.Common.DbDataAdapter adapter) { } - public override string UnquoteIdentifier(string quotedIdentifier) { throw null; } - } - public sealed partial class SqlConnection : System.Data.Common.DbConnection, System.ICloneable - { - public SqlConnection() { } - public SqlConnection(string connectionString) { } - public SqlConnection(string connectionString, System.Data.SqlClient.SqlCredential credential) { } - public string AccessToken { get { throw null; } set { } } - public System.Guid ClientConnectionId { get { throw null; } } - public override string ConnectionString { get { throw null; } set { } } - public override int ConnectionTimeout { get { throw null; } } - public System.Data.SqlClient.SqlCredential Credential { get { throw null; } set { } } - public override string Database { get { throw null; } } - public override string DataSource { get { throw null; } } - public bool FireInfoMessageEventOnUserErrors { get { throw null; } set { } } - public int PacketSize { get { throw null; } } - public override string ServerVersion { get { throw null; } } - public override System.Data.ConnectionState State { get { throw null; } } - public bool StatisticsEnabled { get { throw null; } set { } } - public string WorkstationId { get { throw null; } } - public event System.Data.SqlClient.SqlInfoMessageEventHandler InfoMessage { add { } remove { } } - protected override System.Data.Common.DbTransaction BeginDbTransaction(System.Data.IsolationLevel isolationLevel) { throw null; } - public new System.Data.SqlClient.SqlTransaction BeginTransaction() { throw null; } - public new System.Data.SqlClient.SqlTransaction BeginTransaction(System.Data.IsolationLevel iso) { throw null; } - public System.Data.SqlClient.SqlTransaction BeginTransaction(System.Data.IsolationLevel iso, string transactionName) { throw null; } - public System.Data.SqlClient.SqlTransaction BeginTransaction(string transactionName) { throw null; } - public override void ChangeDatabase(string database) { } - public static void ChangePassword(string connectionString, System.Data.SqlClient.SqlCredential credential, System.Security.SecureString newPassword) { } - public static void ChangePassword(string connectionString, string newPassword) { } - public static void ClearAllPools() { } - public static void ClearPool(System.Data.SqlClient.SqlConnection connection) { } - public override void Close() { } - public new System.Data.SqlClient.SqlCommand CreateCommand() { throw null; } - protected override System.Data.Common.DbCommand CreateDbCommand() { throw null; } - public override System.Data.DataTable GetSchema() { throw null; } - public override System.Data.DataTable GetSchema(string collectionName) { throw null; } - public override System.Data.DataTable GetSchema(string collectionName, string[] restrictionValues) { throw null; } - public override void Open() { } - public override System.Threading.Tasks.Task OpenAsync(System.Threading.CancellationToken cancellationToken) { throw null; } - public void ResetStatistics() { } - public System.Collections.IDictionary RetrieveStatistics() { throw null; } - object System.ICloneable.Clone() { throw null; } - } - public sealed partial class SqlConnectionStringBuilder : System.Data.Common.DbConnectionStringBuilder - { - public SqlConnectionStringBuilder() { } - public SqlConnectionStringBuilder(string connectionString) { } - public System.Data.SqlClient.ApplicationIntent ApplicationIntent { get { throw null; } set { } } - public string ApplicationName { get { throw null; } set { } } - public string AttachDBFilename { get { throw null; } set { } } - public int ConnectRetryCount { get { throw null; } set { } } - public int ConnectRetryInterval { get { throw null; } set { } } - public int ConnectTimeout { get { throw null; } set { } } - public string CurrentLanguage { get { throw null; } set { } } - public string DataSource { get { throw null; } set { } } - public bool Encrypt { get { throw null; } set { } } - public bool Enlist { get { throw null; } set { } } - public string FailoverPartner { get { throw null; } set { } } - public string InitialCatalog { get { throw null; } set { } } - public bool IntegratedSecurity { get { throw null; } set { } } - public override object this[string keyword] { get { throw null; } set { } } - public override System.Collections.ICollection Keys { get { throw null; } } - public int LoadBalanceTimeout { get { throw null; } set { } } - public int MaxPoolSize { get { throw null; } set { } } - public int MinPoolSize { get { throw null; } set { } } - public bool MultipleActiveResultSets { get { throw null; } set { } } - public bool MultiSubnetFailover { get { throw null; } set { } } - public int PacketSize { get { throw null; } set { } } - public string Password { get { throw null; } set { } } - public bool PersistSecurityInfo { get { throw null; } set { } } - public bool Pooling { get { throw null; } set { } } - public bool Replication { get { throw null; } set { } } - public string TransactionBinding { get { throw null; } set { } } - public bool TrustServerCertificate { get { throw null; } set { } } - public string TypeSystemVersion { get { throw null; } set { } } - public string UserID { get { throw null; } set { } } - public bool UserInstance { get { throw null; } set { } } - public override System.Collections.ICollection Values { get { throw null; } } - public string WorkstationID { get { throw null; } set { } } - public override void Clear() { } - public override bool ContainsKey(string keyword) { throw null; } - public override bool Remove(string keyword) { throw null; } - public override bool ShouldSerialize(string keyword) { throw null; } - public override bool TryGetValue(string keyword, out object value) { throw null; } - } - public sealed partial class SqlCredential - { - public SqlCredential(string userId, System.Security.SecureString password) { } - public System.Security.SecureString Password { get { throw null; } } - public string UserId { get { throw null; } } - } - public sealed partial class SqlDataAdapter : System.Data.Common.DbDataAdapter, System.Data.IDataAdapter, System.Data.IDbDataAdapter, System.ICloneable - { - public SqlDataAdapter() { } - public SqlDataAdapter(System.Data.SqlClient.SqlCommand selectCommand) { } - public SqlDataAdapter(string selectCommandText, System.Data.SqlClient.SqlConnection selectConnection) { } - public SqlDataAdapter(string selectCommandText, string selectConnectionString) { } - public new System.Data.SqlClient.SqlCommand DeleteCommand { get { throw null; } set { } } - public new System.Data.SqlClient.SqlCommand InsertCommand { get { throw null; } set { } } - public new System.Data.SqlClient.SqlCommand SelectCommand { get { throw null; } set { } } - System.Data.IDbCommand System.Data.IDbDataAdapter.DeleteCommand { get { throw null; } set { } } - System.Data.IDbCommand System.Data.IDbDataAdapter.InsertCommand { get { throw null; } set { } } - System.Data.IDbCommand System.Data.IDbDataAdapter.SelectCommand { get { throw null; } set { } } - System.Data.IDbCommand System.Data.IDbDataAdapter.UpdateCommand { get { throw null; } set { } } - public override int UpdateBatchSize { get { throw null; } set { } } - public new System.Data.SqlClient.SqlCommand UpdateCommand { get { throw null; } set { } } - public event System.Data.SqlClient.SqlRowUpdatedEventHandler RowUpdated { add { } remove { } } - public event System.Data.SqlClient.SqlRowUpdatingEventHandler RowUpdating { add { } remove { } } - protected override void OnRowUpdated(System.Data.Common.RowUpdatedEventArgs value) { } - protected override void OnRowUpdating(System.Data.Common.RowUpdatingEventArgs value) { } - object System.ICloneable.Clone() { throw null; } - } - public partial class SqlDataReader : System.Data.Common.DbDataReader, System.IDisposable - { - internal SqlDataReader() { } - protected System.Data.SqlClient.SqlConnection Connection { get { throw null; } } - public override int Depth { get { throw null; } } - public override int FieldCount { get { throw null; } } - public override bool HasRows { get { throw null; } } - public override bool IsClosed { get { throw null; } } - public override object this[int i] { get { throw null; } } - public override object this[string name] { get { throw null; } } - public override int RecordsAffected { get { throw null; } } - public override int VisibleFieldCount { get { throw null; } } - public override bool GetBoolean(int i) { throw null; } - public override byte GetByte(int i) { throw null; } - public override long GetBytes(int i, long dataIndex, byte[] buffer, int bufferIndex, int length) { throw null; } - public override char GetChar(int i) { throw null; } - public override long GetChars(int i, long dataIndex, char[] buffer, int bufferIndex, int length) { throw null; } - public override string GetDataTypeName(int i) { throw null; } - public override System.DateTime GetDateTime(int i) { throw null; } - public virtual System.DateTimeOffset GetDateTimeOffset(int i) { throw null; } - public override decimal GetDecimal(int i) { throw null; } - public override double GetDouble(int i) { throw null; } - public override System.Collections.IEnumerator GetEnumerator() { throw null; } - public override System.Type GetFieldType(int i) { throw null; } - public override System.Threading.Tasks.Task GetFieldValueAsync(int i, System.Threading.CancellationToken cancellationToken) { throw null; } - public override T GetFieldValue(int i) { throw null; } - public override float GetFloat(int i) { throw null; } - public override System.Guid GetGuid(int i) { throw null; } - public override short GetInt16(int i) { throw null; } - public override int GetInt32(int i) { throw null; } - public override long GetInt64(int i) { throw null; } - public override string GetName(int i) { throw null; } - public override int GetOrdinal(string name) { throw null; } - public override System.Type GetProviderSpecificFieldType(int i) { throw null; } - public override object GetProviderSpecificValue(int i) { throw null; } - public override int GetProviderSpecificValues(object[] values) { throw null; } - public override System.Data.DataTable GetSchemaTable() { throw null; } - public virtual System.Data.SqlTypes.SqlBinary GetSqlBinary(int i) { throw null; } - public virtual System.Data.SqlTypes.SqlBoolean GetSqlBoolean(int i) { throw null; } - public virtual System.Data.SqlTypes.SqlByte GetSqlByte(int i) { throw null; } - public virtual System.Data.SqlTypes.SqlBytes GetSqlBytes(int i) { throw null; } - public virtual System.Data.SqlTypes.SqlChars GetSqlChars(int i) { throw null; } - public virtual System.Data.SqlTypes.SqlDateTime GetSqlDateTime(int i) { throw null; } - public virtual System.Data.SqlTypes.SqlDecimal GetSqlDecimal(int i) { throw null; } - public virtual System.Data.SqlTypes.SqlDouble GetSqlDouble(int i) { throw null; } - public virtual System.Data.SqlTypes.SqlGuid GetSqlGuid(int i) { throw null; } - public virtual System.Data.SqlTypes.SqlInt16 GetSqlInt16(int i) { throw null; } - public virtual System.Data.SqlTypes.SqlInt32 GetSqlInt32(int i) { throw null; } - public virtual System.Data.SqlTypes.SqlInt64 GetSqlInt64(int i) { throw null; } - public virtual System.Data.SqlTypes.SqlMoney GetSqlMoney(int i) { throw null; } - public virtual System.Data.SqlTypes.SqlSingle GetSqlSingle(int i) { throw null; } - public virtual System.Data.SqlTypes.SqlString GetSqlString(int i) { throw null; } - public virtual object GetSqlValue(int i) { throw null; } - public virtual int GetSqlValues(object[] values) { throw null; } - public virtual System.Data.SqlTypes.SqlXml GetSqlXml(int i) { throw null; } - public override System.IO.Stream GetStream(int i) { throw null; } - public override string GetString(int i) { throw null; } - public override System.IO.TextReader GetTextReader(int i) { throw null; } - public virtual System.TimeSpan GetTimeSpan(int i) { throw null; } - public override object GetValue(int i) { throw null; } - public override int GetValues(object[] values) { throw null; } - public virtual System.Xml.XmlReader GetXmlReader(int i) { throw null; } - protected internal bool IsCommandBehavior(System.Data.CommandBehavior condition) { throw null; } - public override bool IsDBNull(int i) { throw null; } - public override System.Threading.Tasks.Task IsDBNullAsync(int i, System.Threading.CancellationToken cancellationToken) { throw null; } - public override bool NextResult() { throw null; } - public override System.Threading.Tasks.Task NextResultAsync(System.Threading.CancellationToken cancellationToken) { throw null; } - public override bool Read() { throw null; } - public override System.Threading.Tasks.Task ReadAsync(System.Threading.CancellationToken cancellationToken) { throw null; } - } - public sealed partial class SqlDependency - { - public SqlDependency() { } - public SqlDependency(System.Data.SqlClient.SqlCommand command) { } - public SqlDependency(System.Data.SqlClient.SqlCommand command, string options, int timeout) { } - public bool HasChanges { get { throw null; } } - public string Id { get { throw null; } } - public event System.Data.SqlClient.OnChangeEventHandler OnChange { add { } remove { } } - public void AddCommandDependency(System.Data.SqlClient.SqlCommand command) { } - public static bool Start(string connectionString) { throw null; } - public static bool Start(string connectionString, string queue) { throw null; } - public static bool Stop(string connectionString) { throw null; } - public static bool Stop(string connectionString, string queue) { throw null; } - } - public sealed partial class SqlError - { - internal SqlError() { } - public byte Class { get { throw null; } } - public int LineNumber { get { throw null; } } - public string Message { get { throw null; } } - public int Number { get { throw null; } } - public string Procedure { get { throw null; } } - public string Server { get { throw null; } } - public string Source { get { throw null; } } - public byte State { get { throw null; } } - public override string ToString() { throw null; } - } - public sealed partial class SqlErrorCollection : System.Collections.ICollection, System.Collections.IEnumerable - { - internal SqlErrorCollection() { } - public int Count { get { throw null; } } - public System.Data.SqlClient.SqlError this[int index] { get { throw null; } } - bool System.Collections.ICollection.IsSynchronized { get { throw null; } } - object System.Collections.ICollection.SyncRoot { get { throw null; } } - public void CopyTo(System.Array array, int index) { } - public void CopyTo(System.Data.SqlClient.SqlError[] array, int index) { } - public System.Collections.IEnumerator GetEnumerator() { throw null; } - } - public sealed partial class SqlException : System.Data.Common.DbException - { - internal SqlException() { } - public byte Class { get { throw null; } } - public System.Guid ClientConnectionId { get { throw null; } } - public System.Data.SqlClient.SqlErrorCollection Errors { get { throw null; } } - public int LineNumber { get { throw null; } } - public int Number { get { throw null; } } - public string Procedure { get { throw null; } } - public string Server { get { throw null; } } - public override string Source { get { throw null; } } - public byte State { get { throw null; } } - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo si, System.Runtime.Serialization.StreamingContext context) { } - public override string ToString() { throw null; } - } - public sealed partial class SqlInfoMessageEventArgs : System.EventArgs - { - internal SqlInfoMessageEventArgs() { } - public System.Data.SqlClient.SqlErrorCollection Errors { get { throw null; } } - public string Message { get { throw null; } } - public string Source { get { throw null; } } - public override string ToString() { throw null; } - } - public delegate void SqlInfoMessageEventHandler(object sender, System.Data.SqlClient.SqlInfoMessageEventArgs e); - public partial class SqlNotificationEventArgs : System.EventArgs - { - public SqlNotificationEventArgs(System.Data.SqlClient.SqlNotificationType type, System.Data.SqlClient.SqlNotificationInfo info, System.Data.SqlClient.SqlNotificationSource source) { } - public System.Data.SqlClient.SqlNotificationInfo Info { get { throw null; } } - public System.Data.SqlClient.SqlNotificationSource Source { get { throw null; } } - public System.Data.SqlClient.SqlNotificationType Type { get { throw null; } } - } - public enum SqlNotificationInfo - { - AlreadyChanged = -2, - Unknown = -1, - Truncate = 0, - Insert = 1, - Update = 2, - Delete = 3, - Drop = 4, - Alter = 5, - Restart = 6, - Error = 7, - Query = 8, - Invalid = 9, - Options = 10, - Isolation = 11, - Expired = 12, - Resource = 13, - PreviousFire = 14, - TemplateLimit = 15, - Merge = 16, - } - public enum SqlNotificationSource - { - Client = -2, - Unknown = -1, - Data = 0, - Timeout = 1, - Object = 2, - Database = 3, - System = 4, - Statement = 5, - Environment = 6, - Execution = 7, - Owner = 8, - } - public enum SqlNotificationType - { - Unknown = -1, - Change = 0, - Subscribe = 1, - } - public sealed partial class SqlParameter : System.Data.Common.DbParameter, System.ICloneable - { - public SqlParameter() { } - public SqlParameter(string parameterName, System.Data.SqlDbType dbType) { } - public SqlParameter(string parameterName, System.Data.SqlDbType dbType, int size) { } - public SqlParameter(string parameterName, System.Data.SqlDbType dbType, int size, System.Data.ParameterDirection direction, bool isNullable, byte precision, byte scale, string sourceColumn, System.Data.DataRowVersion sourceVersion, object value) { } - public SqlParameter(string parameterName, System.Data.SqlDbType dbType, int size, System.Data.ParameterDirection direction, byte precision, byte scale, string sourceColumn, System.Data.DataRowVersion sourceVersion, bool sourceColumnNullMapping, object value, string xmlSchemaCollectionDatabase, string xmlSchemaCollectionOwningSchema, string xmlSchemaCollectionName) { } - public SqlParameter(string parameterName, System.Data.SqlDbType dbType, int size, string sourceColumn) { } - public SqlParameter(string parameterName, object value) { } - public System.Data.SqlTypes.SqlCompareOptions CompareInfo { get { throw null; } set { } } - public override System.Data.DbType DbType { get { throw null; } set { } } - public override System.Data.ParameterDirection Direction { get { throw null; } set { } } - public override bool IsNullable { get { throw null; } set { } } - public int LocaleId { get { throw null; } set { } } - public int Offset { get { throw null; } set { } } - public override string ParameterName { get { throw null; } set { } } - public new byte Precision { get { throw null; } set { } } - public new byte Scale { get { throw null; } set { } } - public override int Size { get { throw null; } set { } } - public override string SourceColumn { get { throw null; } set { } } - public override bool SourceColumnNullMapping { get { throw null; } set { } } - public override System.Data.DataRowVersion SourceVersion { get { throw null; } set { } } - public System.Data.SqlDbType SqlDbType { get { throw null; } set { } } - public object SqlValue { get { throw null; } set { } } - public string TypeName { get { throw null; } set { } } - public string UdtTypeName { get { throw null; } set { } } - public override object Value { get { throw null; } set { } } - public string XmlSchemaCollectionDatabase { get { throw null; } set { } } - public string XmlSchemaCollectionName { get { throw null; } set { } } - public string XmlSchemaCollectionOwningSchema { get { throw null; } set { } } - public override void ResetDbType() { } - public void ResetSqlDbType() { } - object System.ICloneable.Clone() { throw null; } - public override string ToString() { throw null; } - } - public sealed partial class SqlParameterCollection : System.Data.Common.DbParameterCollection - { - internal SqlParameterCollection() { } - public override int Count { get { throw null; } } - public override bool IsFixedSize { get { throw null; } } - public override bool IsReadOnly { get { throw null; } } - public new System.Data.SqlClient.SqlParameter this[int index] { get { throw null; } set { } } - public new System.Data.SqlClient.SqlParameter this[string parameterName] { get { throw null; } set { } } - public override object SyncRoot { get { throw null; } } - public System.Data.SqlClient.SqlParameter Add(System.Data.SqlClient.SqlParameter value) { throw null; } - public override int Add(object value) { throw null; } - public System.Data.SqlClient.SqlParameter Add(string parameterName, System.Data.SqlDbType sqlDbType) { throw null; } - public System.Data.SqlClient.SqlParameter Add(string parameterName, System.Data.SqlDbType sqlDbType, int size) { throw null; } - public System.Data.SqlClient.SqlParameter Add(string parameterName, System.Data.SqlDbType sqlDbType, int size, string sourceColumn) { throw null; } - public override void AddRange(System.Array values) { } - public void AddRange(System.Data.SqlClient.SqlParameter[] values) { } - public System.Data.SqlClient.SqlParameter AddWithValue(string parameterName, object value) { throw null; } - public override void Clear() { } - public bool Contains(System.Data.SqlClient.SqlParameter value) { throw null; } - public override bool Contains(object value) { throw null; } - public override bool Contains(string value) { throw null; } - public override void CopyTo(System.Array array, int index) { } - public void CopyTo(System.Data.SqlClient.SqlParameter[] array, int index) { } - public override System.Collections.IEnumerator GetEnumerator() { throw null; } - protected override System.Data.Common.DbParameter GetParameter(int index) { throw null; } - protected override System.Data.Common.DbParameter GetParameter(string parameterName) { throw null; } - public int IndexOf(System.Data.SqlClient.SqlParameter value) { throw null; } - public override int IndexOf(object value) { throw null; } - public override int IndexOf(string parameterName) { throw null; } - public void Insert(int index, System.Data.SqlClient.SqlParameter value) { } - public override void Insert(int index, object value) { } - public void Remove(System.Data.SqlClient.SqlParameter value) { } - public override void Remove(object value) { } - public override void RemoveAt(int index) { } - public override void RemoveAt(string parameterName) { } - protected override void SetParameter(int index, System.Data.Common.DbParameter value) { } - protected override void SetParameter(string parameterName, System.Data.Common.DbParameter value) { } - } - public partial class SqlRowsCopiedEventArgs : System.EventArgs - { - public SqlRowsCopiedEventArgs(long rowsCopied) { } - public bool Abort { get { throw null; } set { } } - public long RowsCopied { get { throw null; } } - } - public delegate void SqlRowsCopiedEventHandler(object sender, System.Data.SqlClient.SqlRowsCopiedEventArgs e); - public sealed partial class SqlRowUpdatedEventArgs : System.Data.Common.RowUpdatedEventArgs - { - public SqlRowUpdatedEventArgs(System.Data.DataRow row, System.Data.IDbCommand command, System.Data.StatementType statementType, System.Data.Common.DataTableMapping tableMapping) : base (default(System.Data.DataRow), default(System.Data.IDbCommand), default(System.Data.StatementType), default(System.Data.Common.DataTableMapping)) { } - public new System.Data.SqlClient.SqlCommand Command { get { throw null; } } - } - public delegate void SqlRowUpdatedEventHandler(object sender, System.Data.SqlClient.SqlRowUpdatedEventArgs e); - public sealed partial class SqlRowUpdatingEventArgs : System.Data.Common.RowUpdatingEventArgs - { - public SqlRowUpdatingEventArgs(System.Data.DataRow row, System.Data.IDbCommand command, System.Data.StatementType statementType, System.Data.Common.DataTableMapping tableMapping) : base (default(System.Data.DataRow), default(System.Data.IDbCommand), default(System.Data.StatementType), default(System.Data.Common.DataTableMapping)) { } - protected override System.Data.IDbCommand BaseCommand { get { throw null; } set { } } - public new System.Data.SqlClient.SqlCommand Command { get { throw null; } set { } } - } - public delegate void SqlRowUpdatingEventHandler(object sender, System.Data.SqlClient.SqlRowUpdatingEventArgs e); - public sealed partial class SqlTransaction : System.Data.Common.DbTransaction - { - internal SqlTransaction() { } - public new System.Data.SqlClient.SqlConnection Connection { get { throw null; } } - protected override System.Data.Common.DbConnection DbConnection { get { throw null; } } - public override System.Data.IsolationLevel IsolationLevel { get { throw null; } } - public override void Commit() { } - protected override void Dispose(bool disposing) { } - public override void Rollback() { } - public void Rollback(string transactionName) { } - public void Save(string savePointName) { } - } -} diff --git a/migrated/ref/System.Data.SqlClient.csproj b/migrated/ref/System.Data.SqlClient.csproj deleted file mode 100644 index 7d383f805..000000000 --- a/migrated/ref/System.Data.SqlClient.csproj +++ /dev/null @@ -1,42 +0,0 @@ - - - {D58E8D2B-3331-4660-8DFB-512D66F8EC63} - true - net461-Debug;net461-Release;netcoreapp-Debug;netcoreapp-Release;netcoreapp2.1-Debug;netcoreapp2.1-Release;netfx-Debug;netfx-Release;netstandard-Debug;netstandard-Release - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/migrated/src/System.Data.SqlClient.csproj b/migrated/src/System.Data.SqlClient.csproj deleted file mode 100644 index 422842551..000000000 --- a/migrated/src/System.Data.SqlClient.csproj +++ /dev/null @@ -1,587 +0,0 @@ - - - {D4550556-4745-457F-BA8F-3EBF3836D6B4} - System.Data.SqlClient - true - $(NoWarn);CS1573;nullable - true - true - SR.PlatformNotSupported_DataSqlClient - 4.0.0.0 - 4.1.0.0 - $(DefineConstants);netstandard - $(DefineConstants);netcoreapp - $(DefineConstants);FEATURE_TCPKEEPALIVE - $(DefineConstants);INTERNAL_NULLABLE_ATTRIBUTES - net461-Windows_NT-Debug;net461-Windows_NT-Release;netcoreapp-Debug;netcoreapp-Release;netcoreapp-Unix-Debug;netcoreapp-Unix-Release;netcoreapp-Windows_NT-Debug;netcoreapp-Windows_NT-Release;netcoreapp2.1-Debug;netcoreapp2.1-Release;netcoreapp2.1-Unix-Debug;netcoreapp2.1-Unix-Release;netcoreapp2.1-Windows_NT-Debug;netcoreapp2.1-Windows_NT-Release;netfx-Windows_NT-Debug;netfx-Windows_NT-Release;netstandard-Debug;netstandard-Release;netstandard-Unix-Debug;netstandard-Unix-Release;netstandard-Windows_NT-Debug;netstandard-Windows_NT-Release;netstandard1.2-Debug;netstandard1.2-Release;netstandard1.3-Debug;netstandard1.3-Release;uap-Windows_NT-Debug;uap-Windows_NT-Release;uap10.0.16299-Windows_NT-Debug;uap10.0.16299-Windows_NT-Release - - - - Common\CoreLib\System\Diagnostics\CodeAnalysis\NullableAttributes.cs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - System\Data\Common\AdapterUtil.cs - - - System\Data\Common\AdapterUtil.Drivers.cs - - - - - - System\Data\Common\DbConnectionOptions.Common.cs - - - System\Data\Common\DbConnectionPoolKey.cs - - - - System\Data\Common\FieldNameLookup.cs - - - System\Data\Common\BasicFieldNameLookup.cs - - - System\Data\Common\MultipartIdentifier.cs - - - System\Data\Common\NameValuePair.cs - - - Common\System\Data\ProviderBase\DbConnectionInternal.cs - - - Common\System\Data\ProviderBase\DbConnectionFactory.cs - - - Common\System\Data\ProviderBase\DbConnectionPoolGroup.cs - - - Common\System\Data\ProviderBase\TimeoutTimer.cs - - - Common\System\Data\ProviderBase\DbReferenceCollection.cs - - - Common\System\Data\ProviderBase\DbMetaDataFactory.cs - - - Common\System\Data\ProviderBase\DbConnectionClosed.cs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - System\Data\SQLTypes\SQLResource.cs - - - - Common\CoreLib\System\Threading\Tasks\TaskToApm.cs - - - - - - - - - - - - - - - - - - - - - - - - - - - Common\CoreLib\Interop\Windows\Kernel32\Interop.FileTypes.cs - - - Common\CoreLib\Interop\Windows\Kernel32\Interop.GetFileType_SafeHandle.cs - - - Common\CoreLib\Interop\Windows\Kernel32\Interop.SetThreadErrorMode.cs - - - Common\CoreLib\System\IO\PathInternal.Windows.cs - - - CoreLib\System\Text\ValueStringBuilder.cs - - - Common\Interop\Windows\Interop.Errors.cs - - - Common\Interop\Windows\Interop.UNICODE_STRING.cs - - - Common\Interop\Windows\Interop.OBJECT_ATTRIBUTES.cs - - - Common\Interop\Windows\Kernel32\Interop.IoControlCodeAccess.cs - - - Common\Interop\Windows\Kernel32\Interop.CTL_CODE.cs - - - Common\Interop\Windows\Kernel32\Interop.DeviceIoControl.cs - - - Common\Interop\Windows\Kernel32\Interop.FileOperations.cs - - - Common\Interop\Windows\Kernel32\Interop.IoControlTransferType.cs - - - Common\Interop\Windows\NtDll\Interop.FILE_FULL_EA_INFORMATION.cs - - - Common\Interop\Windows\NtDll\Interop.IO_STATUS_BLOCK.cs - - - Common\Interop\Windows\NtDll\Interop.NtCreateFile.cs - - - Common\Interop\Windows\Interop.RtlNtStatusToDosError.cs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Common\Interop\Windows\Kernel32\Interop.LoadLibraryEx.cs - - - - - - Common\Interop\Windows\Kernel32\Interop.FreeLibrary.cs - - - Common\Interop\Windows\Kernel32\Interop.GetProcAddress.cs - - - Common\CoreLib\Microsoft\Win32\SafeHandles\SafeLibraryHandle.cs - - - - - - Common\System\Net\Security\SecurityBufferType.Windows.cs - - - Common\System\Net\Security\SecurityBuffer.Windows.cs - - - Common\Interop\Windows\SChannel\Interop.SecPkgContext_ApplicationProtocol.cs - - - Common\System\Net\Security\NegotiateStreamPal.Windows.cs - - - Common\Interop\Windows\sspicliSafeDeleteContext.cs - - - Common\Interop\Windows\SspiCli\SecuritySafeHandles.cs - - - Common\Interop\Windows\SspiCli\Interop.SSPI.cs - - - Common\System\Net\Security\SecurityContextTokenHandle.cs - - - Common\Interop\Windows\Interop.Libraries.cs - - - Common\Interop\Windows\SChannel\Interop.SECURITY_STATUS.cs - - - Common\Interop\Windows\SspiCli\SecPkgContext_Bindings.cs - - - Common\System\Net\DebugCriticalHandleZeroOrMinusOneIsInvalid.cs - - - Common\System\Net\Security\NetEventSource.Security.cs - - - Common\CoreLib\Interop\Windows\Kernel32\Interop.CloseHandle.cs - - - Common\Interop\Windows\SspiCli\GlobalSSPI.cs - - - Common\Interop\Windows\SspiCli\SSPIInterface.cs - - - Common\Interop\Windows\SspiCli\SecurityPackageInfoClass.cs - - - Common\Interop\Windows\SspiCli\SecurityPackageInfo.cs - - - Common\Interop\Windows\SspiCli\SSPIAuthType.cs - - - Common\Interop\Windows\SspiCli\SSPISecureChannelType.cs - - - Common\Interop\Windows\SspiCli\SSPIWrapper.cs - - - Common\System\Net\Security\NetEventSource.Security.Windows.cs - - - Common\Interop\Windows\SspiCli\SecPkgContext_Sizes.cs - - - Common\Interop\Windows\SspiCli\SecPkgContext_StreamSizes.cs - - - Common\Interop\Windows\SspiCli\SecPkgContext_NegotiationInfoW.cs - - - Common\Interop\Windows\SChannel\SecPkgContext_ConnectionInfo.cs - - - Common\Interop\Windows\SChannel\SecPkgContext_CipherInfo.cs - - - Common\Interop\Windows\SspiCli\NegotiationInfoClass.cs - - - Common\Interop\Windows\Crypt32\Interop.certificates.cs - - - Common\Interop\Windows\Crypt32\Interop.certificates_types.cs - - - Common\System\Net\ContextFlagsAdapterPal.Windows.cs - - - Common\System\Net\SecurityStatusAdapterPal.Windows.cs - - - Common\System\Collections\Generic\BidirectionalDictionary.cs - - - - - - - Common\System\Net\ContextFlagsPal.cs - - - Common\System\Net\SecurityStatusPal.cs - - - Common\System\Net\DebugSafeHandle.cs - - - Common\System\Net\DebugCriticalHandleMinusOneIsInvalid.cs - - - Common\System\Net\Logging\NetEventSource.Common.cs - - - Common\System\Net\Logging\DebugThreadTracking.cs - - - Common\System\Net\InternalException.cs - - - Common\System\Net\NegotiationInfoClass.cs - - - - - - - Common\System\Net\Security\NegotiateStreamPal.Unix.cs - - - Common\System\Net\Security\Unix\SafeDeleteContext.cs - - - Common\System\Net\Security\Unix\SafeFreeCredentials.cs - - - Common\Microsoft\Win32\SafeHandles\GssSafeHandles.cs - - - - Common\Interop\Unix\System.Net.Security.Native\Interop.NetSecurityNative.cs - - - Common\Interop\Unix\System.Net.Security.Native\Interop.NetSecurityNative.IsNtlmInstalled.cs - - - Common\System\Net\Security\Unix\SafeFreeNegoCredentials.cs - - - Common\System\Net\Security\Unix\SecChannelBindings.cs - - - Common\Interop\Unix\Interop.Libraries.cs - - - Common\Interop\Unix\System.Net.Security.Native\Interop.GssBuffer.cs - - - Common\System\Net\Security\Unix\SafeDeleteNegoContext.cs - - - Common\Interop\Unix\System.Net.Security.Native\Interop.GssApiException.cs - - - Common\System\Net\ContextFlagsAdapterPal.Unix.cs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - System.Data.SqlClient.SqlMetaData.xml - - - - - - - - - - - diff --git a/migrated/tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.csproj b/migrated/tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.csproj deleted file mode 100644 index 22d3da88d..000000000 --- a/migrated/tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.csproj +++ /dev/null @@ -1,9 +0,0 @@ - - - {D1392B54-998A-4F27-BC17-4CE149117BCC} - netstandard-Debug;netstandard-Release;netcoreapp-Debug;netcoreapp-Release - - - - - \ No newline at end of file diff --git a/migrated/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Circle.csproj b/migrated/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Circle.csproj deleted file mode 100644 index 39f3e489c..000000000 --- a/migrated/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Circle.csproj +++ /dev/null @@ -1,10 +0,0 @@ - - - {6C88F00F-9597-43AD-9E5F-9B344DA3B16F} - netstandard-Debug;netstandard-Release;netcoreapp-Debug;netcoreapp-Release - - - - - - \ No newline at end of file diff --git a/migrated/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Shapes.csproj b/migrated/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Shapes.csproj deleted file mode 100644 index c81a6d3c6..000000000 --- a/migrated/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Shapes.csproj +++ /dev/null @@ -1,10 +0,0 @@ - - - {B73A7063-37C3-415D-AD53-BB3DA20ABD6E} - netstandard-Debug;netstandard-Release;netcoreapp-Debug;netcoreapp-Release - - - - - - \ No newline at end of file diff --git a/migrated/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Utf8String.csproj b/migrated/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Utf8String.csproj deleted file mode 100644 index 7b28cc030..000000000 --- a/migrated/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Utf8String.csproj +++ /dev/null @@ -1,9 +0,0 @@ - - - {E0A6BB21-574B-43D9-890D-6E1144F2EE9E} - netstandard-Debug;netstandard-Release;netcoreapp-Debug;netcoreapp-Release - - - - - \ No newline at end of file diff --git a/migrated/tests/Tools/TDS/TDS/TDS.csproj b/migrated/tests/Tools/TDS/TDS/TDS.csproj deleted file mode 100644 index 3d46bf144..000000000 --- a/migrated/tests/Tools/TDS/TDS/TDS.csproj +++ /dev/null @@ -1,106 +0,0 @@ - - - {8DC9D1A0-351B-47BC-A90F-B9DA542550E9} - Microsoft.SqlServer.TDS - Microsoft.SqlServer.TDS - false - netstandard-Unix-Debug;netstandard-Unix-Release;netstandard-Windows_NT-Debug;netstandard-Windows_NT-Release - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/Common/src/CoreLib/Interop/Windows/Kernel32/Interop.FileTypes.cs b/src/Common/src/CoreLib/Interop/Windows/Kernel32/Interop.FileTypes.cs new file mode 100644 index 000000000..9d52f1f4f --- /dev/null +++ b/src/Common/src/CoreLib/Interop/Windows/Kernel32/Interop.FileTypes.cs @@ -0,0 +1,17 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +internal partial class Interop +{ + internal partial class Kernel32 + { + internal partial class FileTypes + { + internal const int FILE_TYPE_UNKNOWN = 0x0000; + internal const int FILE_TYPE_DISK = 0x0001; + internal const int FILE_TYPE_CHAR = 0x0002; + internal const int FILE_TYPE_PIPE = 0x0003; + } + } +} diff --git a/src/Common/src/CoreLib/Interop/Windows/Kernel32/Interop.GetFileType_SafeHandle.cs b/src/Common/src/CoreLib/Interop/Windows/Kernel32/Interop.GetFileType_SafeHandle.cs new file mode 100644 index 000000000..faa57cc2f --- /dev/null +++ b/src/Common/src/CoreLib/Interop/Windows/Kernel32/Interop.GetFileType_SafeHandle.cs @@ -0,0 +1,15 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using Microsoft.Win32.SafeHandles; +using System.Runtime.InteropServices; + +internal partial class Interop +{ + internal partial class Kernel32 + { + [DllImport(Libraries.Kernel32, SetLastError = true)] + internal static extern int GetFileType(SafeHandle hFile); + } +} diff --git a/src/Common/src/CoreLib/Interop/Windows/Kernel32/Interop.SetThreadErrorMode.cs b/src/Common/src/CoreLib/Interop/Windows/Kernel32/Interop.SetThreadErrorMode.cs new file mode 100644 index 000000000..123eb75d7 --- /dev/null +++ b/src/Common/src/CoreLib/Interop/Windows/Kernel32/Interop.SetThreadErrorMode.cs @@ -0,0 +1,16 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Runtime.InteropServices; + +internal partial class Interop +{ + internal partial class Kernel32 + { + [DllImport(Libraries.Kernel32, SetLastError = true, ExactSpelling = true)] + internal static extern bool SetThreadErrorMode(uint dwNewMode, out uint lpOldMode); + + internal const uint SEM_FAILCRITICALERRORS = 1; + } +} diff --git a/src/Common/src/CoreLib/Microsoft/Win32/SafeHandles/SafeLibraryHandle.cs b/src/Common/src/CoreLib/Microsoft/Win32/SafeHandles/SafeLibraryHandle.cs new file mode 100644 index 000000000..3be2e354a --- /dev/null +++ b/src/Common/src/CoreLib/Microsoft/Win32/SafeHandles/SafeLibraryHandle.cs @@ -0,0 +1,16 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +namespace Microsoft.Win32.SafeHandles +{ + sealed internal class SafeLibraryHandle : SafeHandleZeroOrMinusOneIsInvalid + { + internal SafeLibraryHandle() : base(true) { } + + override protected bool ReleaseHandle() + { + return Interop.Kernel32.FreeLibrary(handle); + } + } +} diff --git a/src/Common/src/CoreLib/System/Diagnostics/CodeAnalysis/NullableAttributes.cs b/src/Common/src/CoreLib/System/Diagnostics/CodeAnalysis/NullableAttributes.cs new file mode 100644 index 000000000..3770a5ff0 --- /dev/null +++ b/src/Common/src/CoreLib/System/Diagnostics/CodeAnalysis/NullableAttributes.cs @@ -0,0 +1,128 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +namespace System.Diagnostics.CodeAnalysis +{ + /// Specifies that null is allowed as an input even if the corresponding type disallows it. + [AttributeUsage(AttributeTargets.Field | AttributeTargets.Parameter | AttributeTargets.Property, Inherited = false)] +#if INTERNAL_NULLABLE_ATTRIBUTES + internal +#else + public +#endif + sealed class AllowNullAttribute : Attribute { } + + /// Specifies that null is disallowed as an input even if the corresponding type allows it. + [AttributeUsage(AttributeTargets.Field | AttributeTargets.Parameter | AttributeTargets.Property, Inherited = false)] +#if INTERNAL_NULLABLE_ATTRIBUTES + internal +#else + public +#endif + sealed class DisallowNullAttribute : Attribute { } + + /// Specifies that an output may be null even if the corresponding type disallows it. + [AttributeUsage(AttributeTargets.Field | AttributeTargets.Parameter | AttributeTargets.Property | AttributeTargets.ReturnValue, Inherited = false)] +#if INTERNAL_NULLABLE_ATTRIBUTES + internal +#else + public +#endif + sealed class MaybeNullAttribute : Attribute { } + + /// Specifies that an output will not be null even if the corresponding type allows it. + [AttributeUsage(AttributeTargets.Field | AttributeTargets.Parameter | AttributeTargets.Property | AttributeTargets.ReturnValue, Inherited = false)] +#if INTERNAL_NULLABLE_ATTRIBUTES + internal +#else + public +#endif + sealed class NotNullAttribute : Attribute { } + + /// Specifies that when a method returns , the parameter may be null even if the corresponding type disallows it. + [AttributeUsage(AttributeTargets.Parameter, Inherited = false)] +#if INTERNAL_NULLABLE_ATTRIBUTES + internal +#else + public +#endif + sealed class MaybeNullWhenAttribute : Attribute + { + /// Initializes the attribute with the specified return value condition. + /// + /// The return value condition. If the method returns this value, the associated parameter may be null. + /// + public MaybeNullWhenAttribute(bool returnValue) => ReturnValue = returnValue; + + /// Gets the return value condition. + public bool ReturnValue { get; } + } + + /// Specifies that when a method returns , the parameter will not be null even if the corresponding type allows it. + [AttributeUsage(AttributeTargets.Parameter, Inherited = false)] +#if INTERNAL_NULLABLE_ATTRIBUTES + internal +#else + public +#endif + sealed class NotNullWhenAttribute : Attribute + { + /// Initializes the attribute with the specified return value condition. + /// + /// The return value condition. If the method returns this value, the associated parameter will not be null. + /// + public NotNullWhenAttribute(bool returnValue) => ReturnValue = returnValue; + + /// Gets the return value condition. + public bool ReturnValue { get; } + } + + /// Specifies that the output will be non-null if the named parameter is non-null. + [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Property | AttributeTargets.ReturnValue, AllowMultiple = true, Inherited = false)] +#if INTERNAL_NULLABLE_ATTRIBUTES + internal +#else + public +#endif + sealed class NotNullIfNotNullAttribute : Attribute + { + /// Initializes the attribute with the associated parameter name. + /// + /// The associated parameter name. The output will be non-null if the argument to the parameter specified is non-null. + /// + public NotNullIfNotNullAttribute(string parameterName) => ParameterName = parameterName; + + /// Gets the associated parameter name. + public string ParameterName { get; } + } + + /// Applied to a method that will never return under any circumstance. + [AttributeUsage(AttributeTargets.Method, Inherited = false)] +#if INTERNAL_NULLABLE_ATTRIBUTES + internal +#else + public +#endif + sealed class DoesNotReturnAttribute : Attribute { } + + /// Specifies that the method will not return if the associated Boolean parameter is passed the specified value. + [AttributeUsage(AttributeTargets.Parameter, Inherited = false)] +#if INTERNAL_NULLABLE_ATTRIBUTES + internal +#else + public +#endif + sealed class DoesNotReturnIfAttribute : Attribute + { + /// Initializes the attribute with the specified parameter value. + /// + /// The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to + /// the associated parameter matches this value. + /// + public DoesNotReturnIfAttribute(bool parameterValue) => ParameterValue = parameterValue; + + /// Gets the condition parameter value. + public bool ParameterValue { get; } + } +} diff --git a/src/Common/src/CoreLib/System/IO/PathHelper.Windows.cs b/src/Common/src/CoreLib/System/IO/PathHelper.Windows.cs new file mode 100644 index 000000000..83618cfa1 --- /dev/null +++ b/src/Common/src/CoreLib/System/IO/PathHelper.Windows.cs @@ -0,0 +1,254 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +#nullable enable +using System.Diagnostics; +using System.Runtime.InteropServices; +using System.Text; + +namespace System.IO +{ + /// + /// Wrapper to help with path normalization. + /// + internal class PathHelper + { + /// + /// Normalize the given path. + /// + /// + /// Normalizes via Win32 GetFullPathName(). + /// + /// Path to normalize + /// Thrown if we have a string that is too large to fit into a UNICODE_STRING. + /// Thrown if the path is empty. + /// Normalized path + internal static string Normalize(string path) + { + Span initialBuffer = stackalloc char[PathInternal.MaxShortPath]; + var builder = new ValueStringBuilder(initialBuffer); + + // Get the full path + GetFullPathName(path.AsSpan(), ref builder); + + // If we have the exact same string we were passed in, don't allocate another string. + // TryExpandShortName does this input identity check. + string result = builder.AsSpan().IndexOf('~') >= 0 + ? TryExpandShortFileName(ref builder, originalPath: path) + : builder.AsSpan().Equals(path.AsSpan(), StringComparison.Ordinal) ? path : builder.ToString(); + + // Clear the buffer + builder.Dispose(); + return result; + } + + /// + /// Normalize the given path. + /// + /// + /// Exceptions are the same as the string overload. + /// + internal static string Normalize(ref ValueStringBuilder path) + { + Span initialBuffer = stackalloc char[PathInternal.MaxShortPath]; + var builder = new ValueStringBuilder(initialBuffer); + + // Get the full path + GetFullPathName(path.AsSpan(terminate: true), ref builder); + + string result = builder.AsSpan().IndexOf('~') >= 0 + ? TryExpandShortFileName(ref builder, originalPath: null) + : builder.ToString(); + + // Clear the buffer + builder.Dispose(); + return result; + } + + /// + /// Calls GetFullPathName on the given path. + /// + /// The path name. MUST be null terminated after the span. + /// Builder that will store the result. + private static void GetFullPathName(ReadOnlySpan path, ref ValueStringBuilder builder) + { + // If the string starts with an extended prefix we would need to remove it from the path before we call GetFullPathName as + // it doesn't root extended paths correctly. We don't currently resolve extended paths, so we'll just assert here. + Debug.Assert(PathInternal.IsPartiallyQualified(path) || !PathInternal.IsExtended(path)); + + uint result = 0; + while ((result = Interop.Kernel32.GetFullPathNameW(ref MemoryMarshal.GetReference(path), (uint)builder.Capacity, ref builder.GetPinnableReference(), IntPtr.Zero)) > builder.Capacity) + { + // Reported size is greater than the buffer size. Increase the capacity. + builder.EnsureCapacity(checked((int)result)); + } + + if (result == 0) + { + // Failure, get the error and throw + int errorCode = Marshal.GetLastWin32Error(); + if (errorCode == 0) + errorCode = Interop.Errors.ERROR_BAD_PATHNAME; + throw Win32Marshal.GetExceptionForWin32Error(errorCode, path.ToString()); + } + + builder.Length = (int)result; + } + + internal static int PrependDevicePathChars(ref ValueStringBuilder content, bool isDosUnc, ref ValueStringBuilder buffer) + { + int length = content.Length; + + length += isDosUnc + ? PathInternal.UncExtendedPrefixLength - PathInternal.UncPrefixLength + : PathInternal.DevicePrefixLength; + + buffer.EnsureCapacity(length + 1); + buffer.Length = 0; + + if (isDosUnc) + { + // Is a \\Server\Share, put \\?\UNC\ in the front + buffer.Append(PathInternal.UncExtendedPathPrefix); + + // Copy Server\Share\... over to the buffer + buffer.Append(content.AsSpan(PathInternal.UncPrefixLength)); + + // Return the prefix difference + return PathInternal.UncExtendedPrefixLength - PathInternal.UncPrefixLength; + } + else + { + // Not an UNC, put the \\?\ prefix in front, then the original string + buffer.Append(PathInternal.ExtendedPathPrefix); + buffer.Append(content.AsSpan()); + return PathInternal.DevicePrefixLength; + } + } + + internal static string TryExpandShortFileName(ref ValueStringBuilder outputBuilder, string? originalPath) + { + // We guarantee we'll expand short names for paths that only partially exist. As such, we need to find the part of the path that actually does exist. To + // avoid allocating a lot we'll create only one input array and modify the contents with embedded nulls. + + Debug.Assert(!PathInternal.IsPartiallyQualified(outputBuilder.AsSpan()), "should have resolved by now"); + + // We'll have one of a few cases by now (the normalized path will have already: + // + // 1. Dos path (C:\) + // 2. Dos UNC (\\Server\Share) + // 3. Dos device path (\\.\C:\, \\?\C:\) + // + // We want to put the extended syntax on the front if it doesn't already have it (for long path support and speed), which may mean switching from \\.\. + // + // Note that we will never get \??\ here as GetFullPathName() does not recognize \??\ and will return it as C:\??\ (or whatever the current drive is). + + int rootLength = PathInternal.GetRootLength(outputBuilder.AsSpan()); + bool isDevice = PathInternal.IsDevice(outputBuilder.AsSpan()); + + // As this is a corner case we're not going to add a stackalloc here to keep the stack pressure down. + var inputBuilder = new ValueStringBuilder(); + + bool isDosUnc = false; + int rootDifference = 0; + bool wasDotDevice = false; + + // Add the extended prefix before expanding to allow growth over MAX_PATH + if (isDevice) + { + // We have one of the following (\\?\ or \\.\) + inputBuilder.Append(outputBuilder.AsSpan()); + + if (outputBuilder[2] == '.') + { + wasDotDevice = true; + inputBuilder[2] = '?'; + } + } + else + { + isDosUnc = !PathInternal.IsDevice(outputBuilder.AsSpan()) && outputBuilder.Length > 1 && outputBuilder[0] == '\\' && outputBuilder[1] == '\\'; + rootDifference = PrependDevicePathChars(ref outputBuilder, isDosUnc, ref inputBuilder); + } + + rootLength += rootDifference; + int inputLength = inputBuilder.Length; + + bool success = false; + int foundIndex = inputBuilder.Length - 1; + + while (!success) + { + uint result = Interop.Kernel32.GetLongPathNameW( + ref inputBuilder.GetPinnableReference(terminate: true), ref outputBuilder.GetPinnableReference(), (uint)outputBuilder.Capacity); + + // Replace any temporary null we added + if (inputBuilder[foundIndex] == '\0') inputBuilder[foundIndex] = '\\'; + + if (result == 0) + { + // Look to see if we couldn't find the file + int error = Marshal.GetLastWin32Error(); + if (error != Interop.Errors.ERROR_FILE_NOT_FOUND && error != Interop.Errors.ERROR_PATH_NOT_FOUND) + { + // Some other failure, give up + break; + } + + // We couldn't find the path at the given index, start looking further back in the string. + foundIndex--; + + for (; foundIndex > rootLength && inputBuilder[foundIndex] != '\\'; foundIndex--) ; + if (foundIndex == rootLength) + { + // Can't trim the path back any further + break; + } + else + { + // Temporarily set a null in the string to get Windows to look further up the path + inputBuilder[foundIndex] = '\0'; + } + } + else if (result > outputBuilder.Capacity) + { + // Not enough space. The result count for this API does not include the null terminator. + outputBuilder.EnsureCapacity(checked((int)result)); + result = Interop.Kernel32.GetLongPathNameW(ref inputBuilder.GetPinnableReference(), ref outputBuilder.GetPinnableReference(), (uint)outputBuilder.Capacity); + } + else + { + // Found the path + success = true; + outputBuilder.Length = checked((int)result); + if (foundIndex < inputLength - 1) + { + // It was a partial find, put the non-existent part of the path back + outputBuilder.Append(inputBuilder.AsSpan(foundIndex, inputBuilder.Length - foundIndex)); + } + } + } + + // If we were able to expand the path, use it, otherwise use the original full path result + ref ValueStringBuilder builderToUse = ref (success ? ref outputBuilder : ref inputBuilder); + + // Switch back from \\?\ to \\.\ if necessary + if (wasDotDevice) + builderToUse[2] = '.'; + + // Change from \\?\UNC\ to \\?\UN\\ if needed + if (isDosUnc) + builderToUse[PathInternal.UncExtendedPrefixLength - PathInternal.UncPrefixLength] = '\\'; + + // Strip out any added characters at the front of the string + ReadOnlySpan output = builderToUse.AsSpan(rootDifference); + + string returnValue = ((originalPath != null) && output.Equals(originalPath.AsSpan(), StringComparison.Ordinal)) + ? originalPath : output.ToString(); + + inputBuilder.Dispose(); + return returnValue; + } + } +} diff --git a/src/Common/src/CoreLib/System/Text/ValueStringBuilder.cs b/src/Common/src/CoreLib/System/Text/ValueStringBuilder.cs new file mode 100644 index 000000000..de7fc500b --- /dev/null +++ b/src/Common/src/CoreLib/System/Text/ValueStringBuilder.cs @@ -0,0 +1,300 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +#nullable enable +using System.Buffers; +using System.Diagnostics; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace System.Text +{ + internal ref partial struct ValueStringBuilder + { + private char[]? _arrayToReturnToPool; + private Span _chars; + private int _pos; + + public ValueStringBuilder(Span initialBuffer) + { + _arrayToReturnToPool = null; + _chars = initialBuffer; + _pos = 0; + } + + public ValueStringBuilder(int initialCapacity) + { + _arrayToReturnToPool = ArrayPool.Shared.Rent(initialCapacity); + _chars = _arrayToReturnToPool; + _pos = 0; + } + + public int Length + { + get => _pos; + set + { + Debug.Assert(value >= 0); + Debug.Assert(value <= _chars.Length); + _pos = value; + } + } + + public int Capacity => _chars.Length; + + public void EnsureCapacity(int capacity) + { + if (capacity > _chars.Length) + Grow(capacity - _pos); + } + + /// + /// Get a pinnable reference to the builder. + /// Does not ensure there is a null char after + /// This overload is pattern matched in the C# 7.3+ compiler so you can omit + /// the explicit method call, and write eg "fixed (char* c = builder)" + /// + public ref char GetPinnableReference() + { + return ref MemoryMarshal.GetReference(_chars); + } + + /// + /// Get a pinnable reference to the builder. + /// + /// Ensures that the builder has a null char after + public ref char GetPinnableReference(bool terminate) + { + if (terminate) + { + EnsureCapacity(Length + 1); + _chars[Length] = '\0'; + } + return ref MemoryMarshal.GetReference(_chars); + } + + public ref char this[int index] + { + get + { + Debug.Assert(index < _pos); + return ref _chars[index]; + } + } + + public override string ToString() + { + var s = _chars.Slice(0, _pos).ToString(); + Dispose(); + return s; + } + + /// Returns the underlying storage of the builder. + public Span RawChars => _chars; + + /// + /// Returns a span around the contents of the builder. + /// + /// Ensures that the builder has a null char after + public ReadOnlySpan AsSpan(bool terminate) + { + if (terminate) + { + EnsureCapacity(Length + 1); + _chars[Length] = '\0'; + } + return _chars.Slice(0, _pos); + } + + public ReadOnlySpan AsSpan() => _chars.Slice(0, _pos); + public ReadOnlySpan AsSpan(int start) => _chars.Slice(start, _pos - start); + public ReadOnlySpan AsSpan(int start, int length) => _chars.Slice(start, length); + + public bool TryCopyTo(Span destination, out int charsWritten) + { + if (_chars.Slice(0, _pos).TryCopyTo(destination)) + { + charsWritten = _pos; + Dispose(); + return true; + } + else + { + charsWritten = 0; + Dispose(); + return false; + } + } + + public void Insert(int index, char value, int count) + { + if (_pos > _chars.Length - count) + { + Grow(count); + } + + int remaining = _pos - index; + _chars.Slice(index, remaining).CopyTo(_chars.Slice(index + count)); + _chars.Slice(index, count).Fill(value); + _pos += count; + } + + public void Insert(int index, string s) + { + int count = s.Length; + + if (_pos > (_chars.Length - count)) + { + Grow(count); + } + + int remaining = _pos - index; + _chars.Slice(index, remaining).CopyTo(_chars.Slice(index + count)); + s.AsSpan().CopyTo(_chars.Slice(index)); + _pos += count; + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void Append(char c) + { + int pos = _pos; + if ((uint)pos < (uint)_chars.Length) + { + _chars[pos] = c; + _pos = pos + 1; + } + else + { + GrowAndAppend(c); + } + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void Append(string s) + { + int pos = _pos; + if (s.Length == 1 && (uint)pos < (uint)_chars.Length) // very common case, e.g. appending strings from NumberFormatInfo like separators, percent symbols, etc. + { + _chars[pos] = s[0]; + _pos = pos + 1; + } + else + { + AppendSlow(s); + } + } + + private void AppendSlow(string s) + { + int pos = _pos; + if (pos > _chars.Length - s.Length) + { + Grow(s.Length); + } + + s.AsSpan().CopyTo(_chars.Slice(pos)); + _pos += s.Length; + } + + public void Append(char c, int count) + { + if (_pos > _chars.Length - count) + { + Grow(count); + } + + Span dst = _chars.Slice(_pos, count); + for (int i = 0; i < dst.Length; i++) + { + dst[i] = c; + } + _pos += count; + } + + public unsafe void Append(char* value, int length) + { + int pos = _pos; + if (pos > _chars.Length - length) + { + Grow(length); + } + + Span dst = _chars.Slice(_pos, length); + for (int i = 0; i < dst.Length; i++) + { + dst[i] = *value++; + } + _pos += length; + } + + public void Append(ReadOnlySpan value) + { + int pos = _pos; + if (pos > _chars.Length - value.Length) + { + Grow(value.Length); + } + + value.CopyTo(_chars.Slice(_pos)); + _pos += value.Length; + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public Span AppendSpan(int length) + { + int origPos = _pos; + if (origPos > _chars.Length - length) + { + Grow(length); + } + + _pos = origPos + length; + return _chars.Slice(origPos, length); + } + + [MethodImpl(MethodImplOptions.NoInlining)] + private void GrowAndAppend(char c) + { + Grow(1); + Append(c); + } + + /// + /// Resize the internal buffer either by doubling current buffer size or + /// by adding to + /// whichever is greater. + /// + /// + /// Number of chars requested beyond current position. + /// + [MethodImpl(MethodImplOptions.NoInlining)] + private void Grow(int additionalCapacityBeyondPos) + { + Debug.Assert(additionalCapacityBeyondPos > 0); + Debug.Assert(_pos > _chars.Length - additionalCapacityBeyondPos, "Grow called incorrectly, no resize is needed."); + + char[] poolArray = ArrayPool.Shared.Rent(Math.Max(_pos + additionalCapacityBeyondPos, _chars.Length * 2)); + + _chars.CopyTo(poolArray); + + char[]? toReturn = _arrayToReturnToPool; + _chars = _arrayToReturnToPool = poolArray; + if (toReturn != null) + { + ArrayPool.Shared.Return(toReturn); + } + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void Dispose() + { + char[]? toReturn = _arrayToReturnToPool; + this = default; // for safety, to avoid using pooled array if this instance is erroneously appended to again + if (toReturn != null) + { + ArrayPool.Shared.Return(toReturn); + } + } + } +} diff --git a/src/Common/src/CoreLib/System/Threading/Tasks/TaskToApm.cs b/src/Common/src/CoreLib/System/Threading/Tasks/TaskToApm.cs new file mode 100644 index 000000000..110520a32 --- /dev/null +++ b/src/Common/src/CoreLib/System/Threading/Tasks/TaskToApm.cs @@ -0,0 +1,190 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +// Helper methods for using Tasks to implement the APM pattern. +// +// Example usage, wrapping a Task-returning FooAsync method with Begin/EndFoo methods: +// +// public IAsyncResult BeginFoo(..., AsyncCallback callback, object state) +// { +// Task t = FooAsync(...); +// return TaskToApm.Begin(t, callback, state); +// } +// public int EndFoo(IAsyncResult asyncResult) +// { +// return TaskToApm.End(asyncResult); +// } + +#nullable enable +using System.Diagnostics; + +namespace System.Threading.Tasks +{ + /// + /// Provides support for efficiently using Tasks to implement the APM (Begin/End) pattern. + /// + internal static class TaskToApm + { + /// + /// Marshals the Task as an IAsyncResult, using the supplied callback and state + /// to implement the APM pattern. + /// + /// The Task to be marshaled. + /// The callback to be invoked upon completion. + /// The state to be stored in the IAsyncResult. + /// An IAsyncResult to represent the task's asynchronous operation. + public static IAsyncResult Begin(Task task, AsyncCallback callback, object? state) + { + Debug.Assert(task != null); + + // If the task has already completed, then since the Task's CompletedSynchronously==false + // and we want it to be true, we need to create a new IAsyncResult. (We also need the AsyncState to match.) + IAsyncResult asyncResult; + if (task.IsCompleted) + { + // Synchronous completion. + asyncResult = new TaskWrapperAsyncResult(task, state, completedSynchronously: true); + callback?.Invoke(asyncResult); + } + else + { + // For asynchronous completion we need to schedule a callback. Whether we can use the Task as the IAsyncResult + // depends on whether the Task's AsyncState has reference equality with the requested state. + asyncResult = task.AsyncState == state ? (IAsyncResult)task : new TaskWrapperAsyncResult(task, state, completedSynchronously: false); + if (callback != null) + { + InvokeCallbackWhenTaskCompletes(task, callback, asyncResult); + } + } + return asyncResult; + } + + /// Processes an IAsyncResult returned by Begin. + /// The IAsyncResult to unwrap. + public static void End(IAsyncResult asyncResult) + { + Task? task; + + // If the IAsyncResult is our task-wrapping IAsyncResult, extract the Task. + var twar = asyncResult as TaskWrapperAsyncResult; + if (twar != null) + { + task = twar.Task; + Debug.Assert(task != null, "TaskWrapperAsyncResult should never wrap a null Task."); + } + else + { + // Otherwise, the IAsyncResult should be a Task. + task = asyncResult as Task; + } + + // Make sure we actually got a task, then complete the operation by waiting on it. + if (task == null) + { + throw new ArgumentNullException(); + } + + task.GetAwaiter().GetResult(); + } + + /// Processes an IAsyncResult returned by Begin. + /// The IAsyncResult to unwrap. + public static TResult End(IAsyncResult asyncResult) + { + Task? task; + + // If the IAsyncResult is our task-wrapping IAsyncResult, extract the Task. + var twar = asyncResult as TaskWrapperAsyncResult; + if (twar != null) + { + task = twar.Task as Task; + Debug.Assert(twar.Task != null, "TaskWrapperAsyncResult should never wrap a null Task."); + } + else + { + // Otherwise, the IAsyncResult should be a Task. + task = asyncResult as Task; + } + + // Make sure we actually got a task, then complete the operation by waiting on it. + if (task == null) + { + throw new ArgumentNullException(); + } + + return task.GetAwaiter().GetResult(); + } + + /// Invokes the callback asynchronously when the task has completed. + /// The Task to await. + /// The callback to invoke when the Task completes. + /// The Task used as the IAsyncResult. + private static void InvokeCallbackWhenTaskCompletes(Task antecedent, AsyncCallback callback, IAsyncResult asyncResult) + { + Debug.Assert(antecedent != null); + Debug.Assert(callback != null); + Debug.Assert(asyncResult != null); + + // We use OnCompleted rather than ContinueWith in order to avoid running synchronously + // if the task has already completed by the time we get here. This is separated out into + // its own method currently so that we only pay for the closure if necessary. + antecedent.ConfigureAwait(continueOnCapturedContext: false) + .GetAwaiter() + .OnCompleted(() => callback(asyncResult)); + + // PERFORMANCE NOTE: + // Assuming we're in the default ExecutionContext, the "slow path" of an incomplete + // task will result in four allocations: the new IAsyncResult, the delegate+closure + // in this method, and the continuation object inside of OnCompleted (necessary + // to capture both the Action delegate and the ExecutionContext in a single object). + // In the future, if performance requirements drove a need, those four + // allocations could be reduced to one. This would be achieved by having TaskWrapperAsyncResult + // also implement ITaskCompletionAction (and optionally IThreadPoolWorkItem). It would need + // additional fields to store the AsyncCallback and an ExecutionContext. Once configured, + // it would be set into the Task as a continuation. Its Invoke method would then be run when + // the antecedent completed, and, doing all of the necessary work to flow ExecutionContext, + // it would invoke the AsyncCallback. It could also have a field on it for the antecedent, + // so that the End method would have access to the completed antecedent. For related examples, + // see other implementations of ITaskCompletionAction, and in particular ReadWriteTask + // used in Stream.Begin/EndXx's implementation. + } + + /// + /// Provides a simple IAsyncResult that wraps a Task. This, in effect, allows + /// for overriding what's seen for the CompletedSynchronously and AsyncState values. + /// + private sealed class TaskWrapperAsyncResult : IAsyncResult + { + /// The wrapped Task. + internal readonly Task Task; + /// The new AsyncState value. + private readonly object? _state; + /// The new CompletedSynchronously value. + private readonly bool _completedSynchronously; + + /// Initializes the IAsyncResult with the Task to wrap and the overriding AsyncState and CompletedSynchronously values. + /// The Task to wrap. + /// The new AsyncState value + /// The new CompletedSynchronously value. + internal TaskWrapperAsyncResult(Task task, object? state, bool completedSynchronously) + { + Debug.Assert(task != null); + Debug.Assert(!completedSynchronously || task.IsCompleted, "If completedSynchronously is true, the task must be completed."); + + this.Task = task; + _state = state; + _completedSynchronously = completedSynchronously; + } + + // The IAsyncResult implementation. + // - IsCompleted and AsyncWaitHandle just pass through to the Task. + // - AsyncState and CompletedSynchronously return the corresponding values stored in this object. + + object? IAsyncResult.AsyncState { get { return _state; } } + bool IAsyncResult.CompletedSynchronously { get { return _completedSynchronously; } } + bool IAsyncResult.IsCompleted { get { return this.Task.IsCompleted; } } + WaitHandle IAsyncResult.AsyncWaitHandle { get { return ((IAsyncResult)this.Task).AsyncWaitHandle; } } + } + } +} diff --git a/src/Common/src/Interop/Unix/Interop.Libraries.cs b/src/Common/src/Interop/Unix/Interop.Libraries.cs new file mode 100644 index 000000000..7446e1bfb --- /dev/null +++ b/src/Common/src/Interop/Unix/Interop.Libraries.cs @@ -0,0 +1,18 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +internal static partial class Interop +{ + internal static partial class Libraries + { + // Shims + internal const string SystemNative = "System.Native"; + internal const string HttpNative = "System.Net.Http.Native"; + internal const string NetSecurityNative = "System.Net.Security.Native"; + internal const string CryptoNative = "System.Security.Cryptography.Native.OpenSsl"; + internal const string CompressionNative = "System.IO.Compression.Native"; + internal const string IOPortsNative = "System.IO.Ports.Native"; + internal const string Libdl = "libdl"; + } +} diff --git a/src/Common/src/Interop/Unix/System.Net.Security.Native/Interop.GssApiException.cs b/src/Common/src/Interop/Unix/System.Net.Security.Native/Interop.GssApiException.cs new file mode 100644 index 000000000..51eca4915 --- /dev/null +++ b/src/Common/src/Interop/Unix/System.Net.Security.Native/Interop.GssApiException.cs @@ -0,0 +1,92 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Runtime.InteropServices; + +internal static partial class Interop +{ + internal static partial class NetSecurityNative + { + internal sealed class GssApiException : Exception + { + private readonly Status _minorStatus; + + public Status MajorStatus + { + get { return (Status)HResult;} + } + + public Status MinorStatus + { + get { return _minorStatus;} + } + + public GssApiException(string message) : base(message) + { + } + + public GssApiException(Status majorStatus, Status minorStatus) + : base(GetGssApiDisplayStatus(majorStatus, minorStatus, null)) + { + HResult = (int)majorStatus; + _minorStatus = minorStatus; + } + + public GssApiException(Status majorStatus, Status minorStatus, string helpText) + : base(GetGssApiDisplayStatus(majorStatus, minorStatus, helpText)) + { + HResult = (int)majorStatus; + _minorStatus = minorStatus; + } + + private static string GetGssApiDisplayStatus(Status majorStatus, Status minorStatus, string helpText) + { + string majorError = GetGssApiDisplayStatus(majorStatus, isMinor: false); + string errorMessage; + + if (minorStatus != Status.GSS_S_COMPLETE) + { + string minorError = GetGssApiDisplayStatus(minorStatus, isMinor: true); + errorMessage = (majorError != null && minorError != null) ? + SR.Format(SR.net_gssapi_operation_failed_detailed, majorError, minorError) : + SR.Format(SR.net_gssapi_operation_failed, majorStatus.ToString("x"), minorStatus.ToString("x")); + } + else + { + errorMessage = (majorError != null) ? + SR.Format(SR.net_gssapi_operation_failed_detailed_majoronly, majorError) : + SR.Format(SR.net_gssapi_operation_failed_majoronly, majorStatus.ToString("x")); + } + + if (!string.IsNullOrEmpty(helpText)) + { + return errorMessage + " " + helpText; + } + + return errorMessage; + } + + private static string GetGssApiDisplayStatus(Status status, bool isMinor) + { + GssBuffer displayBuffer = default(GssBuffer); + + try + { + Interop.NetSecurityNative.Status minStat; + Interop.NetSecurityNative.Status displayCallStatus = isMinor ? + DisplayMinorStatus(out minStat, status, ref displayBuffer): + DisplayMajorStatus(out minStat, status, ref displayBuffer); + return (Status.GSS_S_COMPLETE != displayCallStatus) ? null : Marshal.PtrToStringAnsi(displayBuffer._data); + } + finally + { + displayBuffer.Dispose(); + } + } + } + } +} diff --git a/src/Common/src/Interop/Unix/System.Net.Security.Native/Interop.GssBuffer.cs b/src/Common/src/Interop/Unix/System.Net.Security.Native/Interop.GssBuffer.cs new file mode 100644 index 000000000..558df3045 --- /dev/null +++ b/src/Common/src/Interop/Unix/System.Net.Security.Native/Interop.GssBuffer.cs @@ -0,0 +1,76 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using System.Diagnostics; +using System.Runtime.InteropServices; +using Microsoft.Win32.SafeHandles; + +internal static partial class Interop +{ + internal static partial class NetSecurityNative + { + [StructLayout(LayoutKind.Sequential)] + internal unsafe struct GssBuffer : IDisposable + { + internal ulong _length; + internal IntPtr _data; + + internal int Copy(byte[] destination, int offset) + { + Debug.Assert(destination != null, "target destination cannot be null"); + Debug.Assert((offset >= 0 && offset < destination.Length) || destination.Length == 0, "invalid offset " + offset); + + if (_data == IntPtr.Zero || _length == 0) + { + return 0; + } + + // Using Convert.ToInt32 to throw an exception in the unlikely event of too large value of _length + int sourceLength = Convert.ToInt32(_length); + int destinationAvailable = destination.Length - offset; // amount of space in the given buffer + if (sourceLength > destinationAvailable) + { + throw new NetSecurityNative.GssApiException(SR.Format(SR.net_context_buffer_too_small, sourceLength, destinationAvailable)); + } + + Marshal.Copy(_data, destination, offset, sourceLength); + return sourceLength; + } + + internal byte[] ToByteArray() + { + if (_data == IntPtr.Zero || _length == 0) + { + return Array.Empty(); + } + + int destinationLength = Convert.ToInt32(_length); + byte[] destination = new byte[destinationLength]; + Marshal.Copy(_data, destination, 0, destinationLength); + return destination; + } + + public void Dispose() + { + if (_data != IntPtr.Zero) + { + Interop.NetSecurityNative.ReleaseGssBuffer(_data, _length); + _data = IntPtr.Zero; + } + + _length = 0; + } + +#if DEBUG + static GssBuffer() + { + // Verify managed size on both 32-bit and 64-bit matches the PAL_GssBuffer + // native struct size, which is also padded on 32-bit. + Debug.Assert(Marshal.SizeOf() == 16); + } +#endif + } + } +} diff --git a/migrated/src/Common/Interop/Unix/System.Net.Security.Native/Interop.NetSecurityNative.Extended.cs b/src/Common/src/Interop/Unix/System.Net.Security.Native/Interop.NetSecurityNative.Extended.cs similarity index 100% rename from migrated/src/Common/Interop/Unix/System.Net.Security.Native/Interop.NetSecurityNative.Extended.cs rename to src/Common/src/Interop/Unix/System.Net.Security.Native/Interop.NetSecurityNative.Extended.cs diff --git a/src/Common/src/Interop/Unix/System.Net.Security.Native/Interop.NetSecurityNative.IsNtlmInstalled.cs b/src/Common/src/Interop/Unix/System.Net.Security.Native/Interop.NetSecurityNative.IsNtlmInstalled.cs new file mode 100644 index 000000000..91d2d4fe4 --- /dev/null +++ b/src/Common/src/Interop/Unix/System.Net.Security.Native/Interop.NetSecurityNative.IsNtlmInstalled.cs @@ -0,0 +1,15 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using System.Runtime.InteropServices; + +internal static partial class Interop +{ + internal static partial class NetSecurityNative + { + [DllImport(Interop.Libraries.NetSecurityNative, EntryPoint="NetSecurityNative_IsNtlmInstalled")] + internal static extern bool IsNtlmInstalled(); + } +} diff --git a/src/Common/src/Interop/Unix/System.Net.Security.Native/Interop.NetSecurityNative.cs b/src/Common/src/Interop/Unix/System.Net.Security.Native/Interop.NetSecurityNative.cs new file mode 100644 index 000000000..c7f57e2a4 --- /dev/null +++ b/src/Common/src/Interop/Unix/System.Net.Security.Native/Interop.NetSecurityNative.cs @@ -0,0 +1,217 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using System.Diagnostics; +using System.Runtime.InteropServices; +using System.Text; +using Microsoft.Win32.SafeHandles; + +internal static partial class Interop +{ + internal static partial class NetSecurityNative + { + [DllImport(Interop.Libraries.NetSecurityNative, EntryPoint="NetSecurityNative_ReleaseGssBuffer")] + internal static extern void ReleaseGssBuffer( + IntPtr bufferPtr, + ulong length); + + [DllImport(Interop.Libraries.NetSecurityNative, EntryPoint="NetSecurityNative_DisplayMinorStatus")] + internal static extern Status DisplayMinorStatus( + out Status minorStatus, + Status statusValue, + ref GssBuffer buffer); + + [DllImport(Interop.Libraries.NetSecurityNative, EntryPoint="NetSecurityNative_DisplayMajorStatus")] + internal static extern Status DisplayMajorStatus( + out Status minorStatus, + Status statusValue, + ref GssBuffer buffer); + + [DllImport(Interop.Libraries.NetSecurityNative, EntryPoint="NetSecurityNative_ImportUserName")] + internal static extern Status ImportUserName( + out Status minorStatus, + string inputName, + int inputNameByteCount, + out SafeGssNameHandle outputName); + + [DllImport(Interop.Libraries.NetSecurityNative, EntryPoint="NetSecurityNative_ImportPrincipalName")] + internal static extern Status ImportPrincipalName( + out Status minorStatus, + string inputName, + int inputNameByteCount, + out SafeGssNameHandle outputName); + + [DllImport(Interop.Libraries.NetSecurityNative, EntryPoint="NetSecurityNative_ReleaseName")] + internal static extern Status ReleaseName( + out Status minorStatus, + ref IntPtr inputName); + + [DllImport(Interop.Libraries.NetSecurityNative, EntryPoint="NetSecurityNative_InitiateCredSpNego")] + internal static extern Status InitiateCredSpNego( + out Status minorStatus, + SafeGssNameHandle desiredName, + out SafeGssCredHandle outputCredHandle); + + [DllImport(Interop.Libraries.NetSecurityNative, EntryPoint="NetSecurityNative_InitiateCredWithPassword")] + internal static extern Status InitiateCredWithPassword( + out Status minorStatus, + bool isNtlm, + SafeGssNameHandle desiredName, + string password, + int passwordLen, + out SafeGssCredHandle outputCredHandle); + + [DllImport(Interop.Libraries.NetSecurityNative, EntryPoint="NetSecurityNative_ReleaseCred")] + internal static extern Status ReleaseCred( + out Status minorStatus, + ref IntPtr credHandle); + + [DllImport(Interop.Libraries.NetSecurityNative, EntryPoint="NetSecurityNative_InitSecContext")] + internal static extern Status InitSecContext( + out Status minorStatus, + SafeGssCredHandle initiatorCredHandle, + ref SafeGssContextHandle contextHandle, + bool isNtlmOnly, + SafeGssNameHandle targetName, + uint reqFlags, + byte[] inputBytes, + int inputLength, + ref GssBuffer token, + out uint retFlags, + out bool isNtlmUsed); + + [DllImport(Interop.Libraries.NetSecurityNative, EntryPoint="NetSecurityNative_InitSecContextEx")] + internal static extern Status InitSecContext( + out Status minorStatus, + SafeGssCredHandle initiatorCredHandle, + ref SafeGssContextHandle contextHandle, + bool isNtlmOnly, + IntPtr cbt, + int cbtSize, + SafeGssNameHandle targetName, + uint reqFlags, + byte[] inputBytes, + int inputLength, + ref GssBuffer token, + out uint retFlags, + out bool isNtlmUsed); + + [DllImport(Interop.Libraries.NetSecurityNative, EntryPoint="NetSecurityNative_AcceptSecContext")] + internal static extern Status AcceptSecContext( + out Status minorStatus, + ref SafeGssContextHandle acceptContextHandle, + byte[] inputBytes, + int inputLength, + ref GssBuffer token, + out uint retFlags); + + [DllImport(Interop.Libraries.NetSecurityNative, EntryPoint="NetSecurityNative_DeleteSecContext")] + internal static extern Status DeleteSecContext( + out Status minorStatus, + ref IntPtr contextHandle); + + [DllImport(Interop.Libraries.NetSecurityNative, EntryPoint="NetSecurityNative_GetUser")] + internal static extern Status GetUser( + out Status minorStatus, + SafeGssContextHandle acceptContextHandle, + ref GssBuffer token); + + [DllImport(Interop.Libraries.NetSecurityNative, EntryPoint="NetSecurityNative_Wrap")] + private static extern Status Wrap( + out Status minorStatus, + SafeGssContextHandle contextHandle, + bool isEncrypt, + byte[] inputBytes, + int offset, + int count, + ref GssBuffer outBuffer); + + [DllImport(Interop.Libraries.NetSecurityNative, EntryPoint="NetSecurityNative_Unwrap")] + private static extern Status Unwrap( + out Status minorStatus, + SafeGssContextHandle contextHandle, + byte[] inputBytes, + int offset, + int count, + ref GssBuffer outBuffer); + + internal static Status WrapBuffer( + out Status minorStatus, + SafeGssContextHandle contextHandle, + bool isEncrypt, + byte[] inputBytes, + int offset, + int count, + ref GssBuffer outBuffer) + { + Debug.Assert(inputBytes != null, "inputBytes must be valid value"); + Debug.Assert(offset >= 0 && offset <= inputBytes.Length, "offset must be valid"); + Debug.Assert(count >= 0 && count <= (inputBytes.Length - offset), "count must be valid"); + + return Wrap(out minorStatus, contextHandle, isEncrypt, inputBytes, offset, count, ref outBuffer); + } + + internal static Status UnwrapBuffer( + out Status minorStatus, + SafeGssContextHandle contextHandle, + byte[] inputBytes, + int offset, + int count, + ref GssBuffer outBuffer) + { + Debug.Assert(inputBytes != null, "inputBytes must be valid value"); + Debug.Assert(offset >= 0 && offset <= inputBytes.Length, "offset must be valid"); + Debug.Assert(count >= 0 && count <= inputBytes.Length, "count must be valid"); + + return Unwrap(out minorStatus, contextHandle, inputBytes, offset, count, ref outBuffer); + } + + // https://www.gnu.org/software/gss/reference/gss.pdf Page 65 + internal const int GSS_C_ROUTINE_ERROR_OFFSET = 16; + + // https://www.gnu.org/software/gss/reference/gss.pdf Page 9 + internal enum Status : uint + { + GSS_S_COMPLETE = 0, + GSS_S_CONTINUE_NEEDED = 1, + GSS_S_BAD_MECH = 1 << GSS_C_ROUTINE_ERROR_OFFSET, + GSS_S_BAD_NAME = 2 << GSS_C_ROUTINE_ERROR_OFFSET, + GSS_S_BAD_NAMETYPE = 3 << GSS_C_ROUTINE_ERROR_OFFSET, + GSS_S_BAD_BINDINGS = 4 << GSS_C_ROUTINE_ERROR_OFFSET, + GSS_S_BAD_STATUS = 5 << GSS_C_ROUTINE_ERROR_OFFSET, + GSS_S_BAD_SIG = 6 << GSS_C_ROUTINE_ERROR_OFFSET, + GSS_S_NO_CRED = 7 << GSS_C_ROUTINE_ERROR_OFFSET, + GSS_S_NO_CONTEXT = 8 << GSS_C_ROUTINE_ERROR_OFFSET, + GSS_S_DEFECTIVE_TOKEN = 9 << GSS_C_ROUTINE_ERROR_OFFSET, + GSS_S_DEFECTIVE_CREDENTIAL = 10 << GSS_C_ROUTINE_ERROR_OFFSET, + GSS_S_CREDENTIALS_EXPIRED = 11 << GSS_C_ROUTINE_ERROR_OFFSET, + GSS_S_CONTEXT_EXPIRED = 12 << GSS_C_ROUTINE_ERROR_OFFSET, + GSS_S_FAILURE = 13 << GSS_C_ROUTINE_ERROR_OFFSET, + GSS_S_BAD_QOP = 14 << GSS_C_ROUTINE_ERROR_OFFSET, + GSS_S_UNAUTHORIZED = 15 << GSS_C_ROUTINE_ERROR_OFFSET, + GSS_S_UNAVAILABLE = 16 << GSS_C_ROUTINE_ERROR_OFFSET, + GSS_S_DUPLICATE_ELEMENT = 17 << GSS_C_ROUTINE_ERROR_OFFSET, + GSS_S_NAME_NOT_MN = 18 << GSS_C_ROUTINE_ERROR_OFFSET, + } + + [Flags] + internal enum GssFlags : uint + { + GSS_C_DELEG_FLAG = 0x1, + GSS_C_MUTUAL_FLAG = 0x2, + GSS_C_REPLAY_FLAG = 0x4, + GSS_C_SEQUENCE_FLAG = 0x8, + GSS_C_CONF_FLAG = 0x10, + GSS_C_INTEG_FLAG = 0x20, + GSS_C_ANON_FLAG = 0x40, + GSS_C_PROT_READY_FLAG = 0x80, + GSS_C_TRANS_FLAG = 0x100, + GSS_C_DCE_STYLE = 0x1000, + GSS_C_IDENTIFY_FLAG = 0x2000, + GSS_C_EXTENDED_ERROR_FLAG = 0x4000, + GSS_C_DELEG_POLICY_FLAG = 0x8000 + } + } +} diff --git a/src/Common/src/Interop/Windows/Crypt32/Interop.certificates.cs b/src/Common/src/Interop/Windows/Crypt32/Interop.certificates.cs new file mode 100644 index 000000000..2fb8e48a1 --- /dev/null +++ b/src/Common/src/Interop/Windows/Crypt32/Interop.certificates.cs @@ -0,0 +1,26 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using System.Runtime.InteropServices; + +using Microsoft.Win32.SafeHandles; + +internal static partial class Interop +{ + internal static partial class Crypt32 + { + [DllImport(Interop.Libraries.Crypt32, CharSet = CharSet.Unicode, SetLastError = true)] + [return: MarshalAs(UnmanagedType.Bool)] + internal static extern bool CertFreeCertificateContext(IntPtr pCertContext); + + [DllImport(Interop.Libraries.Crypt32, CharSet = CharSet.Unicode, SetLastError = true)] + [return: MarshalAs(UnmanagedType.Bool)] + internal static extern bool CertVerifyCertificateChainPolicy( + IntPtr pszPolicyOID, + SafeX509ChainHandle pChainContext, + [In] ref CERT_CHAIN_POLICY_PARA pPolicyPara, + [In, Out] ref CERT_CHAIN_POLICY_STATUS pPolicyStatus); + } +} diff --git a/src/Common/src/Interop/Windows/Crypt32/Interop.certificates_types.cs b/src/Common/src/Interop/Windows/Crypt32/Interop.certificates_types.cs new file mode 100644 index 000000000..cbf5c3309 --- /dev/null +++ b/src/Common/src/Interop/Windows/Crypt32/Interop.certificates_types.cs @@ -0,0 +1,127 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using System.Runtime.InteropServices; + +internal static partial class Interop +{ + internal static partial class Crypt32 + { + internal static partial class AuthType + { + internal const uint AUTHTYPE_CLIENT = 1; + internal const uint AUTHTYPE_SERVER = 2; + } + + internal static partial class CertChainPolicyIgnoreFlags + { + internal const uint CERT_CHAIN_POLICY_IGNORE_NOT_TIME_VALID_FLAG = 0x00000001; + internal const uint CERT_CHAIN_POLICY_IGNORE_CTL_NOT_TIME_VALID_FLAG = 0x00000002; + internal const uint CERT_CHAIN_POLICY_IGNORE_NOT_TIME_NESTED_FLAG = 0x00000004; + internal const uint CERT_CHAIN_POLICY_IGNORE_INVALID_BASIC_CONSTRAINTS_FLAG = 0x00000008; + internal const uint CERT_CHAIN_POLICY_ALLOW_UNKNOWN_CA_FLAG = 0x00000010; + internal const uint CERT_CHAIN_POLICY_IGNORE_WRONG_USAGE_FLAG = 0x00000020; + internal const uint CERT_CHAIN_POLICY_IGNORE_INVALID_NAME_FLAG = 0x00000040; + internal const uint CERT_CHAIN_POLICY_IGNORE_INVALID_POLICY_FLAG = 0x00000080; + internal const uint CERT_CHAIN_POLICY_IGNORE_END_REV_UNKNOWN_FLAG = 0x00000100; + internal const uint CERT_CHAIN_POLICY_IGNORE_CTL_SIGNER_REV_UNKNOWN_FLAG = 0x00000200; + internal const uint CERT_CHAIN_POLICY_IGNORE_CA_REV_UNKNOWN_FLAG = 0x00000400; + internal const uint CERT_CHAIN_POLICY_IGNORE_ROOT_REV_UNKNOWN_FLAG = 0x00000800; + + internal const uint CERT_CHAIN_POLICY_IGNORE_ALL = + CERT_CHAIN_POLICY_IGNORE_NOT_TIME_VALID_FLAG | + CERT_CHAIN_POLICY_IGNORE_CTL_NOT_TIME_VALID_FLAG | + CERT_CHAIN_POLICY_IGNORE_NOT_TIME_NESTED_FLAG | + CERT_CHAIN_POLICY_IGNORE_INVALID_BASIC_CONSTRAINTS_FLAG | + CERT_CHAIN_POLICY_ALLOW_UNKNOWN_CA_FLAG | + CERT_CHAIN_POLICY_IGNORE_WRONG_USAGE_FLAG | + CERT_CHAIN_POLICY_IGNORE_INVALID_NAME_FLAG | + CERT_CHAIN_POLICY_IGNORE_INVALID_POLICY_FLAG | + CERT_CHAIN_POLICY_IGNORE_END_REV_UNKNOWN_FLAG | + CERT_CHAIN_POLICY_IGNORE_CTL_SIGNER_REV_UNKNOWN_FLAG | + CERT_CHAIN_POLICY_IGNORE_CA_REV_UNKNOWN_FLAG | + CERT_CHAIN_POLICY_IGNORE_ROOT_REV_UNKNOWN_FLAG; + } + + internal static partial class CertChainPolicy + { + internal const int CERT_CHAIN_POLICY_BASE = 1; + internal const int CERT_CHAIN_POLICY_AUTHENTICODE = 2; + internal const int CERT_CHAIN_POLICY_AUTHENTICODE_TS = 3; + internal const int CERT_CHAIN_POLICY_SSL = 4; + internal const int CERT_CHAIN_POLICY_BASIC_CONSTRAINTS = 5; + internal const int CERT_CHAIN_POLICY_NT_AUTH = 6; + internal const int CERT_CHAIN_POLICY_MICROSOFT_ROOT = 7; + internal const int CERT_CHAIN_POLICY_EV = 8; + } + + internal static partial class CertChainPolicyErrors + { + // Base Policy errors (CERT_CHAIN_POLICY_BASE). + internal const uint TRUST_E_CERT_SIGNATURE = 0x80096004; + internal const uint CRYPT_E_REVOKED = 0x80092010; + internal const uint CERT_E_UNTRUSTEDROOT = 0x800B0109; + internal const uint CERT_E_UNTRUSTEDTESTROOT = 0x800B010D; + internal const uint CERT_E_CHAINING = 0x800B010A; + internal const uint CERT_E_WRONG_USAGE = 0x800B0110; + internal const uint CERT_E_EXPIRE = 0x800B0101; + internal const uint CERT_E_INVALID_NAME = 0x800B0114; + internal const uint CERT_E_INVALID_POLICY = 0x800B0113; + + // Basic Constraints Policy errors (CERT_CHAIN_POLICY_BASIC_CONSTRAINTS). + internal const uint TRUST_E_BASIC_CONSTRAINTS = 0x80096019; + + // Authenticode Policy errors (CERT_CHAIN_POLICY_AUTHENTICODE and CERT_CHAIN_POLICY_AUTHENTICODE_TS). + internal const uint CERT_E_CRITICAL = 0x800B0105; + internal const uint CERT_E_VALIDITYPERIODNESTING = 0x800B0102; + internal const uint CRYPT_E_NO_REVOCATION_CHECK = 0x80092012; + internal const uint CRYPT_E_REVOCATION_OFFLINE = 0x80092013; + internal const uint CERT_E_PURPOSE = 0x800B0106; + internal const uint CERT_E_REVOKED = 0x800B010C; + internal const uint CERT_E_REVOCATION_FAILURE = 0x800B010E; + + // SSL Policy errors (CERT_CHAIN_POLICY_SSL). + internal const uint CERT_E_CN_NO_MATCH = 0x800B010F; + internal const uint CERT_E_ROLE = 0x800B0103; + } + + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)] + internal struct CERT_CONTEXT + { + internal uint dwCertEncodingType; + internal IntPtr pbCertEncoded; + internal uint cbCertEncoded; + internal IntPtr pCertInfo; + internal IntPtr hCertStore; + } + + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)] + internal unsafe struct SSL_EXTRA_CERT_CHAIN_POLICY_PARA + { + internal uint cbSize; + internal uint dwAuthType; + internal uint fdwChecks; + internal char* pwszServerName; + } + + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)] + internal unsafe struct CERT_CHAIN_POLICY_PARA + { + public uint cbSize; + public uint dwFlags; + public SSL_EXTRA_CERT_CHAIN_POLICY_PARA* pvExtraPolicyPara; + } + + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)] + internal unsafe struct CERT_CHAIN_POLICY_STATUS + { + public uint cbSize; + public uint dwError; + public int lChainIndex; + public int lElementIndex; + public void* pvExtraPolicyStatus; + } + } +} diff --git a/src/Common/src/Interop/Windows/Interop.Errors.cs b/src/Common/src/Interop/Windows/Interop.Errors.cs new file mode 100644 index 000000000..7803d5d8c --- /dev/null +++ b/src/Common/src/Interop/Windows/Interop.Errors.cs @@ -0,0 +1,89 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +internal partial class Interop +{ + // https://msdn.microsoft.com/en-us/library/windows/desktop/ms681382.aspx + internal partial class Errors + { + internal const int ERROR_SUCCESS = 0x0; + internal const int ERROR_INVALID_FUNCTION = 0x1; + internal const int ERROR_FILE_NOT_FOUND = 0x2; + internal const int ERROR_PATH_NOT_FOUND = 0x3; + internal const int ERROR_ACCESS_DENIED = 0x5; + internal const int ERROR_INVALID_HANDLE = 0x6; + internal const int ERROR_NOT_ENOUGH_MEMORY = 0x8; + internal const int ERROR_INVALID_DATA = 0xD; + internal const int ERROR_INVALID_DRIVE = 0xF; + internal const int ERROR_NO_MORE_FILES = 0x12; + internal const int ERROR_NOT_READY = 0x15; + internal const int ERROR_BAD_COMMAND = 0x16; + internal const int ERROR_BAD_LENGTH = 0x18; + internal const int ERROR_SHARING_VIOLATION = 0x20; + internal const int ERROR_LOCK_VIOLATION = 0x21; + internal const int ERROR_HANDLE_EOF = 0x26; + internal const int ERROR_BAD_NETPATH = 0x35; + internal const int ERROR_NETWORK_ACCESS_DENIED = 0x41; + internal const int ERROR_BAD_NET_NAME = 0x43; + internal const int ERROR_FILE_EXISTS = 0x50; + internal const int ERROR_INVALID_PARAMETER = 0x57; + internal const int ERROR_BROKEN_PIPE = 0x6D; + internal const int ERROR_SEM_TIMEOUT = 0x79; + internal const int ERROR_CALL_NOT_IMPLEMENTED = 0x78; + internal const int ERROR_INSUFFICIENT_BUFFER = 0x7A; + internal const int ERROR_INVALID_NAME = 0x7B; + internal const int ERROR_NEGATIVE_SEEK = 0x83; + internal const int ERROR_DIR_NOT_EMPTY = 0x91; + internal const int ERROR_BAD_PATHNAME = 0xA1; + internal const int ERROR_LOCK_FAILED = 0xA7; + internal const int ERROR_BUSY = 0xAA; + internal const int ERROR_ALREADY_EXISTS = 0xB7; + internal const int ERROR_BAD_EXE_FORMAT = 0xC1; + internal const int ERROR_ENVVAR_NOT_FOUND = 0xCB; + internal const int ERROR_FILENAME_EXCED_RANGE = 0xCE; + internal const int ERROR_EXE_MACHINE_TYPE_MISMATCH = 0xD8; + internal const int ERROR_PIPE_BUSY = 0xE7; + internal const int ERROR_NO_DATA = 0xE8; + internal const int ERROR_PIPE_NOT_CONNECTED = 0xE9; + internal const int ERROR_MORE_DATA = 0xEA; + internal const int ERROR_NO_MORE_ITEMS = 0x103; + internal const int ERROR_DIRECTORY = 0x10B; + internal const int ERROR_PARTIAL_COPY = 0x12B; + internal const int ERROR_ARITHMETIC_OVERFLOW = 0x216; + internal const int ERROR_PIPE_CONNECTED = 0x217; + internal const int ERROR_PIPE_LISTENING = 0x218; + internal const int ERROR_OPERATION_ABORTED = 0x3E3; + internal const int ERROR_IO_INCOMPLETE = 0x3E4; + internal const int ERROR_IO_PENDING = 0x3E5; + internal const int ERROR_NO_TOKEN = 0x3f0; + internal const int ERROR_SERVICE_DOES_NOT_EXIST = 0x424; + internal const int ERROR_DLL_INIT_FAILED = 0x45A; + internal const int ERROR_COUNTER_TIMEOUT = 0x461; + internal const int ERROR_NO_ASSOCIATION = 0x483; + internal const int ERROR_DDE_FAIL = 0x484; + internal const int ERROR_DLL_NOT_FOUND = 0x485; + internal const int ERROR_NOT_FOUND = 0x490; + internal const int ERROR_NETWORK_UNREACHABLE = 0x4CF; + internal const int ERROR_NON_ACCOUNT_SID = 0x4E9; + internal const int ERROR_NOT_ALL_ASSIGNED = 0x514; + internal const int ERROR_UNKNOWN_REVISION = 0x519; + internal const int ERROR_INVALID_OWNER = 0x51B; + internal const int ERROR_INVALID_PRIMARY_GROUP = 0x51C; + internal const int ERROR_NO_SUCH_PRIVILEGE = 0x521; + internal const int ERROR_PRIVILEGE_NOT_HELD = 0x522; + internal const int ERROR_INVALID_ACL = 0x538; + internal const int ERROR_INVALID_SECURITY_DESCR = 0x53A; + internal const int ERROR_INVALID_SID = 0x539; + internal const int ERROR_BAD_IMPERSONATION_LEVEL = 0x542; + internal const int ERROR_CANT_OPEN_ANONYMOUS = 0x543; + internal const int ERROR_NO_SECURITY_ON_OBJECT = 0x546; + internal const int ERROR_CANNOT_IMPERSONATE = 0x558; + internal const int ERROR_CLASS_ALREADY_EXISTS = 0x582; + internal const int ERROR_EVENTLOG_FILE_CHANGED = 0x5DF; + internal const int ERROR_TRUSTED_RELATIONSHIP_FAILURE = 0x6FD; + internal const int ERROR_RESOURCE_LANG_NOT_FOUND = 0x717; + internal const int EFail = unchecked((int)0x80004005); + internal const int E_FILENOTFOUND = unchecked((int)0x80070002); + } +} diff --git a/src/Common/src/Interop/Windows/Interop.Libraries.cs b/src/Common/src/Interop/Windows/Interop.Libraries.cs new file mode 100644 index 000000000..53927848a --- /dev/null +++ b/src/Common/src/Interop/Windows/Interop.Libraries.cs @@ -0,0 +1,41 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +internal static partial class Interop +{ + internal static partial class Libraries + { + internal const string Advapi32 = "advapi32.dll"; + internal const string BCrypt = "BCrypt.dll"; + internal const string CoreComm_L1_1_1 = "api-ms-win-core-comm-l1-1-1.dll"; + internal const string CoreComm_L1_1_2 = "api-ms-win-core-comm-l1-1-2.dll"; + internal const string Crypt32 = "crypt32.dll"; + internal const string CryptUI = "cryptui.dll"; + internal const string Error_L1 = "api-ms-win-core-winrt-error-l1-1-0.dll"; + internal const string HttpApi = "httpapi.dll"; + internal const string IpHlpApi = "iphlpapi.dll"; + internal const string Kernel32 = "kernel32.dll"; + internal const string Memory_L1_3 = "api-ms-win-core-memory-l1-1-3.dll"; + internal const string Mswsock = "mswsock.dll"; + internal const string NCrypt = "ncrypt.dll"; + internal const string NtDll = "ntdll.dll"; + internal const string Odbc32 = "odbc32.dll"; + internal const string Ole32 = "ole32.dll"; + internal const string OleAut32 = "oleaut32.dll"; + internal const string PerfCounter = "perfcounter.dll"; + internal const string RoBuffer = "api-ms-win-core-winrt-robuffer-l1-1-0.dll"; + internal const string Secur32 = "secur32.dll"; + internal const string Shell32 = "shell32.dll"; + internal const string SspiCli = "sspicli.dll"; + internal const string User32 = "user32.dll"; + internal const string Version = "version.dll"; + internal const string WebSocket = "websocket.dll"; + internal const string WinHttp = "winhttp.dll"; + internal const string WinMM = "winmm.dll"; + internal const string Ws2_32 = "ws2_32.dll"; + internal const string Wtsapi32 = "wtsapi32.dll"; + internal const string CompressionNative = "clrcompression.dll"; + internal const string CoreWinRT = "api-ms-win-core-winrt-l1-1-0.dll"; + } +} diff --git a/src/Common/src/Interop/Windows/Interop.OBJECT_ATTRIBUTES.cs b/src/Common/src/Interop/Windows/Interop.OBJECT_ATTRIBUTES.cs new file mode 100644 index 000000000..c6e51ae89 --- /dev/null +++ b/src/Common/src/Interop/Windows/Interop.OBJECT_ATTRIBUTES.cs @@ -0,0 +1,103 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using System.Runtime.InteropServices; + +internal static partial class Interop +{ + /// + /// OBJECT_ATTRIBUTES structure. + /// The OBJECT_ATTRIBUTES structure specifies attributes that can be applied to objects or object handles by routines + /// that create objects and/or return handles to objects. + /// + internal unsafe struct OBJECT_ATTRIBUTES + { + public uint Length; + + /// + /// Optional handle to root object directory for the given ObjectName. + /// Can be a file system directory or object manager directory. + /// + public IntPtr RootDirectory; + + /// + /// Name of the object. Must be fully qualified if RootDirectory isn't set. + /// Otherwise is relative to RootDirectory. + /// + public UNICODE_STRING* ObjectName; + + public ObjectAttributes Attributes; + + /// + /// If null, object will receive default security settings. + /// + public void* SecurityDescriptor; + + /// + /// Optional quality of service to be applied to the object. Used to indicate + /// security impersonation level and context tracking mode (dynamic or static). + /// + public void* SecurityQualityOfService; + + /// + /// Equivalent of InitializeObjectAttributes macro with the exception that you can directly set SQOS. + /// + public unsafe OBJECT_ATTRIBUTES(UNICODE_STRING* objectName, ObjectAttributes attributes, IntPtr rootDirectory) + { + Length = (uint)sizeof(OBJECT_ATTRIBUTES); + RootDirectory = rootDirectory; + ObjectName = objectName; + Attributes = attributes; + SecurityDescriptor = null; + SecurityQualityOfService = null; + } + } + + [Flags] + public enum ObjectAttributes : uint + { + // https://msdn.microsoft.com/en-us/library/windows/hardware/ff564586.aspx + // https://msdn.microsoft.com/en-us/library/windows/hardware/ff547804.aspx + + /// + /// This handle can be inherited by child processes of the current process. + /// + OBJ_INHERIT = 0x00000002, + + /// + /// This flag only applies to objects that are named within the object manager. + /// By default, such objects are deleted when all open handles to them are closed. + /// If this flag is specified, the object is not deleted when all open handles are closed. + /// + OBJ_PERMANENT = 0x00000010, + + /// + /// Only a single handle can be open for this object. + /// + OBJ_EXCLUSIVE = 0x00000020, + + /// + /// Lookups for this object should be case insensitive. + /// + OBJ_CASE_INSENSITIVE = 0x00000040, + + /// + /// Create on existing object should open, not fail with STATUS_OBJECT_NAME_COLLISION. + /// + OBJ_OPENIF = 0x00000080, + + /// + /// Open the symbolic link, not its target. + /// + OBJ_OPENLINK = 0x00000100, + + // Only accessible from kernel mode + // OBJ_KERNEL_HANDLE + + // Access checks enforced, even in kernel mode + // OBJ_FORCE_ACCESS_CHECK + // OBJ_VALID_ATTRIBUTES = 0x000001F2 + } +} diff --git a/src/Common/src/Interop/Windows/Interop.UNICODE_STRING.cs b/src/Common/src/Interop/Windows/Interop.UNICODE_STRING.cs new file mode 100644 index 000000000..0b99ee547 --- /dev/null +++ b/src/Common/src/Interop/Windows/Interop.UNICODE_STRING.cs @@ -0,0 +1,26 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using System.Runtime.InteropServices; + +internal static partial class Interop +{ + // https://msdn.microsoft.com/en-us/library/windows/desktop/aa380518.aspx + // https://msdn.microsoft.com/en-us/library/windows/hardware/ff564879.aspx + [StructLayout(LayoutKind.Sequential)] + internal struct UNICODE_STRING + { + /// + /// Length in bytes, not including the null terminator, if any. + /// + internal ushort Length; + + /// + /// Max size of the buffer in bytes + /// + internal ushort MaximumLength; + internal IntPtr Buffer; + } +} diff --git a/src/Common/src/Interop/Windows/Kernel32/Interop.CTL_CODE.cs b/src/Common/src/Interop/Windows/Kernel32/Interop.CTL_CODE.cs new file mode 100644 index 000000000..670f01d95 --- /dev/null +++ b/src/Common/src/Interop/Windows/Kernel32/Interop.CTL_CODE.cs @@ -0,0 +1,32 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using System.Runtime.InteropServices; +using System.Data.Common; + +internal partial class Interop +{ + internal partial class Kernel32 + { + /// CTL_CODE method. + /// Identifies the device type. This value must match the value that is set in the DeviceType member of the driver's DEVICE_OBJECT structure. + /// Identifies the function to be performed by the driver. Values of less than 0x800 are reserved for Microsoft. Values of 0x800 and higher can be used by vendors. + /// Indicates how the system will pass data between the caller of DeviceIoControl (or IoBuildDeviceIoControlRequest) and the driver that handles the IRP. + /// Indicates the type of access that a caller must request when opening the file object that represents the device (see IRP_MJ_CREATE). + internal unsafe static uint CTL_CODE( + ushort deviceType, + ushort function, + byte method, + byte access) + { + // MaxFunctionCode specifies the maximum value of the FunctionCode field in the FSCTLs (or IOCTLs for IOCTL tests). The maximum possible value is 4095. + // See https://docs.microsoft.com/en-us/windows-hardware/drivers/develop/how-to-select-and-configure-the-device-fundamental-tests + if (function > 4095) + throw ADP.ArgumentOutOfRange("function"); + + return (uint)((deviceType << 16) | (access << 14) | (function << 2) | method); + } + } +} diff --git a/src/Common/src/Interop/Windows/Kernel32/Interop.DeviceIoControl.cs b/src/Common/src/Interop/Windows/Kernel32/Interop.DeviceIoControl.cs new file mode 100644 index 000000000..7520040a5 --- /dev/null +++ b/src/Common/src/Interop/Windows/Kernel32/Interop.DeviceIoControl.cs @@ -0,0 +1,26 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using Microsoft.Win32.SafeHandles; +using System; +using System.Runtime.InteropServices; + +internal partial class Interop +{ + internal partial class Kernel32 + { + [DllImport(Libraries.Kernel32, CharSet = CharSet.Unicode, SetLastError = true)] + internal static extern bool DeviceIoControl + ( + SafeFileHandle fileHandle, + uint ioControlCode, + IntPtr inBuffer, + uint cbInBuffer, + IntPtr outBuffer, + uint cbOutBuffer, + out uint cbBytesReturned, + IntPtr overlapped + ); + } +} diff --git a/src/Common/src/Interop/Windows/Kernel32/Interop.FileOperations.cs b/src/Common/src/Interop/Windows/Kernel32/Interop.FileOperations.cs new file mode 100644 index 000000000..8576834ea --- /dev/null +++ b/src/Common/src/Interop/Windows/Kernel32/Interop.FileOperations.cs @@ -0,0 +1,28 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +internal partial class Interop +{ + internal partial class Kernel32 + { + internal partial class IOReparseOptions + { + internal const uint IO_REPARSE_TAG_FILE_PLACEHOLDER = 0x80000015; + internal const uint IO_REPARSE_TAG_MOUNT_POINT = 0xA0000003; + } + + internal partial class FileOperations + { + internal const int OPEN_EXISTING = 3; + internal const int COPY_FILE_FAIL_IF_EXISTS = 0x00000001; + + internal const int FILE_FLAG_BACKUP_SEMANTICS = 0x02000000; + internal const int FILE_FLAG_FIRST_PIPE_INSTANCE = 0x00080000; + internal const int FILE_FLAG_OVERLAPPED = 0x40000000; + + internal const int FILE_LIST_DIRECTORY = 0x0001; + } + + } +} diff --git a/src/Common/src/Interop/Windows/Kernel32/Interop.FreeLibrary.cs b/src/Common/src/Interop/Windows/Kernel32/Interop.FreeLibrary.cs new file mode 100644 index 000000000..e3b330b33 --- /dev/null +++ b/src/Common/src/Interop/Windows/Kernel32/Interop.FreeLibrary.cs @@ -0,0 +1,17 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using System.Runtime.InteropServices; + +using Microsoft.Win32.SafeHandles; + +internal partial class Interop +{ + internal partial class Kernel32 + { + [DllImport(Libraries.Kernel32, ExactSpelling = true, SetLastError = true)] + public static extern unsafe bool FreeLibrary([In] IntPtr hModule); + } +} diff --git a/src/Common/src/Interop/Windows/Kernel32/Interop.GetProcAddress.cs b/src/Common/src/Interop/Windows/Kernel32/Interop.GetProcAddress.cs new file mode 100644 index 000000000..4178eba4e --- /dev/null +++ b/src/Common/src/Interop/Windows/Kernel32/Interop.GetProcAddress.cs @@ -0,0 +1,20 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using System.Runtime.InteropServices; + +using Microsoft.Win32.SafeHandles; + +internal partial class Interop +{ + internal partial class Kernel32 + { + [DllImport(Libraries.Kernel32, CharSet = CharSet.Ansi, BestFitMapping = false)] + public static extern IntPtr GetProcAddress(SafeLibraryHandle hModule, string lpProcName); + + [DllImport(Libraries.Kernel32, CharSet = CharSet.Ansi, BestFitMapping = false)] + public static extern IntPtr GetProcAddress(IntPtr hModule, string lpProcName); + } +} diff --git a/src/Common/src/Interop/Windows/Kernel32/Interop.IoControlCodeAccess.cs b/src/Common/src/Interop/Windows/Kernel32/Interop.IoControlCodeAccess.cs new file mode 100644 index 000000000..6b7d42add --- /dev/null +++ b/src/Common/src/Interop/Windows/Kernel32/Interop.IoControlCodeAccess.cs @@ -0,0 +1,39 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using System.Runtime.InteropServices; + +internal partial class Interop +{ + internal partial class Kernel32 + { + /// + /// RequiredAccess. + /// Indicates the type of access that a caller must request when opening the file object that represents the device (see IRP_MJ_CREATE). + /// + [Flags] + public enum IoControlCodeAccess + { + /// + /// The I/O manager sends the IRP for any caller that has a handle to the file object that represents the target device object. + /// + FILE_ANY_ACCESS = 0x00, + + /// + /// The I/O manager sends the IRP only for a caller with read access rights, allowing the underlying device driver to transfer + /// data from the device to system memory. + /// + FILE_READ_DATA = 0x01, + + /// + /// The I/O manager sends the IRP only for a caller with write access rights, allowing the underlying device driver to transfer + /// data from system memory to its device. + /// + FILE_WRITE_DATA = 0x02 + + // FILE_READ_DATA and FILE_WRITE_DATA can be ORed together if the caller must have both read and write access rights. + } + } +} diff --git a/src/Common/src/Interop/Windows/Kernel32/Interop.IoControlTransferType.cs b/src/Common/src/Interop/Windows/Kernel32/Interop.IoControlTransferType.cs new file mode 100644 index 000000000..8d37f77c4 --- /dev/null +++ b/src/Common/src/Interop/Windows/Kernel32/Interop.IoControlTransferType.cs @@ -0,0 +1,43 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using System.Runtime.InteropServices; + +internal partial class Interop +{ + internal partial class Kernel32 + { + /// + /// TransferType. + /// Indicates how the system will pass data between the caller of DeviceIoControl (or IoBuildDeviceIoControlRequest) and the driver that handles the IRP. + /// + public enum IoControlTransferType + { + /// + /// Specifies the buffered I/O method, which is typically used for transferring small amounts of data per request. + /// Most I/O control codes for device and intermediate drivers use this TransferType value. + /// + METHOD_BUFFERED, + + /// + /// Specifies the direct I/O method, which is typically used for reading or writing large amounts of data, using DMA or PIO, that must be transferred quickly. + /// Specify METHOD_IN_DIRECT if the caller of DeviceIoControl or IoBuildDeviceIoControlRequest will pass data to the driver. + /// + METHOD_IN_DIRECT, + + /// + /// Specifies the direct I/O method, which is typically used for reading or writing large amounts of data, using DMA or PIO, that must be transferred quickly. + /// Specify METHOD_OUT_DIRECT if the caller of DeviceIoControl or IoBuildDeviceIoControlRequest will receive data from the driver. + /// + METHOD_OUT_DIRECT, + + /// + /// Specifies neither buffered nor direct I/O. The I/O manager does not provide any system buffers or MDLs. The IRP supplies the user-mode virtual addresses + /// of the input and output buffers that were specified to DeviceIoControl or IoBuildDeviceIoControlRequest, without validating or mapping them. + /// + METHOD_NEITHER + } + } +} diff --git a/src/Common/src/Interop/Windows/Kernel32/Interop.LoadLibraryEx.cs b/src/Common/src/Interop/Windows/Kernel32/Interop.LoadLibraryEx.cs new file mode 100644 index 000000000..d24d4d3c6 --- /dev/null +++ b/src/Common/src/Interop/Windows/Kernel32/Interop.LoadLibraryEx.cs @@ -0,0 +1,20 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using System.Runtime.InteropServices; + +using Microsoft.Win32.SafeHandles; + +internal partial class Interop +{ + internal partial class Kernel32 + { + public const int LOAD_LIBRARY_AS_DATAFILE = 0x00000002; + public const int LOAD_LIBRARY_SEARCH_SYSTEM32 = 0x00000800; + + [DllImport(Libraries.Kernel32, ExactSpelling = true, CharSet = CharSet.Unicode, SetLastError = true)] + public static extern SafeLibraryHandle LoadLibraryExW([In] string lpwLibFileName, [In] IntPtr hFile, [In] uint dwFlags); + } +} diff --git a/src/Common/src/Interop/Windows/NtDll/Interop.FILE_FULL_EA_INFORMATION.cs b/src/Common/src/Interop/Windows/NtDll/Interop.FILE_FULL_EA_INFORMATION.cs new file mode 100644 index 000000000..653180c73 --- /dev/null +++ b/src/Common/src/Interop/Windows/NtDll/Interop.FILE_FULL_EA_INFORMATION.cs @@ -0,0 +1,41 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using System.Runtime.InteropServices; + +internal partial class Interop +{ + internal partial class NtDll + { + /// + /// FILE_FULL_EA_INFORMATION structure. + /// Provides extended attribute (EA) information. This structure is used primarily by network drivers. + /// + [StructLayoutAttribute(LayoutKind.Sequential)] + internal unsafe struct FILE_FULL_EA_INFORMATION + { + /// + /// The offset of the next FILE_FULL_EA_INFORMATION-type entry. This member is zero if no other entries follow this one. + /// + internal uint NextEntryOffset; + + /// + /// Can be zero or can be set with FILE_NEED_EA, indicating that the file to which the EA belongs cannot be interpreted without understanding the associated extended attributes. + /// + internal byte Flags; + + /// + /// The length in bytes of the EaName array. This value does not include a null-terminator to EaName. + /// + internal byte EaNameLength; + + /// + /// The length in bytes of each EA value in the array. + /// + internal ushort EaValueLength; + + } + } +} diff --git a/src/Common/src/Interop/Windows/NtDll/Interop.IO_STATUS_BLOCK.cs b/src/Common/src/Interop/Windows/NtDll/Interop.IO_STATUS_BLOCK.cs new file mode 100644 index 000000000..f372a56c6 --- /dev/null +++ b/src/Common/src/Interop/Windows/NtDll/Interop.IO_STATUS_BLOCK.cs @@ -0,0 +1,47 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using System.Runtime.InteropServices; + +internal partial class Interop +{ + internal partial class NtDll + { + // https://msdn.microsoft.com/en-us/library/windows/hardware/ff550671.aspx + [StructLayout(LayoutKind.Sequential)] + public struct IO_STATUS_BLOCK + { + /// + /// Status + /// + public IO_STATUS Status; + + /// + /// Request dependent value. + /// + public IntPtr Information; + + // This isn't an actual Windows type, it is a union within IO_STATUS_BLOCK. We *have* to separate it out as + // the size of IntPtr varies by architecture and we can't specify the size at compile time to offset the + // Information pointer in the status block. + [StructLayout(LayoutKind.Explicit)] + public struct IO_STATUS + { + /// + /// The completion status, either STATUS_SUCCESS if the operation was completed successfully or + /// some other informational, warning, or error status. + /// + [FieldOffset(0)] + public uint Status; + + /// + /// Reserved for internal use. + /// + [FieldOffset(0)] + public IntPtr Pointer; + } + } + } +} diff --git a/src/Common/src/Interop/Windows/NtDll/Interop.NtCreateFile.cs b/src/Common/src/Interop/Windows/NtDll/Interop.NtCreateFile.cs new file mode 100644 index 000000000..1fa7b7282 --- /dev/null +++ b/src/Common/src/Interop/Windows/NtDll/Interop.NtCreateFile.cs @@ -0,0 +1,492 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using System.Runtime.InteropServices; + +internal partial class Interop +{ + internal partial class NtDll + { + // https://msdn.microsoft.com/en-us/library/bb432380.aspx + // https://msdn.microsoft.com/en-us/library/windows/hardware/ff566424.aspx + [DllImport(Libraries.NtDll, CharSet = CharSet.Unicode, ExactSpelling = true)] + private unsafe static extern int NtCreateFile( + out IntPtr FileHandle, + DesiredAccess DesiredAccess, + ref OBJECT_ATTRIBUTES ObjectAttributes, + out IO_STATUS_BLOCK IoStatusBlock, + long* AllocationSize, + System.IO.FileAttributes FileAttributes, + System.IO.FileShare ShareAccess, + CreateDisposition CreateDisposition, + CreateOptions CreateOptions, + void* EaBuffer, + uint EaLength); + + internal unsafe static (int status, IntPtr handle) CreateFile( + ReadOnlySpan path, + IntPtr rootDirectory, + CreateDisposition createDisposition, + DesiredAccess desiredAccess = DesiredAccess.FILE_GENERIC_READ | DesiredAccess.SYNCHRONIZE, + System.IO.FileShare shareAccess = System.IO.FileShare.ReadWrite | System.IO.FileShare.Delete, + System.IO.FileAttributes fileAttributes = 0, + CreateOptions createOptions = CreateOptions.FILE_SYNCHRONOUS_IO_NONALERT, + ObjectAttributes objectAttributes = ObjectAttributes.OBJ_CASE_INSENSITIVE, + void* eaBuffer = null, + uint eaLength = 0) + { + fixed (char* c = &MemoryMarshal.GetReference(path)) + { + UNICODE_STRING name = new UNICODE_STRING + { + Length = checked((ushort)(path.Length * sizeof(char))), + MaximumLength = checked((ushort)(path.Length * sizeof(char))), + Buffer = (IntPtr)c + }; + + OBJECT_ATTRIBUTES attributes = new OBJECT_ATTRIBUTES( + &name, + objectAttributes, + rootDirectory); + + int status = NtCreateFile( + out IntPtr handle, + desiredAccess, + ref attributes, + out IO_STATUS_BLOCK statusBlock, + AllocationSize: null, + fileAttributes, + shareAccess, + createDisposition, + createOptions, + eaBuffer, + eaLength); + + return (status, handle); + } + } + + /// + /// File creation disposition when calling directly to NT APIs. + /// + public enum CreateDisposition : uint + { + /// + /// Default. Replace or create. Deletes existing file instead of overwriting. + /// + /// + /// As this potentially deletes it requires that DesiredAccess must include Delete. + /// This has no equivalent in CreateFile. + /// + FILE_SUPERSEDE = 0, + + /// + /// Open if exists or fail if doesn't exist. Equivalent to OPEN_EXISTING or + /// . + /// + /// + /// TruncateExisting also uses Open and then manually truncates the file + /// by calling NtSetInformationFile with FileAllocationInformation and an + /// allocation size of 0. + /// + FILE_OPEN = 1, + + /// + /// Create if doesn't exist or fail if does exist. Equivalent to CREATE_NEW + /// or . + /// + FILE_CREATE = 2, + + /// + /// Open if exists or create if doesn't exist. Equivalent to OPEN_ALWAYS or + /// . + /// + FILE_OPEN_IF = 3, + + /// + /// Open and overwrite if exists or fail if doesn't exist. Equivalent to + /// TRUNCATE_EXISTING or . + /// + FILE_OVERWRITE = 4, + + /// + /// Open and overwrite if exists or create if doesn't exist. Equivalent to + /// CREATE_ALWAYS or . + /// + FILE_OVERWRITE_IF = 5 + } + + /// + /// Options for creating/opening files with NtCreateFile. + /// + public enum CreateOptions : uint + { + /// + /// File being created or opened must be a directory file. Disposition must be FILE_CREATE, FILE_OPEN, + /// or FILE_OPEN_IF. + /// + /// + /// Can only be used with FILE_SYNCHRONOUS_IO_ALERT/NONALERT, FILE_WRITE_THROUGH, FILE_OPEN_FOR_BACKUP_INTENT, + /// and FILE_OPEN_BY_FILE_ID flags. + /// + FILE_DIRECTORY_FILE = 0x00000001, + + /// + /// Applications that write data to the file must actually transfer the data into + /// the file before any requested write operation is considered complete. This flag + /// is set automatically if FILE_NO_INTERMEDIATE_BUFFERING is set. + /// + FILE_WRITE_THROUGH = 0x00000002, + + /// + /// All accesses to the file are sequential. + /// + FILE_SEQUENTIAL_ONLY = 0x00000004, + + /// + /// File cannot be cached in driver buffers. Cannot use with AppendData desired access. + /// + FILE_NO_INTERMEDIATE_BUFFERING = 0x00000008, + + /// + /// All operations are performed synchronously. Any wait on behalf of the caller is + /// subject to premature termination from alerts. + /// + /// + /// Cannot be used with FILE_SYNCHRONOUS_IO_NONALERT. + /// Synchronous DesiredAccess flag is required. I/O system will maintain file position context. + /// + FILE_SYNCHRONOUS_IO_ALERT = 0x00000010, + + /// + /// All operations are performed synchronously. Waits in the system to synchronize I/O queuing + /// and completion are not subject to alerts. + /// + /// + /// Cannot be used with FILE_SYNCHRONOUS_IO_ALERT. + /// Synchronous DesiredAccess flag is required. I/O system will maintain file position context. + /// + FILE_SYNCHRONOUS_IO_NONALERT = 0x00000020, + + /// + /// File being created or opened must not be a directory file. Can be a data file, device, + /// or volume. + /// + FILE_NON_DIRECTORY_FILE = 0x00000040, + + /// + /// Create a tree connection for this file in order to open it over the network. + /// + /// + /// Not used by device and intermediate drivers. + /// + FILE_CREATE_TREE_CONNECTION = 0x00000080, + + /// + /// Complete the operation immediately with a success code of STATUS_OPLOCK_BREAK_IN_PROGRESS if + /// the target file is oplocked. + /// + /// + /// Not compatible with ReserveOpfilter or OpenRequiringOplock. + /// Not used by device and intermediate drivers. + /// + FILE_COMPLETE_IF_OPLOCKED = 0x00000100, + + /// + /// If the extended attributes on an existing file being opened indicate that the caller must + /// understand extended attributes to properly interpret the file, fail the request. + /// + /// + /// Not used by device and intermediate drivers. + /// + FILE_NO_EA_KNOWLEDGE = 0x00000200, + + // Behavior undocumented, defined in headers + // FILE_OPEN_REMOTE_INSTANCE = 0x00000400, + + /// + /// Accesses to the file can be random, so no sequential read-ahead operations should be performed + /// on the file by FSDs or the system. + /// + FILE_RANDOM_ACCESS = 0x00000800, + + /// + /// Delete the file when the last handle to it is passed to NtClose. Requires Delete flag in + /// DesiredAccess parameter. + /// + FILE_DELETE_ON_CLOSE = 0x00001000, + + /// + /// Open the file by reference number or object ID. The file name that is specified by the ObjectAttributes + /// name parameter includes the 8 or 16 byte file reference number or ID for the file in the ObjectAttributes + /// name field. The device name can optionally be prefixed. + /// + /// + /// NTFS supports both reference numbers and object IDs. 16 byte reference numbers are 8 byte numbers padded + /// with zeros. ReFS only supports reference numbers (not object IDs). 8 byte and 16 byte reference numbers + /// are not related. Note that as the UNICODE_STRING will contain raw byte data, it may not be a "valid" string. + /// Not used by device and intermediate drivers. + /// + /// + /// \??\C:\{8 bytes of binary FileID} + /// \device\HardDiskVolume1\{16 bytes of binary ObjectID} + /// {8 bytes of binary FileID} + /// + FILE_OPEN_BY_FILE_ID = 0x00002000, + + /// + /// The file is being opened for backup intent. Therefore, the system should check for certain access rights + /// and grant the caller the appropriate access to the file before checking the DesiredAccess parameter + /// against the file's security descriptor. + /// + /// + /// Not used by device and intermediate drivers. + /// + FILE_OPEN_FOR_BACKUP_INTENT = 0x00004000, + + /// + /// When creating a file, specifies that it should not inherit the compression bit from the parent directory. + /// + FILE_NO_COMPRESSION = 0x00008000, + + /// + /// The file is being opened and an opportunistic lock (oplock) on the file is being requested as a single atomic + /// operation. + /// + /// + /// The file system checks for oplocks before it performs the create operation and will fail the create with a + /// return code of STATUS_CANNOT_BREAK_OPLOCK if the result would be to break an existing oplock. + /// Not compatible with CompleteIfOplocked or ReserveOpFilter. Windows 7 and up. + /// + FILE_OPEN_REQUIRING_OPLOCK = 0x00010000, + + /// + /// CreateFile2 uses this flag to prevent opening a file that you don't have access to without specifying + /// FILE_SHARE_READ. (Preventing users that can only read a file from denying access to other readers.) + /// + /// + /// Windows 7 and up. + /// + FILE_DISALLOW_EXCLUSIVE = 0x00020000, + + /// + /// The client opening the file or device is session aware and per session access is validated if necessary. + /// + /// + /// Windows 8 and up. + /// + FILE_SESSION_AWARE = 0x00040000, + + /// + /// This flag allows an application to request a filter opportunistic lock (oplock) to prevent other applications + /// from getting share violations. + /// + /// + /// Not compatible with CompleteIfOplocked or OpenRequiringOplock. + /// If there are already open handles, the create request will fail with STATUS_OPLOCK_NOT_GRANTED. + /// + FILE_RESERVE_OPFILTER = 0x00100000, + + /// + /// Open a file with a reparse point attribute, bypassing the normal reparse point processing. + /// + FILE_OPEN_REPARSE_POINT = 0x00200000, + + /// + /// Causes files that are marked with the Offline attribute not to be recalled from remote storage. + /// + /// + /// More details can be found in Remote Storage documentation (see Basic Concepts). + /// https://technet.microsoft.com/en-us/library/cc938459.aspx + /// + FILE_OPEN_NO_RECALL = 0x00400000 + + // Behavior undocumented, defined in headers + // FILE_OPEN_FOR_FREE_SPACE_QUERY = 0x00800000 + } + + /// + /// System.IO.FileAccess looks up these values when creating handles + /// + /// + /// File Security and Access Rights + /// https://msdn.microsoft.com/en-us/library/windows/desktop/aa364399.aspx + /// + [Flags] + public enum DesiredAccess : uint + { + // File Access Rights Constants + // https://msdn.microsoft.com/en-us/library/windows/desktop/gg258116.aspx + + /// + /// For a file, the right to read data from the file. + /// + /// + /// Directory version of this flag is . + /// + FILE_READ_DATA = 0x0001, + + /// + /// For a directory, the right to list the contents. + /// + /// + /// File version of this flag is . + /// + FILE_LIST_DIRECTORY = 0x0001, + + /// + /// For a file, the right to write data to the file. + /// + /// + /// Directory version of this flag is . + /// + FILE_WRITE_DATA = 0x0002, + + /// + /// For a directory, the right to create a file in a directory. + /// + /// + /// File version of this flag is . + /// + FILE_ADD_FILE = 0x0002, + + /// + /// For a file, the right to append data to a file. is needed + /// to overwrite existing data. + /// + /// + /// Directory version of this flag is . + /// + FILE_APPEND_DATA = 0x0004, + + /// + /// For a directory, the right to create a subdirectory. + /// + /// + /// File version of this flag is . + /// + FILE_ADD_SUBDIRECTORY = 0x0004, + + /// + /// For a named pipe, the right to create a pipe instance. + /// + FILE_CREATE_PIPE_INSTANCE = 0x0004, + + /// + /// The right to read extended attributes. + /// + FILE_READ_EA = 0x0008, + + /// + /// The right to write extended attributes. + /// + FILE_WRITE_EA = 0x0010, + + /// + /// The right to execute the file. + /// + /// + /// Directory version of this flag is . + /// + FILE_EXECUTE = 0x0020, + + /// + /// For a directory, the right to traverse the directory. + /// + /// + /// File version of this flag is . + /// + FILE_TRAVERSE = 0x0020, + + /// + /// For a directory, the right to delete a directory and all + /// the files it contains, including read-only files. + /// + FILE_DELETE_CHILD = 0x0040, + + /// + /// The right to read attributes. + /// + FILE_READ_ATTRIBUTES = 0x0080, + + /// + /// The right to write attributes. + /// + FILE_WRITE_ATTRIBUTES = 0x0100, + + /// + /// All standard and specific rights. [FILE_ALL_ACCESS] + /// + FILE_ALL_ACCESS = DELETE | READ_CONTROL | WRITE_DAC | WRITE_OWNER | 0x1FF, + + /// + /// The right to delete the object. + /// + DELETE = 0x00010000, + + /// + /// The right to read the information in the object's security descriptor. + /// Doesn't include system access control list info (SACL). + /// + READ_CONTROL = 0x00020000, + + /// + /// The right to modify the discretionary access control list (DACL) in the + /// object's security descriptor. + /// + WRITE_DAC = 0x00040000, + + /// + /// The right to change the owner in the object's security descriptor. + /// + WRITE_OWNER = 0x00080000, + + /// + /// The right to use the object for synchronization. Enables a thread to wait until the object + /// is in the signaled state. This is required if opening a synchronous handle. + /// + SYNCHRONIZE = 0x00100000, + + /// + /// Same as READ_CONTROL. + /// + STANDARD_RIGHTS_READ = READ_CONTROL, + + /// + /// Same as READ_CONTROL. + /// + STANDARD_RIGHTS_WRITE = READ_CONTROL, + + /// + /// Same as READ_CONTROL. + /// + STANDARD_RIGHTS_EXECUTE = READ_CONTROL, + + /// + /// Maps internally to | | + /// | | . + /// (For directories, | | + /// | | .) + /// + FILE_GENERIC_READ = 0x80000000, // GENERIC_READ + + /// + /// Maps internally to | | + /// | | | . + /// (For directories, | | AddFile + /// | | | .) + /// + FILE_GENERIC_WRITE = 0x40000000, // GENERIC WRITE + + /// + /// Maps internally to | | + /// | . + /// (For directories, | | + /// | .) + /// + FILE_GENERIC_EXECUTE = 0x20000000 // GENERIC_EXECUTE + } + } +} diff --git a/src/Common/src/Interop/Windows/NtDll/Interop.RtlNtStatusToDosError.cs b/src/Common/src/Interop/Windows/NtDll/Interop.RtlNtStatusToDosError.cs new file mode 100644 index 000000000..05e8ce4cf --- /dev/null +++ b/src/Common/src/Interop/Windows/NtDll/Interop.RtlNtStatusToDosError.cs @@ -0,0 +1,17 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using System.Runtime.InteropServices; + +internal partial class Interop +{ + internal partial class NtDll + { + // https://msdn.microsoft.com/en-us/library/windows/desktop/ms680600(v=vs.85).aspx + [DllImport(Libraries.NtDll, ExactSpelling = true)] + public unsafe static extern uint RtlNtStatusToDosError( + int Status); + } +} diff --git a/src/Common/src/Interop/Windows/SChannel/Interop.SECURITY_STATUS.cs b/src/Common/src/Interop/Windows/SChannel/Interop.SECURITY_STATUS.cs new file mode 100644 index 000000000..5860bfa98 --- /dev/null +++ b/src/Common/src/Interop/Windows/SChannel/Interop.SECURITY_STATUS.cs @@ -0,0 +1,361 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +internal static partial class Interop +{ + internal enum SECURITY_STATUS + { + // Success / Informational + OK = 0x00000000, + ContinueNeeded = unchecked((int)0x00090312), + CompleteNeeded = unchecked((int)0x00090313), + CompAndContinue = unchecked((int)0x00090314), + ContextExpired = unchecked((int)0x00090317), + CredentialsNeeded = unchecked((int)0x00090320), + Renegotiate = unchecked((int)0x00090321), + + // Errors + OutOfMemory = unchecked((int)0x80090300), + InvalidHandle = unchecked((int)0x80090301), + Unsupported = unchecked((int)0x80090302), + TargetUnknown = unchecked((int)0x80090303), + InternalError = unchecked((int)0x80090304), + PackageNotFound = unchecked((int)0x80090305), + NotOwner = unchecked((int)0x80090306), + CannotInstall = unchecked((int)0x80090307), + InvalidToken = unchecked((int)0x80090308), + CannotPack = unchecked((int)0x80090309), + QopNotSupported = unchecked((int)0x8009030A), + NoImpersonation = unchecked((int)0x8009030B), + LogonDenied = unchecked((int)0x8009030C), + UnknownCredentials = unchecked((int)0x8009030D), + NoCredentials = unchecked((int)0x8009030E), + MessageAltered = unchecked((int)0x8009030F), + OutOfSequence = unchecked((int)0x80090310), + NoAuthenticatingAuthority = unchecked((int)0x80090311), + IncompleteMessage = unchecked((int)0x80090318), + IncompleteCredentials = unchecked((int)0x80090320), + BufferNotEnough = unchecked((int)0x80090321), + WrongPrincipal = unchecked((int)0x80090322), + TimeSkew = unchecked((int)0x80090324), + UntrustedRoot = unchecked((int)0x80090325), + IllegalMessage = unchecked((int)0x80090326), + CertUnknown = unchecked((int)0x80090327), + CertExpired = unchecked((int)0x80090328), + DecryptFailure = unchecked((int)0x80090330), + AlgorithmMismatch = unchecked((int)0x80090331), + SecurityQosFailed = unchecked((int)0x80090332), + SmartcardLogonRequired = unchecked((int)0x8009033E), + UnsupportedPreauth = unchecked((int)0x80090343), + BadBinding = unchecked((int)0x80090346), + DowngradeDetected = unchecked((int)0x80090350), + ApplicationProtocolMismatch = unchecked((int)0x80090367), + } + +#if TRACE_VERBOSE + internal static string MapSecurityStatus(uint statusCode) + { + switch (statusCode) + { + case 0: return "0"; + case 0x80090001: return "NTE_BAD_UID"; + case 0x80090002: return "NTE_BAD_HASH"; + case 0x80090003: return "NTE_BAD_KEY"; + case 0x80090004: return "NTE_BAD_LEN"; + case 0x80090005: return "NTE_BAD_DATA"; + case 0x80090006: return "NTE_BAD_SIGNATURE"; + case 0x80090007: return "NTE_BAD_VER"; + case 0x80090008: return "NTE_BAD_ALGID"; + case 0x80090009: return "NTE_BAD_FLAGS"; + case 0x8009000A: return "NTE_BAD_TYPE"; + case 0x8009000B: return "NTE_BAD_KEY_STATE"; + case 0x8009000C: return "NTE_BAD_HASH_STATE"; + case 0x8009000D: return "NTE_NO_KEY"; + case 0x8009000E: return "NTE_NO_MEMORY"; + case 0x8009000F: return "NTE_EXISTS"; + case 0x80090010: return "NTE_PERM"; + case 0x80090011: return "NTE_NOT_FOUND"; + case 0x80090012: return "NTE_DOUBLE_ENCRYPT"; + case 0x80090013: return "NTE_BAD_PROVIDER"; + case 0x80090014: return "NTE_BAD_PROV_TYPE"; + case 0x80090015: return "NTE_BAD_PUBLIC_KEY"; + case 0x80090016: return "NTE_BAD_KEYSET"; + case 0x80090017: return "NTE_PROV_TYPE_NOT_DEF"; + case 0x80090018: return "NTE_PROV_TYPE_ENTRY_BAD"; + case 0x80090019: return "NTE_KEYSET_NOT_DEF"; + case 0x8009001A: return "NTE_KEYSET_ENTRY_BAD"; + case 0x8009001B: return "NTE_PROV_TYPE_NO_MATCH"; + case 0x8009001C: return "NTE_SIGNATURE_FILE_BAD"; + case 0x8009001D: return "NTE_PROVIDER_DLL_FAIL"; + case 0x8009001E: return "NTE_PROV_DLL_NOT_FOUND"; + case 0x8009001F: return "NTE_BAD_KEYSET_PARAM"; + case 0x80090020: return "NTE_FAIL"; + case 0x80090021: return "NTE_SYS_ERR"; + case 0x80090022: return "NTE_SILENT_CONTEXT"; + case 0x80090023: return "NTE_TOKEN_KEYSET_STORAGE_FULL"; + case 0x80090024: return "NTE_TEMPORARY_PROFILE"; + case 0x80090025: return "NTE_FIXEDPARAMETER"; + case 0x80090300: return "SEC_E_INSUFFICIENT_MEMORY"; + case 0x80090301: return "SEC_E_INVALID_HANDLE"; + case 0x80090302: return "SEC_E_UNSUPPORTED_FUNCTION"; + case 0x80090303: return "SEC_E_TARGET_UNKNOWN"; + case 0x80090304: return "SEC_E_INTERNAL_ERROR"; + case 0x80090305: return "SEC_E_SECPKG_NOT_FOUND"; + case 0x80090306: return "SEC_E_NOT_OWNER"; + case 0x80090307: return "SEC_E_CANNOT_INSTALL"; + case 0x80090308: return "SEC_E_INVALID_TOKEN"; + case 0x80090309: return "SEC_E_CANNOT_PACK"; + case 0x8009030A: return "SEC_E_QOP_NOT_SUPPORTED"; + case 0x8009030B: return "SEC_E_NO_IMPERSONATION"; + case 0x8009030C: return "SEC_E_LOGON_DENIED"; + case 0x8009030D: return "SEC_E_UNKNOWN_CREDENTIALS"; + case 0x8009030E: return "SEC_E_NO_CREDENTIALS"; + case 0x8009030F: return "SEC_E_MESSAGE_ALTERED"; + case 0x80090310: return "SEC_E_OUT_OF_SEQUENCE"; + case 0x80090311: return "SEC_E_NO_AUTHENTICATING_AUTHORITY"; + case 0x00090312: return "SEC_I_CONTINUE_NEEDED"; + case 0x00090313: return "SEC_I_COMPLETE_NEEDED"; + case 0x00090314: return "SEC_I_COMPLETE_AND_CONTINUE"; + case 0x00090315: return "SEC_I_LOCAL_LOGON"; + case 0x80090316: return "SEC_E_BAD_PKGID"; + case 0x80090317: return "SEC_E_CONTEXT_EXPIRED"; + case 0x00090317: return "SEC_I_CONTEXT_EXPIRED"; + case 0x80090318: return "SEC_E_INCOMPLETE_MESSAGE"; + case 0x80090320: return "SEC_E_INCOMPLETE_CREDENTIALS"; + case 0x80090321: return "SEC_E_BUFFER_TOO_SMALL"; + case 0x00090320: return "SEC_I_INCOMPLETE_CREDENTIALS"; + case 0x00090321: return "SEC_I_RENEGOTIATE"; + case 0x80090322: return "SEC_E_WRONG_PRINCIPAL"; + case 0x00090323: return "SEC_I_NO_LSA_CONTEXT"; + case 0x80090324: return "SEC_E_TIME_SKEW"; + case 0x80090325: return "SEC_E_UNTRUSTED_ROOT"; + case 0x80090326: return "SEC_E_ILLEGAL_MESSAGE"; + case 0x80090327: return "SEC_E_CERT_UNKNOWN"; + case 0x80090328: return "SEC_E_CERT_EXPIRED"; + case 0x80090329: return "SEC_E_ENCRYPT_FAILURE"; + case 0x80090330: return "SEC_E_DECRYPT_FAILURE"; + case 0x80090331: return "SEC_E_ALGORITHM_MISMATCH"; + case 0x80090332: return "SEC_E_SECURITY_QOS_FAILED"; + case 0x80090333: return "SEC_E_UNFINISHED_CONTEXT_DELETED"; + case 0x80090334: return "SEC_E_NO_TGT_REPLY"; + case 0x80090335: return "SEC_E_NO_IP_ADDRESSES"; + case 0x80090336: return "SEC_E_WRONG_CREDENTIAL_HANDLE"; + case 0x80090337: return "SEC_E_CRYPTO_SYSTEM_INVALID"; + case 0x80090338: return "SEC_E_MAX_REFERRALS_EXCEEDED"; + case 0x80090339: return "SEC_E_MUST_BE_KDC"; + case 0x8009033A: return "SEC_E_STRONG_CRYPTO_NOT_SUPPORTED"; + case 0x8009033B: return "SEC_E_TOO_MANY_PRINCIPALS"; + case 0x8009033C: return "SEC_E_NO_PA_DATA"; + case 0x8009033D: return "SEC_E_PKINIT_NAME_MISMATCH"; + case 0x8009033E: return "SEC_E_SMARTCARD_LOGON_REQUIRED"; + case 0x8009033F: return "SEC_E_SHUTDOWN_IN_PROGRESS"; + case 0x80090340: return "SEC_E_KDC_INVALID_REQUEST"; + case 0x80090341: return "SEC_E_KDC_UNABLE_TO_REFER"; + case 0x80090342: return "SEC_E_KDC_UNKNOWN_ETYPE"; + case 0x80090343: return "SEC_E_UNSUPPORTED_PREAUTH"; + case 0x80090345: return "SEC_E_DELEGATION_REQUIRED"; + case 0x80090346: return "SEC_E_BAD_BINDINGS"; + case 0x80090347: return "SEC_E_MULTIPLE_ACCOUNTS"; + case 0x80090348: return "SEC_E_NO_KERB_KEY"; + case 0x80090350: return "SEC_E_DOWNGRADE_DETECTED"; + case 0x80091001: return "CRYPT_E_MSG_ERROR"; + case 0x80091002: return "CRYPT_E_UNKNOWN_ALGO"; + case 0x80091003: return "CRYPT_E_OID_FORMAT"; + case 0x80091004: return "CRYPT_E_INVALID_MSG_TYPE"; + case 0x80091005: return "CRYPT_E_UNEXPECTED_ENCODING"; + case 0x80091006: return "CRYPT_E_AUTH_ATTR_MISSING"; + case 0x80091007: return "CRYPT_E_HASH_VALUE"; + case 0x80091008: return "CRYPT_E_INVALID_INDEX"; + case 0x80091009: return "CRYPT_E_ALREADY_DECRYPTED"; + case 0x8009100A: return "CRYPT_E_NOT_DECRYPTED"; + case 0x8009100B: return "CRYPT_E_RECIPIENT_NOT_FOUND"; + case 0x8009100C: return "CRYPT_E_CONTROL_TYPE"; + case 0x8009100D: return "CRYPT_E_ISSUER_SERIALNUMBER"; + case 0x8009100E: return "CRYPT_E_SIGNER_NOT_FOUND"; + case 0x8009100F: return "CRYPT_E_ATTRIBUTES_MISSING"; + case 0x80091010: return "CRYPT_E_STREAM_MSG_NOT_READY"; + case 0x80091011: return "CRYPT_E_STREAM_INSUFFICIENT_DATA"; + case 0x00091012: return "CRYPT_I_NEW_PROTECTION_REQUIRED"; + case 0x80092001: return "CRYPT_E_BAD_LEN"; + case 0x80092002: return "CRYPT_E_BAD_ENCODE"; + case 0x80092003: return "CRYPT_E_FILE_ERROR"; + case 0x80092004: return "CRYPT_E_NOT_FOUND"; + case 0x80092005: return "CRYPT_E_EXISTS"; + case 0x80092006: return "CRYPT_E_NO_PROVIDER"; + case 0x80092007: return "CRYPT_E_SELF_SIGNED"; + case 0x80092008: return "CRYPT_E_DELETED_PREV"; + case 0x80092009: return "CRYPT_E_NO_MATCH"; + case 0x8009200A: return "CRYPT_E_UNEXPECTED_MSG_TYPE"; + case 0x8009200B: return "CRYPT_E_NO_KEY_PROPERTY"; + case 0x8009200C: return "CRYPT_E_NO_DECRYPT_CERT"; + case 0x8009200D: return "CRYPT_E_BAD_MSG"; + case 0x8009200E: return "CRYPT_E_NO_SIGNER"; + case 0x8009200F: return "CRYPT_E_PENDING_CLOSE"; + case 0x80092010: return "CRYPT_E_REVOKED"; + case 0x80092011: return "CRYPT_E_NO_REVOCATION_DLL"; + case 0x80092012: return "CRYPT_E_NO_REVOCATION_CHECK"; + case 0x80092013: return "CRYPT_E_REVOCATION_OFFLINE"; + case 0x80092014: return "CRYPT_E_NOT_IN_REVOCATION_DATABASE"; + case 0x80092020: return "CRYPT_E_INVALID_NUMERIC_STRING"; + case 0x80092021: return "CRYPT_E_INVALID_PRINTABLE_STRING"; + case 0x80092022: return "CRYPT_E_INVALID_IA5_STRING"; + case 0x80092023: return "CRYPT_E_INVALID_X500_STRING"; + case 0x80092024: return "CRYPT_E_NOT_CHAR_STRING"; + case 0x80092025: return "CRYPT_E_FILERESIZED"; + case 0x80092026: return "CRYPT_E_SECURITY_SETTINGS"; + case 0x80092027: return "CRYPT_E_NO_VERIFY_USAGE_DLL"; + case 0x80092028: return "CRYPT_E_NO_VERIFY_USAGE_CHECK"; + case 0x80092029: return "CRYPT_E_VERIFY_USAGE_OFFLINE"; + case 0x8009202A: return "CRYPT_E_NOT_IN_CTL"; + case 0x8009202B: return "CRYPT_E_NO_TRUSTED_SIGNER"; + case 0x8009202C: return "CRYPT_E_MISSING_PUBKEY_PARA"; + case 0x80093000: return "CRYPT_E_OSS_ERROR"; + case 0x80093001: return "OSS_MORE_BUF"; + case 0x80093002: return "OSS_NEGATIVE_UINTEGER"; + case 0x80093003: return "OSS_PDU_RANGE"; + case 0x80093004: return "OSS_MORE_INPUT"; + case 0x80093005: return "OSS_DATA_ERROR"; + case 0x80093006: return "OSS_BAD_ARG"; + case 0x80093007: return "OSS_BAD_VERSION"; + case 0x80093008: return "OSS_OUT_MEMORY"; + case 0x80093009: return "OSS_PDU_MISMATCH"; + case 0x8009300A: return "OSS_LIMITED"; + case 0x8009300B: return "OSS_BAD_PTR"; + case 0x8009300C: return "OSS_BAD_TIME"; + case 0x8009300D: return "OSS_INDEFINITE_NOT_SUPPORTED"; + case 0x8009300E: return "OSS_MEM_ERROR"; + case 0x8009300F: return "OSS_BAD_TABLE"; + case 0x80093010: return "OSS_TOO_LONG"; + case 0x80093011: return "OSS_CONSTRAINT_VIOLATED"; + case 0x80093012: return "OSS_FATAL_ERROR"; + case 0x80093013: return "OSS_ACCESS_SERIALIZATION_ERROR"; + case 0x80093014: return "OSS_NULL_TBL"; + case 0x80093015: return "OSS_NULL_FCN"; + case 0x80093016: return "OSS_BAD_ENCRULES"; + case 0x80093017: return "OSS_UNAVAIL_ENCRULES"; + case 0x80093018: return "OSS_CANT_OPEN_TRACE_WINDOW"; + case 0x80093019: return "OSS_UNIMPLEMENTED"; + case 0x8009301A: return "OSS_OID_DLL_NOT_LINKED"; + case 0x8009301B: return "OSS_CANT_OPEN_TRACE_FILE"; + case 0x8009301C: return "OSS_TRACE_FILE_ALREADY_OPEN"; + case 0x8009301D: return "OSS_TABLE_MISMATCH"; + case 0x8009301E: return "OSS_TYPE_NOT_SUPPORTED"; + case 0x8009301F: return "OSS_REAL_DLL_NOT_LINKED"; + case 0x80093020: return "OSS_REAL_CODE_NOT_LINKED"; + case 0x80093021: return "OSS_OUT_OF_RANGE"; + case 0x80093022: return "OSS_COPIER_DLL_NOT_LINKED"; + case 0x80093023: return "OSS_CONSTRAINT_DLL_NOT_LINKED"; + case 0x80093024: return "OSS_COMPARATOR_DLL_NOT_LINKED"; + case 0x80093025: return "OSS_COMPARATOR_CODE_NOT_LINKED"; + case 0x80093026: return "OSS_MEM_MGR_DLL_NOT_LINKED"; + case 0x80093027: return "OSS_PDV_DLL_NOT_LINKED"; + case 0x80093028: return "OSS_PDV_CODE_NOT_LINKED"; + case 0x80093029: return "OSS_API_DLL_NOT_LINKED"; + case 0x8009302A: return "OSS_BERDER_DLL_NOT_LINKED"; + case 0x8009302B: return "OSS_PER_DLL_NOT_LINKED"; + case 0x8009302C: return "OSS_OPEN_TYPE_ERROR"; + case 0x8009302D: return "OSS_MUTEX_NOT_CREATED"; + case 0x8009302E: return "OSS_CANT_CLOSE_TRACE_FILE"; + case 0x80093100: return "CRYPT_E_ASN1_ERROR"; + case 0x80093101: return "CRYPT_E_ASN1_INTERNAL"; + case 0x80093102: return "CRYPT_E_ASN1_EOD"; + case 0x80093103: return "CRYPT_E_ASN1_CORRUPT"; + case 0x80093104: return "CRYPT_E_ASN1_LARGE"; + case 0x80093105: return "CRYPT_E_ASN1_CONSTRAINT"; + case 0x80093106: return "CRYPT_E_ASN1_MEMORY"; + case 0x80093107: return "CRYPT_E_ASN1_OVERFLOW"; + case 0x80093108: return "CRYPT_E_ASN1_BADPDU"; + case 0x80093109: return "CRYPT_E_ASN1_BADARGS"; + case 0x8009310A: return "CRYPT_E_ASN1_BADREAL"; + case 0x8009310B: return "CRYPT_E_ASN1_BADTAG"; + case 0x8009310C: return "CRYPT_E_ASN1_CHOICE"; + case 0x8009310D: return "CRYPT_E_ASN1_RULE"; + case 0x8009310E: return "CRYPT_E_ASN1_UTF8"; + case 0x80093133: return "CRYPT_E_ASN1_PDU_TYPE"; + case 0x80093134: return "CRYPT_E_ASN1_NYI"; + case 0x80093201: return "CRYPT_E_ASN1_EXTENDED"; + case 0x80093202: return "CRYPT_E_ASN1_NOEOD"; + case 0x80094001: return "CERTSRV_E_BAD_REQUESTSUBJECT"; + case 0x80094002: return "CERTSRV_E_NO_REQUEST"; + case 0x80094003: return "CERTSRV_E_BAD_REQUESTSTATUS"; + case 0x80094004: return "CERTSRV_E_PROPERTY_EMPTY"; + case 0x80094005: return "CERTSRV_E_INVALID_CA_CERTIFICATE"; + case 0x80094006: return "CERTSRV_E_SERVER_SUSPENDED"; + case 0x80094007: return "CERTSRV_E_ENCODING_LENGTH"; + case 0x80094008: return "CERTSRV_E_ROLECONFLICT"; + case 0x80094009: return "CERTSRV_E_RESTRICTEDOFFICER"; + case 0x8009400A: return "CERTSRV_E_KEY_ARCHIVAL_NOT_CONFIGURED"; + case 0x8009400B: return "CERTSRV_E_NO_VALID_KRA"; + case 0x8009400C: return "CERTSRV_E_BAD_REQUEST_KEY_ARCHIVAL"; + case 0x80094800: return "CERTSRV_E_UNSUPPORTED_CERT_TYPE"; + case 0x80094801: return "CERTSRV_E_NO_CERT_TYPE"; + case 0x80094802: return "CERTSRV_E_TEMPLATE_CONFLICT"; + case 0x80096001: return "TRUST_E_SYSTEM_ERROR"; + case 0x80096002: return "TRUST_E_NO_SIGNER_CERT"; + case 0x80096003: return "TRUST_E_COUNTER_SIGNER"; + case 0x80096004: return "TRUST_E_CERT_SIGNATURE"; + case 0x80096005: return "TRUST_E_TIME_STAMP"; + case 0x80096010: return "TRUST_E_BAD_DIGEST"; + case 0x80096019: return "TRUST_E_BASIC_CONSTRAINTS"; + case 0x8009601E: return "TRUST_E_FINANCIAL_CRITERIA"; + case 0x80097001: return "MSSIPOTF_E_OUTOFMEMRANGE"; + case 0x80097002: return "MSSIPOTF_E_CANTGETOBJECT"; + case 0x80097003: return "MSSIPOTF_E_NOHEADTABLE"; + case 0x80097004: return "MSSIPOTF_E_BAD_MAGICNUMBER"; + case 0x80097005: return "MSSIPOTF_E_BAD_OFFSET_TABLE"; + case 0x80097006: return "MSSIPOTF_E_TABLE_TAGORDER"; + case 0x80097007: return "MSSIPOTF_E_TABLE_LONGWORD"; + case 0x80097008: return "MSSIPOTF_E_BAD_FIRST_TABLE_PLACEMENT"; + case 0x80097009: return "MSSIPOTF_E_TABLES_OVERLAP"; + case 0x8009700A: return "MSSIPOTF_E_TABLE_PADBYTES"; + case 0x8009700B: return "MSSIPOTF_E_FILETOOSMALL"; + case 0x8009700C: return "MSSIPOTF_E_TABLE_CHECKSUM"; + case 0x8009700D: return "MSSIPOTF_E_FILE_CHECKSUM"; + case 0x80097010: return "MSSIPOTF_E_FAILED_POLICY"; + case 0x80097011: return "MSSIPOTF_E_FAILED_HINTS_CHECK"; + case 0x80097012: return "MSSIPOTF_E_NOT_OPENTYPE"; + case 0x80097013: return "MSSIPOTF_E_FILE"; + case 0x80097014: return "MSSIPOTF_E_CRYPT"; + case 0x80097015: return "MSSIPOTF_E_BADVERSION"; + case 0x80097016: return "MSSIPOTF_E_DSIG_STRUCTURE"; + case 0x80097017: return "MSSIPOTF_E_PCONST_CHECK"; + case 0x80097018: return "MSSIPOTF_E_STRUCTURE"; + case 0x800B0001: return "TRUST_E_PROVIDER_UNKNOWN"; + case 0x800B0002: return "TRUST_E_ACTION_UNKNOWN"; + case 0x800B0003: return "TRUST_E_SUBJECT_FORM_UNKNOWN"; + case 0x800B0004: return "TRUST_E_SUBJECT_NOT_TRUSTED"; + case 0x800B0005: return "DIGSIG_E_ENCODE"; + case 0x800B0006: return "DIGSIG_E_DECODE"; + case 0x800B0007: return "DIGSIG_E_EXTENSIBILITY"; + case 0x800B0008: return "DIGSIG_E_CRYPTO"; + case 0x800B0009: return "PERSIST_E_SIZEDEFINITE"; + case 0x800B000A: return "PERSIST_E_SIZEINDEFINITE"; + case 0x800B000B: return "PERSIST_E_NOTSELFSIZING"; + case 0x800B0100: return "TRUST_E_NOSIGNATURE"; + case 0x800B0101: return "CERT_E_EXPIRED"; + case 0x800B0102: return "CERT_E_VALIDITYPERIODNESTING"; + case 0x800B0103: return "CERT_E_ROLE"; + case 0x800B0104: return "CERT_E_PATHLENCONST"; + case 0x800B0105: return "CERT_E_CRITICAL"; + case 0x800B0106: return "CERT_E_PURPOSE"; + case 0x800B0107: return "CERT_E_ISSUERCHAINING"; + case 0x800B0108: return "CERT_E_MALFORMED"; + case 0x800B0109: return "CERT_E_UNTRUSTEDROOT"; + case 0x800B010A: return "CERT_E_CHAINING"; + case 0x800B010B: return "TRUST_E_FAIL"; + case 0x800B010C: return "CERT_E_REVOKED"; + case 0x800B010D: return "CERT_E_UNTRUSTEDTESTROOT"; + case 0x800B010E: return "CERT_E_REVOCATION_FAILURE"; + case 0x800B010F: return "CERT_E_CN_NO_MATCH"; + case 0x800B0110: return "CERT_E_WRONG_USAGE"; + case 0x800B0111: return "TRUST_E_EXPLICIT_DISTRUST"; + case 0x800B0112: return "CERT_E_UNTRUSTEDCA"; + case 0x800B0113: return "CERT_E_INVALID_POLICY"; + case 0x800B0114: return "CERT_E_INVALID_NAME"; + } + + return string.Format("0x{0:x} [{1}]", statusCode, statusCode); + } +#endif // TRACE_VERBOSE +} diff --git a/src/Common/src/Interop/Windows/SChannel/Interop.SecPkgContext_ApplicationProtocol.cs b/src/Common/src/Interop/Windows/SChannel/Interop.SecPkgContext_ApplicationProtocol.cs new file mode 100644 index 000000000..4f68e3dee --- /dev/null +++ b/src/Common/src/Interop/Windows/SChannel/Interop.SecPkgContext_ApplicationProtocol.cs @@ -0,0 +1,44 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using System.Runtime.InteropServices; + +internal static partial class Interop +{ + internal enum ApplicationProtocolNegotiationStatus + { + None = 0, + Success, + SelectedClientOnly + } + + internal enum ApplicationProtocolNegotiationExt + { + None = 0, + NPN, + ALPN + } + + [StructLayout(LayoutKind.Sequential)] + internal unsafe struct SecPkgContext_ApplicationProtocol + { + private const int MaxProtocolIdSize = 0xFF; + + public ApplicationProtocolNegotiationStatus ProtoNegoStatus; + public ApplicationProtocolNegotiationExt ProtoNegoExt; + public byte ProtocolIdSize; + public fixed byte ProtocolId[MaxProtocolIdSize]; + public byte[] Protocol + { + get + { + fixed (byte* pid = ProtocolId) + { + return new Span(pid, ProtocolIdSize).ToArray(); + } + } + } + } +} diff --git a/src/Common/src/Interop/Windows/SChannel/SecPkgContext_CipherInfo.cs b/src/Common/src/Interop/Windows/SChannel/SecPkgContext_CipherInfo.cs new file mode 100644 index 000000000..6dd020ffc --- /dev/null +++ b/src/Common/src/Interop/Windows/SChannel/SecPkgContext_CipherInfo.cs @@ -0,0 +1,32 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Diagnostics; +using System.Runtime.InteropServices; + +namespace System.Net +{ + // From Schannel.h + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)] + internal unsafe struct SecPkgContext_CipherInfo + { + private const int SZ_ALG_MAX_SIZE = 64; + + private readonly int dwVersion; + private readonly int dwProtocol; + public readonly int dwCipherSuite; + private readonly int dwBaseCipherSuite; + private fixed char szCipherSuite[SZ_ALG_MAX_SIZE]; + private fixed char szCipher[SZ_ALG_MAX_SIZE]; + private readonly int dwCipherLen; + private readonly int dwCipherBlockLen; // in bytes + private fixed char szHash[SZ_ALG_MAX_SIZE]; + private readonly int dwHashLen; + private fixed char szExchange[SZ_ALG_MAX_SIZE]; + private readonly int dwMinExchangeLen; + private readonly int dwMaxExchangeLen; + private fixed char szCertificate[SZ_ALG_MAX_SIZE]; + private readonly int dwKeyType; + } +} diff --git a/src/Common/src/Interop/Windows/SChannel/SecPkgContext_ConnectionInfo.cs b/src/Common/src/Interop/Windows/SChannel/SecPkgContext_ConnectionInfo.cs new file mode 100644 index 000000000..5e4b8815b --- /dev/null +++ b/src/Common/src/Interop/Windows/SChannel/SecPkgContext_ConnectionInfo.cs @@ -0,0 +1,21 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Runtime.InteropServices; + +namespace System.Net +{ + // From Schannel.h + [StructLayout(LayoutKind.Sequential)] + internal struct SecPkgContext_ConnectionInfo + { + public readonly int Protocol; + public readonly int DataCipherAlg; + public readonly int DataKeySize; + public readonly int DataHashAlg; + public readonly int DataHashKeySize; + public readonly int KeyExchangeAlg; + public readonly int KeyExchKeySize; + } +} diff --git a/src/Common/src/Interop/Windows/SspiCli/Interop.SSPI.cs b/src/Common/src/Interop/Windows/SspiCli/Interop.SSPI.cs new file mode 100644 index 000000000..d80b37905 --- /dev/null +++ b/src/Common/src/Interop/Windows/SspiCli/Interop.SSPI.cs @@ -0,0 +1,381 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using System.Net.Security; +using System.Runtime.InteropServices; + +internal static partial class Interop +{ + internal static partial class SspiCli + { + internal const uint SECQOP_WRAP_NO_ENCRYPT = 0x80000001; + + internal const int SEC_I_RENEGOTIATE = 0x90321; + + internal const int SECPKG_NEGOTIATION_COMPLETE = 0; + internal const int SECPKG_NEGOTIATION_OPTIMISTIC = 1; + + [StructLayout(LayoutKind.Sequential, Pack = 1)] + internal struct CredHandle + { + private IntPtr dwLower; + private IntPtr dwUpper; + + public bool IsZero + { + get { return dwLower == IntPtr.Zero && dwUpper == IntPtr.Zero; } + } + + internal void SetToInvalid() + { + dwLower = IntPtr.Zero; + dwUpper = IntPtr.Zero; + } + + public override string ToString() + { + { return dwLower.ToString("x") + ":" + dwUpper.ToString("x"); } + } + } + + internal enum ContextAttribute + { + // sspi.h + SECPKG_ATTR_SIZES = 0, + SECPKG_ATTR_NAMES = 1, + SECPKG_ATTR_LIFESPAN = 2, + SECPKG_ATTR_DCE_INFO = 3, + SECPKG_ATTR_STREAM_SIZES = 4, + SECPKG_ATTR_AUTHORITY = 6, + SECPKG_ATTR_PACKAGE_INFO = 10, + SECPKG_ATTR_NEGOTIATION_INFO = 12, + SECPKG_ATTR_UNIQUE_BINDINGS = 25, + SECPKG_ATTR_ENDPOINT_BINDINGS = 26, + SECPKG_ATTR_CLIENT_SPECIFIED_TARGET = 27, + SECPKG_ATTR_APPLICATION_PROTOCOL = 35, + + // minschannel.h + SECPKG_ATTR_REMOTE_CERT_CONTEXT = 0x53, // returns PCCERT_CONTEXT + SECPKG_ATTR_LOCAL_CERT_CONTEXT = 0x54, // returns PCCERT_CONTEXT + SECPKG_ATTR_ROOT_STORE = 0x55, // returns HCERTCONTEXT to the root store + SECPKG_ATTR_ISSUER_LIST_EX = 0x59, // returns SecPkgContext_IssuerListInfoEx + SECPKG_ATTR_CONNECTION_INFO = 0x5A, // returns SecPkgContext_ConnectionInfo + SECPKG_ATTR_CIPHER_INFO = 0x64, // returns SecPkgContext_CipherInfo + SECPKG_ATTR_UI_INFO = 0x68, // sets SEcPkgContext_UiInfo + } + + // These values are defined within sspi.h as ISC_REQ_*, ISC_RET_*, ASC_REQ_* and ASC_RET_*. + [Flags] + internal enum ContextFlags + { + Zero = 0, + // The server in the transport application can + // build new security contexts impersonating the + // client that will be accepted by other servers + // as the client's contexts. + Delegate = 0x00000001, + // The communicating parties must authenticate + // their identities to each other. Without MutualAuth, + // the client authenticates its identity to the server. + // With MutualAuth, the server also must authenticate + // its identity to the client. + MutualAuth = 0x00000002, + // The security package detects replayed packets and + // notifies the caller if a packet has been replayed. + // The use of this flag implies all of the conditions + // specified by the Integrity flag. + ReplayDetect = 0x00000004, + // The context must be allowed to detect out-of-order + // delivery of packets later through the message support + // functions. Use of this flag implies all of the + // conditions specified by the Integrity flag. + SequenceDetect = 0x00000008, + // The context must protect data while in transit. + // Confidentiality is supported for NTLM with Microsoft + // Windows NT version 4.0, SP4 and later and with the + // Kerberos protocol in Microsoft Windows 2000 and later. + Confidentiality = 0x00000010, + UseSessionKey = 0x00000020, + AllocateMemory = 0x00000100, + + // Connection semantics must be used. + Connection = 0x00000800, + + // Client applications requiring extended error messages specify the + // ISC_REQ_EXTENDED_ERROR flag when calling the InitializeSecurityContext + // Server applications requiring extended error messages set + // the ASC_REQ_EXTENDED_ERROR flag when calling AcceptSecurityContext. + InitExtendedError = 0x00004000, + AcceptExtendedError = 0x00008000, + // A transport application requests stream semantics + // by setting the ISC_REQ_STREAM and ASC_REQ_STREAM + // flags in the calls to the InitializeSecurityContext + // and AcceptSecurityContext functions + InitStream = 0x00008000, + AcceptStream = 0x00010000, + // Buffer integrity can be verified; however, replayed + // and out-of-sequence messages will not be detected + InitIntegrity = 0x00010000, // ISC_REQ_INTEGRITY + AcceptIntegrity = 0x00020000, // ASC_REQ_INTEGRITY + + InitManualCredValidation = 0x00080000, // ISC_REQ_MANUAL_CRED_VALIDATION + InitUseSuppliedCreds = 0x00000080, // ISC_REQ_USE_SUPPLIED_CREDS + InitIdentify = 0x00020000, // ISC_REQ_IDENTIFY + AcceptIdentify = 0x00080000, // ASC_REQ_IDENTIFY + + ProxyBindings = 0x04000000, // ASC_REQ_PROXY_BINDINGS + AllowMissingBindings = 0x10000000, // ASC_REQ_ALLOW_MISSING_BINDINGS + + UnverifiedTargetName = 0x20000000, // ISC_REQ_UNVERIFIED_TARGET_NAME + } + + internal enum Endianness + { + SECURITY_NETWORK_DREP = 0x00, + SECURITY_NATIVE_DREP = 0x10, + } + + internal enum CredentialUse + { + SECPKG_CRED_INBOUND = 0x1, + SECPKG_CRED_OUTBOUND = 0x2, + SECPKG_CRED_BOTH = 0x3, + } + + // wincrypt.h + [StructLayout(LayoutKind.Sequential)] + internal struct CERT_CHAIN_ELEMENT + { + public uint cbSize; + public IntPtr pCertContext; + // Since this structure is allocated by unmanaged code, we can + // omit the fields below since we don't need to access them + // CERT_TRUST_STATUS TrustStatus; + // IntPtr pRevocationInfo; + // IntPtr pIssuanceUsage; + // IntPtr pApplicationUsage; + } + + // schannel.h + [StructLayout(LayoutKind.Sequential)] + internal unsafe struct SecPkgContext_IssuerListInfoEx + { + public IntPtr aIssuers; + public uint cIssuers; + } + + [StructLayout(LayoutKind.Sequential)] + internal struct SCHANNEL_CRED + { + public const int CurrentVersion = 0x4; + + public int dwVersion; + public int cCreds; + + // ptr to an array of pointers + // There is a hack done with this field. AcquireCredentialsHandle requires an array of + // certificate handles; we only ever use one. In order to avoid pinning a one element array, + // we copy this value onto the stack, create a pointer on the stack to the copied value, + // and replace this field with the pointer, during the call to AcquireCredentialsHandle. + // Then we fix it up afterwards. Fine as long as all the SSPI credentials are not + // supposed to be threadsafe. + public IntPtr paCred; + + public IntPtr hRootStore; // == always null, OTHERWISE NOT RELIABLE + public int cMappers; + public IntPtr aphMappers; // == always null, OTHERWISE NOT RELIABLE + public int cSupportedAlgs; + public IntPtr palgSupportedAlgs; // == always null, OTHERWISE NOT RELIABLE + public int grbitEnabledProtocols; + public int dwMinimumCipherStrength; + public int dwMaximumCipherStrength; + public int dwSessionLifespan; + public SCHANNEL_CRED.Flags dwFlags; + public int reserved; + + [Flags] + public enum Flags + { + Zero = 0, + SCH_CRED_NO_SYSTEM_MAPPER = 0x02, + SCH_CRED_NO_SERVERNAME_CHECK = 0x04, + SCH_CRED_MANUAL_CRED_VALIDATION = 0x08, + SCH_CRED_NO_DEFAULT_CREDS = 0x10, + SCH_CRED_AUTO_CRED_VALIDATION = 0x20, + SCH_SEND_AUX_RECORD = 0x00200000, + SCH_USE_STRONG_CRYPTO = 0x00400000, + } + } + + [StructLayout(LayoutKind.Sequential)] + internal unsafe struct SecBuffer + { + public int cbBuffer; + public SecurityBufferType BufferType; + public IntPtr pvBuffer; + + public static readonly int Size = sizeof(SecBuffer); + } + + [StructLayout(LayoutKind.Sequential)] + internal unsafe struct SecBufferDesc + { + public readonly int ulVersion; + public readonly int cBuffers; + public void* pBuffers; + + public SecBufferDesc(int count) + { + ulVersion = 0; + cBuffers = count; + pBuffers = null; + } + } + + [DllImport(Interop.Libraries.SspiCli, ExactSpelling = true, SetLastError = true)] + internal static extern int EncryptMessage( + ref CredHandle contextHandle, + [In] uint qualityOfProtection, + [In, Out] ref SecBufferDesc inputOutput, + [In] uint sequenceNumber + ); + + [DllImport(Interop.Libraries.SspiCli, ExactSpelling = true, SetLastError = true)] + internal static extern unsafe int DecryptMessage( + [In] ref CredHandle contextHandle, + [In, Out] ref SecBufferDesc inputOutput, + [In] uint sequenceNumber, + uint* qualityOfProtection + ); + + [DllImport(Interop.Libraries.SspiCli, ExactSpelling = true, SetLastError = true)] + internal static extern int QuerySecurityContextToken( + ref CredHandle phContext, + [Out] out SecurityContextTokenHandle handle); + + [DllImport(Interop.Libraries.SspiCli, ExactSpelling = true, SetLastError = true)] + internal static extern int FreeContextBuffer( + [In] IntPtr contextBuffer); + + [DllImport(Interop.Libraries.SspiCli, ExactSpelling = true, SetLastError = true)] + internal static extern int FreeCredentialsHandle( + ref CredHandle handlePtr + ); + + [DllImport(Interop.Libraries.SspiCli, ExactSpelling = true, SetLastError = true)] + internal static extern int DeleteSecurityContext( + ref CredHandle handlePtr + ); + + [DllImport(Interop.Libraries.SspiCli, ExactSpelling = true, SetLastError = true)] + internal static extern unsafe int AcceptSecurityContext( + ref CredHandle credentialHandle, + [In] void* inContextPtr, + [In] SecBufferDesc* inputBuffer, + [In] ContextFlags inFlags, + [In] Endianness endianness, + ref CredHandle outContextPtr, + [In, Out] ref SecBufferDesc outputBuffer, + [In, Out] ref ContextFlags attributes, + out long timeStamp + ); + + [DllImport(Interop.Libraries.SspiCli, ExactSpelling = true, SetLastError = true)] + internal static extern unsafe int QueryContextAttributesW( + ref CredHandle contextHandle, + [In] ContextAttribute attribute, + [In] void* buffer); + + [DllImport(Interop.Libraries.SspiCli, ExactSpelling = true, SetLastError = true)] + internal static extern unsafe int SetContextAttributesW( + ref CredHandle contextHandle, + [In] ContextAttribute attribute, + [In] byte[] buffer, + [In] int bufferSize); + + [DllImport(Interop.Libraries.SspiCli, ExactSpelling = true, SetLastError = true)] + internal static extern int EnumerateSecurityPackagesW( + [Out] out int pkgnum, + [Out] out SafeFreeContextBuffer_SECURITY handle); + + [DllImport(Interop.Libraries.SspiCli, ExactSpelling = true, CharSet = CharSet.Unicode, SetLastError = true)] + internal static extern unsafe int AcquireCredentialsHandleW( + [In] string principal, + [In] string moduleName, + [In] int usage, + [In] void* logonID, + [In] IntPtr zero, + [In] void* keyCallback, + [In] void* keyArgument, + ref CredHandle handlePtr, + [Out] out long timeStamp + ); + + [DllImport(Interop.Libraries.SspiCli, ExactSpelling = true, CharSet = CharSet.Unicode, SetLastError = true)] + internal static extern unsafe int AcquireCredentialsHandleW( + [In] string principal, + [In] string moduleName, + [In] int usage, + [In] void* logonID, + [In] SafeSspiAuthDataHandle authdata, + [In] void* keyCallback, + [In] void* keyArgument, + ref CredHandle handlePtr, + [Out] out long timeStamp + ); + + [DllImport(Interop.Libraries.SspiCli, ExactSpelling = true, CharSet = CharSet.Unicode, SetLastError = true)] + internal static extern unsafe int AcquireCredentialsHandleW( + [In] string principal, + [In] string moduleName, + [In] int usage, + [In] void* logonID, + [In] ref SCHANNEL_CRED authData, + [In] void* keyCallback, + [In] void* keyArgument, + ref CredHandle handlePtr, + [Out] out long timeStamp + ); + + [DllImport(Interop.Libraries.SspiCli, ExactSpelling = true, SetLastError = true)] + internal static extern unsafe int InitializeSecurityContextW( + ref CredHandle credentialHandle, + [In] void* inContextPtr, + [In] byte* targetName, + [In] ContextFlags inFlags, + [In] int reservedI, + [In] Endianness endianness, + [In] SecBufferDesc* inputBuffer, + [In] int reservedII, + ref CredHandle outContextPtr, + [In, Out] ref SecBufferDesc outputBuffer, + [In, Out] ref ContextFlags attributes, + out long timeStamp + ); + + [DllImport(Interop.Libraries.SspiCli, ExactSpelling = true, SetLastError = true)] + internal static extern unsafe int CompleteAuthToken( + [In] void* inContextPtr, + [In, Out] ref SecBufferDesc inputBuffers + ); + + [DllImport(Interop.Libraries.SspiCli, ExactSpelling = true, SetLastError = true)] + internal static extern unsafe int ApplyControlToken( + [In] void* inContextPtr, + [In, Out] ref SecBufferDesc inputBuffers + ); + + [DllImport(Interop.Libraries.SspiCli, ExactSpelling = true, SetLastError = true)] + internal static extern unsafe SECURITY_STATUS SspiFreeAuthIdentity( + [In] IntPtr authData); + + [DllImport(Interop.Libraries.SspiCli, ExactSpelling = true, CharSet = CharSet.Unicode, SetLastError = true)] + internal static extern unsafe SECURITY_STATUS SspiEncodeStringsAsAuthIdentity( + [In] string userName, + [In] string domainName, + [In] string password, + [Out] out SafeSspiAuthDataHandle authData); + } +} diff --git a/src/Common/src/Interop/Windows/SspiCli/NegotiationInfoClass.cs b/src/Common/src/Interop/Windows/SspiCli/NegotiationInfoClass.cs new file mode 100644 index 000000000..ffe7759b2 --- /dev/null +++ b/src/Common/src/Interop/Windows/SspiCli/NegotiationInfoClass.cs @@ -0,0 +1,57 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Runtime.InteropServices; + +namespace System.Net +{ + // This class is used to determine if NTLM or + // Kerberos are used in the context of a Negotiate handshake + internal static partial class NegotiationInfoClass + { + internal static string GetAuthenticationPackageName(SafeHandle safeHandle, int negotiationState) + { + if (safeHandle.IsInvalid) + { + if (NetEventSource.IsEnabled) NetEventSource.Info(null, $"Invalid handle:{safeHandle}"); + return null; + } + + bool gotRef = false; + try + { + safeHandle.DangerousAddRef(ref gotRef); + IntPtr packageInfo = safeHandle.DangerousGetHandle(); + if (NetEventSource.IsEnabled) NetEventSource.Info(null, $"packageInfo:{packageInfo} negotiationState:{negotiationState:x}"); + + if (negotiationState == Interop.SspiCli.SECPKG_NEGOTIATION_COMPLETE || + negotiationState == Interop.SspiCli.SECPKG_NEGOTIATION_OPTIMISTIC) + { + string name; + unsafe + { + name = Marshal.PtrToStringUni(((SecurityPackageInfo*)packageInfo)->Name); + } + + if (NetEventSource.IsEnabled) NetEventSource.Info(null, $"packageInfo:{packageInfo} negotiationState:{negotiationState:x} name:{name}"); + + // An optimization for future string comparisons. + return + string.Equals(name, Kerberos, StringComparison.OrdinalIgnoreCase) ? Kerberos : + string.Equals(name, NTLM, StringComparison.OrdinalIgnoreCase) ? NTLM : + name; + } + } + finally + { + if (gotRef) + { + safeHandle.DangerousRelease(); + } + } + + return null; + } + } +} diff --git a/src/Common/src/Interop/Windows/SspiCli/SSPIAuthType.cs b/src/Common/src/Interop/Windows/SspiCli/SSPIAuthType.cs new file mode 100644 index 000000000..0083e5666 --- /dev/null +++ b/src/Common/src/Interop/Windows/SspiCli/SSPIAuthType.cs @@ -0,0 +1,190 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Net.Security; +using System.Runtime.InteropServices; + +namespace System.Net +{ + // Authentication SSPI (Kerberos, NTLM, Negotiate and WDigest): + internal class SSPIAuthType : SSPIInterface + { + private static volatile SecurityPackageInfoClass[] s_securityPackages; + + public SecurityPackageInfoClass[] SecurityPackages + { + get + { + return s_securityPackages; + } + set + { + s_securityPackages = value; + } + } + + public int EnumerateSecurityPackages(out int pkgnum, out SafeFreeContextBuffer pkgArray) + { + if (NetEventSource.IsEnabled) NetEventSource.Info(this); + return SafeFreeContextBuffer.EnumeratePackages(out pkgnum, out pkgArray); + } + + public int AcquireCredentialsHandle(string moduleName, Interop.SspiCli.CredentialUse usage, ref SafeSspiAuthDataHandle authdata, out SafeFreeCredentials outCredential) + { + return SafeFreeCredentials.AcquireCredentialsHandle(moduleName, usage, ref authdata, out outCredential); + } + + public int AcquireDefaultCredential(string moduleName, Interop.SspiCli.CredentialUse usage, out SafeFreeCredentials outCredential) + { + return SafeFreeCredentials.AcquireDefaultCredential(moduleName, usage, out outCredential); + } + + public int AcquireCredentialsHandle(string moduleName, Interop.SspiCli.CredentialUse usage, ref Interop.SspiCli.SCHANNEL_CRED authdata, out SafeFreeCredentials outCredential) + { + return SafeFreeCredentials.AcquireCredentialsHandle(moduleName, usage, ref authdata, out outCredential); + } + + public int AcceptSecurityContext(SafeFreeCredentials credential, ref SafeDeleteContext context, ReadOnlySpan inputBuffers, Interop.SspiCli.ContextFlags inFlags, Interop.SspiCli.Endianness endianness, ref SecurityBuffer outputBuffer, ref Interop.SspiCli.ContextFlags outFlags) + { + return SafeDeleteContext.AcceptSecurityContext(ref credential, ref context, inFlags, endianness, inputBuffers, ref outputBuffer, ref outFlags); + } + + public int InitializeSecurityContext(ref SafeFreeCredentials credential, ref SafeDeleteContext context, string targetName, Interop.SspiCli.ContextFlags inFlags, Interop.SspiCli.Endianness endianness, ReadOnlySpan inputBuffers, ref SecurityBuffer outputBuffer, ref Interop.SspiCli.ContextFlags outFlags) + { + return SafeDeleteContext.InitializeSecurityContext(ref credential, ref context, targetName, inFlags, endianness, inputBuffers, ref outputBuffer, ref outFlags); + } + + public int EncryptMessage(SafeDeleteContext context, ref Interop.SspiCli.SecBufferDesc inputOutput, uint sequenceNumber) + { + try + { + bool ignore = false; + + context.DangerousAddRef(ref ignore); + return Interop.SspiCli.EncryptMessage(ref context._handle, 0, ref inputOutput, sequenceNumber); + } + finally + { + context.DangerousRelease(); + } + } + + public unsafe int DecryptMessage(SafeDeleteContext context, ref Interop.SspiCli.SecBufferDesc inputOutput, uint sequenceNumber) + { + int status = (int)Interop.SECURITY_STATUS.InvalidHandle; + uint qop = 0; + + try + { + bool ignore = false; + context.DangerousAddRef(ref ignore); + status = Interop.SspiCli.DecryptMessage(ref context._handle, ref inputOutput, sequenceNumber, &qop); + } + finally + { + context.DangerousRelease(); + } + + if (status == 0 && qop == Interop.SspiCli.SECQOP_WRAP_NO_ENCRYPT) + { + NetEventSource.Fail(this, $"Expected qop = 0, returned value = {qop}"); + throw new InvalidOperationException(SR.net_auth_message_not_encrypted); + } + + return status; + } + + public int MakeSignature(SafeDeleteContext context, ref Interop.SspiCli.SecBufferDesc inputOutput, uint sequenceNumber) + { + try + { + bool ignore = false; + + context.DangerousAddRef(ref ignore); + + return Interop.SspiCli.EncryptMessage(ref context._handle, Interop.SspiCli.SECQOP_WRAP_NO_ENCRYPT, ref inputOutput, sequenceNumber); + } + finally + { + context.DangerousRelease(); + } + } + + public unsafe int VerifySignature(SafeDeleteContext context, ref Interop.SspiCli.SecBufferDesc inputOutput, uint sequenceNumber) + { + try + { + bool ignore = false; + uint qop = 0; + + context.DangerousAddRef(ref ignore); + return Interop.SspiCli.DecryptMessage(ref context._handle, ref inputOutput, sequenceNumber, &qop); + } + finally + { + context.DangerousRelease(); + } + } + + public int QueryContextChannelBinding(SafeDeleteContext context, Interop.SspiCli.ContextAttribute attribute, out SafeFreeContextBufferChannelBinding binding) + { + // Querying an auth SSP for a CBT is not supported. + throw new NotSupportedException(); + } + + public unsafe int QueryContextAttributes(SafeDeleteContext context, Interop.SspiCli.ContextAttribute attribute, Span buffer, Type handleType, out SafeHandle refHandle) + { + refHandle = null; + if (handleType != null) + { + if (handleType == typeof(SafeFreeContextBuffer)) + { + refHandle = SafeFreeContextBuffer.CreateEmptyHandle(); + } + else if (handleType == typeof(SafeFreeCertContext)) + { + refHandle = new SafeFreeCertContext(); + } + else + { + throw new ArgumentException(SR.Format(SR.SSPIInvalidHandleType, handleType.FullName), nameof(handleType)); + } + } + + fixed (byte* bufferPtr = buffer) + { + return SafeFreeContextBuffer.QueryContextAttributes(context, attribute, bufferPtr, refHandle); + } + } + + public int QuerySecurityContextToken(SafeDeleteContext phContext, out SecurityContextTokenHandle phToken) + { + return GetSecurityContextToken(phContext, out phToken); + } + + public int CompleteAuthToken(ref SafeDeleteContext refContext, in SecurityBuffer inputBuffer) + { + return SafeDeleteContext.CompleteAuthToken(ref refContext, in inputBuffer); + } + + private static int GetSecurityContextToken(SafeDeleteContext phContext, out SecurityContextTokenHandle safeHandle) + { + try + { + bool ignore = false; + phContext.DangerousAddRef(ref ignore); + return Interop.SspiCli.QuerySecurityContextToken(ref phContext._handle, out safeHandle); + } + finally + { + phContext.DangerousRelease(); + } + } + + public int ApplyControlToken(ref SafeDeleteContext refContext, in SecurityBuffer inputBuffers) + { + throw new NotSupportedException(); + } + } +} diff --git a/src/Common/src/Interop/Windows/SspiCli/SSPISecureChannelType.cs b/src/Common/src/Interop/Windows/SspiCli/SSPISecureChannelType.cs new file mode 100644 index 000000000..58e749691 --- /dev/null +++ b/src/Common/src/Interop/Windows/SspiCli/SSPISecureChannelType.cs @@ -0,0 +1,145 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Net.Security; +using System.Runtime.InteropServices; + +namespace System.Net +{ + // Schannel SSPI interface. + internal class SSPISecureChannelType : SSPIInterface + { + private static volatile SecurityPackageInfoClass[] s_securityPackages; + + public SecurityPackageInfoClass[] SecurityPackages + { + get + { + return s_securityPackages; + } + set + { + s_securityPackages = value; + } + } + + public int EnumerateSecurityPackages(out int pkgnum, out SafeFreeContextBuffer pkgArray) + { + if (NetEventSource.IsEnabled) NetEventSource.Info(this); + return SafeFreeContextBuffer.EnumeratePackages(out pkgnum, out pkgArray); + } + + public int AcquireCredentialsHandle(string moduleName, Interop.SspiCli.CredentialUse usage, ref SafeSspiAuthDataHandle authdata, out SafeFreeCredentials outCredential) + { + return SafeFreeCredentials.AcquireCredentialsHandle(moduleName, usage, ref authdata, out outCredential); + } + + public int AcquireDefaultCredential(string moduleName, Interop.SspiCli.CredentialUse usage, out SafeFreeCredentials outCredential) + { + return SafeFreeCredentials.AcquireDefaultCredential(moduleName, usage, out outCredential); + } + + public int AcquireCredentialsHandle(string moduleName, Interop.SspiCli.CredentialUse usage, ref Interop.SspiCli.SCHANNEL_CRED authdata, out SafeFreeCredentials outCredential) + { + return SafeFreeCredentials.AcquireCredentialsHandle(moduleName, usage, ref authdata, out outCredential); + } + + public int AcceptSecurityContext(SafeFreeCredentials credential, ref SafeDeleteContext context, ReadOnlySpan inputBuffers, Interop.SspiCli.ContextFlags inFlags, Interop.SspiCli.Endianness endianness, ref SecurityBuffer outputBuffer, ref Interop.SspiCli.ContextFlags outFlags) + { + return SafeDeleteContext.AcceptSecurityContext(ref credential, ref context, inFlags, endianness, inputBuffers, ref outputBuffer, ref outFlags); + } + + public int InitializeSecurityContext(ref SafeFreeCredentials credential, ref SafeDeleteContext context, string targetName, Interop.SspiCli.ContextFlags inFlags, Interop.SspiCli.Endianness endianness, ReadOnlySpan inputBuffers, ref SecurityBuffer outputBuffer, ref Interop.SspiCli.ContextFlags outFlags) + { + return SafeDeleteContext.InitializeSecurityContext(ref credential, ref context, targetName, inFlags, endianness, inputBuffers, ref outputBuffer, ref outFlags); + } + + public int EncryptMessage(SafeDeleteContext context, ref Interop.SspiCli.SecBufferDesc inputOutput, uint sequenceNumber) + { + try + { + bool ignore = false; + context.DangerousAddRef(ref ignore); + return Interop.SspiCli.EncryptMessage(ref context._handle, 0, ref inputOutput, sequenceNumber); + } + finally + { + context.DangerousRelease(); + } + } + + public unsafe int DecryptMessage(SafeDeleteContext context, ref Interop.SspiCli.SecBufferDesc inputOutput, + uint sequenceNumber) + { + try + { + bool ignore = false; + context.DangerousAddRef(ref ignore); + return Interop.SspiCli.DecryptMessage(ref context._handle, ref inputOutput, sequenceNumber, null); + } + finally + { + context.DangerousRelease(); + } + } + + public int MakeSignature(SafeDeleteContext context, ref Interop.SspiCli.SecBufferDesc inputOutput, uint sequenceNumber) + { + throw NotImplemented.ByDesignWithMessage(SR.net_MethodNotImplementedException); + } + + public int VerifySignature(SafeDeleteContext context, ref Interop.SspiCli.SecBufferDesc inputOutput, uint sequenceNumber) + { + throw NotImplemented.ByDesignWithMessage(SR.net_MethodNotImplementedException); + } + + public unsafe int QueryContextChannelBinding(SafeDeleteContext phContext, Interop.SspiCli.ContextAttribute attribute, out SafeFreeContextBufferChannelBinding refHandle) + { + refHandle = SafeFreeContextBufferChannelBinding.CreateEmptyHandle(); + + // Bindings is on the stack, so there's no need for a fixed block. + SecPkgContext_Bindings bindings = new SecPkgContext_Bindings(); + return SafeFreeContextBufferChannelBinding.QueryContextChannelBinding(phContext, attribute, &bindings, refHandle); + } + + public unsafe int QueryContextAttributes(SafeDeleteContext phContext, Interop.SspiCli.ContextAttribute attribute, Span buffer, Type handleType, out SafeHandle refHandle) + { + refHandle = null; + if (handleType != null) + { + if (handleType == typeof(SafeFreeContextBuffer)) + { + refHandle = SafeFreeContextBuffer.CreateEmptyHandle(); + } + else if (handleType == typeof(SafeFreeCertContext)) + { + refHandle = new SafeFreeCertContext(); + } + else + { + throw new ArgumentException(SR.Format(SR.SSPIInvalidHandleType, handleType.FullName), nameof(handleType)); + } + } + fixed (byte* bufferPtr = buffer) + { + return SafeFreeContextBuffer.QueryContextAttributes(phContext, attribute, bufferPtr, refHandle); + } + } + + public int QuerySecurityContextToken(SafeDeleteContext phContext, out SecurityContextTokenHandle phToken) + { + throw new NotSupportedException(); + } + + public int CompleteAuthToken(ref SafeDeleteContext refContext, in SecurityBuffer inputBuffer) + { + throw new NotSupportedException(); + } + + public int ApplyControlToken(ref SafeDeleteContext refContext, in SecurityBuffer inputBuffer) + { + return SafeDeleteContext.ApplyControlToken(ref refContext, in inputBuffer); + } + } +} diff --git a/src/Common/src/Interop/Windows/SspiCli/SSPIWrapper.cs b/src/Common/src/Interop/Windows/SspiCli/SSPIWrapper.cs new file mode 100644 index 000000000..a09e749b4 --- /dev/null +++ b/src/Common/src/Interop/Windows/SspiCli/SSPIWrapper.cs @@ -0,0 +1,550 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.ComponentModel; +using System.Diagnostics; +using System.Globalization; +using System.Net.Security; +using System.Runtime.InteropServices; + +namespace System.Net +{ + internal static class SSPIWrapper + { + internal static SecurityPackageInfoClass[] EnumerateSecurityPackages(SSPIInterface secModule) + { + if (NetEventSource.IsEnabled) NetEventSource.Enter(null); + + if (secModule.SecurityPackages == null) + { + lock (secModule) + { + if (secModule.SecurityPackages == null) + { + int moduleCount = 0; + SafeFreeContextBuffer arrayBaseHandle = null; + try + { + int errorCode = secModule.EnumerateSecurityPackages(out moduleCount, out arrayBaseHandle); + if (NetEventSource.IsEnabled) NetEventSource.Info(null, $"arrayBase: {arrayBaseHandle}"); + if (errorCode != 0) + { + throw new Win32Exception(errorCode); + } + + var securityPackages = new SecurityPackageInfoClass[moduleCount]; + + int i; + for (i = 0; i < moduleCount; i++) + { + securityPackages[i] = new SecurityPackageInfoClass(arrayBaseHandle, i); + if (NetEventSource.IsEnabled) NetEventSource.Log.EnumerateSecurityPackages(securityPackages[i].Name); + } + + secModule.SecurityPackages = securityPackages; + } + finally + { + arrayBaseHandle?.Dispose(); + } + } + } + } + + if (NetEventSource.IsEnabled) NetEventSource.Exit(null); + return secModule.SecurityPackages; + } + + internal static SecurityPackageInfoClass GetVerifyPackageInfo(SSPIInterface secModule, string packageName, bool throwIfMissing) + { + SecurityPackageInfoClass[] supportedSecurityPackages = EnumerateSecurityPackages(secModule); + if (supportedSecurityPackages != null) + { + for (int i = 0; i < supportedSecurityPackages.Length; i++) + { + if (string.Equals(supportedSecurityPackages[i].Name, packageName, StringComparison.OrdinalIgnoreCase)) + { + return supportedSecurityPackages[i]; + } + } + } + + if (NetEventSource.IsEnabled) NetEventSource.Log.SspiPackageNotFound(packageName); + + if (throwIfMissing) + { + throw new NotSupportedException(SR.net_securitypackagesupport); + } + + return null; + } + + public static SafeFreeCredentials AcquireDefaultCredential(SSPIInterface secModule, string package, Interop.SspiCli.CredentialUse intent) + { + if (NetEventSource.IsEnabled) + { + NetEventSource.Enter(null, package); + NetEventSource.Log.AcquireDefaultCredential(package, intent); + } + + SafeFreeCredentials outCredential = null; + int errorCode = secModule.AcquireDefaultCredential(package, intent, out outCredential); + + if (errorCode != 0) + { + if (NetEventSource.IsEnabled) NetEventSource.Error(null, SR.Format(SR.net_log_operation_failed_with_error, nameof(AcquireDefaultCredential), $"0x{errorCode:X}")); + throw new Win32Exception(errorCode); + } + return outCredential; + } + + public static SafeFreeCredentials AcquireCredentialsHandle(SSPIInterface secModule, string package, Interop.SspiCli.CredentialUse intent, ref SafeSspiAuthDataHandle authdata) + { + if (NetEventSource.IsEnabled) NetEventSource.Log.AcquireCredentialsHandle(package, intent, authdata); + + SafeFreeCredentials credentialsHandle = null; + int errorCode = secModule.AcquireCredentialsHandle(package, intent, ref authdata, out credentialsHandle); + + if (errorCode != 0) + { + if (NetEventSource.IsEnabled) NetEventSource.Error(null, SR.Format(SR.net_log_operation_failed_with_error, nameof(AcquireCredentialsHandle), $"0x{errorCode:X}")); + throw new Win32Exception(errorCode); + } + + return credentialsHandle; + } + + public static SafeFreeCredentials AcquireCredentialsHandle(SSPIInterface secModule, string package, Interop.SspiCli.CredentialUse intent, Interop.SspiCli.SCHANNEL_CRED scc) + { + if (NetEventSource.IsEnabled) + { + NetEventSource.Enter(null, package); + NetEventSource.Log.AcquireCredentialsHandle(package, intent, scc); + } + + SafeFreeCredentials outCredential = null; + int errorCode = secModule.AcquireCredentialsHandle( + package, + intent, + ref scc, + out outCredential); + + if (errorCode != 0) + { + if (NetEventSource.IsEnabled) NetEventSource.Error(null, SR.Format(SR.net_log_operation_failed_with_error, nameof(AcquireCredentialsHandle), $"0x{errorCode:X}")); + throw new Win32Exception(errorCode); + } + + if (NetEventSource.IsEnabled) NetEventSource.Exit(null, outCredential); + return outCredential; + } + + internal static int InitializeSecurityContext(SSPIInterface secModule, ref SafeFreeCredentials credential, ref SafeDeleteContext context, string targetName, Interop.SspiCli.ContextFlags inFlags, Interop.SspiCli.Endianness datarep, ReadOnlySpan inputBuffers, ref SecurityBuffer outputBuffer, ref Interop.SspiCli.ContextFlags outFlags) + { + if (NetEventSource.IsEnabled) NetEventSource.Log.InitializeSecurityContext(credential, context, targetName, inFlags); + + int errorCode = secModule.InitializeSecurityContext(ref credential, ref context, targetName, inFlags, datarep, inputBuffers, ref outputBuffer, ref outFlags); + + if (NetEventSource.IsEnabled) NetEventSource.Log.SecurityContextInputBuffers(nameof(InitializeSecurityContext), inputBuffers.Length, outputBuffer.size, (Interop.SECURITY_STATUS)errorCode); + + return errorCode; + } + + internal static int AcceptSecurityContext(SSPIInterface secModule, SafeFreeCredentials credential, ref SafeDeleteContext context, Interop.SspiCli.ContextFlags inFlags, Interop.SspiCli.Endianness datarep, ReadOnlySpan inputBuffers, ref SecurityBuffer outputBuffer, ref Interop.SspiCli.ContextFlags outFlags) + { + if (NetEventSource.IsEnabled) NetEventSource.Log.AcceptSecurityContext(credential, context, inFlags); + + int errorCode = secModule.AcceptSecurityContext(credential, ref context, inputBuffers, inFlags, datarep, ref outputBuffer, ref outFlags); + + if (NetEventSource.IsEnabled) NetEventSource.Log.SecurityContextInputBuffers(nameof(AcceptSecurityContext), inputBuffers.Length, outputBuffer.size, (Interop.SECURITY_STATUS)errorCode); + + return errorCode; + } + + internal static int CompleteAuthToken(SSPIInterface secModule, ref SafeDeleteContext context, in SecurityBuffer inputBuffer) + { + int errorCode = secModule.CompleteAuthToken(ref context, in inputBuffer); + + if (NetEventSource.IsEnabled) NetEventSource.Log.OperationReturnedSomething(nameof(CompleteAuthToken), (Interop.SECURITY_STATUS)errorCode); + + return errorCode; + } + + internal static int ApplyControlToken(SSPIInterface secModule, ref SafeDeleteContext context, in SecurityBuffer inputBuffer) + { + int errorCode = secModule.ApplyControlToken(ref context, in inputBuffer); + + if (NetEventSource.IsEnabled) NetEventSource.Log.OperationReturnedSomething(nameof(ApplyControlToken), (Interop.SECURITY_STATUS)errorCode); + + return errorCode; + } + + public static int QuerySecurityContextToken(SSPIInterface secModule, SafeDeleteContext context, out SecurityContextTokenHandle token) + { + return secModule.QuerySecurityContextToken(context, out token); + } + + public static int EncryptMessage(SSPIInterface secModule, SafeDeleteContext context, Span input, uint sequenceNumber) + { + return EncryptDecryptHelper(OP.Encrypt, secModule, context, input, sequenceNumber); + } + + public static int DecryptMessage(SSPIInterface secModule, SafeDeleteContext context, Span input, uint sequenceNumber) + { + return EncryptDecryptHelper(OP.Decrypt, secModule, context, input, sequenceNumber); + } + + internal static int MakeSignature(SSPIInterface secModule, SafeDeleteContext context, Span input, uint sequenceNumber) + { + return EncryptDecryptHelper(OP.MakeSignature, secModule, context, input, sequenceNumber); + } + + public static int VerifySignature(SSPIInterface secModule, SafeDeleteContext context, Span input, uint sequenceNumber) + { + return EncryptDecryptHelper(OP.VerifySignature, secModule, context, input, sequenceNumber); + } + + private enum OP + { + Encrypt = 1, + Decrypt, + MakeSignature, + VerifySignature + } + + private static unsafe int EncryptDecryptHelper(OP op, SSPIInterface secModule, SafeDeleteContext context, Span input, uint sequenceNumber) + { + Interop.SspiCli.SecBufferDesc sdcInOut = new Interop.SspiCli.SecBufferDesc(input.Length); + Span unmanagedBuffer = stackalloc Interop.SspiCli.SecBuffer[input.Length]; + unmanagedBuffer.Clear(); + + fixed (Interop.SspiCli.SecBuffer* unmanagedBufferPtr = unmanagedBuffer) + { + sdcInOut.pBuffers = unmanagedBufferPtr; + Span pinnedBuffers = stackalloc GCHandle[input.Length]; + pinnedBuffers.Clear(); + byte[][] buffers = new byte[input.Length][]; + try + { + for (int i = 0; i < input.Length; i++) + { + ref readonly SecurityBuffer iBuffer = ref input[i]; + unmanagedBuffer[i].cbBuffer = iBuffer.size; + unmanagedBuffer[i].BufferType = iBuffer.type; + if (iBuffer.token == null || iBuffer.token.Length == 0) + { + unmanagedBuffer[i].pvBuffer = IntPtr.Zero; + } + else + { + pinnedBuffers[i] = GCHandle.Alloc(iBuffer.token, GCHandleType.Pinned); + unmanagedBuffer[i].pvBuffer = Marshal.UnsafeAddrOfPinnedArrayElement(iBuffer.token, iBuffer.offset); + buffers[i] = iBuffer.token; + } + } + + // The result is written in the input Buffer passed as type=BufferType.Data. + int errorCode; + switch (op) + { + case OP.Encrypt: + errorCode = secModule.EncryptMessage(context, ref sdcInOut, sequenceNumber); + break; + + case OP.Decrypt: + errorCode = secModule.DecryptMessage(context, ref sdcInOut, sequenceNumber); + break; + + case OP.MakeSignature: + errorCode = secModule.MakeSignature(context, ref sdcInOut, sequenceNumber); + break; + + case OP.VerifySignature: + errorCode = secModule.VerifySignature(context, ref sdcInOut, sequenceNumber); + break; + + default: + NetEventSource.Fail(null, $"Unknown OP: {op}"); + throw NotImplemented.ByDesignWithMessage(SR.net_MethodNotImplementedException); + } + + // Marshalling back returned sizes / data. + for (int i = 0; i < input.Length; i++) + { + ref SecurityBuffer iBuffer = ref input[i]; + iBuffer.size = unmanagedBuffer[i].cbBuffer; + iBuffer.type = unmanagedBuffer[i].BufferType; + + if (iBuffer.size == 0) + { + iBuffer.offset = 0; + iBuffer.token = null; + } + else + { + checked + { + // Find the buffer this is inside of. Usually they all point inside buffer 0. + int j; + for (j = 0; j < input.Length; j++) + { + if (buffers[j] == null) + { + continue; + } + + byte* bufferAddress = (byte*)Marshal.UnsafeAddrOfPinnedArrayElement(buffers[j], 0); + if ((byte*)unmanagedBuffer[i].pvBuffer >= bufferAddress && + (byte*)unmanagedBuffer[i].pvBuffer + iBuffer.size <= bufferAddress + buffers[j].Length) + { + iBuffer.offset = (int)((byte*)unmanagedBuffer[i].pvBuffer - bufferAddress); + iBuffer.token = buffers[j]; + break; + } + } + + if (j >= input.Length) + { + NetEventSource.Fail(null, "Output buffer out of range."); + iBuffer.size = 0; + iBuffer.offset = 0; + iBuffer.token = null; + } + } + } + + // Backup validate the new sizes. + if (iBuffer.offset < 0 || iBuffer.offset > (iBuffer.token == null ? 0 : iBuffer.token.Length)) + { + NetEventSource.Fail(null, $"'offset' out of range. [{iBuffer.offset}]"); + } + + if (iBuffer.size < 0 || iBuffer.size > (iBuffer.token == null ? 0 : iBuffer.token.Length - iBuffer.offset)) + { + NetEventSource.Fail(null, $"'size' out of range. [{iBuffer.size}]"); + } + } + + if (NetEventSource.IsEnabled && errorCode != 0) + { + if (errorCode == Interop.SspiCli.SEC_I_RENEGOTIATE) + { + NetEventSource.Error(null, SR.Format(SR.event_OperationReturnedSomething, op, "SEC_I_RENEGOTIATE")); + } + else + { + NetEventSource.Error(null, SR.Format(SR.net_log_operation_failed_with_error, op, $"0x{0:X}")); + } + } + + return errorCode; + } + finally + { + for (int i = 0; i < pinnedBuffers.Length; ++i) + { + if (pinnedBuffers[i].IsAllocated) + { + pinnedBuffers[i].Free(); + } + } + } + } + } + + public static SafeFreeContextBufferChannelBinding QueryContextChannelBinding(SSPIInterface secModule, SafeDeleteContext securityContext, Interop.SspiCli.ContextAttribute contextAttribute) + { + if (NetEventSource.IsEnabled) NetEventSource.Enter(null, contextAttribute); + + SafeFreeContextBufferChannelBinding result; + int errorCode = secModule.QueryContextChannelBinding(securityContext, contextAttribute, out result); + if (errorCode != 0) + { + if (NetEventSource.IsEnabled) NetEventSource.Exit(null, $"ERROR = {ErrorDescription(errorCode)}"); + return null; + } + + if (NetEventSource.IsEnabled) NetEventSource.Exit(null, result); + return result; + } + + public static bool QueryBlittableContextAttributes(SSPIInterface secModule, SafeDeleteContext securityContext, Interop.SspiCli.ContextAttribute contextAttribute, ref T attribute) where T : unmanaged + { + if (NetEventSource.IsEnabled) NetEventSource.Enter(null, contextAttribute); + + Span span = +#if netstandard + stackalloc T[1] { attribute }; +#else + MemoryMarshal.CreateSpan(ref attribute, 1); +#endif + int errorCode = secModule.QueryContextAttributes( + securityContext, contextAttribute, + MemoryMarshal.AsBytes(span), + null, + out SafeHandle sspiHandle); +#if netstandard + attribute = span[0]; +#endif + + using (sspiHandle) + { + if (errorCode != 0) + { + if (NetEventSource.IsEnabled) NetEventSource.Exit(null, $"ERROR = {ErrorDescription(errorCode)}"); + return false; + } + + if (NetEventSource.IsEnabled) NetEventSource.Exit(null, attribute); + return true; + } + } + + public static bool QueryBlittableContextAttributes(SSPIInterface secModule, SafeDeleteContext securityContext, Interop.SspiCli.ContextAttribute contextAttribute, Type safeHandleType, out SafeHandle sspiHandle, ref T attribute) where T : unmanaged + { + if (NetEventSource.IsEnabled) NetEventSource.Enter(null, contextAttribute); + + Span span = +#if netstandard + stackalloc T[1] { attribute }; +#else + MemoryMarshal.CreateSpan(ref attribute, 1); +#endif + int errorCode = secModule.QueryContextAttributes( + securityContext, contextAttribute, + MemoryMarshal.AsBytes(span), + safeHandleType, + out sspiHandle); +#if netstandard + attribute = span[0]; +#endif + + if (errorCode != 0) + { + if (NetEventSource.IsEnabled) NetEventSource.Exit(null, $"ERROR = {ErrorDescription(errorCode)}"); + return false; + } + + if (NetEventSource.IsEnabled) NetEventSource.Exit(null, attribute); + return true; + } + + public static string QueryStringContextAttributes(SSPIInterface secModule, SafeDeleteContext securityContext, Interop.SspiCli.ContextAttribute contextAttribute) + { + Debug.Assert( + contextAttribute == Interop.SspiCli.ContextAttribute.SECPKG_ATTR_NAMES || + contextAttribute == Interop.SspiCli.ContextAttribute.SECPKG_ATTR_CLIENT_SPECIFIED_TARGET); + + if (NetEventSource.IsEnabled) NetEventSource.Enter(null, contextAttribute); + + Span buffer = stackalloc IntPtr[1]; + int errorCode = secModule.QueryContextAttributes( + securityContext, + contextAttribute, + MemoryMarshal.AsBytes(buffer), + typeof(SafeFreeContextBuffer), + out SafeHandle sspiHandle); + using (sspiHandle) + { + if (errorCode != 0) + { + if (NetEventSource.IsEnabled) NetEventSource.Exit(null, $"ERROR = {ErrorDescription(errorCode)}"); + return null; + } + + string result = Marshal.PtrToStringUni(sspiHandle.DangerousGetHandle()); + if (NetEventSource.IsEnabled) NetEventSource.Exit(null, result); + return result; + } + } + + public static SafeFreeCertContext QueryContextAttributes_SECPKG_ATTR_REMOTE_CERT_CONTEXT(SSPIInterface secModule, SafeDeleteContext securityContext) + { + if (NetEventSource.IsEnabled) NetEventSource.Enter(null); + + Span buffer = stackalloc IntPtr[1]; + int errorCode = secModule.QueryContextAttributes( + securityContext, + Interop.SspiCli.ContextAttribute.SECPKG_ATTR_REMOTE_CERT_CONTEXT, + MemoryMarshal.AsBytes(buffer), + typeof(SafeFreeCertContext), + out SafeHandle sspiHandle); + + if (errorCode != 0) + { + sspiHandle?.Dispose(); + if (NetEventSource.IsEnabled) NetEventSource.Exit(null, $"ERROR = {ErrorDescription(errorCode)}"); + return null; + } + + var result = (SafeFreeCertContext)sspiHandle; + if (NetEventSource.IsEnabled) NetEventSource.Exit(null, result); + return result; + } + + public static bool QueryContextAttributes_SECPKG_ATTR_ISSUER_LIST_EX(SSPIInterface secModule, SafeDeleteContext securityContext, ref Interop.SspiCli.SecPkgContext_IssuerListInfoEx ctx, out SafeHandle sspiHandle) + { + if (NetEventSource.IsEnabled) NetEventSource.Enter(null); + + Span buffer = +#if netstandard + stackalloc Interop.SspiCli.SecPkgContext_IssuerListInfoEx[1] { ctx }; +#else + MemoryMarshal.CreateSpan(ref ctx, 1); +#endif + int errorCode = secModule.QueryContextAttributes( + securityContext, + Interop.SspiCli.ContextAttribute.SECPKG_ATTR_ISSUER_LIST_EX, + MemoryMarshal.AsBytes(buffer), + typeof(SafeFreeContextBuffer), + out sspiHandle); +#if netstandard + ctx = buffer[0]; +#endif + + if (errorCode != 0) + { + if (NetEventSource.IsEnabled) NetEventSource.Exit(null, $"ERROR = {ErrorDescription(errorCode)}"); + return false; + } + + if (NetEventSource.IsEnabled) NetEventSource.Exit(null, ctx); + return true; + } + + public static string ErrorDescription(int errorCode) + { + if (errorCode == -1) + { + return "An exception when invoking Win32 API"; + } + + switch ((Interop.SECURITY_STATUS)errorCode) + { + case Interop.SECURITY_STATUS.InvalidHandle: + return "Invalid handle"; + case Interop.SECURITY_STATUS.InvalidToken: + return "Invalid token"; + case Interop.SECURITY_STATUS.ContinueNeeded: + return "Continue needed"; + case Interop.SECURITY_STATUS.IncompleteMessage: + return "Message incomplete"; + case Interop.SECURITY_STATUS.WrongPrincipal: + return "Wrong principal"; + case Interop.SECURITY_STATUS.TargetUnknown: + return "Target unknown"; + case Interop.SECURITY_STATUS.PackageNotFound: + return "Package not found"; + case Interop.SECURITY_STATUS.BufferNotEnough: + return "Buffer not enough"; + case Interop.SECURITY_STATUS.MessageAltered: + return "Message altered"; + case Interop.SECURITY_STATUS.UntrustedRoot: + return "Untrusted root"; + default: + return "0x" + errorCode.ToString("x", NumberFormatInfo.InvariantInfo); + } + } + } // class SSPIWrapper +} diff --git a/src/Common/src/Interop/Windows/SspiCli/SafeDeleteContext.cs b/src/Common/src/Interop/Windows/SspiCli/SafeDeleteContext.cs new file mode 100644 index 000000000..cc9f80164 --- /dev/null +++ b/src/Common/src/Interop/Windows/SspiCli/SafeDeleteContext.cs @@ -0,0 +1,55 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using Microsoft.Win32.SafeHandles; + +using System.Diagnostics; +using System.Runtime.InteropServices; +using System.Security.Authentication.ExtendedProtection; + +namespace System.Net.Security +{ + // + // Implementation of handles that are dependent on DeleteSecurityContext + // +#if DEBUG + internal abstract partial class SafeDeleteContext : DebugSafeHandle + { +#else + internal abstract partial class SafeDeleteContext : SafeHandle + { +#endif + // + // ATN: _handle is internal since it is used on PInvokes by other wrapper methods. + // However all such wrappers MUST manually and reliably adjust refCounter of SafeDeleteContext handle. + // + internal Interop.SspiCli.CredHandle _handle; + + protected SafeDeleteContext() : base(IntPtr.Zero, true) + { + _handle = new Interop.SspiCli.CredHandle(); + } + + public override bool IsInvalid + { + get + { + return IsClosed || _handle.IsZero; + } + } + + public override string ToString() + { + return _handle.ToString(); + } + +#if DEBUG + //This method should never be called for this type + public new IntPtr DangerousGetHandle() + { + throw new InvalidOperationException(); + } +#endif + } +} diff --git a/src/Common/src/Interop/Windows/SspiCli/SecPkgContext_Bindings.cs b/src/Common/src/Interop/Windows/SspiCli/SecPkgContext_Bindings.cs new file mode 100644 index 000000000..eb31544de --- /dev/null +++ b/src/Common/src/Interop/Windows/SspiCli/SecPkgContext_Bindings.cs @@ -0,0 +1,16 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Runtime.InteropServices; + +namespace System.Net +{ + // sspi.h + [StructLayout(LayoutKind.Sequential)] + internal struct SecPkgContext_Bindings + { + internal int BindingsLength; + internal IntPtr Bindings; + } +} diff --git a/src/Common/src/Interop/Windows/SspiCli/SecPkgContext_NegotiationInfoW.cs b/src/Common/src/Interop/Windows/SspiCli/SecPkgContext_NegotiationInfoW.cs new file mode 100644 index 000000000..4dc03b53a --- /dev/null +++ b/src/Common/src/Interop/Windows/SspiCli/SecPkgContext_NegotiationInfoW.cs @@ -0,0 +1,16 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Runtime.InteropServices; + +namespace System.Net +{ + // sspi.h + [StructLayout(LayoutKind.Sequential)] + internal struct SecPkgContext_NegotiationInfoW + { + internal IntPtr PackageInfo; + internal uint NegotiationState; + } +} diff --git a/src/Common/src/Interop/Windows/SspiCli/SecPkgContext_Sizes.cs b/src/Common/src/Interop/Windows/SspiCli/SecPkgContext_Sizes.cs new file mode 100644 index 000000000..9dfaeb411 --- /dev/null +++ b/src/Common/src/Interop/Windows/SspiCli/SecPkgContext_Sizes.cs @@ -0,0 +1,18 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Runtime.InteropServices; + +namespace System.Net +{ + // sspi.h + [StructLayout(LayoutKind.Sequential)] + internal struct SecPkgContext_Sizes + { + public readonly int cbMaxToken; + public readonly int cbMaxSignature; + public readonly int cbBlockSize; + public readonly int cbSecurityTrailer; + } +} diff --git a/src/Common/src/Interop/Windows/SspiCli/SecPkgContext_StreamSizes.cs b/src/Common/src/Interop/Windows/SspiCli/SecPkgContext_StreamSizes.cs new file mode 100644 index 000000000..cf315dee8 --- /dev/null +++ b/src/Common/src/Interop/Windows/SspiCli/SecPkgContext_StreamSizes.cs @@ -0,0 +1,19 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Runtime.InteropServices; + +namespace System.Net +{ + // sspi.h + [StructLayout(LayoutKind.Sequential)] + internal struct SecPkgContext_StreamSizes + { + public int cbHeader; + public int cbTrailer; + public int cbMaximumMessage; + public int cBuffers; + public int cbBlockSize; + } +} diff --git a/src/Common/src/Interop/Windows/SspiCli/SecurityPackageInfo.cs b/src/Common/src/Interop/Windows/SspiCli/SecurityPackageInfo.cs new file mode 100644 index 000000000..3ec3c7fda --- /dev/null +++ b/src/Common/src/Interop/Windows/SspiCli/SecurityPackageInfo.cs @@ -0,0 +1,20 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Runtime.InteropServices; + +namespace System.Net +{ + [StructLayout(LayoutKind.Sequential)] + internal struct SecurityPackageInfo + { + // see SecPkgInfoW in + internal int Capabilities; + internal short Version; + internal short RPCID; + internal int MaxToken; + internal IntPtr Name; + internal IntPtr Comment; + } +} diff --git a/src/Common/src/Interop/Windows/SspiCli/SecuritySafeHandles.cs b/src/Common/src/Interop/Windows/SspiCli/SecuritySafeHandles.cs new file mode 100644 index 000000000..ae8a5262b --- /dev/null +++ b/src/Common/src/Interop/Windows/SspiCli/SecuritySafeHandles.cs @@ -0,0 +1,1066 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Diagnostics; +using System.Globalization; +using System.Runtime.InteropServices; +using System.Security.Authentication.ExtendedProtection; +using Microsoft.Win32.SafeHandles; + +namespace System.Net.Security +{ + // + // Used when working with SSPI APIs, like SafeSspiAuthDataHandle(). Holds the pointer to the auth data blob. + // +#if DEBUG + internal sealed class SafeSspiAuthDataHandle : DebugSafeHandle + { +#else + internal sealed class SafeSspiAuthDataHandle : SafeHandleZeroOrMinusOneIsInvalid + { +#endif + public SafeSspiAuthDataHandle() : base(true) + { + } + + protected override bool ReleaseHandle() + { + return Interop.SspiCli.SspiFreeAuthIdentity(handle) == Interop.SECURITY_STATUS.OK; + } + } + + // + // A set of Safe Handles that depend on native FreeContextBuffer finalizer. + // +#if DEBUG + internal abstract class SafeFreeContextBuffer : DebugSafeHandle + { +#else + internal abstract class SafeFreeContextBuffer : SafeHandleZeroOrMinusOneIsInvalid + { +#endif + protected SafeFreeContextBuffer() : base(true) { } + + // This must be ONLY called from this file. + internal void Set(IntPtr value) + { + this.handle = value; + } + + internal static int EnumeratePackages(out int pkgnum, out SafeFreeContextBuffer pkgArray) + { + int res = -1; + SafeFreeContextBuffer_SECURITY pkgArray_SECURITY = null; + res = Interop.SspiCli.EnumerateSecurityPackagesW(out pkgnum, out pkgArray_SECURITY); + pkgArray = pkgArray_SECURITY; + + if (res != 0) + { + pkgArray?.SetHandleAsInvalid(); + } + + return res; + } + + internal static SafeFreeContextBuffer CreateEmptyHandle() + { + return new SafeFreeContextBuffer_SECURITY(); + } + + // + // After PInvoke call the method will fix the refHandle.handle with the returned value. + // The caller is responsible for creating a correct SafeHandle template or null can be passed if no handle is returned. + // + // This method switches between three non-interruptible helper methods. (This method can't be both non-interruptible and + // reference imports from all three DLLs - doing so would cause all three DLLs to try to be bound to.) + // + public static unsafe int QueryContextAttributes(SafeDeleteContext phContext, Interop.SspiCli.ContextAttribute contextAttribute, byte* buffer, SafeHandle refHandle) + { + int status = (int)Interop.SECURITY_STATUS.InvalidHandle; + + try + { + bool ignore = false; + phContext.DangerousAddRef(ref ignore); + status = Interop.SspiCli.QueryContextAttributesW(ref phContext._handle, contextAttribute, buffer); + } + finally + { + phContext.DangerousRelease(); + } + + if (status == 0 && refHandle != null) + { + if (refHandle is SafeFreeContextBuffer) + { + ((SafeFreeContextBuffer)refHandle).Set(*(IntPtr*)buffer); + } + else + { + ((SafeFreeCertContext)refHandle).Set(*(IntPtr*)buffer); + } + } + + if (status != 0) + { + refHandle?.SetHandleAsInvalid(); + } + + return status; + } + + public static int SetContextAttributes( + SafeDeleteContext phContext, + Interop.SspiCli.ContextAttribute contextAttribute, byte[] buffer) + { + try + { + bool ignore = false; + phContext.DangerousAddRef(ref ignore); + return Interop.SspiCli.SetContextAttributesW(ref phContext._handle, contextAttribute, buffer, buffer.Length); + } + finally + { + phContext.DangerousRelease(); + } + } + } + + internal sealed class SafeFreeContextBuffer_SECURITY : SafeFreeContextBuffer + { + internal SafeFreeContextBuffer_SECURITY() : base() { } + + protected override bool ReleaseHandle() + { + return Interop.SspiCli.FreeContextBuffer(handle) == 0; + } + } + + // + // Implementation of handles required CertFreeCertificateContext + // +#if DEBUG + internal sealed class SafeFreeCertContext : DebugSafeHandle + { +#else + internal sealed class SafeFreeCertContext : SafeHandleZeroOrMinusOneIsInvalid + { +#endif + + internal SafeFreeCertContext() : base(true) { } + + // This must be ONLY called from this file. + internal void Set(IntPtr value) + { + this.handle = value; + } + + private const uint CRYPT_ACQUIRE_SILENT_FLAG = 0x00000040; + + protected override bool ReleaseHandle() + { + Interop.Crypt32.CertFreeCertificateContext(handle); + return true; + } + } + + // + // Implementation of handles dependable on FreeCredentialsHandle + // +#if DEBUG + internal abstract class SafeFreeCredentials : DebugSafeHandle + { +#else + internal abstract class SafeFreeCredentials : SafeHandle + { +#endif + + internal Interop.SspiCli.CredHandle _handle; //should be always used as by ref in PInvokes parameters + + protected SafeFreeCredentials() : base(IntPtr.Zero, true) + { + _handle = new Interop.SspiCli.CredHandle(); + } + +#if TRACE_VERBOSE + public override string ToString() + { + return "0x" + _handle.ToString(); + } +#endif + + public override bool IsInvalid + { + get { return IsClosed || _handle.IsZero; } + } + +#if DEBUG + public new IntPtr DangerousGetHandle() + { + Debug.Fail("This method should never be called for this type"); + throw NotImplemented.ByDesign; + } +#endif + + public static unsafe int AcquireDefaultCredential( + string package, + Interop.SspiCli.CredentialUse intent, + out SafeFreeCredentials outCredential) + { + if (NetEventSource.IsEnabled) NetEventSource.Enter(null, package, intent); + + int errorCode = -1; + long timeStamp; + + outCredential = new SafeFreeCredential_SECURITY(); + + errorCode = Interop.SspiCli.AcquireCredentialsHandleW( + null, + package, + (int)intent, + null, + IntPtr.Zero, + null, + null, + ref outCredential._handle, + out timeStamp); + +#if TRACE_VERBOSE + if (NetEventSource.IsEnabled) NetEventSource.Info(null, $"{nameof(Interop.SspiCli.AcquireCredentialsHandleW)} returns 0x{errorCode:x}, handle = {outCredential}"); +#endif + + if (errorCode != 0) + { + outCredential.SetHandleAsInvalid(); + } + + return errorCode; + } + + public static unsafe int AcquireCredentialsHandle( + string package, + Interop.SspiCli.CredentialUse intent, + ref SafeSspiAuthDataHandle authdata, + out SafeFreeCredentials outCredential) + { + int errorCode = -1; + long timeStamp; + + outCredential = new SafeFreeCredential_SECURITY(); + errorCode = Interop.SspiCli.AcquireCredentialsHandleW( + null, + package, + (int)intent, + null, + authdata, + null, + null, + ref outCredential._handle, + out timeStamp); + + if (errorCode != 0) + { + outCredential.SetHandleAsInvalid(); + } + + return errorCode; + } + + public static unsafe int AcquireCredentialsHandle( + string package, + Interop.SspiCli.CredentialUse intent, + ref Interop.SspiCli.SCHANNEL_CRED authdata, + out SafeFreeCredentials outCredential) + { + if (NetEventSource.IsEnabled) NetEventSource.Enter(null, package, intent, authdata); + + int errorCode = -1; + long timeStamp; + + + // If there is a certificate, wrap it into an array. + // Not threadsafe. + IntPtr copiedPtr = authdata.paCred; + try + { + IntPtr certArrayPtr = new IntPtr(&copiedPtr); + if (copiedPtr != IntPtr.Zero) + { + authdata.paCred = certArrayPtr; + } + + outCredential = new SafeFreeCredential_SECURITY(); + + errorCode = Interop.SspiCli.AcquireCredentialsHandleW( + null, + package, + (int)intent, + null, + ref authdata, + null, + null, + ref outCredential._handle, + out timeStamp); + } + finally + { + authdata.paCred = copiedPtr; + } + +#if TRACE_VERBOSE + if (NetEventSource.IsEnabled) NetEventSource.Info(null, $"{nameof(Interop.SspiCli.AcquireCredentialsHandleW)} returns 0x{errorCode:x}, handle = {outCredential}"); +#endif + + if (errorCode != 0) + { + outCredential.SetHandleAsInvalid(); + } + + return errorCode; + } + } + + // + // This is a class holding a Credential handle reference, used for static handles cache + // +#if DEBUG + internal sealed class SafeCredentialReference : DebugCriticalHandleMinusOneIsInvalid + { +#else + internal sealed class SafeCredentialReference : CriticalHandleMinusOneIsInvalid + { +#endif + + // + // Static cache will return the target handle if found the reference in the table. + // + internal SafeFreeCredentials Target; + + internal static SafeCredentialReference CreateReference(SafeFreeCredentials target) + { + SafeCredentialReference result = new SafeCredentialReference(target); + if (result.IsInvalid) + { + return null; + } + + return result; + } + private SafeCredentialReference(SafeFreeCredentials target) : base() + { + // Bumps up the refcount on Target to signify that target handle is statically cached so + // its dispose should be postponed + bool ignore = false; + target.DangerousAddRef(ref ignore); + Target = target; + SetHandle(new IntPtr(0)); // make this handle valid + } + + protected override bool ReleaseHandle() + { + SafeFreeCredentials target = Target; + target?.DangerousRelease(); + Target = null; + return true; + } + } + + internal sealed class SafeFreeCredential_SECURITY : SafeFreeCredentials + { + public SafeFreeCredential_SECURITY() : base() { } + + protected override bool ReleaseHandle() + { + return Interop.SspiCli.FreeCredentialsHandle(ref _handle) == 0; + } + } + + // + // Implementation of handles that are dependent on DeleteSecurityContext + // +#if DEBUG + internal abstract partial class SafeDeleteContext : DebugSafeHandle + { +#else + internal abstract partial class SafeDeleteContext : SafeHandle + { +#endif + private const string dummyStr = " "; + private static readonly IdnMapping s_idnMapping = new IdnMapping(); + + protected SafeFreeCredentials _EffectiveCredential; + + //------------------------------------------------------------------- + internal static unsafe int InitializeSecurityContext( + ref SafeFreeCredentials inCredentials, + ref SafeDeleteContext refContext, + string targetName, + Interop.SspiCli.ContextFlags inFlags, + Interop.SspiCli.Endianness endianness, + ReadOnlySpan inSecBuffers, + ref SecurityBuffer outSecBuffer, + ref Interop.SspiCli.ContextFlags outFlags) + { +#if TRACE_VERBOSE + if (NetEventSource.IsEnabled) + { + NetEventSource.Enter(null, $"credential:{inCredentials}, crefContext:{refContext}, targetName:{targetName}, inFlags:{inFlags}, endianness:{endianness}"); + NetEventSource.Info(null, $"inSecBuffers.Length = {inSecBuffers.Length}"); + } +#endif + + if (inCredentials == null) + { + throw new ArgumentNullException(nameof(inCredentials)); + } + + Interop.SspiCli.SecBufferDesc inSecurityBufferDescriptor = new Interop.SspiCli.SecBufferDesc(inSecBuffers.Length); + Interop.SspiCli.SecBufferDesc outSecurityBufferDescriptor = new Interop.SspiCli.SecBufferDesc(1); + + // Actually, this is returned in outFlags. + bool isSspiAllocated = (inFlags & Interop.SspiCli.ContextFlags.AllocateMemory) != 0 ? true : false; + + int errorCode = -1; + + bool isContextAbsent = true; + if (refContext != null) + { + isContextAbsent = refContext._handle.IsZero; + } + + // Optional output buffer that may need to be freed. + SafeFreeContextBuffer outFreeContextBuffer = null; + try + { + Span inUnmanagedBuffer = stackalloc Interop.SspiCli.SecBuffer[inSecurityBufferDescriptor.cBuffers]; + inUnmanagedBuffer.Clear(); + + fixed (void* inUnmanagedBufferPtr = inUnmanagedBuffer) + fixed (void* pinnedToken0 = inSecBuffers.Length > 0 ? inSecBuffers[0].token : null) + fixed (void* pinnedToken1 = inSecBuffers.Length > 1 ? inSecBuffers[1].token : null) + fixed (void* pinnedToken2 = inSecBuffers.Length > 2 ? inSecBuffers[2].token : null) // pin all buffers, even if null or not used, to avoid needing to allocate GCHandles + { + Debug.Assert(inSecBuffers.Length <= 3); + + // Fix Descriptor pointer that points to unmanaged SecurityBuffers. + inSecurityBufferDescriptor.pBuffers = inUnmanagedBufferPtr; + for (int index = 0; index < inSecurityBufferDescriptor.cBuffers; ++index) + { + ref readonly SecurityBuffer securityBuffer = ref inSecBuffers[index]; + + // Copy the SecurityBuffer content into unmanaged place holder. + inUnmanagedBuffer[index].cbBuffer = securityBuffer.size; + inUnmanagedBuffer[index].BufferType = securityBuffer.type; + + // Use the unmanaged token if it's not null; otherwise use the managed buffer. + inUnmanagedBuffer[index].pvBuffer = + securityBuffer.unmanagedToken != null ? securityBuffer.unmanagedToken.DangerousGetHandle() : + securityBuffer.token == null || securityBuffer.token.Length == 0 ? IntPtr.Zero : + Marshal.UnsafeAddrOfPinnedArrayElement(securityBuffer.token, securityBuffer.offset); +#if TRACE_VERBOSE + if (NetEventSource.IsEnabled) NetEventSource.Info(null, $"SecBuffer: cbBuffer:{securityBuffer.size} BufferType:{securityBuffer.type}"); +#endif + } + + fixed (byte* pinnedOutBytes = outSecBuffer.token) + { + // Fix Descriptor pointer that points to unmanaged SecurityBuffers. + Interop.SspiCli.SecBuffer outUnmanagedBuffer = default; + outSecurityBufferDescriptor.pBuffers = &outUnmanagedBuffer; + outUnmanagedBuffer.cbBuffer = outSecBuffer.size; + outUnmanagedBuffer.BufferType = outSecBuffer.type; + outUnmanagedBuffer.pvBuffer = outSecBuffer.token == null || outSecBuffer.token.Length == 0 ? + IntPtr.Zero : + (IntPtr)(pinnedOutBytes + outSecBuffer.offset); + + if (isSspiAllocated) + { + outFreeContextBuffer = SafeFreeContextBuffer.CreateEmptyHandle(); + } + + if (refContext == null || refContext.IsInvalid) + { + // Previous versions unconditionally built a new "refContext" here, but would pass + // incorrect arguments to InitializeSecurityContextW in cases where an "contextHandle" was + // already present and non-zero. + if (isContextAbsent) + refContext = new SafeDeleteContext_SECURITY(); + } + + if (targetName == null || targetName.Length == 0) + { + targetName = dummyStr; + } + + string punyCode = s_idnMapping.GetAscii(targetName); + fixed (char* namePtr = punyCode) + { + errorCode = MustRunInitializeSecurityContext( + ref inCredentials, + isContextAbsent, + (byte*)(((object)targetName == (object)dummyStr) ? null : namePtr), + inFlags, + endianness, + &inSecurityBufferDescriptor, + refContext, + ref outSecurityBufferDescriptor, + ref outFlags, + outFreeContextBuffer); + } + + if (NetEventSource.IsEnabled) NetEventSource.Info(null, "Marshalling OUT buffer"); + + // Get unmanaged buffer with index 0 as the only one passed into PInvoke. + outSecBuffer.size = outUnmanagedBuffer.cbBuffer; + outSecBuffer.type = outUnmanagedBuffer.BufferType; + outSecBuffer.token = outSecBuffer.size > 0 ? + new Span((byte*)outUnmanagedBuffer.pvBuffer, outUnmanagedBuffer.cbBuffer).ToArray() : + null; + } + } + } + finally + { + outFreeContextBuffer?.Dispose(); + } + + if (NetEventSource.IsEnabled) NetEventSource.Exit(null, $"errorCode:0x{errorCode:x8}, refContext:{refContext}"); + return errorCode; + } + + // + // After PInvoke call the method will fix the handleTemplate.handle with the returned value. + // The caller is responsible for creating a correct SafeFreeContextBuffer_XXX flavor or null can be passed if no handle is returned. + // + private static unsafe int MustRunInitializeSecurityContext( + ref SafeFreeCredentials inCredentials, + bool isContextAbsent, + byte* targetName, + Interop.SspiCli.ContextFlags inFlags, + Interop.SspiCli.Endianness endianness, + Interop.SspiCli.SecBufferDesc* inputBuffer, + SafeDeleteContext outContext, + ref Interop.SspiCli.SecBufferDesc outputBuffer, + ref Interop.SspiCli.ContextFlags attributes, + SafeFreeContextBuffer handleTemplate) + { + int errorCode = (int)Interop.SECURITY_STATUS.InvalidHandle; + + try + { + bool ignore = false; + inCredentials.DangerousAddRef(ref ignore); + outContext.DangerousAddRef(ref ignore); + + Interop.SspiCli.CredHandle credentialHandle = inCredentials._handle; + + long timeStamp; + + // Now that "outContext" (or "refContext" by the caller) references an actual handle (and cannot + // be closed until it is released below), point "inContextPtr" to its embedded handle (or + // null if the embedded handle has not yet been initialized). + Interop.SspiCli.CredHandle contextHandle = outContext._handle; + void* inContextPtr = contextHandle.IsZero ? null : &contextHandle; + + // The "isContextAbsent" supplied by the caller is generally correct but was computed without proper + // synchronization. Rewrite the indicator now that the final "inContext" is known, update if necessary. + isContextAbsent = (inContextPtr == null); + + errorCode = Interop.SspiCli.InitializeSecurityContextW( + ref credentialHandle, + inContextPtr, + targetName, + inFlags, + 0, + endianness, + inputBuffer, + 0, + ref outContext._handle, + ref outputBuffer, + ref attributes, + out timeStamp); + } + finally + { + // + // When a credential handle is first associated with the context we keep credential + // ref count bumped up to ensure ordered finalization. + // If the credential handle has been changed we de-ref the old one and associate the + // context with the new cred handle but only if the call was successful. + if (outContext._EffectiveCredential != inCredentials && (errorCode & 0x80000000) == 0) + { + // Disassociate the previous credential handle + outContext._EffectiveCredential?.DangerousRelease(); + outContext._EffectiveCredential = inCredentials; + } + else + { + inCredentials.DangerousRelease(); + } + + outContext.DangerousRelease(); + } + + // The idea is that SSPI has allocated a block and filled up outUnmanagedBuffer+8 slot with the pointer. + if (handleTemplate != null) + { + //ATTN: on 64 BIT that is still +8 cause of 2* c++ unsigned long == 8 bytes + handleTemplate.Set(((Interop.SspiCli.SecBuffer*)outputBuffer.pBuffers)->pvBuffer); + if (handleTemplate.IsInvalid) + { + handleTemplate.SetHandleAsInvalid(); + } + } + + if (isContextAbsent && (errorCode & 0x80000000) != 0) + { + // an error on the first call, need to set the out handle to invalid value + outContext._handle.SetToInvalid(); + } + + return errorCode; + } + + //------------------------------------------------------------------- + internal static unsafe int AcceptSecurityContext( + ref SafeFreeCredentials inCredentials, + ref SafeDeleteContext refContext, + Interop.SspiCli.ContextFlags inFlags, + Interop.SspiCli.Endianness endianness, + ReadOnlySpan inSecBuffers, + ref SecurityBuffer outSecBuffer, + ref Interop.SspiCli.ContextFlags outFlags) + { +#if TRACE_VERBOSE + if (NetEventSource.IsEnabled) + { + NetEventSource.Enter(null, $"credential={inCredentials}, refContext={refContext}, inFlags={inFlags}"); + NetEventSource.Info(null, $"inSecBuffers.Length = {inSecBuffers.Length}"); + } +#endif + + if (inCredentials == null) + { + throw new ArgumentNullException(nameof(inCredentials)); + } + + Interop.SspiCli.SecBufferDesc inSecurityBufferDescriptor = new Interop.SspiCli.SecBufferDesc(inSecBuffers.Length); + Interop.SspiCli.SecBufferDesc outSecurityBufferDescriptor = new Interop.SspiCli.SecBufferDesc(1); + + // Actually, this is returned in outFlags. + bool isSspiAllocated = (inFlags & Interop.SspiCli.ContextFlags.AllocateMemory) != 0 ? true : false; + + int errorCode = -1; + + bool isContextAbsent = true; + if (refContext != null) + { + isContextAbsent = refContext._handle.IsZero; + } + + // Optional output buffer that may need to be freed. + SafeFreeContextBuffer outFreeContextBuffer = null; + try + { + Span inUnmanagedBuffer = stackalloc Interop.SspiCli.SecBuffer[inSecurityBufferDescriptor.cBuffers]; + inUnmanagedBuffer.Clear(); + + fixed (void* inUnmanagedBufferPtr = inUnmanagedBuffer) + fixed (void* pinnedToken0 = inSecBuffers.Length > 0 ? inSecBuffers[0].token : null) + fixed (void* pinnedToken1 = inSecBuffers.Length > 1 ? inSecBuffers[1].token : null) + fixed (void* pinnedToken2 = inSecBuffers.Length > 2 ? inSecBuffers[2].token : null) // pin all buffers, even if null or not used, to avoid needing to allocate GCHandles + { + Debug.Assert(inSecBuffers.Length <= 3); + + // Fix Descriptor pointer that points to unmanaged SecurityBuffers. + inSecurityBufferDescriptor.pBuffers = inUnmanagedBufferPtr; + for (int index = 0; index < inSecurityBufferDescriptor.cBuffers; ++index) + { + ref readonly SecurityBuffer securityBuffer = ref inSecBuffers[index]; + + // Copy the SecurityBuffer content into unmanaged place holder. + inUnmanagedBuffer[index].cbBuffer = securityBuffer.size; + inUnmanagedBuffer[index].BufferType = securityBuffer.type; + + // Use the unmanaged token if it's not null; otherwise use the managed buffer. + inUnmanagedBuffer[index].pvBuffer = + securityBuffer.unmanagedToken != null ? securityBuffer.unmanagedToken.DangerousGetHandle() : + securityBuffer.token == null || securityBuffer.token.Length == 0 ? IntPtr.Zero : + Marshal.UnsafeAddrOfPinnedArrayElement(securityBuffer.token, securityBuffer.offset); +#if TRACE_VERBOSE + if (NetEventSource.IsEnabled) NetEventSource.Info(null, $"SecBuffer: cbBuffer:{securityBuffer.size} BufferType:{securityBuffer.type}"); +#endif + } + + fixed (byte* pinnedOutBytes = outSecBuffer.token) + { + // Fix Descriptor pointer that points to unmanaged SecurityBuffers. + Interop.SspiCli.SecBuffer outUnmanagedBuffer = default; + outSecurityBufferDescriptor.pBuffers = &outUnmanagedBuffer; + + // Copy the SecurityBuffer content into unmanaged place holder. + outUnmanagedBuffer.cbBuffer = outSecBuffer.size; + outUnmanagedBuffer.BufferType = outSecBuffer.type; + outUnmanagedBuffer.pvBuffer = outSecBuffer.token == null || outSecBuffer.token.Length == 0 ? + IntPtr.Zero : + (IntPtr)(pinnedOutBytes + outSecBuffer.offset); + + if (isSspiAllocated) + { + outFreeContextBuffer = SafeFreeContextBuffer.CreateEmptyHandle(); + } + + if (refContext == null || refContext.IsInvalid) + { + // Previous versions unconditionally built a new "refContext" here, but would pass + // incorrect arguments to AcceptSecurityContext in cases where an "contextHandle" was + // already present and non-zero. + if (isContextAbsent) + refContext = new SafeDeleteContext_SECURITY(); + } + + errorCode = MustRunAcceptSecurityContext_SECURITY( + ref inCredentials, + isContextAbsent, + &inSecurityBufferDescriptor, + inFlags, + endianness, + refContext, + ref outSecurityBufferDescriptor, + ref outFlags, + outFreeContextBuffer); + + if (NetEventSource.IsEnabled) NetEventSource.Info(null, "Marshaling OUT buffer"); + + // Get unmanaged buffer with index 0 as the only one passed into PInvoke. + outSecBuffer.size = outUnmanagedBuffer.cbBuffer; + outSecBuffer.type = outUnmanagedBuffer.BufferType; + outSecBuffer.token = outUnmanagedBuffer.cbBuffer > 0 ? + new Span((byte*)outUnmanagedBuffer.pvBuffer, outUnmanagedBuffer.cbBuffer).ToArray() : + null; + } + } + } + finally + { + outFreeContextBuffer?.Dispose(); + } + + if (NetEventSource.IsEnabled) NetEventSource.Exit(null, $"errorCode:0x{errorCode:x8}, refContext:{refContext}"); + return errorCode; + } + + // + // After PInvoke call the method will fix the handleTemplate.handle with the returned value. + // The caller is responsible for creating a correct SafeFreeContextBuffer_XXX flavor or null can be passed if no handle is returned. + // + private static unsafe int MustRunAcceptSecurityContext_SECURITY( + ref SafeFreeCredentials inCredentials, + bool isContextAbsent, + Interop.SspiCli.SecBufferDesc* inputBuffer, + Interop.SspiCli.ContextFlags inFlags, + Interop.SspiCli.Endianness endianness, + SafeDeleteContext outContext, + ref Interop.SspiCli.SecBufferDesc outputBuffer, + ref Interop.SspiCli.ContextFlags outFlags, + SafeFreeContextBuffer handleTemplate) + { + int errorCode = (int)Interop.SECURITY_STATUS.InvalidHandle; + + // Run the body of this method as a non-interruptible block. + try + { + bool ignore = false; + + inCredentials.DangerousAddRef(ref ignore); + outContext.DangerousAddRef(ref ignore); + + Interop.SspiCli.CredHandle credentialHandle = inCredentials._handle; + long timeStamp; + + // Now that "outContext" (or "refContext" by the caller) references an actual handle (and cannot + // be closed until it is released below), point "inContextPtr" to its embedded handle (or + // null if the embedded handle has not yet been initialized). + Interop.SspiCli.CredHandle contextHandle = outContext._handle; + void* inContextPtr = contextHandle.IsZero ? null : &contextHandle; + + // The "isContextAbsent" supplied by the caller is generally correct but was computed without proper + // synchronization. Rewrite the indicator now that the final "inContext" is known, update if necessary. + isContextAbsent = (inContextPtr == null); + + errorCode = Interop.SspiCli.AcceptSecurityContext( + ref credentialHandle, + inContextPtr, + inputBuffer, + inFlags, + endianness, + ref outContext._handle, + ref outputBuffer, + ref outFlags, + out timeStamp); + } + finally + { + // + // When a credential handle is first associated with the context we keep credential + // ref count bumped up to ensure ordered finalization. + // If the credential handle has been changed we de-ref the old one and associate the + // context with the new cred handle but only if the call was successful. + if (outContext._EffectiveCredential != inCredentials && (errorCode & 0x80000000) == 0) + { + // Disassociate the previous credential handle. + outContext._EffectiveCredential?.DangerousRelease(); + outContext._EffectiveCredential = inCredentials; + } + else + { + inCredentials.DangerousRelease(); + } + + outContext.DangerousRelease(); + } + + // The idea is that SSPI has allocated a block and filled up outUnmanagedBuffer+8 slot with the pointer. + if (handleTemplate != null) + { + //ATTN: on 64 BIT that is still +8 cause of 2* c++ unsigned long == 8 bytes. + handleTemplate.Set(((Interop.SspiCli.SecBuffer*)outputBuffer.pBuffers)->pvBuffer); + if (handleTemplate.IsInvalid) + { + handleTemplate.SetHandleAsInvalid(); + } + } + + if (isContextAbsent && (errorCode & 0x80000000) != 0) + { + // An error on the first call, need to set the out handle to invalid value. + outContext._handle.SetToInvalid(); + } + + return errorCode; + } + + internal static unsafe int CompleteAuthToken( + ref SafeDeleteContext refContext, + in SecurityBuffer inSecBuffer) + { + if (NetEventSource.IsEnabled) + { + NetEventSource.Enter(null, "SafeDeleteContext::CompleteAuthToken"); + NetEventSource.Info(null, $" refContext = {refContext}"); + NetEventSource.Info(null, $" inSecBuffer = {inSecBuffer}"); + } + + var inSecurityBufferDescriptor = new Interop.SspiCli.SecBufferDesc(1); + int errorCode = (int)Interop.SECURITY_STATUS.InvalidHandle; + + Interop.SspiCli.SecBuffer inUnmanagedBuffer = default; + inSecurityBufferDescriptor.pBuffers = &inUnmanagedBuffer; + fixed (byte* pinnedToken = inSecBuffer.token) + { + inUnmanagedBuffer.cbBuffer = inSecBuffer.size; + inUnmanagedBuffer.BufferType = inSecBuffer.type; + + // Use the unmanaged token if it's not null; otherwise use the managed buffer. + inUnmanagedBuffer.pvBuffer = + inSecBuffer.unmanagedToken != null ? inSecBuffer.unmanagedToken.DangerousGetHandle() : + inSecBuffer.token == null || inSecBuffer.token.Length == 0 ? IntPtr.Zero : + (IntPtr)(pinnedToken + inSecBuffer.offset); +#if TRACE_VERBOSE + if (NetEventSource.IsEnabled) NetEventSource.Info(null, $"SecBuffer: cbBuffer:{inSecBuffer.size} BufferType: {inSecBuffer.type}"); +#endif + + Interop.SspiCli.CredHandle contextHandle = refContext != null ? refContext._handle : default; + if (refContext == null || refContext.IsInvalid) + { + // Previous versions unconditionally built a new "refContext" here, but would pass + // incorrect arguments to CompleteAuthToken in cases where a nonzero "contextHandle" was + // already present. In these cases, allow the "refContext" to flow through unmodified + // (which will generate an ObjectDisposedException below). In all other cases, continue to + // build a new "refContext" in an attempt to maximize compat. + if (contextHandle.IsZero) + { + refContext = new SafeDeleteContext_SECURITY(); + } + } + + bool gotRef = false; + try + { + refContext.DangerousAddRef(ref gotRef); + errorCode = Interop.SspiCli.CompleteAuthToken(contextHandle.IsZero ? null : &contextHandle, ref inSecurityBufferDescriptor); + } + finally + { + if (gotRef) + { + refContext.DangerousRelease(); + } + } + } + + if (NetEventSource.IsEnabled) NetEventSource.Exit(null, $"unmanaged CompleteAuthToken() errorCode:0x{errorCode:x8} refContext:{refContext}"); + return errorCode; + } + + internal static unsafe int ApplyControlToken( + ref SafeDeleteContext refContext, + in SecurityBuffer inSecBuffer) + { + if (NetEventSource.IsEnabled) + { + NetEventSource.Enter(null); + NetEventSource.Info(null, $" refContext = {refContext}"); + NetEventSource.Info(null, $" inSecBuffer = {inSecBuffer}"); + } + + int errorCode = (int)Interop.SECURITY_STATUS.InvalidHandle; + + // Fix Descriptor pointer that points to unmanaged SecurityBuffers. + fixed (byte* pinnedInSecBufferToken = inSecBuffer.token) + { + var inSecurityBufferDescriptor = new Interop.SspiCli.SecBufferDesc(1); + Interop.SspiCli.SecBuffer inUnmanagedBuffer = default; + inSecurityBufferDescriptor.pBuffers = &inUnmanagedBuffer; + inUnmanagedBuffer.cbBuffer = inSecBuffer.size; + inUnmanagedBuffer.BufferType = inSecBuffer.type; + + // Use the unmanaged token if it's not null; otherwise use the managed buffer. + inUnmanagedBuffer.pvBuffer = + inSecBuffer.unmanagedToken != null ? inSecBuffer.unmanagedToken.DangerousGetHandle() : + inSecBuffer.token == null || inSecBuffer.token.Length == 0 ? IntPtr.Zero : + (IntPtr)(pinnedInSecBufferToken + inSecBuffer.offset); +#if TRACE_VERBOSE + if (NetEventSource.IsEnabled) NetEventSource.Info(null, $"SecBuffer: cbBuffer:{inSecBuffer.size} BufferType:{inSecBuffer.type}"); +#endif + + Interop.SspiCli.CredHandle contextHandle = refContext != null ? refContext._handle : default; + + if (refContext == null || refContext.IsInvalid) + { + // Previous versions unconditionally built a new "refContext" here, but would pass + // incorrect arguments to ApplyControlToken in cases where a nonzero "contextHandle" was + // already present. In these cases, allow the "refContext" to flow through unmodified + // (which will generate an ObjectDisposedException below). In all other cases, continue to + // build a new "refContext" in an attempt to maximize compat. + if (contextHandle.IsZero) + { + refContext = new SafeDeleteContext_SECURITY(); + } + } + + bool gotRef = false; + try + { + refContext.DangerousAddRef(ref gotRef); + errorCode = Interop.SspiCli.ApplyControlToken(contextHandle.IsZero ? null : &contextHandle, ref inSecurityBufferDescriptor); + } + finally + { + if (gotRef) + { + refContext.DangerousRelease(); + } + } + } + + if (NetEventSource.IsEnabled) NetEventSource.Exit(null, $"unmanaged ApplyControlToken() errorCode:0x{errorCode:x8} refContext: {refContext}"); + return errorCode; + } + } + + internal sealed class SafeDeleteContext_SECURITY : SafeDeleteContext + { + internal SafeDeleteContext_SECURITY() : base() { } + + protected override bool ReleaseHandle() + { + this._EffectiveCredential?.DangerousRelease(); + return Interop.SspiCli.DeleteSecurityContext(ref _handle) == 0; + } + } + + // Based on SafeFreeContextBuffer. + internal abstract class SafeFreeContextBufferChannelBinding : ChannelBinding + { + private int _size; + + public override int Size + { + get { return _size; } + } + + public override bool IsInvalid + { + get { return handle == new IntPtr(0) || handle == new IntPtr(-1); } + } + + internal unsafe void Set(IntPtr value) + { + this.handle = value; + } + + internal static SafeFreeContextBufferChannelBinding CreateEmptyHandle() + { + return new SafeFreeContextBufferChannelBinding_SECURITY(); + } + + public static unsafe int QueryContextChannelBinding(SafeDeleteContext phContext, Interop.SspiCli.ContextAttribute contextAttribute, SecPkgContext_Bindings* buffer, SafeFreeContextBufferChannelBinding refHandle) + { + int status = (int)Interop.SECURITY_STATUS.InvalidHandle; + + // SCHANNEL only supports SECPKG_ATTR_ENDPOINT_BINDINGS and SECPKG_ATTR_UNIQUE_BINDINGS which + // map to our enum ChannelBindingKind.Endpoint and ChannelBindingKind.Unique. + if (contextAttribute != Interop.SspiCli.ContextAttribute.SECPKG_ATTR_ENDPOINT_BINDINGS && + contextAttribute != Interop.SspiCli.ContextAttribute.SECPKG_ATTR_UNIQUE_BINDINGS) + { + return status; + } + + try + { + bool ignore = false; + phContext.DangerousAddRef(ref ignore); + status = Interop.SspiCli.QueryContextAttributesW(ref phContext._handle, contextAttribute, buffer); + } + finally + { + phContext.DangerousRelease(); + } + + if (status == 0 && refHandle != null) + { + refHandle.Set((*buffer).Bindings); + refHandle._size = (*buffer).BindingsLength; + } + + if (status != 0) + { + refHandle?.SetHandleAsInvalid(); + } + + return status; + } + + public override string ToString() + { + if (IsInvalid) + { + return null; + } + + var bytes = new byte[_size]; + Marshal.Copy(handle, bytes, 0, bytes.Length); + return BitConverter.ToString(bytes).Replace('-', ' '); + } + } + + internal sealed class SafeFreeContextBufferChannelBinding_SECURITY : SafeFreeContextBufferChannelBinding + { + protected override bool ReleaseHandle() + { + return Interop.SspiCli.FreeContextBuffer(handle) == 0; + } + } +} diff --git a/src/Common/src/Microsoft/Win32/SafeHandles/GssSafeHandles.cs b/src/Common/src/Microsoft/Win32/SafeHandles/GssSafeHandles.cs new file mode 100644 index 000000000..aa3727c1c --- /dev/null +++ b/src/Common/src/Microsoft/Win32/SafeHandles/GssSafeHandles.cs @@ -0,0 +1,164 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using System.Diagnostics; +using System.Runtime.InteropServices; +using System.Text; + +namespace Microsoft.Win32.SafeHandles +{ + /// + /// Wrapper around a gss_name_t_desc* + /// + internal sealed class SafeGssNameHandle : SafeHandle + { + public static SafeGssNameHandle CreateUser(string name) + { + Debug.Assert(!string.IsNullOrEmpty(name), "Invalid user name passed to SafeGssNameHandle create"); + SafeGssNameHandle retHandle; + Interop.NetSecurityNative.Status minorStatus; + Interop.NetSecurityNative.Status status = Interop.NetSecurityNative.ImportUserName( + out minorStatus, name, Encoding.UTF8.GetByteCount(name), out retHandle); + + if (status != Interop.NetSecurityNative.Status.GSS_S_COMPLETE) + { + retHandle.Dispose(); + throw new Interop.NetSecurityNative.GssApiException(status, minorStatus); + } + + return retHandle; + } + + public static SafeGssNameHandle CreateTarget(string name) + { + Debug.Assert(!string.IsNullOrEmpty(name), "Invalid target name passed to SafeGssNameHandle create"); + SafeGssNameHandle retHandle; + Interop.NetSecurityNative.Status minorStatus; + Interop.NetSecurityNative.Status status = Interop.NetSecurityNative.ImportPrincipalName( + out minorStatus, name, Encoding.UTF8.GetByteCount(name), out retHandle); + + if (status != Interop.NetSecurityNative.Status.GSS_S_COMPLETE) + { + retHandle.Dispose(); + throw new Interop.NetSecurityNative.GssApiException(status, minorStatus); + } + + return retHandle; + } + + public override bool IsInvalid + { + get { return handle == IntPtr.Zero; } + } + + protected override bool ReleaseHandle() + { + Interop.NetSecurityNative.Status minorStatus; + Interop.NetSecurityNative.Status status = Interop.NetSecurityNative.ReleaseName(out minorStatus, ref handle); + SetHandle(IntPtr.Zero); + return status == Interop.NetSecurityNative.Status.GSS_S_COMPLETE; + } + + private SafeGssNameHandle() + : base(IntPtr.Zero, true) + { + } + } + + /// + /// Wrapper around a gss_cred_id_t_desc_struct* + /// + internal class SafeGssCredHandle : SafeHandle + { + private static readonly Lazy s_IsNtlmInstalled = new Lazy(InitIsNtlmInstalled); + + /// + /// returns the handle for the given credentials. + /// The method returns an invalid handle if the username is null or empty. + /// + public static SafeGssCredHandle Create(string username, string password, bool isNtlmOnly) + { + if (isNtlmOnly && !s_IsNtlmInstalled.Value) + { + throw new Interop.NetSecurityNative.GssApiException( + Interop.NetSecurityNative.Status.GSS_S_BAD_MECH, + 0, + SR.net_gssapi_ntlm_missing_plugin); + } + + if (string.IsNullOrEmpty(username)) + { + return new SafeGssCredHandle(); + } + + SafeGssCredHandle retHandle = null; + using (SafeGssNameHandle userHandle = SafeGssNameHandle.CreateUser(username)) + { + Interop.NetSecurityNative.Status status; + Interop.NetSecurityNative.Status minorStatus; + if (string.IsNullOrEmpty(password)) + { + status = Interop.NetSecurityNative.InitiateCredSpNego(out minorStatus, userHandle, out retHandle); + } + else + { + status = Interop.NetSecurityNative.InitiateCredWithPassword(out minorStatus, isNtlmOnly, userHandle, password, Encoding.UTF8.GetByteCount(password), out retHandle); + } + + if (status != Interop.NetSecurityNative.Status.GSS_S_COMPLETE) + { + retHandle.Dispose(); + throw new Interop.NetSecurityNative.GssApiException(status, minorStatus, null); + } + } + + return retHandle; + } + + private SafeGssCredHandle() + : base(IntPtr.Zero, true) + { + } + + public override bool IsInvalid + { + get { return handle == IntPtr.Zero; } + } + + protected override bool ReleaseHandle() + { + Interop.NetSecurityNative.Status minorStatus; + Interop.NetSecurityNative.Status status = Interop.NetSecurityNative.ReleaseCred(out minorStatus, ref handle); + SetHandle(IntPtr.Zero); + return status == Interop.NetSecurityNative.Status.GSS_S_COMPLETE; + } + + private static bool InitIsNtlmInstalled() + { + return Interop.NetSecurityNative.IsNtlmInstalled(); + } + } + + internal sealed class SafeGssContextHandle : SafeHandle + { + public SafeGssContextHandle() + : base(IntPtr.Zero, true) + { + } + + public override bool IsInvalid + { + get { return handle == IntPtr.Zero; } + } + + protected override bool ReleaseHandle() + { + Interop.NetSecurityNative.Status minorStatus; + Interop.NetSecurityNative.Status status = Interop.NetSecurityNative.DeleteSecContext(out minorStatus, ref handle); + SetHandle(IntPtr.Zero); + return status == Interop.NetSecurityNative.Status.GSS_S_COMPLETE; + } + } +} diff --git a/src/Common/src/System/Collections/Generic/BidirectionalDictionary.cs b/src/Common/src/System/Collections/Generic/BidirectionalDictionary.cs new file mode 100644 index 000000000..32c446343 --- /dev/null +++ b/src/Common/src/System/Collections/Generic/BidirectionalDictionary.cs @@ -0,0 +1,61 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Diagnostics; + +namespace System.Collections.Generic +{ + internal sealed class BidirectionalDictionary : IEnumerable> + { + private readonly Dictionary _forward; + private readonly Dictionary _backward; + + public BidirectionalDictionary(int capacity) + { + _forward = new Dictionary(capacity); + _backward = new Dictionary(capacity); + } + + public int Count + { + get + { + Debug.Assert(_forward.Count == _backward.Count, "both the dictionaries must have the same number of elements"); + return _forward.Count; + } + } + + public void Add(T1 item1, T2 item2) + { + Debug.Assert(!_backward.ContainsKey(item2), "No added item1 should ever have existing item2"); + _forward.Add(item1, item2); + _backward.Add(item2, item1); + } + + public bool TryGetForward(T1 item1, out T2 item2) + { + return _forward.TryGetValue(item1, out item2); + } + + public bool TryGetBackward(T2 item2, out T1 item1) + { + return _backward.TryGetValue(item2, out item1); + } + + public Dictionary.Enumerator GetEnumerator() + { + return _forward.GetEnumerator(); + } + + IEnumerator> IEnumerable>.GetEnumerator() + { + return GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetEnumerator(); + } + } +} diff --git a/src/Common/src/System/Data/Common/AdapterUtil.Drivers.cs b/src/Common/src/System/Data/Common/AdapterUtil.Drivers.cs new file mode 100644 index 000000000..c8666a2c6 --- /dev/null +++ b/src/Common/src/System/Data/Common/AdapterUtil.Drivers.cs @@ -0,0 +1,35 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Threading; + +namespace System.Data.Common +{ + internal static partial class ADP + { + + internal static Timer UnsafeCreateTimer(TimerCallback callback, object state, int dueTime, int period) + { + // Don't capture the current ExecutionContext and its AsyncLocals onto + // a global timer causing them to live forever + bool restoreFlow = false; + try + { + if (!ExecutionContext.IsFlowSuppressed()) + { + ExecutionContext.SuppressFlow(); + restoreFlow = true; + } + + return new Timer(callback, state, dueTime, period); + } + finally + { + // Restore the current ExecutionContext + if (restoreFlow) + ExecutionContext.RestoreFlow(); + } + } + } +} diff --git a/src/Common/src/System/Data/Common/AdapterUtil.cs b/src/Common/src/System/Data/Common/AdapterUtil.cs new file mode 100644 index 000000000..8070af754 --- /dev/null +++ b/src/Common/src/System/Data/Common/AdapterUtil.cs @@ -0,0 +1,502 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Collections; +using System.Data.SqlTypes; +using System.Diagnostics; +using System.Globalization; +using System.Runtime.CompilerServices; +using System.Security; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using System.Transactions; + +namespace System.Data.Common +{ + internal static partial class ADP + { + // NOTE: Initializing a Task in SQL CLR requires the "UNSAFE" permission set (https://docs.microsoft.com/en-us/dotnet/framework/performance/sql-server-programming-and-host-protection-attributes) + // Therefore we are lazily initializing these Tasks to avoid forcing customers to use the "UNSAFE" set when they are actually using no Async features + private static Task _trueTask; + internal static Task TrueTask => _trueTask ?? (_trueTask = Task.FromResult(true)); + + private static Task _falseTask; + internal static Task FalseTask => _falseTask ?? (_falseTask = Task.FromResult(false)); + + internal const CompareOptions DefaultCompareOptions = CompareOptions.IgnoreKanaType | CompareOptions.IgnoreWidth | CompareOptions.IgnoreCase; + internal const int DefaultConnectionTimeout = DbConnectionStringDefaults.ConnectTimeout; + + static partial void TraceException(string trace, Exception e); + + internal static void TraceExceptionAsReturnValue(Exception e) + { + TraceException(" '{0}'", e); + } + + internal static void TraceExceptionWithoutRethrow(Exception e) + { + Debug.Assert(ADP.IsCatchableExceptionType(e), "Invalid exception type, should have been re-thrown!"); + TraceException(" '%ls'\n", e); + } + + internal static ArgumentException Argument(string error) + { + ArgumentException e = new ArgumentException(error); + TraceExceptionAsReturnValue(e); + return e; + } + + internal static ArgumentException Argument(string error, Exception inner) + { + ArgumentException e = new ArgumentException(error, inner); + TraceExceptionAsReturnValue(e); + return e; + } + + internal static ArgumentException Argument(string error, string parameter) + { + ArgumentException e = new ArgumentException(error, parameter); + TraceExceptionAsReturnValue(e); + return e; + } + + internal static ArgumentNullException ArgumentNull(string parameter) + { + ArgumentNullException e = new ArgumentNullException(parameter); + TraceExceptionAsReturnValue(e); + return e; + } + + internal static ArgumentNullException ArgumentNull(string parameter, string error) + { + ArgumentNullException e = new ArgumentNullException(parameter, error); + TraceExceptionAsReturnValue(e); + return e; + } + + internal static ArgumentOutOfRangeException ArgumentOutOfRange(string parameterName) + { + ArgumentOutOfRangeException e = new ArgumentOutOfRangeException(parameterName); + TraceExceptionAsReturnValue(e); + return e; + } + + internal static ArgumentOutOfRangeException ArgumentOutOfRange(string message, string parameterName) + { + ArgumentOutOfRangeException e = new ArgumentOutOfRangeException(parameterName, message); + TraceExceptionAsReturnValue(e); + return e; + } + + internal static IndexOutOfRangeException IndexOutOfRange(string error) + { + IndexOutOfRangeException e = new IndexOutOfRangeException(error); + TraceExceptionAsReturnValue(e); + return e; + } + + internal static InvalidCastException InvalidCast(string error) + { + return InvalidCast(error, null); + } + + internal static InvalidCastException InvalidCast(string error, Exception inner) + { + InvalidCastException e = new InvalidCastException(error, inner); + TraceExceptionAsReturnValue(e); + return e; + } + + internal static InvalidOperationException InvalidOperation(string error) + { + InvalidOperationException e = new InvalidOperationException(error); + TraceExceptionAsReturnValue(e); + return e; + } + + internal static NotSupportedException NotSupported() + { + NotSupportedException e = new NotSupportedException(); + TraceExceptionAsReturnValue(e); + return e; + } + + internal static NotSupportedException NotSupported(string error) + { + NotSupportedException e = new NotSupportedException(error); + TraceExceptionAsReturnValue(e); + return e; + } + + // the return value is true if the string was quoted and false if it was not + // this allows the caller to determine if it is an error or not for the quotedString to not be quoted + internal static bool RemoveStringQuotes(string quotePrefix, string quoteSuffix, string quotedString, out string unquotedString) + { + int prefixLength = quotePrefix != null ? quotePrefix.Length : 0; + int suffixLength = quoteSuffix != null ? quoteSuffix.Length : 0; + + if ((suffixLength + prefixLength) == 0) + { + unquotedString = quotedString; + return true; + } + + if (quotedString == null) + { + unquotedString = quotedString; + return false; + } + + int quotedStringLength = quotedString.Length; + + // is the source string too short to be quoted + if (quotedStringLength < prefixLength + suffixLength) + { + unquotedString = quotedString; + return false; + } + + // is the prefix present? + if (prefixLength > 0) + { + if (!quotedString.StartsWith(quotePrefix, StringComparison.Ordinal)) + { + unquotedString = quotedString; + return false; + } + } + + // is the suffix present? + if (suffixLength > 0) + { + if (!quotedString.EndsWith(quoteSuffix, StringComparison.Ordinal)) + { + unquotedString = quotedString; + return false; + } + unquotedString = quotedString.Substring(prefixLength, quotedStringLength - (prefixLength + suffixLength)).Replace(quoteSuffix + quoteSuffix, quoteSuffix); + } + else + { + unquotedString = quotedString.Substring(prefixLength, quotedStringLength - prefixLength); + } + return true; + } + + internal static ArgumentOutOfRangeException NotSupportedEnumerationValue(Type type, string value, string method) + { + return ArgumentOutOfRange(SR.Format(SR.ADP_NotSupportedEnumerationValue, type.Name, value, method), type.Name); + } + + internal static InvalidOperationException DataAdapter(string error) + { + return InvalidOperation(error); + } + + private static InvalidOperationException Provider(string error) + { + return InvalidOperation(error); + } + + internal static ArgumentException InvalidMultipartName(string property, string value) + { + ArgumentException e = new ArgumentException(SR.Format(SR.ADP_InvalidMultipartName, property, value)); + TraceExceptionAsReturnValue(e); + return e; + } + + internal static ArgumentException InvalidMultipartNameIncorrectUsageOfQuotes(string property, string value) + { + ArgumentException e = new ArgumentException(SR.Format(SR.ADP_InvalidMultipartNameQuoteUsage, property, value)); + TraceExceptionAsReturnValue(e); + return e; + } + + internal static ArgumentException InvalidMultipartNameToManyParts(string property, string value, int limit) + { + ArgumentException e = new ArgumentException(SR.Format(SR.ADP_InvalidMultipartNameToManyParts, property, value, limit)); + TraceExceptionAsReturnValue(e); + return e; + } + + internal static void CheckArgumentNull(object value, string parameterName) + { + if (null == value) + { + throw ArgumentNull(parameterName); + } + } + + // only StackOverflowException & ThreadAbortException are sealed classes + private static readonly Type s_stackOverflowType = typeof(StackOverflowException); + private static readonly Type s_outOfMemoryType = typeof(OutOfMemoryException); + private static readonly Type s_threadAbortType = typeof(ThreadAbortException); + private static readonly Type s_nullReferenceType = typeof(NullReferenceException); + private static readonly Type s_accessViolationType = typeof(AccessViolationException); + private static readonly Type s_securityType = typeof(SecurityException); + + internal static bool IsCatchableExceptionType(Exception e) + { + // a 'catchable' exception is defined by what it is not. + Debug.Assert(e != null, "Unexpected null exception!"); + Type type = e.GetType(); + + return ((type != s_stackOverflowType) && + (type != s_outOfMemoryType) && + (type != s_threadAbortType) && + (type != s_nullReferenceType) && + (type != s_accessViolationType) && + !s_securityType.IsAssignableFrom(type)); + } + + internal static bool IsCatchableOrSecurityExceptionType(Exception e) + { + // a 'catchable' exception is defined by what it is not. + // since IsCatchableExceptionType defined SecurityException as not 'catchable' + // this method will return true for SecurityException has being catchable. + + // the other way to write this method is, but then SecurityException is checked twice + // return ((e is SecurityException) || IsCatchableExceptionType(e)); + + Debug.Assert(e != null, "Unexpected null exception!"); + Type type = e.GetType(); + + return ((type != s_stackOverflowType) && + (type != s_outOfMemoryType) && + (type != s_threadAbortType) && + (type != s_nullReferenceType) && + (type != s_accessViolationType)); + } + + // Invalid Enumeration + internal static ArgumentOutOfRangeException InvalidEnumerationValue(Type type, int value) + { + return ArgumentOutOfRange(SR.Format(SR.ADP_InvalidEnumerationValue, type.Name, value.ToString(CultureInfo.InvariantCulture)), type.Name); + } + + // + // DbConnectionOptions, DataAccess + // + internal static ArgumentException ConnectionStringSyntax(int index) + { + return Argument(SR.Format(SR.ADP_ConnectionStringSyntax, index)); + } + internal static ArgumentException KeywordNotSupported(string keyword) + { + return Argument(SR.Format(SR.ADP_KeywordNotSupported, keyword)); + } + internal static ArgumentException ConvertFailed(Type fromType, Type toType, Exception innerException) + { + return ADP.Argument(SR.Format(SR.SqlConvert_ConvertFailed, fromType.FullName, toType.FullName), innerException); + } + + // + // DbConnectionOptions, DataAccess, SqlClient + // + internal static Exception InvalidConnectionOptionValue(string key) + { + return InvalidConnectionOptionValue(key, null); + } + internal static Exception InvalidConnectionOptionValue(string key, Exception inner) + { + return Argument(SR.Format(SR.ADP_InvalidConnectionOptionValue, key), inner); + } + + // + // Generic Data Provider Collection + // + internal static ArgumentException CollectionRemoveInvalidObject(Type itemType, ICollection collection) + { + return Argument(SR.Format(SR.ADP_CollectionRemoveInvalidObject, itemType.Name, collection.GetType().Name)); + } + internal static ArgumentNullException CollectionNullValue(string parameter, Type collection, Type itemType) + { + return ArgumentNull(parameter, SR.Format(SR.ADP_CollectionNullValue, collection.Name, itemType.Name)); + } + internal static IndexOutOfRangeException CollectionIndexInt32(int index, Type collection, int count) + { + return IndexOutOfRange(SR.Format(SR.ADP_CollectionIndexInt32, index.ToString(CultureInfo.InvariantCulture), collection.Name, count.ToString(CultureInfo.InvariantCulture))); + } + internal static IndexOutOfRangeException CollectionIndexString(Type itemType, string propertyName, string propertyValue, Type collection) + { + return IndexOutOfRange(SR.Format(SR.ADP_CollectionIndexString, itemType.Name, propertyName, propertyValue, collection.Name)); + } + internal static InvalidCastException CollectionInvalidType(Type collection, Type itemType, object invalidValue) + { + return InvalidCast(SR.Format(SR.ADP_CollectionInvalidType, collection.Name, itemType.Name, invalidValue.GetType().Name)); + } + + // + // DbConnection + // + private static string ConnectionStateMsg(ConnectionState state) + { + switch (state) + { + case (ConnectionState.Closed): + case (ConnectionState.Connecting | ConnectionState.Broken): // treated the same as closed + return SR.ADP_ConnectionStateMsg_Closed; + case (ConnectionState.Connecting): + return SR.ADP_ConnectionStateMsg_Connecting; + case (ConnectionState.Open): + return SR.ADP_ConnectionStateMsg_Open; + case (ConnectionState.Open | ConnectionState.Executing): + return SR.ADP_ConnectionStateMsg_OpenExecuting; + case (ConnectionState.Open | ConnectionState.Fetching): + return SR.ADP_ConnectionStateMsg_OpenFetching; + default: + return SR.Format(SR.ADP_ConnectionStateMsg, state.ToString()); + } + } + + // + // : Stream + // + internal static Exception StreamClosed([CallerMemberName] string method = "") + { + return InvalidOperation(SR.Format(SR.ADP_StreamClosed, method)); + } + + internal static string BuildQuotedString(string quotePrefix, string quoteSuffix, string unQuotedString) + { + var resultString = new StringBuilder(unQuotedString.Length + quoteSuffix.Length + quoteSuffix.Length); + AppendQuotedString(resultString, quotePrefix, quoteSuffix, unQuotedString); + return resultString.ToString(); + } + + internal static string AppendQuotedString(StringBuilder buffer, string quotePrefix, string quoteSuffix, string unQuotedString) + { + + if (!string.IsNullOrEmpty(quotePrefix)) + { + buffer.Append(quotePrefix); + } + + // Assuming that the suffix is escaped by doubling it. i.e. foo"bar becomes "foo""bar". + if (!string.IsNullOrEmpty(quoteSuffix)) + { + int start = buffer.Length; + buffer.Append(unQuotedString); + buffer.Replace(quoteSuffix, quoteSuffix + quoteSuffix, start, unQuotedString.Length); + buffer.Append(quoteSuffix); + } + else + { + buffer.Append(unQuotedString); + } + + return buffer.ToString(); + } + + // + // Generic Data Provider Collection + // + internal static ArgumentException ParametersIsNotParent(Type parameterType, ICollection collection) + { + return Argument(SR.Format(SR.ADP_CollectionIsNotParent, parameterType.Name, collection.GetType().Name)); + } + internal static ArgumentException ParametersIsParent(Type parameterType, ICollection collection) + { + return Argument(SR.Format(SR.ADP_CollectionIsNotParent, parameterType.Name, collection.GetType().Name)); + } + + + internal enum InternalErrorCode + { + UnpooledObjectHasOwner = 0, + UnpooledObjectHasWrongOwner = 1, + PushingObjectSecondTime = 2, + PooledObjectHasOwner = 3, + PooledObjectInPoolMoreThanOnce = 4, + CreateObjectReturnedNull = 5, + NewObjectCannotBePooled = 6, + NonPooledObjectUsedMoreThanOnce = 7, + AttemptingToPoolOnRestrictedToken = 8, + // ConnectionOptionsInUse = 9, + ConvertSidToStringSidWReturnedNull = 10, + // UnexpectedTransactedObject = 11, + AttemptingToConstructReferenceCollectionOnStaticObject = 12, + AttemptingToEnlistTwice = 13, + CreateReferenceCollectionReturnedNull = 14, + PooledObjectWithoutPool = 15, + UnexpectedWaitAnyResult = 16, + SynchronousConnectReturnedPending = 17, + CompletedConnectReturnedPending = 18, + + NameValuePairNext = 20, + InvalidParserState1 = 21, + InvalidParserState2 = 22, + InvalidParserState3 = 23, + + InvalidBuffer = 30, + + UnimplementedSMIMethod = 40, + InvalidSmiCall = 41, + + SqlDependencyObtainProcessDispatcherFailureObjectHandle = 50, + SqlDependencyProcessDispatcherFailureCreateInstance = 51, + SqlDependencyProcessDispatcherFailureAppDomain = 52, + SqlDependencyCommandHashIsNotAssociatedWithNotification = 53, + + UnknownTransactionFailure = 60, + } + + internal static Exception InternalError(InternalErrorCode internalError) + { + return InvalidOperation(SR.Format(SR.ADP_InternalProviderError, (int)internalError)); + } + + // + // : DbDataReader + // + internal static Exception DataReaderClosed([CallerMemberName] string method = "") + { + return InvalidOperation(SR.Format(SR.ADP_DataReaderClosed, method)); + } + internal static ArgumentOutOfRangeException InvalidSourceBufferIndex(int maxLen, long srcOffset, string parameterName) + { + return ArgumentOutOfRange(SR.Format(SR.ADP_InvalidSourceBufferIndex, maxLen.ToString(CultureInfo.InvariantCulture), srcOffset.ToString(CultureInfo.InvariantCulture)), parameterName); + } + internal static ArgumentOutOfRangeException InvalidDestinationBufferIndex(int maxLen, int dstOffset, string parameterName) + { + return ArgumentOutOfRange(SR.Format(SR.ADP_InvalidDestinationBufferIndex, maxLen.ToString(CultureInfo.InvariantCulture), dstOffset.ToString(CultureInfo.InvariantCulture)), parameterName); + } + internal static IndexOutOfRangeException InvalidBufferSizeOrIndex(int numBytes, int bufferIndex) + { + return IndexOutOfRange(SR.Format(SR.SQL_InvalidBufferSizeOrIndex, numBytes.ToString(CultureInfo.InvariantCulture), bufferIndex.ToString(CultureInfo.InvariantCulture))); + } + internal static Exception InvalidDataLength(long length) + { + return IndexOutOfRange(SR.Format(SR.SQL_InvalidDataLength, length.ToString(CultureInfo.InvariantCulture))); + } + + internal static bool CompareInsensitiveInvariant(string strvalue, string strconst) => + 0 == CultureInfo.InvariantCulture.CompareInfo.Compare(strvalue, strconst, CompareOptions.IgnoreCase); + + internal static int DstCompare(string strA, string strB) => CultureInfo.CurrentCulture.CompareInfo.Compare(strA, strB, ADP.DefaultCompareOptions); + + internal static bool IsEmptyArray(string[] array) => (null == array) || (0 == array.Length); + + internal static bool IsNull(object value) + { + if ((null == value) || (DBNull.Value == value)) + { + return true; + } + INullable nullable = (value as INullable); + return ((null != nullable) && nullable.IsNull); + } + + internal static Exception InvalidSeekOrigin(string parameterName) + { + return ArgumentOutOfRange(SR.ADP_InvalidSeekOrigin, parameterName); + } + + internal static void SetCurrentTransaction(Transaction transaction) + { + Transaction.Current = transaction; + } + } +} diff --git a/src/Common/src/System/Data/Common/BasicFieldNameLookup.cs b/src/Common/src/System/Data/Common/BasicFieldNameLookup.cs new file mode 100644 index 000000000..877a24bc3 --- /dev/null +++ b/src/Common/src/System/Data/Common/BasicFieldNameLookup.cs @@ -0,0 +1,142 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + + +using System.Collections.Generic; +using System.Data.Common; +using System.Globalization; + +namespace System.Data.ProviderBase +{ + internal class BasicFieldNameLookup + { + // Dictionary stores the index into the _fieldNames, match via case-sensitive + private Dictionary _fieldNameLookup; + + // original names for linear searches when exact matches fail + private readonly string[] _fieldNames; + + // By default _compareInfo is set to InvariantCulture CompareInfo + private CompareInfo _compareInfo; + + public BasicFieldNameLookup(string[] fieldNames) + { + if (null == fieldNames) + { + throw ADP.ArgumentNull(nameof(fieldNames)); + } + _fieldNames = fieldNames; + } + + public BasicFieldNameLookup(System.Collections.ObjectModel.ReadOnlyCollection columnNames) + { + int length = columnNames.Count; + string[] fieldNames = new string[length]; + for (int i = 0; i < length; ++i) + { + fieldNames[i] = columnNames[i]; + } + _fieldNames = fieldNames; + GenerateLookup(); + } + + public BasicFieldNameLookup(IDataReader reader) + { + int length = reader.FieldCount; + string[] fieldNames = new string[length]; + for (int i = 0; i < length; ++i) + { + fieldNames[i] = reader.GetName(i); + } + _fieldNames = fieldNames; + } + + public int GetOrdinal(string fieldName) + { + if (null == fieldName) + { + throw ADP.ArgumentNull(nameof(fieldName)); + } + int index = IndexOf(fieldName); + if (-1 == index) + { + throw ADP.IndexOutOfRange(fieldName); + } + return index; + } + + public int IndexOfName(string fieldName) + { + if (null == _fieldNameLookup) + { + GenerateLookup(); + } + + int value; + // via case sensitive search, first match with lowest ordinal matches + return _fieldNameLookup.TryGetValue(fieldName, out value) ? value : -1; + } + + public int IndexOf(string fieldName) + { + if (null == _fieldNameLookup) + { + GenerateLookup(); + } + int index; + // via case sensitive search, first match with lowest ordinal matches + if (!_fieldNameLookup.TryGetValue(fieldName, out index)) + { + // via case insensitive search, first match with lowest ordinal matches + index = LinearIndexOf(fieldName, CompareOptions.IgnoreCase); + if (-1 == index) + { + // do the slow search now (kana, width insensitive comparison) + index = LinearIndexOf(fieldName, ADP.DefaultCompareOptions); + } + } + + return index; + } + + protected virtual CompareInfo GetCompareInfo() + { + return CultureInfo.InvariantCulture.CompareInfo; + } + + private int LinearIndexOf(string fieldName, CompareOptions compareOptions) + { + if (null == _compareInfo) + { + _compareInfo = GetCompareInfo(); + } + + int length = _fieldNames.Length; + for (int i = 0; i < length; ++i) + { + if (0 == _compareInfo.Compare(fieldName, _fieldNames[i], compareOptions)) + { + _fieldNameLookup[fieldName] = i; // add an exact match for the future + return i; + } + } + return -1; + } + + // RTM common code for generating Dictionary from array of column names + private void GenerateLookup() + { + int length = _fieldNames.Length; + Dictionary hash = new Dictionary(length); + + // via case sensitive search, first match with lowest ordinal matches + for (int i = length - 1; 0 <= i; --i) + { + string fieldName = _fieldNames[i]; + hash[fieldName] = i; + } + _fieldNameLookup = hash; + } + } +} diff --git a/src/Common/src/System/Data/Common/DbConnectionOptions.Common.cs b/src/Common/src/System/Data/Common/DbConnectionOptions.Common.cs new file mode 100644 index 000000000..66f90e253 --- /dev/null +++ b/src/Common/src/System/Data/Common/DbConnectionOptions.Common.cs @@ -0,0 +1,654 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Collections.Generic; +using System.Diagnostics; +using System.Globalization; +using System.Text; +using System.Text.RegularExpressions; + +namespace System.Data.Common +{ + partial class DbConnectionOptions + { +#if DEBUG + /*private const string ConnectionStringPatternV1 = + "[\\s;]*" + +"(?([^=\\s]|\\s+[^=\\s]|\\s+==|==)+)" + + "\\s*=(?!=)\\s*" + +"(?(" + + "(" + "\"" + "([^\"]|\"\")*" + "\"" + ")" + + "|" + + "(" + "'" + "([^']|'')*" + "'" + ")" + + "|" + + "(" + "(?![\"'])" + "([^\\s;]|\\s+[^\\s;])*" + "(?([^=\\s\\p{Cc}]|\\s+[^=\\s\\p{Cc}]|\\s+==|==)+)" // allow any visible character for keyname except '=' which must quoted as '==' + + "\\s*=(?!=)\\s*" // the equal sign divides the key and value parts + + "(?" + + "(\"([^\"\u0000]|\"\")*\")" // double quoted string, " must be quoted as "" + + "|" + + "('([^'\u0000]|'')*')" // single quoted string, ' must be quoted as '' + + "|" + + "((?![\"'\\s])" // unquoted value must not start with " or ' or space, would also like = but too late to change + + "([^;\\s\\p{Cc}]|\\s+[^;\\s\\p{Cc}])*" // control characters must be quoted + + "(?([^=\\s\\p{Cc}]|\\s+[^=\\s\\p{Cc}])+)" // allow any visible character for keyname except '=' + + "\\s*=\\s*" // the equal sign divides the key and value parts + + "(?" + + "(\\{([^\\}\u0000]|\\}\\})*\\})" // quoted string, starts with { and ends with } + + "|" + + "((?![\\{\\s])" // unquoted value must not start with { or space, would also like = but too late to change + + "([^;\\s\\p{Cc}]|\\s+[^;\\s\\p{Cc}])*" // control characters must be quoted + + + ")" // although the spec does not allow {} + // embedded within a value, the retail code does. + + ")(\\s*)(;|[\u0000\\s]*$)" // whitespace after value up to semicolon or end-of-line + + ")*" // repeat the key-value pair + + "[\\s;]*[\u0000\\s]*" // traling whitespace/semicolons (DataSourceLocator), embedded nulls are allowed only in the end + ; + + private static readonly Regex s_connectionStringRegex = new Regex(ConnectionStringPattern, RegexOptions.ExplicitCapture | RegexOptions.Compiled); + private static readonly Regex s_connectionStringRegexOdbc = new Regex(ConnectionStringPatternOdbc, RegexOptions.ExplicitCapture | RegexOptions.Compiled); +#endif + private const string ConnectionStringValidKeyPattern = "^(?![;\\s])[^\\p{Cc}]+(? _parsetable; + internal readonly NameValuePair _keyChain; + internal readonly bool _hasPasswordKeyword; + + public string UsersConnectionString(bool hidePassword) => + UsersConnectionString(hidePassword, false); + + private string UsersConnectionString(bool hidePassword, bool forceHidePassword) + { + string connectionString = _usersConnectionString; + if (_hasPasswordKeyword && (forceHidePassword || (hidePassword && !HasPersistablePassword))) + { + ReplacePasswordPwd(out connectionString, false); + } + return connectionString ?? string.Empty; + } + + internal bool HasPersistablePassword => _hasPasswordKeyword ? + ConvertValueToBoolean(KEY.Persist_Security_Info, false) : + true; // no password means persistable password so we don't have to munge + + public bool ConvertValueToBoolean(string keyName, bool defaultValue) + { + string value; + return _parsetable.TryGetValue(keyName, out value) ? + ConvertValueToBooleanInternal(keyName, value) : + defaultValue; + } + + internal static bool ConvertValueToBooleanInternal(string keyName, string stringValue) + { + if (CompareInsensitiveInvariant(stringValue, "true") || CompareInsensitiveInvariant(stringValue, "yes")) + return true; + else if (CompareInsensitiveInvariant(stringValue, "false") || CompareInsensitiveInvariant(stringValue, "no")) + return false; + else + { + string tmp = stringValue.Trim(); // Remove leading & trailing whitespace. + if (CompareInsensitiveInvariant(tmp, "true") || CompareInsensitiveInvariant(tmp, "yes")) + return true; + else if (CompareInsensitiveInvariant(tmp, "false") || CompareInsensitiveInvariant(tmp, "no")) + return false; + else + { + throw ADP.InvalidConnectionOptionValue(keyName); + } + } + } + + private static bool CompareInsensitiveInvariant(string strvalue, string strconst) => + (0 == StringComparer.OrdinalIgnoreCase.Compare(strvalue, strconst)); + + [System.Diagnostics.Conditional("DEBUG")] + static partial void DebugTraceKeyValuePair(string keyname, string keyvalue, Dictionary synonyms); + + private static string GetKeyName(StringBuilder buffer) + { + int count = buffer.Length; + while ((0 < count) && char.IsWhiteSpace(buffer[count - 1])) + { + count--; // trailing whitespace + } + return buffer.ToString(0, count).ToLower(CultureInfo.InvariantCulture); + } + + private static string GetKeyValue(StringBuilder buffer, bool trimWhitespace) + { + int count = buffer.Length; + int index = 0; + if (trimWhitespace) + { + while ((index < count) && char.IsWhiteSpace(buffer[index])) + { + index++; // leading whitespace + } + while ((0 < count) && char.IsWhiteSpace(buffer[count - 1])) + { + count--; // trailing whitespace + } + } + return buffer.ToString(index, count - index); + } + + // transition states used for parsing + private enum ParserState + { + NothingYet = 1, //start point + Key, + KeyEqual, + KeyEnd, + UnquotedValue, + DoubleQuoteValue, + DoubleQuoteValueQuote, + SingleQuoteValue, + SingleQuoteValueQuote, + BraceQuoteValue, + BraceQuoteValueQuote, + QuotedValueEnd, + NullTermination, + }; + + internal static int GetKeyValuePair(string connectionString, int currentPosition, StringBuilder buffer, bool useOdbcRules, out string keyname, out string keyvalue) + { + int startposition = currentPosition; + + buffer.Length = 0; + keyname = null; + keyvalue = null; + + char currentChar = '\0'; + + ParserState parserState = ParserState.NothingYet; + int length = connectionString.Length; + for (; currentPosition < length; ++currentPosition) + { + currentChar = connectionString[currentPosition]; + + switch (parserState) + { + case ParserState.NothingYet: // [\\s;]* + if ((';' == currentChar) || char.IsWhiteSpace(currentChar)) + { + continue; + } + if ('\0' == currentChar) + { parserState = ParserState.NullTermination; continue; } + if (char.IsControl(currentChar)) + { throw ADP.ConnectionStringSyntax(startposition); } + startposition = currentPosition; + if ('=' != currentChar) + { + parserState = ParserState.Key; + break; + } + else + { + parserState = ParserState.KeyEqual; + continue; + } + + case ParserState.Key: // (?([^=\\s\\p{Cc}]|\\s+[^=\\s\\p{Cc}]|\\s+==|==)+) + if ('=' == currentChar) + { parserState = ParserState.KeyEqual; continue; } + if (char.IsWhiteSpace(currentChar)) + { break; } + if (char.IsControl(currentChar)) + { throw ADP.ConnectionStringSyntax(startposition); } + break; + + case ParserState.KeyEqual: // \\s*=(?!=)\\s* + if (!useOdbcRules && '=' == currentChar) + { parserState = ParserState.Key; break; } + keyname = GetKeyName(buffer); + if (string.IsNullOrEmpty(keyname)) + { throw ADP.ConnectionStringSyntax(startposition); } + buffer.Length = 0; + parserState = ParserState.KeyEnd; + goto case ParserState.KeyEnd; + + case ParserState.KeyEnd: + if (char.IsWhiteSpace(currentChar)) + { continue; } + if (useOdbcRules) + { + if ('{' == currentChar) + { parserState = ParserState.BraceQuoteValue; break; } + } + else + { + if ('\'' == currentChar) + { parserState = ParserState.SingleQuoteValue; continue; } + if ('"' == currentChar) + { parserState = ParserState.DoubleQuoteValue; continue; } + } + if (';' == currentChar) + { goto ParserExit; } + if ('\0' == currentChar) + { goto ParserExit; } + if (char.IsControl(currentChar)) + { throw ADP.ConnectionStringSyntax(startposition); } + parserState = ParserState.UnquotedValue; + break; + + case ParserState.UnquotedValue: // "((?![\"'\\s])" + "([^;\\s\\p{Cc}]|\\s+[^;\\s\\p{Cc}])*" + "(? SplitConnectionString(string connectionString, Dictionary synonyms, bool firstKey) + { + var parsetable = new Dictionary(); + Regex parser = (firstKey ? s_connectionStringRegexOdbc : s_connectionStringRegex); + + const int KeyIndex = 1, ValueIndex = 2; + Debug.Assert(KeyIndex == parser.GroupNumberFromName("key"), "wrong key index"); + Debug.Assert(ValueIndex == parser.GroupNumberFromName("value"), "wrong value index"); + + if (null != connectionString) + { + Match match = parser.Match(connectionString); + if (!match.Success || (match.Length != connectionString.Length)) + { + throw ADP.ConnectionStringSyntax(match.Length); + } + int indexValue = 0; + CaptureCollection keyvalues = match.Groups[ValueIndex].Captures; + foreach (Capture keypair in match.Groups[KeyIndex].Captures) + { + string keyname = (firstKey ? keypair.Value : keypair.Value.Replace("==", "=")).ToLower(CultureInfo.InvariantCulture); + string keyvalue = keyvalues[indexValue++].Value; + if (0 < keyvalue.Length) + { + if (!firstKey) + { + switch (keyvalue[0]) + { + case '\"': + keyvalue = keyvalue.Substring(1, keyvalue.Length - 2).Replace("\"\"", "\""); + break; + case '\'': + keyvalue = keyvalue.Substring(1, keyvalue.Length - 2).Replace("\'\'", "\'"); + break; + default: + break; + } + } + } + else + { + keyvalue = null; + } + DebugTraceKeyValuePair(keyname, keyvalue, synonyms); + string synonym; + string realkeyname = null != synonyms ? + (synonyms.TryGetValue(keyname, out synonym) ? synonym : null) : keyname; + + if (!IsKeyNameValid(realkeyname)) + { + throw ADP.KeywordNotSupported(keyname); + } + if (!firstKey || !parsetable.ContainsKey(realkeyname)) + { + parsetable[realkeyname] = keyvalue; // last key-value pair wins (or first) + } + } + } + return parsetable; + } + + private static void ParseComparison(Dictionary parsetable, string connectionString, Dictionary synonyms, bool firstKey, Exception e) + { + try + { + var parsedvalues = SplitConnectionString(connectionString, synonyms, firstKey); + foreach (var entry in parsedvalues) + { + string keyname = entry.Key; + string value1 = entry.Value; + string value2; + bool parsetableContainsKey = parsetable.TryGetValue(keyname, out value2); + Debug.Assert(parsetableContainsKey, $"{nameof(ParseInternal)} code vs. regex mismatch keyname <{keyname}>"); + Debug.Assert(value1 == value2, $"{nameof(ParseInternal)} code vs. regex mismatch keyvalue <{value1}> <{value2}>"); + } + } + catch (ArgumentException f) + { + if (null != e) + { + string msg1 = e.Message; + string msg2 = f.Message; + + const string KeywordNotSupportedMessagePrefix = "Keyword not supported:"; + const string WrongFormatMessagePrefix = "Format of the initialization string"; + bool isEquivalent = (msg1 == msg2); + if (!isEquivalent) + { + // We also accept cases were Regex parser (debug only) reports "wrong format" and + // retail parsing code reports format exception in different location or "keyword not supported" + if (msg2.StartsWith(WrongFormatMessagePrefix, StringComparison.Ordinal)) + { + if (msg1.StartsWith(KeywordNotSupportedMessagePrefix, StringComparison.Ordinal) || msg1.StartsWith(WrongFormatMessagePrefix, StringComparison.Ordinal)) + { + isEquivalent = true; + } + } + } + Debug.Assert(isEquivalent, "ParseInternal code vs regex message mismatch: <" + msg1 + "> <" + msg2 + ">"); + } + else + { + Debug.Fail("ParseInternal code vs regex throw mismatch " + f.Message); + } + e = null; + } + if (null != e) + { + Debug.Fail("ParseInternal code threw exception vs regex mismatch"); + } + } +#endif + + private static NameValuePair ParseInternal(Dictionary parsetable, string connectionString, bool buildChain, Dictionary synonyms, bool firstKey) + { + Debug.Assert(null != connectionString, "null connectionstring"); + StringBuilder buffer = new StringBuilder(); + NameValuePair localKeychain = null, keychain = null; +#if DEBUG + try + { +#endif + int nextStartPosition = 0; + int endPosition = connectionString.Length; + while (nextStartPosition < endPosition) + { + int startPosition = nextStartPosition; + + string keyname, keyvalue; + nextStartPosition = GetKeyValuePair(connectionString, startPosition, buffer, firstKey, out keyname, out keyvalue); + if (string.IsNullOrEmpty(keyname)) + { + // if (nextStartPosition != endPosition) { throw; } + break; + } +#if DEBUG + DebugTraceKeyValuePair(keyname, keyvalue, synonyms); + + Debug.Assert(IsKeyNameValid(keyname), "ParseFailure, invalid keyname"); + Debug.Assert(IsValueValidInternal(keyvalue), "parse failure, invalid keyvalue"); +#endif + string synonym; + string realkeyname = null != synonyms ? + (synonyms.TryGetValue(keyname, out synonym) ? synonym : null) : + keyname; + if (!IsKeyNameValid(realkeyname)) + { + throw ADP.KeywordNotSupported(keyname); + } + if (!firstKey || !parsetable.ContainsKey(realkeyname)) + { + parsetable[realkeyname] = keyvalue; // last key-value pair wins (or first) + } + + if (null != localKeychain) + { + localKeychain = localKeychain.Next = new NameValuePair(realkeyname, keyvalue, nextStartPosition - startPosition); + } + else if (buildChain) + { // first time only - don't contain modified chain from UDL file + keychain = localKeychain = new NameValuePair(realkeyname, keyvalue, nextStartPosition - startPosition); + } + } +#if DEBUG + } + catch (ArgumentException e) + { + ParseComparison(parsetable, connectionString, synonyms, firstKey, e); + throw; + } + ParseComparison(parsetable, connectionString, synonyms, firstKey, null); +#endif + return keychain; + } + + internal NameValuePair ReplacePasswordPwd(out string constr, bool fakePassword) + { + bool expanded = false; + int copyPosition = 0; + NameValuePair head = null, tail = null, next = null; + StringBuilder builder = new StringBuilder(_usersConnectionString.Length); + for (NameValuePair current = _keyChain; null != current; current = current.Next) + { + if ((KEY.Password != current.Name) && (SYNONYM.Pwd != current.Name)) + { + builder.Append(_usersConnectionString, copyPosition, current.Length); + if (fakePassword) + { + next = new NameValuePair(current.Name, current.Value, current.Length); + } + } + else if (fakePassword) + { + // replace user password/pwd value with * + const string equalstar = "=*;"; + builder.Append(current.Name).Append(equalstar); + next = new NameValuePair(current.Name, "*", current.Name.Length + equalstar.Length); + expanded = true; + } + else + { + // drop the password/pwd completely in returning for user + expanded = true; + } + + if (fakePassword) + { + if (null != tail) + { + tail = tail.Next = next; + } + else + { + tail = head = next; + } + } + copyPosition += current.Length; + } + Debug.Assert(expanded, "password/pwd was not removed"); + constr = builder.ToString(); + return head; + } + } +} diff --git a/src/Common/src/System/Data/Common/DbConnectionPoolKey.cs b/src/Common/src/System/Data/Common/DbConnectionPoolKey.cs new file mode 100644 index 000000000..a7b61cc5e --- /dev/null +++ b/src/Common/src/System/Data/Common/DbConnectionPoolKey.cs @@ -0,0 +1,58 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +namespace System.Data.Common +{ + // DbConnectionPoolKey: Base class implementation of a key to connection pool groups + // Only connection string is used as a key + internal class DbConnectionPoolKey : ICloneable + { + private string _connectionString; + + internal DbConnectionPoolKey(string connectionString) + { + _connectionString = connectionString; + } + + protected DbConnectionPoolKey(DbConnectionPoolKey key) + { + _connectionString = key.ConnectionString; + } + + public virtual object Clone() + { + return new DbConnectionPoolKey(this); + } + + internal virtual string ConnectionString + { + get + { + return _connectionString; + } + + set + { + _connectionString = value; + } + } + + public override bool Equals(object obj) + { + if (obj == null || obj.GetType() != typeof(DbConnectionPoolKey)) + { + return false; + } + + DbConnectionPoolKey key = obj as DbConnectionPoolKey; + + return (key != null && _connectionString == key._connectionString); + } + + public override int GetHashCode() + { + return _connectionString == null ? 0 : _connectionString.GetHashCode(); + } + } +} diff --git a/src/Common/src/System/Data/Common/FieldNameLookup.cs b/src/Common/src/System/Data/Common/FieldNameLookup.cs new file mode 100644 index 000000000..eff3f8693 --- /dev/null +++ b/src/Common/src/System/Data/Common/FieldNameLookup.cs @@ -0,0 +1,49 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + + + +//------------------------------------------------------------------------------ + +using System.Collections.Generic; +using System.Data.Common; +using System.Globalization; + +namespace System.Data.ProviderBase +{ + internal sealed class FieldNameLookup : BasicFieldNameLookup + { + private readonly int _defaultLocaleID; + + public FieldNameLookup(string[] fieldNames, int defaultLocaleID) : base(fieldNames) + { + _defaultLocaleID = defaultLocaleID; + } + + public FieldNameLookup(System.Collections.ObjectModel.ReadOnlyCollection columnNames, int defaultLocaleID) : base(columnNames) + { + _defaultLocaleID = defaultLocaleID; + } + + public FieldNameLookup(IDataReader reader, int defaultLocaleID) : base(reader) + { + _defaultLocaleID = defaultLocaleID; + } + + //The compare info is specified by the server by specifying the default LocaleId. + protected override CompareInfo GetCompareInfo() + { + CompareInfo compareInfo = null; + if (-1 != _defaultLocaleID) + { + compareInfo = CompareInfo.GetCompareInfo(_defaultLocaleID); + } + if (null == compareInfo) + { + compareInfo = base.GetCompareInfo(); + } + return compareInfo; + } + } +} diff --git a/src/Common/src/System/Data/Common/MultipartIdentifier.cs b/src/Common/src/System/Data/Common/MultipartIdentifier.cs new file mode 100644 index 000000000..d3db93a1a --- /dev/null +++ b/src/Common/src/System/Data/Common/MultipartIdentifier.cs @@ -0,0 +1,295 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + + + +//------------------------------------------------------------------------------ + +using System.Text; + +namespace System.Data.Common +{ + internal class MultipartIdentifier + { + private const int MaxParts = 4; + internal const int ServerIndex = 0; + internal const int CatalogIndex = 1; + internal const int SchemaIndex = 2; + internal const int TableIndex = 3; + + /* + Left quote strings need to correspond 1 to 1 with the right quote strings + example: "ab" "cd", passed in for the left and the right quote + would set a or b as a starting quote character. + If a is the starting quote char then c would be the ending quote char + otherwise if b is the starting quote char then d would be the ending quote character. + */ + internal static string[] ParseMultipartIdentifier(string name, string leftQuote, string rightQuote, string property, bool ThrowOnEmptyMultipartName) + { + return ParseMultipartIdentifier(name, leftQuote, rightQuote, '.', MaxParts, true, property, ThrowOnEmptyMultipartName); + } + + private enum MPIState + { + MPI_Value, + MPI_ParseNonQuote, + MPI_LookForSeparator, + MPI_LookForNextCharOrSeparator, + MPI_ParseQuote, + MPI_RightQuote, + } + + /* Core function for parsing the multipart identifier string. + * parameters: name - string to parse + * leftquote: set of characters which are valid quoting characters to initiate a quote + * rightquote: set of characters which are valid to stop a quote, array index's correspond to the leftquote array. + * separator: separator to use + * limit: number of names to parse out + * removequote:to remove the quotes on the returned string + */ + private static void IncrementStringCount(string name, string[] ary, ref int position, string property) + { + ++position; + int limit = ary.Length; + if (position >= limit) + { + throw ADP.InvalidMultipartNameToManyParts(property, name, limit); + } + ary[position] = string.Empty; + } + + private static bool IsWhitespace(char ch) + { + return char.IsWhiteSpace(ch); + } + + internal static string[] ParseMultipartIdentifier(string name, string leftQuote, string rightQuote, char separator, int limit, bool removequotes, string property, bool ThrowOnEmptyMultipartName) + { + if (limit <= 0) + { + throw ADP.InvalidMultipartNameToManyParts(property, name, limit); + } + + if (-1 != leftQuote.IndexOf(separator) || -1 != rightQuote.IndexOf(separator) || leftQuote.Length != rightQuote.Length) + { + throw ADP.InvalidMultipartNameIncorrectUsageOfQuotes(property, name); + } + + string[] parsedNames = new string[limit]; // return string array + int stringCount = 0; // index of current string in the buffer + MPIState state = MPIState.MPI_Value; // Initialize the starting state + + StringBuilder sb = new StringBuilder(name.Length); // String buffer to hold the string being currently built, init the string builder so it will never be resized + StringBuilder whitespaceSB = null; // String buffer to hold whitespace used when parsing nonquoted strings 'a b . c d' = 'a b' and 'c d' + char rightQuoteChar = ' '; // Right quote character to use given the left quote character found. + for (int index = 0; index < name.Length; ++index) + { + char testchar = name[index]; + switch (state) + { + case MPIState.MPI_Value: + { + int quoteIndex; + if (IsWhitespace(testchar)) + { // Is White Space then skip the whitespace + continue; + } + else + if (testchar == separator) + { // If we found a separator, no string was found, initialize the string we are parsing to Empty and the next one to Empty. + // This is NOT a redundant setting of string.Empty it solves the case where we are parsing ".foo" and we should be returning null, null, empty, foo + parsedNames[stringCount] = string.Empty; + IncrementStringCount(name, parsedNames, ref stringCount, property); + } + else + if (-1 != (quoteIndex = leftQuote.IndexOf(testchar))) + { // If we are a left quote + rightQuoteChar = rightQuote[quoteIndex]; // record the corresponding right quote for the left quote + sb.Length = 0; + if (!removequotes) + { + sb.Append(testchar); + } + state = MPIState.MPI_ParseQuote; + } + else + if (-1 != rightQuote.IndexOf(testchar)) + { // If we shouldn't see a right quote + throw ADP.InvalidMultipartNameIncorrectUsageOfQuotes(property, name); + } + else + { + sb.Length = 0; + sb.Append(testchar); + state = MPIState.MPI_ParseNonQuote; + } + break; + } + + case MPIState.MPI_ParseNonQuote: + { + if (testchar == separator) + { + parsedNames[stringCount] = sb.ToString(); // set the currently parsed string + IncrementStringCount(name, parsedNames, ref stringCount, property); + state = MPIState.MPI_Value; + } + else // Quotes are not valid inside a non-quoted name + if (-1 != rightQuote.IndexOf(testchar)) + { + throw ADP.InvalidMultipartNameIncorrectUsageOfQuotes(property, name); + } + else + if (-1 != leftQuote.IndexOf(testchar)) + { + throw ADP.InvalidMultipartNameIncorrectUsageOfQuotes(property, name); + } + else + if (IsWhitespace(testchar)) + { // If it is Whitespace + parsedNames[stringCount] = sb.ToString(); // Set the currently parsed string + if (null == whitespaceSB) + { + whitespaceSB = new StringBuilder(); + } + whitespaceSB.Length = 0; + whitespaceSB.Append(testchar); // start to record the whitespace, if we are parsing a name like "foo bar" we should return "foo bar" + state = MPIState.MPI_LookForNextCharOrSeparator; + } + else + { + sb.Append(testchar); + } + break; + } + + case MPIState.MPI_LookForNextCharOrSeparator: + { + if (!IsWhitespace(testchar)) + { // If it is not whitespace + if (testchar == separator) + { + IncrementStringCount(name, parsedNames, ref stringCount, property); + state = MPIState.MPI_Value; + } + else + { // If its not a separator and not whitespace + sb.Append(whitespaceSB); + sb.Append(testchar); + parsedNames[stringCount] = sb.ToString(); // Need to set the name here in case the string ends here. + state = MPIState.MPI_ParseNonQuote; + } + } + else + { + whitespaceSB.Append(testchar); + } + break; + } + + case MPIState.MPI_ParseQuote: + { + if (testchar == rightQuoteChar) + { // if se are on a right quote see if we are escaping the right quote or ending the quoted string + if (!removequotes) + { + sb.Append(testchar); + } + state = MPIState.MPI_RightQuote; + } + else + { + sb.Append(testchar); // Append what we are currently parsing + } + break; + } + + case MPIState.MPI_RightQuote: + { + if (testchar == rightQuoteChar) + { // If the next char is another right quote then we were escaping the right quote + sb.Append(testchar); + state = MPIState.MPI_ParseQuote; + } + else + if (testchar == separator) + { // If its a separator then record what we've parsed + parsedNames[stringCount] = sb.ToString(); + IncrementStringCount(name, parsedNames, ref stringCount, property); + state = MPIState.MPI_Value; + } + else + if (!IsWhitespace(testchar)) + { // If it is not whitespace we got problems + throw ADP.InvalidMultipartNameIncorrectUsageOfQuotes(property, name); + } + else + { // It is a whitespace character so the following char should be whitespace, separator, or end of string anything else is bad + parsedNames[stringCount] = sb.ToString(); + state = MPIState.MPI_LookForSeparator; + } + break; + } + + case MPIState.MPI_LookForSeparator: + { + if (!IsWhitespace(testchar)) + { // If it is not whitespace + if (testchar == separator) + { // If it is a separator + IncrementStringCount(name, parsedNames, ref stringCount, property); + state = MPIState.MPI_Value; + } + else + { // Otherwise not a separator + throw ADP.InvalidMultipartNameIncorrectUsageOfQuotes(property, name); + } + } + break; + } + } + } + + // Resolve final states after parsing the string + switch (state) + { + case MPIState.MPI_Value: // These states require no extra action + case MPIState.MPI_LookForSeparator: + case MPIState.MPI_LookForNextCharOrSeparator: + break; + + case MPIState.MPI_ParseNonQuote: // Dump what ever was parsed + case MPIState.MPI_RightQuote: + parsedNames[stringCount] = sb.ToString(); + break; + + case MPIState.MPI_ParseQuote: // Invalid Ending States + default: + throw ADP.InvalidMultipartNameIncorrectUsageOfQuotes(property, name); + } + + if (parsedNames[0] == null) + { + if (ThrowOnEmptyMultipartName) + { + throw ADP.InvalidMultipartName(property, name); // Name is entirely made up of whitespace + } + } + else + { + // Shuffle the parsed name, from left justification to right justification, i.e. [a][b][null][null] goes to [null][null][a][b] + int offset = limit - stringCount - 1; + if (offset > 0) + { + for (int x = limit - 1; x >= offset; --x) + { + parsedNames[x] = parsedNames[x - offset]; + parsedNames[x - offset] = null; + } + } + } + return parsedNames; + } + } +} diff --git a/src/Common/src/System/Data/Common/NameValuePair.cs b/src/Common/src/System/Data/Common/NameValuePair.cs new file mode 100644 index 000000000..168f55929 --- /dev/null +++ b/src/Common/src/System/Data/Common/NameValuePair.cs @@ -0,0 +1,49 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Diagnostics; + +namespace System.Data.Common +{ + internal sealed class NameValuePair + { + readonly private string _name; + readonly private string _value; + readonly private int _length; + private NameValuePair _next; + + internal NameValuePair(string name, string value, int length) + { + Debug.Assert(!string.IsNullOrEmpty(name), "empty keyname"); + _name = name; + _value = value; + _length = length; + } + + internal int Length + { + get + { + Debug.Assert(0 < _length, "NameValuePair zero Length usage"); + return _length; + } + } + + internal string Name => _name; + internal string Value => _value; + + internal NameValuePair Next + { + get { return _next; } + set + { + if ((null != _next) || (null == value)) + { + throw ADP.InternalError(ADP.InternalErrorCode.NameValuePairNext); + } + _next = value; + } + } + } +} diff --git a/src/Common/src/System/Data/Common/SQLResource.cs b/src/Common/src/System/Data/Common/SQLResource.cs new file mode 100644 index 000000000..d4df9b4a4 --- /dev/null +++ b/src/Common/src/System/Data/Common/SQLResource.cs @@ -0,0 +1,77 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + + + + +//------------------------------------------------------------------------------ + + + + +namespace System.Data.SqlTypes +{ + internal static class SQLResource + { + internal static string NullString => SR.SqlMisc_NullString; + + internal static string MessageString => SR.SqlMisc_MessageString; + + internal static string ArithOverflowMessage => SR.SqlMisc_ArithOverflowMessage; + + internal static string DivideByZeroMessage => SR.SqlMisc_DivideByZeroMessage; + + internal static string NullValueMessage => SR.SqlMisc_NullValueMessage; + + internal static string TruncationMessage => SR.SqlMisc_TruncationMessage; + + internal static string DateTimeOverflowMessage => SR.SqlMisc_DateTimeOverflowMessage; + + internal static string ConcatDiffCollationMessage => SR.SqlMisc_ConcatDiffCollationMessage; + + internal static string CompareDiffCollationMessage => SR.SqlMisc_CompareDiffCollationMessage; + + internal static string InvalidFlagMessage => SR.SqlMisc_InvalidFlagMessage; + + internal static string NumeToDecOverflowMessage => SR.SqlMisc_NumeToDecOverflowMessage; + + internal static string ConversionOverflowMessage => SR.SqlMisc_ConversionOverflowMessage; + + internal static string InvalidDateTimeMessage => SR.SqlMisc_InvalidDateTimeMessage; + + internal static string TimeZoneSpecifiedMessage => SR.SqlMisc_TimeZoneSpecifiedMessage; + + internal static string InvalidArraySizeMessage => SR.SqlMisc_InvalidArraySizeMessage; + + internal static string InvalidPrecScaleMessage => SR.SqlMisc_InvalidPrecScaleMessage; + + internal static string FormatMessage => SR.SqlMisc_FormatMessage; + + internal static string NotFilledMessage => SR.SqlMisc_NotFilledMessage; + + internal static string AlreadyFilledMessage => SR.SqlMisc_AlreadyFilledMessage; + + internal static string ClosedXmlReaderMessage => SR.SqlMisc_ClosedXmlReaderMessage; + + internal static string InvalidOpStreamClosed(string method) + { + return SR.Format(SR.SqlMisc_InvalidOpStreamClosed, method); + } + + internal static string InvalidOpStreamNonWritable(string method) + { + return SR.Format(SR.SqlMisc_InvalidOpStreamNonWritable, method); + } + + internal static string InvalidOpStreamNonReadable(string method) + { + return SR.Format(SR.SqlMisc_InvalidOpStreamNonReadable, method); + } + + internal static string InvalidOpStreamNonSeekable(string method) + { + return SR.Format(SR.SqlMisc_InvalidOpStreamNonSeekable, method); + } + } // SqlResource +} // namespace System diff --git a/src/Common/src/System/Data/ProviderBase/DbConnectionClosed.cs b/src/Common/src/System/Data/ProviderBase/DbConnectionClosed.cs new file mode 100644 index 000000000..1238beb3c --- /dev/null +++ b/src/Common/src/System/Data/ProviderBase/DbConnectionClosed.cs @@ -0,0 +1,138 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Data.Common; +using System.Diagnostics; +using System.Threading.Tasks; + +namespace System.Data.ProviderBase +{ + abstract internal partial class DbConnectionClosed : DbConnectionInternal + { + // Construct an "empty" connection + protected DbConnectionClosed(ConnectionState state, bool hidePassword, bool allowSetConnectionString) : base(state, hidePassword, allowSetConnectionString) + { + } + + public override string ServerVersion => throw ADP.ClosedConnectionError(); + + public override DbTransaction BeginTransaction(IsolationLevel il) => throw ADP.ClosedConnectionError(); + + public override void ChangeDatabase(string database) => throw ADP.ClosedConnectionError(); + + internal override void CloseConnection(DbConnection owningObject, DbConnectionFactory connectionFactory) + { + // not much to do here... + } + + protected override void Deactivate() => ADP.ClosedConnectionError(); + + protected internal override DataTable GetSchema(DbConnectionFactory factory, DbConnectionPoolGroup poolGroup, DbConnection outerConnection, string collectionName, string[] restrictions) + => throw ADP.ClosedConnectionError(); + + protected override DbReferenceCollection CreateReferenceCollection() => throw ADP.ClosedConnectionError(); + + internal override bool TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource retry, DbConnectionOptions userOptions) + => base.TryOpenConnectionInternal(outerConnection, connectionFactory, retry, userOptions); + } + + abstract internal class DbConnectionBusy : DbConnectionClosed + { + protected DbConnectionBusy(ConnectionState state) : base(state, true, false) + { + } + + internal override bool TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource retry, DbConnectionOptions userOptions) + => throw ADP.ConnectionAlreadyOpen(State); + } + + sealed internal class DbConnectionClosedBusy : DbConnectionBusy + { + // Closed Connection, Currently Busy - changing connection string + internal static readonly DbConnectionInternal SingletonInstance = new DbConnectionClosedBusy(); // singleton object + + private DbConnectionClosedBusy() : base(ConnectionState.Closed) + { + } + } + + sealed internal class DbConnectionOpenBusy : DbConnectionBusy + { + // Open Connection, Currently Busy - closing connection + internal static readonly DbConnectionInternal SingletonInstance = new DbConnectionOpenBusy(); // singleton object + + private DbConnectionOpenBusy() : base(ConnectionState.Open) + { + } + } + + sealed internal class DbConnectionClosedConnecting : DbConnectionBusy + { + // Closed Connection, Currently Connecting + + internal static readonly DbConnectionInternal SingletonInstance = new DbConnectionClosedConnecting(); // singleton object + + private DbConnectionClosedConnecting() : base(ConnectionState.Connecting) + { + } + + internal override void CloseConnection(DbConnection owningObject, DbConnectionFactory connectionFactory) + { + connectionFactory.SetInnerConnectionTo(owningObject, DbConnectionClosedPreviouslyOpened.SingletonInstance); + } + + internal override bool TryReplaceConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource retry, DbConnectionOptions userOptions) + => TryOpenConnection(outerConnection, connectionFactory, retry, userOptions); + + internal override bool TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource retry, DbConnectionOptions userOptions) + { + if (retry == null || !retry.Task.IsCompleted) + { + // retry is null if this is a synchronous call + + // if someone calls Open or OpenAsync while in this state, + // then the retry task will not be completed + + throw ADP.ConnectionAlreadyOpen(State); + } + + // we are completing an asynchronous open + Debug.Assert(retry.Task.Status == TaskStatus.RanToCompletion, "retry task must be completed successfully"); + DbConnectionInternal openConnection = retry.Task.Result; + if (null == openConnection) + { + connectionFactory.SetInnerConnectionTo(outerConnection, this); + throw ADP.InternalConnectionError(ADP.ConnectionError.GetConnectionReturnsNull); + } + connectionFactory.SetInnerConnectionEvent(outerConnection, openConnection); + + return true; + } + } + + sealed internal class DbConnectionClosedNeverOpened : DbConnectionClosed + { + // Closed Connection, Has Never Been Opened + + internal static readonly DbConnectionInternal SingletonInstance = new DbConnectionClosedNeverOpened(); // singleton object + + private DbConnectionClosedNeverOpened() : base(ConnectionState.Closed, false, true) + { + } + } + + sealed internal class DbConnectionClosedPreviouslyOpened : DbConnectionClosed + { + // Closed Connection, Has Previously Been Opened + + internal static readonly DbConnectionInternal SingletonInstance = new DbConnectionClosedPreviouslyOpened(); // singleton object + + private DbConnectionClosedPreviouslyOpened() : base(ConnectionState.Closed, true, true) + { + } + + internal override bool TryReplaceConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource retry, DbConnectionOptions userOptions) + => TryOpenConnection(outerConnection, connectionFactory, retry, userOptions); + } +} diff --git a/src/Common/src/System/Data/ProviderBase/DbConnectionFactory.cs b/src/Common/src/System/Data/ProviderBase/DbConnectionFactory.cs new file mode 100644 index 000000000..9ac3330b4 --- /dev/null +++ b/src/Common/src/System/Data/ProviderBase/DbConnectionFactory.cs @@ -0,0 +1,427 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Collections.Generic; +using System.Diagnostics; +using System.Data.Common; +using System.Threading; +using System.Threading.Tasks; + +namespace System.Data.ProviderBase +{ + internal abstract partial class DbConnectionFactory + { + private Dictionary _connectionPoolGroups; + private readonly List _poolsToRelease; + private readonly List _poolGroupsToRelease; + private readonly Timer _pruningTimer; + private const int PruningDueTime = 4 * 60 * 1000; // 4 minutes + private const int PruningPeriod = 30 * 1000; // thirty seconds + + + // s_pendingOpenNonPooled is an array of tasks used to throttle creation of non-pooled connections to + // a maximum of Environment.ProcessorCount at a time. + private static uint s_pendingOpenNonPooledNext = 0; + private static Task[] s_pendingOpenNonPooled = new Task[Environment.ProcessorCount]; + private static Task s_completedTask; + + protected DbConnectionFactory() + { + _connectionPoolGroups = new Dictionary(); + _poolsToRelease = new List(); + _poolGroupsToRelease = new List(); + _pruningTimer = CreatePruningTimer(); + } + + + abstract public DbProviderFactory ProviderFactory + { + get; + } + + + public void ClearAllPools() + { + Dictionary connectionPoolGroups = _connectionPoolGroups; + foreach (KeyValuePair entry in connectionPoolGroups) + { + DbConnectionPoolGroup poolGroup = entry.Value; + if (null != poolGroup) + { + poolGroup.Clear(); + } + } + } + + public void ClearPool(DbConnection connection) + { + ADP.CheckArgumentNull(connection, nameof(connection)); + + DbConnectionPoolGroup poolGroup = GetConnectionPoolGroup(connection); + if (null != poolGroup) + { + poolGroup.Clear(); + } + } + + public void ClearPool(DbConnectionPoolKey key) + { + Debug.Assert(key != null, "key cannot be null"); + ADP.CheckArgumentNull(key.ConnectionString, nameof(key) + "." + nameof(key.ConnectionString)); + + DbConnectionPoolGroup poolGroup; + Dictionary connectionPoolGroups = _connectionPoolGroups; + if (connectionPoolGroups.TryGetValue(key, out poolGroup)) + { + poolGroup.Clear(); + } + } + + internal virtual DbConnectionPoolProviderInfo CreateConnectionPoolProviderInfo(DbConnectionOptions connectionOptions) + { + return null; + } + + + internal DbConnectionInternal CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup, DbConnectionOptions userOptions) + { + Debug.Assert(null != owningConnection, "null owningConnection?"); + Debug.Assert(null != poolGroup, "null poolGroup?"); + + DbConnectionOptions connectionOptions = poolGroup.ConnectionOptions; + DbConnectionPoolGroupProviderInfo poolGroupProviderInfo = poolGroup.ProviderInfo; + DbConnectionPoolKey poolKey = poolGroup.PoolKey; + + DbConnectionInternal newConnection = CreateConnection(connectionOptions, poolKey, poolGroupProviderInfo, null, owningConnection, userOptions); + if (null != newConnection) + { + newConnection.MakeNonPooledObject(owningConnection); + } + return newConnection; + } + + internal DbConnectionInternal CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) + { + Debug.Assert(null != pool, "null pool?"); + DbConnectionPoolGroupProviderInfo poolGroupProviderInfo = pool.PoolGroup.ProviderInfo; + + DbConnectionInternal newConnection = CreateConnection(options, poolKey, poolGroupProviderInfo, pool, owningObject, userOptions); + if (null != newConnection) + { + newConnection.MakePooledConnection(pool); + } + return newConnection; + } + + virtual internal DbConnectionPoolGroupProviderInfo CreateConnectionPoolGroupProviderInfo(DbConnectionOptions connectionOptions) + { + return null; + } + + private Timer CreatePruningTimer() => + ADP.UnsafeCreateTimer( + new TimerCallback(PruneConnectionPoolGroups), + null, + PruningDueTime, + PruningPeriod); + + protected DbConnectionOptions FindConnectionOptions(DbConnectionPoolKey key) + { + Debug.Assert(key != null, "key cannot be null"); + if (!string.IsNullOrEmpty(key.ConnectionString)) + { + DbConnectionPoolGroup connectionPoolGroup; + Dictionary connectionPoolGroups = _connectionPoolGroups; + if (connectionPoolGroups.TryGetValue(key, out connectionPoolGroup)) + { + return connectionPoolGroup.ConnectionOptions; + } + } + return null; + } + + private static Task GetCompletedTask() + { + Debug.Assert(Monitor.IsEntered(s_pendingOpenNonPooled), $"Expected {nameof(s_pendingOpenNonPooled)} lock to be held."); + return s_completedTask ?? (s_completedTask = Task.FromResult(null)); + } + + private DbConnectionPool GetConnectionPool(DbConnection owningObject, DbConnectionPoolGroup connectionPoolGroup) + { + // if poolgroup is disabled, it will be replaced with a new entry + + Debug.Assert(null != owningObject, "null owningObject?"); + Debug.Assert(null != connectionPoolGroup, "null connectionPoolGroup?"); + + // It is possible that while the outer connection object has + // been sitting around in a closed and unused state in some long + // running app, the pruner may have come along and remove this + // the pool entry from the master list. If we were to use a + // pool entry in this state, we would create "unmanaged" pools, + // which would be bad. To avoid this problem, we automagically + // re-create the pool entry whenever it's disabled. + + // however, don't rebuild connectionOptions if no pooling is involved - let new connections do that work + if (connectionPoolGroup.IsDisabled && (null != connectionPoolGroup.PoolGroupOptions)) + { + // reusing existing pool option in case user originally used SetConnectionPoolOptions + DbConnectionPoolGroupOptions poolOptions = connectionPoolGroup.PoolGroupOptions; + + // get the string to hash on again + DbConnectionOptions connectionOptions = connectionPoolGroup.ConnectionOptions; + Debug.Assert(null != connectionOptions, "prevent expansion of connectionString"); + + connectionPoolGroup = GetConnectionPoolGroup(connectionPoolGroup.PoolKey, poolOptions, ref connectionOptions); + Debug.Assert(null != connectionPoolGroup, "null connectionPoolGroup?"); + SetConnectionPoolGroup(owningObject, connectionPoolGroup); + } + DbConnectionPool connectionPool = connectionPoolGroup.GetConnectionPool(this); + return connectionPool; + } + + internal DbConnectionPoolGroup GetConnectionPoolGroup(DbConnectionPoolKey key, DbConnectionPoolGroupOptions poolOptions, ref DbConnectionOptions userConnectionOptions) + { + if (string.IsNullOrEmpty(key.ConnectionString)) + { + return (DbConnectionPoolGroup)null; + } + + DbConnectionPoolGroup connectionPoolGroup; + Dictionary connectionPoolGroups = _connectionPoolGroups; + if (!connectionPoolGroups.TryGetValue(key, out connectionPoolGroup) || (connectionPoolGroup.IsDisabled && (null != connectionPoolGroup.PoolGroupOptions))) + { + // If we can't find an entry for the connection string in + // our collection of pool entries, then we need to create a + // new pool entry and add it to our collection. + + DbConnectionOptions connectionOptions = CreateConnectionOptions(key.ConnectionString, userConnectionOptions); + if (null == connectionOptions) + { + throw ADP.InternalConnectionError(ADP.ConnectionError.ConnectionOptionsMissing); + } + + if (null == userConnectionOptions) + { // we only allow one expansion on the connection string + userConnectionOptions = connectionOptions; + } + + // We don't support connection pooling on Win9x + if (null == poolOptions) + { + if (null != connectionPoolGroup) + { + // reusing existing pool option in case user originally used SetConnectionPoolOptions + poolOptions = connectionPoolGroup.PoolGroupOptions; + } + else + { + // Note: may return null for non-pooled connections + poolOptions = CreateConnectionPoolGroupOptions(connectionOptions); + } + } + + lock (this) + { + connectionPoolGroups = _connectionPoolGroups; + if (!connectionPoolGroups.TryGetValue(key, out connectionPoolGroup)) + { + DbConnectionPoolGroup newConnectionPoolGroup = new DbConnectionPoolGroup(connectionOptions, key, poolOptions); + newConnectionPoolGroup.ProviderInfo = CreateConnectionPoolGroupProviderInfo(connectionOptions); + + // build new dictionary with space for new connection string + Dictionary newConnectionPoolGroups = new Dictionary(1 + connectionPoolGroups.Count); + foreach (KeyValuePair entry in connectionPoolGroups) + { + newConnectionPoolGroups.Add(entry.Key, entry.Value); + } + + // lock prevents race condition with PruneConnectionPoolGroups + newConnectionPoolGroups.Add(key, newConnectionPoolGroup); + connectionPoolGroup = newConnectionPoolGroup; + _connectionPoolGroups = newConnectionPoolGroups; + } + else + { + Debug.Assert(!connectionPoolGroup.IsDisabled, "Disabled pool entry discovered"); + } + } + Debug.Assert(null != connectionPoolGroup, "how did we not create a pool entry?"); + Debug.Assert(null != userConnectionOptions, "how did we not have user connection options?"); + } + else if (null == userConnectionOptions) + { + userConnectionOptions = connectionPoolGroup.ConnectionOptions; + } + return connectionPoolGroup; + } + + + private void PruneConnectionPoolGroups(object state) + { + // First, walk the pool release list and attempt to clear each + // pool, when the pool is finally empty, we dispose of it. If the + // pool isn't empty, it's because there are active connections or + // distributed transactions that need it. + lock (_poolsToRelease) + { + if (0 != _poolsToRelease.Count) + { + DbConnectionPool[] poolsToRelease = _poolsToRelease.ToArray(); + foreach (DbConnectionPool pool in poolsToRelease) + { + if (null != pool) + { + pool.Clear(); + + if (0 == pool.Count) + { + _poolsToRelease.Remove(pool); + } + } + } + } + } + + // Next, walk the pool entry release list and dispose of each + // pool entry when it is finally empty. If the pool entry isn't + // empty, it's because there are active pools that need it. + lock (_poolGroupsToRelease) + { + if (0 != _poolGroupsToRelease.Count) + { + DbConnectionPoolGroup[] poolGroupsToRelease = _poolGroupsToRelease.ToArray(); + foreach (DbConnectionPoolGroup poolGroup in poolGroupsToRelease) + { + if (null != poolGroup) + { + int poolsLeft = poolGroup.Clear(); // may add entries to _poolsToRelease + + if (0 == poolsLeft) + { + _poolGroupsToRelease.Remove(poolGroup); + } + } + } + } + } + + // Finally, we walk through the collection of connection pool entries + // and prune each one. This will cause any empty pools to be put + // into the release list. + lock (this) + { + Dictionary connectionPoolGroups = _connectionPoolGroups; + Dictionary newConnectionPoolGroups = new Dictionary(connectionPoolGroups.Count); + + foreach (KeyValuePair entry in connectionPoolGroups) + { + if (null != entry.Value) + { + Debug.Assert(!entry.Value.IsDisabled, "Disabled pool entry discovered"); + + // entries start active and go idle during prune if all pools are gone + // move idle entries from last prune pass to a queue for pending release + // otherwise process entry which may move it from active to idle + if (entry.Value.Prune()) + { // may add entries to _poolsToRelease + QueuePoolGroupForRelease(entry.Value); + } + else + { + newConnectionPoolGroups.Add(entry.Key, entry.Value); + } + } + } + _connectionPoolGroups = newConnectionPoolGroups; + } + } + + internal void QueuePoolForRelease(DbConnectionPool pool, bool clearing) + { + // Queue the pool up for release -- we'll clear it out and dispose + // of it as the last part of the pruning timer callback so we don't + // do it with the pool entry or the pool collection locked. + Debug.Assert(null != pool, "null pool?"); + + // set the pool to the shutdown state to force all active + // connections to be automatically disposed when they + // are returned to the pool + pool.Shutdown(); + + lock (_poolsToRelease) + { + if (clearing) + { + pool.Clear(); + } + _poolsToRelease.Add(pool); + } + } + + internal void QueuePoolGroupForRelease(DbConnectionPoolGroup poolGroup) + { + Debug.Assert(null != poolGroup, "null poolGroup?"); + + lock (_poolGroupsToRelease) + { + _poolGroupsToRelease.Add(poolGroup); + } + } + + virtual protected DbConnectionInternal CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) + { + return CreateConnection(options, poolKey, poolGroupProviderInfo, pool, owningConnection); + } + + internal DbMetaDataFactory GetMetaDataFactory(DbConnectionPoolGroup connectionPoolGroup, DbConnectionInternal internalConnection) + { + Debug.Assert(connectionPoolGroup != null, "connectionPoolGroup may not be null."); + + // get the matadatafactory from the pool entry. If it does not already have one + // create one and save it on the pool entry + DbMetaDataFactory metaDataFactory = connectionPoolGroup.MetaDataFactory; + + // consider serializing this so we don't construct multiple metadata factories + // if two threads happen to hit this at the same time. One will be GC'd + if (metaDataFactory == null) + { + bool allowCache = false; + metaDataFactory = CreateMetaDataFactory(internalConnection, out allowCache); + if (allowCache) + { + connectionPoolGroup.MetaDataFactory = metaDataFactory; + } + } + return metaDataFactory; + } + + protected virtual DbMetaDataFactory CreateMetaDataFactory(DbConnectionInternal internalConnection, out bool cacheMetaDataFactory) + { + // providers that support GetSchema must override this with a method that creates a meta data + // factory appropriate for them. + cacheMetaDataFactory = false; + throw ADP.NotSupported(); + } + + abstract protected DbConnectionInternal CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection); + + abstract protected DbConnectionOptions CreateConnectionOptions(string connectionString, DbConnectionOptions previous); + + abstract protected DbConnectionPoolGroupOptions CreateConnectionPoolGroupOptions(DbConnectionOptions options); + + abstract internal DbConnectionPoolGroup GetConnectionPoolGroup(DbConnection connection); + + abstract internal DbConnectionInternal GetInnerConnection(DbConnection connection); + + abstract internal void PermissionDemand(DbConnection outerConnection); + + abstract internal void SetConnectionPoolGroup(DbConnection outerConnection, DbConnectionPoolGroup poolGroup); + + abstract internal void SetInnerConnectionEvent(DbConnection owningObject, DbConnectionInternal to); + + abstract internal bool SetInnerConnectionFrom(DbConnection owningObject, DbConnectionInternal to, DbConnectionInternal from); + + abstract internal void SetInnerConnectionTo(DbConnection owningObject, DbConnectionInternal to); + } +} diff --git a/src/Common/src/System/Data/ProviderBase/DbConnectionInternal.cs b/src/Common/src/System/Data/ProviderBase/DbConnectionInternal.cs new file mode 100644 index 000000000..945a1c5ed --- /dev/null +++ b/src/Common/src/System/Data/ProviderBase/DbConnectionInternal.cs @@ -0,0 +1,434 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Data.Common; +using System.Diagnostics; +using System.Threading; +using System.Threading.Tasks; +using System.Transactions; + + +namespace System.Data.ProviderBase +{ + internal abstract partial class DbConnectionInternal + { + internal static readonly StateChangeEventArgs StateChangeClosed = new StateChangeEventArgs(ConnectionState.Open, ConnectionState.Closed); + internal static readonly StateChangeEventArgs StateChangeOpen = new StateChangeEventArgs(ConnectionState.Closed, ConnectionState.Open); + + private readonly bool _allowSetConnectionString; + private readonly bool _hidePassword; + private readonly ConnectionState _state; + + private readonly WeakReference _owningObject = new WeakReference(null, false); // [usage must be thread safe] the owning object, when not in the pool. (both Pooled and Non-Pooled connections) + + private DbConnectionPool _connectionPool; // the pooler that the connection came from (Pooled connections only) + private DbReferenceCollection _referenceCollection; // collection of objects that we need to notify in some way when we're being deactivated + private int _pooledCount; // [usage must be thread safe] the number of times this object has been pushed into the pool less the number of times it's been popped (0 != inPool) + + private bool _connectionIsDoomed; // true when the connection should no longer be used. + private bool _cannotBePooled; // true when the connection should no longer be pooled. + + private DateTime _createTime; // when the connection was created. + +#if DEBUG + private int _activateCount; // debug only counter to verify activate/deactivates are in sync. +#endif //DEBUG + + protected DbConnectionInternal() : this(ConnectionState.Open, true, false) + { + } + + // Constructor for internal connections + internal DbConnectionInternal(ConnectionState state, bool hidePassword, bool allowSetConnectionString) + { + _allowSetConnectionString = allowSetConnectionString; + _hidePassword = hidePassword; + _state = state; + } + + internal bool AllowSetConnectionString + { + get + { + return _allowSetConnectionString; + } + } + + internal bool CanBePooled + { + get + { + bool flag = (!_connectionIsDoomed && !_cannotBePooled && !_owningObject.IsAlive); + return flag; + } + } + + protected internal bool IsConnectionDoomed + { + get + { + return _connectionIsDoomed; + } + } + + internal bool IsEmancipated + { + get + { + // NOTE: There are race conditions between PrePush, PostPop and this + // property getter -- only use this while this object is locked; + // (DbConnectionPool.Clear and ReclaimEmancipatedObjects + // do this for us) + + // The functionality is as follows: + // + // _pooledCount is incremented when the connection is pushed into the pool + // _pooledCount is decremented when the connection is popped from the pool + // _pooledCount is set to -1 when the connection is not pooled (just in case...) + // + // That means that: + // + // _pooledCount > 1 connection is in the pool multiple times (This should not happen) + // _pooledCount == 1 connection is in the pool + // _pooledCount == 0 connection is out of the pool + // _pooledCount == -1 connection is not a pooled connection; we shouldn't be here for non-pooled connections. + // _pooledCount < -1 connection out of the pool multiple times + // + // Now, our job is to return TRUE when the connection is out + // of the pool and it's owning object is no longer around to + // return it. + + bool value = (_pooledCount < 1) && !_owningObject.IsAlive; + return value; + } + } + + internal bool IsInPool + { + get + { + Debug.Assert(_pooledCount <= 1 && _pooledCount >= -1, "Pooled count for object is invalid"); + return (_pooledCount == 1); + } + } + + + protected internal object Owner + { + // We use a weak reference to the owning object so we can identify when + // it has been garbage collected without thowing exceptions. + get + { + return _owningObject.Target; + } + } + + internal DbConnectionPool Pool + { + get + { + return _connectionPool; + } + } + + protected internal DbReferenceCollection ReferenceCollection + { + get + { + return _referenceCollection; + } + } + + abstract public string ServerVersion + { + get; + } + + // this should be abstract but until it is added to all the providers virtual will have to do + virtual public string ServerVersionNormalized + { + get + { + throw ADP.NotSupported(); + } + } + + public bool ShouldHidePassword + { + get + { + return _hidePassword; + } + } + + public ConnectionState State + { + get + { + return _state; + } + } + + internal void AddWeakReference(object value, int tag) + { + if (null == _referenceCollection) + { + _referenceCollection = CreateReferenceCollection(); + if (null == _referenceCollection) + { + throw ADP.InternalError(ADP.InternalErrorCode.CreateReferenceCollectionReturnedNull); + } + } + _referenceCollection.Add(value, tag); + } + + abstract public DbTransaction BeginTransaction(IsolationLevel il); + + virtual public void ChangeDatabase(string value) + { + throw ADP.MethodNotImplemented(); + } + + virtual internal void PrepareForReplaceConnection() + { + // By default, there is no preparation required + } + + virtual protected void PrepareForCloseConnection() + { + // By default, there is no preparation required + } + + virtual protected object ObtainAdditionalLocksForClose() + { + return null; // no additional locks in default implementation + } + + virtual protected void ReleaseAdditionalLocksForClose(object lockToken) + { + // no additional locks in default implementation + } + + virtual protected DbReferenceCollection CreateReferenceCollection() + { + throw ADP.InternalError(ADP.InternalErrorCode.AttemptingToConstructReferenceCollectionOnStaticObject); + } + + abstract protected void Deactivate(); + + internal void DeactivateConnection() + { + // Internal method called from the connection pooler so we don't expose + // the Deactivate method publicly. + +#if DEBUG + int activateCount = Interlocked.Decrement(ref _activateCount); +#endif // DEBUG + + + if (!_connectionIsDoomed && Pool.UseLoadBalancing) + { + // If we're not already doomed, check the connection's lifetime and + // doom it if it's lifetime has elapsed. + + DateTime now = DateTime.UtcNow; + if ((now.Ticks - _createTime.Ticks) > Pool.LoadBalanceTimeout.Ticks) + { + DoNotPoolThisConnection(); + } + } + Deactivate(); + } + + protected internal void DoNotPoolThisConnection() + { + _cannotBePooled = true; + } + + /// Ensure that this connection cannot be put back into the pool. + protected internal void DoomThisConnection() + { + _connectionIsDoomed = true; + } + + protected internal virtual DataTable GetSchema(DbConnectionFactory factory, DbConnectionPoolGroup poolGroup, DbConnection outerConnection, string collectionName, string[] restrictions) + { + Debug.Assert(outerConnection != null, "outerConnection may not be null."); + + DbMetaDataFactory metaDataFactory = factory.GetMetaDataFactory(poolGroup, this); + Debug.Assert(metaDataFactory != null, "metaDataFactory may not be null."); + + return metaDataFactory.GetSchema(outerConnection, collectionName, restrictions); + } + + internal void MakeNonPooledObject(object owningObject) + { + // Used by DbConnectionFactory to indicate that this object IS NOT part of + // a connection pool. + + _connectionPool = null; + _owningObject.Target = owningObject; + _pooledCount = -1; + } + + internal void MakePooledConnection(DbConnectionPool connectionPool) + { + // Used by DbConnectionFactory to indicate that this object IS part of + // a connection pool. + _createTime = DateTime.UtcNow; + + _connectionPool = connectionPool; + } + + internal void NotifyWeakReference(int message) + { + DbReferenceCollection referenceCollection = ReferenceCollection; + if (null != referenceCollection) + { + referenceCollection.Notify(message); + } + } + + internal virtual void OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) + { + if (!TryOpenConnection(outerConnection, connectionFactory, null, null)) + { + throw ADP.InternalError(ADP.InternalErrorCode.SynchronousConnectReturnedPending); + } + } + + /// The default implementation is for the open connection objects, and + /// it simply throws. Our private closed-state connection objects + /// override this and do the correct thing. + // User code should either override DbConnectionInternal.Activate when it comes out of the pool + // or override DbConnectionFactory.CreateConnection when the connection is created for non-pooled connections + internal virtual bool TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource retry, DbConnectionOptions userOptions) + { + throw ADP.ConnectionAlreadyOpen(State); + } + + internal virtual bool TryReplaceConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource retry, DbConnectionOptions userOptions) + { + throw ADP.MethodNotImplemented(); + } + + protected bool TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource retry, DbConnectionOptions userOptions) + { + // ?->Connecting: prevent set_ConnectionString during Open + if (connectionFactory.SetInnerConnectionFrom(outerConnection, DbConnectionClosedConnecting.SingletonInstance, this)) + { + DbConnectionInternal openConnection = null; + try + { + connectionFactory.PermissionDemand(outerConnection); + if (!connectionFactory.TryGetConnection(outerConnection, retry, userOptions, this, out openConnection)) + { + return false; + } + } + catch + { + // This should occur for all exceptions, even ADP.UnCatchableExceptions. + connectionFactory.SetInnerConnectionTo(outerConnection, this); + throw; + } + if (null == openConnection) + { + connectionFactory.SetInnerConnectionTo(outerConnection, this); + throw ADP.InternalConnectionError(ADP.ConnectionError.GetConnectionReturnsNull); + } + connectionFactory.SetInnerConnectionEvent(outerConnection, openConnection); + } + + return true; + } + + internal void PrePush(object expectedOwner) + { + // Called by DbConnectionPool when we're about to be put into it's pool, we + // take this opportunity to ensure ownership and pool counts are legit. + + // IMPORTANT NOTE: You must have taken a lock on the object before + // you call this method to prevent race conditions with Clear and + // ReclaimEmancipatedObjects. + + //3 // The following tests are retail assertions of things we can't allow to happen. + if (null == expectedOwner) + { + if (null != _owningObject.Target) + { + throw ADP.InternalError(ADP.InternalErrorCode.UnpooledObjectHasOwner); // new unpooled object has an owner + } + } + else if (_owningObject.Target != expectedOwner) + { + throw ADP.InternalError(ADP.InternalErrorCode.UnpooledObjectHasWrongOwner); // unpooled object has incorrect owner + } + if (0 != _pooledCount) + { + throw ADP.InternalError(ADP.InternalErrorCode.PushingObjectSecondTime); // pushing object onto stack a second time + } + _pooledCount++; + _owningObject.Target = null; // NOTE: doing this and checking for InternalError.PooledObjectHasOwner degrades the close by 2% + } + + internal void PostPop(object newOwner) + { + // Called by DbConnectionPool right after it pulls this from it's pool, we + // take this opportunity to ensure ownership and pool counts are legit. + + Debug.Assert(!IsEmancipated, "pooled object not in pool"); + + // When another thread is clearing this pool, it + // will doom all connections in this pool without prejudice which + // causes the following assert to fire, which really mucks up stress + // against checked bits. The assert is benign, so we're commenting + // it out. + //Debug.Assert(CanBePooled, "pooled object is not poolable"); + + // IMPORTANT NOTE: You must have taken a lock on the object before + // you call this method to prevent race conditions with Clear and + // ReclaimEmancipatedObjects. + + if (null != _owningObject.Target) + { + throw ADP.InternalError(ADP.InternalErrorCode.PooledObjectHasOwner); // pooled connection already has an owner! + } + _owningObject.Target = newOwner; + _pooledCount--; + //3 // The following tests are retail assertions of things we can't allow to happen. + if (null != Pool) + { + if (0 != _pooledCount) + { + throw ADP.InternalError(ADP.InternalErrorCode.PooledObjectInPoolMoreThanOnce); // popping object off stack with multiple pooledCount + } + } + else if (-1 != _pooledCount) + { + throw ADP.InternalError(ADP.InternalErrorCode.NonPooledObjectUsedMoreThanOnce); // popping object off stack with multiple pooledCount + } + } + + internal void RemoveWeakReference(object value) + { + DbReferenceCollection referenceCollection = ReferenceCollection; + if (null != referenceCollection) + { + referenceCollection.Remove(value); + } + } + + /// + /// When overridden in a derived class, will check if the underlying connection is still actually alive + /// + /// If true an exception will be thrown if the connection is dead instead of returning true\false + /// (this allows the caller to have the real reason that the connection is not alive (e.g. network error, etc)) + /// True if the connection is still alive, otherwise false (If not overridden, then always true) + internal virtual bool IsConnectionAlive(bool throwOnException = false) + { + return true; + } + } +} diff --git a/src/Common/src/System/Data/ProviderBase/DbConnectionPoolGroup.cs b/src/Common/src/System/Data/ProviderBase/DbConnectionPoolGroup.cs new file mode 100644 index 000000000..f32c4d0d9 --- /dev/null +++ b/src/Common/src/System/Data/ProviderBase/DbConnectionPoolGroup.cs @@ -0,0 +1,286 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + + +using System.Collections.Concurrent; +using System.Data.Common; +using System.Diagnostics; + +namespace System.Data.ProviderBase +{ + // set_ConnectionString calls DbConnectionFactory.GetConnectionPoolGroup + // when not found a new pool entry is created and potentially added + // DbConnectionPoolGroup starts in the Active state + + // Open calls DbConnectionFactory.GetConnectionPool + // if the existing pool entry is Disabled, GetConnectionPoolGroup is called for a new entry + // DbConnectionFactory.GetConnectionPool calls DbConnectionPoolGroup.GetConnectionPool + + // DbConnectionPoolGroup.GetConnectionPool will return pool for the current identity + // or null if identity is restricted or pooling is disabled or state is disabled at time of add + // state changes are Active->Active, Idle->Active + + // DbConnectionFactory.PruneConnectionPoolGroups calls Prune + // which will QueuePoolForRelease on all empty pools + // and once no pools remain, change state from Active->Idle->Disabled + // Once Disabled, factory can remove its reference to the pool entry + + sealed internal class DbConnectionPoolGroup + { + private readonly DbConnectionOptions _connectionOptions; + private readonly DbConnectionPoolKey _poolKey; + private readonly DbConnectionPoolGroupOptions _poolGroupOptions; + private ConcurrentDictionary _poolCollection; + + private int _state; // see PoolGroupState* below + + private DbConnectionPoolGroupProviderInfo _providerInfo; + private DbMetaDataFactory _metaDataFactory; + + // always lock this before changing _state, we don't want to move out of the 'Disabled' state + // PoolGroupStateUninitialized = 0; + private const int PoolGroupStateActive = 1; // initial state, GetPoolGroup from cache, connection Open + private const int PoolGroupStateIdle = 2; // all pools are pruned via Clear + private const int PoolGroupStateDisabled = 4; // factory pool entry pruning method + + internal DbConnectionPoolGroup(DbConnectionOptions connectionOptions, DbConnectionPoolKey key, DbConnectionPoolGroupOptions poolGroupOptions) + { + Debug.Assert(null != connectionOptions, "null connection options"); + + _connectionOptions = connectionOptions; + _poolKey = key; + _poolGroupOptions = poolGroupOptions; + + // always lock this object before changing state + // HybridDictionary does not create any sub-objects until add + // so it is safe to use for non-pooled connection as long as + // we check _poolGroupOptions first + _poolCollection = new ConcurrentDictionary(); + _state = PoolGroupStateActive; + } + + internal DbConnectionOptions ConnectionOptions => _connectionOptions; + + internal DbConnectionPoolKey PoolKey => _poolKey; + + internal DbConnectionPoolGroupProviderInfo ProviderInfo + { + get + { + return _providerInfo; + } + set + { + _providerInfo = value; + if (null != value) + { + _providerInfo.PoolGroup = this; + } + } + } + + internal bool IsDisabled => (PoolGroupStateDisabled == _state); + + internal DbConnectionPoolGroupOptions PoolGroupOptions => _poolGroupOptions; + + internal DbMetaDataFactory MetaDataFactory + { + get + { + return _metaDataFactory; + } + + set + { + _metaDataFactory = value; + } + } + + internal int Clear() + { + // must be multi-thread safe with competing calls by Clear and Prune via background thread + // will return the number of connections in the group after clearing has finished + + // First, note the old collection and create a new collection to be used + ConcurrentDictionary oldPoolCollection = null; + lock (this) + { + if (_poolCollection.Count > 0) + { + oldPoolCollection = _poolCollection; + _poolCollection = new ConcurrentDictionary(); + } + } + + // Then, if a new collection was created, release the pools from the old collection + if (oldPoolCollection != null) + { + foreach (var entry in oldPoolCollection) + { + DbConnectionPool pool = entry.Value; + if (pool != null) + { + DbConnectionFactory connectionFactory = pool.ConnectionFactory; + connectionFactory.QueuePoolForRelease(pool, true); + } + } + } + + // Finally, return the pool collection count - this may be non-zero if something was added while we were clearing + return _poolCollection.Count; + } + + internal DbConnectionPool GetConnectionPool(DbConnectionFactory connectionFactory) + { + // When this method returns null it indicates that the connection + // factory should not use pooling. + + // We don't support connection pooling on Win9x; + // PoolGroupOptions will only be null when we're not supposed to pool + // connections. + DbConnectionPool pool = null; + if (null != _poolGroupOptions) + { + DbConnectionPoolIdentity currentIdentity = DbConnectionPoolIdentity.NoIdentity; + + if (_poolGroupOptions.PoolByIdentity) + { + // if we're pooling by identity (because integrated security is + // being used for these connections) then we need to go out and + // search for the connectionPool that matches the current identity. + + currentIdentity = DbConnectionPoolIdentity.GetCurrent(); + + // If the current token is restricted in some way, then we must + // not attempt to pool these connections. + if (currentIdentity.IsRestricted) + { + currentIdentity = null; + } + } + + if (null != currentIdentity) + { + if (!_poolCollection.TryGetValue(currentIdentity, out pool)) // find the pool + { + lock (this) + { + // Did someone already add it to the list? + if (!_poolCollection.TryGetValue(currentIdentity, out pool)) + { + DbConnectionPoolProviderInfo connectionPoolProviderInfo = connectionFactory.CreateConnectionPoolProviderInfo(this.ConnectionOptions); + DbConnectionPool newPool = new DbConnectionPool(connectionFactory, this, currentIdentity, connectionPoolProviderInfo); + + if (MarkPoolGroupAsActive()) + { + // If we get here, we know for certain that we there isn't + // a pool that matches the current identity, so we have to + // add the optimistically created one + newPool.Startup(); // must start pool before usage + bool addResult = _poolCollection.TryAdd(currentIdentity, newPool); + Debug.Assert(addResult, "No other pool with current identity should exist at this point"); + pool = newPool; + } + else + { + // else pool entry has been disabled so don't create new pools + Debug.Assert(PoolGroupStateDisabled == _state, "state should be disabled"); + + // don't need to call connectionFactory.QueuePoolForRelease(newPool) because + // pool callbacks were delayed and no risk of connections being created + newPool.Shutdown(); + } + } + else + { + // else found an existing pool to use instead + Debug.Assert(PoolGroupStateActive == _state, "state should be active since a pool exists and lock holds"); + } + } + } + // the found pool could be in any state + } + } + + if (null == pool) + { + lock (this) + { + // keep the pool entry state active when not pooling + MarkPoolGroupAsActive(); + } + } + return pool; + } + + private bool MarkPoolGroupAsActive() + { + // when getting a connection, make the entry active if it was idle (but not disabled) + // must always lock this before calling + + if (PoolGroupStateIdle == _state) + { + _state = PoolGroupStateActive; + } + return (PoolGroupStateActive == _state); + } + + internal bool Prune() + { + // must only call from DbConnectionFactory.PruneConnectionPoolGroups on background timer thread + // must lock(DbConnectionFactory._connectionPoolGroups.SyncRoot) before calling ReadyToRemove + // to avoid conflict with DbConnectionFactory.CreateConnectionPoolGroup replacing pool entry + lock (this) + { + if (_poolCollection.Count > 0) + { + var newPoolCollection = new ConcurrentDictionary(); + + foreach (var entry in _poolCollection) + { + DbConnectionPool pool = entry.Value; + if (pool != null) + { + // Actually prune the pool if there are no connections in the pool and no errors occurred. + // Empty pool during pruning indicates zero or low activity, but + // an error state indicates the pool needs to stay around to + // throttle new connection attempts. + if ((!pool.ErrorOccurred) && (0 == pool.Count)) + { + // Order is important here. First we remove the pool + // from the collection of pools so no one will try + // to use it while we're processing and finally we put the + // pool into a list of pools to be released when they + // are completely empty. + DbConnectionFactory connectionFactory = pool.ConnectionFactory; + + connectionFactory.QueuePoolForRelease(pool, false); + } + else + { + newPoolCollection.TryAdd(entry.Key, entry.Value); + } + } + } + _poolCollection = newPoolCollection; + } + + // must be pruning thread to change state and no connections + // otherwise pruning thread risks making entry disabled soon after user calls ClearPool + if (0 == _poolCollection.Count) + { + if (PoolGroupStateActive == _state) + { + _state = PoolGroupStateIdle; + } + else if (PoolGroupStateIdle == _state) + { + _state = PoolGroupStateDisabled; + } + } + return (PoolGroupStateDisabled == _state); + } + } + } +} diff --git a/src/Common/src/System/Data/ProviderBase/DbMetaDataFactory.cs b/src/Common/src/System/Data/ProviderBase/DbMetaDataFactory.cs new file mode 100644 index 000000000..81e2d8a6b --- /dev/null +++ b/src/Common/src/System/Data/ProviderBase/DbMetaDataFactory.cs @@ -0,0 +1,563 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Data.Common; +using System.Diagnostics; +using System.Globalization; +using System.IO; + +namespace System.Data.ProviderBase +{ + internal class DbMetaDataFactory + { + + private DataSet _metaDataCollectionsDataSet; + private string _normalizedServerVersion; + private string _serverVersionString; + // well known column names + private const string _collectionName = "CollectionName"; + private const string _populationMechanism = "PopulationMechanism"; + private const string _populationString = "PopulationString"; + private const string _maximumVersion = "MaximumVersion"; + private const string _minimumVersion = "MinimumVersion"; + private const string _dataSourceProductVersionNormalized = "DataSourceProductVersionNormalized"; + private const string _dataSourceProductVersion = "DataSourceProductVersion"; + private const string _restrictionDefault = "RestrictionDefault"; + private const string _restrictionNumber = "RestrictionNumber"; + private const string _numberOfRestrictions = "NumberOfRestrictions"; + private const string _restrictionName = "RestrictionName"; + private const string _parameterName = "ParameterName"; + + // population mechanisms + private const string _dataTable = "DataTable"; + private const string _sqlCommand = "SQLCommand"; + private const string _prepareCollection = "PrepareCollection"; + + public DbMetaDataFactory(Stream xmlStream, string serverVersion, string normalizedServerVersion) + { + ADP.CheckArgumentNull(xmlStream, nameof(xmlStream)); + ADP.CheckArgumentNull(serverVersion, nameof(serverVersion)); + ADP.CheckArgumentNull(normalizedServerVersion, nameof(normalizedServerVersion)); + + LoadDataSetFromXml(xmlStream); + + _serverVersionString = serverVersion; + _normalizedServerVersion = normalizedServerVersion; + } + + protected DataSet CollectionDataSet => _metaDataCollectionsDataSet; + + protected string ServerVersion => _serverVersionString; + + protected string ServerVersionNormalized => _normalizedServerVersion; + + protected DataTable CloneAndFilterCollection(string collectionName, string[] hiddenColumnNames) + { + DataTable destinationTable; + DataColumn[] filteredSourceColumns; + DataColumnCollection destinationColumns; + DataRow newRow; + + DataTable sourceTable = _metaDataCollectionsDataSet.Tables[collectionName]; + + if ((sourceTable == null) || (collectionName != sourceTable.TableName)) + { + throw ADP.DataTableDoesNotExist(collectionName); + } + + destinationTable = new DataTable(collectionName) + { + Locale = CultureInfo.InvariantCulture + }; + destinationColumns = destinationTable.Columns; + + filteredSourceColumns = FilterColumns(sourceTable, hiddenColumnNames, destinationColumns); + + foreach (DataRow row in sourceTable.Rows) + { + if (SupportedByCurrentVersion(row) == true) + { + newRow = destinationTable.NewRow(); + for (int i = 0; i < destinationColumns.Count; i++) + { + newRow[destinationColumns[i]] = row[filteredSourceColumns[i], DataRowVersion.Current]; + } + destinationTable.Rows.Add(newRow); + newRow.AcceptChanges(); + } + } + + return destinationTable; + } + + public void Dispose() => Dispose(true); + + protected virtual void Dispose(bool disposing) + { + if (disposing) + { + _normalizedServerVersion = null; + _serverVersionString = null; + _metaDataCollectionsDataSet.Dispose(); + } + } + + private DataTable ExecuteCommand(DataRow requestedCollectionRow, string[] restrictions, DbConnection connection) + { + DataTable metaDataCollectionsTable = _metaDataCollectionsDataSet.Tables[DbMetaDataCollectionNames.MetaDataCollections]; + DataColumn populationStringColumn = metaDataCollectionsTable.Columns[_populationString]; + DataColumn numberOfRestrictionsColumn = metaDataCollectionsTable.Columns[_numberOfRestrictions]; + DataColumn collectionNameColumn = metaDataCollectionsTable.Columns[_collectionName]; + + DataTable resultTable = null; + DbCommand command = null; + DataTable schemaTable = null; + + Debug.Assert(requestedCollectionRow != null); + string sqlCommand = requestedCollectionRow[populationStringColumn, DataRowVersion.Current] as string; + int numberOfRestrictions = (int)requestedCollectionRow[numberOfRestrictionsColumn, DataRowVersion.Current]; + string collectionName = requestedCollectionRow[collectionNameColumn, DataRowVersion.Current] as string; + + if ((restrictions != null) && (restrictions.Length > numberOfRestrictions)) + { + throw ADP.TooManyRestrictions(collectionName); + } + + command = connection.CreateCommand(); + command.CommandText = sqlCommand; + command.CommandTimeout = Math.Max(command.CommandTimeout, 180); + + for (int i = 0; i < numberOfRestrictions; i++) + { + + DbParameter restrictionParameter = command.CreateParameter(); + + if ((restrictions != null) && (restrictions.Length > i) && (restrictions[i] != null)) + { + restrictionParameter.Value = restrictions[i]; + } + else + { + // This is where we have to assign null to the value of the parameter. + restrictionParameter.Value = DBNull.Value; + } + + restrictionParameter.ParameterName = GetParameterName(collectionName, i + 1); + restrictionParameter.Direction = ParameterDirection.Input; + command.Parameters.Add(restrictionParameter); + } + + DbDataReader reader = null; + try + { + try + { + reader = command.ExecuteReader(); + } + catch (Exception e) + { + if (!ADP.IsCatchableExceptionType(e)) + { + throw; + } + throw ADP.QueryFailed(collectionName, e); + } + + // Build a DataTable from the reader + resultTable = new DataTable(collectionName) + { + Locale = CultureInfo.InvariantCulture + }; + + schemaTable = reader.GetSchemaTable(); + foreach (DataRow row in schemaTable.Rows) + { + resultTable.Columns.Add(row["ColumnName"] as string, (Type)row["DataType"] as Type); + } + object[] values = new object[resultTable.Columns.Count]; + while (reader.Read()) + { + reader.GetValues(values); + resultTable.Rows.Add(values); + } + } + finally + { + if (reader != null) + { + reader.Dispose(); + reader = null; + } + } + return resultTable; + } + + private DataColumn[] FilterColumns(DataTable sourceTable, string[] hiddenColumnNames, DataColumnCollection destinationColumns) + { + int columnCount = 0; + foreach (DataColumn sourceColumn in sourceTable.Columns) + { + if (IncludeThisColumn(sourceColumn, hiddenColumnNames) == true) + { + columnCount++; + } + } + + if (columnCount == 0) + { + throw ADP.NoColumns(); + } + + int currentColumn = 0; + DataColumn[] filteredSourceColumns = new DataColumn[columnCount]; + + foreach (DataColumn sourceColumn in sourceTable.Columns) + { + if (IncludeThisColumn(sourceColumn, hiddenColumnNames) == true) + { + DataColumn newDestinationColumn = new DataColumn(sourceColumn.ColumnName, sourceColumn.DataType); + destinationColumns.Add(newDestinationColumn); + filteredSourceColumns[currentColumn] = sourceColumn; + currentColumn++; + } + } + return filteredSourceColumns; + } + + internal DataRow FindMetaDataCollectionRow(string collectionName) + { + bool versionFailure; + bool haveExactMatch; + bool haveMultipleInexactMatches; + string candidateCollectionName; + + DataTable metaDataCollectionsTable = _metaDataCollectionsDataSet.Tables[DbMetaDataCollectionNames.MetaDataCollections]; + if (metaDataCollectionsTable == null) + { + throw ADP.InvalidXml(); + } + + DataColumn collectionNameColumn = metaDataCollectionsTable.Columns[DbMetaDataColumnNames.CollectionName]; + + if ((null == collectionNameColumn) || (typeof(string) != collectionNameColumn.DataType)) + { + throw ADP.InvalidXmlMissingColumn(DbMetaDataCollectionNames.MetaDataCollections, DbMetaDataColumnNames.CollectionName); + } + + DataRow requestedCollectionRow = null; + string exactCollectionName = null; + + // find the requested collection + versionFailure = false; + haveExactMatch = false; + haveMultipleInexactMatches = false; + + foreach (DataRow row in metaDataCollectionsTable.Rows) + { + + candidateCollectionName = row[collectionNameColumn, DataRowVersion.Current] as string; + if (string.IsNullOrEmpty(candidateCollectionName)) + { + throw ADP.InvalidXmlInvalidValue(DbMetaDataCollectionNames.MetaDataCollections, DbMetaDataColumnNames.CollectionName); + } + + if (ADP.CompareInsensitiveInvariant(candidateCollectionName, collectionName)) + { + if (SupportedByCurrentVersion(row) == false) + { + versionFailure = true; + } + else + { + if (collectionName == candidateCollectionName) + { + if (haveExactMatch == true) + { + throw ADP.CollectionNameIsNotUnique(collectionName); + } + requestedCollectionRow = row; + exactCollectionName = candidateCollectionName; + haveExactMatch = true; + } + else + { + // have an inexact match - ok only if it is the only one + if (exactCollectionName != null) + { + // can't fail here becasue we may still find an exact match + haveMultipleInexactMatches = true; + } + requestedCollectionRow = row; + exactCollectionName = candidateCollectionName; + } + } + } + } + + if (requestedCollectionRow == null) + { + if (versionFailure == false) + { + throw ADP.UndefinedCollection(collectionName); + } + else + { + throw ADP.UnsupportedVersion(collectionName); + } + } + + if ((haveExactMatch == false) && (haveMultipleInexactMatches == true)) + { + throw ADP.AmbigousCollectionName(collectionName); + } + + return requestedCollectionRow; + + } + + private void FixUpVersion(DataTable dataSourceInfoTable) + { + Debug.Assert(dataSourceInfoTable.TableName == DbMetaDataCollectionNames.DataSourceInformation); + DataColumn versionColumn = dataSourceInfoTable.Columns[_dataSourceProductVersion]; + DataColumn normalizedVersionColumn = dataSourceInfoTable.Columns[_dataSourceProductVersionNormalized]; + + if ((versionColumn == null) || (normalizedVersionColumn == null)) + { + throw ADP.MissingDataSourceInformationColumn(); + } + + if (dataSourceInfoTable.Rows.Count != 1) + { + throw ADP.IncorrectNumberOfDataSourceInformationRows(); + } + + DataRow dataSourceInfoRow = dataSourceInfoTable.Rows[0]; + + dataSourceInfoRow[versionColumn] = _serverVersionString; + dataSourceInfoRow[normalizedVersionColumn] = _normalizedServerVersion; + dataSourceInfoRow.AcceptChanges(); + } + + + private string GetParameterName(string neededCollectionName, int neededRestrictionNumber) + { + + DataTable restrictionsTable = null; + DataColumnCollection restrictionColumns = null; + DataColumn collectionName = null; + DataColumn parameterName = null; + DataColumn restrictionName = null; + DataColumn restrictionNumber = null; + + string result = null; + + restrictionsTable = _metaDataCollectionsDataSet.Tables[DbMetaDataCollectionNames.Restrictions]; + if (restrictionsTable != null) + { + restrictionColumns = restrictionsTable.Columns; + if (restrictionColumns != null) + { + collectionName = restrictionColumns[_collectionName]; + parameterName = restrictionColumns[_parameterName]; + restrictionName = restrictionColumns[_restrictionName]; + restrictionNumber = restrictionColumns[_restrictionNumber]; + } + } + + if ((parameterName == null) || (collectionName == null) || (restrictionName == null) || (restrictionNumber == null)) + { + throw ADP.MissingRestrictionColumn(); + } + + foreach (DataRow restriction in restrictionsTable.Rows) + { + + if (((string)restriction[collectionName] == neededCollectionName) && + ((int)restriction[restrictionNumber] == neededRestrictionNumber) && + (SupportedByCurrentVersion(restriction))) + { + + result = (string)restriction[parameterName]; + break; + } + } + + if (result == null) + { + throw ADP.MissingRestrictionRow(); + } + + return result; + } + + public virtual DataTable GetSchema(DbConnection connection, string collectionName, string[] restrictions) + { + Debug.Assert(_metaDataCollectionsDataSet != null); + + DataTable metaDataCollectionsTable = _metaDataCollectionsDataSet.Tables[DbMetaDataCollectionNames.MetaDataCollections]; + DataColumn populationMechanismColumn = metaDataCollectionsTable.Columns[_populationMechanism]; + DataColumn collectionNameColumn = metaDataCollectionsTable.Columns[DbMetaDataColumnNames.CollectionName]; + DataRow requestedCollectionRow = null; + DataTable requestedSchema = null; + string[] hiddenColumns; + string exactCollectionName = null; + + requestedCollectionRow = FindMetaDataCollectionRow(collectionName); + exactCollectionName = requestedCollectionRow[collectionNameColumn, DataRowVersion.Current] as string; + + if (ADP.IsEmptyArray(restrictions) == false) + { + + for (int i = 0; i < restrictions.Length; i++) + { + if ((restrictions[i] != null) && (restrictions[i].Length > 4096)) + { + // use a non-specific error because no new beta 2 error messages are allowed + // TODO: will add a more descriptive error in RTM + throw ADP.NotSupported(); + } + } + } + + string populationMechanism = requestedCollectionRow[populationMechanismColumn, DataRowVersion.Current] as string; + switch (populationMechanism) + { + + case _dataTable: + if (exactCollectionName == DbMetaDataCollectionNames.MetaDataCollections) + { + hiddenColumns = new string[2]; + hiddenColumns[0] = _populationMechanism; + hiddenColumns[1] = _populationString; + } + else + { + hiddenColumns = null; + } + // none of the datatable collections support restrictions + if (ADP.IsEmptyArray(restrictions) == false) + { + throw ADP.TooManyRestrictions(exactCollectionName); + } + + + requestedSchema = CloneAndFilterCollection(exactCollectionName, hiddenColumns); + + // TODO: Consider an alternate method that doesn't involve special casing -- perhaps _prepareCollection + + // for the data source infomation table we need to fix up the version columns at run time + // since the version is determined at run time + if (exactCollectionName == DbMetaDataCollectionNames.DataSourceInformation) + { + FixUpVersion(requestedSchema); + } + break; + + case _sqlCommand: + requestedSchema = ExecuteCommand(requestedCollectionRow, restrictions, connection); + break; + + case _prepareCollection: + requestedSchema = PrepareCollection(exactCollectionName, restrictions, connection); + break; + + default: + throw ADP.UndefinedPopulationMechanism(populationMechanism); + } + + return requestedSchema; + } + + private bool IncludeThisColumn(DataColumn sourceColumn, string[] hiddenColumnNames) + { + + bool result = true; + string sourceColumnName = sourceColumn.ColumnName; + + switch (sourceColumnName) + { + + case _minimumVersion: + case _maximumVersion: + result = false; + break; + + default: + if (hiddenColumnNames == null) + { + break; + } + for (int i = 0; i < hiddenColumnNames.Length; i++) + { + if (hiddenColumnNames[i] == sourceColumnName) + { + result = false; + break; + } + } + break; + } + + return result; + } + + private void LoadDataSetFromXml(Stream XmlStream) + { + _metaDataCollectionsDataSet = new DataSet(); + _metaDataCollectionsDataSet.Locale = System.Globalization.CultureInfo.InvariantCulture; + _metaDataCollectionsDataSet.ReadXml(XmlStream); + } + + protected virtual DataTable PrepareCollection(string collectionName, string[] restrictions, DbConnection connection) + { + throw ADP.NotSupported(); + } + + private bool SupportedByCurrentVersion(DataRow requestedCollectionRow) + { + bool result = true; + DataColumnCollection tableColumns = requestedCollectionRow.Table.Columns; + DataColumn versionColumn; + object version; + + // check the minimum version first + versionColumn = tableColumns[_minimumVersion]; + if (versionColumn != null) + { + version = requestedCollectionRow[versionColumn]; + if (version != null) + { + if (version != DBNull.Value) + { + if (0 > string.Compare(_normalizedServerVersion, (string)version, StringComparison.OrdinalIgnoreCase)) + { + result = false; + } + } + } + } + + // if the minmum version was ok what about the maximum version + if (result == true) + { + versionColumn = tableColumns[_maximumVersion]; + if (versionColumn != null) + { + version = requestedCollectionRow[versionColumn]; + if (version != null) + { + if (version != DBNull.Value) + { + if (0 < string.Compare(_normalizedServerVersion, (string)version, StringComparison.OrdinalIgnoreCase)) + { + result = false; + } + } + } + } + } + return result; + } + } +} diff --git a/src/Common/src/System/Data/ProviderBase/DbReferenceCollection.cs b/src/Common/src/System/Data/ProviderBase/DbReferenceCollection.cs new file mode 100644 index 000000000..2bc3907f4 --- /dev/null +++ b/src/Common/src/System/Data/ProviderBase/DbReferenceCollection.cs @@ -0,0 +1,286 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + + + +//------------------------------------------------------------------------------ + +using System.Diagnostics; +using System.Threading; + +namespace System.Data.ProviderBase +{ + internal abstract class DbReferenceCollection + { + private struct CollectionEntry + { + private int _tag; // information about the reference + private WeakReference _weak; // the reference itself. + + public void NewTarget(int tag, object target) + { + Debug.Assert(!HasTarget, "Entry already has a valid target"); + Debug.Assert(tag != 0, "Bad tag"); + Debug.Assert(target != null, "Invalid target"); + + if (_weak == null) + { + _weak = new WeakReference(target, false); + } + else + { + _weak.Target = target; + } + _tag = tag; + } + + public void RemoveTarget() + { + _tag = 0; + } + + public bool HasTarget + { + get + { + return ((_tag != 0) && (_weak.IsAlive)); + } + } + + public int Tag + { + get + { + return _tag; + } + } + + public object Target + { + get + { + return (_tag == 0 ? null : _weak.Target); + } + } + } + + private const int LockPollTime = 100; // Time to wait (in ms) between attempting to get the _itemLock + private const int DefaultCollectionSize = 20; // Default size for the collection, and the amount to grow every time the collection is full + private CollectionEntry[] _items; // The collection of items we are keeping track of + private readonly object _itemLock; // Used to synchronize access to the _items collection + private int _optimisticCount; // (#ItemsAdded - #ItemsRemoved) - This estimates the number of items that we *should* have (but doesn't take into account item targets being GC'd) + private int _lastItemIndex; // Location of the last item in _items + private volatile bool _isNotifying; // Indicates that the collection is currently being notified (and, therefore, about to be cleared) + + protected DbReferenceCollection() + { + _items = new CollectionEntry[DefaultCollectionSize]; + _itemLock = new object(); + _optimisticCount = 0; + _lastItemIndex = 0; + } + + abstract public void Add(object value, int tag); + + protected void AddItem(object value, int tag) + { + Debug.Assert(null != value && 0 != tag, "AddItem with null value or 0 tag"); + bool itemAdded = false; + + lock (_itemLock) + { + // Try to find a free spot + for (int i = 0; i <= _lastItemIndex; ++i) + { + if (_items[i].Tag == 0) + { + _items[i].NewTarget(tag, value); + Debug.Assert(_items[i].HasTarget, "missing expected target"); + itemAdded = true; + break; + } + } + + // No free spots, can we just add on to the end? + if ((!itemAdded) && (_lastItemIndex + 1 < _items.Length)) + { + _lastItemIndex++; + _items[_lastItemIndex].NewTarget(tag, value); + itemAdded = true; + } + + // If no free spots and no space at the end, try to find a dead item + if (!itemAdded) + { + for (int i = 0; i <= _lastItemIndex; ++i) + { + if (!_items[i].HasTarget) + { + _items[i].NewTarget(tag, value); + Debug.Assert(_items[i].HasTarget, "missing expected target"); + itemAdded = true; + break; + } + } + } + + // If nothing was free, then resize and add to the end + if (!itemAdded) + { + Array.Resize(ref _items, _items.Length * 2); + _lastItemIndex++; + _items[_lastItemIndex].NewTarget(tag, value); + } + + _optimisticCount++; + } + } + + internal T FindItem(int tag, Func filterMethod) where T : class + { + bool lockObtained = false; + try + { + TryEnterItemLock(ref lockObtained); + if (lockObtained) + { + if (_optimisticCount > 0) + { + // Loop through the items + for (int counter = 0; counter <= _lastItemIndex; counter++) + { + // Check tag (should be easiest and quickest) + if (_items[counter].Tag == tag) + { + // NOTE: Check if the returned value is null twice may seem wasteful, but this if for performance + // Since checking for null twice is cheaper than calling both HasTarget and Target OR always attempting to typecast + object value = _items[counter].Target; + if (value != null) + { + // Make sure the item has the correct type and passes the filtering + T tempItem = value as T; + if ((tempItem != null) && (filterMethod(tempItem))) + { + return tempItem; + } + } + } + } + } + } + } + finally + { + ExitItemLockIfNeeded(lockObtained); + } + + // If we got to here, then no item was found, so return null + return null; + } + + public void Notify(int message) + { + bool lockObtained = false; + try + { + TryEnterItemLock(ref lockObtained); + if (lockObtained) + { + try + { + _isNotifying = true; + + // Loop through each live item and notify it + if (_optimisticCount > 0) + { + for (int index = 0; index <= _lastItemIndex; ++index) + { + object value = _items[index].Target; // checks tag & gets target + if (null != value) + { + NotifyItem(message, _items[index].Tag, value); + _items[index].RemoveTarget(); + } + Debug.Assert(!_items[index].HasTarget, "Unexpected target after notifying"); + } + _optimisticCount = 0; + } + + // Shrink collection (if needed) + if (_items.Length > 100) + { + _lastItemIndex = 0; + _items = new CollectionEntry[DefaultCollectionSize]; + } + } + finally + { + _isNotifying = false; + } + } + } + finally + { + ExitItemLockIfNeeded(lockObtained); + } + } + + abstract protected void NotifyItem(int message, int tag, object value); + + abstract public void Remove(object value); + + protected void RemoveItem(object value) + { + Debug.Assert(null != value, "RemoveItem with null"); + + bool lockObtained = false; + try + { + TryEnterItemLock(ref lockObtained); + + if (lockObtained) + { + // Find the value, and then remove the target from our collection + if (_optimisticCount > 0) + { + for (int index = 0; index <= _lastItemIndex; ++index) + { + if (value == _items[index].Target) + { // checks tag & gets target + _items[index].RemoveTarget(); + _optimisticCount--; + break; + } + } + } + } + } + finally + { + ExitItemLockIfNeeded(lockObtained); + } + } + + // This is polling lock that will abandon getting the lock if _isNotifying is set to true + private void TryEnterItemLock(ref bool lockObtained) + { + // Assume that we couldn't take the lock + lockObtained = false; + // Keep trying to take the lock until either we've taken it, or the collection is being notified + while ((!_isNotifying) && (!lockObtained)) + { + Monitor.TryEnter(_itemLock, LockPollTime, ref lockObtained); + } + } + + private void ExitItemLockIfNeeded(bool lockObtained) + { + if (lockObtained) + { + Monitor.Exit(_itemLock); + } + } + } +} + diff --git a/src/Common/src/System/Data/ProviderBase/TimeoutTimer.cs b/src/Common/src/System/Data/ProviderBase/TimeoutTimer.cs new file mode 100644 index 000000000..7b258658b --- /dev/null +++ b/src/Common/src/System/Data/ProviderBase/TimeoutTimer.cs @@ -0,0 +1,170 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +// +// Class used to manage timeouts in complex system operations. +// + +using System.Data.Common; +using System.Diagnostics; + +namespace System.Data.ProviderBase +{ + // Purpose: + // Manages determining and tracking timeouts + // + // Intended use: + // Call StartXXXXTimeout() to get a timer with the given expiration point + // Get remaining time in appropriate format to pass to subsystem timeouts + // Check for timeout via IsExpired for checks in managed code. + // Simply abandon to GC when done. + internal class TimeoutTimer + { + //------------------- + // Fields + //------------------- + private long _timerExpire; + private bool _isInfiniteTimeout; + + //------------------- + // Timeout-setting methods + //------------------- + + // Get a new timer that will expire in the given number of seconds + // For input, a value of zero seconds indicates infinite timeout + internal static TimeoutTimer StartSecondsTimeout(int seconds) + { + //-------------------- + // Preconditions: None (seconds must conform to SetTimeoutSeconds requirements) + + //-------------------- + // Method body + var timeout = new TimeoutTimer(); + timeout.SetTimeoutSeconds(seconds); + + //--------------------- + // Postconditions + Debug.Assert(timeout != null); // Need a valid timeouttimer if no error + + return timeout; + } + + // Get a new timer that will expire in the given number of milliseconds + // No current need to support infinite milliseconds timeout + internal static TimeoutTimer StartMillisecondsTimeout(long milliseconds) + { + //-------------------- + // Preconditions + Debug.Assert(0 <= milliseconds); + + //-------------------- + // Method body + var timeout = new TimeoutTimer(); + timeout._timerExpire = checked(ADP.TimerCurrent() + (milliseconds * TimeSpan.TicksPerMillisecond)); + timeout._isInfiniteTimeout = false; + + //--------------------- + // Postconditions + Debug.Assert(timeout != null); // Need a valid timeouttimer if no error + + return timeout; + } + + //------------------- + // Methods for changing timeout + //------------------- + + internal void SetTimeoutSeconds(int seconds) + { + //-------------------- + // Preconditions + Debug.Assert(0 <= seconds || InfiniteTimeout == seconds); // no need to support negative seconds at present + + //-------------------- + // Method body + if (InfiniteTimeout == seconds) + { + _isInfiniteTimeout = true; + } + else + { + // Stash current time + timeout + _timerExpire = checked(ADP.TimerCurrent() + ADP.TimerFromSeconds(seconds)); + _isInfiniteTimeout = false; + } + //--------------------- + // Postconditions:None + } + + //------------------- + // Timeout info properties + //------------------- + + // Indicator for infinite timeout when starting a timer + internal static readonly long InfiniteTimeout = 0; + + // Is this timer in an expired state? + internal bool IsExpired + { + get + { + return !IsInfinite && ADP.TimerHasExpired(_timerExpire); + } + } + + // is this an infinite-timeout timer? + internal bool IsInfinite + { + get + { + return _isInfiniteTimeout; + } + } + + // Special accessor for TimerExpire for use when thunking to legacy timeout methods. + internal long LegacyTimerExpire + { + get + { + return (_isInfiniteTimeout) ? long.MaxValue : _timerExpire; + } + } + + // Returns milliseconds remaining trimmed to zero for none remaining + // and long.MaxValue for infinite + // This method should be preferred for internal calculations that are not + // yet common enough to code into the TimeoutTimer class itself. + internal long MillisecondsRemaining + { + get + { + //------------------- + // Preconditions: None + + //------------------- + // Method Body + long milliseconds; + if (_isInfiniteTimeout) + { + milliseconds = long.MaxValue; + } + else + { + milliseconds = ADP.TimerRemainingMilliseconds(_timerExpire); + if (0 > milliseconds) + { + milliseconds = 0; + } + } + + //-------------------- + // Postconditions + Debug.Assert(0 <= milliseconds); // This property guarantees no negative return values + + return milliseconds; + } + } + } +} + diff --git a/src/Common/src/System/Net/ContextFlagsAdapterPal.Unix.cs b/src/Common/src/System/Net/ContextFlagsAdapterPal.Unix.cs new file mode 100644 index 000000000..599bd4ab7 --- /dev/null +++ b/src/Common/src/System/Net/ContextFlagsAdapterPal.Unix.cs @@ -0,0 +1,86 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; + +namespace System.Net +{ + internal static class ContextFlagsAdapterPal + { + private readonly struct ContextFlagMapping + { + public readonly Interop.NetSecurityNative.GssFlags GssFlags; + public readonly ContextFlagsPal ContextFlag; + + public ContextFlagMapping(Interop.NetSecurityNative.GssFlags gssFlag, ContextFlagsPal contextFlag) + { + GssFlags = gssFlag; + ContextFlag = contextFlag; + } + } + + private static readonly ContextFlagMapping[] s_contextFlagMapping = new[] + { + new ContextFlagMapping(Interop.NetSecurityNative.GssFlags.GSS_C_CONF_FLAG, ContextFlagsPal.Confidentiality), + new ContextFlagMapping(Interop.NetSecurityNative.GssFlags.GSS_C_IDENTIFY_FLAG, ContextFlagsPal.InitIdentify), + new ContextFlagMapping(Interop.NetSecurityNative.GssFlags.GSS_C_MUTUAL_FLAG, ContextFlagsPal.MutualAuth), + new ContextFlagMapping(Interop.NetSecurityNative.GssFlags.GSS_C_REPLAY_FLAG, ContextFlagsPal.ReplayDetect), + new ContextFlagMapping(Interop.NetSecurityNative.GssFlags.GSS_C_SEQUENCE_FLAG, ContextFlagsPal.SequenceDetect), + new ContextFlagMapping(Interop.NetSecurityNative.GssFlags.GSS_C_DELEG_FLAG, ContextFlagsPal.Delegate) + }; + + + internal static ContextFlagsPal GetContextFlagsPalFromInterop(Interop.NetSecurityNative.GssFlags gssFlags, bool isServer) + { + ContextFlagsPal flags = ContextFlagsPal.None; + + // GSS_C_INTEG_FLAG is handled separately as its value can either be AcceptIntegrity (used by server) or InitIntegrity (used by client) + if ((gssFlags & Interop.NetSecurityNative.GssFlags.GSS_C_INTEG_FLAG) != 0) + { + flags |= isServer ? ContextFlagsPal.AcceptIntegrity : ContextFlagsPal.InitIntegrity; + } + + foreach (ContextFlagMapping mapping in s_contextFlagMapping) + { + if ((gssFlags & mapping.GssFlags) == mapping.GssFlags) + { + flags |= mapping.ContextFlag; + } + } + + return flags; + } + + internal static Interop.NetSecurityNative.GssFlags GetInteropFromContextFlagsPal(ContextFlagsPal flags, bool isServer) + { + Interop.NetSecurityNative.GssFlags gssFlags = 0; + + // GSS_C_INTEG_FLAG is set if either AcceptIntegrity (used by server) or InitIntegrity (used by client) is set + if (isServer) + { + if ((flags & ContextFlagsPal.AcceptIntegrity) != 0) + { + gssFlags |= Interop.NetSecurityNative.GssFlags.GSS_C_INTEG_FLAG; + } + } + else + { + if ((flags & ContextFlagsPal.InitIntegrity) != 0) + { + gssFlags |= Interop.NetSecurityNative.GssFlags.GSS_C_INTEG_FLAG; + } + } + + foreach (ContextFlagMapping mapping in s_contextFlagMapping) + { + if ((flags & mapping.ContextFlag) == mapping.ContextFlag) + { + gssFlags |= mapping.GssFlags; + } + } + + return gssFlags; + } + } +} diff --git a/src/Common/src/System/Net/ContextFlagsAdapterPal.Windows.cs b/src/Common/src/System/Net/ContextFlagsAdapterPal.Windows.cs new file mode 100644 index 000000000..5ed6e347d --- /dev/null +++ b/src/Common/src/System/Net/ContextFlagsAdapterPal.Windows.cs @@ -0,0 +1,77 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; + +namespace System.Net +{ + internal static class ContextFlagsAdapterPal + { + private readonly struct ContextFlagMapping + { + public readonly Interop.SspiCli.ContextFlags Win32Flag; + public readonly ContextFlagsPal ContextFlag; + + public ContextFlagMapping(Interop.SspiCli.ContextFlags win32Flag, ContextFlagsPal contextFlag) + { + Win32Flag = win32Flag; + ContextFlag = contextFlag; + } + } + + private static readonly ContextFlagMapping[] s_contextFlagMapping = new[] + { + new ContextFlagMapping(Interop.SspiCli.ContextFlags.AcceptExtendedError, ContextFlagsPal.AcceptExtendedError), + new ContextFlagMapping(Interop.SspiCli.ContextFlags.AcceptIdentify, ContextFlagsPal.AcceptIdentify), + new ContextFlagMapping(Interop.SspiCli.ContextFlags.AcceptIntegrity, ContextFlagsPal.AcceptIntegrity), + new ContextFlagMapping(Interop.SspiCli.ContextFlags.AcceptStream, ContextFlagsPal.AcceptStream), + new ContextFlagMapping(Interop.SspiCli.ContextFlags.AllocateMemory, ContextFlagsPal.AllocateMemory), + new ContextFlagMapping(Interop.SspiCli.ContextFlags.AllowMissingBindings, ContextFlagsPal.AllowMissingBindings), + new ContextFlagMapping(Interop.SspiCli.ContextFlags.Confidentiality, ContextFlagsPal.Confidentiality), + new ContextFlagMapping(Interop.SspiCli.ContextFlags.Connection, ContextFlagsPal.Connection), + new ContextFlagMapping(Interop.SspiCli.ContextFlags.Delegate, ContextFlagsPal.Delegate), + new ContextFlagMapping(Interop.SspiCli.ContextFlags.InitExtendedError, ContextFlagsPal.InitExtendedError), + new ContextFlagMapping(Interop.SspiCli.ContextFlags.InitIdentify, ContextFlagsPal.InitIdentify), + new ContextFlagMapping(Interop.SspiCli.ContextFlags.InitManualCredValidation, ContextFlagsPal.InitManualCredValidation), + new ContextFlagMapping(Interop.SspiCli.ContextFlags.InitIntegrity, ContextFlagsPal.InitIntegrity), + new ContextFlagMapping(Interop.SspiCli.ContextFlags.InitStream, ContextFlagsPal.InitStream), + new ContextFlagMapping(Interop.SspiCli.ContextFlags.InitUseSuppliedCreds, ContextFlagsPal.InitUseSuppliedCreds), + new ContextFlagMapping(Interop.SspiCli.ContextFlags.MutualAuth, ContextFlagsPal.MutualAuth), + new ContextFlagMapping(Interop.SspiCli.ContextFlags.ProxyBindings, ContextFlagsPal.ProxyBindings), + new ContextFlagMapping(Interop.SspiCli.ContextFlags.ReplayDetect, ContextFlagsPal.ReplayDetect), + new ContextFlagMapping(Interop.SspiCli.ContextFlags.SequenceDetect, ContextFlagsPal.SequenceDetect), + new ContextFlagMapping(Interop.SspiCli.ContextFlags.UnverifiedTargetName, ContextFlagsPal.UnverifiedTargetName), + new ContextFlagMapping(Interop.SspiCli.ContextFlags.UseSessionKey, ContextFlagsPal.UseSessionKey), + new ContextFlagMapping(Interop.SspiCli.ContextFlags.Zero, ContextFlagsPal.None), + }; + + internal static ContextFlagsPal GetContextFlagsPalFromInterop(Interop.SspiCli.ContextFlags win32Flags) + { + ContextFlagsPal flags = ContextFlagsPal.None; + foreach (ContextFlagMapping mapping in s_contextFlagMapping) + { + if ((win32Flags & mapping.Win32Flag) == mapping.Win32Flag) + { + flags |= mapping.ContextFlag; + } + } + + return flags; + } + + internal static Interop.SspiCli.ContextFlags GetInteropFromContextFlagsPal(ContextFlagsPal flags) + { + Interop.SspiCli.ContextFlags win32Flags = Interop.SspiCli.ContextFlags.Zero; + foreach (ContextFlagMapping mapping in s_contextFlagMapping) + { + if ((flags & mapping.ContextFlag) == mapping.ContextFlag) + { + win32Flags |= mapping.Win32Flag; + } + } + + return win32Flags; + } + } +} diff --git a/src/Common/src/System/Net/ContextFlagsPal.cs b/src/Common/src/System/Net/ContextFlagsPal.cs new file mode 100644 index 000000000..d4df40b59 --- /dev/null +++ b/src/Common/src/System/Net/ContextFlagsPal.cs @@ -0,0 +1,35 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; + +namespace System.Net +{ + [Flags] + internal enum ContextFlagsPal + { + None = 0, + Delegate = 0x00000001, + MutualAuth = 0x00000002, + ReplayDetect = 0x00000004, + SequenceDetect = 0x00000008, + Confidentiality = 0x00000010, + UseSessionKey = 0x00000020, + AllocateMemory = 0x00000100, + Connection = 0x00000800, + InitExtendedError = 0x00004000, + AcceptExtendedError = 0x00008000, + InitStream = 0x00008000, + AcceptStream = 0x00010000, + InitIntegrity = 0x00010000, + AcceptIntegrity = 0x00020000, + InitManualCredValidation = 0x00080000, + InitUseSuppliedCreds = 0x00000080, + InitIdentify = 0x00020000, + AcceptIdentify = 0x00080000, + ProxyBindings = 0x04000000, + AllowMissingBindings = 0x10000000, + UnverifiedTargetName = 0x20000000, + } +} diff --git a/src/Common/src/System/Net/DebugCriticalHandleMinusOneIsInvalid.cs b/src/Common/src/System/Net/DebugCriticalHandleMinusOneIsInvalid.cs new file mode 100644 index 000000000..8ba682fa1 --- /dev/null +++ b/src/Common/src/System/Net/DebugCriticalHandleMinusOneIsInvalid.cs @@ -0,0 +1,40 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using Microsoft.Win32.SafeHandles; + +namespace System.Net +{ +#if DEBUG + // + // This is a helper class for debugging GC-ed handles that we define. + // As a general rule normal code path should always destroy handles explicitly + // + internal abstract class DebugCriticalHandleMinusOneIsInvalid : CriticalHandleMinusOneIsInvalid + { + private string _trace; + + protected DebugCriticalHandleMinusOneIsInvalid() : base() + { + Trace(); + } + + private void Trace() + { + _trace = "WARNING! GC-ed >>" + this.GetType().FullName + "<< (should be explicitly closed) \r\n"; + if (NetEventSource.IsEnabled) NetEventSource.Info(this, "Creating SafeHandle"); +#if TRACE_VERBOSE + string stacktrace = Environment.StackTrace; + _trace += stacktrace; +#endif //TRACE_VERBOSE + } + + ~DebugCriticalHandleMinusOneIsInvalid() + { + DebugThreadTracking.SetThreadSource(ThreadKinds.Finalization); + if (NetEventSource.IsEnabled) NetEventSource.Info(this, _trace); + } + } +#endif // DEBUG +} diff --git a/src/Common/src/System/Net/DebugSafeHandle.cs b/src/Common/src/System/Net/DebugSafeHandle.cs new file mode 100644 index 000000000..e2e7c4629 --- /dev/null +++ b/src/Common/src/System/Net/DebugSafeHandle.cs @@ -0,0 +1,50 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using Microsoft.Win32.SafeHandles; + +using System.Net.NetworkInformation; +using System.Net.Sockets; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Threading; + +namespace System.Net +{ +#if DEBUG + // + // This is a helper class for debugging GC-ed handles that we define. + // As a general rule normal code path should always destroy handles explicitly + // + internal abstract class DebugSafeHandle : SafeHandleZeroOrMinusOneIsInvalid + { + private string _trace; + + protected DebugSafeHandle(bool ownsHandle) : base(ownsHandle) + { + Trace(); + } + + protected DebugSafeHandle(IntPtr invalidValue, bool ownsHandle) : base(ownsHandle) + { + SetHandle(invalidValue); + Trace(); + } + + private void Trace() + { + _trace = "WARNING! GC-ed >>" + this.GetType().ToString() + "<< (should be explicitly closed) \r\n"; +#if TRACE_VERBOSE + string stacktrace = Environment.StackTrace; + _trace += stacktrace; +#endif + } + + ~DebugSafeHandle() + { + if (NetEventSource.IsEnabled) NetEventSource.Info(this, _trace); + } + } +#endif // DEBUG +} diff --git a/src/Common/src/System/Net/InternalException.cs b/src/Common/src/System/Net/InternalException.cs new file mode 100644 index 000000000..271bb47a1 --- /dev/null +++ b/src/Common/src/System/Net/InternalException.cs @@ -0,0 +1,29 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +namespace System.Net +{ + internal sealed class InternalException : Exception + { + private readonly object _unexpectedValue; + + internal InternalException() + { + NetEventSource.Fail(this, "InternalException thrown."); + } + + internal InternalException(object unexpectedValue) + { + _unexpectedValue = unexpectedValue; + if (NetEventSource.IsEnabled) + { + NetEventSource.Fail(this, $"InternalException thrown for unexpected value: {unexpectedValue}"); + } + } + + public override string Message => _unexpectedValue != null ? + base.Message + " " + _unexpectedValue : + base.Message; + } +} diff --git a/src/Common/src/System/Net/Logging/DebugThreadTracking.cs b/src/Common/src/System/Net/Logging/DebugThreadTracking.cs new file mode 100644 index 000000000..c2b3e0347 --- /dev/null +++ b/src/Common/src/System/Net/Logging/DebugThreadTracking.cs @@ -0,0 +1,157 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Collections.Generic; + +namespace System.Net +{ + internal static class DebugThreadTracking + { + [ThreadStatic] + private static Stack t_threadKindStack; + + private static Stack ThreadKindStack => t_threadKindStack ?? (t_threadKindStack = new Stack()); + + internal static ThreadKinds CurrentThreadKind => ThreadKindStack.Count > 0 ? ThreadKindStack.Peek() : ThreadKinds.Other; + + internal static IDisposable SetThreadKind(ThreadKinds kind) + { + if ((kind & ThreadKinds.SourceMask) != ThreadKinds.Unknown) + { + throw new InternalException(kind); + } + + // Ignore during shutdown. + if (Environment.HasShutdownStarted) + { + return null; + } + + ThreadKinds threadKind = CurrentThreadKind; + ThreadKinds source = threadKind & ThreadKinds.SourceMask; + + // Special warnings when doing dangerous things on a thread. + if ((threadKind & ThreadKinds.User) != 0 && (kind & ThreadKinds.System) != 0) + { + if (NetEventSource.IsEnabled) NetEventSource.Error(null, "Thread changed from User to System; user's thread shouldn't be hijacked."); + } + + if ((threadKind & ThreadKinds.Async) != 0 && (kind & ThreadKinds.Sync) != 0) + { + if (NetEventSource.IsEnabled) NetEventSource.Error(null, "Thread changed from Async to Sync, may block an Async thread."); + } + else if ((threadKind & (ThreadKinds.Other | ThreadKinds.CompletionPort)) == 0 && (kind & ThreadKinds.Sync) != 0) + { + if (NetEventSource.IsEnabled) NetEventSource.Error(null, "Thread from a limited resource changed to Sync, may deadlock or bottleneck."); + } + + ThreadKindStack.Push( + (((kind & ThreadKinds.OwnerMask) == 0 ? threadKind : kind) & ThreadKinds.OwnerMask) | + (((kind & ThreadKinds.SyncMask) == 0 ? threadKind : kind) & ThreadKinds.SyncMask) | + (kind & ~(ThreadKinds.OwnerMask | ThreadKinds.SyncMask)) | + source); + + if (CurrentThreadKind != threadKind) + { + if (NetEventSource.IsEnabled) NetEventSource.Info(null, $"Thread becomes:({CurrentThreadKind})"); + } + + return new ThreadKindFrame(); + } + + private class ThreadKindFrame : IDisposable + { + private readonly int _frameNumber; + + internal ThreadKindFrame() + { + _frameNumber = ThreadKindStack.Count; + } + + void IDisposable.Dispose() + { + // Ignore during shutdown. + if (Environment.HasShutdownStarted) + { + return; + } + + if (_frameNumber != ThreadKindStack.Count) + { + throw new InternalException(_frameNumber); + } + + ThreadKinds previous = ThreadKindStack.Pop(); + + if (CurrentThreadKind != previous && NetEventSource.IsEnabled) + { + if (NetEventSource.IsEnabled) NetEventSource.Info(this, $"Thread reverts:({CurrentThreadKind})"); + } + } + } + + internal static void SetThreadSource(ThreadKinds source) + { + if ((source & ThreadKinds.SourceMask) != source || source == ThreadKinds.Unknown) + { + throw new ArgumentException("Must specify the thread source.", nameof(source)); + } + + if (ThreadKindStack.Count == 0) + { + ThreadKindStack.Push(source); + return; + } + + if (ThreadKindStack.Count > 1) + { + if (NetEventSource.IsEnabled) NetEventSource.Error(null, "SetThreadSource must be called at the base of the stack, or the stack has been corrupted."); + while (ThreadKindStack.Count > 1) + { + ThreadKindStack.Pop(); + } + } + + if (ThreadKindStack.Peek() != source) + { + if (NetEventSource.IsEnabled) NetEventSource.Error(null, "The stack has been corrupted."); + ThreadKinds last = ThreadKindStack.Pop() & ThreadKinds.SourceMask; + if (last != source && last != ThreadKinds.Other && NetEventSource.IsEnabled) + { + NetEventSource.Fail(null, $"Thread source changed.|Was:({last}) Now:({source})"); + } + ThreadKindStack.Push(source); + } + } + } + + [Flags] + internal enum ThreadKinds + { + Unknown = 0x0000, + + // Mutually exclusive. + User = 0x0001, // Thread has entered via an API. + System = 0x0002, // Thread has entered via a system callback (e.g. completion port) or is our own thread. + + // Mutually exclusive. + Sync = 0x0004, // Thread should block. + Async = 0x0008, // Thread should not block. + + // Mutually exclusive, not always known for a user thread. Never changes. + Timer = 0x0010, // Thread is the timer thread. (Can't call user code.) + CompletionPort = 0x0020, // Thread is a ThreadPool completion-port thread. + Worker = 0x0040, // Thread is a ThreadPool worker thread. + Finalization = 0x0080, // Thread is the finalization thread. + Other = 0x0100, // Unknown source. + + OwnerMask = User | System, + SyncMask = Sync | Async, + SourceMask = Timer | CompletionPort | Worker | Finalization | Other, + + // Useful "macros" + SafeSources = SourceMask & ~(Timer | Finalization), // Methods that "unsafe" sources can call must be explicitly marked. + ThreadPool = CompletionPort | Worker, // Like Thread.CurrentThread.IsThreadPoolThread + } +} diff --git a/src/Common/src/System/Net/Logging/NetEventSource.Common.cs b/src/Common/src/System/Net/Logging/NetEventSource.Common.cs new file mode 100644 index 000000000..6d3b94e12 --- /dev/null +++ b/src/Common/src/System/Net/Logging/NetEventSource.Common.cs @@ -0,0 +1,739 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +#if DEBUG +// Uncomment to enable runtime checks to help validate that NetEventSource isn't being misused +// in a way that will cause performance problems, e.g. unexpected boxing of value types. +//#define DEBUG_NETEVENTSOURCE_MISUSE +#endif + +using System.Collections; +using System.Diagnostics; +using System.Diagnostics.Tracing; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +#if NET46 +using System.Security; +#endif + +namespace System.Net +{ + // Implementation: + // This partial file is meant to be consumed into each System.Net.* assembly that needs to log. Each such assembly also provides + // its own NetEventSource partial class that adds an appropriate [EventSource] attribute, giving it a unique name for that assembly. + // Those partials can then also add additional events if needed, starting numbering from the NextAvailableEventId defined by this partial. + + // Usage: + // - Operations that may allocate (e.g. boxing a value type, using string interpolation, etc.) or that may have computations + // at call sites should guard access like: + // if (NetEventSource.IsEnabled) NetEventSource.Enter(this, refArg1, valueTypeArg2); // entering an instance method with a value type arg + // if (NetEventSource.IsEnabled) NetEventSource.Info(null, $"Found certificate: {cert}"); // info logging with a formattable string + // - Operations that have zero allocations / measurable computations at call sites can use a simpler pattern, calling methods like: + // NetEventSource.Enter(this); // entering an instance method + // NetEventSource.Info(this, "literal string"); // arbitrary message with a literal string + // NetEventSource.Enter(this, refArg1, regArg2); // entering an instance method with two reference type arguments + // NetEventSource.Enter(null); // entering a static method + // NetEventSource.Enter(null, refArg1); // entering a static method with one reference type argument + // Debug.Asserts inside the logging methods will help to flag some misuse if the DEBUG_NETEVENTSOURCE_MISUSE compilation constant is defined. + // However, because it can be difficult by observation to understand all of the costs involved, guarding can be done everywhere. + // - NetEventSource.Fail calls typically do not need to be prefixed with an IsEnabled check, even if they allocate, as FailMessage + // should only be used in cases similar to Debug.Fail, where they are not expected to happen in retail builds, and thus extra costs + // don't matter. + // - Messages can be strings, formattable strings, or any other object. Objects (including those used in formattable strings) have special + // formatting applied, controlled by the Format method. Partial specializations can also override this formatting by implementing a partial + // method that takes an object and optionally provides a string representation of it, in case a particular library wants to customize further. + + /// Provides logging facilities for System.Net libraries. +#if NET46 + [SecuritySafeCritical] +#endif + internal sealed partial class NetEventSource : EventSource + { + /// The single event source instance to use for all logging. + public static readonly NetEventSource Log = new NetEventSource(); + + #region Metadata + public class Keywords + { + public const EventKeywords Default = (EventKeywords)0x0001; + public const EventKeywords Debug = (EventKeywords)0x0002; + public const EventKeywords EnterExit = (EventKeywords)0x0004; + } + + private const string MissingMember = "(?)"; + private const string NullInstance = "(null)"; + private const string StaticMethodObject = "(static)"; + private const string NoParameters = ""; + private const int MaxDumpSize = 1024; + + private const int EnterEventId = 1; + private const int ExitEventId = 2; + private const int AssociateEventId = 3; + private const int InfoEventId = 4; + private const int ErrorEventId = 5; + private const int CriticalFailureEventId = 6; + private const int DumpArrayEventId = 7; + + // These events are implemented in NetEventSource.Security.cs. + // Define the ids here so that projects that include NetEventSource.Security.cs will not have conflicts. + private const int EnumerateSecurityPackagesId = 8; + private const int SspiPackageNotFoundId = 9; + private const int AcquireDefaultCredentialId = 10; + private const int AcquireCredentialsHandleId = 11; + private const int InitializeSecurityContextId = 12; + private const int SecurityContextInputBufferId = 13; + private const int SecurityContextInputBuffersId = 14; + private const int AcceptSecuritContextId = 15; + private const int OperationReturnedSomethingId = 16; + + private const int NextAvailableEventId = 17; // Update this value whenever new events are added. Derived types should base all events off of this to avoid conflicts. + #endregion + + #region Events + #region Enter + /// Logs entrance to a method. + /// `this`, or another object that serves to provide context for the operation. + /// A description of the entrance, including any arguments to the call. + /// The calling member. + [NonEvent] + public static void Enter(object thisOrContextObject, FormattableString formattableString = null, [CallerMemberName] string memberName = null) + { + DebugValidateArg(thisOrContextObject); + DebugValidateArg(formattableString); + if (IsEnabled) Log.Enter(IdOf(thisOrContextObject), memberName, formattableString != null ? Format(formattableString) : NoParameters); + } + + /// Logs entrance to a method. + /// `this`, or another object that serves to provide context for the operation. + /// The object to log. + /// The calling member. + [NonEvent] + public static void Enter(object thisOrContextObject, object arg0, [CallerMemberName] string memberName = null) + { + DebugValidateArg(thisOrContextObject); + DebugValidateArg(arg0); + if (IsEnabled) Log.Enter(IdOf(thisOrContextObject), memberName, $"({Format(arg0)})"); + } + + /// Logs entrance to a method. + /// `this`, or another object that serves to provide context for the operation. + /// The first object to log. + /// The second object to log. + /// The calling member. + [NonEvent] + public static void Enter(object thisOrContextObject, object arg0, object arg1, [CallerMemberName] string memberName = null) + { + DebugValidateArg(thisOrContextObject); + DebugValidateArg(arg0); + DebugValidateArg(arg1); + if (IsEnabled) Log.Enter(IdOf(thisOrContextObject), memberName, $"({Format(arg0)}, {Format(arg1)})"); + } + + /// Logs entrance to a method. + /// `this`, or another object that serves to provide context for the operation. + /// The first object to log. + /// The second object to log. + /// The third object to log. + /// The calling member. + [NonEvent] + public static void Enter(object thisOrContextObject, object arg0, object arg1, object arg2, [CallerMemberName] string memberName = null) + { + DebugValidateArg(thisOrContextObject); + DebugValidateArg(arg0); + DebugValidateArg(arg1); + DebugValidateArg(arg2); + if (IsEnabled) Log.Enter(IdOf(thisOrContextObject), memberName, $"({Format(arg0)}, {Format(arg1)}, {Format(arg2)})"); + } + + [Event(EnterEventId, Level = EventLevel.Informational, Keywords = Keywords.EnterExit)] + private void Enter(string thisOrContextObject, string memberName, string parameters) => + WriteEvent(EnterEventId, thisOrContextObject, memberName ?? MissingMember, parameters); + #endregion + + #region Exit + /// Logs exit from a method. + /// `this`, or another object that serves to provide context for the operation. + /// A description of the exit operation, including any return values. + /// The calling member. + [NonEvent] + public static void Exit(object thisOrContextObject, FormattableString formattableString = null, [CallerMemberName] string memberName = null) + { + DebugValidateArg(thisOrContextObject); + DebugValidateArg(formattableString); + if (IsEnabled) Log.Exit(IdOf(thisOrContextObject), memberName, formattableString != null ? Format(formattableString) : NoParameters); + } + + /// Logs exit from a method. + /// `this`, or another object that serves to provide context for the operation. + /// A return value from the member. + /// The calling member. + [NonEvent] + public static void Exit(object thisOrContextObject, object arg0, [CallerMemberName] string memberName = null) + { + DebugValidateArg(thisOrContextObject); + DebugValidateArg(arg0); + if (IsEnabled) Log.Exit(IdOf(thisOrContextObject), memberName, Format(arg0).ToString()); + } + + /// Logs exit from a method. + /// `this`, or another object that serves to provide context for the operation. + /// A return value from the member. + /// A second return value from the member. + /// The calling member. + [NonEvent] + public static void Exit(object thisOrContextObject, object arg0, object arg1, [CallerMemberName] string memberName = null) + { + DebugValidateArg(thisOrContextObject); + DebugValidateArg(arg0); + DebugValidateArg(arg1); + if (IsEnabled) Log.Exit(IdOf(thisOrContextObject), memberName, $"{Format(arg0)}, {Format(arg1)}"); + } + + [Event(ExitEventId, Level = EventLevel.Informational, Keywords = Keywords.EnterExit)] + private void Exit(string thisOrContextObject, string memberName, string result) => + WriteEvent(ExitEventId, thisOrContextObject, memberName ?? MissingMember, result); + #endregion + + #region Info + /// Logs an information message. + /// `this`, or another object that serves to provide context for the operation. + /// The message to be logged. + /// The calling member. + [NonEvent] + public static void Info(object thisOrContextObject, FormattableString formattableString = null, [CallerMemberName] string memberName = null) + { + DebugValidateArg(thisOrContextObject); + DebugValidateArg(formattableString); + if (IsEnabled) Log.Info(IdOf(thisOrContextObject), memberName, formattableString != null ? Format(formattableString) : NoParameters); + } + + /// Logs an information message. + /// `this`, or another object that serves to provide context for the operation. + /// The message to be logged. + /// The calling member. + [NonEvent] + public static void Info(object thisOrContextObject, object message, [CallerMemberName] string memberName = null) + { + DebugValidateArg(thisOrContextObject); + DebugValidateArg(message); + if (IsEnabled) Log.Info(IdOf(thisOrContextObject), memberName, Format(message).ToString()); + } + + [Event(InfoEventId, Level = EventLevel.Informational, Keywords = Keywords.Default)] + private void Info(string thisOrContextObject, string memberName, string message) => + WriteEvent(InfoEventId, thisOrContextObject, memberName ?? MissingMember, message); + #endregion + + #region Error + /// Logs an error message. + /// `this`, or another object that serves to provide context for the operation. + /// The message to be logged. + /// The calling member. + [NonEvent] + public static void Error(object thisOrContextObject, FormattableString formattableString, [CallerMemberName] string memberName = null) + { + DebugValidateArg(thisOrContextObject); + DebugValidateArg(formattableString); + if (IsEnabled) Log.ErrorMessage(IdOf(thisOrContextObject), memberName, Format(formattableString)); + } + + /// Logs an error message. + /// `this`, or another object that serves to provide context for the operation. + /// The message to be logged. + /// The calling member. + [NonEvent] + public static void Error(object thisOrContextObject, object message, [CallerMemberName] string memberName = null) + { + DebugValidateArg(thisOrContextObject); + DebugValidateArg(message); + if (IsEnabled) Log.ErrorMessage(IdOf(thisOrContextObject), memberName, Format(message).ToString()); + } + + [Event(ErrorEventId, Level = EventLevel.Warning, Keywords = Keywords.Default)] + private void ErrorMessage(string thisOrContextObject, string memberName, string message) => + WriteEvent(ErrorEventId, thisOrContextObject, memberName ?? MissingMember, message); + #endregion + + #region Fail + /// Logs a fatal error and raises an assert. + /// `this`, or another object that serves to provide context for the operation. + /// The message to be logged. + /// The calling member. + [NonEvent] + public static void Fail(object thisOrContextObject, FormattableString formattableString, [CallerMemberName] string memberName = null) + { + // Don't call DebugValidateArg on args, as we expect Fail to be used in assert/failure situations + // that should never happen in production, and thus we don't care about extra costs. + + if (IsEnabled) Log.CriticalFailure(IdOf(thisOrContextObject), memberName, Format(formattableString)); + Debug.Fail(Format(formattableString), $"{IdOf(thisOrContextObject)}.{memberName}"); + } + + /// Logs a fatal error and raises an assert. + /// `this`, or another object that serves to provide context for the operation. + /// The message to be logged. + /// The calling member. + [NonEvent] + public static void Fail(object thisOrContextObject, object message, [CallerMemberName] string memberName = null) + { + // Don't call DebugValidateArg on args, as we expect Fail to be used in assert/failure situations + // that should never happen in production, and thus we don't care about extra costs. + + if (IsEnabled) Log.CriticalFailure(IdOf(thisOrContextObject), memberName, Format(message).ToString()); + Debug.Fail(Format(message).ToString(), $"{IdOf(thisOrContextObject)}.{memberName}"); + } + + [Event(CriticalFailureEventId, Level = EventLevel.Critical, Keywords = Keywords.Debug)] + private void CriticalFailure(string thisOrContextObject, string memberName, string message) => + WriteEvent(CriticalFailureEventId, thisOrContextObject, memberName ?? MissingMember, message); + #endregion + + #region DumpBuffer + /// Logs the contents of a buffer. + /// `this`, or another object that serves to provide context for the operation. + /// The buffer to be logged. + /// The calling member. + [NonEvent] + public static void DumpBuffer(object thisOrContextObject, byte[] buffer, [CallerMemberName] string memberName = null) + { + DumpBuffer(thisOrContextObject, buffer, 0, buffer.Length, memberName); + } + + /// Logs the contents of a buffer. + /// `this`, or another object that serves to provide context for the operation. + /// The buffer to be logged. + /// The starting offset from which to log. + /// The number of bytes to log. + /// The calling member. + [NonEvent] + public static void DumpBuffer(object thisOrContextObject, byte[] buffer, int offset, int count, [CallerMemberName] string memberName = null) + { + if (IsEnabled) + { + if (offset < 0 || offset > buffer.Length - count) + { + Fail(thisOrContextObject, $"Invalid {nameof(DumpBuffer)} Args. Length={buffer.Length}, Offset={offset}, Count={count}", memberName); + return; + } + + count = Math.Min(count, MaxDumpSize); + + byte[] slice = buffer; + if (offset != 0 || count != buffer.Length) + { + slice = new byte[count]; + Buffer.BlockCopy(buffer, offset, slice, 0, count); + } + + Log.DumpBuffer(IdOf(thisOrContextObject), memberName, slice); + } + } + + /// Logs the contents of a buffer. + /// `this`, or another object that serves to provide context for the operation. + /// The starting location of the buffer to be logged. + /// The number of bytes to log. + /// The calling member. + [NonEvent] + public static unsafe void DumpBuffer(object thisOrContextObject, IntPtr bufferPtr, int count, [CallerMemberName] string memberName = null) + { + Debug.Assert(bufferPtr != IntPtr.Zero); + Debug.Assert(count >= 0); + + if (IsEnabled) + { + var buffer = new byte[Math.Min(count, MaxDumpSize)]; + fixed (byte* targetPtr = buffer) + { + Buffer.MemoryCopy((byte*)bufferPtr, targetPtr, buffer.Length, buffer.Length); + } + Log.DumpBuffer(IdOf(thisOrContextObject), memberName, buffer); + } + } + + [Event(DumpArrayEventId, Level = EventLevel.Verbose, Keywords = Keywords.Debug)] + private unsafe void DumpBuffer(string thisOrContextObject, string memberName, byte[] buffer) => + WriteEvent(DumpArrayEventId, thisOrContextObject, memberName ?? MissingMember, buffer); + #endregion + + #region Associate + /// Logs a relationship between two objects. + /// The first object. + /// The second object. + /// The calling member. + [NonEvent] + public static void Associate(object first, object second, [CallerMemberName] string memberName = null) + { + DebugValidateArg(first); + DebugValidateArg(second); + if (IsEnabled) Log.Associate(IdOf(first), memberName, IdOf(first), IdOf(second)); + } + + /// Logs a relationship between two objects. + /// `this`, or another object that serves to provide context for the operation. + /// The first object. + /// The second object. + /// The calling member. + [NonEvent] + public static void Associate(object thisOrContextObject, object first, object second, [CallerMemberName] string memberName = null) + { + DebugValidateArg(thisOrContextObject); + DebugValidateArg(first); + DebugValidateArg(second); + if (IsEnabled) Log.Associate(IdOf(thisOrContextObject), memberName, IdOf(first), IdOf(second)); + } + + [Event(AssociateEventId, Level = EventLevel.Informational, Keywords = Keywords.Default, Message = "[{2}]<-->[{3}]")] + private void Associate(string thisOrContextObject, string memberName, string first, string second) => + WriteEvent(AssociateEventId, thisOrContextObject, memberName ?? MissingMember, first, second); + #endregion + #endregion + + #region Helpers + [Conditional("DEBUG_NETEVENTSOURCE_MISUSE")] + private static void DebugValidateArg(object arg) + { + if (!IsEnabled) + { + Debug.Assert(!(arg is ValueType), $"Should not be passing value type {arg?.GetType()} to logging without IsEnabled check"); + Debug.Assert(!(arg is FormattableString), $"Should not be formatting FormattableString \"{arg}\" if tracing isn't enabled"); + } + } + + [Conditional("DEBUG_NETEVENTSOURCE_MISUSE")] + private static void DebugValidateArg(FormattableString arg) + { + Debug.Assert(IsEnabled || arg == null, $"Should not be formatting FormattableString \"{arg}\" if tracing isn't enabled"); + } + + public static new bool IsEnabled => + Log.IsEnabled(); + //true; // uncomment for debugging only + + [NonEvent] + public static string IdOf(object value) => value != null ? value.GetType().Name + "#" + GetHashCode(value) : NullInstance; + + [NonEvent] + public static int GetHashCode(object value) => value?.GetHashCode() ?? 0; + + [NonEvent] + public static object Format(object value) + { + // If it's null, return a known string for null values + if (value == null) + { + return NullInstance; + } + + // Give another partial implementation a chance to provide its own string representation + string result = null; + AdditionalCustomizedToString(value, ref result); + if (result != null) + { + return result; + } + + // Format arrays with their element type name and length + Array arr = value as Array; + if (arr != null) + { + return $"{arr.GetType().GetElementType()}[{((Array)value).Length}]"; + } + + // Format ICollections as the name and count + ICollection c = value as ICollection; + if (c != null) + { + return $"{c.GetType().Name}({c.Count})"; + } + + // Format SafeHandles as their type, hash code, and pointer value + SafeHandle handle = value as SafeHandle; + if (handle != null) + { + return $"{handle.GetType().Name}:{handle.GetHashCode()}(0x{handle.DangerousGetHandle():X})"; + } + + // Format IntPtrs as hex + if (value is IntPtr) + { + return $"0x{value:X}"; + } + + // If the string representation of the instance would just be its type name, + // use its id instead. + string toString = value.ToString(); + if (toString == null || toString == value.GetType().FullName) + { + return IdOf(value); + } + + // Otherwise, return the original object so that the caller does default formatting. + return value; + } + + [NonEvent] + private static string Format(FormattableString s) + { + switch (s.ArgumentCount) + { + case 0: return s.Format; + case 1: return string.Format(s.Format, Format(s.GetArgument(0))); + case 2: return string.Format(s.Format, Format(s.GetArgument(0)), Format(s.GetArgument(1))); + case 3: return string.Format(s.Format, Format(s.GetArgument(0)), Format(s.GetArgument(1)), Format(s.GetArgument(2))); + default: + object[] args = s.GetArguments(); + object[] formattedArgs = new object[args.Length]; + for (int i = 0; i < args.Length; i++) + { + formattedArgs[i] = Format(args[i]); + } + return string.Format(s.Format, formattedArgs); + } + } + + static partial void AdditionalCustomizedToString(T value, ref string result); + #endregion + + #region Custom WriteEvent overloads + + [NonEvent] + private unsafe void WriteEvent(int eventId, string arg1, string arg2, string arg3, string arg4) + { + if (IsEnabled()) + { + if (arg1 == null) arg1 = ""; + if (arg2 == null) arg2 = ""; + if (arg3 == null) arg3 = ""; + if (arg4 == null) arg4 = ""; + + fixed (char* string1Bytes = arg1) + fixed (char* string2Bytes = arg2) + fixed (char* string3Bytes = arg3) + fixed (char* string4Bytes = arg4) + { + const int NumEventDatas = 4; + var descrs = stackalloc EventData[NumEventDatas]; + + descrs[0] = new EventData + { + DataPointer = (IntPtr)string1Bytes, + Size = ((arg1.Length + 1) * 2) + }; + descrs[1] = new EventData + { + DataPointer = (IntPtr)string2Bytes, + Size = ((arg2.Length + 1) * 2) + }; + descrs[2] = new EventData + { + DataPointer = (IntPtr)string3Bytes, + Size = ((arg3.Length + 1) * 2) + }; + descrs[3] = new EventData + { + DataPointer = (IntPtr)string4Bytes, + Size = ((arg4.Length + 1) * 2) + }; + + WriteEventCore(eventId, NumEventDatas, descrs); + } + } + } + + [NonEvent] + private unsafe void WriteEvent(int eventId, string arg1, string arg2, byte[] arg3) + { + if (IsEnabled()) + { + if (arg1 == null) arg1 = ""; + if (arg2 == null) arg2 = ""; + if (arg3 == null) arg3 = Array.Empty(); + + fixed (char* arg1Ptr = arg1) + fixed (char* arg2Ptr = arg2) + fixed (byte* arg3Ptr = arg3) + { + int bufferLength = arg3.Length; + const int NumEventDatas = 4; + var descrs = stackalloc EventData[NumEventDatas]; + + descrs[0] = new EventData + { + DataPointer = (IntPtr)arg1Ptr, + Size = (arg1.Length + 1) * sizeof(char) + }; + descrs[1] = new EventData + { + DataPointer = (IntPtr)arg2Ptr, + Size = (arg2.Length + 1) * sizeof(char) + }; + descrs[2] = new EventData + { + DataPointer = (IntPtr)(&bufferLength), + Size = 4 + }; + descrs[3] = new EventData + { + DataPointer = (IntPtr)arg3Ptr, + Size = bufferLength + }; + + WriteEventCore(eventId, NumEventDatas, descrs); + } + } + } + + [NonEvent] + private unsafe void WriteEvent(int eventId, string arg1, int arg2, int arg3, int arg4) + { + if (IsEnabled()) + { + if (arg1 == null) arg1 = ""; + + fixed (char* arg1Ptr = arg1) + { + const int NumEventDatas = 4; + var descrs = stackalloc EventData[NumEventDatas]; + + descrs[0] = new EventData + { + DataPointer = (IntPtr)(arg1Ptr), + Size = (arg1.Length + 1) * sizeof(char) + }; + descrs[1] = new EventData + { + DataPointer = (IntPtr)(&arg2), + Size = sizeof(int) + }; + descrs[2] = new EventData + { + DataPointer = (IntPtr)(&arg3), + Size = sizeof(int) + }; + descrs[3] = new EventData + { + DataPointer = (IntPtr)(&arg4), + Size = sizeof(int) + }; + + WriteEventCore(eventId, NumEventDatas, descrs); + } + } + } + + [NonEvent] + private unsafe void WriteEvent(int eventId, string arg1, int arg2, string arg3) + { + if (IsEnabled()) + { + if (arg1 == null) arg1 = ""; + if (arg3 == null) arg3 = ""; + + fixed (char* arg1Ptr = arg1) + fixed (char* arg3Ptr = arg3) + { + const int NumEventDatas = 3; + var descrs = stackalloc EventData[NumEventDatas]; + + descrs[0] = new EventData + { + DataPointer = (IntPtr)(arg1Ptr), + Size = (arg1.Length + 1) * sizeof(char) + }; + descrs[1] = new EventData + { + DataPointer = (IntPtr)(&arg2), + Size = sizeof(int) + }; + descrs[2] = new EventData + { + DataPointer = (IntPtr)(arg3Ptr), + Size = (arg3.Length + 1) * sizeof(char) + }; + + WriteEventCore(eventId, NumEventDatas, descrs); + } + } + } + + [NonEvent] + private unsafe void WriteEvent(int eventId, string arg1, string arg2, int arg3) + { + if (IsEnabled()) + { + if (arg1 == null) arg1 = ""; + if (arg2 == null) arg2 = ""; + + fixed (char* arg1Ptr = arg1) + fixed (char* arg2Ptr = arg2) + { + const int NumEventDatas = 3; + var descrs = stackalloc EventData[NumEventDatas]; + + descrs[0] = new EventData + { + DataPointer = (IntPtr)(arg1Ptr), + Size = (arg1.Length + 1) * sizeof(char) + }; + descrs[1] = new EventData + { + DataPointer = (IntPtr)(arg2Ptr), + Size = (arg2.Length + 1) * sizeof(char) + }; + descrs[2] = new EventData + { + DataPointer = (IntPtr)(&arg3), + Size = sizeof(int) + }; + + WriteEventCore(eventId, NumEventDatas, descrs); + } + } + } + + [NonEvent] + private unsafe void WriteEvent(int eventId, string arg1, string arg2, string arg3, int arg4) + { + if (IsEnabled()) + { + if (arg1 == null) arg1 = ""; + if (arg2 == null) arg2 = ""; + if (arg3 == null) arg3 = ""; + + fixed (char* arg1Ptr = arg1) + fixed (char* arg2Ptr = arg2) + fixed (char* arg3Ptr = arg3) + { + const int NumEventDatas = 4; + var descrs = stackalloc EventData[NumEventDatas]; + + descrs[0] = new EventData + { + DataPointer = (IntPtr)(arg1Ptr), + Size = (arg1.Length + 1) * sizeof(char) + }; + descrs[1] = new EventData + { + DataPointer = (IntPtr)(arg2Ptr), + Size = (arg2.Length + 1) * sizeof(char) + }; + descrs[2] = new EventData + { + DataPointer = (IntPtr)(arg3Ptr), + Size = (arg3.Length + 1) * sizeof(char) + }; + descrs[3] = new EventData + { + DataPointer = (IntPtr)(&arg4), + Size = sizeof(int) + }; + + WriteEventCore(eventId, NumEventDatas, descrs); + } + } + } + #endregion + } +} diff --git a/src/Common/src/System/Net/NegotiationInfoClass.cs b/src/Common/src/System/Net/NegotiationInfoClass.cs new file mode 100644 index 000000000..1e9fcaa48 --- /dev/null +++ b/src/Common/src/System/Net/NegotiationInfoClass.cs @@ -0,0 +1,16 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +namespace System.Net +{ + // This class is used to determine if NTLM or + // Kerberos are used in the context of a Negotiate handshake + internal static partial class NegotiationInfoClass + { + internal const string NTLM = "NTLM"; + internal const string Kerberos = "Kerberos"; + internal const string Negotiate = "Negotiate"; + internal const string Basic = "Basic"; + } +} diff --git a/src/Common/src/System/Net/Security/NegotiateStreamPal.Unix.cs b/src/Common/src/System/Net/Security/NegotiateStreamPal.Unix.cs new file mode 100644 index 000000000..7f5dc95c5 --- /dev/null +++ b/src/Common/src/System/Net/Security/NegotiateStreamPal.Unix.cs @@ -0,0 +1,613 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.IO; +using System.ComponentModel; +using System.Diagnostics; +using System.Runtime.InteropServices; +using System.Security; +using System.Security.Authentication; +using System.Security.Authentication.ExtendedProtection; +using System.Security.Principal; +using System.Text; +using System.Threading; +using Microsoft.Win32.SafeHandles; + +namespace System.Net.Security +{ + // + // The class maintains the state of the authentication process and the security context. + // It encapsulates security context and does the real work in authentication and + // user data encryption with NEGO SSPI package. + // + internal static partial class NegotiateStreamPal + { + // value should match the Windows sspicli NTE_FAIL value + // defined in winerror.h + private const int NTE_FAIL = unchecked((int)0x80090020); + + internal static string QueryContextClientSpecifiedSpn(SafeDeleteContext securityContext) + { + throw new PlatformNotSupportedException(SR.net_nego_server_not_supported); + } + + internal static string QueryContextAuthenticationPackage(SafeDeleteContext securityContext) + { + SafeDeleteNegoContext negoContext = (SafeDeleteNegoContext)securityContext; + return negoContext.IsNtlmUsed ? NegotiationInfoClass.NTLM : NegotiationInfoClass.Kerberos; + } + + static byte[] GssWrap( + SafeGssContextHandle context, + bool encrypt, + byte[] buffer, + int offset, + int count) + { + Debug.Assert((buffer != null) && (buffer.Length > 0), "Invalid input buffer passed to Encrypt"); + Debug.Assert((offset >= 0) && (offset < buffer.Length), "Invalid input offset passed to Encrypt"); + Debug.Assert((count >= 0) && (count <= (buffer.Length - offset)), "Invalid input count passed to Encrypt"); + + Interop.NetSecurityNative.GssBuffer encryptedBuffer = default(Interop.NetSecurityNative.GssBuffer); + try + { + Interop.NetSecurityNative.Status minorStatus; + Interop.NetSecurityNative.Status status = Interop.NetSecurityNative.WrapBuffer(out minorStatus, context, encrypt, buffer, offset, count, ref encryptedBuffer); + if (status != Interop.NetSecurityNative.Status.GSS_S_COMPLETE) + { + throw new Interop.NetSecurityNative.GssApiException(status, minorStatus); + } + + return encryptedBuffer.ToByteArray(); + } + finally + { + encryptedBuffer.Dispose(); + } + } + + private static int GssUnwrap( + SafeGssContextHandle context, + byte[] buffer, + int offset, + int count) + { + Debug.Assert((buffer != null) && (buffer.Length > 0), "Invalid input buffer passed to Decrypt"); + Debug.Assert((offset >= 0) && (offset <= buffer.Length), "Invalid input offset passed to Decrypt"); + Debug.Assert((count >= 0) && (count <= (buffer.Length - offset)), "Invalid input count passed to Decrypt"); + + Interop.NetSecurityNative.GssBuffer decryptedBuffer = default(Interop.NetSecurityNative.GssBuffer); + try + { + Interop.NetSecurityNative.Status minorStatus; + Interop.NetSecurityNative.Status status = Interop.NetSecurityNative.UnwrapBuffer(out minorStatus, context, buffer, offset, count, ref decryptedBuffer); + if (status != Interop.NetSecurityNative.Status.GSS_S_COMPLETE) + { + throw new Interop.NetSecurityNative.GssApiException(status, minorStatus); + } + + return decryptedBuffer.Copy(buffer, offset); + } + finally + { + decryptedBuffer.Dispose(); + } + } + + private static bool GssInitSecurityContext( + ref SafeGssContextHandle context, + SafeGssCredHandle credential, + bool isNtlm, + ChannelBinding channelBinding, + SafeGssNameHandle targetName, + Interop.NetSecurityNative.GssFlags inFlags, + byte[] buffer, + out byte[] outputBuffer, + out uint outFlags, + out bool isNtlmUsed) + { + outputBuffer = null; + outFlags = 0; + + // EstablishSecurityContext is called multiple times in a session. + // In each call, we need to pass the context handle from the previous call. + // For the first call, the context handle will be null. + bool newContext = false; + if (context == null) + { + newContext = true; + context = new SafeGssContextHandle(); + } + + Interop.NetSecurityNative.GssBuffer token = default(Interop.NetSecurityNative.GssBuffer); + Interop.NetSecurityNative.Status status; + + try + { + Interop.NetSecurityNative.Status minorStatus; + + if (channelBinding != null) + { + // If a TLS channel binding token (cbt) is available then get the pointer + // to the application specific data. + int appDataOffset = Marshal.SizeOf(); + Debug.Assert(appDataOffset < channelBinding.Size); + IntPtr cbtAppData = channelBinding.DangerousGetHandle() + appDataOffset; + int cbtAppDataSize = channelBinding.Size - appDataOffset; + status = Interop.NetSecurityNative.InitSecContext(out minorStatus, + credential, + ref context, + isNtlm, + cbtAppData, + cbtAppDataSize, + targetName, + (uint)inFlags, + buffer, + (buffer == null) ? 0 : buffer.Length, + ref token, + out outFlags, + out isNtlmUsed); + } + else + { + status = Interop.NetSecurityNative.InitSecContext(out minorStatus, + credential, + ref context, + isNtlm, + targetName, + (uint)inFlags, + buffer, + (buffer == null) ? 0 : buffer.Length, + ref token, + out outFlags, + out isNtlmUsed); + } + + if ((status != Interop.NetSecurityNative.Status.GSS_S_COMPLETE) && + (status != Interop.NetSecurityNative.Status.GSS_S_CONTINUE_NEEDED)) + { + if (newContext) + { + context.Dispose(); + context = null; + } + throw new Interop.NetSecurityNative.GssApiException(status, minorStatus); + } + + outputBuffer = token.ToByteArray(); + } + finally + { + token.Dispose(); + } + + return status == Interop.NetSecurityNative.Status.GSS_S_COMPLETE; + } + + private static bool GssAcceptSecurityContext( + ref SafeGssContextHandle context, + byte[] buffer, + out byte[] outputBuffer, + out uint outFlags) + { + bool newContext = false; + if (context == null) + { + newContext = true; + context = new SafeGssContextHandle(); + } + + Interop.NetSecurityNative.GssBuffer token = default(Interop.NetSecurityNative.GssBuffer); + Interop.NetSecurityNative.Status status; + + try + { + Interop.NetSecurityNative.Status minorStatus; + status = Interop.NetSecurityNative.AcceptSecContext(out minorStatus, + ref context, + buffer, + buffer?.Length ?? 0, + ref token, + out outFlags); + + if ((status != Interop.NetSecurityNative.Status.GSS_S_COMPLETE) && + (status != Interop.NetSecurityNative.Status.GSS_S_CONTINUE_NEEDED)) + { + if (newContext) + { + context.Dispose(); + context = null; + } + throw new Interop.NetSecurityNative.GssApiException(status, minorStatus); + } + + outputBuffer = token.ToByteArray(); + } + finally + { + token.Dispose(); + } + + return status == Interop.NetSecurityNative.Status.GSS_S_COMPLETE; + } + + private static string GssGetUser( + ref SafeGssContextHandle context) + { + Interop.NetSecurityNative.GssBuffer token = default(Interop.NetSecurityNative.GssBuffer); + + try + { + Interop.NetSecurityNative.Status status + = Interop.NetSecurityNative.GetUser(out var minorStatus, + context, + ref token); + + if (status != Interop.NetSecurityNative.Status.GSS_S_COMPLETE) + { + throw new Interop.NetSecurityNative.GssApiException(status, minorStatus); + } + + return Encoding.UTF8.GetString(token.ToByteArray()); + } + finally + { + token.Dispose(); + } + } + + private static SecurityStatusPal EstablishSecurityContext( + SafeFreeNegoCredentials credential, + ref SafeDeleteContext context, + ChannelBinding channelBinding, + string targetName, + ContextFlagsPal inFlags, + byte[] incomingBlob, + ref byte[] resultBuffer, + ref ContextFlagsPal outFlags) + { + bool isNtlmOnly = credential.IsNtlmOnly; + + if (context == null) + { + if (NetEventSource.IsEnabled) + { + string protocol = isNtlmOnly ? "NTLM" : "SPNEGO"; + NetEventSource.Info(null, $"requested protocol = {protocol}, target = {targetName}"); + } + + context = new SafeDeleteNegoContext(credential, targetName); + } + + SafeDeleteNegoContext negoContext = (SafeDeleteNegoContext)context; + try + { + Interop.NetSecurityNative.GssFlags inputFlags = + ContextFlagsAdapterPal.GetInteropFromContextFlagsPal(inFlags, isServer: false); + uint outputFlags; + bool isNtlmUsed; + SafeGssContextHandle contextHandle = negoContext.GssContext; + bool done = GssInitSecurityContext( + ref contextHandle, + credential.GssCredential, + isNtlmOnly, + channelBinding, + negoContext.TargetName, + inputFlags, + incomingBlob, + out resultBuffer, + out outputFlags, + out isNtlmUsed); + + if (done) + { + if (NetEventSource.IsEnabled) + { + string protocol = isNtlmOnly ? "NTLM" : isNtlmUsed ? "SPNEGO-NTLM" : "SPNEGO-Kerberos"; + NetEventSource.Info(null, $"actual protocol = {protocol}"); + } + + // Populate protocol used for authentication + negoContext.SetAuthenticationPackage(isNtlmUsed); + } + + Debug.Assert(resultBuffer != null, "Unexpected null buffer returned by GssApi"); + outFlags = ContextFlagsAdapterPal.GetContextFlagsPalFromInterop( + (Interop.NetSecurityNative.GssFlags)outputFlags, isServer: false); + Debug.Assert(negoContext.GssContext == null || contextHandle == negoContext.GssContext); + + // Save the inner context handle for further calls to NetSecurity + Debug.Assert(negoContext.GssContext == null || contextHandle == negoContext.GssContext); + if (null == negoContext.GssContext) + { + negoContext.SetGssContext(contextHandle); + } + + SecurityStatusPalErrorCode errorCode = done ? + (negoContext.IsNtlmUsed && resultBuffer.Length > 0 ? SecurityStatusPalErrorCode.OK : SecurityStatusPalErrorCode.CompleteNeeded) : + SecurityStatusPalErrorCode.ContinueNeeded; + return new SecurityStatusPal(errorCode); + } + catch (Exception ex) + { + if (NetEventSource.IsEnabled) NetEventSource.Error(null, ex); + return new SecurityStatusPal(SecurityStatusPalErrorCode.InternalError, ex); + } + } + + internal static SecurityStatusPal InitializeSecurityContext( + ref SafeFreeCredentials credentialsHandle, + ref SafeDeleteContext securityContext, + string spn, + ContextFlagsPal requestedContextFlags, + byte[] incomingBlob, + ChannelBinding channelBinding, + ref byte[] resultBlob, + ref ContextFlagsPal contextFlags) + { + SafeFreeNegoCredentials negoCredentialsHandle = (SafeFreeNegoCredentials)credentialsHandle; + + if (negoCredentialsHandle.IsDefault && string.IsNullOrEmpty(spn)) + { + throw new PlatformNotSupportedException(SR.net_nego_not_supported_empty_target_with_defaultcreds); + } + + SecurityStatusPal status = EstablishSecurityContext( + negoCredentialsHandle, + ref securityContext, + channelBinding, + spn, + requestedContextFlags, + incomingBlob, + ref resultBlob, + ref contextFlags); + + // Confidentiality flag should not be set if not requested + if (status.ErrorCode == SecurityStatusPalErrorCode.CompleteNeeded) + { + ContextFlagsPal mask = ContextFlagsPal.Confidentiality; + if ((requestedContextFlags & mask) != (contextFlags & mask)) + { + throw new PlatformNotSupportedException(SR.net_nego_protection_level_not_supported); + } + } + + return status; + } + + internal static SecurityStatusPal AcceptSecurityContext( + SafeFreeCredentials credentialsHandle, + ref SafeDeleteContext securityContext, + ContextFlagsPal requestedContextFlags, + byte[] incomingBlob, + ChannelBinding channelBinding, + ref byte[] resultBlob, + ref ContextFlagsPal contextFlags) + { + if (securityContext == null) + { + securityContext = new SafeDeleteNegoContext((SafeFreeNegoCredentials)credentialsHandle); + } + + SafeDeleteNegoContext negoContext = (SafeDeleteNegoContext)securityContext; + try + { + SafeGssContextHandle contextHandle = negoContext.GssContext; + bool done = GssAcceptSecurityContext( + ref contextHandle, + incomingBlob, + out resultBlob, + out uint outputFlags); + + Debug.Assert(resultBlob != null, "Unexpected null buffer returned by GssApi"); + Debug.Assert(negoContext.GssContext == null || contextHandle == negoContext.GssContext); + + // Save the inner context handle for further calls to NetSecurity + Debug.Assert(negoContext.GssContext == null || contextHandle == negoContext.GssContext); + if (null == negoContext.GssContext) + { + negoContext.SetGssContext(contextHandle); + } + + contextFlags = ContextFlagsAdapterPal.GetContextFlagsPalFromInterop( + (Interop.NetSecurityNative.GssFlags)outputFlags, isServer: true); + + SecurityStatusPalErrorCode errorCode = done ? + (negoContext.IsNtlmUsed && resultBlob.Length > 0 ? SecurityStatusPalErrorCode.OK : SecurityStatusPalErrorCode.CompleteNeeded) : + SecurityStatusPalErrorCode.ContinueNeeded; + + return new SecurityStatusPal(errorCode); + } + catch (Interop.NetSecurityNative.GssApiException gex) + { + if (NetEventSource.IsEnabled) NetEventSource.Error(null, gex); + return new SecurityStatusPal(GetErrorCode(gex), gex); + } + catch (Exception ex) + { + if (NetEventSource.IsEnabled) NetEventSource.Error(null, ex); + return new SecurityStatusPal(SecurityStatusPalErrorCode.InternalError, ex); + } + } + + // https://www.gnu.org/software/gss/reference/gss.pdf (page 25) + private static SecurityStatusPalErrorCode GetErrorCode(Interop.NetSecurityNative.GssApiException exception) + { + switch (exception.MajorStatus) + { + case Interop.NetSecurityNative.Status.GSS_S_NO_CRED: + return SecurityStatusPalErrorCode.UnknownCredentials; + case Interop.NetSecurityNative.Status.GSS_S_BAD_BINDINGS: + return SecurityStatusPalErrorCode.BadBinding; + case Interop.NetSecurityNative.Status.GSS_S_CREDENTIALS_EXPIRED: + return SecurityStatusPalErrorCode.CertExpired; + case Interop.NetSecurityNative.Status.GSS_S_DEFECTIVE_TOKEN: + return SecurityStatusPalErrorCode.InvalidToken; + case Interop.NetSecurityNative.Status.GSS_S_DEFECTIVE_CREDENTIAL: + return SecurityStatusPalErrorCode.IncompleteCredentials; + case Interop.NetSecurityNative.Status.GSS_S_BAD_SIG: + return SecurityStatusPalErrorCode.MessageAltered; + case Interop.NetSecurityNative.Status.GSS_S_BAD_MECH: + return SecurityStatusPalErrorCode.Unsupported; + case Interop.NetSecurityNative.Status.GSS_S_NO_CONTEXT: + default: + return SecurityStatusPalErrorCode.InternalError; + } + } + + private static string GetUser( + ref SafeDeleteContext securityContext) + { + SafeDeleteNegoContext negoContext = (SafeDeleteNegoContext)securityContext; + try + { + SafeGssContextHandle contextHandle = negoContext.GssContext; + return GssGetUser(ref contextHandle); + } + catch (Exception ex) + { + if (NetEventSource.IsEnabled) NetEventSource.Error(null, ex); + throw; + } + } + + internal static Win32Exception CreateExceptionFromError(SecurityStatusPal statusCode) + { + return new Win32Exception(NTE_FAIL, (statusCode.Exception != null) ? statusCode.Exception.Message : statusCode.ErrorCode.ToString()); + } + + internal static int QueryMaxTokenSize(string package) + { + // This value is not used on Unix + return 0; + } + + internal static SafeFreeCredentials AcquireDefaultCredential(string package, bool isServer) + { + return AcquireCredentialsHandle(package, isServer, new NetworkCredential(string.Empty, string.Empty, string.Empty)); + } + + internal static SafeFreeCredentials AcquireCredentialsHandle(string package, bool isServer, NetworkCredential credential) + { + bool isEmptyCredential = string.IsNullOrWhiteSpace(credential.UserName) || + string.IsNullOrWhiteSpace(credential.Password); + bool ntlmOnly = string.Equals(package, NegotiationInfoClass.NTLM, StringComparison.OrdinalIgnoreCase); + if (ntlmOnly && isEmptyCredential) + { + // NTLM authentication is not possible with default credentials which are no-op + throw new PlatformNotSupportedException(SR.net_ntlm_not_possible_default_cred); + } + + try + { + return isEmptyCredential ? + new SafeFreeNegoCredentials(false, string.Empty, string.Empty, string.Empty) : + new SafeFreeNegoCredentials(ntlmOnly, credential.UserName, credential.Password, credential.Domain); + } + catch(Exception ex) + { + throw new Win32Exception(NTE_FAIL, ex.Message); + } + } + + internal static SecurityStatusPal CompleteAuthToken( + ref SafeDeleteContext securityContext, + byte[] incomingBlob) + { + return new SecurityStatusPal(SecurityStatusPalErrorCode.OK); + } + + internal static int Encrypt( + SafeDeleteContext securityContext, + byte[] buffer, + int offset, + int count, + bool isConfidential, + bool isNtlm, + ref byte[] output, + uint sequenceNumber) + { + SafeDeleteNegoContext gssContext = (SafeDeleteNegoContext) securityContext; + byte[] tempOutput = GssWrap(gssContext.GssContext, isConfidential, buffer, offset, count); + + // Create space for prefixing with the length + const int prefixLength = 4; + output = new byte[tempOutput.Length + prefixLength]; + Array.Copy(tempOutput, 0, output, prefixLength, tempOutput.Length); + int resultSize = tempOutput.Length; + unchecked + { + output[0] = (byte)((resultSize) & 0xFF); + output[1] = (byte)(((resultSize) >> 8) & 0xFF); + output[2] = (byte)(((resultSize) >> 16) & 0xFF); + output[3] = (byte)(((resultSize) >> 24) & 0xFF); + } + + return resultSize + 4; + } + + internal static int Decrypt( + SafeDeleteContext securityContext, + byte[] buffer, + int offset, + int count, + bool isConfidential, + bool isNtlm, + out int newOffset, + uint sequenceNumber) + { + if (offset < 0 || offset > (buffer == null ? 0 : buffer.Length)) + { + NetEventSource.Fail(securityContext, "Argument 'offset' out of range"); + throw new ArgumentOutOfRangeException(nameof(offset)); + } + + if (count < 0 || count > (buffer == null ? 0 : buffer.Length - offset)) + { + NetEventSource.Fail(securityContext, "Argument 'count' out of range."); + throw new ArgumentOutOfRangeException(nameof(count)); + } + + newOffset = offset; + return GssUnwrap(((SafeDeleteNegoContext)securityContext).GssContext, buffer, offset, count); + } + + internal static int VerifySignature(SafeDeleteContext securityContext, byte[] buffer, int offset, int count) + { + if (offset < 0 || offset > (buffer == null ? 0 : buffer.Length)) + { + NetEventSource.Fail(securityContext, "Argument 'offset' out of range"); + throw new ArgumentOutOfRangeException(nameof(offset)); + } + + if (count < 0 || count > (buffer == null ? 0 : buffer.Length - offset)) + { + NetEventSource.Fail(securityContext, "Argument 'count' out of range."); + throw new ArgumentOutOfRangeException(nameof(count)); + } + + return GssUnwrap(((SafeDeleteNegoContext)securityContext).GssContext, buffer, offset, count); + } + + internal static int MakeSignature(SafeDeleteContext securityContext, byte[] buffer, int offset, int count, ref byte[] output) + { + SafeDeleteNegoContext gssContext = (SafeDeleteNegoContext)securityContext; + byte[] tempOutput = GssWrap(gssContext.GssContext, false, buffer, offset, count); + // Create space for prefixing with the length + const int prefixLength = 4; + output = new byte[tempOutput.Length + prefixLength]; + Array.Copy(tempOutput, 0, output, prefixLength, tempOutput.Length); + int resultSize = tempOutput.Length; + unchecked + { + output[0] = (byte)((resultSize) & 0xFF); + output[1] = (byte)(((resultSize) >> 8) & 0xFF); + output[2] = (byte)(((resultSize) >> 16) & 0xFF); + output[3] = (byte)(((resultSize) >> 24) & 0xFF); + } + + return resultSize + 4; + } + } +} diff --git a/src/Common/src/System/Net/Security/NegotiateStreamPal.Windows.cs b/src/Common/src/System/Net/Security/NegotiateStreamPal.Windows.cs new file mode 100644 index 000000000..88af1dd14 --- /dev/null +++ b/src/Common/src/System/Net/Security/NegotiateStreamPal.Windows.cs @@ -0,0 +1,289 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.ComponentModel; +using System.Diagnostics; +using System.Globalization; +using System.Runtime.InteropServices; +using System.Security.Authentication.ExtendedProtection; + +namespace System.Net.Security +{ + // + // The class does the real work in authentication and + // user data encryption with NEGO SSPI package. + // + // This is part of the NegotiateStream PAL. + // + internal static partial class NegotiateStreamPal + { + internal static int QueryMaxTokenSize(string package) + { + return SSPIWrapper.GetVerifyPackageInfo(GlobalSSPI.SSPIAuth, package, true).MaxToken; + } + + internal static SafeFreeCredentials AcquireDefaultCredential(string package, bool isServer) + { + return SSPIWrapper.AcquireDefaultCredential( + GlobalSSPI.SSPIAuth, + package, + (isServer ? Interop.SspiCli.CredentialUse.SECPKG_CRED_INBOUND : Interop.SspiCli.CredentialUse.SECPKG_CRED_OUTBOUND)); + } + + internal static unsafe SafeFreeCredentials AcquireCredentialsHandle(string package, bool isServer, NetworkCredential credential) + { + SafeSspiAuthDataHandle authData = null; + try + { + Interop.SECURITY_STATUS result = Interop.SspiCli.SspiEncodeStringsAsAuthIdentity( + credential.UserName, credential.Domain, + credential.Password, out authData); + + if (result != Interop.SECURITY_STATUS.OK) + { + if (NetEventSource.IsEnabled) NetEventSource.Error(null, SR.Format(SR.net_log_operation_failed_with_error, nameof(Interop.SspiCli.SspiEncodeStringsAsAuthIdentity), $"0x{(int)result:X}")); + throw new Win32Exception((int)result); + } + + return SSPIWrapper.AcquireCredentialsHandle(GlobalSSPI.SSPIAuth, + package, (isServer ? Interop.SspiCli.CredentialUse.SECPKG_CRED_INBOUND : Interop.SspiCli.CredentialUse.SECPKG_CRED_OUTBOUND), ref authData); + } + finally + { + authData?.Dispose(); + } + } + + internal static string QueryContextClientSpecifiedSpn(SafeDeleteContext securityContext) + { + return SSPIWrapper.QueryStringContextAttributes(GlobalSSPI.SSPIAuth, securityContext, Interop.SspiCli.ContextAttribute.SECPKG_ATTR_CLIENT_SPECIFIED_TARGET); + } + + internal static string QueryContextAuthenticationPackage(SafeDeleteContext securityContext) + { + SecPkgContext_NegotiationInfoW ctx = default; + bool success = SSPIWrapper.QueryBlittableContextAttributes(GlobalSSPI.SSPIAuth, securityContext, Interop.SspiCli.ContextAttribute.SECPKG_ATTR_NEGOTIATION_INFO, typeof(SafeFreeContextBuffer), out SafeHandle sspiHandle, ref ctx); + using (sspiHandle) + { + return success ? NegotiationInfoClass.GetAuthenticationPackageName(sspiHandle, (int)ctx.NegotiationState) : null; + } + } + + internal static SecurityStatusPal InitializeSecurityContext( + ref SafeFreeCredentials credentialsHandle, + ref SafeDeleteContext securityContext, + string spn, + ContextFlagsPal requestedContextFlags, + byte[] incomingBlob, + ChannelBinding channelBinding, + ref byte[] resultBlob, + ref ContextFlagsPal contextFlags) + { +#if netstandard + Span inSecurityBufferSpan = new SecurityBuffer[2]; +#else + TwoSecurityBuffers twoSecurityBuffers = default; + Span inSecurityBufferSpan = MemoryMarshal.CreateSpan(ref twoSecurityBuffers._item0, 2); +#endif + + int inSecurityBufferSpanLength = 0; + if (incomingBlob != null && channelBinding != null) + { + inSecurityBufferSpan[0] = new SecurityBuffer(incomingBlob, SecurityBufferType.SECBUFFER_TOKEN); + inSecurityBufferSpan[1] = new SecurityBuffer(channelBinding); + inSecurityBufferSpanLength = 2; + } + else if (incomingBlob != null) + { + inSecurityBufferSpan[0] = new SecurityBuffer(incomingBlob, SecurityBufferType.SECBUFFER_TOKEN); + inSecurityBufferSpanLength = 1; + } + else if (channelBinding != null) + { + inSecurityBufferSpan[0] = new SecurityBuffer(channelBinding); + inSecurityBufferSpanLength = 1; + } + inSecurityBufferSpan = inSecurityBufferSpan.Slice(0, inSecurityBufferSpanLength); + + var outSecurityBuffer = new SecurityBuffer(resultBlob, SecurityBufferType.SECBUFFER_TOKEN); + + Interop.SspiCli.ContextFlags outContextFlags = Interop.SspiCli.ContextFlags.Zero; + Interop.SECURITY_STATUS winStatus = (Interop.SECURITY_STATUS)SSPIWrapper.InitializeSecurityContext( + GlobalSSPI.SSPIAuth, + ref credentialsHandle, + ref securityContext, + spn, + ContextFlagsAdapterPal.GetInteropFromContextFlagsPal(requestedContextFlags), + Interop.SspiCli.Endianness.SECURITY_NETWORK_DREP, + inSecurityBufferSpan, + ref outSecurityBuffer, + ref outContextFlags); + + resultBlob = outSecurityBuffer.token; + contextFlags = ContextFlagsAdapterPal.GetContextFlagsPalFromInterop(outContextFlags); + return SecurityStatusAdapterPal.GetSecurityStatusPalFromInterop(winStatus); + } + + internal static SecurityStatusPal CompleteAuthToken( + ref SafeDeleteContext securityContext, + byte[] incomingBlob) + { + var inSecurityBuffer = new SecurityBuffer(incomingBlob, SecurityBufferType.SECBUFFER_TOKEN); + Interop.SECURITY_STATUS winStatus = (Interop.SECURITY_STATUS)SSPIWrapper.CompleteAuthToken( + GlobalSSPI.SSPIAuth, + ref securityContext, + in inSecurityBuffer); + return SecurityStatusAdapterPal.GetSecurityStatusPalFromInterop(winStatus); + } + + internal static SecurityStatusPal AcceptSecurityContext( + SafeFreeCredentials credentialsHandle, + ref SafeDeleteContext securityContext, + ContextFlagsPal requestedContextFlags, + byte[] incomingBlob, + ChannelBinding channelBinding, + ref byte[] resultBlob, + ref ContextFlagsPal contextFlags) + { +#if netstandard + Span inSecurityBufferSpan = new SecurityBuffer[2]; +#else + TwoSecurityBuffers twoSecurityBuffers = default; + Span inSecurityBufferSpan = MemoryMarshal.CreateSpan(ref twoSecurityBuffers._item0, 2); +#endif + + int inSecurityBufferSpanLength = 0; + if (incomingBlob != null && channelBinding != null) + { + inSecurityBufferSpan[0] = new SecurityBuffer(incomingBlob, SecurityBufferType.SECBUFFER_TOKEN); + inSecurityBufferSpan[1] = new SecurityBuffer(channelBinding); + inSecurityBufferSpanLength = 2; + } + else if (incomingBlob != null) + { + inSecurityBufferSpan[0] = new SecurityBuffer(incomingBlob, SecurityBufferType.SECBUFFER_TOKEN); + inSecurityBufferSpanLength = 1; + } + else if (channelBinding != null) + { + inSecurityBufferSpan[0] = new SecurityBuffer(channelBinding); + inSecurityBufferSpanLength = 1; + } + inSecurityBufferSpan = inSecurityBufferSpan.Slice(0, inSecurityBufferSpanLength); + + var outSecurityBuffer = new SecurityBuffer(resultBlob, SecurityBufferType.SECBUFFER_TOKEN); + + Interop.SspiCli.ContextFlags outContextFlags = Interop.SspiCli.ContextFlags.Zero; + Interop.SECURITY_STATUS winStatus = (Interop.SECURITY_STATUS)SSPIWrapper.AcceptSecurityContext( + GlobalSSPI.SSPIAuth, + credentialsHandle, + ref securityContext, + ContextFlagsAdapterPal.GetInteropFromContextFlagsPal(requestedContextFlags), + Interop.SspiCli.Endianness.SECURITY_NETWORK_DREP, + inSecurityBufferSpan, + ref outSecurityBuffer, + ref outContextFlags); + + resultBlob = outSecurityBuffer.token; + + contextFlags = ContextFlagsAdapterPal.GetContextFlagsPalFromInterop(outContextFlags); + return SecurityStatusAdapterPal.GetSecurityStatusPalFromInterop(winStatus); + } + + internal static Win32Exception CreateExceptionFromError(SecurityStatusPal statusCode) + { + return new Win32Exception((int)SecurityStatusAdapterPal.GetInteropFromSecurityStatusPal(statusCode)); + } + + internal static int VerifySignature(SafeDeleteContext securityContext, byte[] buffer, int offset, int count) + { + // validate offset within length + if (offset < 0 || offset > (buffer == null ? 0 : buffer.Length)) + { + NetEventSource.Info("Argument 'offset' out of range."); + throw new ArgumentOutOfRangeException(nameof(offset)); + } + + // validate count within offset and end of buffer + if (count < 0 || + count > (buffer == null ? 0 : buffer.Length - offset)) + { + NetEventSource.Info("Argument 'count' out of range."); + throw new ArgumentOutOfRangeException(nameof(count)); + } + + // setup security buffers for ssp call + // one points at signed data + // two will receive payload if signature is valid +#if netstandard + Span securityBuffer = new SecurityBuffer[2]; +#else + TwoSecurityBuffers stackBuffer = default; + Span securityBuffer = MemoryMarshal.CreateSpan(ref stackBuffer._item0, 2); +#endif + securityBuffer[0] = new SecurityBuffer(buffer, offset, count, SecurityBufferType.SECBUFFER_STREAM); + securityBuffer[1] = new SecurityBuffer(0, SecurityBufferType.SECBUFFER_DATA); + + // call SSP function + int errorCode = SSPIWrapper.VerifySignature( + GlobalSSPI.SSPIAuth, + securityContext, + securityBuffer, + 0); + // throw if error + if (errorCode != 0) + { + NetEventSource.Info($"VerifySignature threw error: {errorCode.ToString("x", NumberFormatInfo.InvariantInfo)}"); + throw new Win32Exception(errorCode); + } + + // not sure why this is here - retained from Encrypt code above + if (securityBuffer[1].type != SecurityBufferType.SECBUFFER_DATA) + throw new InternalException(securityBuffer[1].type); + + // return validated payload size + return securityBuffer[1].size; + } + + internal static int MakeSignature(SafeDeleteContext securityContext, byte[] buffer, int offset, int count, ref byte[] output) + { + SecPkgContext_Sizes sizes = default; + bool success = SSPIWrapper.QueryBlittableContextAttributes(GlobalSSPI.SSPIAuth, securityContext, Interop.SspiCli.ContextAttribute.SECPKG_ATTR_SIZES, ref sizes); + Debug.Assert(success); + + // alloc new output buffer if not supplied or too small + int resultSize = count + sizes.cbMaxSignature; + if (output == null || output.Length < resultSize) + { + output = new byte[resultSize]; + } + + // make a copy of user data for in-place encryption + Buffer.BlockCopy(buffer, offset, output, sizes.cbMaxSignature, count); + + // setup security buffers for ssp call +#if netstandard + Span securityBuffer = new SecurityBuffer[2]; +#else + TwoSecurityBuffers stackBuffer = default; + Span securityBuffer = MemoryMarshal.CreateSpan(ref stackBuffer._item0, 2); +#endif + securityBuffer[0] = new SecurityBuffer(output, 0, sizes.cbMaxSignature, SecurityBufferType.SECBUFFER_TOKEN); + securityBuffer[1] = new SecurityBuffer(output, sizes.cbMaxSignature, count, SecurityBufferType.SECBUFFER_DATA); + + // call SSP Function + int errorCode = SSPIWrapper.MakeSignature(GlobalSSPI.SSPIAuth, securityContext, securityBuffer, 0); + + // throw if error + if (errorCode != 0) + { + NetEventSource.Info($"MakeSignature threw error: {errorCode.ToString("x", NumberFormatInfo.InvariantInfo)}"); + throw new Win32Exception(errorCode); + } + + // return signed size + return securityBuffer[0].size + securityBuffer[1].size; + } + } +} diff --git a/src/Common/src/System/Net/Security/NetEventSource.Security.Windows.cs b/src/Common/src/System/Net/Security/NetEventSource.Security.Windows.cs new file mode 100644 index 000000000..a7dcea6f6 --- /dev/null +++ b/src/Common/src/System/Net/Security/NetEventSource.Security.Windows.cs @@ -0,0 +1,90 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Diagnostics.Tracing; +using System.Net.Security; + +namespace System.Net +{ + internal sealed partial class NetEventSource + { + [Event(AcquireDefaultCredentialId, Keywords = Keywords.Default, Level = EventLevel.Informational)] + public void AcquireDefaultCredential(string packageName, Interop.SspiCli.CredentialUse intent) + { + if (IsEnabled()) + { + WriteEvent(AcquireDefaultCredentialId, packageName, intent); + } + } + + [NonEvent] + public void AcquireCredentialsHandle(string packageName, Interop.SspiCli.CredentialUse intent, object authdata) + { + if (IsEnabled()) + { + AcquireCredentialsHandle(packageName, intent, IdOf(authdata)); + } + } + + [Event(AcquireCredentialsHandleId, Keywords = Keywords.Default, Level = EventLevel.Informational)] + public void AcquireCredentialsHandle(string packageName, Interop.SspiCli.CredentialUse intent, string authdata) + { + if (IsEnabled()) + { + WriteEvent(AcquireCredentialsHandleId, packageName, (int)intent, authdata); + } + } + + [NonEvent] + public void InitializeSecurityContext(SafeFreeCredentials credential, SafeDeleteContext context, string targetName, Interop.SspiCli.ContextFlags inFlags) + { + if (IsEnabled()) + { + InitializeSecurityContext(IdOf(credential), IdOf(context), targetName, inFlags); + } + } + [Event(InitializeSecurityContextId, Keywords = Keywords.Default, Level = EventLevel.Informational)] + private void InitializeSecurityContext(string credential, string context, string targetName, Interop.SspiCli.ContextFlags inFlags) => + WriteEvent(InitializeSecurityContextId, credential, context, targetName, (int)inFlags); + + [NonEvent] + public void AcceptSecurityContext(SafeFreeCredentials credential, SafeDeleteContext context, Interop.SspiCli.ContextFlags inFlags) + { + if (IsEnabled()) + { + AcceptSecurityContext(IdOf(credential), IdOf(context), inFlags); + } + } + [Event(AcceptSecuritContextId, Keywords = Keywords.Default, Level = EventLevel.Informational)] + private void AcceptSecurityContext(string credential, string context, Interop.SspiCli.ContextFlags inFlags) => + WriteEvent(AcceptSecuritContextId, credential, context, (int)inFlags); + + [Event(OperationReturnedSomethingId, Keywords = Keywords.Default, Level = EventLevel.Informational)] + public void OperationReturnedSomething(string operation, Interop.SECURITY_STATUS errorCode) + { + if (IsEnabled()) + { + WriteEvent(OperationReturnedSomethingId, operation, errorCode); + } + } + + [Event(SecurityContextInputBufferId, Keywords = Keywords.Default, Level = EventLevel.Informational)] + public void SecurityContextInputBuffer(string context, int inputBufferSize, int outputBufferSize, Interop.SECURITY_STATUS errorCode) + { + if (IsEnabled()) + { + WriteEvent(SecurityContextInputBufferId, context, inputBufferSize, outputBufferSize, (int)errorCode); + } + } + + [Event(SecurityContextInputBuffersId, Keywords = Keywords.Default, Level = EventLevel.Informational)] + public void SecurityContextInputBuffers(string context, int inputBuffersSize, int outputBufferSize, Interop.SECURITY_STATUS errorCode) + { + if (IsEnabled()) + { + WriteEvent(SecurityContextInputBuffersId, context, inputBuffersSize, outputBufferSize, (int)errorCode); + } + } + } +} diff --git a/src/Common/src/System/Net/Security/NetEventSource.Security.cs b/src/Common/src/System/Net/Security/NetEventSource.Security.cs new file mode 100644 index 000000000..b003ce8b7 --- /dev/null +++ b/src/Common/src/System/Net/Security/NetEventSource.Security.cs @@ -0,0 +1,36 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Diagnostics.Tracing; +using System.Globalization; +using System.Net.Security; +using System.Security.Authentication; +using System.Security.Cryptography.X509Certificates; + +namespace System.Net +{ + //TODO: If localization resources are not found, logging does not work. Issue #5126. + internal sealed partial class NetEventSource + { + // Event ids are defined in NetEventSource.Common.cs. + + [Event(EnumerateSecurityPackagesId, Keywords = Keywords.Default, Level = EventLevel.Informational)] + public void EnumerateSecurityPackages(string securityPackage) + { + if (IsEnabled()) + { + WriteEvent(EnumerateSecurityPackagesId, securityPackage ?? ""); + } + } + + [Event(SspiPackageNotFoundId, Keywords = Keywords.Default, Level = EventLevel.Informational)] + public void SspiPackageNotFound(string packageName) + { + if (IsEnabled()) + { + WriteEvent(SspiPackageNotFoundId, packageName ?? ""); + } + } + } +} diff --git a/src/Common/src/System/Net/Security/SecurityBuffer.Windows.cs b/src/Common/src/System/Net/Security/SecurityBuffer.Windows.cs new file mode 100644 index 000000000..d076942eb --- /dev/null +++ b/src/Common/src/System/Net/Security/SecurityBuffer.Windows.cs @@ -0,0 +1,91 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Runtime.InteropServices; +using System.Security.Authentication.ExtendedProtection; + +namespace System.Net.Security +{ + // Until we have stackalloc Span support, these two + // structs allow us to do the equivalent of stackalloc SecurityBuffer[2] + // and stackalloc SecurityBuffer[3], with code like: + // TwoSecurityBuffers tmp = default; + // Span buffers = MemoryMarshal.CreateSpan (data == null ? 0 : data.Length)) + { + NetEventSource.Fail(typeof(SecurityBuffer), $"'offset' out of range. [{offset}]"); + } + + if (size < 0 || size > (data == null ? 0 : data.Length - offset)) + { + NetEventSource.Fail(typeof(SecurityBuffer), $"'size' out of range. [{size}]"); + } + + this.offset = data == null || offset < 0 ? 0 : Math.Min(offset, data.Length); + this.size = data == null || size < 0 ? 0 : Math.Min(size, data.Length - this.offset); + this.type = tokentype; + this.token = size == 0 ? null : data; + this.unmanagedToken = null; + } + + public SecurityBuffer(byte[] data, SecurityBufferType tokentype) + { + this.offset = 0; + this.size = data == null ? 0 : data.Length; + this.type = tokentype; + this.token = size == 0 ? null : data; + this.unmanagedToken = null; + } + + public SecurityBuffer(int size, SecurityBufferType tokentype) + { + if (size < 0) + { + NetEventSource.Fail(typeof(SecurityBuffer), $"'size' out of range. [{size}]"); + } + + this.offset = 0; + this.size = size; + this.type = tokentype; + this.token = size == 0 ? null : new byte[size]; + this.unmanagedToken = null; + } + + public SecurityBuffer(ChannelBinding binding) + { + this.offset = 0; + this.size = (binding == null ? 0 : binding.Size); + this.type = SecurityBufferType.SECBUFFER_CHANNEL_BINDINGS; + this.token = null; + this.unmanagedToken = binding; + } + } +} diff --git a/src/Common/src/System/Net/Security/SecurityBufferType.Windows.cs b/src/Common/src/System/Net/Security/SecurityBufferType.Windows.cs new file mode 100644 index 000000000..51174938a --- /dev/null +++ b/src/Common/src/System/Net/Security/SecurityBufferType.Windows.cs @@ -0,0 +1,28 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +namespace System.Net.Security +{ + // sspi.h + internal enum SecurityBufferType + { + SECBUFFER_EMPTY = 0, + SECBUFFER_DATA = 1, + SECBUFFER_TOKEN = 2, + SECBUFFER_PKG_PARAMS = 3, + SECBUFFER_MISSING = 4, + SECBUFFER_EXTRA = 5, + SECBUFFER_STREAM_TRAILER = 6, + SECBUFFER_STREAM_HEADER = 7, + SECBUFFER_PADDING = 9, // non-data padding + SECBUFFER_STREAM = 10, + SECBUFFER_CHANNEL_BINDINGS = 14, + SECBUFFER_TARGET_HOST = 16, + SECBUFFER_ALERT = 17, + SECBUFFER_APPLICATION_PROTOCOLS = 18, + + SECBUFFER_READONLY = unchecked((int)0x80000000), + SECBUFFER_READONLY_WITH_CHECKSUM = 0x10000000 + } +} diff --git a/src/Common/src/System/Net/Security/SecurityContextTokenHandle.cs b/src/Common/src/System/Net/Security/SecurityContextTokenHandle.cs new file mode 100644 index 000000000..00e5b3ac6 --- /dev/null +++ b/src/Common/src/System/Net/Security/SecurityContextTokenHandle.cs @@ -0,0 +1,41 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using Microsoft.Win32.SafeHandles; + +using System.Threading; + +namespace System.Net.Security +{ +#if DEBUG + internal sealed class SecurityContextTokenHandle : DebugCriticalHandleZeroOrMinusOneIsInvalid + { +#else + internal sealed class SecurityContextTokenHandle : CriticalHandleZeroOrMinusOneIsInvalid + { +#endif + private int _disposed; + + private SecurityContextTokenHandle() : base() + { + } + + internal IntPtr DangerousGetHandle() + { + return handle; + } + + protected override bool ReleaseHandle() + { + if (!IsInvalid) + { + if (Interlocked.Increment(ref _disposed) == 1) + { + return Interop.Kernel32.CloseHandle(handle); + } + } + return true; + } + } +} diff --git a/src/Common/src/System/Net/Security/Unix/SafeDeleteContext.cs b/src/Common/src/System/Net/Security/Unix/SafeDeleteContext.cs new file mode 100644 index 000000000..c3c75790b --- /dev/null +++ b/src/Common/src/System/Net/Security/Unix/SafeDeleteContext.cs @@ -0,0 +1,46 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Diagnostics; +using System.Runtime.InteropServices; + +namespace System.Net.Security +{ +#if DEBUG + internal abstract class SafeDeleteContext : DebugSafeHandle + { +#else + internal abstract class SafeDeleteContext : SafeHandle + { +#endif + private SafeFreeCredentials _credential; + + protected SafeDeleteContext(SafeFreeCredentials credential) + : base(IntPtr.Zero, true) + { + Debug.Assert((null != credential), "Invalid credential passed to SafeDeleteContext"); + + // When a credential handle is first associated with the context we keep credential + // ref count bumped up to ensure ordered finalization. The credential properties + // are used in the SSL/NEGO data structures and should survive the lifetime of + // the SSL/NEGO context + bool ignore = false; + _credential = credential; + _credential.DangerousAddRef(ref ignore); + } + + public override bool IsInvalid + { + get { return (null == _credential); } + } + + protected override bool ReleaseHandle() + { + Debug.Assert((null != _credential), "Null credential in SafeDeleteContext"); + _credential.DangerousRelease(); + _credential = null; + return true; + } + } +} diff --git a/src/Common/src/System/Net/Security/Unix/SafeDeleteNegoContext.cs b/src/Common/src/System/Net/Security/Unix/SafeDeleteNegoContext.cs new file mode 100644 index 000000000..07a768b36 --- /dev/null +++ b/src/Common/src/System/Net/Security/Unix/SafeDeleteNegoContext.cs @@ -0,0 +1,85 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using System.Diagnostics; +using System.Runtime.InteropServices; +using System.Text; +using Microsoft.Win32.SafeHandles; + +namespace System.Net.Security +{ + internal sealed class SafeDeleteNegoContext : SafeDeleteContext + { + private SafeGssNameHandle _targetName; + private SafeGssContextHandle _context; + private bool _isNtlmUsed; + + public SafeGssNameHandle TargetName + { + get { return _targetName; } + } + + // Property represents if final protocol negotiated is Ntlm or not. + public bool IsNtlmUsed + { + get { return _isNtlmUsed; } + } + + public SafeGssContextHandle GssContext + { + get { return _context; } + } + + public SafeDeleteNegoContext(SafeFreeNegoCredentials credential) + : base(credential) + { + Debug.Assert((null != credential), "Null credential in SafeDeleteNegoContext"); + } + + public SafeDeleteNegoContext(SafeFreeNegoCredentials credential, string targetName) + : this(credential) + { + try + { + _targetName = SafeGssNameHandle.CreateTarget(targetName); + } + catch + { + Dispose(); + throw; + } + } + + public void SetGssContext(SafeGssContextHandle context) + { + Debug.Assert(context != null && !context.IsInvalid, "Invalid context passed to SafeDeleteNegoContext"); + _context = context; + } + + public void SetAuthenticationPackage(bool isNtlmUsed) + { + _isNtlmUsed = isNtlmUsed; + } + + protected override void Dispose(bool disposing) + { + if (disposing) + { + if (null != _context) + { + _context.Dispose(); + _context = null; + } + + if (_targetName != null) + { + _targetName.Dispose(); + _targetName = null; + } + } + base.Dispose(disposing); + } + } +} diff --git a/src/Common/src/System/Net/Security/Unix/SafeFreeCredentials.cs b/src/Common/src/System/Net/Security/Unix/SafeFreeCredentials.cs new file mode 100644 index 000000000..245f0f24c --- /dev/null +++ b/src/Common/src/System/Net/Security/Unix/SafeFreeCredentials.cs @@ -0,0 +1,74 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Diagnostics; +using System.Runtime.InteropServices; +using Microsoft.Win32.SafeHandles; + +namespace System.Net.Security +{ + // + // Implementation of handles dependable on FreeCredentialsHandle + // +#if DEBUG + internal abstract class SafeFreeCredentials : DebugSafeHandle + { +#else + internal abstract class SafeFreeCredentials : SafeHandle + { +#endif + protected SafeFreeCredentials(IntPtr handle, bool ownsHandle) : base(handle, ownsHandle) + { + } + } + + // + // This is a class holding a Credential handle reference, used for static handles cache + // +#if DEBUG + internal sealed class SafeCredentialReference : DebugCriticalHandleMinusOneIsInvalid + { +#else + internal sealed class SafeCredentialReference : CriticalHandleMinusOneIsInvalid + { +#endif + + // + // Static cache will return the target handle if found the reference in the table. + // + internal SafeFreeCredentials Target; + + internal static SafeCredentialReference CreateReference(SafeFreeCredentials target) + { + SafeCredentialReference result = new SafeCredentialReference(target); + if (result.IsInvalid) + { + return null; + } + + return result; + } + private SafeCredentialReference(SafeFreeCredentials target) : base() + { + // Bumps up the refcount on Target to signify that target handle is statically cached so + // its dispose should be postponed + bool ignore = false; + target.DangerousAddRef(ref ignore); + Target = target; + SetHandle(new IntPtr(0)); // make this handle valid + } + + protected override bool ReleaseHandle() + { + SafeFreeCredentials target = Target; + if (target != null) + { + target.DangerousRelease(); + } + + Target = null; + return true; + } + } +} diff --git a/src/Common/src/System/Net/Security/Unix/SafeFreeNegoCredentials.cs b/src/Common/src/System/Net/Security/Unix/SafeFreeNegoCredentials.cs new file mode 100644 index 000000000..ab8cf2fea --- /dev/null +++ b/src/Common/src/System/Net/Security/Unix/SafeFreeNegoCredentials.cs @@ -0,0 +1,89 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using System.Diagnostics; +using System.Runtime.InteropServices; +using System.Text; +using Microsoft.Win32.SafeHandles; + +namespace System.Net.Security +{ + internal sealed class SafeFreeNegoCredentials : SafeFreeCredentials + { + private SafeGssCredHandle _credential; + private readonly bool _isNtlmOnly; + private readonly string _userName; + private readonly bool _isDefault; + + public SafeGssCredHandle GssCredential + { + get { return _credential; } + } + + // Property represents if Ntlm Protocol is specfied or not. + public bool IsNtlmOnly + { + get { return _isNtlmOnly; } + } + + public string UserName + { + get { return _userName; } + } + + public bool IsDefault + { + get { return _isDefault; } + } + + public SafeFreeNegoCredentials(bool isNtlmOnly, string username, string password, string domain) + : base(IntPtr.Zero, true) + { + Debug.Assert(username != null && password != null, "Username and Password can not be null"); + const char At = '@'; + const char Backwhack = '\\'; + + // any invalid user format will not be mnipulated and passed as it is. + int index = username.IndexOf(Backwhack); + if (index > 0 && username.IndexOf(Backwhack, index + 1) < 0 && string.IsNullOrEmpty(domain)) + { + domain = username.Substring(0, index); + username = username.Substring(index + 1); + } + + // remove any leading and trailing whitespace + if (domain != null) + { + domain = domain.Trim(); + } + + username = username.Trim(); + + if ((username.IndexOf(At) < 0) && !string.IsNullOrEmpty(domain)) + { + username += At + domain; + } + + bool ignore = false; + _isNtlmOnly = isNtlmOnly; + _userName = username; + _isDefault = string.IsNullOrEmpty(username) || string.IsNullOrEmpty(password); + _credential = SafeGssCredHandle.Create(username, password, isNtlmOnly); + _credential.DangerousAddRef(ref ignore); + } + + public override bool IsInvalid + { + get { return (null == _credential); } + } + + protected override bool ReleaseHandle() + { + _credential.DangerousRelease(); + _credential = null; + return true; + } + } +} diff --git a/src/Common/src/System/Net/Security/Unix/SecChannelBindings.cs b/src/Common/src/System/Net/Security/Unix/SecChannelBindings.cs new file mode 100644 index 000000000..884350428 --- /dev/null +++ b/src/Common/src/System/Net/Security/Unix/SecChannelBindings.cs @@ -0,0 +1,20 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Runtime.InteropServices; + +namespace System.Net.Security +{ + [StructLayout(LayoutKind.Sequential)] + internal struct SecChannelBindings + { + internal int InitiatorLength; + internal int InitiatorOffset; + internal int AcceptorAddrType; + internal int AcceptorLength; + internal int AcceptorOffset; + internal int ApplicationDataLength; + internal int ApplicationDataOffset; + } +} diff --git a/src/Common/src/System/Net/SecurityStatusAdapterPal.Windows.cs b/src/Common/src/System/Net/SecurityStatusAdapterPal.Windows.cs new file mode 100644 index 000000000..24242b577 --- /dev/null +++ b/src/Common/src/System/Net/SecurityStatusAdapterPal.Windows.cs @@ -0,0 +1,104 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Collections.Generic; +using System.ComponentModel; +using System.Diagnostics; + +namespace System.Net +{ + internal static class SecurityStatusAdapterPal + { + private const int StatusDictionarySize = 42; + +#if DEBUG + static SecurityStatusAdapterPal() + { + Debug.Assert(s_statusDictionary.Count == StatusDictionarySize, $"Expected size {StatusDictionarySize}, got size {s_statusDictionary.Count}"); + } +#endif + + private static readonly BidirectionalDictionary s_statusDictionary = new BidirectionalDictionary(StatusDictionarySize) + { + { Interop.SECURITY_STATUS.AlgorithmMismatch, SecurityStatusPalErrorCode.AlgorithmMismatch }, + { Interop.SECURITY_STATUS.ApplicationProtocolMismatch, SecurityStatusPalErrorCode.ApplicationProtocolMismatch }, + { Interop.SECURITY_STATUS.BadBinding, SecurityStatusPalErrorCode.BadBinding }, + { Interop.SECURITY_STATUS.BufferNotEnough, SecurityStatusPalErrorCode.BufferNotEnough }, + { Interop.SECURITY_STATUS.CannotInstall, SecurityStatusPalErrorCode.CannotInstall }, + { Interop.SECURITY_STATUS.CannotPack, SecurityStatusPalErrorCode.CannotPack }, + { Interop.SECURITY_STATUS.CertExpired, SecurityStatusPalErrorCode.CertExpired }, + { Interop.SECURITY_STATUS.CertUnknown, SecurityStatusPalErrorCode.CertUnknown }, + { Interop.SECURITY_STATUS.CompAndContinue, SecurityStatusPalErrorCode.CompAndContinue }, + { Interop.SECURITY_STATUS.CompleteNeeded, SecurityStatusPalErrorCode.CompleteNeeded }, + { Interop.SECURITY_STATUS.ContextExpired, SecurityStatusPalErrorCode.ContextExpired }, + { Interop.SECURITY_STATUS.ContinueNeeded, SecurityStatusPalErrorCode.ContinueNeeded }, + { Interop.SECURITY_STATUS.CredentialsNeeded, SecurityStatusPalErrorCode.CredentialsNeeded }, + { Interop.SECURITY_STATUS.DecryptFailure, SecurityStatusPalErrorCode.DecryptFailure }, + { Interop.SECURITY_STATUS.DowngradeDetected, SecurityStatusPalErrorCode.DowngradeDetected }, + { Interop.SECURITY_STATUS.IllegalMessage, SecurityStatusPalErrorCode.IllegalMessage }, + { Interop.SECURITY_STATUS.IncompleteCredentials, SecurityStatusPalErrorCode.IncompleteCredentials }, + { Interop.SECURITY_STATUS.IncompleteMessage, SecurityStatusPalErrorCode.IncompleteMessage }, + { Interop.SECURITY_STATUS.InternalError, SecurityStatusPalErrorCode.InternalError }, + { Interop.SECURITY_STATUS.InvalidHandle, SecurityStatusPalErrorCode.InvalidHandle }, + { Interop.SECURITY_STATUS.InvalidToken, SecurityStatusPalErrorCode.InvalidToken }, + { Interop.SECURITY_STATUS.LogonDenied, SecurityStatusPalErrorCode.LogonDenied }, + { Interop.SECURITY_STATUS.MessageAltered, SecurityStatusPalErrorCode.MessageAltered }, + { Interop.SECURITY_STATUS.NoAuthenticatingAuthority, SecurityStatusPalErrorCode.NoAuthenticatingAuthority }, + { Interop.SECURITY_STATUS.NoImpersonation, SecurityStatusPalErrorCode.NoImpersonation }, + { Interop.SECURITY_STATUS.NoCredentials, SecurityStatusPalErrorCode.NoCredentials }, + { Interop.SECURITY_STATUS.NotOwner, SecurityStatusPalErrorCode.NotOwner }, + { Interop.SECURITY_STATUS.OK, SecurityStatusPalErrorCode.OK }, + { Interop.SECURITY_STATUS.OutOfMemory, SecurityStatusPalErrorCode.OutOfMemory }, + { Interop.SECURITY_STATUS.OutOfSequence, SecurityStatusPalErrorCode.OutOfSequence }, + { Interop.SECURITY_STATUS.PackageNotFound, SecurityStatusPalErrorCode.PackageNotFound }, + { Interop.SECURITY_STATUS.QopNotSupported, SecurityStatusPalErrorCode.QopNotSupported }, + { Interop.SECURITY_STATUS.Renegotiate, SecurityStatusPalErrorCode.Renegotiate }, + { Interop.SECURITY_STATUS.SecurityQosFailed, SecurityStatusPalErrorCode.SecurityQosFailed }, + { Interop.SECURITY_STATUS.SmartcardLogonRequired, SecurityStatusPalErrorCode.SmartcardLogonRequired }, + { Interop.SECURITY_STATUS.TargetUnknown, SecurityStatusPalErrorCode.TargetUnknown }, + { Interop.SECURITY_STATUS.TimeSkew, SecurityStatusPalErrorCode.TimeSkew }, + { Interop.SECURITY_STATUS.UnknownCredentials, SecurityStatusPalErrorCode.UnknownCredentials }, + { Interop.SECURITY_STATUS.UnsupportedPreauth, SecurityStatusPalErrorCode.UnsupportedPreauth }, + { Interop.SECURITY_STATUS.Unsupported, SecurityStatusPalErrorCode.Unsupported }, + { Interop.SECURITY_STATUS.UntrustedRoot, SecurityStatusPalErrorCode.UntrustedRoot }, + { Interop.SECURITY_STATUS.WrongPrincipal, SecurityStatusPalErrorCode.WrongPrincipal } + }; + + internal static SecurityStatusPal GetSecurityStatusPalFromNativeInt(int win32SecurityStatus) + { + return GetSecurityStatusPalFromInterop((Interop.SECURITY_STATUS)win32SecurityStatus); + } + + internal static SecurityStatusPal GetSecurityStatusPalFromInterop(Interop.SECURITY_STATUS win32SecurityStatus, bool attachException = false) + { + SecurityStatusPalErrorCode statusCode; + + if (!s_statusDictionary.TryGetForward(win32SecurityStatus, out statusCode)) + { + Debug.Fail("Unknown Interop.SecurityStatus value: " + win32SecurityStatus); + throw new InternalException(win32SecurityStatus); + } + + if (attachException) + { + return new SecurityStatusPal(statusCode, new Win32Exception((int)win32SecurityStatus)); + } + else + { + return new SecurityStatusPal(statusCode); + } + } + + internal static Interop.SECURITY_STATUS GetInteropFromSecurityStatusPal(SecurityStatusPal status) + { + Interop.SECURITY_STATUS interopStatus; + if (!s_statusDictionary.TryGetBackward(status.ErrorCode, out interopStatus)) + { + Debug.Fail("Unknown SecurityStatus value: " + status); + throw new InternalException(status.ErrorCode); + } + return interopStatus; + } + } +} diff --git a/src/Common/src/System/Net/SecurityStatusPal.cs b/src/Common/src/System/Net/SecurityStatusPal.cs new file mode 100644 index 000000000..324a991e4 --- /dev/null +++ b/src/Common/src/System/Net/SecurityStatusPal.cs @@ -0,0 +1,74 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +namespace System.Net +{ + internal readonly struct SecurityStatusPal + { + public readonly SecurityStatusPalErrorCode ErrorCode; + public readonly Exception Exception; + + public SecurityStatusPal(SecurityStatusPalErrorCode errorCode, Exception exception = null) + { + ErrorCode = errorCode; + Exception = exception; + } + + public override string ToString() + { + return Exception == null ? + $"{nameof(ErrorCode)}={ErrorCode}" : + $"{nameof(ErrorCode)}={ErrorCode}, {nameof(Exception)}={Exception}"; + } + } + + internal enum SecurityStatusPalErrorCode + { + NotSet = 0, + OK, + ContinueNeeded, + CompleteNeeded, + CompAndContinue, + ContextExpired, + CredentialsNeeded, + Renegotiate, + + // Errors + OutOfMemory, + InvalidHandle, + Unsupported, + TargetUnknown, + InternalError, + PackageNotFound, + NotOwner, + CannotInstall, + InvalidToken, + CannotPack, + QopNotSupported, + NoImpersonation, + LogonDenied, + UnknownCredentials, + NoCredentials, + MessageAltered, + OutOfSequence, + NoAuthenticatingAuthority, + IncompleteMessage, + IncompleteCredentials, + BufferNotEnough, + WrongPrincipal, + TimeSkew, + UntrustedRoot, + IllegalMessage, + CertUnknown, + CertExpired, + DecryptFailure, + AlgorithmMismatch, + SecurityQosFailed, + SmartcardLogonRequired, + UnsupportedPreauth, + BadBinding, + DowngradeDetected, + ApplicationProtocolMismatch + } +} diff --git a/src/Common/tests/System/Collections/DictionaryExtensions.cs b/src/Common/tests/System/Collections/DictionaryExtensions.cs new file mode 100644 index 000000000..8840a7ed2 --- /dev/null +++ b/src/Common/tests/System/Collections/DictionaryExtensions.cs @@ -0,0 +1,20 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +namespace System.Collections.Generic +{ + internal static class DictionaryExtensions + { + public static bool TryAdd(this IDictionary dict, TKey key, TValue value) + { + if (!dict.ContainsKey(key)) + { + dict.Add(key, value); + return true; + } + + return false; + } + } +} diff --git a/src/System.Data.SqlClient/src/Common/Interop/Unix/Interop.Libraries.cs b/src/System.Data.SqlClient/src/Common/Interop/Unix/Interop.Libraries.cs new file mode 100644 index 000000000..7446e1bfb --- /dev/null +++ b/src/System.Data.SqlClient/src/Common/Interop/Unix/Interop.Libraries.cs @@ -0,0 +1,18 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +internal static partial class Interop +{ + internal static partial class Libraries + { + // Shims + internal const string SystemNative = "System.Native"; + internal const string HttpNative = "System.Net.Http.Native"; + internal const string NetSecurityNative = "System.Net.Security.Native"; + internal const string CryptoNative = "System.Security.Cryptography.Native.OpenSsl"; + internal const string CompressionNative = "System.IO.Compression.Native"; + internal const string IOPortsNative = "System.IO.Ports.Native"; + internal const string Libdl = "libdl"; + } +} diff --git a/src/System.Data.SqlClient/src/Common/Interop/Unix/System.Net.Security.Native/Interop.NetSecurityNative.Extended.cs b/src/System.Data.SqlClient/src/Common/Interop/Unix/System.Net.Security.Native/Interop.NetSecurityNative.Extended.cs new file mode 100644 index 000000000..3d8ff8504 --- /dev/null +++ b/src/System.Data.SqlClient/src/Common/Interop/Unix/System.Net.Security.Native/Interop.NetSecurityNative.Extended.cs @@ -0,0 +1,27 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using System.Runtime.InteropServices; + +internal static partial class Interop +{ + internal static partial class NetSecurityNative + { + [DllImport(Interop.Libraries.NetSecurityNative, EntryPoint = "NetSecurityNative_EnsureGssInitialized")] + private static extern int EnsureGssInitialized(); + + // This constructor is added to address the issue with net6 regarding + // Shim gss api on Linux to delay loading libgssapi_krb5.so + // issue https://github.com/dotnet/SqlClient/issues/1390 + // dotnet runtime issue https://github.com/dotnet/runtime/pull/55037 + static NetSecurityNative() + { + if (Environment.Version.Major >= 6) + { + EnsureGssInitialized(); + } + } + } +} diff --git a/migrated/src/Configurations.props b/src/System.Data.SqlClient/src/Configurations.props similarity index 100% rename from migrated/src/Configurations.props rename to src/System.Data.SqlClient/src/Configurations.props diff --git a/migrated/src/GenerateThisAssemblyCs.targets b/src/System.Data.SqlClient/src/GenerateThisAssemblyCs.targets similarity index 100% rename from migrated/src/GenerateThisAssemblyCs.targets rename to src/System.Data.SqlClient/src/GenerateThisAssemblyCs.targets diff --git a/migrated/src/Interop/SNINativeMethodWrapper.Common.cs b/src/System.Data.SqlClient/src/Interop/SNINativeMethodWrapper.Common.cs similarity index 100% rename from migrated/src/Interop/SNINativeMethodWrapper.Common.cs rename to src/System.Data.SqlClient/src/Interop/SNINativeMethodWrapper.Common.cs diff --git a/migrated/src/Interop/SNINativeMethodWrapper.Unix.cs b/src/System.Data.SqlClient/src/Interop/SNINativeMethodWrapper.Unix.cs similarity index 100% rename from migrated/src/Interop/SNINativeMethodWrapper.Unix.cs rename to src/System.Data.SqlClient/src/Interop/SNINativeMethodWrapper.Unix.cs diff --git a/migrated/src/Interop/SNINativeMethodWrapper.Windows.cs b/src/System.Data.SqlClient/src/Interop/SNINativeMethodWrapper.Windows.cs similarity index 100% rename from migrated/src/Interop/SNINativeMethodWrapper.Windows.cs rename to src/System.Data.SqlClient/src/Interop/SNINativeMethodWrapper.Windows.cs diff --git a/migrated/src/MatchingRefApiCompatBaseline.txt b/src/System.Data.SqlClient/src/MatchingRefApiCompatBaseline.txt similarity index 100% rename from migrated/src/MatchingRefApiCompatBaseline.txt rename to src/System.Data.SqlClient/src/MatchingRefApiCompatBaseline.txt diff --git a/migrated/src/Microsoft/SqlServer/Server/ExtendedClrTypeCode.cs b/src/System.Data.SqlClient/src/Microsoft/SqlServer/Server/ExtendedClrTypeCode.cs similarity index 100% rename from migrated/src/Microsoft/SqlServer/Server/ExtendedClrTypeCode.cs rename to src/System.Data.SqlClient/src/Microsoft/SqlServer/Server/ExtendedClrTypeCode.cs diff --git a/migrated/src/Microsoft/SqlServer/Server/ITypedGetters.cs b/src/System.Data.SqlClient/src/Microsoft/SqlServer/Server/ITypedGetters.cs similarity index 100% rename from migrated/src/Microsoft/SqlServer/Server/ITypedGetters.cs rename to src/System.Data.SqlClient/src/Microsoft/SqlServer/Server/ITypedGetters.cs diff --git a/migrated/src/Microsoft/SqlServer/Server/ITypedGettersV3.cs b/src/System.Data.SqlClient/src/Microsoft/SqlServer/Server/ITypedGettersV3.cs similarity index 100% rename from migrated/src/Microsoft/SqlServer/Server/ITypedGettersV3.cs rename to src/System.Data.SqlClient/src/Microsoft/SqlServer/Server/ITypedGettersV3.cs diff --git a/migrated/src/Microsoft/SqlServer/Server/ITypedSetters.cs b/src/System.Data.SqlClient/src/Microsoft/SqlServer/Server/ITypedSetters.cs similarity index 100% rename from migrated/src/Microsoft/SqlServer/Server/ITypedSetters.cs rename to src/System.Data.SqlClient/src/Microsoft/SqlServer/Server/ITypedSetters.cs diff --git a/migrated/src/Microsoft/SqlServer/Server/ITypedSettersV3.cs b/src/System.Data.SqlClient/src/Microsoft/SqlServer/Server/ITypedSettersV3.cs similarity index 100% rename from migrated/src/Microsoft/SqlServer/Server/ITypedSettersV3.cs rename to src/System.Data.SqlClient/src/Microsoft/SqlServer/Server/ITypedSettersV3.cs diff --git a/migrated/src/Microsoft/SqlServer/Server/MemoryRecordBuffer.cs b/src/System.Data.SqlClient/src/Microsoft/SqlServer/Server/MemoryRecordBuffer.cs similarity index 100% rename from migrated/src/Microsoft/SqlServer/Server/MemoryRecordBuffer.cs rename to src/System.Data.SqlClient/src/Microsoft/SqlServer/Server/MemoryRecordBuffer.cs diff --git a/migrated/src/Microsoft/SqlServer/Server/MetadataUtilsSmi.cs b/src/System.Data.SqlClient/src/Microsoft/SqlServer/Server/MetadataUtilsSmi.cs similarity index 100% rename from migrated/src/Microsoft/SqlServer/Server/MetadataUtilsSmi.cs rename to src/System.Data.SqlClient/src/Microsoft/SqlServer/Server/MetadataUtilsSmi.cs diff --git a/migrated/src/Microsoft/SqlServer/Server/SmiEventSink.cs b/src/System.Data.SqlClient/src/Microsoft/SqlServer/Server/SmiEventSink.cs similarity index 100% rename from migrated/src/Microsoft/SqlServer/Server/SmiEventSink.cs rename to src/System.Data.SqlClient/src/Microsoft/SqlServer/Server/SmiEventSink.cs diff --git a/migrated/src/Microsoft/SqlServer/Server/SmiEventSink_Default.cs b/src/System.Data.SqlClient/src/Microsoft/SqlServer/Server/SmiEventSink_Default.cs similarity index 100% rename from migrated/src/Microsoft/SqlServer/Server/SmiEventSink_Default.cs rename to src/System.Data.SqlClient/src/Microsoft/SqlServer/Server/SmiEventSink_Default.cs diff --git a/migrated/src/Microsoft/SqlServer/Server/SmiGettersStream.cs b/src/System.Data.SqlClient/src/Microsoft/SqlServer/Server/SmiGettersStream.cs similarity index 100% rename from migrated/src/Microsoft/SqlServer/Server/SmiGettersStream.cs rename to src/System.Data.SqlClient/src/Microsoft/SqlServer/Server/SmiGettersStream.cs diff --git a/migrated/src/Microsoft/SqlServer/Server/SmiMetaData.cs b/src/System.Data.SqlClient/src/Microsoft/SqlServer/Server/SmiMetaData.cs similarity index 100% rename from migrated/src/Microsoft/SqlServer/Server/SmiMetaData.cs rename to src/System.Data.SqlClient/src/Microsoft/SqlServer/Server/SmiMetaData.cs diff --git a/migrated/src/Microsoft/SqlServer/Server/SmiMetaDataProperty.cs b/src/System.Data.SqlClient/src/Microsoft/SqlServer/Server/SmiMetaDataProperty.cs similarity index 100% rename from migrated/src/Microsoft/SqlServer/Server/SmiMetaDataProperty.cs rename to src/System.Data.SqlClient/src/Microsoft/SqlServer/Server/SmiMetaDataProperty.cs diff --git a/migrated/src/Microsoft/SqlServer/Server/SmiRecordBuffer.cs b/src/System.Data.SqlClient/src/Microsoft/SqlServer/Server/SmiRecordBuffer.cs similarity index 100% rename from migrated/src/Microsoft/SqlServer/Server/SmiRecordBuffer.cs rename to src/System.Data.SqlClient/src/Microsoft/SqlServer/Server/SmiRecordBuffer.cs diff --git a/migrated/src/Microsoft/SqlServer/Server/SmiSettersStream.cs b/src/System.Data.SqlClient/src/Microsoft/SqlServer/Server/SmiSettersStream.cs similarity index 100% rename from migrated/src/Microsoft/SqlServer/Server/SmiSettersStream.cs rename to src/System.Data.SqlClient/src/Microsoft/SqlServer/Server/SmiSettersStream.cs diff --git a/migrated/src/Microsoft/SqlServer/Server/SmiTypedGetterSetter.cs b/src/System.Data.SqlClient/src/Microsoft/SqlServer/Server/SmiTypedGetterSetter.cs similarity index 100% rename from migrated/src/Microsoft/SqlServer/Server/SmiTypedGetterSetter.cs rename to src/System.Data.SqlClient/src/Microsoft/SqlServer/Server/SmiTypedGetterSetter.cs diff --git a/migrated/src/Microsoft/SqlServer/Server/SmiXetterAccessMap.cs b/src/System.Data.SqlClient/src/Microsoft/SqlServer/Server/SmiXetterAccessMap.cs similarity index 100% rename from migrated/src/Microsoft/SqlServer/Server/SmiXetterAccessMap.cs rename to src/System.Data.SqlClient/src/Microsoft/SqlServer/Server/SmiXetterAccessMap.cs diff --git a/migrated/src/Microsoft/SqlServer/Server/SmiXetterTypeCode.cs b/src/System.Data.SqlClient/src/Microsoft/SqlServer/Server/SmiXetterTypeCode.cs similarity index 100% rename from migrated/src/Microsoft/SqlServer/Server/SmiXetterTypeCode.cs rename to src/System.Data.SqlClient/src/Microsoft/SqlServer/Server/SmiXetterTypeCode.cs diff --git a/migrated/src/Microsoft/SqlServer/Server/SqlDataRecord.cs b/src/System.Data.SqlClient/src/Microsoft/SqlServer/Server/SqlDataRecord.cs similarity index 100% rename from migrated/src/Microsoft/SqlServer/Server/SqlDataRecord.cs rename to src/System.Data.SqlClient/src/Microsoft/SqlServer/Server/SqlDataRecord.cs diff --git a/migrated/src/Microsoft/SqlServer/Server/SqlFacetAttribute.cs b/src/System.Data.SqlClient/src/Microsoft/SqlServer/Server/SqlFacetAttribute.cs similarity index 100% rename from migrated/src/Microsoft/SqlServer/Server/SqlFacetAttribute.cs rename to src/System.Data.SqlClient/src/Microsoft/SqlServer/Server/SqlFacetAttribute.cs diff --git a/migrated/src/Microsoft/SqlServer/Server/SqlRecordBuffer.cs b/src/System.Data.SqlClient/src/Microsoft/SqlServer/Server/SqlRecordBuffer.cs similarity index 100% rename from migrated/src/Microsoft/SqlServer/Server/SqlRecordBuffer.cs rename to src/System.Data.SqlClient/src/Microsoft/SqlServer/Server/SqlRecordBuffer.cs diff --git a/migrated/src/Microsoft/SqlServer/Server/ValueUtilsSmi.cs b/src/System.Data.SqlClient/src/Microsoft/SqlServer/Server/ValueUtilsSmi.cs similarity index 100% rename from migrated/src/Microsoft/SqlServer/Server/ValueUtilsSmi.cs rename to src/System.Data.SqlClient/src/Microsoft/SqlServer/Server/ValueUtilsSmi.cs diff --git a/migrated/src/PinvokeAnalyzerExceptionList.analyzerdata.windows b/src/System.Data.SqlClient/src/PinvokeAnalyzerExceptionList.analyzerdata.windows similarity index 100% rename from migrated/src/PinvokeAnalyzerExceptionList.analyzerdata.windows rename to src/System.Data.SqlClient/src/PinvokeAnalyzerExceptionList.analyzerdata.windows diff --git a/migrated/src/Resources/Strings.resx b/src/System.Data.SqlClient/src/Resources/Strings.resx similarity index 100% rename from migrated/src/Resources/Strings.resx rename to src/System.Data.SqlClient/src/Resources/Strings.resx diff --git a/migrated/src/Resources/System.Data.SqlClient.SqlMetaData.xml b/src/System.Data.SqlClient/src/Resources/System.Data.SqlClient.SqlMetaData.xml similarity index 100% rename from migrated/src/Resources/System.Data.SqlClient.SqlMetaData.xml rename to src/System.Data.SqlClient/src/Resources/System.Data.SqlClient.SqlMetaData.xml diff --git a/migrated/src/System.Data.SqlClient.TypeForwards.cs b/src/System.Data.SqlClient/src/System.Data.SqlClient.TypeForwards.cs similarity index 100% rename from migrated/src/System.Data.SqlClient.TypeForwards.cs rename to src/System.Data.SqlClient/src/System.Data.SqlClient.TypeForwards.cs diff --git a/src/System.Data.SqlClient/src/System.Data.SqlClient.csproj b/src/System.Data.SqlClient/src/System.Data.SqlClient.csproj index bee92921e..7c024402c 100644 --- a/src/System.Data.SqlClient/src/System.Data.SqlClient.csproj +++ b/src/System.Data.SqlClient/src/System.Data.SqlClient.csproj @@ -1,30 +1,631 @@ - - - - $(NetMinimum);$(NetMinimum)-unix;$(NetMinimum)-windows;netstandard2.0;$(NetFrameworkMinimum) - true - Microsoft - 4.6.1.6 - - - - - $([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) - SR.PlatformNotSupported_System_Data_SqlClient - - - - - false - 4.8.6 - 4.9.0 - 4.6.1.6 - 4.6.2.0 - 4.8.6 - - - - - - - + + + + $(NetMinimum);$(NetMinimum)-unix;$(NetMinimum)-windows;netstandard2.0;$(NetFrameworkMinimum) + true + Microsoft + 4.6.1.6 + true + netcoreapp + netstandard2.0 + $(NoWarn);CS1573;nullable + false + $(DefineConstants);netstandard + $(DefineConstants);netcoreapp + $(DefineConstants);FEATURE_TCPKEEPALIVE + $(DefineConstants);INTERNAL_NULLABLE_ATTRIBUTES + + + + + $([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) + SR.PlatformNotSupported_System_Data_SqlClient + + + + + false + 4.8.6 + 4.9.0 + 4.6.1.6 + 4.6.2.0 + 4.8.6 + + + + + + + + + Common\CoreLib\System\Diagnostics\CodeAnalysis\NullableAttributes.cs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + System\Data\Common\AdapterUtil.cs + + + System\Data\Common\AdapterUtil.Drivers.cs + + + + + + System\Data\Common\DbConnectionOptions.Common.cs + + + System\Data\Common\DbConnectionPoolKey.cs + + + + System\Data\Common\FieldNameLookup.cs + + + System\Data\Common\BasicFieldNameLookup.cs + + + System\Data\Common\MultipartIdentifier.cs + + + System\Data\Common\NameValuePair.cs + + + Common\System\Data\ProviderBase\DbConnectionInternal.cs + + + Common\System\Data\ProviderBase\DbConnectionFactory.cs + + + Common\System\Data\ProviderBase\DbConnectionPoolGroup.cs + + + Common\System\Data\ProviderBase\TimeoutTimer.cs + + + Common\System\Data\ProviderBase\DbReferenceCollection.cs + + + Common\System\Data\ProviderBase\DbMetaDataFactory.cs + + + Common\System\Data\ProviderBase\DbConnectionClosed.cs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + System\Data\SQLTypes\SQLResource.cs + + + + Common\CoreLib\System\Threading\Tasks\TaskToApm.cs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Common\CoreLib\Interop\Windows\Kernel32\Interop.FileTypes.cs + + + Common\CoreLib\Interop\Windows\Kernel32\Interop.GetFileType_SafeHandle.cs + + + Common\CoreLib\Interop\Windows\Kernel32\Interop.SetThreadErrorMode.cs + + + Common\CoreLib\System\IO\PathInternal.Windows.cs + + + CoreLib\System\Text\ValueStringBuilder.cs + + + Common\Interop\Windows\Interop.Errors.cs + + + Common\Interop\Windows\Interop.UNICODE_STRING.cs + + + Common\Interop\Windows\Interop.OBJECT_ATTRIBUTES.cs + + + Common\Interop\Windows\Kernel32\Interop.IoControlCodeAccess.cs + + + Common\Interop\Windows\Kernel32\Interop.CTL_CODE.cs + + + Common\Interop\Windows\Kernel32\Interop.DeviceIoControl.cs + + + Common\Interop\Windows\Kernel32\Interop.FileOperations.cs + + + Common\Interop\Windows\Kernel32\Interop.IoControlTransferType.cs + + + Common\Interop\Windows\NtDll\Interop.FILE_FULL_EA_INFORMATION.cs + + + Common\Interop\Windows\NtDll\Interop.IO_STATUS_BLOCK.cs + + + Common\Interop\Windows\NtDll\Interop.NtCreateFile.cs + + + Common\Interop\Windows\Interop.RtlNtStatusToDosError.cs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Common\Interop\Windows\Kernel32\Interop.LoadLibraryEx.cs + + + + + + + Common\Interop\Windows\Kernel32\Interop.FreeLibrary.cs + + + Common\Interop\Windows\Kernel32\Interop.GetProcAddress.cs + + + Common\CoreLib\Microsoft\Win32\SafeHandles\SafeLibraryHandle.cs + + + + + + + Common\System\Net\Security\SecurityBufferType.Windows.cs + + + Common\System\Net\Security\SecurityBuffer.Windows.cs + + + Common\Interop\Windows\SChannel\Interop.SecPkgContext_ApplicationProtocol.cs + + + Common\System\Net\Security\NegotiateStreamPal.Windows.cs + + + Common\Interop\Windows\sspicliSafeDeleteContext.cs + + + Common\Interop\Windows\SspiCli\SecuritySafeHandles.cs + + + Common\Interop\Windows\SspiCli\Interop.SSPI.cs + + + Common\System\Net\Security\SecurityContextTokenHandle.cs + + + Common\Interop\Windows\Interop.Libraries.cs + + + Common\Interop\Windows\SChannel\Interop.SECURITY_STATUS.cs + + + Common\Interop\Windows\SspiCli\SecPkgContext_Bindings.cs + + + Common\System\Net\DebugCriticalHandleZeroOrMinusOneIsInvalid.cs + + + Common\System\Net\Security\NetEventSource.Security.cs + + + Common\System\Net\Security\NetEventSource.Security.Windows.cs + + + Common\CoreLib\Interop\Windows\Kernel32\Interop.CloseHandle.cs + + + Common\Interop\Windows\SspiCli\GlobalSSPI.cs + + + Common\Interop\Windows\SspiCli\SSPIInterface.cs + + + Common\Interop\Windows\SspiCli\SecurityPackageInfoClass.cs + + + Common\Interop\Windows\SspiCli\SecurityPackageInfo.cs + + + Common\Interop\Windows\SspiCli\SSPIAuthType.cs + + + Common\Interop\Windows\SspiCli\SSPISecureChannelType.cs + + + Common\Interop\Windows\SspiCli\SSPIWrapper.cs + + + Common\Interop\Windows\SspiCli\SecPkgContext_Sizes.cs + + + Common\Interop\Windows\SspiCli\SecPkgContext_StreamSizes.cs + + + Common\Interop\Windows\SspiCli\SecPkgContext_NegotiationInfoW.cs + + + Common\Interop\Windows\SChannel\SecPkgContext_ConnectionInfo.cs + + + Common\Interop\Windows\SChannel\SecPkgContext_CipherInfo.cs + + + Common\Interop\Windows\SspiCli\NegotiationInfoClass.cs + + + Common\Interop\Windows\Crypt32\Interop.certificates.cs + + + Common\Interop\Windows\Crypt32\Interop.certificates_types.cs + + + Common\System\Net\ContextFlagsAdapterPal.Windows.cs + + + Common\System\Net\SecurityStatusAdapterPal.Windows.cs + + + Common\System\Collections\Generic\BidirectionalDictionary.cs + + + + + + + + Common\System\Net\ContextFlagsPal.cs + + + Common\System\Net\SecurityStatusPal.cs + + + Common\System\Net\DebugSafeHandle.cs + + + Common\System\Net\DebugCriticalHandleMinusOneIsInvalid.cs + + + Common\System\Net\Logging\NetEventSource.Common.cs + + + Common\System\Net\Logging\DebugThreadTracking.cs + + + Common\System\Net\InternalException.cs + + + Common\System\Net\NegotiationInfoClass.cs + + + + + + + + Common\System\Net\Security\NegotiateStreamPal.Unix.cs + + + Common\System\Net\Security\Unix\SafeDeleteContext.cs + + + Common\System\Net\Security\Unix\SafeFreeCredentials.cs + + + Common\Microsoft\Win32\SafeHandles\GssSafeHandles.cs + + + + Common\Interop\Unix\System.Net.Security.Native\Interop.NetSecurityNative.cs + + + Common\Interop\Unix\System.Net.Security.Native\Interop.NetSecurityNative.IsNtlmInstalled.cs + + + Common\System\Net\Security\Unix\SafeFreeNegoCredentials.cs + + + Common\System\Net\Security\Unix\SecChannelBindings.cs + + + Common\Interop\Unix\Interop.Libraries.cs + + + Common\Interop\Unix\System.Net.Security.Native\Interop.GssBuffer.cs + + + Common\System\Net\Security\Unix\SafeDeleteNegoContext.cs + + + Common\Interop\Unix\System.Net.Security.Native\Interop.GssApiException.cs + + + Common\System\Net\ContextFlagsAdapterPal.Unix.cs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + System.Data.SqlClient.SqlMetaData.xml + + + + + + + + + + + + + + \ No newline at end of file diff --git a/migrated/src/System/Data/Common/ActivityCorrelator.cs b/src/System.Data.SqlClient/src/System/Data/Common/ActivityCorrelator.cs similarity index 100% rename from migrated/src/System/Data/Common/ActivityCorrelator.cs rename to src/System.Data.SqlClient/src/System/Data/Common/ActivityCorrelator.cs diff --git a/migrated/src/System/Data/Common/AdapterUtil.SqlClient.cs b/src/System.Data.SqlClient/src/System/Data/Common/AdapterUtil.SqlClient.cs similarity index 100% rename from migrated/src/System/Data/Common/AdapterUtil.SqlClient.cs rename to src/System.Data.SqlClient/src/System/Data/Common/AdapterUtil.SqlClient.cs diff --git a/migrated/src/System/Data/Common/DbConnectionOptions.cs b/src/System.Data.SqlClient/src/System/Data/Common/DbConnectionOptions.cs similarity index 100% rename from migrated/src/System/Data/Common/DbConnectionOptions.cs rename to src/System.Data.SqlClient/src/System/Data/Common/DbConnectionOptions.cs diff --git a/migrated/src/System/Data/Common/DbConnectionStringCommon.NetCoreApp.cs b/src/System.Data.SqlClient/src/System/Data/Common/DbConnectionStringCommon.NetCoreApp.cs similarity index 100% rename from migrated/src/System/Data/Common/DbConnectionStringCommon.NetCoreApp.cs rename to src/System.Data.SqlClient/src/System/Data/Common/DbConnectionStringCommon.NetCoreApp.cs diff --git a/migrated/src/System/Data/Common/DbConnectionStringCommon.cs b/src/System.Data.SqlClient/src/System/Data/Common/DbConnectionStringCommon.cs similarity index 100% rename from migrated/src/System/Data/Common/DbConnectionStringCommon.cs rename to src/System.Data.SqlClient/src/System/Data/Common/DbConnectionStringCommon.cs diff --git a/migrated/src/System/Data/Common/SR.cs b/src/System.Data.SqlClient/src/System/Data/Common/SR.cs similarity index 100% rename from migrated/src/System/Data/Common/SR.cs rename to src/System.Data.SqlClient/src/System/Data/Common/SR.cs diff --git a/migrated/src/System/Data/DataException.cs b/src/System.Data.SqlClient/src/System/Data/DataException.cs similarity index 100% rename from migrated/src/System/Data/DataException.cs rename to src/System.Data.SqlClient/src/System/Data/DataException.cs diff --git a/migrated/src/System/Data/OperationAbortedException.cs b/src/System.Data.SqlClient/src/System/Data/OperationAbortedException.cs similarity index 100% rename from migrated/src/System/Data/OperationAbortedException.cs rename to src/System.Data.SqlClient/src/System/Data/OperationAbortedException.cs diff --git a/migrated/src/System/Data/ProviderBase/DbConnectionClosed.cs b/src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionClosed.cs similarity index 100% rename from migrated/src/System/Data/ProviderBase/DbConnectionClosed.cs rename to src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionClosed.cs diff --git a/migrated/src/System/Data/ProviderBase/DbConnectionFactory.cs b/src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionFactory.cs similarity index 100% rename from migrated/src/System/Data/ProviderBase/DbConnectionFactory.cs rename to src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionFactory.cs diff --git a/migrated/src/System/Data/ProviderBase/DbConnectionInternal.cs b/src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionInternal.cs similarity index 100% rename from migrated/src/System/Data/ProviderBase/DbConnectionInternal.cs rename to src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionInternal.cs diff --git a/migrated/src/System/Data/ProviderBase/DbConnectionPool.NetCoreApp.cs b/src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionPool.NetCoreApp.cs similarity index 100% rename from migrated/src/System/Data/ProviderBase/DbConnectionPool.NetCoreApp.cs rename to src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionPool.NetCoreApp.cs diff --git a/migrated/src/System/Data/ProviderBase/DbConnectionPool.cs b/src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionPool.cs similarity index 100% rename from migrated/src/System/Data/ProviderBase/DbConnectionPool.cs rename to src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionPool.cs diff --git a/migrated/src/System/Data/ProviderBase/DbConnectionPoolGroupProviderInfo.cs b/src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionPoolGroupProviderInfo.cs similarity index 100% rename from migrated/src/System/Data/ProviderBase/DbConnectionPoolGroupProviderInfo.cs rename to src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionPoolGroupProviderInfo.cs diff --git a/migrated/src/System/Data/ProviderBase/DbConnectionPoolIdentity.Unix.cs b/src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionPoolIdentity.Unix.cs similarity index 100% rename from migrated/src/System/Data/ProviderBase/DbConnectionPoolIdentity.Unix.cs rename to src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionPoolIdentity.Unix.cs diff --git a/migrated/src/System/Data/ProviderBase/DbConnectionPoolIdentity.Windows.cs b/src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionPoolIdentity.Windows.cs similarity index 100% rename from migrated/src/System/Data/ProviderBase/DbConnectionPoolIdentity.Windows.cs rename to src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionPoolIdentity.Windows.cs diff --git a/migrated/src/System/Data/ProviderBase/DbConnectionPoolIdentity.cs b/src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionPoolIdentity.cs similarity index 100% rename from migrated/src/System/Data/ProviderBase/DbConnectionPoolIdentity.cs rename to src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionPoolIdentity.cs diff --git a/migrated/src/System/Data/ProviderBase/DbConnectionPoolOptions.cs b/src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionPoolOptions.cs similarity index 100% rename from migrated/src/System/Data/ProviderBase/DbConnectionPoolOptions.cs rename to src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionPoolOptions.cs diff --git a/migrated/src/System/Data/ProviderBase/DbConnectionPoolProviderInfo.cs b/src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionPoolProviderInfo.cs similarity index 100% rename from migrated/src/System/Data/ProviderBase/DbConnectionPoolProviderInfo.cs rename to src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionPoolProviderInfo.cs diff --git a/migrated/src/System/Data/Sql/IBinarySerialize.cs b/src/System.Data.SqlClient/src/System/Data/Sql/IBinarySerialize.cs similarity index 100% rename from migrated/src/System/Data/Sql/IBinarySerialize.cs rename to src/System.Data.SqlClient/src/System/Data/Sql/IBinarySerialize.cs diff --git a/migrated/src/System/Data/Sql/InvalidUdtException.cs b/src/System.Data.SqlClient/src/System/Data/Sql/InvalidUdtException.cs similarity index 100% rename from migrated/src/System/Data/Sql/InvalidUdtException.cs rename to src/System.Data.SqlClient/src/System/Data/Sql/InvalidUdtException.cs diff --git a/migrated/src/System/Data/Sql/SqlFunctionAttribute.cs b/src/System.Data.SqlClient/src/System/Data/Sql/SqlFunctionAttribute.cs similarity index 100% rename from migrated/src/System/Data/Sql/SqlFunctionAttribute.cs rename to src/System.Data.SqlClient/src/System/Data/Sql/SqlFunctionAttribute.cs diff --git a/migrated/src/System/Data/Sql/SqlMetaData.cs b/src/System.Data.SqlClient/src/System/Data/Sql/SqlMetaData.cs similarity index 100% rename from migrated/src/System/Data/Sql/SqlMetaData.cs rename to src/System.Data.SqlClient/src/System/Data/Sql/SqlMetaData.cs diff --git a/migrated/src/System/Data/Sql/SqlMethodAttribute.cs b/src/System.Data.SqlClient/src/System/Data/Sql/SqlMethodAttribute.cs similarity index 100% rename from migrated/src/System/Data/Sql/SqlMethodAttribute.cs rename to src/System.Data.SqlClient/src/System/Data/Sql/SqlMethodAttribute.cs diff --git a/migrated/src/System/Data/Sql/SqlNorm.cs b/src/System.Data.SqlClient/src/System/Data/Sql/SqlNorm.cs similarity index 100% rename from migrated/src/System/Data/Sql/SqlNorm.cs rename to src/System.Data.SqlClient/src/System/Data/Sql/SqlNorm.cs diff --git a/migrated/src/System/Data/Sql/SqlNotificationRequest.cs b/src/System.Data.SqlClient/src/System/Data/Sql/SqlNotificationRequest.cs similarity index 100% rename from migrated/src/System/Data/Sql/SqlNotificationRequest.cs rename to src/System.Data.SqlClient/src/System/Data/Sql/SqlNotificationRequest.cs diff --git a/migrated/src/System/Data/Sql/SqlSer.cs b/src/System.Data.SqlClient/src/System/Data/Sql/SqlSer.cs similarity index 100% rename from migrated/src/System/Data/Sql/SqlSer.cs rename to src/System.Data.SqlClient/src/System/Data/Sql/SqlSer.cs diff --git a/migrated/src/System/Data/Sql/SqlUserDefinedAggregateAttribute.cs b/src/System.Data.SqlClient/src/System/Data/Sql/SqlUserDefinedAggregateAttribute.cs similarity index 100% rename from migrated/src/System/Data/Sql/SqlUserDefinedAggregateAttribute.cs rename to src/System.Data.SqlClient/src/System/Data/Sql/SqlUserDefinedAggregateAttribute.cs diff --git a/migrated/src/System/Data/Sql/SqlUserDefinedTypeAttribute.cs b/src/System.Data.SqlClient/src/System/Data/Sql/SqlUserDefinedTypeAttribute.cs similarity index 100% rename from migrated/src/System/Data/Sql/SqlUserDefinedTypeAttribute.cs rename to src/System.Data.SqlClient/src/System/Data/Sql/SqlUserDefinedTypeAttribute.cs diff --git a/migrated/src/System/Data/SqlClient/ApplicationIntent.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/ApplicationIntent.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/ApplicationIntent.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/ApplicationIntent.cs diff --git a/migrated/src/System/Data/SqlClient/LocalDBAPI.Common.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/LocalDBAPI.Common.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/LocalDBAPI.Common.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/LocalDBAPI.Common.cs diff --git a/migrated/src/System/Data/SqlClient/LocalDBAPI.Unix.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/LocalDBAPI.Unix.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/LocalDBAPI.Unix.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/LocalDBAPI.Unix.cs diff --git a/migrated/src/System/Data/SqlClient/LocalDBAPI.Windows.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/LocalDBAPI.Windows.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/LocalDBAPI.Windows.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/LocalDBAPI.Windows.cs diff --git a/migrated/src/System/Data/SqlClient/LocalDBAPI.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/LocalDBAPI.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/LocalDBAPI.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/LocalDBAPI.cs diff --git a/migrated/src/System/Data/SqlClient/LocalDBAPI.uap.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/LocalDBAPI.uap.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/LocalDBAPI.uap.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/LocalDBAPI.uap.cs diff --git a/migrated/src/System/Data/SqlClient/OnChangedEventHandler.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/OnChangedEventHandler.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/OnChangedEventHandler.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/OnChangedEventHandler.cs diff --git a/migrated/src/System/Data/SqlClient/PacketHandle.Unix.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/PacketHandle.Unix.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/PacketHandle.Unix.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/PacketHandle.Unix.cs diff --git a/migrated/src/System/Data/SqlClient/PacketHandle.Windows.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/PacketHandle.Windows.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/PacketHandle.Windows.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/PacketHandle.Windows.cs diff --git a/migrated/src/System/Data/SqlClient/ParameterPeekAheadValue.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/ParameterPeekAheadValue.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/ParameterPeekAheadValue.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/ParameterPeekAheadValue.cs diff --git a/migrated/src/System/Data/SqlClient/PoolBlockingPeriod.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/PoolBlockingPeriod.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/PoolBlockingPeriod.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/PoolBlockingPeriod.cs diff --git a/migrated/src/System/Data/SqlClient/RowsCopiedEventArgs.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/RowsCopiedEventArgs.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/RowsCopiedEventArgs.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/RowsCopiedEventArgs.cs diff --git a/migrated/src/System/Data/SqlClient/RowsCopiedEventHandler.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/RowsCopiedEventHandler.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/RowsCopiedEventHandler.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/RowsCopiedEventHandler.cs diff --git a/migrated/src/System/Data/SqlClient/SNI/LocalDB.Unix.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/LocalDB.Unix.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SNI/LocalDB.Unix.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/LocalDB.Unix.cs diff --git a/migrated/src/System/Data/SqlClient/SNI/LocalDB.Windows.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/LocalDB.Windows.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SNI/LocalDB.Windows.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/LocalDB.Windows.cs diff --git a/migrated/src/System/Data/SqlClient/SNI/LocalDB.uap.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/LocalDB.uap.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SNI/LocalDB.uap.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/LocalDB.uap.cs diff --git a/migrated/src/System/Data/SqlClient/SNI/SNICommon.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNICommon.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SNI/SNICommon.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNICommon.cs diff --git a/migrated/src/System/Data/SqlClient/SNI/SNIError.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNIError.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SNI/SNIError.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNIError.cs diff --git a/migrated/src/System/Data/SqlClient/SNI/SNIHandle.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNIHandle.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SNI/SNIHandle.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNIHandle.cs diff --git a/migrated/src/System/Data/SqlClient/SNI/SNILoadHandle.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNILoadHandle.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SNI/SNILoadHandle.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNILoadHandle.cs diff --git a/migrated/src/System/Data/SqlClient/SNI/SNIMarsConnection.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNIMarsConnection.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SNI/SNIMarsConnection.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNIMarsConnection.cs diff --git a/migrated/src/System/Data/SqlClient/SNI/SNIMarsHandle.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNIMarsHandle.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SNI/SNIMarsHandle.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNIMarsHandle.cs diff --git a/migrated/src/System/Data/SqlClient/SNI/SNIMarsQueuedPacket.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNIMarsQueuedPacket.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SNI/SNIMarsQueuedPacket.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNIMarsQueuedPacket.cs diff --git a/migrated/src/System/Data/SqlClient/SNI/SNINpHandle.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNINpHandle.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SNI/SNINpHandle.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNINpHandle.cs diff --git a/migrated/src/System/Data/SqlClient/SNI/SNIPacket.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNIPacket.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SNI/SNIPacket.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNIPacket.cs diff --git a/migrated/src/System/Data/SqlClient/SNI/SNIProxy.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNIProxy.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SNI/SNIProxy.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNIProxy.cs diff --git a/migrated/src/System/Data/SqlClient/SNI/SNITcpHandle.Unix.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNITcpHandle.Unix.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SNI/SNITcpHandle.Unix.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNITcpHandle.Unix.cs diff --git a/migrated/src/System/Data/SqlClient/SNI/SNITcpHandle.Windows.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNITcpHandle.Windows.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SNI/SNITcpHandle.Windows.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNITcpHandle.Windows.cs diff --git a/migrated/src/System/Data/SqlClient/SNI/SNITcpHandle.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNITcpHandle.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SNI/SNITcpHandle.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNITcpHandle.cs diff --git a/migrated/src/System/Data/SqlClient/SNI/SSRP.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SSRP.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SNI/SSRP.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SSRP.cs diff --git a/migrated/src/System/Data/SqlClient/SNI/SslOverTdsStream.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SslOverTdsStream.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SNI/SslOverTdsStream.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SslOverTdsStream.cs diff --git a/migrated/src/System/Data/SqlClient/SNI/SspiClientContextStatus.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SspiClientContextStatus.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SNI/SspiClientContextStatus.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SspiClientContextStatus.cs diff --git a/migrated/src/System/Data/SqlClient/SessionHandle.Unix.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SessionHandle.Unix.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SessionHandle.Unix.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SessionHandle.Unix.cs diff --git a/migrated/src/System/Data/SqlClient/SessionHandle.Windows.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SessionHandle.Windows.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SessionHandle.Windows.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SessionHandle.Windows.cs diff --git a/migrated/src/System/Data/SqlClient/SortOrder.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SortOrder.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SortOrder.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SortOrder.cs diff --git a/migrated/src/System/Data/SqlClient/SqlBuffer.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlBuffer.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlBuffer.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlBuffer.cs diff --git a/migrated/src/System/Data/SqlClient/SqlBulkCopy.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlBulkCopy.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlBulkCopy.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlBulkCopy.cs diff --git a/migrated/src/System/Data/SqlClient/SqlBulkCopyColumnMapping.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlBulkCopyColumnMapping.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlBulkCopyColumnMapping.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlBulkCopyColumnMapping.cs diff --git a/migrated/src/System/Data/SqlClient/SqlBulkCopyColumnMappingCollection.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlBulkCopyColumnMappingCollection.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlBulkCopyColumnMappingCollection.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlBulkCopyColumnMappingCollection.cs diff --git a/migrated/src/System/Data/SqlClient/SqlBulkCopyOptions.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlBulkCopyOptions.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlBulkCopyOptions.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlBulkCopyOptions.cs diff --git a/migrated/src/System/Data/SqlClient/SqlCachedBuffer.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlCachedBuffer.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlCachedBuffer.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlCachedBuffer.cs diff --git a/migrated/src/System/Data/SqlClient/SqlClientDiagnosticListenerExtensions.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlClientDiagnosticListenerExtensions.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlClientDiagnosticListenerExtensions.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlClientDiagnosticListenerExtensions.cs diff --git a/migrated/src/System/Data/SqlClient/SqlClientFactory.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlClientFactory.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlClientFactory.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlClientFactory.cs diff --git a/migrated/src/System/Data/SqlClient/SqlClientMetaDataCollectionNames.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlClientMetaDataCollectionNames.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlClientMetaDataCollectionNames.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlClientMetaDataCollectionNames.cs diff --git a/migrated/src/System/Data/SqlClient/SqlCommand.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlCommand.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlCommand.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlCommand.cs diff --git a/migrated/src/System/Data/SqlClient/SqlCommandBuilder.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlCommandBuilder.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlCommandBuilder.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlCommandBuilder.cs diff --git a/migrated/src/System/Data/SqlClient/SqlCommandSet.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlCommandSet.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlCommandSet.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlCommandSet.cs diff --git a/migrated/src/System/Data/SqlClient/SqlConnection.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlConnection.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlConnection.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlConnection.cs diff --git a/migrated/src/System/Data/SqlClient/SqlConnectionFactory.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlConnectionFactory.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlConnectionFactory.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlConnectionFactory.cs diff --git a/migrated/src/System/Data/SqlClient/SqlConnectionHelper.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlConnectionHelper.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlConnectionHelper.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlConnectionHelper.cs diff --git a/migrated/src/System/Data/SqlClient/SqlConnectionPoolGroupProviderInfo.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlConnectionPoolGroupProviderInfo.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlConnectionPoolGroupProviderInfo.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlConnectionPoolGroupProviderInfo.cs diff --git a/migrated/src/System/Data/SqlClient/SqlConnectionPoolKey.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlConnectionPoolKey.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlConnectionPoolKey.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlConnectionPoolKey.cs diff --git a/migrated/src/System/Data/SqlClient/SqlConnectionPoolProviderInfo.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlConnectionPoolProviderInfo.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlConnectionPoolProviderInfo.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlConnectionPoolProviderInfo.cs diff --git a/migrated/src/System/Data/SqlClient/SqlConnectionString.NetCoreApp.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlConnectionString.NetCoreApp.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlConnectionString.NetCoreApp.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlConnectionString.NetCoreApp.cs diff --git a/migrated/src/System/Data/SqlClient/SqlConnectionString.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlConnectionString.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlConnectionString.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlConnectionString.cs diff --git a/migrated/src/System/Data/SqlClient/SqlConnectionStringBuilder.NetCoreApp.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlConnectionStringBuilder.NetCoreApp.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlConnectionStringBuilder.NetCoreApp.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlConnectionStringBuilder.NetCoreApp.cs diff --git a/migrated/src/System/Data/SqlClient/SqlConnectionStringBuilder.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlConnectionStringBuilder.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlConnectionStringBuilder.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlConnectionStringBuilder.cs diff --git a/migrated/src/System/Data/SqlClient/SqlConnectionTimeoutErrorInternal.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlConnectionTimeoutErrorInternal.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlConnectionTimeoutErrorInternal.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlConnectionTimeoutErrorInternal.cs diff --git a/migrated/src/System/Data/SqlClient/SqlCredential.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlCredential.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlCredential.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlCredential.cs diff --git a/migrated/src/System/Data/SqlClient/SqlDataAdapter.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlDataAdapter.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlDataAdapter.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlDataAdapter.cs diff --git a/migrated/src/System/Data/SqlClient/SqlDataReader.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlDataReader.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlDataReader.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlDataReader.cs diff --git a/migrated/src/System/Data/SqlClient/SqlDbColumn.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlDbColumn.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlDbColumn.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlDbColumn.cs diff --git a/migrated/src/System/Data/SqlClient/SqlDelegatedTransaction.NetCoreApp.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlDelegatedTransaction.NetCoreApp.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlDelegatedTransaction.NetCoreApp.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlDelegatedTransaction.NetCoreApp.cs diff --git a/migrated/src/System/Data/SqlClient/SqlDelegatedTransaction.NetStandard.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlDelegatedTransaction.NetStandard.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlDelegatedTransaction.NetStandard.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlDelegatedTransaction.NetStandard.cs diff --git a/migrated/src/System/Data/SqlClient/SqlDelegatedTransaction.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlDelegatedTransaction.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlDelegatedTransaction.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlDelegatedTransaction.cs diff --git a/migrated/src/System/Data/SqlClient/SqlDependency.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlDependency.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlDependency.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlDependency.cs diff --git a/migrated/src/System/Data/SqlClient/SqlDependencyListener.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlDependencyListener.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlDependencyListener.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlDependencyListener.cs diff --git a/migrated/src/System/Data/SqlClient/SqlDependencyUtils.AppDomain.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlDependencyUtils.AppDomain.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlDependencyUtils.AppDomain.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlDependencyUtils.AppDomain.cs diff --git a/migrated/src/System/Data/SqlClient/SqlDependencyUtils.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlDependencyUtils.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlDependencyUtils.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlDependencyUtils.cs diff --git a/migrated/src/System/Data/SqlClient/SqlEnums.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlEnums.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlEnums.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlEnums.cs diff --git a/migrated/src/System/Data/SqlClient/SqlError.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlError.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlError.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlError.cs diff --git a/migrated/src/System/Data/SqlClient/SqlErrorCollection.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlErrorCollection.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlErrorCollection.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlErrorCollection.cs diff --git a/migrated/src/System/Data/SqlClient/SqlException.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlException.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlException.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlException.cs diff --git a/migrated/src/System/Data/SqlClient/SqlFileStream.Unsupported.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlFileStream.Unsupported.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlFileStream.Unsupported.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlFileStream.Unsupported.cs diff --git a/migrated/src/System/Data/SqlClient/SqlFileStream.Windows.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlFileStream.Windows.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlFileStream.Windows.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlFileStream.Windows.cs diff --git a/migrated/src/System/Data/SqlClient/SqlInfoMessageEvent.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlInfoMessageEvent.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlInfoMessageEvent.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlInfoMessageEvent.cs diff --git a/migrated/src/System/Data/SqlClient/SqlInfoMessageEventHandler.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlInfoMessageEventHandler.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlInfoMessageEventHandler.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlInfoMessageEventHandler.cs diff --git a/migrated/src/System/Data/SqlClient/SqlInternalConnection.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlInternalConnection.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlInternalConnection.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlInternalConnection.cs diff --git a/migrated/src/System/Data/SqlClient/SqlInternalConnectionTds.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlInternalConnectionTds.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlInternalConnectionTds.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlInternalConnectionTds.cs diff --git a/migrated/src/System/Data/SqlClient/SqlInternalTransaction.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlInternalTransaction.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlInternalTransaction.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlInternalTransaction.cs diff --git a/migrated/src/System/Data/SqlClient/SqlMetadataFactory.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlMetadataFactory.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlMetadataFactory.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlMetadataFactory.cs diff --git a/migrated/src/System/Data/SqlClient/SqlNotificationEventArgs.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlNotificationEventArgs.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlNotificationEventArgs.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlNotificationEventArgs.cs diff --git a/migrated/src/System/Data/SqlClient/SqlNotificationInfo.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlNotificationInfo.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlNotificationInfo.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlNotificationInfo.cs diff --git a/migrated/src/System/Data/SqlClient/SqlNotificationSource.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlNotificationSource.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlNotificationSource.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlNotificationSource.cs diff --git a/migrated/src/System/Data/SqlClient/SqlNotificationType.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlNotificationType.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlNotificationType.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlNotificationType.cs diff --git a/migrated/src/System/Data/SqlClient/SqlParameter.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlParameter.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlParameter.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlParameter.cs diff --git a/migrated/src/System/Data/SqlClient/SqlParameterCollection.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlParameterCollection.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlParameterCollection.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlParameterCollection.cs diff --git a/migrated/src/System/Data/SqlClient/SqlParameterCollectionHelper.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlParameterCollectionHelper.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlParameterCollectionHelper.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlParameterCollectionHelper.cs diff --git a/migrated/src/System/Data/SqlClient/SqlParameterHelper.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlParameterHelper.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlParameterHelper.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlParameterHelper.cs diff --git a/migrated/src/System/Data/SqlClient/SqlReferenceCollection.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlReferenceCollection.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlReferenceCollection.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlReferenceCollection.cs diff --git a/migrated/src/System/Data/SqlClient/SqlRowUpdatedEvent.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlRowUpdatedEvent.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlRowUpdatedEvent.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlRowUpdatedEvent.cs diff --git a/migrated/src/System/Data/SqlClient/SqlRowUpdatedEventHandler.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlRowUpdatedEventHandler.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlRowUpdatedEventHandler.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlRowUpdatedEventHandler.cs diff --git a/migrated/src/System/Data/SqlClient/SqlRowUpdatingEvent.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlRowUpdatingEvent.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlRowUpdatingEvent.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlRowUpdatingEvent.cs diff --git a/migrated/src/System/Data/SqlClient/SqlRowUpdatingEventHandler.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlRowUpdatingEventHandler.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlRowUpdatingEventHandler.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlRowUpdatingEventHandler.cs diff --git a/migrated/src/System/Data/SqlClient/SqlSequentialStream.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlSequentialStream.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlSequentialStream.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlSequentialStream.cs diff --git a/migrated/src/System/Data/SqlClient/SqlSequentialTextReader.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlSequentialTextReader.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlSequentialTextReader.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlSequentialTextReader.cs diff --git a/migrated/src/System/Data/SqlClient/SqlStatistics.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlStatistics.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlStatistics.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlStatistics.cs diff --git a/migrated/src/System/Data/SqlClient/SqlStream.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlStream.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlStream.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlStream.cs diff --git a/migrated/src/System/Data/SqlClient/SqlTransaction.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlTransaction.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlTransaction.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlTransaction.cs diff --git a/migrated/src/System/Data/SqlClient/SqlUdtInfo.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlUdtInfo.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlUdtInfo.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlUdtInfo.cs diff --git a/migrated/src/System/Data/SqlClient/SqlUtil.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlUtil.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/SqlUtil.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/SqlUtil.cs diff --git a/migrated/src/System/Data/SqlClient/TdsEnums.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/TdsEnums.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/TdsEnums.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/TdsEnums.cs diff --git a/migrated/src/System/Data/SqlClient/TdsParameterSetter.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParameterSetter.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/TdsParameterSetter.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParameterSetter.cs diff --git a/migrated/src/System/Data/SqlClient/TdsParser.NetCoreApp.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParser.NetCoreApp.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/TdsParser.NetCoreApp.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParser.NetCoreApp.cs diff --git a/migrated/src/System/Data/SqlClient/TdsParser.NetStandard.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParser.NetStandard.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/TdsParser.NetStandard.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParser.NetStandard.cs diff --git a/migrated/src/System/Data/SqlClient/TdsParser.RegisterEncoding.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParser.RegisterEncoding.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/TdsParser.RegisterEncoding.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParser.RegisterEncoding.cs diff --git a/migrated/src/System/Data/SqlClient/TdsParser.Unix.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParser.Unix.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/TdsParser.Unix.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParser.Unix.cs diff --git a/migrated/src/System/Data/SqlClient/TdsParser.Windows.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParser.Windows.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/TdsParser.Windows.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParser.Windows.cs diff --git a/migrated/src/System/Data/SqlClient/TdsParser.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParser.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/TdsParser.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParser.cs diff --git a/migrated/src/System/Data/SqlClient/TdsParserHelperClasses.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParserHelperClasses.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/TdsParserHelperClasses.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParserHelperClasses.cs diff --git a/migrated/src/System/Data/SqlClient/TdsParserSafeHandles.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParserSafeHandles.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/TdsParserSafeHandles.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParserSafeHandles.cs diff --git a/migrated/src/System/Data/SqlClient/TdsParserSessionPool.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParserSessionPool.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/TdsParserSessionPool.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParserSessionPool.cs diff --git a/migrated/src/System/Data/SqlClient/TdsParserStateObject.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParserStateObject.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/TdsParserStateObject.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParserStateObject.cs diff --git a/migrated/src/System/Data/SqlClient/TdsParserStateObjectFactory.Managed.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParserStateObjectFactory.Managed.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/TdsParserStateObjectFactory.Managed.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParserStateObjectFactory.Managed.cs diff --git a/migrated/src/System/Data/SqlClient/TdsParserStateObjectFactory.Windows.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParserStateObjectFactory.Windows.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/TdsParserStateObjectFactory.Windows.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParserStateObjectFactory.Windows.cs diff --git a/migrated/src/System/Data/SqlClient/TdsParserStateObjectManaged.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParserStateObjectManaged.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/TdsParserStateObjectManaged.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParserStateObjectManaged.cs diff --git a/migrated/src/System/Data/SqlClient/TdsParserStateObjectNative.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParserStateObjectNative.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/TdsParserStateObjectNative.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParserStateObjectNative.cs diff --git a/migrated/src/System/Data/SqlClient/TdsParserStaticMethods.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParserStaticMethods.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/TdsParserStaticMethods.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParserStaticMethods.cs diff --git a/migrated/src/System/Data/SqlClient/TdsRecordBufferSetter.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/TdsRecordBufferSetter.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/TdsRecordBufferSetter.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/TdsRecordBufferSetter.cs diff --git a/migrated/src/System/Data/SqlClient/TdsValueSetter.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/TdsValueSetter.cs similarity index 100% rename from migrated/src/System/Data/SqlClient/TdsValueSetter.cs rename to src/System.Data.SqlClient/src/System/Data/SqlClient/TdsValueSetter.cs diff --git a/migrated/src/System/Data/SqlTypes/SqlTypeWorkarounds.cs b/src/System.Data.SqlClient/src/System/Data/SqlTypes/SqlTypeWorkarounds.cs similarity index 100% rename from migrated/src/System/Data/SqlTypes/SqlTypeWorkarounds.cs rename to src/System.Data.SqlClient/src/System/Data/SqlTypes/SqlTypeWorkarounds.cs diff --git a/migrated/tests/FunctionalTests/AADAccessTokenTest.cs b/src/System.Data.SqlClient/tests/FunctionalTests/AADAccessTokenTest.cs similarity index 100% rename from migrated/tests/FunctionalTests/AADAccessTokenTest.cs rename to src/System.Data.SqlClient/tests/FunctionalTests/AADAccessTokenTest.cs diff --git a/migrated/tests/FunctionalTests/AmbientTransactionFailureTest.cs b/src/System.Data.SqlClient/tests/FunctionalTests/AmbientTransactionFailureTest.cs similarity index 100% rename from migrated/tests/FunctionalTests/AmbientTransactionFailureTest.cs rename to src/System.Data.SqlClient/tests/FunctionalTests/AmbientTransactionFailureTest.cs diff --git a/migrated/tests/FunctionalTests/BaseProviderAsyncTest/BaseProviderAsyncTest.cs b/src/System.Data.SqlClient/tests/FunctionalTests/BaseProviderAsyncTest/BaseProviderAsyncTest.cs similarity index 100% rename from migrated/tests/FunctionalTests/BaseProviderAsyncTest/BaseProviderAsyncTest.cs rename to src/System.Data.SqlClient/tests/FunctionalTests/BaseProviderAsyncTest/BaseProviderAsyncTest.cs diff --git a/migrated/tests/FunctionalTests/BaseProviderAsyncTest/MockCommand.cs b/src/System.Data.SqlClient/tests/FunctionalTests/BaseProviderAsyncTest/MockCommand.cs similarity index 100% rename from migrated/tests/FunctionalTests/BaseProviderAsyncTest/MockCommand.cs rename to src/System.Data.SqlClient/tests/FunctionalTests/BaseProviderAsyncTest/MockCommand.cs diff --git a/migrated/tests/FunctionalTests/BaseProviderAsyncTest/MockConnection.cs b/src/System.Data.SqlClient/tests/FunctionalTests/BaseProviderAsyncTest/MockConnection.cs similarity index 100% rename from migrated/tests/FunctionalTests/BaseProviderAsyncTest/MockConnection.cs rename to src/System.Data.SqlClient/tests/FunctionalTests/BaseProviderAsyncTest/MockConnection.cs diff --git a/migrated/tests/FunctionalTests/BaseProviderAsyncTest/MockDataReader.cs b/src/System.Data.SqlClient/tests/FunctionalTests/BaseProviderAsyncTest/MockDataReader.cs similarity index 100% rename from migrated/tests/FunctionalTests/BaseProviderAsyncTest/MockDataReader.cs rename to src/System.Data.SqlClient/tests/FunctionalTests/BaseProviderAsyncTest/MockDataReader.cs diff --git a/migrated/tests/FunctionalTests/CloneTests.cs b/src/System.Data.SqlClient/tests/FunctionalTests/CloneTests.cs similarity index 100% rename from migrated/tests/FunctionalTests/CloneTests.cs rename to src/System.Data.SqlClient/tests/FunctionalTests/CloneTests.cs diff --git a/migrated/tests/FunctionalTests/Configurations.props b/src/System.Data.SqlClient/tests/FunctionalTests/Configurations.props similarity index 100% rename from migrated/tests/FunctionalTests/Configurations.props rename to src/System.Data.SqlClient/tests/FunctionalTests/Configurations.props diff --git a/migrated/tests/FunctionalTests/DiagnosticTest.cs b/src/System.Data.SqlClient/tests/FunctionalTests/DiagnosticTest.cs similarity index 100% rename from migrated/tests/FunctionalTests/DiagnosticTest.cs rename to src/System.Data.SqlClient/tests/FunctionalTests/DiagnosticTest.cs diff --git a/migrated/tests/FunctionalTests/ExceptionTest.cs b/src/System.Data.SqlClient/tests/FunctionalTests/ExceptionTest.cs similarity index 100% rename from migrated/tests/FunctionalTests/ExceptionTest.cs rename to src/System.Data.SqlClient/tests/FunctionalTests/ExceptionTest.cs diff --git a/migrated/tests/FunctionalTests/FakeDiagnosticListenerObserver.cs b/src/System.Data.SqlClient/tests/FunctionalTests/FakeDiagnosticListenerObserver.cs similarity index 100% rename from migrated/tests/FunctionalTests/FakeDiagnosticListenerObserver.cs rename to src/System.Data.SqlClient/tests/FunctionalTests/FakeDiagnosticListenerObserver.cs diff --git a/migrated/tests/FunctionalTests/SqlBulkCopyColumnMappingCollectionTest.cs b/src/System.Data.SqlClient/tests/FunctionalTests/SqlBulkCopyColumnMappingCollectionTest.cs similarity index 100% rename from migrated/tests/FunctionalTests/SqlBulkCopyColumnMappingCollectionTest.cs rename to src/System.Data.SqlClient/tests/FunctionalTests/SqlBulkCopyColumnMappingCollectionTest.cs diff --git a/migrated/tests/FunctionalTests/SqlClientFactoryTest.cs b/src/System.Data.SqlClient/tests/FunctionalTests/SqlClientFactoryTest.cs similarity index 100% rename from migrated/tests/FunctionalTests/SqlClientFactoryTest.cs rename to src/System.Data.SqlClient/tests/FunctionalTests/SqlClientFactoryTest.cs diff --git a/migrated/tests/FunctionalTests/SqlConnectionBasicTests.cs b/src/System.Data.SqlClient/tests/FunctionalTests/SqlConnectionBasicTests.cs similarity index 100% rename from migrated/tests/FunctionalTests/SqlConnectionBasicTests.cs rename to src/System.Data.SqlClient/tests/FunctionalTests/SqlConnectionBasicTests.cs diff --git a/migrated/tests/FunctionalTests/SqlConnectionTest.RetrieveStatistics.cs b/src/System.Data.SqlClient/tests/FunctionalTests/SqlConnectionTest.RetrieveStatistics.cs similarity index 100% rename from migrated/tests/FunctionalTests/SqlConnectionTest.RetrieveStatistics.cs rename to src/System.Data.SqlClient/tests/FunctionalTests/SqlConnectionTest.RetrieveStatistics.cs diff --git a/migrated/tests/FunctionalTests/SqlCredentialTest.cs b/src/System.Data.SqlClient/tests/FunctionalTests/SqlCredentialTest.cs similarity index 100% rename from migrated/tests/FunctionalTests/SqlCredentialTest.cs rename to src/System.Data.SqlClient/tests/FunctionalTests/SqlCredentialTest.cs diff --git a/migrated/tests/FunctionalTests/SqlDataRecordTest.cs b/src/System.Data.SqlClient/tests/FunctionalTests/SqlDataRecordTest.cs similarity index 100% rename from migrated/tests/FunctionalTests/SqlDataRecordTest.cs rename to src/System.Data.SqlClient/tests/FunctionalTests/SqlDataRecordTest.cs diff --git a/migrated/tests/FunctionalTests/SqlErrorCollectionTest.cs b/src/System.Data.SqlClient/tests/FunctionalTests/SqlErrorCollectionTest.cs similarity index 100% rename from migrated/tests/FunctionalTests/SqlErrorCollectionTest.cs rename to src/System.Data.SqlClient/tests/FunctionalTests/SqlErrorCollectionTest.cs diff --git a/migrated/tests/FunctionalTests/SqlFacetAttributeTest.cs b/src/System.Data.SqlClient/tests/FunctionalTests/SqlFacetAttributeTest.cs similarity index 100% rename from migrated/tests/FunctionalTests/SqlFacetAttributeTest.cs rename to src/System.Data.SqlClient/tests/FunctionalTests/SqlFacetAttributeTest.cs diff --git a/migrated/tests/FunctionalTests/SqlMetaDataTest.cs b/src/System.Data.SqlClient/tests/FunctionalTests/SqlMetaDataTest.cs similarity index 100% rename from migrated/tests/FunctionalTests/SqlMetaDataTest.cs rename to src/System.Data.SqlClient/tests/FunctionalTests/SqlMetaDataTest.cs diff --git a/migrated/tests/FunctionalTests/SqlParameterTest.cs b/src/System.Data.SqlClient/tests/FunctionalTests/SqlParameterTest.cs similarity index 100% rename from migrated/tests/FunctionalTests/SqlParameterTest.cs rename to src/System.Data.SqlClient/tests/FunctionalTests/SqlParameterTest.cs diff --git a/migrated/tests/FunctionalTests/System.Data.SqlClient.Tests.csproj b/src/System.Data.SqlClient/tests/FunctionalTests/System.Data.SqlClient.Tests.csproj similarity index 87% rename from migrated/tests/FunctionalTests/System.Data.SqlClient.Tests.csproj rename to src/System.Data.SqlClient/tests/FunctionalTests/System.Data.SqlClient.Tests.csproj index 277af4a5b..d241e5dee 100644 --- a/migrated/tests/FunctionalTests/System.Data.SqlClient.Tests.csproj +++ b/src/System.Data.SqlClient/tests/FunctionalTests/System.Data.SqlClient.Tests.csproj @@ -2,7 +2,8 @@ {F3E72F35-0351-4D67-9388-725BCAD807BA} true - netcoreapp-Unix-Debug;netcoreapp-Unix-Release;netcoreapp-Windows_NT-Debug;netcoreapp-Windows_NT-Release;netfx-Windows_NT-Debug;netfx-Windows_NT-Release;uap-Windows_NT-Debug;uap-Windows_NT-Release + $(NetFrameworkMinimum) + false @@ -47,6 +48,6 @@ - + - \ No newline at end of file + diff --git a/migrated/tests/FunctionalTests/TcpDefaultForAzureTest.cs b/src/System.Data.SqlClient/tests/FunctionalTests/TcpDefaultForAzureTest.cs similarity index 100% rename from migrated/tests/FunctionalTests/TcpDefaultForAzureTest.cs rename to src/System.Data.SqlClient/tests/FunctionalTests/TcpDefaultForAzureTest.cs diff --git a/migrated/tests/FunctionalTests/TestTdsServer.cs b/src/System.Data.SqlClient/tests/FunctionalTests/TestTdsServer.cs similarity index 100% rename from migrated/tests/FunctionalTests/TestTdsServer.cs rename to src/System.Data.SqlClient/tests/FunctionalTests/TestTdsServer.cs diff --git a/migrated/tests/ManualTests/Configurations.props b/src/System.Data.SqlClient/tests/ManualTests/Configurations.props similarity index 100% rename from migrated/tests/ManualTests/Configurations.props rename to src/System.Data.SqlClient/tests/ManualTests/Configurations.props diff --git a/migrated/tests/ManualTests/DDBasics/DDAsyncTest/DDAsyncTest.cs b/src/System.Data.SqlClient/tests/ManualTests/DDBasics/DDAsyncTest/DDAsyncTest.cs similarity index 100% rename from migrated/tests/ManualTests/DDBasics/DDAsyncTest/DDAsyncTest.cs rename to src/System.Data.SqlClient/tests/ManualTests/DDBasics/DDAsyncTest/DDAsyncTest.cs diff --git a/migrated/tests/ManualTests/DDBasics/DDDataTypesTest/DDDataTypesTest.cs b/src/System.Data.SqlClient/tests/ManualTests/DDBasics/DDDataTypesTest/DDDataTypesTest.cs similarity index 100% rename from migrated/tests/ManualTests/DDBasics/DDDataTypesTest/DDDataTypesTest.cs rename to src/System.Data.SqlClient/tests/ManualTests/DDBasics/DDDataTypesTest/DDDataTypesTest.cs diff --git a/migrated/tests/ManualTests/DDBasics/DDDataTypesTest/data.xml b/src/System.Data.SqlClient/tests/ManualTests/DDBasics/DDDataTypesTest/data.xml similarity index 100% rename from migrated/tests/ManualTests/DDBasics/DDDataTypesTest/data.xml rename to src/System.Data.SqlClient/tests/ManualTests/DDBasics/DDDataTypesTest/data.xml diff --git a/migrated/tests/ManualTests/DDBasics/DDMARSTest/DDMARSTest.cs b/src/System.Data.SqlClient/tests/ManualTests/DDBasics/DDMARSTest/DDMARSTest.cs similarity index 100% rename from migrated/tests/ManualTests/DDBasics/DDMARSTest/DDMARSTest.cs rename to src/System.Data.SqlClient/tests/ManualTests/DDBasics/DDMARSTest/DDMARSTest.cs diff --git a/migrated/tests/ManualTests/DataCommon/AssemblyResourceManager.cs b/src/System.Data.SqlClient/tests/ManualTests/DataCommon/AssemblyResourceManager.cs similarity index 100% rename from migrated/tests/ManualTests/DataCommon/AssemblyResourceManager.cs rename to src/System.Data.SqlClient/tests/ManualTests/DataCommon/AssemblyResourceManager.cs diff --git a/migrated/tests/ManualTests/DataCommon/DataSourceBuilder.cs b/src/System.Data.SqlClient/tests/ManualTests/DataCommon/DataSourceBuilder.cs similarity index 100% rename from migrated/tests/ManualTests/DataCommon/DataSourceBuilder.cs rename to src/System.Data.SqlClient/tests/ManualTests/DataCommon/DataSourceBuilder.cs diff --git a/migrated/tests/ManualTests/DataCommon/DataTestUtility.cs b/src/System.Data.SqlClient/tests/ManualTests/DataCommon/DataTestUtility.cs similarity index 100% rename from migrated/tests/ManualTests/DataCommon/DataTestUtility.cs rename to src/System.Data.SqlClient/tests/ManualTests/DataCommon/DataTestUtility.cs diff --git a/migrated/tests/ManualTests/DataCommon/ProxyServer.cs b/src/System.Data.SqlClient/tests/ManualTests/DataCommon/ProxyServer.cs similarity index 100% rename from migrated/tests/ManualTests/DataCommon/ProxyServer.cs rename to src/System.Data.SqlClient/tests/ManualTests/DataCommon/ProxyServer.cs diff --git a/migrated/tests/ManualTests/DataCommon/SystemDataResourceManager.cs b/src/System.Data.SqlClient/tests/ManualTests/DataCommon/SystemDataResourceManager.cs similarity index 100% rename from migrated/tests/ManualTests/DataCommon/SystemDataResourceManager.cs rename to src/System.Data.SqlClient/tests/ManualTests/DataCommon/SystemDataResourceManager.cs diff --git a/migrated/tests/ManualTests/ProviderAgnostic/MultipleResultsTest/MultipleResultsTest.bsl b/src/System.Data.SqlClient/tests/ManualTests/ProviderAgnostic/MultipleResultsTest/MultipleResultsTest.bsl similarity index 100% rename from migrated/tests/ManualTests/ProviderAgnostic/MultipleResultsTest/MultipleResultsTest.bsl rename to src/System.Data.SqlClient/tests/ManualTests/ProviderAgnostic/MultipleResultsTest/MultipleResultsTest.bsl diff --git a/migrated/tests/ManualTests/ProviderAgnostic/MultipleResultsTest/MultipleResultsTest.cs b/src/System.Data.SqlClient/tests/ManualTests/ProviderAgnostic/MultipleResultsTest/MultipleResultsTest.cs similarity index 100% rename from migrated/tests/ManualTests/ProviderAgnostic/MultipleResultsTest/MultipleResultsTest.cs rename to src/System.Data.SqlClient/tests/ManualTests/ProviderAgnostic/MultipleResultsTest/MultipleResultsTest.cs diff --git a/migrated/tests/ManualTests/ProviderAgnostic/ReaderTest/ConcurrentLoadContext.cs b/src/System.Data.SqlClient/tests/ManualTests/ProviderAgnostic/ReaderTest/ConcurrentLoadContext.cs similarity index 100% rename from migrated/tests/ManualTests/ProviderAgnostic/ReaderTest/ConcurrentLoadContext.cs rename to src/System.Data.SqlClient/tests/ManualTests/ProviderAgnostic/ReaderTest/ConcurrentLoadContext.cs diff --git a/migrated/tests/ManualTests/ProviderAgnostic/ReaderTest/ReaderTest.cs b/src/System.Data.SqlClient/tests/ManualTests/ProviderAgnostic/ReaderTest/ReaderTest.cs similarity index 100% rename from migrated/tests/ManualTests/ProviderAgnostic/ReaderTest/ReaderTest.cs rename to src/System.Data.SqlClient/tests/ManualTests/ProviderAgnostic/ReaderTest/ReaderTest.cs diff --git a/migrated/tests/ManualTests/README.md b/src/System.Data.SqlClient/tests/ManualTests/README.md similarity index 100% rename from migrated/tests/ManualTests/README.md rename to src/System.Data.SqlClient/tests/ManualTests/README.md diff --git a/migrated/tests/ManualTests/RunTests.cmd b/src/System.Data.SqlClient/tests/ManualTests/RunTests.cmd similarity index 100% rename from migrated/tests/ManualTests/RunTests.cmd rename to src/System.Data.SqlClient/tests/ManualTests/RunTests.cmd diff --git a/migrated/tests/ManualTests/SQL/AdapterTest/AdapterTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/AdapterTest/AdapterTest.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/AdapterTest/AdapterTest.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/AdapterTest/AdapterTest.cs diff --git a/migrated/tests/ManualTests/SQL/AsyncTest/AsyncCancelledConnectionsTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/AsyncTest/AsyncCancelledConnectionsTest.cs similarity index 98% rename from migrated/tests/ManualTests/SQL/AsyncTest/AsyncCancelledConnectionsTest.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/AsyncTest/AsyncCancelledConnectionsTest.cs index 6e4167025..43d8e4c03 100644 --- a/migrated/tests/ManualTests/SQL/AsyncTest/AsyncCancelledConnectionsTest.cs +++ b/src/System.Data.SqlClient/tests/ManualTests/SQL/AsyncTest/AsyncCancelledConnectionsTest.cs @@ -25,7 +25,7 @@ public AsyncCancelledConnectionsTest(ITestOutputHelper output) this._output = output; } - [ActiveIssue(490)] // This test seems to fail regularly in pipelines due to deadlocks. But it's still useful for local testing. + [ActiveIssue("490")] // This test seems to fail regularly in pipelines due to deadlocks. But it's still useful for local testing. [ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup))] public void CancelAsyncConnections() { diff --git a/migrated/tests/ManualTests/SQL/AsyncTest/AsyncTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/AsyncTest/AsyncTest.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/AsyncTest/AsyncTest.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/AsyncTest/AsyncTest.cs diff --git a/migrated/tests/ManualTests/SQL/AsyncTest/AsyncTimeoutTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/AsyncTest/AsyncTimeoutTest.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/AsyncTest/AsyncTimeoutTest.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/AsyncTest/AsyncTimeoutTest.cs diff --git a/migrated/tests/ManualTests/SQL/AsyncTest/BeginExecAsyncTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/AsyncTest/BeginExecAsyncTest.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/AsyncTest/BeginExecAsyncTest.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/AsyncTest/BeginExecAsyncTest.cs diff --git a/migrated/tests/ManualTests/SQL/AsyncTest/BeginExecReaderAsyncTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/AsyncTest/BeginExecReaderAsyncTest.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/AsyncTest/BeginExecReaderAsyncTest.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/AsyncTest/BeginExecReaderAsyncTest.cs diff --git a/migrated/tests/ManualTests/SQL/AsyncTest/XmlReaderAsyncTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/AsyncTest/XmlReaderAsyncTest.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/AsyncTest/XmlReaderAsyncTest.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/AsyncTest/XmlReaderAsyncTest.cs diff --git a/migrated/tests/ManualTests/SQL/CommandCancelTest/CommandCancelTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/CommandCancelTest/CommandCancelTest.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/CommandCancelTest/CommandCancelTest.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/CommandCancelTest/CommandCancelTest.cs diff --git a/migrated/tests/ManualTests/SQL/Common/AsyncDebugScope.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/Common/AsyncDebugScope.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/Common/AsyncDebugScope.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/Common/AsyncDebugScope.cs diff --git a/migrated/tests/ManualTests/SQL/Common/ConnectionPoolWrapper.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/Common/ConnectionPoolWrapper.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/Common/ConnectionPoolWrapper.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/Common/ConnectionPoolWrapper.cs diff --git a/migrated/tests/ManualTests/SQL/Common/InternalConnectionWrapper.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/Common/InternalConnectionWrapper.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/Common/InternalConnectionWrapper.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/Common/InternalConnectionWrapper.cs diff --git a/migrated/tests/ManualTests/SQL/Common/SystemDataExtensions.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/Common/SystemDataExtensions.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/Common/SystemDataExtensions.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/Common/SystemDataExtensions.cs diff --git a/migrated/tests/ManualTests/SQL/Common/SystemDataInternals/CommandHelper.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/Common/SystemDataInternals/CommandHelper.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/Common/SystemDataInternals/CommandHelper.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/Common/SystemDataInternals/CommandHelper.cs diff --git a/migrated/tests/ManualTests/SQL/Common/SystemDataInternals/ConnectionHelper.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/Common/SystemDataInternals/ConnectionHelper.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/Common/SystemDataInternals/ConnectionHelper.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/Common/SystemDataInternals/ConnectionHelper.cs diff --git a/migrated/tests/ManualTests/SQL/Common/SystemDataInternals/ConnectionPoolHelper.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/Common/SystemDataInternals/ConnectionPoolHelper.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/Common/SystemDataInternals/ConnectionPoolHelper.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/Common/SystemDataInternals/ConnectionPoolHelper.cs diff --git a/migrated/tests/ManualTests/SQL/Common/SystemDataInternals/DataReaderHelper.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/Common/SystemDataInternals/DataReaderHelper.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/Common/SystemDataInternals/DataReaderHelper.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/Common/SystemDataInternals/DataReaderHelper.cs diff --git a/migrated/tests/ManualTests/SQL/Common/SystemDataInternals/TdsParserHelper.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/Common/SystemDataInternals/TdsParserHelper.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/Common/SystemDataInternals/TdsParserHelper.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/Common/SystemDataInternals/TdsParserHelper.cs diff --git a/migrated/tests/ManualTests/SQL/Common/SystemDataInternals/TdsParserStateObjectHelper.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/Common/SystemDataInternals/TdsParserStateObjectHelper.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/Common/SystemDataInternals/TdsParserStateObjectHelper.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/Common/SystemDataInternals/TdsParserStateObjectHelper.cs diff --git a/migrated/tests/ManualTests/SQL/ConnectionPoolTest/ConnectionPoolTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/ConnectionPoolTest/ConnectionPoolTest.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/ConnectionPoolTest/ConnectionPoolTest.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/ConnectionPoolTest/ConnectionPoolTest.cs diff --git a/migrated/tests/ManualTests/SQL/ConnectionPoolTest/PoolBlockPeriodTest.netcoreapp.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/ConnectionPoolTest/PoolBlockPeriodTest.netcoreapp.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/ConnectionPoolTest/PoolBlockPeriodTest.netcoreapp.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/ConnectionPoolTest/PoolBlockPeriodTest.netcoreapp.cs diff --git a/migrated/tests/ManualTests/SQL/ConnectivityTests/AADAccessTokenTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/ConnectivityTests/AADAccessTokenTest.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/ConnectivityTests/AADAccessTokenTest.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/ConnectivityTests/AADAccessTokenTest.cs diff --git a/migrated/tests/ManualTests/SQL/ConnectivityTests/ConnectivityTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/ConnectivityTests/ConnectivityTest.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/ConnectivityTests/ConnectivityTest.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/ConnectivityTests/ConnectivityTest.cs diff --git a/migrated/tests/ManualTests/SQL/DataBaseSchemaTest/ConnectionSchemaTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/DataBaseSchemaTest/ConnectionSchemaTest.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/DataBaseSchemaTest/ConnectionSchemaTest.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/DataBaseSchemaTest/ConnectionSchemaTest.cs diff --git a/migrated/tests/ManualTests/SQL/DataReaderTest/DataReaderTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/DataReaderTest/DataReaderTest.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/DataReaderTest/DataReaderTest.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/DataReaderTest/DataReaderTest.cs diff --git a/migrated/tests/ManualTests/SQL/DataStreamTest/DataStreamTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/DataStreamTest/DataStreamTest.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/DataStreamTest/DataStreamTest.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/DataStreamTest/DataStreamTest.cs diff --git a/migrated/tests/ManualTests/SQL/DateTimeTest/DateTimeTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/DateTimeTest/DateTimeTest.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/DateTimeTest/DateTimeTest.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/DateTimeTest/DateTimeTest.cs diff --git a/migrated/tests/ManualTests/SQL/ExceptionTest/ExceptionTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/ExceptionTest/ExceptionTest.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/ExceptionTest/ExceptionTest.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/ExceptionTest/ExceptionTest.cs diff --git a/migrated/tests/ManualTests/SQL/InstanceNameTest/InstanceNameTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/InstanceNameTest/InstanceNameTest.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/InstanceNameTest/InstanceNameTest.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/InstanceNameTest/InstanceNameTest.cs diff --git a/migrated/tests/ManualTests/SQL/IntegratedAuthenticationTest/IntegratedAuthenticationTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/IntegratedAuthenticationTest/IntegratedAuthenticationTest.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/IntegratedAuthenticationTest/IntegratedAuthenticationTest.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/IntegratedAuthenticationTest/IntegratedAuthenticationTest.cs diff --git a/migrated/tests/ManualTests/SQL/LocalDBTest/LocalDBTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/LocalDBTest/LocalDBTest.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/LocalDBTest/LocalDBTest.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/LocalDBTest/LocalDBTest.cs diff --git a/migrated/tests/ManualTests/SQL/MARSSessionPoolingTest/MARSSessionPoolingTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/MARSSessionPoolingTest/MARSSessionPoolingTest.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/MARSSessionPoolingTest/MARSSessionPoolingTest.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/MARSSessionPoolingTest/MARSSessionPoolingTest.cs diff --git a/migrated/tests/ManualTests/SQL/MARSTest/MARSTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/MARSTest/MARSTest.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/MARSTest/MARSTest.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/MARSTest/MARSTest.cs diff --git a/migrated/tests/ManualTests/SQL/MirroringTest/ConnectionOnMirroringTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/MirroringTest/ConnectionOnMirroringTest.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/MirroringTest/ConnectionOnMirroringTest.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/MirroringTest/ConnectionOnMirroringTest.cs diff --git a/migrated/tests/ManualTests/SQL/ParallelTransactionsTest/ParallelTransactionsTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/ParallelTransactionsTest/ParallelTransactionsTest.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/ParallelTransactionsTest/ParallelTransactionsTest.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/ParallelTransactionsTest/ParallelTransactionsTest.cs diff --git a/migrated/tests/ManualTests/SQL/ParameterTest/DateTimeVariantTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/DateTimeVariantTest.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/ParameterTest/DateTimeVariantTest.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/DateTimeVariantTest.cs diff --git a/migrated/tests/ManualTests/SQL/ParameterTest/OutputParameter.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/OutputParameter.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/ParameterTest/OutputParameter.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/OutputParameter.cs diff --git a/migrated/tests/ManualTests/SQL/ParameterTest/ParametersTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/ParametersTest.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/ParameterTest/ParametersTest.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/ParametersTest.cs diff --git a/migrated/tests/ManualTests/SQL/ParameterTest/SqlAdapterUpdateBatch.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SqlAdapterUpdateBatch.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/ParameterTest/SqlAdapterUpdateBatch.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SqlAdapterUpdateBatch.cs diff --git a/migrated/tests/ManualTests/SQL/ParameterTest/SqlParameterTest_DebugMode.bsl b/src/System.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SqlParameterTest_DebugMode.bsl similarity index 100% rename from migrated/tests/ManualTests/SQL/ParameterTest/SqlParameterTest_DebugMode.bsl rename to src/System.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SqlParameterTest_DebugMode.bsl diff --git a/migrated/tests/ManualTests/SQL/ParameterTest/SqlParameterTest_ReleaseMode.bsl b/src/System.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SqlParameterTest_ReleaseMode.bsl similarity index 100% rename from migrated/tests/ManualTests/SQL/ParameterTest/SqlParameterTest_ReleaseMode.bsl rename to src/System.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SqlParameterTest_ReleaseMode.bsl diff --git a/migrated/tests/ManualTests/SQL/ParameterTest/SqlVariantParam.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SqlVariantParam.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/ParameterTest/SqlVariantParam.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SqlVariantParam.cs diff --git a/migrated/tests/ManualTests/SQL/ParameterTest/SteAttribute.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SteAttribute.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/ParameterTest/SteAttribute.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SteAttribute.cs diff --git a/migrated/tests/ManualTests/SQL/ParameterTest/SteParam.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SteParam.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/ParameterTest/SteParam.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SteParam.cs diff --git a/migrated/tests/ManualTests/SQL/ParameterTest/StePermutationSet.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/StePermutationSet.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/ParameterTest/StePermutationSet.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/StePermutationSet.cs diff --git a/migrated/tests/ManualTests/SQL/ParameterTest/SteTypeBoundaries.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SteTypeBoundaries.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/ParameterTest/SteTypeBoundaries.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/SteTypeBoundaries.cs diff --git a/migrated/tests/ManualTests/SQL/ParameterTest/StreamInputParam.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/StreamInputParam.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/ParameterTest/StreamInputParam.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/StreamInputParam.cs diff --git a/migrated/tests/ManualTests/SQL/ParameterTest/TvpTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpTest.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/ParameterTest/TvpTest.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpTest.cs diff --git a/migrated/tests/ManualTests/SQL/RandomStressTest/RandomStressTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/RandomStressTest/RandomStressTest.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/RandomStressTest/RandomStressTest.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/RandomStressTest/RandomStressTest.cs diff --git a/migrated/tests/ManualTests/SQL/RandomStressTest/Randomizer.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/RandomStressTest/Randomizer.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/RandomStressTest/Randomizer.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/RandomStressTest/Randomizer.cs diff --git a/migrated/tests/ManualTests/SQL/RandomStressTest/RandomizerPool.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/RandomStressTest/RandomizerPool.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/RandomStressTest/RandomizerPool.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/RandomStressTest/RandomizerPool.cs diff --git a/migrated/tests/ManualTests/SQL/RandomStressTest/SqlRandomColumnOptions.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/RandomStressTest/SqlRandomColumnOptions.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/RandomStressTest/SqlRandomColumnOptions.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/RandomStressTest/SqlRandomColumnOptions.cs diff --git a/migrated/tests/ManualTests/SQL/RandomStressTest/SqlRandomTable.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/RandomStressTest/SqlRandomTable.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/RandomStressTest/SqlRandomTable.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/RandomStressTest/SqlRandomTable.cs diff --git a/migrated/tests/ManualTests/SQL/RandomStressTest/SqlRandomTableColumn.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/RandomStressTest/SqlRandomTableColumn.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/RandomStressTest/SqlRandomTableColumn.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/RandomStressTest/SqlRandomTableColumn.cs diff --git a/migrated/tests/ManualTests/SQL/RandomStressTest/SqlRandomTypeInfo.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/RandomStressTest/SqlRandomTypeInfo.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/RandomStressTest/SqlRandomTypeInfo.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/RandomStressTest/SqlRandomTypeInfo.cs diff --git a/migrated/tests/ManualTests/SQL/RandomStressTest/SqlRandomTypeInfoCollection.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/RandomStressTest/SqlRandomTypeInfoCollection.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/RandomStressTest/SqlRandomTypeInfoCollection.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/RandomStressTest/SqlRandomTypeInfoCollection.cs diff --git a/migrated/tests/ManualTests/SQL/RandomStressTest/SqlRandomTypesForSqlServer.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/RandomStressTest/SqlRandomTypesForSqlServer.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/RandomStressTest/SqlRandomTypesForSqlServer.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/RandomStressTest/SqlRandomTypesForSqlServer.cs diff --git a/migrated/tests/ManualTests/SQL/RandomStressTest/SqlRandomizer.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/RandomStressTest/SqlRandomizer.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/RandomStressTest/SqlRandomizer.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/RandomStressTest/SqlRandomizer.cs diff --git a/migrated/tests/ManualTests/SQL/SplitPacketTest/SplitPacketTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/SplitPacketTest/SplitPacketTest.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/SplitPacketTest/SplitPacketTest.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/SplitPacketTest/SplitPacketTest.cs diff --git a/migrated/tests/ManualTests/SQL/SqlBulkCopyTest/AdjustPrecScaleForBulkCopy.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/AdjustPrecScaleForBulkCopy.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/SqlBulkCopyTest/AdjustPrecScaleForBulkCopy.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/AdjustPrecScaleForBulkCopy.cs diff --git a/migrated/tests/ManualTests/SQL/SqlBulkCopyTest/AzureDistributedTransaction.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/AzureDistributedTransaction.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/SqlBulkCopyTest/AzureDistributedTransaction.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/AzureDistributedTransaction.cs diff --git a/migrated/tests/ManualTests/SQL/SqlBulkCopyTest/Bug84548.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/Bug84548.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/SqlBulkCopyTest/Bug84548.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/Bug84548.cs diff --git a/migrated/tests/ManualTests/SQL/SqlBulkCopyTest/Bug85007.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/Bug85007.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/SqlBulkCopyTest/Bug85007.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/Bug85007.cs diff --git a/migrated/tests/ManualTests/SQL/SqlBulkCopyTest/Bug903514.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/Bug903514.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/SqlBulkCopyTest/Bug903514.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/Bug903514.cs diff --git a/migrated/tests/ManualTests/SQL/SqlBulkCopyTest/Bug98182.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/Bug98182.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/SqlBulkCopyTest/Bug98182.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/Bug98182.cs diff --git a/migrated/tests/ManualTests/SQL/SqlBulkCopyTest/CheckConstraints.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/CheckConstraints.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/SqlBulkCopyTest/CheckConstraints.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/CheckConstraints.cs diff --git a/migrated/tests/ManualTests/SQL/SqlBulkCopyTest/ColumnCollation.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/ColumnCollation.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/SqlBulkCopyTest/ColumnCollation.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/ColumnCollation.cs diff --git a/migrated/tests/ManualTests/SQL/SqlBulkCopyTest/CopyAllFromReader.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/CopyAllFromReader.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/SqlBulkCopyTest/CopyAllFromReader.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/CopyAllFromReader.cs diff --git a/migrated/tests/ManualTests/SQL/SqlBulkCopyTest/CopyAllFromReader1.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/CopyAllFromReader1.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/SqlBulkCopyTest/CopyAllFromReader1.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/CopyAllFromReader1.cs diff --git a/migrated/tests/ManualTests/SQL/SqlBulkCopyTest/CopyAllFromReaderAsync.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/CopyAllFromReaderAsync.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/SqlBulkCopyTest/CopyAllFromReaderAsync.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/CopyAllFromReaderAsync.cs diff --git a/migrated/tests/ManualTests/SQL/SqlBulkCopyTest/CopyAllFromReaderCancelAsync.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/CopyAllFromReaderCancelAsync.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/SqlBulkCopyTest/CopyAllFromReaderCancelAsync.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/CopyAllFromReaderCancelAsync.cs diff --git a/migrated/tests/ManualTests/SQL/SqlBulkCopyTest/CopyAllFromReaderConnectionCloseAsync.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/CopyAllFromReaderConnectionCloseAsync.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/SqlBulkCopyTest/CopyAllFromReaderConnectionCloseAsync.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/CopyAllFromReaderConnectionCloseAsync.cs diff --git a/migrated/tests/ManualTests/SQL/SqlBulkCopyTest/CopyAllFromReaderConnectionCloseOnEventAsync.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/CopyAllFromReaderConnectionCloseOnEventAsync.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/SqlBulkCopyTest/CopyAllFromReaderConnectionCloseOnEventAsync.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/CopyAllFromReaderConnectionCloseOnEventAsync.cs diff --git a/migrated/tests/ManualTests/SQL/SqlBulkCopyTest/CopyMultipleReaders.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/CopyMultipleReaders.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/SqlBulkCopyTest/CopyMultipleReaders.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/CopyMultipleReaders.cs diff --git a/migrated/tests/ManualTests/SQL/SqlBulkCopyTest/CopySomeFromDatatable.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/CopySomeFromDatatable.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/SqlBulkCopyTest/CopySomeFromDatatable.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/CopySomeFromDatatable.cs diff --git a/migrated/tests/ManualTests/SQL/SqlBulkCopyTest/CopySomeFromDatatableAsync.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/CopySomeFromDatatableAsync.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/SqlBulkCopyTest/CopySomeFromDatatableAsync.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/CopySomeFromDatatableAsync.cs diff --git a/migrated/tests/ManualTests/SQL/SqlBulkCopyTest/CopySomeFromReader.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/CopySomeFromReader.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/SqlBulkCopyTest/CopySomeFromReader.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/CopySomeFromReader.cs diff --git a/migrated/tests/ManualTests/SQL/SqlBulkCopyTest/CopySomeFromRowArray.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/CopySomeFromRowArray.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/SqlBulkCopyTest/CopySomeFromRowArray.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/CopySomeFromRowArray.cs diff --git a/migrated/tests/ManualTests/SQL/SqlBulkCopyTest/CopySomeFromRowArrayAsync.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/CopySomeFromRowArrayAsync.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/SqlBulkCopyTest/CopySomeFromRowArrayAsync.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/CopySomeFromRowArrayAsync.cs diff --git a/migrated/tests/ManualTests/SQL/SqlBulkCopyTest/CopyVariants.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/CopyVariants.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/SqlBulkCopyTest/CopyVariants.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/CopyVariants.cs diff --git a/migrated/tests/ManualTests/SQL/SqlBulkCopyTest/CopyWithEvent.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/CopyWithEvent.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/SqlBulkCopyTest/CopyWithEvent.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/CopyWithEvent.cs diff --git a/migrated/tests/ManualTests/SQL/SqlBulkCopyTest/CopyWithEvent1.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/CopyWithEvent1.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/SqlBulkCopyTest/CopyWithEvent1.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/CopyWithEvent1.cs diff --git a/migrated/tests/ManualTests/SQL/SqlBulkCopyTest/CopyWithEventAsync.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/CopyWithEventAsync.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/SqlBulkCopyTest/CopyWithEventAsync.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/CopyWithEventAsync.cs diff --git a/migrated/tests/ManualTests/SQL/SqlBulkCopyTest/ErrorOnRowsMarkedAsDeleted.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/ErrorOnRowsMarkedAsDeleted.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/SqlBulkCopyTest/ErrorOnRowsMarkedAsDeleted.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/ErrorOnRowsMarkedAsDeleted.cs diff --git a/migrated/tests/ManualTests/SQL/SqlBulkCopyTest/FireTrigger.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/FireTrigger.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/SqlBulkCopyTest/FireTrigger.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/FireTrigger.cs diff --git a/migrated/tests/ManualTests/SQL/SqlBulkCopyTest/Helpers.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/Helpers.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/SqlBulkCopyTest/Helpers.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/Helpers.cs diff --git a/migrated/tests/ManualTests/SQL/SqlBulkCopyTest/InvalidAccessFromEvent.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/InvalidAccessFromEvent.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/SqlBulkCopyTest/InvalidAccessFromEvent.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/InvalidAccessFromEvent.cs diff --git a/migrated/tests/ManualTests/SQL/SqlBulkCopyTest/MissingTargetColumn.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/MissingTargetColumn.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/SqlBulkCopyTest/MissingTargetColumn.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/MissingTargetColumn.cs diff --git a/migrated/tests/ManualTests/SQL/SqlBulkCopyTest/MissingTargetTable.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/MissingTargetTable.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/SqlBulkCopyTest/MissingTargetTable.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/MissingTargetTable.cs diff --git a/migrated/tests/ManualTests/SQL/SqlBulkCopyTest/SpecialCharacterNames.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/SpecialCharacterNames.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/SqlBulkCopyTest/SpecialCharacterNames.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/SpecialCharacterNames.cs diff --git a/migrated/tests/ManualTests/SQL/SqlBulkCopyTest/SqlBulkCopyTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/SqlBulkCopyTest.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/SqlBulkCopyTest/SqlBulkCopyTest.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/SqlBulkCopyTest.cs diff --git a/migrated/tests/ManualTests/SQL/SqlBulkCopyTest/Transaction.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/Transaction.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/SqlBulkCopyTest/Transaction.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/Transaction.cs diff --git a/migrated/tests/ManualTests/SQL/SqlBulkCopyTest/Transaction1.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/Transaction1.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/SqlBulkCopyTest/Transaction1.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/Transaction1.cs diff --git a/migrated/tests/ManualTests/SQL/SqlBulkCopyTest/Transaction2.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/Transaction2.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/SqlBulkCopyTest/Transaction2.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/Transaction2.cs diff --git a/migrated/tests/ManualTests/SQL/SqlBulkCopyTest/Transaction3.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/Transaction3.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/SqlBulkCopyTest/Transaction3.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/Transaction3.cs diff --git a/migrated/tests/ManualTests/SQL/SqlBulkCopyTest/Transaction4.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/Transaction4.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/SqlBulkCopyTest/Transaction4.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/Transaction4.cs diff --git a/migrated/tests/ManualTests/SQL/SqlBulkCopyTest/TransactionTestAsync.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/TransactionTestAsync.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/SqlBulkCopyTest/TransactionTestAsync.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/TransactionTestAsync.cs diff --git a/migrated/tests/ManualTests/SQL/SqlCredentialTest/SqlCredentialTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/SqlCredentialTest/SqlCredentialTest.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/SqlCredentialTest/SqlCredentialTest.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/SqlCredentialTest/SqlCredentialTest.cs diff --git a/migrated/tests/ManualTests/SQL/SqlFileStreamTest/SqlFileStreamTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/SqlFileStreamTest/SqlFileStreamTest.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/SqlFileStreamTest/SqlFileStreamTest.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/SqlFileStreamTest/SqlFileStreamTest.cs diff --git a/migrated/tests/ManualTests/SQL/SqlNamedPipesTest/SqlNamedPipesTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/SqlNamedPipesTest/SqlNamedPipesTest.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/SqlNamedPipesTest/SqlNamedPipesTest.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/SqlNamedPipesTest/SqlNamedPipesTest.cs diff --git a/migrated/tests/ManualTests/SQL/SqlNotificationTest/SqlNotificationTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/SqlNotificationTest/SqlNotificationTest.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/SqlNotificationTest/SqlNotificationTest.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/SqlNotificationTest/SqlNotificationTest.cs diff --git a/migrated/tests/ManualTests/SQL/SqlSchemaInfoTest/SqlSchemaInfoTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/SqlSchemaInfoTest/SqlSchemaInfoTest.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/SqlSchemaInfoTest/SqlSchemaInfoTest.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/SqlSchemaInfoTest/SqlSchemaInfoTest.cs diff --git a/migrated/tests/ManualTests/SQL/TransactionTest/TransactionEnlistmentTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/TransactionTest/TransactionEnlistmentTest.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/TransactionTest/TransactionEnlistmentTest.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/TransactionTest/TransactionEnlistmentTest.cs diff --git a/migrated/tests/ManualTests/SQL/TransactionTest/TransactionTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/TransactionTest/TransactionTest.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/TransactionTest/TransactionTest.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/TransactionTest/TransactionTest.cs diff --git a/migrated/tests/ManualTests/SQL/TransactionTest/TransactionTest.snk b/src/System.Data.SqlClient/tests/ManualTests/SQL/TransactionTest/TransactionTest.snk similarity index 100% rename from migrated/tests/ManualTests/SQL/TransactionTest/TransactionTest.snk rename to src/System.Data.SqlClient/tests/ManualTests/SQL/TransactionTest/TransactionTest.snk diff --git a/migrated/tests/ManualTests/SQL/UdtTest/SqlServerTypesTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/SqlServerTypesTest.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/UdtTest/SqlServerTypesTest.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/SqlServerTypesTest.cs diff --git a/migrated/tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.cs diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.csproj b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.csproj new file mode 100644 index 000000000..fd12ebb57 --- /dev/null +++ b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.csproj @@ -0,0 +1,6 @@ + + + {D1392B54-998A-4F27-BC17-4CE149117BCC} + $(NetFrameworkMinimum) + + diff --git a/migrated/tests/ManualTests/SQL/UdtTest/UDTs/Address/Configurations.props b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Address/Configurations.props similarity index 100% rename from migrated/tests/ManualTests/SQL/UdtTest/UDTs/Address/Configurations.props rename to src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Address/Configurations.props diff --git a/migrated/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Circle.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Circle.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Circle.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Circle.cs diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Circle.csproj b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Circle.csproj new file mode 100644 index 000000000..b7945cd91 --- /dev/null +++ b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Circle.csproj @@ -0,0 +1,6 @@ + + + {6C88F00F-9597-43AD-9E5F-9B344DA3B16F} + $(NetFrameworkMinimum) + + diff --git a/migrated/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Configurations.props b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Configurations.props similarity index 100% rename from migrated/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Configurations.props rename to src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Configurations.props diff --git a/migrated/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Point1.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Point1.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Point1.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Point1.cs diff --git a/migrated/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Configurations.props b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Configurations.props similarity index 100% rename from migrated/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Configurations.props rename to src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Configurations.props diff --git a/migrated/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Line.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Line.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Line.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Line.cs diff --git a/migrated/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Point.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Point.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Point.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Point.cs diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Shapes.csproj b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Shapes.csproj new file mode 100644 index 000000000..d31537a63 --- /dev/null +++ b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Shapes.csproj @@ -0,0 +1,6 @@ + + + {B73A7063-37C3-415D-AD53-BB3DA20ABD6E} + $(NetFrameworkMinimum) + + diff --git a/migrated/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Configurations.props b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Configurations.props similarity index 100% rename from migrated/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Configurations.props rename to src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Configurations.props diff --git a/migrated/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Utf8String.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Utf8String.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Utf8String.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Utf8String.cs diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Utf8String.csproj b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Utf8String.csproj new file mode 100644 index 000000000..62e17a6d5 --- /dev/null +++ b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Utf8String.csproj @@ -0,0 +1,6 @@ + + + {E0A6BB21-574B-43D9-890D-6E1144F2EE9E} + $(NetFrameworkMinimum) + + diff --git a/migrated/tests/ManualTests/SQL/UdtTest/UdtBulkCopyTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UdtBulkCopyTest.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/UdtTest/UdtBulkCopyTest.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UdtBulkCopyTest.cs diff --git a/migrated/tests/ManualTests/SQL/UdtTest/UdtTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UdtTest.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/UdtTest/UdtTest.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UdtTest.cs diff --git a/migrated/tests/ManualTests/SQL/UdtTest/UdtTest2.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UdtTest2.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/UdtTest/UdtTest2.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UdtTest2.cs diff --git a/migrated/tests/ManualTests/SQL/UdtTest/UdtTestHelpers.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UdtTestHelpers.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/UdtTest/UdtTestHelpers.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UdtTestHelpers.cs diff --git a/migrated/tests/ManualTests/SQL/Utf8SupportTest/Utf8SupportTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/Utf8SupportTest/Utf8SupportTest.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/Utf8SupportTest/Utf8SupportTest.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/Utf8SupportTest/Utf8SupportTest.cs diff --git a/migrated/tests/ManualTests/SQL/WeakRefTest/WeakRefTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/WeakRefTest/WeakRefTest.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/WeakRefTest/WeakRefTest.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/WeakRefTest/WeakRefTest.cs diff --git a/migrated/tests/ManualTests/SQL/WeakRefTestYukonSpecific/WeakRefTestYukonSpecific.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/WeakRefTestYukonSpecific/WeakRefTestYukonSpecific.cs similarity index 100% rename from migrated/tests/ManualTests/SQL/WeakRefTestYukonSpecific/WeakRefTestYukonSpecific.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/WeakRefTestYukonSpecific/WeakRefTestYukonSpecific.cs diff --git a/migrated/tests/ManualTests/System.Data.SqlClient.ManualTesting.Tests.csproj b/src/System.Data.SqlClient/tests/ManualTests/System.Data.SqlClient.ManualTesting.Tests.csproj similarity index 97% rename from migrated/tests/ManualTests/System.Data.SqlClient.ManualTesting.Tests.csproj rename to src/System.Data.SqlClient/tests/ManualTests/System.Data.SqlClient.ManualTesting.Tests.csproj index 188a9537a..3c26d3461 100644 --- a/migrated/tests/ManualTests/System.Data.SqlClient.ManualTesting.Tests.csproj +++ b/src/System.Data.SqlClient/tests/ManualTests/System.Data.SqlClient.ManualTesting.Tests.csproj @@ -1,10 +1,11 @@ {45DB5F86-7AE3-45C6-870D-F9357B66BDB5} - netcoreapp-Debug;netcoreapp-Release;uap-Debug;uap-Release + $(NetFrameworkMinimum) + false - + Common\System\Collections\DictionaryExtensions.cs @@ -166,4 +167,4 @@ Utf8String - \ No newline at end of file + diff --git a/migrated/tests/ManualTests/XUnitAssemblyAttributes.cs b/src/System.Data.SqlClient/tests/ManualTests/XUnitAssemblyAttributes.cs similarity index 100% rename from migrated/tests/ManualTests/XUnitAssemblyAttributes.cs rename to src/System.Data.SqlClient/tests/ManualTests/XUnitAssemblyAttributes.cs diff --git a/migrated/tests/ManualTests/createUdtTestDb_corefx.sql b/src/System.Data.SqlClient/tests/ManualTests/createUdtTestDb_corefx.sql similarity index 100% rename from migrated/tests/ManualTests/createUdtTestDb_corefx.sql rename to src/System.Data.SqlClient/tests/ManualTests/createUdtTestDb_corefx.sql diff --git a/migrated/tests/StressTests/IMonitorLoader/Configurations.props b/src/System.Data.SqlClient/tests/StressTests/IMonitorLoader/Configurations.props similarity index 100% rename from migrated/tests/StressTests/IMonitorLoader/Configurations.props rename to src/System.Data.SqlClient/tests/StressTests/IMonitorLoader/Configurations.props diff --git a/migrated/tests/StressTests/IMonitorLoader/IMonitorLoader.cs b/src/System.Data.SqlClient/tests/StressTests/IMonitorLoader/IMonitorLoader.cs similarity index 100% rename from migrated/tests/StressTests/IMonitorLoader/IMonitorLoader.cs rename to src/System.Data.SqlClient/tests/StressTests/IMonitorLoader/IMonitorLoader.cs diff --git a/migrated/tests/StressTests/IMonitorLoader/IMonitorLoader.csproj b/src/System.Data.SqlClient/tests/StressTests/IMonitorLoader/IMonitorLoader.csproj similarity index 100% rename from migrated/tests/StressTests/IMonitorLoader/IMonitorLoader.csproj rename to src/System.Data.SqlClient/tests/StressTests/IMonitorLoader/IMonitorLoader.csproj diff --git a/migrated/tests/StressTests/IMonitorLoader/MonitorMetrics.cs b/src/System.Data.SqlClient/tests/StressTests/IMonitorLoader/MonitorMetrics.cs similarity index 100% rename from migrated/tests/StressTests/IMonitorLoader/MonitorMetrics.cs rename to src/System.Data.SqlClient/tests/StressTests/IMonitorLoader/MonitorMetrics.cs diff --git a/migrated/tests/StressTests/System.Data.SqlClient.Stress.Tests/Configurations.props b/src/System.Data.SqlClient/tests/StressTests/System.Data.SqlClient.Stress.Tests/Configurations.props similarity index 100% rename from migrated/tests/StressTests/System.Data.SqlClient.Stress.Tests/Configurations.props rename to src/System.Data.SqlClient/tests/StressTests/System.Data.SqlClient.Stress.Tests/Configurations.props diff --git a/migrated/tests/StressTests/System.Data.SqlClient.Stress.Tests/FilteredDefaultTraceListener.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.SqlClient.Stress.Tests/FilteredDefaultTraceListener.cs similarity index 100% rename from migrated/tests/StressTests/System.Data.SqlClient.Stress.Tests/FilteredDefaultTraceListener.cs rename to src/System.Data.SqlClient/tests/StressTests/System.Data.SqlClient.Stress.Tests/FilteredDefaultTraceListener.cs diff --git a/migrated/tests/StressTests/System.Data.SqlClient.Stress.Tests/HostsFileManager.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.SqlClient.Stress.Tests/HostsFileManager.cs similarity index 100% rename from migrated/tests/StressTests/System.Data.SqlClient.Stress.Tests/HostsFileManager.cs rename to src/System.Data.SqlClient/tests/StressTests/System.Data.SqlClient.Stress.Tests/HostsFileManager.cs diff --git a/migrated/tests/StressTests/System.Data.SqlClient.Stress.Tests/MultiSubnetFailoverSetup.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.SqlClient.Stress.Tests/MultiSubnetFailoverSetup.cs similarity index 100% rename from migrated/tests/StressTests/System.Data.SqlClient.Stress.Tests/MultiSubnetFailoverSetup.cs rename to src/System.Data.SqlClient/tests/StressTests/System.Data.SqlClient.Stress.Tests/MultiSubnetFailoverSetup.cs diff --git a/migrated/tests/StressTests/System.Data.SqlClient.Stress.Tests/NetUtils.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.SqlClient.Stress.Tests/NetUtils.cs similarity index 100% rename from migrated/tests/StressTests/System.Data.SqlClient.Stress.Tests/NetUtils.cs rename to src/System.Data.SqlClient/tests/StressTests/System.Data.SqlClient.Stress.Tests/NetUtils.cs diff --git a/migrated/tests/StressTests/System.Data.SqlClient.Stress.Tests/SqlClientStressFactory.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.SqlClient.Stress.Tests/SqlClientStressFactory.cs similarity index 100% rename from migrated/tests/StressTests/System.Data.SqlClient.Stress.Tests/SqlClientStressFactory.cs rename to src/System.Data.SqlClient/tests/StressTests/System.Data.SqlClient.Stress.Tests/SqlClientStressFactory.cs diff --git a/migrated/tests/StressTests/System.Data.SqlClient.Stress.Tests/SqlClientTestGroup.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.SqlClient.Stress.Tests/SqlClientTestGroup.cs similarity index 100% rename from migrated/tests/StressTests/System.Data.SqlClient.Stress.Tests/SqlClientTestGroup.cs rename to src/System.Data.SqlClient/tests/StressTests/System.Data.SqlClient.Stress.Tests/SqlClientTestGroup.cs diff --git a/migrated/tests/StressTests/System.Data.SqlClient.Stress.Tests/System.Data.SqlClient.Stress.Tests.csproj b/src/System.Data.SqlClient/tests/StressTests/System.Data.SqlClient.Stress.Tests/System.Data.SqlClient.Stress.Tests.csproj similarity index 100% rename from migrated/tests/StressTests/System.Data.SqlClient.Stress.Tests/System.Data.SqlClient.Stress.Tests.csproj rename to src/System.Data.SqlClient/tests/StressTests/System.Data.SqlClient.Stress.Tests/System.Data.SqlClient.Stress.Tests.csproj diff --git a/migrated/tests/StressTests/System.Data.StressFramework/AsyncUtils.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/AsyncUtils.cs similarity index 100% rename from migrated/tests/StressTests/System.Data.StressFramework/AsyncUtils.cs rename to src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/AsyncUtils.cs diff --git a/migrated/tests/StressTests/System.Data.StressFramework/Configurations.props b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/Configurations.props similarity index 100% rename from migrated/tests/StressTests/System.Data.StressFramework/Configurations.props rename to src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/Configurations.props diff --git a/migrated/tests/StressTests/System.Data.StressFramework/DataSource.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/DataSource.cs similarity index 100% rename from migrated/tests/StressTests/System.Data.StressFramework/DataSource.cs rename to src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/DataSource.cs diff --git a/migrated/tests/StressTests/System.Data.StressFramework/DataStressConnection.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/DataStressConnection.cs similarity index 100% rename from migrated/tests/StressTests/System.Data.StressFramework/DataStressConnection.cs rename to src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/DataStressConnection.cs diff --git a/migrated/tests/StressTests/System.Data.StressFramework/DataStressErrors.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/DataStressErrors.cs similarity index 100% rename from migrated/tests/StressTests/System.Data.StressFramework/DataStressErrors.cs rename to src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/DataStressErrors.cs diff --git a/migrated/tests/StressTests/System.Data.StressFramework/DataStressFactory.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/DataStressFactory.cs similarity index 100% rename from migrated/tests/StressTests/System.Data.StressFramework/DataStressFactory.cs rename to src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/DataStressFactory.cs diff --git a/migrated/tests/StressTests/System.Data.StressFramework/DataStressReader.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/DataStressReader.cs similarity index 100% rename from migrated/tests/StressTests/System.Data.StressFramework/DataStressReader.cs rename to src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/DataStressReader.cs diff --git a/migrated/tests/StressTests/System.Data.StressFramework/DataStressSettings.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/DataStressSettings.cs similarity index 100% rename from migrated/tests/StressTests/System.Data.StressFramework/DataStressSettings.cs rename to src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/DataStressSettings.cs diff --git a/migrated/tests/StressTests/System.Data.StressFramework/DataTestGroup.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/DataTestGroup.cs similarity index 100% rename from migrated/tests/StressTests/System.Data.StressFramework/DataTestGroup.cs rename to src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/DataTestGroup.cs diff --git a/migrated/tests/StressTests/System.Data.StressFramework/Extensions.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/Extensions.cs similarity index 100% rename from migrated/tests/StressTests/System.Data.StressFramework/Extensions.cs rename to src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/Extensions.cs diff --git a/migrated/tests/StressTests/System.Data.StressFramework/StressConfigReader.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/StressConfigReader.cs similarity index 100% rename from migrated/tests/StressTests/System.Data.StressFramework/StressConfigReader.cs rename to src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/StressConfigReader.cs diff --git a/migrated/tests/StressTests/System.Data.StressFramework/StressTest.config b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/StressTest.config similarity index 100% rename from migrated/tests/StressTests/System.Data.StressFramework/StressTest.config rename to src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/StressTest.config diff --git a/migrated/tests/StressTests/System.Data.StressFramework/System.Data.StressFramework.csproj b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/System.Data.StressFramework.csproj similarity index 100% rename from migrated/tests/StressTests/System.Data.StressFramework/System.Data.StressFramework.csproj rename to src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/System.Data.StressFramework.csproj diff --git a/migrated/tests/StressTests/System.Data.StressFramework/TrackedRandom.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/TrackedRandom.cs similarity index 100% rename from migrated/tests/StressTests/System.Data.StressFramework/TrackedRandom.cs rename to src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/TrackedRandom.cs diff --git a/migrated/tests/StressTests/System.Data.StressRunner/Configurations.props b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/Configurations.props similarity index 100% rename from migrated/tests/StressTests/System.Data.StressRunner/Configurations.props rename to src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/Configurations.props diff --git a/migrated/tests/StressTests/System.Data.StressRunner/Constants.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/Constants.cs similarity index 100% rename from migrated/tests/StressTests/System.Data.StressRunner/Constants.cs rename to src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/Constants.cs diff --git a/migrated/tests/StressTests/System.Data.StressRunner/DeadlockDetection.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/DeadlockDetection.cs similarity index 100% rename from migrated/tests/StressTests/System.Data.StressRunner/DeadlockDetection.cs rename to src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/DeadlockDetection.cs diff --git a/migrated/tests/StressTests/System.Data.StressRunner/DeadlockDetectionTaskScheduler.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/DeadlockDetectionTaskScheduler.cs similarity index 100% rename from migrated/tests/StressTests/System.Data.StressRunner/DeadlockDetectionTaskScheduler.cs rename to src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/DeadlockDetectionTaskScheduler.cs diff --git a/migrated/tests/StressTests/System.Data.StressRunner/FakeConsole.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/FakeConsole.cs similarity index 100% rename from migrated/tests/StressTests/System.Data.StressRunner/FakeConsole.cs rename to src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/FakeConsole.cs diff --git a/migrated/tests/StressTests/System.Data.StressRunner/GlobalExceptionHandlerAttribute.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/GlobalExceptionHandlerAttribute.cs similarity index 100% rename from migrated/tests/StressTests/System.Data.StressRunner/GlobalExceptionHandlerAttribute.cs rename to src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/GlobalExceptionHandlerAttribute.cs diff --git a/migrated/tests/StressTests/System.Data.StressRunner/GlobalTestCleanupAttribute.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/GlobalTestCleanupAttribute.cs similarity index 100% rename from migrated/tests/StressTests/System.Data.StressRunner/GlobalTestCleanupAttribute.cs rename to src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/GlobalTestCleanupAttribute.cs diff --git a/migrated/tests/StressTests/System.Data.StressRunner/GlobalTestSetupAttribute.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/GlobalTestSetupAttribute.cs similarity index 100% rename from migrated/tests/StressTests/System.Data.StressRunner/GlobalTestSetupAttribute.cs rename to src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/GlobalTestSetupAttribute.cs diff --git a/migrated/tests/StressTests/System.Data.StressRunner/ITestAttributeFilter.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/ITestAttributeFilter.cs similarity index 100% rename from migrated/tests/StressTests/System.Data.StressRunner/ITestAttributeFilter.cs rename to src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/ITestAttributeFilter.cs diff --git a/migrated/tests/StressTests/System.Data.StressRunner/Logger.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/Logger.cs similarity index 100% rename from migrated/tests/StressTests/System.Data.StressRunner/Logger.cs rename to src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/Logger.cs diff --git a/migrated/tests/StressTests/System.Data.StressRunner/MemApi.Unix.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/MemApi.Unix.cs similarity index 100% rename from migrated/tests/StressTests/System.Data.StressRunner/MemApi.Unix.cs rename to src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/MemApi.Unix.cs diff --git a/migrated/tests/StressTests/System.Data.StressRunner/MemApi.Windows.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/MemApi.Windows.cs similarity index 100% rename from migrated/tests/StressTests/System.Data.StressRunner/MemApi.Windows.cs rename to src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/MemApi.Windows.cs diff --git a/migrated/tests/StressTests/System.Data.StressRunner/MonitorLoadUtils.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/MonitorLoadUtils.cs similarity index 100% rename from migrated/tests/StressTests/System.Data.StressRunner/MonitorLoadUtils.cs rename to src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/MonitorLoadUtils.cs diff --git a/migrated/tests/StressTests/System.Data.StressRunner/MultithreadedTest.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/MultithreadedTest.cs similarity index 100% rename from migrated/tests/StressTests/System.Data.StressRunner/MultithreadedTest.cs rename to src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/MultithreadedTest.cs diff --git a/migrated/tests/StressTests/System.Data.StressRunner/PerfCounters.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/PerfCounters.cs similarity index 100% rename from migrated/tests/StressTests/System.Data.StressRunner/PerfCounters.cs rename to src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/PerfCounters.cs diff --git a/migrated/tests/StressTests/System.Data.StressRunner/Program.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/Program.cs similarity index 100% rename from migrated/tests/StressTests/System.Data.StressRunner/Program.cs rename to src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/Program.cs diff --git a/migrated/tests/StressTests/System.Data.StressRunner/RecordedExceptions.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/RecordedExceptions.cs similarity index 100% rename from migrated/tests/StressTests/System.Data.StressRunner/RecordedExceptions.cs rename to src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/RecordedExceptions.cs diff --git a/migrated/tests/StressTests/System.Data.StressRunner/SqlScript.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/SqlScript.cs similarity index 100% rename from migrated/tests/StressTests/System.Data.StressRunner/SqlScript.cs rename to src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/SqlScript.cs diff --git a/migrated/tests/StressTests/System.Data.StressRunner/StressEngine.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/StressEngine.cs similarity index 100% rename from migrated/tests/StressTests/System.Data.StressRunner/StressEngine.cs rename to src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/StressEngine.cs diff --git a/migrated/tests/StressTests/System.Data.StressRunner/StressTest.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/StressTest.cs similarity index 100% rename from migrated/tests/StressTests/System.Data.StressRunner/StressTest.cs rename to src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/StressTest.cs diff --git a/migrated/tests/StressTests/System.Data.StressRunner/System.Data.StressRunner.csproj b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/System.Data.StressRunner.csproj similarity index 100% rename from migrated/tests/StressTests/System.Data.StressRunner/System.Data.StressRunner.csproj rename to src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/System.Data.StressRunner.csproj diff --git a/migrated/tests/StressTests/System.Data.StressRunner/Test.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/Test.cs similarity index 100% rename from migrated/tests/StressTests/System.Data.StressRunner/Test.cs rename to src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/Test.cs diff --git a/migrated/tests/StressTests/System.Data.StressRunner/TestAttribute.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/TestAttribute.cs similarity index 100% rename from migrated/tests/StressTests/System.Data.StressRunner/TestAttribute.cs rename to src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/TestAttribute.cs diff --git a/migrated/tests/StressTests/System.Data.StressRunner/TestBase.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/TestBase.cs similarity index 100% rename from migrated/tests/StressTests/System.Data.StressRunner/TestBase.cs rename to src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/TestBase.cs diff --git a/migrated/tests/StressTests/System.Data.StressRunner/TestCleanupAttribute.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/TestCleanupAttribute.cs similarity index 100% rename from migrated/tests/StressTests/System.Data.StressRunner/TestCleanupAttribute.cs rename to src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/TestCleanupAttribute.cs diff --git a/migrated/tests/StressTests/System.Data.StressRunner/TestFinder.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/TestFinder.cs similarity index 100% rename from migrated/tests/StressTests/System.Data.StressRunner/TestFinder.cs rename to src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/TestFinder.cs diff --git a/migrated/tests/StressTests/System.Data.StressRunner/TestMetrics.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/TestMetrics.cs similarity index 100% rename from migrated/tests/StressTests/System.Data.StressRunner/TestMetrics.cs rename to src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/TestMetrics.cs diff --git a/migrated/tests/StressTests/System.Data.StressRunner/TestSetupAttribute.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/TestSetupAttribute.cs similarity index 100% rename from migrated/tests/StressTests/System.Data.StressRunner/TestSetupAttribute.cs rename to src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/TestSetupAttribute.cs diff --git a/migrated/tests/StressTests/System.Data.StressRunner/TestVariationAttribute.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/TestVariationAttribute.cs similarity index 100% rename from migrated/tests/StressTests/System.Data.StressRunner/TestVariationAttribute.cs rename to src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/TestVariationAttribute.cs diff --git a/migrated/tests/StressTests/System.Data.StressRunner/ThreadPoolTest.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/ThreadPoolTest.cs similarity index 100% rename from migrated/tests/StressTests/System.Data.StressRunner/ThreadPoolTest.cs rename to src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/ThreadPoolTest.cs diff --git a/migrated/tests/StressTests/System.Data.StressRunner/VersionUtil.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/VersionUtil.cs similarity index 100% rename from migrated/tests/StressTests/System.Data.StressRunner/VersionUtil.cs rename to src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/VersionUtil.cs diff --git a/migrated/tests/Tools/TDS/TDS.EndPoint/Configurations.props b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/Configurations.props similarity index 100% rename from migrated/tests/Tools/TDS/TDS.EndPoint/Configurations.props rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/Configurations.props diff --git a/migrated/tests/Tools/TDS/TDS.EndPoint/FederatedAuthentication/FederatedAuthenticationTicketService.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/FederatedAuthentication/FederatedAuthenticationTicketService.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS.EndPoint/FederatedAuthentication/FederatedAuthenticationTicketService.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/FederatedAuthentication/FederatedAuthenticationTicketService.cs diff --git a/migrated/tests/Tools/TDS/TDS.EndPoint/FederatedAuthentication/IFederatedAuthenticationTicket.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/FederatedAuthentication/IFederatedAuthenticationTicket.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS.EndPoint/FederatedAuthentication/IFederatedAuthenticationTicket.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/FederatedAuthentication/IFederatedAuthenticationTicket.cs diff --git a/migrated/tests/Tools/TDS/TDS.EndPoint/FederatedAuthentication/Rps.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/FederatedAuthentication/Rps.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS.EndPoint/FederatedAuthentication/Rps.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/FederatedAuthentication/Rps.cs diff --git a/migrated/tests/Tools/TDS/TDS.EndPoint/FederatedAuthentication/RpsTicket.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/FederatedAuthentication/RpsTicket.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS.EndPoint/FederatedAuthentication/RpsTicket.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/FederatedAuthentication/RpsTicket.cs diff --git a/migrated/tests/Tools/TDS/TDS.EndPoint/ITDSClient.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/ITDSClient.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS.EndPoint/ITDSClient.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/ITDSClient.cs diff --git a/migrated/tests/Tools/TDS/TDS.EndPoint/ITDSClientContext.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/ITDSClientContext.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS.EndPoint/ITDSClientContext.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/ITDSClientContext.cs diff --git a/migrated/tests/Tools/TDS/TDS.EndPoint/ITDSServer.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/ITDSServer.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS.EndPoint/ITDSServer.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/ITDSServer.cs diff --git a/migrated/tests/Tools/TDS/TDS.EndPoint/ITDSServerSession.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/ITDSServerSession.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS.EndPoint/ITDSServerSession.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/ITDSServerSession.cs diff --git a/migrated/tests/Tools/TDS/TDS.EndPoint/PlaceholderStream.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/PlaceholderStream.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS.EndPoint/PlaceholderStream.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/PlaceholderStream.cs diff --git a/migrated/tests/Tools/TDS/TDS.EndPoint/SSPI/SSPIContext.Unix.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/SSPI/SSPIContext.Unix.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS.EndPoint/SSPI/SSPIContext.Unix.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/SSPI/SSPIContext.Unix.cs diff --git a/migrated/tests/Tools/TDS/TDS.EndPoint/SSPI/SSPIContext.Windows.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/SSPI/SSPIContext.Windows.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS.EndPoint/SSPI/SSPIContext.Windows.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/SSPI/SSPIContext.Windows.cs diff --git a/migrated/tests/Tools/TDS/TDS.EndPoint/SSPI/SSPIResponse.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/SSPI/SSPIResponse.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS.EndPoint/SSPI/SSPIResponse.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/SSPI/SSPIResponse.cs diff --git a/migrated/tests/Tools/TDS/TDS.EndPoint/SSPI/SecBuffer.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/SSPI/SecBuffer.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS.EndPoint/SSPI/SecBuffer.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/SSPI/SecBuffer.cs diff --git a/migrated/tests/Tools/TDS/TDS.EndPoint/SSPI/SecBufferDesc.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/SSPI/SecBufferDesc.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS.EndPoint/SSPI/SecBufferDesc.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/SSPI/SecBufferDesc.cs diff --git a/migrated/tests/Tools/TDS/TDS.EndPoint/SSPI/SecBufferDescType.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/SSPI/SecBufferDescType.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS.EndPoint/SSPI/SecBufferDescType.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/SSPI/SecBufferDescType.cs diff --git a/migrated/tests/Tools/TDS/TDS.EndPoint/SSPI/SecBufferType.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/SSPI/SecBufferType.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS.EndPoint/SSPI/SecBufferType.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/SSPI/SecBufferType.cs diff --git a/migrated/tests/Tools/TDS/TDS.EndPoint/SSPI/SecConstants.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/SSPI/SecConstants.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS.EndPoint/SSPI/SecConstants.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/SSPI/SecConstants.cs diff --git a/migrated/tests/Tools/TDS/TDS.EndPoint/SSPI/SecContextRequirements.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/SSPI/SecContextRequirements.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS.EndPoint/SSPI/SecContextRequirements.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/SSPI/SecContextRequirements.cs diff --git a/migrated/tests/Tools/TDS/TDS.EndPoint/SSPI/SecDataRepresentation.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/SSPI/SecDataRepresentation.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS.EndPoint/SSPI/SecDataRepresentation.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/SSPI/SecDataRepresentation.cs diff --git a/migrated/tests/Tools/TDS/TDS.EndPoint/SSPI/SecPgkCredentials.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/SSPI/SecPgkCredentials.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS.EndPoint/SSPI/SecPgkCredentials.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/SSPI/SecPgkCredentials.cs diff --git a/migrated/tests/Tools/TDS/TDS.EndPoint/SSPI/SecPkgInfo.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/SSPI/SecPkgInfo.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS.EndPoint/SSPI/SecPkgInfo.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/SSPI/SecPkgInfo.cs diff --git a/migrated/tests/Tools/TDS/TDS.EndPoint/SSPI/SecResult.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/SSPI/SecResult.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS.EndPoint/SSPI/SecResult.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/SSPI/SecResult.cs diff --git a/migrated/tests/Tools/TDS/TDS.EndPoint/SSPI/SecurityHandle.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/SSPI/SecurityHandle.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS.EndPoint/SSPI/SecurityHandle.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/SSPI/SecurityHandle.cs diff --git a/migrated/tests/Tools/TDS/TDS.EndPoint/SSPI/SecurityInteger.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/SSPI/SecurityInteger.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS.EndPoint/SSPI/SecurityInteger.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/SSPI/SecurityInteger.cs diff --git a/migrated/tests/Tools/TDS/TDS.EndPoint/SSPI/SecurityWrapper.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/SSPI/SecurityWrapper.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS.EndPoint/SSPI/SecurityWrapper.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/SSPI/SecurityWrapper.cs diff --git a/migrated/tests/Tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj similarity index 91% rename from migrated/tests/Tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj index 33dd9c507..d84d1b7d5 100644 --- a/migrated/tests/Tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj +++ b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj @@ -4,7 +4,8 @@ Microsoft.SqlServer.TDS.EndPoint Microsoft.SqlServer.TDS.EndPoint false - netstandard-Unix-Debug;netstandard-Unix-Release;netstandard-Windows_NT-Debug;netstandard-Windows_NT-Release + $(NetFrameworkMinimum) + false @@ -39,7 +40,7 @@ - + Common\Interop\Windows\Interop.Libraries.cs @@ -53,4 +54,4 @@ TDS - \ No newline at end of file + diff --git a/migrated/tests/Tools/TDS/TDS.EndPoint/TDSClientEndPoint.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/TDSClientEndPoint.cs similarity index 99% rename from migrated/tests/Tools/TDS/TDS.EndPoint/TDSClientEndPoint.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/TDSClientEndPoint.cs index 9ff7c2573..a22d849ce 100644 --- a/migrated/tests/Tools/TDS/TDS.EndPoint/TDSClientEndPoint.cs +++ b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/TDSClientEndPoint.cs @@ -105,7 +105,7 @@ public void Connect() if (e.ErrorCode != 10057) { // We don't recognize it - throw e; + throw; } // We are going to retry with IPv6 now because of won't fix bug diff --git a/migrated/tests/Tools/TDS/TDS.EndPoint/TDSClientParser.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/TDSClientParser.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS.EndPoint/TDSClientParser.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/TDSClientParser.cs diff --git a/migrated/tests/Tools/TDS/TDS.EndPoint/TDSEndPointInfo.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/TDSEndPointInfo.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS.EndPoint/TDSEndPointInfo.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/TDSEndPointInfo.cs diff --git a/migrated/tests/Tools/TDS/TDS.EndPoint/TDSEndPointTransportType.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/TDSEndPointTransportType.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS.EndPoint/TDSEndPointTransportType.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/TDSEndPointTransportType.cs diff --git a/migrated/tests/Tools/TDS/TDS.EndPoint/TDSParser.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/TDSParser.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS.EndPoint/TDSParser.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/TDSParser.cs diff --git a/migrated/tests/Tools/TDS/TDS.EndPoint/TDSServerEndPoint.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/TDSServerEndPoint.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS.EndPoint/TDSServerEndPoint.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/TDSServerEndPoint.cs diff --git a/migrated/tests/Tools/TDS/TDS.EndPoint/TDSServerEndPointConnection.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/TDSServerEndPointConnection.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS.EndPoint/TDSServerEndPointConnection.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/TDSServerEndPointConnection.cs diff --git a/migrated/tests/Tools/TDS/TDS.EndPoint/TDSServerParser.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/TDSServerParser.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS.EndPoint/TDSServerParser.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/TDSServerParser.cs diff --git a/migrated/tests/Tools/TDS/TDS.Servers/ApplicationIntentFilterType.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/ApplicationIntentFilterType.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS.Servers/ApplicationIntentFilterType.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/ApplicationIntentFilterType.cs diff --git a/migrated/tests/Tools/TDS/TDS.Servers/AuthenticatingTDSServer.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/AuthenticatingTDSServer.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS.Servers/AuthenticatingTDSServer.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/AuthenticatingTDSServer.cs diff --git a/migrated/tests/Tools/TDS/TDS.Servers/AuthenticatingTDSServerArguments.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/AuthenticatingTDSServerArguments.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS.Servers/AuthenticatingTDSServerArguments.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/AuthenticatingTDSServerArguments.cs diff --git a/migrated/tests/Tools/TDS/TDS.Servers/Configurations.props b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/Configurations.props similarity index 100% rename from migrated/tests/Tools/TDS/TDS.Servers/Configurations.props rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/Configurations.props diff --git a/migrated/tests/Tools/TDS/TDS.Servers/DateFormatString.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/DateFormatString.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS.Servers/DateFormatString.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/DateFormatString.cs diff --git a/migrated/tests/Tools/TDS/TDS.Servers/FederatedAuthenticationNegativeTDSScenarioType.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/FederatedAuthenticationNegativeTDSScenarioType.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS.Servers/FederatedAuthenticationNegativeTDSScenarioType.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/FederatedAuthenticationNegativeTDSScenarioType.cs diff --git a/migrated/tests/Tools/TDS/TDS.Servers/FederatedAuthenticationNegativeTDSServer.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/FederatedAuthenticationNegativeTDSServer.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS.Servers/FederatedAuthenticationNegativeTDSServer.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/FederatedAuthenticationNegativeTDSServer.cs diff --git a/migrated/tests/Tools/TDS/TDS.Servers/FederatedAuthenticationNegativeTDSServerArguments.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/FederatedAuthenticationNegativeTDSServerArguments.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS.Servers/FederatedAuthenticationNegativeTDSServerArguments.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/FederatedAuthenticationNegativeTDSServerArguments.cs diff --git a/migrated/tests/Tools/TDS/TDS.Servers/GenericTDSServer.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/GenericTDSServer.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS.Servers/GenericTDSServer.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/GenericTDSServer.cs diff --git a/migrated/tests/Tools/TDS/TDS.Servers/GenericTDSServerSession.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/GenericTDSServerSession.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS.Servers/GenericTDSServerSession.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/GenericTDSServerSession.cs diff --git a/migrated/tests/Tools/TDS/TDS.Servers/QueryEngine.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/QueryEngine.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS.Servers/QueryEngine.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/QueryEngine.cs diff --git a/migrated/tests/Tools/TDS/TDS.Servers/RoutingTDSServer.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/RoutingTDSServer.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS.Servers/RoutingTDSServer.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/RoutingTDSServer.cs diff --git a/migrated/tests/Tools/TDS/TDS.Servers/RoutingTDSServerArguments.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/RoutingTDSServerArguments.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS.Servers/RoutingTDSServerArguments.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/RoutingTDSServerArguments.cs diff --git a/migrated/tests/Tools/TDS/TDS.Servers/ServerNameFilterType.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/ServerNameFilterType.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS.Servers/ServerNameFilterType.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/ServerNameFilterType.cs diff --git a/migrated/tests/Tools/TDS/TDS.Servers/TDS.Servers.csproj b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/TDS.Servers.csproj similarity index 90% rename from migrated/tests/Tools/TDS/TDS.Servers/TDS.Servers.csproj rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/TDS.Servers.csproj index 12cb497b2..c50b98f99 100644 --- a/migrated/tests/Tools/TDS/TDS.Servers/TDS.Servers.csproj +++ b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/TDS.Servers.csproj @@ -4,7 +4,8 @@ Microsoft.SqlServer.TDS.Servers Microsoft.SqlServer.TDS.Servers false - netstandard-Unix-Debug;netstandard-Unix-Release;netstandard-Windows_NT-Debug;netstandard-Windows_NT-Release + $(NetFrameworkMinimum) + false @@ -33,4 +34,4 @@ TDS - \ No newline at end of file + diff --git a/migrated/tests/Tools/TDS/TDS.Servers/TDSServerArguments.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/TDSServerArguments.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS.Servers/TDSServerArguments.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/TDSServerArguments.cs diff --git a/migrated/tests/Tools/TDS/TDS.Servers/TdsServerCertificate.pfx b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/TdsServerCertificate.pfx similarity index 100% rename from migrated/tests/Tools/TDS/TDS.Servers/TdsServerCertificate.pfx rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/TdsServerCertificate.pfx diff --git a/migrated/tests/Tools/TDS/TDS/AllHeaders/TDSAllHeaders.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/AllHeaders/TDSAllHeaders.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/AllHeaders/TDSAllHeaders.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/AllHeaders/TDSAllHeaders.cs diff --git a/migrated/tests/Tools/TDS/TDS/AllHeaders/TDSHeaderType.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/AllHeaders/TDSHeaderType.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/AllHeaders/TDSHeaderType.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/AllHeaders/TDSHeaderType.cs diff --git a/migrated/tests/Tools/TDS/TDS/AllHeaders/TDSQueryNotificationsHeader.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/AllHeaders/TDSQueryNotificationsHeader.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/AllHeaders/TDSQueryNotificationsHeader.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/AllHeaders/TDSQueryNotificationsHeader.cs diff --git a/migrated/tests/Tools/TDS/TDS/AllHeaders/TDSTraceHeader.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/AllHeaders/TDSTraceHeader.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/AllHeaders/TDSTraceHeader.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/AllHeaders/TDSTraceHeader.cs diff --git a/migrated/tests/Tools/TDS/TDS/AllHeaders/TDSTransactionDescriptorHeader.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/AllHeaders/TDSTransactionDescriptorHeader.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/AllHeaders/TDSTransactionDescriptorHeader.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/AllHeaders/TDSTransactionDescriptorHeader.cs diff --git a/migrated/tests/Tools/TDS/TDS/AutoTDSStream.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/AutoTDSStream.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/AutoTDSStream.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/AutoTDSStream.cs diff --git a/migrated/tests/Tools/TDS/TDS/ColInfo/TDSColInfoToken.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/ColInfo/TDSColInfoToken.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/ColInfo/TDSColInfoToken.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/ColInfo/TDSColInfoToken.cs diff --git a/migrated/tests/Tools/TDS/TDS/ColInfo/TDSColumnProperty.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/ColInfo/TDSColumnProperty.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/ColInfo/TDSColumnProperty.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/ColInfo/TDSColumnProperty.cs diff --git a/migrated/tests/Tools/TDS/TDS/ColInfo/TDSColumnStatus.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/ColInfo/TDSColumnStatus.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/ColInfo/TDSColumnStatus.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/ColInfo/TDSColumnStatus.cs diff --git a/migrated/tests/Tools/TDS/TDS/ColMetadata/TDSColMetadataToken.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/ColMetadata/TDSColMetadataToken.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/ColMetadata/TDSColMetadataToken.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/ColMetadata/TDSColMetadataToken.cs diff --git a/migrated/tests/Tools/TDS/TDS/ColMetadata/TDSColumnData.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/ColMetadata/TDSColumnData.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/ColMetadata/TDSColumnData.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/ColMetadata/TDSColumnData.cs diff --git a/migrated/tests/Tools/TDS/TDS/ColMetadata/TDSColumnDataCollation.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/ColMetadata/TDSColumnDataCollation.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/ColMetadata/TDSColumnDataCollation.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/ColMetadata/TDSColumnDataCollation.cs diff --git a/migrated/tests/Tools/TDS/TDS/ColMetadata/TDSColumnDataFlags.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/ColMetadata/TDSColumnDataFlags.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/ColMetadata/TDSColumnDataFlags.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/ColMetadata/TDSColumnDataFlags.cs diff --git a/migrated/tests/Tools/TDS/TDS/ColMetadata/TDSColumnDataUpdatableFlag.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/ColMetadata/TDSColumnDataUpdatableFlag.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/ColMetadata/TDSColumnDataUpdatableFlag.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/ColMetadata/TDSColumnDataUpdatableFlag.cs diff --git a/migrated/tests/Tools/TDS/TDS/ColMetadata/TDSDecimalColumnSpecific.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/ColMetadata/TDSDecimalColumnSpecific.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/ColMetadata/TDSDecimalColumnSpecific.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/ColMetadata/TDSDecimalColumnSpecific.cs diff --git a/migrated/tests/Tools/TDS/TDS/ColMetadata/TDSShilohVarCharColumnSpecific.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/ColMetadata/TDSShilohVarCharColumnSpecific.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/ColMetadata/TDSShilohVarCharColumnSpecific.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/ColMetadata/TDSShilohVarCharColumnSpecific.cs diff --git a/migrated/tests/Tools/TDS/TDS/Configurations.props b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/Configurations.props similarity index 100% rename from migrated/tests/Tools/TDS/TDS/Configurations.props rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/Configurations.props diff --git a/migrated/tests/Tools/TDS/TDS/DateFormatType.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/DateFormatType.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/DateFormatType.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/DateFormatType.cs diff --git a/migrated/tests/Tools/TDS/TDS/Done/TDSDoneInProcToken.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/Done/TDSDoneInProcToken.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/Done/TDSDoneInProcToken.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/Done/TDSDoneInProcToken.cs diff --git a/migrated/tests/Tools/TDS/TDS/Done/TDSDoneProcedureToken.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/Done/TDSDoneProcedureToken.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/Done/TDSDoneProcedureToken.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/Done/TDSDoneProcedureToken.cs diff --git a/migrated/tests/Tools/TDS/TDS/Done/TDSDoneToken.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/Done/TDSDoneToken.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/Done/TDSDoneToken.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/Done/TDSDoneToken.cs diff --git a/migrated/tests/Tools/TDS/TDS/Done/TDSDoneTokenCommandType.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/Done/TDSDoneTokenCommandType.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/Done/TDSDoneTokenCommandType.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/Done/TDSDoneTokenCommandType.cs diff --git a/migrated/tests/Tools/TDS/TDS/Done/TDSDoneTokenStatusType.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/Done/TDSDoneTokenStatusType.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/Done/TDSDoneTokenStatusType.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/Done/TDSDoneTokenStatusType.cs diff --git a/migrated/tests/Tools/TDS/TDS/EnvChange/TDSEnvChangeToken.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/EnvChange/TDSEnvChangeToken.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/EnvChange/TDSEnvChangeToken.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/EnvChange/TDSEnvChangeToken.cs diff --git a/migrated/tests/Tools/TDS/TDS/EnvChange/TDSEnvChangeTokenType.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/EnvChange/TDSEnvChangeTokenType.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/EnvChange/TDSEnvChangeTokenType.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/EnvChange/TDSEnvChangeTokenType.cs diff --git a/migrated/tests/Tools/TDS/TDS/EnvChange/TDSRoutingEnvChangeTokenValue.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/EnvChange/TDSRoutingEnvChangeTokenValue.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/EnvChange/TDSRoutingEnvChangeTokenValue.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/EnvChange/TDSRoutingEnvChangeTokenValue.cs diff --git a/migrated/tests/Tools/TDS/TDS/EnvChange/TDSRoutingEnvChangeTokenValueType.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/EnvChange/TDSRoutingEnvChangeTokenValueType.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/EnvChange/TDSRoutingEnvChangeTokenValueType.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/EnvChange/TDSRoutingEnvChangeTokenValueType.cs diff --git a/migrated/tests/Tools/TDS/TDS/Error/TDSErrorToken.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/Error/TDSErrorToken.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/Error/TDSErrorToken.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/Error/TDSErrorToken.cs diff --git a/migrated/tests/Tools/TDS/TDS/FeatureExtAck/TDSFeatureExtAckFederatedAuthenticationOption.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/FeatureExtAck/TDSFeatureExtAckFederatedAuthenticationOption.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/FeatureExtAck/TDSFeatureExtAckFederatedAuthenticationOption.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/FeatureExtAck/TDSFeatureExtAckFederatedAuthenticationOption.cs diff --git a/migrated/tests/Tools/TDS/TDS/FeatureExtAck/TDSFeatureExtAckGenericOption.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/FeatureExtAck/TDSFeatureExtAckGenericOption.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/FeatureExtAck/TDSFeatureExtAckGenericOption.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/FeatureExtAck/TDSFeatureExtAckGenericOption.cs diff --git a/migrated/tests/Tools/TDS/TDS/FeatureExtAck/TDSFeatureExtAckOption.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/FeatureExtAck/TDSFeatureExtAckOption.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/FeatureExtAck/TDSFeatureExtAckOption.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/FeatureExtAck/TDSFeatureExtAckOption.cs diff --git a/migrated/tests/Tools/TDS/TDS/FeatureExtAck/TDSFeatureExtAckSessionStateOption.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/FeatureExtAck/TDSFeatureExtAckSessionStateOption.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/FeatureExtAck/TDSFeatureExtAckSessionStateOption.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/FeatureExtAck/TDSFeatureExtAckSessionStateOption.cs diff --git a/migrated/tests/Tools/TDS/TDS/FeatureExtAck/TDSFeatureExtAckToken.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/FeatureExtAck/TDSFeatureExtAckToken.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/FeatureExtAck/TDSFeatureExtAckToken.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/FeatureExtAck/TDSFeatureExtAckToken.cs diff --git a/migrated/tests/Tools/TDS/TDS/FedAuthInfo/TDSFedAuthInfoId.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/FedAuthInfo/TDSFedAuthInfoId.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/FedAuthInfo/TDSFedAuthInfoId.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/FedAuthInfo/TDSFedAuthInfoId.cs diff --git a/migrated/tests/Tools/TDS/TDS/FedAuthInfo/TDSFedAuthInfoOption.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/FedAuthInfo/TDSFedAuthInfoOption.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/FedAuthInfo/TDSFedAuthInfoOption.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/FedAuthInfo/TDSFedAuthInfoOption.cs diff --git a/migrated/tests/Tools/TDS/TDS/FedAuthInfo/TDSFedAuthInfoOptionSPN.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/FedAuthInfo/TDSFedAuthInfoOptionSPN.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/FedAuthInfo/TDSFedAuthInfoOptionSPN.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/FedAuthInfo/TDSFedAuthInfoOptionSPN.cs diff --git a/migrated/tests/Tools/TDS/TDS/FedAuthInfo/TDSFedAuthInfoOptionSTSURL.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/FedAuthInfo/TDSFedAuthInfoOptionSTSURL.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/FedAuthInfo/TDSFedAuthInfoOptionSTSURL.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/FedAuthInfo/TDSFedAuthInfoOptionSTSURL.cs diff --git a/migrated/tests/Tools/TDS/TDS/FedAuthInfo/TDSFedAuthInfoToken.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/FedAuthInfo/TDSFedAuthInfoToken.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/FedAuthInfo/TDSFedAuthInfoToken.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/FedAuthInfo/TDSFedAuthInfoToken.cs diff --git a/migrated/tests/Tools/TDS/TDS/FedAuthMessage/TDSFedAuthMessageToken.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/FedAuthMessage/TDSFedAuthMessageToken.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/FedAuthMessage/TDSFedAuthMessageToken.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/FedAuthMessage/TDSFedAuthMessageToken.cs diff --git a/migrated/tests/Tools/TDS/TDS/IDeflatable.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/IDeflatable.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/IDeflatable.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/IDeflatable.cs diff --git a/migrated/tests/Tools/TDS/TDS/IInflatable.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/IInflatable.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/IInflatable.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/IInflatable.cs diff --git a/migrated/tests/Tools/TDS/TDS/Info/TDSInfoToken.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/Info/TDSInfoToken.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/Info/TDSInfoToken.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/Info/TDSInfoToken.cs diff --git a/migrated/tests/Tools/TDS/TDS/LanguageString.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/LanguageString.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/LanguageString.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/LanguageString.cs diff --git a/migrated/tests/Tools/TDS/TDS/LanguageType.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/LanguageType.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/LanguageType.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/LanguageType.cs diff --git a/migrated/tests/Tools/TDS/TDS/Login7/TDSLogin7FeatureOptionToken.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/Login7/TDSLogin7FeatureOptionToken.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/Login7/TDSLogin7FeatureOptionToken.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/Login7/TDSLogin7FeatureOptionToken.cs diff --git a/migrated/tests/Tools/TDS/TDS/Login7/TDSLogin7FeatureOptionsToken.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/Login7/TDSLogin7FeatureOptionsToken.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/Login7/TDSLogin7FeatureOptionsToken.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/Login7/TDSLogin7FeatureOptionsToken.cs diff --git a/migrated/tests/Tools/TDS/TDS/Login7/TDSLogin7FedAuthOptionToken.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/Login7/TDSLogin7FedAuthOptionToken.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/Login7/TDSLogin7FedAuthOptionToken.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/Login7/TDSLogin7FedAuthOptionToken.cs diff --git a/migrated/tests/Tools/TDS/TDS/Login7/TDSLogin7GenericOptionToken.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/Login7/TDSLogin7GenericOptionToken.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/Login7/TDSLogin7GenericOptionToken.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/Login7/TDSLogin7GenericOptionToken.cs diff --git a/migrated/tests/Tools/TDS/TDS/Login7/TDSLogin7SessionRecoveryOptionToken.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/Login7/TDSLogin7SessionRecoveryOptionToken.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/Login7/TDSLogin7SessionRecoveryOptionToken.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/Login7/TDSLogin7SessionRecoveryOptionToken.cs diff --git a/migrated/tests/Tools/TDS/TDS/Login7/TDSLogin7Token.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/Login7/TDSLogin7Token.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/Login7/TDSLogin7Token.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/Login7/TDSLogin7Token.cs diff --git a/migrated/tests/Tools/TDS/TDS/Login7/TDSLogin7TokenOffsetProperty.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/Login7/TDSLogin7TokenOffsetProperty.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/Login7/TDSLogin7TokenOffsetProperty.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/Login7/TDSLogin7TokenOffsetProperty.cs diff --git a/migrated/tests/Tools/TDS/TDS/Login7/TDSLogin7TokenOptionalFlags1.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/Login7/TDSLogin7TokenOptionalFlags1.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/Login7/TDSLogin7TokenOptionalFlags1.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/Login7/TDSLogin7TokenOptionalFlags1.cs diff --git a/migrated/tests/Tools/TDS/TDS/Login7/TDSLogin7TokenOptionalFlags2.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/Login7/TDSLogin7TokenOptionalFlags2.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/Login7/TDSLogin7TokenOptionalFlags2.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/Login7/TDSLogin7TokenOptionalFlags2.cs diff --git a/migrated/tests/Tools/TDS/TDS/Login7/TDSLogin7TokenOptionalFlags3.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/Login7/TDSLogin7TokenOptionalFlags3.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/Login7/TDSLogin7TokenOptionalFlags3.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/Login7/TDSLogin7TokenOptionalFlags3.cs diff --git a/migrated/tests/Tools/TDS/TDS/Login7/TDSLogin7TokenTypeFlags.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/Login7/TDSLogin7TokenTypeFlags.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/Login7/TDSLogin7TokenTypeFlags.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/Login7/TDSLogin7TokenTypeFlags.cs diff --git a/migrated/tests/Tools/TDS/TDS/LoginAck/TDSLoginAckToken.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/LoginAck/TDSLoginAckToken.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/LoginAck/TDSLoginAckToken.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/LoginAck/TDSLoginAckToken.cs diff --git a/migrated/tests/Tools/TDS/TDS/Order/TDSOrderToken.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/Order/TDSOrderToken.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/Order/TDSOrderToken.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/Order/TDSOrderToken.cs diff --git a/migrated/tests/Tools/TDS/TDS/PreLogin/TDSPreLoginAuthenticationType.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/PreLogin/TDSPreLoginAuthenticationType.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/PreLogin/TDSPreLoginAuthenticationType.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/PreLogin/TDSPreLoginAuthenticationType.cs diff --git a/migrated/tests/Tools/TDS/TDS/PreLogin/TDSPreLoginToken.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/PreLogin/TDSPreLoginToken.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/PreLogin/TDSPreLoginToken.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/PreLogin/TDSPreLoginToken.cs diff --git a/migrated/tests/Tools/TDS/TDS/PreLogin/TDSPreLoginTokenEncryptionType.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/PreLogin/TDSPreLoginTokenEncryptionType.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/PreLogin/TDSPreLoginTokenEncryptionType.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/PreLogin/TDSPreLoginTokenEncryptionType.cs diff --git a/migrated/tests/Tools/TDS/TDS/PreLogin/TDSPreLoginTokenOption.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/PreLogin/TDSPreLoginTokenOption.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/PreLogin/TDSPreLoginTokenOption.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/PreLogin/TDSPreLoginTokenOption.cs diff --git a/migrated/tests/Tools/TDS/TDS/PreLogin/TDSPreLoginTokenOptionType.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/PreLogin/TDSPreLoginTokenOptionType.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/PreLogin/TDSPreLoginTokenOptionType.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/PreLogin/TDSPreLoginTokenOptionType.cs diff --git a/migrated/tests/Tools/TDS/TDS/ReturnStatus/TDSReturnStatusToken.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/ReturnStatus/TDSReturnStatusToken.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/ReturnStatus/TDSReturnStatusToken.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/ReturnStatus/TDSReturnStatusToken.cs diff --git a/migrated/tests/Tools/TDS/TDS/Row/TDSNBCRowToken.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/Row/TDSNBCRowToken.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/Row/TDSNBCRowToken.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/Row/TDSNBCRowToken.cs diff --git a/migrated/tests/Tools/TDS/TDS/Row/TDSRowToken.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/Row/TDSRowToken.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/Row/TDSRowToken.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/Row/TDSRowToken.cs diff --git a/migrated/tests/Tools/TDS/TDS/Row/TDSRowTokenBase.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/Row/TDSRowTokenBase.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/Row/TDSRowTokenBase.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/Row/TDSRowTokenBase.cs diff --git a/migrated/tests/Tools/TDS/TDS/SQLBatch/TDSSQLBatchToken.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/SQLBatch/TDSSQLBatchToken.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/SQLBatch/TDSSQLBatchToken.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/SQLBatch/TDSSQLBatchToken.cs diff --git a/migrated/tests/Tools/TDS/TDS/SSPI/TDSSSPIClientToken.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/SSPI/TDSSSPIClientToken.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/SSPI/TDSSSPIClientToken.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/SSPI/TDSSSPIClientToken.cs diff --git a/migrated/tests/Tools/TDS/TDS/SSPI/TDSSSPIToken.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/SSPI/TDSSSPIToken.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/SSPI/TDSSSPIToken.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/SSPI/TDSSSPIToken.cs diff --git a/migrated/tests/Tools/TDS/TDS/SessionState/TDSSessionRecoveryData.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/SessionState/TDSSessionRecoveryData.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/SessionState/TDSSessionRecoveryData.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/SessionState/TDSSessionRecoveryData.cs diff --git a/migrated/tests/Tools/TDS/TDS/SessionState/TDSSessionStateContextInfoOption.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/SessionState/TDSSessionStateContextInfoOption.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/SessionState/TDSSessionStateContextInfoOption.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/SessionState/TDSSessionStateContextInfoOption.cs diff --git a/migrated/tests/Tools/TDS/TDS/SessionState/TDSSessionStateDateFirstDateFormatOption.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/SessionState/TDSSessionStateDateFirstDateFormatOption.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/SessionState/TDSSessionStateDateFirstDateFormatOption.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/SessionState/TDSSessionStateDateFirstDateFormatOption.cs diff --git a/migrated/tests/Tools/TDS/TDS/SessionState/TDSSessionStateDeadlockPriorityOption.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/SessionState/TDSSessionStateDeadlockPriorityOption.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/SessionState/TDSSessionStateDeadlockPriorityOption.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/SessionState/TDSSessionStateDeadlockPriorityOption.cs diff --git a/migrated/tests/Tools/TDS/TDS/SessionState/TDSSessionStateGenericOption.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/SessionState/TDSSessionStateGenericOption.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/SessionState/TDSSessionStateGenericOption.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/SessionState/TDSSessionStateGenericOption.cs diff --git a/migrated/tests/Tools/TDS/TDS/SessionState/TDSSessionStateISOFipsOption.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/SessionState/TDSSessionStateISOFipsOption.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/SessionState/TDSSessionStateISOFipsOption.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/SessionState/TDSSessionStateISOFipsOption.cs diff --git a/migrated/tests/Tools/TDS/TDS/SessionState/TDSSessionStateLockTimeoutOption.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/SessionState/TDSSessionStateLockTimeoutOption.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/SessionState/TDSSessionStateLockTimeoutOption.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/SessionState/TDSSessionStateLockTimeoutOption.cs diff --git a/migrated/tests/Tools/TDS/TDS/SessionState/TDSSessionStateOption.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/SessionState/TDSSessionStateOption.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/SessionState/TDSSessionStateOption.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/SessionState/TDSSessionStateOption.cs diff --git a/migrated/tests/Tools/TDS/TDS/SessionState/TDSSessionStateTextSizeOption.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/SessionState/TDSSessionStateTextSizeOption.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/SessionState/TDSSessionStateTextSizeOption.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/SessionState/TDSSessionStateTextSizeOption.cs diff --git a/migrated/tests/Tools/TDS/TDS/SessionState/TDSSessionStateToken.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/SessionState/TDSSessionStateToken.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/SessionState/TDSSessionStateToken.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/SessionState/TDSSessionStateToken.cs diff --git a/migrated/tests/Tools/TDS/TDS/SessionState/TDSSessionStateUserOptionsOption.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/SessionState/TDSSessionStateUserOptionsOption.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/SessionState/TDSSessionStateUserOptionsOption.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/SessionState/TDSSessionStateUserOptionsOption.cs diff --git a/src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDS.csproj b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDS.csproj new file mode 100644 index 000000000..e23575bbc --- /dev/null +++ b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDS.csproj @@ -0,0 +1,9 @@ + + + {8DC9D1A0-351B-47BC-A90F-B9DA542550E9} + Microsoft.SqlServer.TDS + Microsoft.SqlServer.TDS + false + $(NetFrameworkMinimum) + + diff --git a/migrated/tests/Tools/TDS/TDS/TDSClientState.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDSClientState.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/TDSClientState.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDSClientState.cs diff --git a/migrated/tests/Tools/TDS/TDS/TDSDataType.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDSDataType.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/TDSDataType.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDSDataType.cs diff --git a/migrated/tests/Tools/TDS/TDS/TDSEncryptionType.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDSEncryptionType.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/TDSEncryptionType.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDSEncryptionType.cs diff --git a/migrated/tests/Tools/TDS/TDS/TDSFeatureID.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDSFeatureID.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/TDSFeatureID.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDSFeatureID.cs diff --git a/migrated/tests/Tools/TDS/TDS/TDSMessage.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDSMessage.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/TDSMessage.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDSMessage.cs diff --git a/migrated/tests/Tools/TDS/TDS/TDSMessageCollection.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDSMessageCollection.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/TDSMessageCollection.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDSMessageCollection.cs diff --git a/migrated/tests/Tools/TDS/TDS/TDSMessageType.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDSMessageType.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/TDSMessageType.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDSMessageType.cs diff --git a/migrated/tests/Tools/TDS/TDS/TDSPacketHeader.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDSPacketHeader.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/TDSPacketHeader.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDSPacketHeader.cs diff --git a/migrated/tests/Tools/TDS/TDS/TDSPacketStatus.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDSPacketStatus.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/TDSPacketStatus.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDSPacketStatus.cs diff --git a/migrated/tests/Tools/TDS/TDS/TDSPacketToken.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDSPacketToken.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/TDSPacketToken.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDSPacketToken.cs diff --git a/migrated/tests/Tools/TDS/TDS/TDSStream.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDSStream.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/TDSStream.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDSStream.cs diff --git a/migrated/tests/Tools/TDS/TDS/TDSTokenFactory.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDSTokenFactory.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/TDSTokenFactory.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDSTokenFactory.cs diff --git a/migrated/tests/Tools/TDS/TDS/TDSTokenType.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDSTokenType.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/TDSTokenType.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDSTokenType.cs diff --git a/migrated/tests/Tools/TDS/TDS/TDSUtilities.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDSUtilities.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/TDSUtilities.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDSUtilities.cs diff --git a/migrated/tests/Tools/TDS/TDS/TDSVersion.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDSVersion.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/TDSVersion.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDSVersion.cs diff --git a/migrated/tests/Tools/TDS/TDS/TransactionIsolationLevelType.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/TransactionIsolationLevelType.cs similarity index 100% rename from migrated/tests/Tools/TDS/TDS/TransactionIsolationLevelType.cs rename to src/System.Data.SqlClient/tests/Tools/TDS/TDS/TransactionIsolationLevelType.cs From 6e6ce5d595740c7a08f71c34132c61aec58cdee6 Mon Sep 17 00:00:00 2001 From: Cheena Malhotra Date: Tue, 27 Aug 2024 01:22:11 -0700 Subject: [PATCH 02/23] Fix System.Data.SqlClient compilation errors --- Directory.Packages.props | 3 + MaintenancePackages.sln | 46 +- bl.zip | Bin 0 -> 3404773 bytes .../Windows/Kernel32/Interop.CloseHandle.cs} | 11 +- .../CoreLib/System/IO/PathInternal.Windows.cs | 415 +++++++ .../src/Interop/Windows/SspiCli/GlobalSSPI.cs | 12 + .../Interop/Windows/SspiCli/SSPIInterface.cs | 31 + .../SspiCli/SecurityPackageInfoClass.cs | 73 ++ .../src/System/Data/Common/AdapterUtil.cs | 2 + .../Data/ProviderBase/DbConnectionFactory.cs | 2 +- ...ugCriticalHandleZeroOrMinusOneIsInvalid.cs | 40 + src/System.Data.SqlClient/.editorconfig | 4 + .../src/CompatibilitySuppressions.xml | 1006 +---------------- .../src/System.Data.SqlClient.csproj | 105 +- .../src/System.Data.TypeForwards.cs | 76 ++ .../Data/SqlClient/SqlDependencyListener.cs | 39 +- .../Data/SqlClient/SqlDependencyUtils.cs | 5 +- .../System/Data/SqlClient/SqlTransaction.cs | 8 + .../FunctionalTests/Configurations.props | 10 - .../System.Data.SqlClient.Tests.csproj | 6 +- .../tests/ManualTests/Configurations.props | 8 - .../SQL/UdtTest/UDTs/Address/Address.cs | 293 ++--- .../SQL/UdtTest/UDTs/Address/Address.csproj | 9 +- .../UdtTest/UDTs/Address/Configurations.props | 8 - .../SQL/UdtTest/UDTs/Circle/Circle.cs | 211 ++-- .../SQL/UdtTest/UDTs/Circle/Circle.csproj | 10 +- .../UdtTest/UDTs/Circle/Configurations.props | 8 - .../SQL/UdtTest/UDTs/Circle/Point1.cs | 257 ++--- .../UdtTest/UDTs/Shapes/Configurations.props | 8 - .../SQL/UdtTest/UDTs/Shapes/Line.cs | 164 --- .../SQL/UdtTest/UDTs/Shapes/Point.cs | 257 ++--- .../SQL/UdtTest/UDTs/Shapes/Shapes.csproj | 9 +- .../UDTs/Utf8String/Configurations.props | 8 - .../SQL/UdtTest/UDTs/Utf8String/Utf8String.cs | 14 +- .../UdtTest/UDTs/Utf8String/Utf8String.csproj | 9 +- ....Data.SqlClient.ManualTesting.Tests.csproj | 6 +- .../IMonitorLoader/Configurations.props | 8 - .../IMonitorLoader/IMonitorLoader.cs | 33 - .../IMonitorLoader/IMonitorLoader.csproj | 12 - .../IMonitorLoader/MonitorMetrics.cs | 96 -- .../Configurations.props | 10 - .../FilteredDefaultTraceListener.cs | 211 ---- .../HostsFileManager.cs | 483 -------- .../MultiSubnetFailoverSetup.cs | 136 --- .../NetUtils.cs | 209 ---- .../SqlClientStressFactory.cs | 223 ---- .../SqlClientTestGroup.cs | 612 ---------- .../System.Data.SqlClient.Stress.Tests.csproj | 22 - .../System.Data.StressFramework/AsyncUtils.cs | 186 --- .../Configurations.props | 10 - .../System.Data.StressFramework/DataSource.cs | 160 --- .../DataStressConnection.cs | 236 ---- .../DataStressErrors.cs | 216 ---- .../DataStressFactory.cs | 952 ---------------- .../DataStressReader.cs | 350 ------ .../DataStressSettings.cs | 305 ----- .../DataTestGroup.cs | 698 ------------ .../System.Data.StressFramework/Extensions.cs | 94 -- .../StressConfigReader.cs | 83 -- .../StressTest.config | 20 - .../System.Data.StressFramework.csproj | 30 - .../TrackedRandom.cs | 184 --- .../Configurations.props | 10 - .../System.Data.StressRunner/Constants.cs | 53 - .../DeadlockDetection.cs | 192 ---- .../DeadlockDetectionTaskScheduler.cs | 94 -- .../System.Data.StressRunner/FakeConsole.cs | 34 - .../GlobalExceptionHandlerAttribute.cs | 16 - .../GlobalTestCleanupAttribute.cs | 16 - .../GlobalTestSetupAttribute.cs | 16 - .../ITestAttributeFilter.cs | 11 - .../System.Data.StressRunner/Logger.cs | 227 ---- .../System.Data.StressRunner/MemApi.Unix.cs | 21 - .../MemApi.Windows.cs | 18 - .../MonitorLoadUtils.cs | 49 - .../MultithreadedTest.cs | 170 --- .../System.Data.StressRunner/PerfCounters.cs | 34 - .../System.Data.StressRunner/Program.cs | 277 ----- .../RecordedExceptions.cs | 107 -- .../System.Data.StressRunner/SqlScript.cs | 64 -- .../System.Data.StressRunner/StressEngine.cs | 209 ---- .../System.Data.StressRunner/StressTest.cs | 155 --- .../System.Data.StressRunner.csproj | 47 - .../System.Data.StressRunner/Test.cs | 119 -- .../System.Data.StressRunner/TestAttribute.cs | 272 ----- .../System.Data.StressRunner/TestBase.cs | 173 --- .../TestCleanupAttribute.cs | 16 - .../System.Data.StressRunner/TestFinder.cs | 167 --- .../System.Data.StressRunner/TestMetrics.cs | 362 ------ .../TestVariationAttribute.cs | 35 - .../ThreadPoolTest.cs | 174 --- .../System.Data.StressRunner/VersionUtil.cs | 42 - .../TDS/TDS.EndPoint/Configurations.props | 8 - .../TDS/TDS.EndPoint/TDS.EndPoint.csproj | 5 +- .../TDS/TDS.Servers/Configurations.props | 8 - .../Tools/TDS/TDS.Servers/TDS.Servers.csproj | 5 +- .../tests/Tools/TDS/TDS/Configurations.props | 8 - ...tureExtAckFederatedAuthenticationOption.cs | 2 +- .../tests/Tools/TDS/TDS/TDS.csproj | 5 +- 99 files changed, 1307 insertions(+), 10666 deletions(-) create mode 100644 bl.zip rename src/{System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/TestSetupAttribute.cs => Common/src/CoreLib/Interop/Windows/Kernel32/Interop.CloseHandle.cs} (50%) create mode 100644 src/Common/src/CoreLib/System/IO/PathInternal.Windows.cs create mode 100644 src/Common/src/Interop/Windows/SspiCli/GlobalSSPI.cs create mode 100644 src/Common/src/Interop/Windows/SspiCli/SSPIInterface.cs create mode 100644 src/Common/src/Interop/Windows/SspiCli/SecurityPackageInfoClass.cs create mode 100644 src/Common/src/System/Net/DebugCriticalHandleZeroOrMinusOneIsInvalid.cs create mode 100644 src/System.Data.SqlClient/.editorconfig create mode 100644 src/System.Data.SqlClient/src/System.Data.TypeForwards.cs delete mode 100644 src/System.Data.SqlClient/tests/FunctionalTests/Configurations.props delete mode 100644 src/System.Data.SqlClient/tests/ManualTests/Configurations.props delete mode 100644 src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Address/Configurations.props delete mode 100644 src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Configurations.props delete mode 100644 src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Configurations.props delete mode 100644 src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Line.cs delete mode 100644 src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Configurations.props delete mode 100644 src/System.Data.SqlClient/tests/StressTests/IMonitorLoader/Configurations.props delete mode 100644 src/System.Data.SqlClient/tests/StressTests/IMonitorLoader/IMonitorLoader.cs delete mode 100644 src/System.Data.SqlClient/tests/StressTests/IMonitorLoader/IMonitorLoader.csproj delete mode 100644 src/System.Data.SqlClient/tests/StressTests/IMonitorLoader/MonitorMetrics.cs delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.SqlClient.Stress.Tests/Configurations.props delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.SqlClient.Stress.Tests/FilteredDefaultTraceListener.cs delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.SqlClient.Stress.Tests/HostsFileManager.cs delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.SqlClient.Stress.Tests/MultiSubnetFailoverSetup.cs delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.SqlClient.Stress.Tests/NetUtils.cs delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.SqlClient.Stress.Tests/SqlClientStressFactory.cs delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.SqlClient.Stress.Tests/SqlClientTestGroup.cs delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.SqlClient.Stress.Tests/System.Data.SqlClient.Stress.Tests.csproj delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/AsyncUtils.cs delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/Configurations.props delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/DataSource.cs delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/DataStressConnection.cs delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/DataStressErrors.cs delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/DataStressFactory.cs delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/DataStressReader.cs delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/DataStressSettings.cs delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/DataTestGroup.cs delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/Extensions.cs delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/StressConfigReader.cs delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/StressTest.config delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/System.Data.StressFramework.csproj delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/TrackedRandom.cs delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/Configurations.props delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/Constants.cs delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/DeadlockDetection.cs delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/DeadlockDetectionTaskScheduler.cs delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/FakeConsole.cs delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/GlobalExceptionHandlerAttribute.cs delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/GlobalTestCleanupAttribute.cs delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/GlobalTestSetupAttribute.cs delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/ITestAttributeFilter.cs delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/Logger.cs delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/MemApi.Unix.cs delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/MemApi.Windows.cs delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/MonitorLoadUtils.cs delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/MultithreadedTest.cs delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/PerfCounters.cs delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/Program.cs delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/RecordedExceptions.cs delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/SqlScript.cs delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/StressEngine.cs delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/StressTest.cs delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/System.Data.StressRunner.csproj delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/Test.cs delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/TestAttribute.cs delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/TestBase.cs delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/TestCleanupAttribute.cs delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/TestFinder.cs delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/TestMetrics.cs delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/TestVariationAttribute.cs delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/ThreadPoolTest.cs delete mode 100644 src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/VersionUtil.cs delete mode 100644 src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/Configurations.props delete mode 100644 src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/Configurations.props delete mode 100644 src/System.Data.SqlClient/tests/Tools/TDS/TDS/Configurations.props diff --git a/Directory.Packages.props b/Directory.Packages.props index ac6745475..9d03d264e 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -15,6 +15,9 @@ + + + diff --git a/MaintenancePackages.sln b/MaintenancePackages.sln index 5b78c524c..8380d70db 100644 --- a/MaintenancePackages.sln +++ b/MaintenancePackages.sln @@ -1,4 +1,5 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 + +Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.0.31903.59 MinimumVisualStudioVersion = 10.0.40219.1 @@ -114,8 +115,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "FunctionalTests", "Function EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ManualTests", "ManualTests", "{695749E8-3339-48D0-9650-34C72CCEEBFF}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "StressTests", "StressTests", "{9848761F-32CD-442C-BC55-ECC21562426D}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TDS", "TDS", "{CD601656-2933-4096-98D9-F82D41A85DD1}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TDS", "TDS", "{60604421-DA9B-4573-947F-375E2BEE85FD}" @@ -142,22 +141,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Shapes", "src\System.Data.S EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Utf8String", "src\System.Data.SqlClient\tests\ManualTests\SQL\UdtTest\UDTs\Utf8String\Utf8String.csproj", "{E0A6BB21-574B-43D9-890D-6E1144F2EE9E}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "IMonitorLoader", "IMonitorLoader", "{E5A83331-B0F8-45DE-A7E7-C1459A981289}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Stress", "Stress", "{6C2A4465-1A7E-4E28-BA64-5E8A489CE09F}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "StressFramework", "StressFramework", "{DF4A2ACC-14C7-4C9D-B85C-ED03B9E21AB1}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "StressRunner", "StressRunner", "{E75FE0AF-5F06-4BE8-9059-D0E799D98260}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IMonitorLoader", "src\System.Data.SqlClient\tests\StressTests\IMonitorLoader\IMonitorLoader.csproj", "{AF78BA88-6428-47EA-8682-442DAF8E9656}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Data.SqlClient.Stress.Tests", "src\System.Data.SqlClient\tests\StressTests\System.Data.SqlClient.Stress.Tests\System.Data.SqlClient.Stress.Tests.csproj", "{B94B8E6D-3E41-4046-B758-4A2E281F74EE}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Data.StressFramework", "src\System.Data.SqlClient\tests\StressTests\System.Data.StressFramework\System.Data.StressFramework.csproj", "{518A4E22-0144-4699-80AE-757B744E8E38}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Data.StressRunner", "src\System.Data.SqlClient\tests\StressTests\System.Data.StressRunner\System.Data.StressRunner.csproj", "{529B187A-DE4F-4F4D-9FBB-D3D416FDB683}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TDS", "src\System.Data.SqlClient\tests\Tools\TDS\TDS\TDS.csproj", "{8DC9D1A0-351B-47BC-A90F-B9DA542550E9}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TDS.EndPoint", "src\System.Data.SqlClient\tests\Tools\TDS\TDS.EndPoint\TDS.EndPoint.csproj", "{1FF891B4-D3DE-4CCE-887C-CB48F5351A45}" @@ -276,22 +259,6 @@ Global {E0A6BB21-574B-43D9-890D-6E1144F2EE9E}.Debug|Any CPU.Build.0 = Debug|Any CPU {E0A6BB21-574B-43D9-890D-6E1144F2EE9E}.Release|Any CPU.ActiveCfg = Release|Any CPU {E0A6BB21-574B-43D9-890D-6E1144F2EE9E}.Release|Any CPU.Build.0 = Release|Any CPU - {AF78BA88-6428-47EA-8682-442DAF8E9656}.Debug|Any CPU.ActiveCfg = netstandard-Unix-Debug|Any CPU - {AF78BA88-6428-47EA-8682-442DAF8E9656}.Debug|Any CPU.Build.0 = netstandard-Unix-Debug|Any CPU - {AF78BA88-6428-47EA-8682-442DAF8E9656}.Release|Any CPU.ActiveCfg = netstandard-Unix-Debug|Any CPU - {AF78BA88-6428-47EA-8682-442DAF8E9656}.Release|Any CPU.Build.0 = netstandard-Unix-Debug|Any CPU - {B94B8E6D-3E41-4046-B758-4A2E281F74EE}.Debug|Any CPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU - {B94B8E6D-3E41-4046-B758-4A2E281F74EE}.Debug|Any CPU.Build.0 = netcoreapp-Unix-Debug|Any CPU - {B94B8E6D-3E41-4046-B758-4A2E281F74EE}.Release|Any CPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU - {B94B8E6D-3E41-4046-B758-4A2E281F74EE}.Release|Any CPU.Build.0 = netcoreapp-Unix-Debug|Any CPU - {518A4E22-0144-4699-80AE-757B744E8E38}.Debug|Any CPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU - {518A4E22-0144-4699-80AE-757B744E8E38}.Debug|Any CPU.Build.0 = netcoreapp-Unix-Debug|Any CPU - {518A4E22-0144-4699-80AE-757B744E8E38}.Release|Any CPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU - {518A4E22-0144-4699-80AE-757B744E8E38}.Release|Any CPU.Build.0 = netcoreapp-Unix-Debug|Any CPU - {529B187A-DE4F-4F4D-9FBB-D3D416FDB683}.Debug|Any CPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU - {529B187A-DE4F-4F4D-9FBB-D3D416FDB683}.Debug|Any CPU.Build.0 = netcoreapp-Unix-Debug|Any CPU - {529B187A-DE4F-4F4D-9FBB-D3D416FDB683}.Release|Any CPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU - {529B187A-DE4F-4F4D-9FBB-D3D416FDB683}.Release|Any CPU.Build.0 = netcoreapp-Unix-Debug|Any CPU {8DC9D1A0-351B-47BC-A90F-B9DA542550E9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {8DC9D1A0-351B-47BC-A90F-B9DA542550E9}.Debug|Any CPU.Build.0 = Debug|Any CPU {8DC9D1A0-351B-47BC-A90F-B9DA542550E9}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -358,7 +325,6 @@ Global {CF99D9B6-B784-4FF5-AE08-19662FAE7D91} = {18188B46-A3A3-4026-8D4C-59BF50EC1BB2} {581FAEF2-301E-41F9-B46B-6B51EA2B927E} = {4361DC59-9F75-487B-841B-A067B0E5B9D4} {695749E8-3339-48D0-9650-34C72CCEEBFF} = {4361DC59-9F75-487B-841B-A067B0E5B9D4} - {9848761F-32CD-442C-BC55-ECC21562426D} = {4361DC59-9F75-487B-841B-A067B0E5B9D4} {CD601656-2933-4096-98D9-F82D41A85DD1} = {4361DC59-9F75-487B-841B-A067B0E5B9D4} {60604421-DA9B-4573-947F-375E2BEE85FD} = {CD601656-2933-4096-98D9-F82D41A85DD1} {344BA1A5-BAC4-4D80-A070-DB2CEEEF2FBF} = {CD601656-2933-4096-98D9-F82D41A85DD1} @@ -372,14 +338,6 @@ Global {6C88F00F-9597-43AD-9E5F-9B344DA3B16F} = {9F564E0C-4486-4B03-A263-ACF04A17013D} {B73A7063-37C3-415D-AD53-BB3DA20ABD6E} = {8D538D30-A55E-4F96-AA6D-0C4F7483E698} {E0A6BB21-574B-43D9-890D-6E1144F2EE9E} = {57D149AF-87A0-4E04-82AE-5E6BEB80D610} - {E5A83331-B0F8-45DE-A7E7-C1459A981289} = {9848761F-32CD-442C-BC55-ECC21562426D} - {6C2A4465-1A7E-4E28-BA64-5E8A489CE09F} = {9848761F-32CD-442C-BC55-ECC21562426D} - {DF4A2ACC-14C7-4C9D-B85C-ED03B9E21AB1} = {9848761F-32CD-442C-BC55-ECC21562426D} - {E75FE0AF-5F06-4BE8-9059-D0E799D98260} = {9848761F-32CD-442C-BC55-ECC21562426D} - {AF78BA88-6428-47EA-8682-442DAF8E9656} = {E5A83331-B0F8-45DE-A7E7-C1459A981289} - {B94B8E6D-3E41-4046-B758-4A2E281F74EE} = {6C2A4465-1A7E-4E28-BA64-5E8A489CE09F} - {518A4E22-0144-4699-80AE-757B744E8E38} = {DF4A2ACC-14C7-4C9D-B85C-ED03B9E21AB1} - {529B187A-DE4F-4F4D-9FBB-D3D416FDB683} = {E75FE0AF-5F06-4BE8-9059-D0E799D98260} {8DC9D1A0-351B-47BC-A90F-B9DA542550E9} = {60604421-DA9B-4573-947F-375E2BEE85FD} {1FF891B4-D3DE-4CCE-887C-CB48F5351A45} = {344BA1A5-BAC4-4D80-A070-DB2CEEEF2FBF} {978063D3-FBB5-4E10-8C45-67C90BE1B931} = {17991DFF-526A-4A5E-9B6A-FBF6FC15E621} diff --git a/bl.zip b/bl.zip new file mode 100644 index 0000000000000000000000000000000000000000..b68484da91a14ec02665846ed1fa97c11c259c3c GIT binary patch literal 3404773 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�i=*g<9i6ZrLl3N|H9-*6OE5_EXm5;f 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≺5^g*0=9d76+TOc!PdGli+b=Pgj|1%ykA;F?2P9Y8X_gMK_q0^cG>Ouua%5 z>=4j6JDNc66m|)_g+0PvVV|&HI3S=C0y-&_2&aUOr-d`#XN0ptsZb`I6XG2g1XM1d zivp?;T2ul8mjrZKxFTE?cAKvW*M%w}!BHci8#0!{P2rXhBMvtv8zp#bTf&W7PY4#lZbo)a88TOg>S@uLnE|fWTr(+)c&4VI4RL!@e1$K1C?=*AP zuT@UWO{n!EGKrv1nBn}qi#cXYYIG!!?PZX0JNg^5|4si?<^L>YlC|S&-Q$&;s z|4I{4x|ku3X;>_Ida8x$6PVPktd@0;sSA@xJX)=ls8mE{B049c z^CG$+qH+;k6j6nUDn)cjM3+T$MMPIcbWKFpMN}oCY7y0lXoG#USnyZ9BBG+hx~adV#bHB1K^``6m9yxl;8*y+`^Wb~d&1FA!^d6UC{Mq8 z58Hot$G^V9t^c~G;%)rykmgaH+o;@IMf$34!>`#DsS%mxSENSd?wKMrdh0z_q(<*< zHbrVgrP+?7NnRWu_5#lrcu|PkfuYXD#l3@=_2708-Q3A%_~Cs+LC-pd!mpt~$j#gD zbu{^XjyB4U_fHRUFW%;S;PPn|(ffOOgEc%fI@C&M!@B!E?STIpS1y^MTfd*7U#BU* z%C~I519YaScVLroiE&spDHfD!>FbbRd)QNT8}=i+z%%Qx_n&sSm=H9Qs$_gK4zzGF^1#zAxxokm_A`2%AB+hV@lxf zDf@6{sYET4s8d?+rP6E5q}P^9udR??UnR9Hklt7;wOTK=E|l7Al4$tvX34uqYFi|| zStPwxB)wfEy;Cf`dsuq6SbFEM^v)6K$s*~!QtAD2sa>VizF6u|C4EpOb*z#)6-k{- zr4P%ck1C~)i=|Jhq))4)e^p8UE|R*GN}rWWpI1s>6iZ)LNx@Z8*D9%7krYxYg_cX* zE2XcBr5;sMSe5j3mGn)K6kaOzESGv!N)g3U?;`0xrBYnjXp{AMxP;2hSHmT*dm`{^bVil^e&%d zdXG;Ez1Js|-sh7B-=)KM8Sq^ue3u2^ji4)7>WB|@)W=pUQOA6!<37|0AL^tJRpLY4 z-8ZLv%%^>*Gd|Q=AByndf}eh(gPP=^COeifrS=r&oIRDfU{7N%+S8d*A5)pnNV?o- z6kX{vn!e&QhQ97Imag_0N8j+trf>R;r(=94(EWWU(gS=a(Q&@sgM25`3BFV4B;Tp@ zFyCo(if;~`?mL~%@|{7C@|{VK^_@j$`|{&`XVa5>bLpwRbLi>5bLpGhJbJco9zEB0 zK0V)e0lmm~A)W8Lh+gKqm|p3-gg(#Y(`$T}((8Sf(S^Q`{T8Nv4M)F+osGVlO}^A- zU#iHL+Tu%Z^<7Ty@TGV9QoDRLyM3uWzSLe{YM(E?-**Ll(3hF&$Y7>Hsr5DNkf_}f zwO699veZF|%HXJ*zSIF9>XP02tdPlEwr4U|pj?G=4a#*WRZyy-)IhoM>mIx1E3W6L zT02z^?}x5#r(zJ*4^jOQ6^p0=h#H8fI7AIX)L=x#BPsz=Z&HcK*NLbkl*J4~Bba1F zrJ#{a8kBVSX9j$oiAFIa&}e29l+jSeKpBh1FxhAnT(?MMipk_I!JjBmO)B;2;MARZgEk@K5 zMCBuDDWaA^EeDnBpyoKJxejU`JnW!WBN`qkK>Qj+twq#2M6E~E21FGiY9pdHA!;+C z<~yhb4r-x;TI8S>JE$cND#k)*Td95)I^RLXTIi(?YM_N)=AZ^y=;aP7-a@Z%P>J&A z<&4upuXL8fKhjEt73w;Kw8fHQquOIH-vhdJS|!i`NtjHPu3G6{%?! zD#t=i2OfPk(#MhcG(!#ZqD~;{B%(?XbqZ0Z5p~E;?O~}2Jaq<9X8~QLD?>TVIVk6$ zT!2yzou&j+U?Al*C7DRquKrNrz6x^A z+pN)@_de%+)I0Ekceyu3ohRNiuCBj);yGXi?uv)Gt<%FDSWKIqcuKunGtF-D!Z}j4tr3 zt`s0RO}w}hXh^{aCLqBP6QsfspwSKkIEI@7sbQvM^5rEJj)wO+ahHRBx}w72uhCut zIOGdbm%J}~+j;~>NA?MI1t4^N3hov1Na%O4u#5V0;61RSdIa}|F9ZKV0`Eyy1@8@w zu1HsRhdjl))FR#iV=*q)ybm@TMUjNl@h#_Vw@gXGIeOhKoJ;bRw=3S4 zNGy3iOby>#Nt)NGEAAKEYk>+@LBbQg7A04(DMweHVrm)*e5vFx#=8QsGl2FO$IIC1wmNf{fytX48MT=UML z=lfqLLiw_kg1;j!lbK52-i9i78#L4C3RH~8ZYrsd%z55&)^foW znG++#w$G|#hC`zr31h~5Lm)NMG|DwEV9?Be*Gax+ibLoxmK6N0Zr$w?9;cu~%L1Nb zp@?1bv>LVUQ;oJlm!zu%&8g5`(vbw*wMG%J>=9GreS>)E`;q7B2Z_-zOpI}LM+{2q z-g6Qzlj1T1q$&`(A~xYJPWL{eUYwS)wYQBq{?+QTaGn2UL|s8w5k+ZT_+gMZd{Z4f zv>I(K3?A~e&sy)BL_`Lth-8??!Z0un27ym7Eo1#s8eM$Gz;^U~=iS^SU9}^vaZY>U z)B0U$9NQD9L4{d?s8oe|7*JI#3@L4p}s#(fF3!K2&|ti1%H*A1gsyekda+r z`Ws`7@?@lO<5TzNbd4LM<>1LPmtLV^NZ=Q@cVY}z5=J%GR4q&cEvy19tOk&(bTvef zzEnYy9TLWxCKEyO@=w9vnkJ1O>$Pq&m%P0++5twe4WUf~j05W~!*8H(1MI(najwUi zm70yNoE*3S+#fhGX07G%_BichPPw%&j;MC6t5rxd0n%E4^d>-BtGneg(J_#&Qy|SZ z4l`9^9JR7**=$oT(fD|)lM`duJ@jY;y-9x3tvA$CE$ky?FejndKK-+Y zpz?u_V4}@84oUx)x@F&=1K)R@?71FM{^44?VRI)`rZvdctQ+pi)_mBy4pwi&y-5n) zQ^~`2$y=|{#)Cr3=~?5A3B=g555JItS!|H>Is7G6pOZnK=YT%X1$~}lnn%`W!?iR* zmLQToKiS#o$?U{v=09(!nmG+>miAE=Ji%EJ_6?O^;JKdIVoDafIx8=F4 zQH*B2{$k2)i!gxx&w+iP4|*=}kw>9Jz^7+j8zc?Cd?Dzst}p-mXxrfMsL;C4u8)6l z^{Y0&V>=}%r0yzHm#C0$y8JEZ*`Vj1eXhZcm5-tGb`OvE_KiMa;UR6lgWB?q_^6=h zy6^*0O?2HSZ>4$6`m_PM?p$wM65T|Wiso)ySg*F9{K}>rrqVrTcq)XZj3M^Zp=v)> z7DJ?d8eHq{r*V3#mo{D>r%%wIqp5g(B6$Yc>y_R_Vkd0XGDA8c)sijc0ZXYa*k+qv z(P7cw|4LasZ%p@?6lo*KYP`3h;Y>G887Szc?V~<^>QLdW(I&xAAt&8SG7ce*6`%h@ z9V=2{tXKpS!(tdK7MYe1?T@6FQZO4A#FQ$9QaUj~5k^M?K6Db+q&QuTys7G{%}eV9 zU7e`|U3Kb{^bgh9p{|ErNY_5=MtZYBUw=+P!h5-0#T$Sd3V6%upoW5RP1-5>;$?NG zgs3D*0qKM+JERU>p@7wBeTf5Ut`f>VPXCaXb_jr!D}yvdKU6PoZ8gHE!}E$Z%DT9` zAxPMEZ2dzzAsGls#nS(gg4@3!HNV40P7fFs5E~?U0=+1FPAawhqg??Yz~mRADK`d$dbaIM1+q>z6u;;kuZ+lH`eg-su6*PY}G=G(;z@%)0G=iY|WyO3= zgKZGoqfIWah$F;Pozm-rLhH7>fG!H0Bn>#aJ2p+ zoZycnrnDVh5B2R^4)U5_ZN~mrl)**y4IrVjuZ^m*nV_=kKxNm1%C0kQAet>Ny_14l zW)d}x4NE6P9ws3-zaF`XfZSN1I8Gm!t*-#&#_A0XA+WuwKu|A7+-6?Lo9_0nGeyIB zyJ?+iqbYEcX)_#V6%rBX_-+cxfXAtR8zpdcg>EtcHvyV45rCVZpHw$bG#VbZtL<=4 zlMTd);p&t3QgEgkQJY`-KD|B?vUZ$bT_j{`oL{lGJZ|e6a%KF7o2$ij;JQy3veWgso2H@b{E3_~*%hP3kC?CJU$ zL_Yq~4r|ra4IVnJn}I*R4*^9oBjwTP3OKp2HN&BFNM>?WM7_uSPZc;ia zz%FjHvIBX>#I&zkX5!rB3dq z?jh%F{p-SXl0yKl+T)AU8=pdx#^P5vWh_3-qC7g$3e4_l$n5CG%;L_~YCDjODk8so zmMQ#R67py?*^k6;mdfuj^Lg`ev(rj^_m$=8w;dc45l>&4jyXalR@=Bbop73mgRI8~ zBx{ODaNpW=%xMb=JEu^;C!SIIA zA~H0%ckfr*wrSb=>@bz+0aRSj> z;5)^Stw3+lXxBpv<&3rK^&7~_VK}1_gBAWnASSQyCmJUawRg?OcV|v7Emf(B8r@`| z2Ae!nj8g&4$z(Lgl&Li(jcyv$ggu2EqnzJv8o6ffIkhH;emc|y(a$i>1e(*yHN7sV zCJ=1W%rc&nH)&=YbD`!ea!qr&YI1sMbaRYnWzbqjqT-V**R&+SsG-N??g7BXJCi`JRe3hOz# z(z+G4Dlb||DCK>MwdhIJ-uxHQp2oS^dO!5*&X`&<8A^l7p+T3SL06zbSFP7z2lcYG zZVJV4=Ir7oaZsK@4>p`a@f*E*m0SgoyAI^4fLyh;2FP7^;fHC_DWyg0<lU0pS+t; zt>us4W#(6F*$90u$8WkHX&zP`@;2%JpwVs9Z_=;R1#Z{NqtrHX!xs6t=@sY$;S}Cj zpkHEiA+ng5mL>?P6d!|~cAyCRY&-S4^sv)TZea^QmEvFEJPRl;1&b!%xQsY8(x2be zJiO~6H?e%98IEy``9|0Ppq3j~5C^_3O5=W0!g=}+DTHj^xP~Qsfg5B=N_8VJrEyMf z(h2kEFB|oKELfwTP{H!?(yo*|*% zwEId|4`6zEFy18i3<+sH_N*S`Mofwlp*9puN`cc_0n&Nk4ti~RVh29FQ2#o6|d zACLZ^{_(-KK{j{dbBq8#>qZ!!$=gsJ>*>VX2HOsh*(z%Ac!Dk7R&2CA*`$g3YF%z$ z_`#K19lId!q`do(ahqd{Tz5a_#YI3Qfx5=ZZ&0r78beAqp&9T#~GxY zu$Zp()zc}MWVPh&!Ot>CX;d)+E$Bv={fH?3<%T_BLp|u-CgXgUy9R?Mr>8JKjXq^Y7Z>NdN8G;z0nK82W76sP^> zzN87C)Jg4%tNI=JIpuVuI4DL8bVE@_9{sMyW!#y^6Q?V)zr{_(Bp1KXM-nmHaYW97 z;xm3rYR!aU8MkGKBtD)#Jfm^60pipDO3t_~Z~*b~7O5GYF4p6=55LEa!o(crpEz&3 z6Jnc8zj_Y_AJ<)bR~MDj-QTn8`|2xgotlA9QV)OZr~1Ktr(>7Hos1ltnKU!Q)75*- ztnKx#I%|&rQ*JxV+B?9M+iu!vy1O8vgm$`PM%mimCSnyAnktHhW(N>C!Xqn7UsI#*in~I@ze!uO5INIh=vHYD^*)+CK%O zBE$*i*s+Y;uJjTgzj!>u)1_A2L@r0)O0TlXZt{ydrkX^2t>vpZ3?k1n;W&I*4>ucCi>2s0~*%4>8^FNiCXE6 zYTa_zy46H2VPL~rF$Pzy7{fK+3jb#~V@W z@21w@K%O_m#}mnC^cZT-#x!ub9)QD>M*`G2!Tq(!R^g)B&L~7(SpcVQW`3z`) zVW5Gc+#Vm88DskwPSV9V9KF-^^sFv=u&El?kRGP%xA{Qr`lEr~0ibsf=p8T>6Y0Gd zuhM(iMGwZA!G`#HdN>^0zLH5Yop5X7j6Wxm94l~PbQ0Zc*6Kx=>kYMf`C>|fA<;mR z0UPWj-iE>ui*l;OKGf(2>1y>(Ltv6&2w*aZcn|1|B7*}aXxkyv0h8ReL#D$-a<(BV zxxKJKG87s&%n&%-kPP&Oy4r^ewT7juwLa8nM?fvmF=~WiBvGNW zyE$<;tw_WQvQ%PD@Bl6bKu>8K6#4Fmkdf)z>Ng6$|p=BnjXYY@L0cI)C zuYqM*t!0`^A20|kR1nCA1*1lH42T^!1)eaChZCSKcY2SPp)kMZm0 zM{HeqY$j+z|*D)fMyACv<}EoJdLdWUbIIU|!aAmV`iyqB}7^F|D>|Cp=t zx{UGCE(B&5fol)7(7M=4l1Qt1iDU!Cvp})b6j)|D2eLd%)^CO4LaSDzU142lm9HeM zu=gK6Q*5l-CREOAssqNA{OJKoW#9BoJIYy+NudqZLxp8u@b5+_OBrF z_SV9B-qr(m8^{{WEy^SfD7ZfJ@e)-J*Mf`L06%al1U($+7w1P&1BjlXj(oN1dQjo1 zhMCrlvIqr$)`W(sh8)@1%rKoelg30liCYqwYCHQlNy{0W%%c9~ zmf2$e5RG=V|6>2qd?2;jzrdda=7i<$mgN}07+I~$F@O@zFw6v7bG6Gx#cqKVW;QWG zV@MXQQc22g&4wI>t*u@HsTPJb(|j2p1Ukg9~n+fhg+9Co=DH&Nx`4 z(tHx^FQB;?tnWpJCB%-S|ISHT$KZOv&M(v+&|Rb54?W<3e;~Er|Da38xYm7iHj^}8 z;NYCQ#oe?;@**wYum~1uOAX6F8S{zDpMUL8>%ly;9O}vQ%yPpD*MbBC$qPR?Z(ER% zkmwYwA`zz1o&qF}!gzJc|Fl18_)b2j4Bv9%WqLJ{p=AviYT9m3s#RwO!y3axW-YP5 zo~vj78;$M^uzyk)c-FrZ`s*2D3%H%FuZXL{?b*Q9~VK* zD^T;QDe#)~p@{oAgaO-M>1S zRW*{z{69u2PhMCwjC?k0pzq{5D;q}Sj%G|DJI(Mc-GCp8H8D1nGpho)ZTf9u%%Y`> z%~vd$AvhVzGapMGP4gE-lq+*?w zU5VV62GN8gQRA|K(uHf*E9U8C&>M!UkOm(%kD>hvwMKDLyx4qw1qj~ag=^rzJ?)NN zdjRkoruf*Z&F-XFj((y>jL$jh><9_WZp5#Yfy?}YHT!Yyc;M^AE zfDAZfuBmH)ve71j2Q*iFkamue*X)n@gibiPDjA;|MO>iMIjkVL4B4P3vIrSn-189( zsNzR26i1HGcIM6{^ui+y0VbhN{I$vH4~Ggeq!TJ=WO`2$sbM%8TQae3d@?raDhAmY zzz%&U~zavg{h#lMa7CdcW z*fJVoWIr`eRgZs?#q{uJ4TcV~-OR9O&J^WH;zW;)vwkn*sRJE^L7q=9AGnDv0NK*MOfl?negnN@gdcvSlXU+*S0)t3SmE z9%Kg07S&-LJqfbAew4CK(gp{$Joi&aClH$L40LxNyWOPi;=c?rJ+B>7TTg?h@0f#h zZ)-tR1^Ws$-JL)~tON6v?PO4bR-rFc8cKtVq^|`Vc7IA$mJL&)Pm{vB8mdANW7-%g z+DXwEdUW%gtfK%cVvz*)2do=8q8f;f1}>F}0-7QE1BaNed~>s>#4q|QI~fX664(Gt zczf<-Y~Yvox|UOw^Rg^^v17zHcxZr70g%lT-ODaEf>%w!(M%G`8LC69*-;|8vyI)| za6YvA;PXY%^Cs$hQ%t}d%G;?UlX$^Br=p2W>`)xJ`ZN+&MF;?r-LHmrKmYbuS6*RS2s<$f!~cZV&)d{4&4M~EvioWc1L8vz72>;xQkCmHzS3X!(EiJ>|e#8t7m zxS?7!#B2x8$aBPi%8mh-A$0?jd6of`9Y(OEnN+ZV3C>K&J4L$fDc@S)pG^o0v`M*o z>T)BET;(Tj1!e&WZ6m`oMRa`=soWg+cVX|@cDn6B-)8jdz&7ZFiIpKf7{^=EqNiOj zKnPIkbEKhn_=#6G-B-%_y5qt|Orf$NO6Pj;I>5Z>x>k;914VUbEf3MvnIO2b(?9)@ z7AHCSgHK>jG4!srl8U4R5dk93@_1pz8o8ziz%rIZH05C>w$;Hr7PFdFT9P<;c(}Gn zPt{VPe$W1b+Z6K#1Add0&Cx_{{xtJ<^+|*LxhQzYfOp$`j zf~91os9@={WqHl2wqtYL(&YI$tE{+ZDqYieBSiv2ODd?B z&NMs(g#P)4#T4qU9%+E5m(RO1&p*bS%jPt0LrQgj|I#6Zxvn-GCiOQAD-&pK3@?l8 zsFh-b<;D=#&vrY0b5v(55{Y79lgG37koar)XZZtuywmWu6Mh^F_~>Y0WLQ5ZB?i?V z#?Ie9&XPy9p{Ec%l#Hf0^lPh}ppEO$Nafj@l2?*GVrxhA$hQWq??kZj6uqAqY~VUF z2%k0`1NI7bLwXREZKX+fLiLIRXanFQ4qX7HS_!m7W-%vuh>0ZNk``iQ<8@J@4U?X{ zwN{!Wm~J#a^WK;9ToE{Qxg}Fs5yTLhrq1=eme?Tb9oe z^IU9bn-sCdkVA_iuOd(PU^jo)T(*R3u+{uP$dxEZo$UVBSkS z)Yv~Zp9ebzTW5@Jc4!0uQVOT>clKE=I`+=$yYu+RUAY52gPp*Ata!&+dpkWtL!ARk z2tC%?hh;W8SrMzD*uKC0#l~LM4r6eZP>7yzU%Q&FF_GZ6NI00t-#X1SS3BnnutE8@ z2tA!)J|W4%wzn={%_I2^~@q1_UsR{}OJYAuFbdRXdk5!Yv7h!n2Ko2;9MPAJ@ z(P!_h0E)lUaXFU<>XjaDnqeY>c#+{>y#quzLVbaM#Qt}qGB$j*NNzEwo6hz*}@pWzw z5n+**YaDEh^orE%Xh7jxw3HHxGg}{pm$kp>zV0IxSi1T zxbDEd0$zwnhzktdH8ug%bCzi-CUhk-%pkZuI;4sbR?Uc}WB)qfyM zK2)IF^B)v&m=8`!(;VIz=zFz-9?T@S0Gz*H#@kMg;^uZDgFTsf=BvCtf`dZaPr@#l z2_EG^U1Cmh7nCF}{MOKZ+jhSernKDgS5A5op}{XbFd^~t<@I%*1LA6N^G0r8uD1o2 z8$caNb$B;u5^ys%H?)P)J9e)Zx@?25wx*u{%~&X_SJmeEOd|WXz>*&Ri?O7Zti<6si-4GULy=d3Ufg$Ty-=(jEEl^jJPDp&RNmj0_`Vi1Ixfh1;in(5C^B8I zk7qW`X4{3#~e;P-Rstywfr^xfA*UjEtp7-gd-6+1Vx23th zuQom$DY$&FMTaMRPkJ0VviXSSB-z5Sd7*QICwtBe*#f0=X3m`1e5P}1PY|9&T#>la zv3a9&2WQrv8SSezTi%1Us+|2><5cohp+rMIscjQw=)yW05xGv)+TpCXGZ&(4oV!G zHbbR{$`F}0G=)f-qc%xpn94wzmUJJWB(Ew!rngFOndUU*X$qhS?!(HEnKmsAUk5Uw zO18P1b|vRZ&zYt*WoruiPfR-#*j`tVd}M~uw87ge!U?%kG{j~~9m87|l*u>79)ir(M=+xe^#Z4P0^vKcd zF9g*Qa7749b25(@JA0byIMtpMi?StYi_(@!dS6{A~u9@>%;)TGKc{x`Mu4!rLdg29{{2^oy*ca^kXQ?uLiotq+ zUKQ5naNZU6de7Cdt9^S57xwyio)`A|bRH0PLTw(_k;!Fbi{OSnt&nd}BhGQG{V@9( z#4V9(U)G@vQ01L<9pi>tZ8F8-G@s+NVB8If){zSa1-tTSo&;9sWF7@p=eX8kwS%%Y zQ-}rICrGFTn{({wbLT+unt^*e?sjhM!3XTF4(3P!`#1B7h=z+8?%?rkz?(a-f9`I# zj>eVvVFZ@UZ$4od?E_|C3VX=ilihDJVKC3N_}&Z~#d`IsP5OxJKB+)DfDvVqnViEr!{|?3>AX2CV-pt4$#G?Mn;8*3LzP^R^m-Akxv!S zfHeU{=Ez+6|3FvtoUagFp}c~726+wo?D_f0K%5oH5o957u!x%-9NeU4NF(LY55f{u8aES^V4p78e!$+gkaF9lIZVU<#%dVG5UF+Vr&FzPJ_s}GY2(u(qeVoGkQny1D{GU|qN#;b zji|`0Mu8q+I@GkoPI@{7se_vowM%SKqeeJlpVJ(G9;zbPAT78i><|>@9MC$nu`hLt z6~9J)3UdVKVW-*kx$|?Aqeg`d4;>)fmma3OPdNxid$bE*z1~?g{0^CkC{q?PBIF<~ zcp&J&D|Cd@MwSZ-rx11$7fum&5*Ahwc9Ire5>_HAw1isnu2+Bf`NO(NKTa+_PW4_rpCKHxOj>Ixo3@6Zz@MKfK zc)ABOzwIk5LjNu-qFYo8+qKv=*|q%};jUKSbp^3y`>Egw7v1eua23?J+bhed&u328 zx)gR5b`2KdlKPzb78VCF7UH1T%B(AhR2;ELjPEF^Wu6W#9YB|KWy>NWs8m97z)T^A zX)DVhmu4!?6wsovXicG(Ni>skBH?j&>wT>-=55j1H>2L?V)wy3ovtXeE8i?_< zUzP{i@=TyNGxiP}GAk)ps4H9u@R{wTf|~jxR~0$dnNF4;@Gh!{-<|b;&`28Ff1#0s zzV(-RhFWpPze;^sl&aqBVC8jLpZa|}b&|IG7GWw$h5{9-O|TfoR6LW4+ONApF2625 zPV)wzl^r9v|B8{W*O{BurwB-vU-A>!#R&XYoZ@d(PrRO3j*@3x%AQtfPn(XX4aoCn z6~!r_^OzRJs%OPZ!HOBuh|pi#)b6O_R*}Ulkwq<$#Z8e#u93yAuoAbZ5;s_>TkM2f z>ckzYlpVUX4He1js1jI}MKBe`G0F<1gyjz9k9zHoa>b8!^^ao7k7mgawUnn@!V0O1 zCykCLkCG>mh9{F0WNi|cn#4{N34#(u^N!^n#g9t$3k8x86$w2xiCtug{Sw7F#|pI) zWCiMH+Qc6vN|974g%m~ShGnwNvRh$1orEWwgr|RYpM)o&geRkfrzK~+Yv{Z@v$rqC zq0>GlZ^JWgJkwq|KF?k`KhKJ|R`JM^sA53*KY|fOs~=}8@6d&-@6e%$a3p||gvew% zXGQC0Ny2td7(gcEJ?mjK4;Z4icNns_4-%!XZ^iRoK8oi)ycTyloZe}GyC#Ef8h6{^ zoq;8>Z}MV3)-8xG)2F{iw_JOLovqJu7_-StOpuHs?CeQf?qm#-(F^Hm+DYn3Tgzpo zTf@kO=pF*}{-e!aDp%m;;~8OOmlq(*$B(lw5O5A4g=ebN1(sQI5xlQBPbL+;vr`V2}W&|E; zTxr?I8p5cavqYyJvt($VwD?loXo*tXQ4=P)QR7X@5E?ff>D71Ig0=Twn?vBw_=r5Q z>?yfVnsSCYWD3U;%3g_=JZXtp+!Hgo!>DqeRb&k_NozL}S9ip2o~el}xsfus!>VwG zU0@C}LRT;N2Q9-oa)xS52aRnH#!Da+^vLWflo8V;OZt-_Iqlowe$9mS zDRI~Uib)@aD^VJ9icRl@=MGE9rt1?D$_OV%gtH0jmN;hQV!43L*ib+8K4%RWu^?%%|{Ih4AU8)zoQ3-&TV4G z3RXjGLxZn(RcjzdUxs9JO4EPfKXANyPEn{QJmuEn) zjMoGoxJ347(fj)1eQqT~kQ1ZM5Iq@sf=S7}D9SHEPx>$d+I6;I@QZ@GZT!alAm8ai zVsZowY=D-*O@zdV@E2}1_y!rpC9J5%H@7lF&6gu_eD5)*1HyFaWzo#v#12;NH z@NbpPV!>Z$+tslX>?&f>lehv4nrsa?=-F>~jb(Ils10*SX;X?v+ap$hfsi2#nOm$Q zlZJ9gYlc%uQyX19z8&t?0uuNDe}CRRlK=J^94P2+613J~QNN~X8^?9sXTR|it4}Q= zr$l~w{u7dm_aBaZ^Gk)D{!>zSmw}Cn!#vD9BlM2771dd4>A{+ zlub}T&#Aj-a$Bik2+o@xm=Ms?CAMJ%Wl6^$k7Wc>OGvh{uwL26=-jkp7S8fKdW#^L zmqk}WjY!fKa~vLrwxg(;tH5|rSp%D$6PLJSQ3Fk|CzR>AD)VkD@3jd0{lXx7DvShq z3b#zu7Da6Fjn1R{Q5OjW!@n8gwFn6JA>77ZZAZe6`TU_OyP0}<3^8o=Fm}?uWF;S2 znZbMOtmzIa5lXL1{gA+b<}1iMDhjYlcC*20RrZu`SR2f_LSE?a8b^XhnD1VDcfmS( z5D{E?!ek7ZEq0J`T&Ady5L|JXMh>0hjEykM+{8?E>V=XF_C_N=9(2b>ORjq7hIMF4 z?V0I>SVyHs{RAl4>$f=}_~C9;2ASl28?&$s7JV49Zw>D@3)7yiP@J4tkjuCC_{sK{ z!X_#+p*c(kiSIdnWWSvHAcXblK)cey_Xyb4bs6h}Qa5)C{7S`KdtROY1+c>zD9rl4g?GtWR1(<0+P1 zjY*AB9^l5{+)k)epwyW{L#ScA?4GC8I;18lm&1OL6*}zgyE>3q3;8xO$9Hx0n4jP` z%`(k!)rT=|m1TqvO^x{ji~($gTcl#7GOFZ9aUVgs@M9ouZf?HY%O1k|K3Fi%QMz8L zqaI>wO-q6N$NZ4L;0xR)+md@_uI`%?*29Fn7VOqd;%Z=XFF5iwAy{#~5gfj)_eNKYdY-u!%*I3T&18WH5cZYV-oWL+Z+fl;F_{ON+O#pb2) z{zDJusDcIl=bw&QclRZ*$n>Xu<)Kx{ih_BD;kuy>HTXNdH%dsGq{?a?)&R6`2flg_ zg___2Dlw$OT!UF1-7in3*|Ko*t$J!nm~{g*Vt*X#aW;u#cGJjSUhjuI*xmH4i%fTr zEspPZAb$;^Cr_1?gsN9RL+-`5r_lM^j>`&Oc8{WmP8@>8{5zd&Wcyt4|Sb-d>-|ChaY4-hN zS*0#=Eb#tLQY^TJy&cCRDUX(4?dbiH5=b#G`UelpCB19)E=tFVcIGkw;4Dl?iu+03 z7oB727^6f$J;k#{%$atwe#Z zZ{&4onK(iQZM5GQ@#jkJ-ey5vE88eD>X+q$*7p-~2qJl1?kGLDlx@m}I&*;jfTXSP z!?s)+%4&FV)kxJ}L@vvC_heGmOo2RN#FgjHd?QI~Y886|Ez84XnZlnz!|Om-C@%d` z2U8N(Ou)zQlu1kH#twk`1@_F&D`SWlk@`=IX-BLm^XL1V5FP^#9jE*fHdOa`V~d#4 zv&+UxmP~;NsgIU2P7V)u$yQ=!l1=R-zl4Y~U?78XGJze1y6EiAClfgrMGb#oiXf7>64`ttXgSBtHi9?wGio znnA0w>T%?S;&JAJ3GJku9Gi%V(b?8zV?yb) zV`CvM+Jv+>RdNx5o4#rta-R1oJFowwT~c`6EQ!VO!usXLGT>d-pvtw%uE;Cd7L z#rNHsnKNh60S*fK8nHnsvP0{W_gh=QMVz1GD|R}g6Y#NFrlRdT-u0V({>1z9`kk;V zcn@_k)@L%%gMxfyr=?kYD&o5{zqAY2+vc!z&lC>->-z;V(n~tycez8;e;by+H(w7R z!S8e$u=|Jd&sv!I<670BrPIi9jaR^IemU3DJ-KzF+)&lh5W7-plh>*xM^)(2R$!bCzt@ zP}H`NV4%=VT8+nTZ&2s^>nj#E`U(+y@nfBAz5Cxu+$Y1azT{3|rAt9s9D9{GkT?}Jy+t%!x%(v`~tu&?AeBV5fq2=}!zTxiWSv^h@*6C@p6CE}t zEnGoGOkS=MbOWjTsin0vmvuqB7|j!d@ORoRQd!I4vPBV7Pls3wzJUxC z4d6k07Fvd$ol~!H4z`JCcISstukxfX^kbZ4Y^Z-%3c{&aAdnrVWV(Gl1ltKWe^1wc z?0!vaC(yUmkJ8$YFlRhu%oaI@L9ckbLZH^%?uwl*D}Z;71ndrQOSq44L{dEAxxtnU zZp|;kUxhEozj#h~A~dfAsPFNA3d=rsCFRIZq+XW-LP9Wm0UNQ6Dk>O3U4x4m4;@t%72}x-7%S=cDRucY)?Aw zL^C4@WrGU(u}nxsvpfj98B8O7WrOznu&hW&Gdxhc?@e>RY6nGq(F{%|Zb{QU9=gPt z(0l`|1C^*CX;q$nC%Y#xgGdtP;qSZ;F9xgn;cHs70Gau=i+b-Kr=Y)-MkRZ zy=!3FyDnDTmsq+kTy*KGfZoQ<1%&ghX1s@XXE4nLw2OR~VBAYtYRut0@Q+=qBZ9pM zN9xr4ZBBa3KR`oi8+jWsAf}bQ>hV>~UMp*+mQWaQQiqp_GzO(bwJAo98l?-zd*RfN z6A>DBRLvk(jBQ_P{60bsJq2Bt!zDg9+sf8cV^hG1bsR`*6DmV}f3T0n;L?hS#`uEt zi?)o^p%ljHeM^%Mqx^f>e3f4*=^}1I09y%bboro&R6zSFK|{kOd_(4;S|@abun2QO zc$ZaS2VvkPvw8y}|I0TZITH;TrD1bl_$(%*_Fu|D-wvEVGR+fm? zA%$IAs^>$}fXh;5BBo4Ix$ggq@K*svNzL@5HT)NrD+Hewk$zAu62#a-qxzze5f(mL zWyA#@ zY<}8-{};r9Ln1e@)MZQ5qA|0Y=G6hm@vj5mi#!6pe6vG0%!iF@b#)qDeOh-8lV{e>3jCkD0jaKqf$D#xu}FRV^9+fDSvYfQ>7B+ zL-nM4fGzcF10Mtjt~1~-1#+y`qu;{_*EQnW1b>e8-IUu1YfE4(6IJ$%Q_~xgg&ijQ zX6CK2)@gs|Y}G$~d#2N4&bu5zp9`eNHUelZLmW0G;?dc3vvqo}sM@Sj{CU`=1L89r zGRZ-lmbRi!s|!O5NaP!THNIX?Neju~agW+$7T*HDZWD)mhSN%(H@UHnWl-&~EN#T3 z9H0Dj93PUSl8aP`msjc&tDj_%sLQHqljg`2pJT1Y`L}wJcJ={E1<~Jm=|9fJVJWH7 zf2}|g462H=oG5;YQWXuWiu>~;5VdfqBWLn(FlJ-*MacB1meP2mTn{#fJqCd1q;%^s zqLuogN&|I@=`EsXCb|{`V~IwvZK!h!lf+z1f4?LyrVCY?sk3PmVvK2o*|{Q*bJ~)t zHq!`)T||f2c_m1N$GNj@B$ScsW%6^ zCA8(|cvGps>7S>E+5qHZo>nw50(-#u1C>=(<<2v;T+42Lk zA;-NnP}VqUgXZuv9`<`3^JkTpvwCgPDoK#FM$x%C@^MP^Nq&y^W5oFq)im+`m4}s{?D#P zCjj*f4@|}d2DAWNU{F`fdN`2MpeUv5Qv&`kOIV2JH_S;;`2)^;aw%}YFWOhrchXuF zR`+>z@fY;WfVGSjM`8X`X{9K71DXAh%3Dd&jC^OQ7rHwzSCz*qIVL=ycVF4vU z5hnWgHyo0KpBikX;CH&9q1_Ui8&?7Ha@bLE22>ak>GR@RT)ArEm2BcXd z2l2n&>X?COIAGs?zHaIItmp+OR)IP{1b}PNrlo-X^x_${nSiA1FmQW(!~oCD)|3G1 z006Qkr3Nt;E9J}}Gc2idvXzK_#f&*KBZDhG-k5=HXlzgCPhrfpndOBU+~{h@O{o>s z&@_+rBO;=u9fd>3mq`VrI;HE9GPQ_^6OGHDk<`x!)_pyj1e?U@k0}1uOZi0<`emD* zH)!yQEfI*21X}wg6>H>@Nid7XRZ_}tuVprfyKRG?s_uHL4|G+sdyH!N?b9Qe_qV&7l)ZTnh-Q_SUVeM5_uts=c(~N_P-G>43;TtX z7tPX(MwUZZYL0dYMBKYPJ5b|WR62q%UF5LpxhiT~h7Fr}8C01`Wl5~8L}b4p6Gf+o^{ z5JwTL3%Vk>CeC|z@Aaag8#h-k*Z227#-(AV8hoZhE{NnRcrHy#|HUAQzBQ{b4T{Q+ z&=L5mNjf5oVP?X?UVt8DOxouvJBP0IloFNt8x?Yq!vBma^enkXqECJepPv_n#P0`c zR#^~X(c;DhPdJTD6af!LNDYc0DG*$8#YjD9B^)dTBdOWCC2zSWfs%%$s*kYZiU`kJ z;9Qi!QHjJYVpC9qmKP+l_9z3ff5OZJ1t0qS!ND4AX7E{1S6WKIs#*V7=730k4>0Kn zU;^sjm`yYE0{?ARO5iGJAA%Ey2&pwYNNCB?m3@q+Ftwi2TFQpDuB_%&2E|lK_{_~B zTf6?a2>%Ji-jOOMg-;9sUIh>g31EQIwZS{jkG$gSfa%MD(<0D7tGJa<&XkO$imAFT z13|FeFA?ZmwML(*F;r_vr7@-Hic_s$JpdcL<;v6~F;_R!5kyBY6 z?-Ld#z5N}30O&OP(Y;(5hhbCK6U>v(DxI@G4e)uhV!1q{_(49ou}6ZZ+fTXHY3_Ek zW|?2}=Zndq`op>8@rTYP;CLvz$qId8_^FUg&)#a@x8N7f?Mp?;qp0`-+2l$l+t^AX z{Xl?yH)r#w{Au==?}^D5IHZ&Jr*lmKAjJo6>6#|H1hLN@RA3=pg@byjm1Vm`j8MB~ zx0QjM8gYOpO@{-1z#fm3HS^;3oF{9^!nkVGBXwnhvn*nhviBkUIB1TtqfxSSAxV@S zvCikWwgE~{A^fFpD!tVqd^K-u{qiUQX<}7XLb{GlX|3pDOy|+L zFDAU) ziaTWaBj(5~*xgxwGg9uRy^McG>qx3#KBs+(!V`tZ3eaW2%5+WP6#1wMl4ZrpWX(Sq z)L~|z+$PE#Es2^UD)LnoEO%{*no>1ImF1T1D??3yJL}+cq?SxAAsdo5MXgHqjyW5k zyVs#+a4l&YV81(ZIQg)OVdX>12$oTvRi0U%U7lf{Wu9rCZJu$Sb)I>ieINdrT;;vh zT-CgVyc_+_IwD6p?wFYsRg!+N%O*w_m5aX+(mGYon|trSkrh^IQJm5`WyV@hTF;wL z=Ns_*pHeNvkZMX zp>@$%81A^?gH~O0hod$tj$JJ}zzpspSG!E_Hmd9o&Lm%}!}6@WlYDr&Osbv{WK=K7 zm@DQtJ32%^*4jHn--nqou8}s4qvg22Tt;SE=E#~PDml6)K=NXqOhMSxis1sYsAjAW zPb3)+J31C;PF#9h_udERMFcPUNKI__Es`2dJlQ0 zzT~$woxHEMG^?H)aEW{lxJ|Q=xKGlPxFKgKa6i4_w=|z0EN57D$EsR1{iIRL#2zha zp7!ULHB~-5aQ}K5$sVR7EKm6(Y@4@g4pW@1i83kK!mr$iDit!ljwt1ULro)sLy#y& zP{^%kd2YlLM>ZF)BRFpkFHe{y+@qt zJt6;Uol`{mj8B^~{T!5<+uK4~Ccr5iFd>QIE~ua3CfAgKs)N*u^T|Bj&v z9=vkL@fIf)*e6-9O0VRJr}G_^WN;U+Nm|?E`=VSKLxPkjxy(8YDYaU{CTEiFj9_mJ zo6^>g1a2R9$*?4>l3^oq$%_K`^!(Y98(ImfWLMyBPZkD&&QBB=vAi|`MRHpEXG^HA zSWx|JZo3J;e7%G_m5{l9BT)xFm$_%;+@Jkn!TOtL zEZWatKmhW{pa8B6_qz{uUD2lU+_t7}jBFSr!4n)mr3fboGk^`F5oNjKa4g!_z>#M} zBa8Ex=j9l)LwEr`Bv^0Suz&@7YyFCi3O(h=7+H~W_x$uEks3d@!P=%64u%ATVkN|cU-#-ej{8TS@8y;wmTb=xT}p-`mV)L# z;2KhgtWmSsdBR!f9R)dQO~DAxU?>LtcSjCT^+P_}gxaCuZ^*&jqFb=dngrU5sLdxP z5VD>y0%2Fyn)|u1-a2~j9*K+Y9zjF0zCpdFD;~KBN}uzob;#K!%z#Xu_#T)_1N@Z=d@_}eqF%wJ4q6e_ z^Rdu~qC28nAwxY3S;t7HwHuY#cQ1qx1d0Qw=!aR5pQeH{9CZ9a()d+g_! znMuw?5CWBX7uAz-Zq_k?J?vNMwD|LT(5Q>UncNvgn3NVDJ!M)fH{xbFp(3_1qx}cA zAn%P0^!td4b8#9-rPr`wt5JSL%{G9C8QkCxN>Z`>c1ki96QV2MD*9}E(Nobg2!moA zR6{#K<%_|$x@WKc5mk48`ecu)djLbtljgYy{IPC(eTAM8u>lo1n?|o;XhC8e)vQ`I zi@t!(fC=G;DR%j;3o1XTG(Z+qC`M?M{1%B2iMZ#0|4^yhDslI#aOB6zV@5hJXvS5T zYDW3p2AaIZmZll!*L75Ro9G9mUCT;~b*OpZH&O`cS%B5fPfO-2c!5V8d={Ie|5a>Z zx(z?jvX)7m31@`ABTxe@*&Q_uj5|hCWP>t&)qpA4`ZfvWFHa6*P9Td5&1QkF^@@!9 zJxVqOUN&L6V=vGNFKDDUDBmlEytL9Db)z5K1mRqeh%R7MHzcaZjQuu0yc)DRy5F06 zumk#pTOIfm4HC`jPEX<2XuZ3@4^RjgOpay%VPu1}+O#};a8He-WXx@9@Oij`VXnIx;v-_X2C(4{ zD8nsA=m34`sDF^Ddm{)89(WbG{9QnO@5~MVt#vq-Lhl7m`ENEo%oY_kCiDL4$Ol z4v$k8W;OZO%r@bOKfMD|Q~Z5sRW-s9{~~s|6gKnM%?N|>7(Krpd`L^HGcalluSg3w z)7GvhE`hYrDbLfFD^V+}Q%9jl0i+;;LW9HKR7q%dKDq-0Z27~19!V-&$|pmjvZUmb zt5o>7hE$HH0%y3OzQqKj*2fS0pgNVwn(iZA&1Zh&4SoJ)os%2-=v$$pCdNMt;|)v` zV$TUTN?bY@WKxNqc`<}8**mVhGotx$FOAv;Om6bHMVlDq%g?YRH{&r{@3#)VDaW+? zVZOzCLPB|ob?`W${H|ZZAz_`UK4Mhq$9t4_pDTr!|Ieob10FBksd&+MANo}hi^SP zCRCq+$pI}rN@aQU)oWr#J`S(O8oG{_puir?Jmc698SUxiFQ&?aL9!Qoo2#Og%y?+0!MfoqQn2mqc|Hq^4X-*3)E9h~&L)S5mD`w(%=aewXE7dgJy`^0`)Nvz3 zwsc2}a*Q?SF6sJ10VAcu!u{!2ObF>+RG$%|crrI<@|Wpdpk!->5sD8-ptSji2Z~2} zL>Kz5B>V(YC8JWiMKPr5;=pH7v8qtpphT6@{>JwS+G5|6pgK=4_`P+6K!C3L6BHX{OZIHMfEa_&A#iHZ1TZSF=jzH-zvN?PSl*(h zxS+YSUWro4pNQC@Iidh&OgB`lL5n*YiD;B*5o{Umn;8b!K}EkD5uIQ3YxO3IUjp1px~s`(c9TJ09H*7 znUSar7V@){C+Z=Wt5&zciNRx@pAnfC3+^PPj!;n^LFfbAM+$dm-2Bi$@n8>R$SyG? zp7%HJ(Gv$-3@DtS6LUxBjLLT5*XTNjh5}ZhVWFf_4r$<-qrd0^kyLr7<5R6eh6%Ts zA;PNxV5BMhg3&bXA61P_e?GgUdt`Wocp&W_7AC*nE@;f^&{k4?o_;-vsRLm1$}-OK zt1kc^asxW4o*<*2I(UaM+gh&>xtd%SHO==ftG}lm^OPR^q*`wX}1XSPvM$wy^BeX1%MzeIve8-~U8p}4F6|$LSKtn%V>8tJ; zsNVjmNO8Y~oxGdMf%Yru*y^6)B@E+HJ*Cfte58D&y+Q%+YAgmu|1C5@Gst*B zT$>g-VO%lIH51O-x1el~f;@cgYyMqsp7VRTUb)=VH5efHVOI)wVGQ|u0{MuGVw-cX z?|SVbDqNaXB0aLH??OXI0Ux@!p+lcMwN^yy_cq2mcwH?VfPW`q$_>3&OOKXOrQfZV zZl!*RV+bFUR>ne5X8=~RMO_e0^@aQ5auR6+_sQu507gK$zpNG9-Jw400;(ar)34fl z3)c`1rPZ+W^Ejjt4oK?CHfhgTHA^nI`amk_qcI2d+#UjYzV4AoXefZdCV@6T5^SJ!78%$$Oe@crv?4KJz&{RK!N7qL4BJU zq;&WU&A;Go69D21>dLG=X~s>iUwbz=iFL32O59$ZA)AR?+FgYayRrZo z7P|-#XFtCnKCjU3o&3{GASfa9i>vkJsf`0t)JdvuyF9pZa$aSqg*skL2=p1>wPUyb}eSn;P5Bizx^G!sO->CTmeI2&0=l|V{X~(P4mkE^Ww@@ ziF(NLJ>qA0rL7o6donh=LBZXa0ai$Fu8^xcm%#!Oir<~*-?0TsY5HWlL4n}#^tFpm z-roKStT9>Y7NRIR1#8>r@VH>#2!Cy#%>z_dS;wEeh`D2oOt1s9J0}}27C7{cu^^h- zL)e_KAZdN-#+SfkcS{x(IBoWnAvRI;An3E8Bndw2M^xOz`4{mh;h5clr&D`(5aePz2e&+pHl z;BU?A?RvZA3tQmVz{jBdn%#UJo43>L_QzuGcJKA}bK+~K%Wv@`=#B3xR_O?poVAuQ zYC(NGlm47^WqV784YRVp%hs^b8w#%hpFd^M!M0Id+$|*7x#5w+ItrVGsCAZfdR?*i zL!0S@hT-Ii%U)1_^33Jo6)h~f_e)YT4fYH@u>i7ooVMZ-nk!Izl-#E-E_oSBVu{cq zbUTr<4?<$;A>I2uCYc4jcqX)1HJ(i?H%RVn*G;jLM?4Ms;*mh7mS-=PluD=SF2tEB zSHUUMyR*kMoQ>s>wg48DLbWx_$JHdjuzHb6mQxoJ`)2+3NmK%6F>{*}u+>M?vpSx>? z4aeBjnUp!Otu_Rw6Oni0BQS}Pnb5;i0f(o8c8^EUcjq0GE{vsM13;ktX1<2F9Keqo$JdU8WA&(l%+`NVlLJ;t&=S@AqLz4@`VMgD7~7 zh_=<51w}!Q3~fNjkE99I#}#!DGfo6;c!*gL5Hm{JrWB|COH;#~CDO3TOILjk2x_s> z)edjGvq@3k1phb%p+QC-RsSMEIOa9hM<`ByCmrItVKJ)7#6~NbGKD)_@svhC$XO_X z*QJ+sDFStGH2G)n>$!*VWTAEfUySkL2hH==(7RU5Z+vF#+2KMoolH;dT!W-`` z&FML3Cg{9(4!|>dy@wn9zsC)VP z)Fv88ZX{ud4)1CLV~(w4)6vPH4ToqG7H%-v{@9R@QS|VY>byFLDvhrDt0X%bq^$*a zcE>Vr^wlw+6`9788+|DYeW|CERM1J*d8uMbhf1HHED&#Hvc=3sNz!_|L33C3{2npe z4eCAc(`M|uaj7*))dxL$I-u%90DxXSU-{UWHLYCby>VWvxt>AAKwxd0tt;P0URm3&_Z#LftL z%fCA$?GW4A6hU?cSi4J(iP9eP4RtmgRVvzHbyu9;ofbZ-bEm#;Se(AZyEJ?-AG}2T zf!4>x2StPb4V+QHbVD%aMD_pM`iU)`YRaD?&7Uffl&WyVJa>#hGUKS<9(cg8}rL^al|>CbiY++qiTVPR?gMw_w_7y$K32+%rLpylHef#rd(Y z9=2*Sy!a;quIUO7r`&Bzc-t_v-2SB6C4zo&>AZ6k_+and@Z$e)%8D4x{7B{0^2_7< z`&4V(iQezr)bE@|O-r4evR~44T^dDozSfmE<{f8B=Rej>(WZSkHjQ4->*o6phzSd2 zjhxP*IVDWf&ONs^($V+d6kSmE)j&A?RGmJrz`x*q$k8Si+N}OqGg>r5Anb@YuD}zWB7Enyc_6c;)ou{`Allr9Kti?v8#|P7?$OIRwk$?h zdM&9{r{4=?1NtG5V%EdcW>m&qo+4@gzA`CEdUs!ya`n)KfA?dWGCMYw+2(a@I7cQnC;bn^ zEwB{GE;S;{&pxLz<)xj1k>)P(9CR|AKeP<3*b(@eJ#5d=ZT%U+q zVfW3oK7Z4)B*B!8sw#y!pAvI*aND*BY0Xe?EB!W73{0gg?Wp<%r$q3=T3H3jwh8`( zm~L0Hio6ooK%t8yD$;CefZuez+b9(4080~G6spdw5*j7razfImZ%kVQdA;KHOH^Hg znSZaqB@Ep@C`n{RVsNfp+Fryz*rC;;?TMxUo1rB%ZN2g!Dj9_C%E zCVj|24sSs1NxKZPM zLGV+W`f(h4wpk_#ca{lzy98Cry2sLr>oyXcL~a3x`ZgPzY9myT`qmtM5GW6mMqNJz zsZ>iVMMcuLvqhyt#$xMF#N6$JOrT5b{brB&@Rh!m*~_J(W!8Y9T8o2S+!^|#*S+a%>qe$Uw6{Y=`zxukimkiFLeb zGg>7Lb=a9Er#50`#(b^;k1Onxm?+;AutYZlq841RMDFC&oJk#qgw5LFmgjWd3yxcs zW6LF5YEM7ZEiPYpL@hD4=2&YNNVY~&ZRKQnKN6!20cuYr1a^HtU!%Y%eW~SRp|n_t z?S9V6$%R12N7Q(#z4*F)r4#H|eee$-Lz1Knkf1{#h71daFM9p5BeTCtBULqSi>vot z)Ge~!9jbpmDrU#B!wa0T$cq4QBOLUruUa}l= zu7bfLqk0A0Q8_VUM~f!Zj_iO|rDmkeErA)D1JVvP<}(A%AjAZ>iHUD77cM}a_5QG( zrX#d4#3;$w^pp^l(tI%?CF5Z34LYYn1_hMECr`5L>6Qbu>ni}A*iF2}wNNiGkh zD}{;9s4o*l%e0W8!Aiy*ahV;Z$;n!7PmlSvaXfKS?dk8D^9A6e-8~{b;0cUf9K8TJ zUfU zgcWQ$J>pGd40t4Jbyjix@=Va~*mT>?vYZj9>f1X6o@Gk0Kka7@#El{2@sO!x5DlP0 zzt91;qXBD^UL$$Sb-dhhx_?p?_g(M^KeOMVQ|#)6tWB<-IoUfw2S0f8sxjfg;*bFx zaaK2LE9?H(<>en2=_|0{t|4dt7tgFW?@~&ExiU3u_)ERS#_*$?@|Hz9TF%fV9Rpgl z!8+WnI;y(^Th6KBP)7nHQv)L<1w^DaOx|Bgb&%#eE=#OyHT|&+w9z$-i-7Py+SNe} zpKQsNBcntJUO#$Cwks(j0c{&FlxE-R)l$+v@Lnq)vCwM9Ss-iN|5xr%3; z6~mWNsDL!npGiu}0hH7Mm8khIsx?&ItcZm#7i%*yV3;oZ2RsZ#W1Z++Gj^eh1z*O^ zdo9-6G77?1>9i0zA-Hr-lC4Ilj^rBY?dK_3F-4VsZG8yts5Ka{G==Jns5YjyTyx!v zT3M&EqMJ~6AcJTXL@qxqbHv2)QmJ5)(ICp3_zof! z5G8hp?J-V5&sOlB%(r}F0DkrHf~<=jHGSWg;h-1!2~S--8*toeBUJu^RfIqVif3Pwgq#1rFH-R!IQ!x&6g13NR#zp;FtpgP6{F=e!{#gM zG})9*h6-z9PfmIyGQO6wH52qeT}f&r*Va|IE0>yT=mhawBc!Y7Tp|7XSEi7_oV3{B z824&DF-kFGyF=-lBpt7oAhPYxW=J}tb2tp*56tCW5N2bAbaSIClr~+;k^P(Wn9)lb3846jUHM zwnuN0?EyC;K(^gCB9(>p)#z$kWQK-p^}H+DC7kdL^9^n)u~8ocg>-4~5-xyK5uu&; zOZ(>QVf~boMGR;z*zF5FJ$B%Ga5kSG@DDa?zbCP{K6-4O8@+=Y5(`d+Innv-8SGgh zBS0X@VZXWRa^oPAHsiV|lNG94ravo};GB|<9=6swRwE8QvwN}OJ+mb0UC{w1klC=I zAEibSO!5j{slsVuckr0QMQ;=kL|c*w>#IbSE3;OJ6cE2UC|YNpj@c?Y{B##Qr{S zsDSGbKBVT2@zL|-=eS`d3Q_1Ios|)(wyF6-{bzq@x9l^KhZrR6J zrKY}+e6;{Wl>6ynGfgV_cHr=ULN?GzQTk;}0in9H{zupLe3aQNHAwSQ%(lKE=^&b=degF)pzitt<7&D1_6FRm@+BNra3EglJ78eoD(9pf%Nt#S(FLQ&rUe z*TDxueY7J~QGr(tzNalYz|c{k_HHpFIv}A{MF!G!yv*PwSe@LRtPT|iNP9jPZGWB$ zl#g5(4jf1RzoyXFHvMN z^FQO?T6;U_(ThZsQC-+ecy)ivi!Nc{FKJe+%MYcmZyZkG z;z5k)x0$dqbT4(xuy$-na|VEFP68X#vx|-Cd2k-ZC6$a0vuP#f{<&wX?C70bL6TuR zF}Z(!T3a57W)J=0siQ-^uGP}L@Tw?abS`)LgLoT=FfIPNnYMSu8~93dt1enZ+ba;b zvJ994BX1fwU*DT)&$Q<0Uaey8WwPolof_x}xCn_c3`$|-#ya6llX-pOuu`4Ig1wSq zh}ol7WVj~4*F{Skc&Dn;)?uAmFAg?CR=U-U+0IF{KVP(a1q5+yoeNe@_bw(bHnBXox zYTu17xw*{@drha{vWOeHIOkqzuyU5-A9s3W=k)CA6IdLOlNQE?oPAVcO1#^15u5F) zGSqQ`$2{Xfs3QopzL!XXdVPe)M4Dgw6B;MIA4msrx`RmN8LAI;G@`>W#h}BQjZcHw z(%h7wGvN>w83KjXRtBmxDO~>qtaZw8kN6_oxhruzp53w z^Gv;i<|5=1qdeSoDaHb-9j~$iX(ZGRnv_Ohg3VFcHa}e4debzT7|? z@>H_EAU-k7^L$I9DnY6@vKHYqLda`x%d~kOzt|!-U1g?(nDQvBi07CD4Zhb@5mDQT zE?iR?mE;fuM5--siD!EUiD{6P5Vn5TPgOax_TVB&*D&s5J2O;gU%2_%lo8QxK$bYo zhPjj)p8}OYb%K*0R=vD<;qhL=Z#)^)^fWJ}%^?*zDcSw^P2I?6)EiNU+!BJV>Z+Y^ zJ(xsrRqy7j%WI`xp4=1lbPvrlo}3W%SYL%S9;_twIN#)4?f28eQa4+Sq9won$n)$C zRaISncX$WyA&{_JBRPtbA^_#qMpL&-$TWDLsfBz6GhClS_4Ev1!Iu;ZC zlQ)`&of?zTr$yd87v?Jv^aJFz#rO7k2mk54Ngw?umM7Qs0(V1icFq?2Kf4o>zi< z)YO92W(O}n4PL*$`0+Kr-#=jR+iM^+6wS|)-a~YGx5ds;?$-}Ls*x;e()#nJrKbJ` zd47g|y2r_~?6?0G(0890^7|0_9{7CF=2mbo_dN*q3;~Jvj^}^ie%7|zDw2ao=nMSg z2M71jp!F}@Z;wHJ&CRo<>lv9T?cagtniaVP8$$l=)8ka<1`CbMzf>gI#4(Mm_6Fdy&*~L>t+I0B^V{?h0#ob<9uU|R7M@`OX z9NEVIPGB>hps#;^4oDEV7ykJUce;vsKO*%4oD2ob^k~h^zpr5~iSn{&;Ld;Zx4ZVP zBz{1^01)`+W_AX>5euaA?d>N|{@hS7kD{CZ9ejmu8}3<7u2a6??B0%zfCC3NRi=^hz%KqR0*uHheFb}1Ub&$ke;F9cBD zY5(a)CqFBX_)84qExP6T66L&zN}hER0{7Wl;OEx2`#du3O-}#*-475yEG)z)A2?(dK1<^!r&{2rV3MXPR~n>|Cc>ENLC3pN+SJjZ*4Dm_f( zk(a2J2jIT!P;MkPEG`1Wd`EL$uDgYg(02j#^%*u4ujRjZzkG*jWUO&6Fg=FCmm3}m z05Hp-??G?=pa)9+p7-HgR0yVdyLtb81ivBm(;#^M&-bLbzb>=7-8|pd5A?s!$0|NO zzo#2F-@UgT+t)pV+dff#{WLoLvX3zxQ=6pHTf7+_7tf%Ejx+=Pc=od*XuRh**_vI; zC)YID9j=%2XW240?w&OZ49;xr;#=iH-RjsIg|wI zm8xab%iOA!g=s7oM2!lvwaN*X%aBMamln^S&L@RS3|9B?Iib+rcf~EeZNHzJH~!zB zJVav-&O{uMShBHrqX~y&cc#GXf1-&B#w?r(*}}49M&p#mG?-$eNsz`w8Ny^ql*UvU zqNPcg#$+7=Jwx3JJzL#6s>iGWn?`)ZddIB)ALQh@%X60L-fh`=yvlo)`QG1rF9BTQ zxrA{`W97A$wN|#4w^q29xmUWDyH>oGy;i=KzgEDPw*_7ZUkqLlUldr~qejG<~!@M153!WM^`~YqaH^&{wueS=}^zM0`|yWPEgHcKq)=(B88ywJu*iVLkau z-`Tv~z;m(OZwH;=a}6>NG7&TFXT)bHX3S?WX4GdOEwfF#L-!gZ=B4MmH+U3>L@Wwf zky(>il32B)O(V%vhej;g-Dg}q0z;*i?Ip12G=@sdU(@FTIu%*9vAnZOGioymGAc4k z4ot01&7oMGSVb~rpIFK=KCo;9ObbfYmz)w#ag+)VS|{2^uxukjwJHxJS+|*B+q8#j z=Iu?eYX6JN_Ejv}A)#6|2dn1olCW*6O|nWQn2P_ER&3^MmTVSmR;}i(mage-15G+Z zH}fb7+^j;b19>}GwsE1{5_?6jmbMjd1MFW12W^OO{d+<8)$&eZEMcr-`$r0}Zqh@z zYuWSJ%h`+BtIfPcoK>7busg@^P-j=6gJJSg|3ONjj2%!j#tLmFW&wX zelH^^wCGhklyOU=R`9LsR(!HC3&oZbEVOC0I}$PZYZOe)+|wEN_ivV_7F840H+)X9 zsZ%SC9`SVekvt+frLu}^-B8VCunM-v?(B}4sabIR)ANqsuO|u~1s0{LStUJ%88taY zw9B(AXciqFnzp^ETKTvo8s#UEE!#x28ihL5I)yuSbSrdAbZfQqsRDQxkuV}1Y)T0= z97gIDJqId)do`q7E5{gij@9h!vtHe9!EZoAAa~+-6n1o*UE$g1GO~}k z*SNs&b0=L=eOiA?Yg9G?g_=_}YmV5>+oH5>5?vZyB3&w7GE+8dj@-@Lvb1edQxD&O zT`kP%yqi6nKARXHzBLE_ulcX>tM=+%!d}W=(q1_7Cqj>M=5m&D7IIc||6FDVo3t9l z90a;F92BN>79G=Cwoz%_RHk&6bk}z0cb9h;9ot%tacR|xPG;pvbKjbky2Drr!`Lww zNV+HD6J&O=R*wGw0RaB~u6-c2QN&i=)#ez$r={_oMk`>Ov%IfOk=e71lYZFpvM^X9 zI@D%b9M~Bn$404j8Q192%5frzm|*aN$nyz^+z(Z&0k4X6SQGamCf zO2?TJII&RX{3oUx@g$bH4+A(~LiyDJDk(-kNJEju|9@xC`fYTU@ z(wM2!Q(&}5`n{D+SersMrmBrrnX%Jjqyd{EHm0o&pfYNt5tX8S_eM!HTba9PNMY6o zu8mz8?b(~c5Syy+Ot_*bQ>W5rztU$gQQ8F!a1jL3}Tta(vPMg zPf462IcNNtVK}A$%GgA_Vgpp9S)FnL(J|^5{+jhvtT<$f*TCSLQNxm^ZeN{`otOxsh|qi9Iiav0WqcqFrSR6poUOK z9Ix8*Bxs{eDgsLLN)NS`K+t7{brCcu$j`DyN$TLxi5lctgM%06VVKv_u4tdm1w^`> zGA3qCPU{`lJZQrgWEaET2TvOH{xU|$E)t#2Y(YBXbcW0uEIMe=XiWrJI)kV6QXAUJ zkLvZ&ILvBY+>})uJY_R8|TaVUZY~F1%dpL{g8wWV@xXo#_MsE!#)}UQ^y#0g7G&~czhH_0ibM>=#s;v^ z^bPk+TMcLq`%utzjce;y))}{8UP(1Z^dLK?2e=7o*E+9w*pm@qrD5N3ZBtD{Ca&(Q zj-h;J6^fw_2ihR$rE$ljjtbixwmj?sQYxZOO)r=MjN2pm9B{J7mVt*I-b==CvImX= zK;UJCex#1}SZTv082Ld#6FAO}44^+;IYG=E3`s#v?NS02IN38gaG6spU^8d6ASDhA zt9P+{IYF4)EBPYZE%`LJp7LyN#1vs&n8{NEJhqr^*;)fN$Epq=+m^PlZK+ygHD_%3 zjS1BIYz|o+wB;y{S{+2nksUVMuC>A3cYX_g;BE_kaVeLcPh_!U*7;e<(Aa2~}C~oBEFlzYDu|X<0)u;O&aJu{Z zB5td$R85kJor@72gvUg-Xiiuek|r#_+%XK_5%}Q z5KAB1uFUTl-!ypF&1su%8*W=~>-1M|n?JIUD=ln{_NiA!vkX6!X&|zPY|jjAwt&~+C6==?r`w~#vBdmO6*4T`sGbckRul^DGeoA!aH_G%TN2{w>~@ za6EWNtTp?^?uwbtBkWg0YYW_Z$QMr56_4xM%7L1b!q_+*wYU&fRO@CTi@y!U0Pkyp z!C@zqlNxuv)eH!hyq?HqET}pXggM)i50j*E4XQMYdfV@<>(4Vc8GJ)R)ZxyWQt}Xxxg0?3VoCDG^0$QbTgvJqZS{fPZl4?VzRvoT8~sry z^1XJ;-T&A2tcCQuiuBux^!tj`yAA0#M)G%N=sPRr8$0ZSJ@&qj`e3i}aIf}Yui|8{ z=6J8_=udOZt?tMx`JT7x{mtqf-tq&U`Xlc0J?`qgZ{;B``M#&}y>IRQul$6+=9s_g z$ZPE(Z|%WH^1WBZTO4+;F7-}t0>1nReD&e4`lyfM09@rE$m*T2<$GSzR~_=t1eL!# z6klN~uKHN41WRm=wNmoEPV$|R^m~o;o1OH#jr7|MI%ZO2^bQ^KuVwuGPGnR*-m3U1 z+JImV15On?h145_;(%BIGfEO=-CEg(F&0=W`bZ(eUy_B2v3xj?sHkuq13WSYSs??Y z75jyB)V+R-1M`|y7Vs+?GJl%`RT%?$p~>Q01IhFB-(2DXGkJS;Su93Hk*F5094@os zSj;jcvCE=(4wEAM>v6M!+o*UBtKwNS%E6QfG_PuYA;={F2xEY93S<6eI*?`bl0c0E zSi5O9q%D?NfR-qFyOA`gTTGKcxdj{q`wVD8sRzMiF|JuAe4z~Vzidj_;jBf0KuTa~ zW?GPmQW5=5O5|xKlK^F8=B;LoX=alkmL;V6`DEZ*tkl4fQtf!7Nnnps6a5ei&T;k{ z04r(g0na5W`+!;SEa@tN0t;9Qrk~F-f)^o%Ps($YER-$jWmjYs!$Q~ee%U3>`Yn*x z^zt4uk&K8r2`sIIOm0@`7`h54gjChf;ngNasOpOag`6HD1sEoid$v0Vng7H_J5X!1gwC<=W=sLCZ|yv|-Co;x)m`RN^N>mXZW12;wrZ#Yn&v76HnN1gx_8Y=Zv2 zwEm$o@tZIewDDBI%c|n20+kqw69LK0@sg0mrQnLpKouDQ%kBYCtU=qZ%ITQW2;~sW z;b`RzrU=CHN7DqV`DEz=+5bku_u>{BOc@k7WaU_bB+iL+{MYcZt}%Rfx} zKuxJ;q;HPPotaY%O3^X}DjP6x!aA8*Q18TY{Ff!fa{`ww#B&0c3AtP3`?S+=sok2 z2vEv{P%Be@K`&K)2egJsZm1{9eH3qe9@?Nx_&gn09pk3o^n`qGVxktUK7P4E9Bce~ z{}gN(T2}pX`UK^j_+DVO|6nXq!NwW>hLe&fe}({?3`!1dSZtI~DvH>S$&hW^_37yF z(&*`QRcFAUOkzG7Ckx<8EvF?c`BXMQdZebhqr!#%NKL86x=|o27lTkm5n|Iy5xRdJ z)NsgIv>m*K3pA@UD<@S!=^gYOw5vPu8?dK(!cY8FBE3f}N3cLes44k}4KyoHe%reQ zD?89M&K>)?KxMAG>TW&1X3xvC<34Re-Fw`7{=nM29#rRxJ!W`0FcpsTq>E)cUA0oX>!UzTqbo8QjR1E7*d$XbX5%M7!jV+ID9!h%Rqnm@ct@ zpugEa?8v;z^1HM;0aLb@n8(wA;@(^W$nK?b5l6%`Nrg0=;+fKTAKN@AOJ*wYfL;@~aI z`Bu>^wq$DYNLZBP8e>{+NY&<^D)?s6Ot!>oe=Wa4FOO`FtWl3IP54&G*GISD;;Z1l zT!dcCw?MQ=J3e>EjxWQ$rSNwi&J_-IGR|KnWNw?xLGW|tD@bwx@KQ)3rr%B|X+b^) z;Dq{8T5aI-6Wqnj@{bx$nac-PL7kaM{v6>@52Q>kSYSwv#*N(C>`&5ew>HuU9n)T&B8T3>jO?^ z!~h3l$Val07~PDNWz48GiKF}}0IX0^E=12=V}iPC2cA!ALVL60QURRg^=3tiMsZ$v zc+ z-nlsrdFt*@v| zu_JDbB7j$hRph^#bkY3EQq7N6e8SO9wRo;p##cs&Cp7=4k1s8JPA(4x@Y-c-c?pDTY4My_KlX^!`sVd&>2i5j zzxG_Jbcq4Ew#8poDJcwt>|hhIQRb+IfChQdF&Ph2ANL;3$vjbLl<5_-@b#(&AqI#v zAXXDvCb<@?RFdYoNQnsc_?ZaOBOx%PcCq-lG(G8w{8h?FtB8T-u^6fTO#`1qlt+cM zdq=;`xI&%0`-cNCW)8gjLmsay0`7U}HBl!ooU<0QDm(v!`DnT8OVf>llcz{-09*hZ z7*MwUhr<~8yJItPT(zuj&pXtuE*RoSH26rh*(ME>jzSR2DygUNQKX8L;{B%Hw8*@= z4;BODG2br=KSbe@(+AuXM*?fJ_IrrCxwtT&8WGw`Gkh!kV(56*i*r))rv_!hQ|QN( zSo-cyIgGQJHR~Z(9fvacVm`d-FKpOjNz6$%GYi@HNdh7bD-M$`3dh<*pjn%XvJW8+ zXWvS|*`TY4r$V8GK$NQY4&CUPz`=`&lK}v3rYOQfMzI{ZsxCKmReRPZTKJ8b%f8Es=&qEk?87)!m27i6 zqohK33y5hhFFhwzie9?7@@TvH^zqK{^ITX6pB3L8wvC~?i5k<0s^P_^Wq+kE`Z8?R zR_qyRj!@_`I{9v~-DgTj6L<113s5Ms{y$D&<2t~jFdnbhKPT-mH3f=Vl=LN}1C(%J>i0ei7W)6=Gh zO1ywdzDCVP5!BALE&+NRx|9=q$(|EUf~}=7h%z0P#sa{%g$L7aiEu)pSS{B02s5Fa zf2G)9k-3xBS2AQd53YkB-trr%=M+?X@7YJg(6JSZHZ--eY30z+yn-vOJCveIhM1IP z_`%W*xQ@Xg?CW;=MSexaKq9pO{pu0M7K1vL|%MTm8;Ko%EPV1v0Fh?#8=aQTK~QJdC#9PX|#) zi28VXZ)48e>xxmhTX|hPmW|Vu4PryxCw}UuWx@ynT@bp4tbc0SK;P9du1@2^d19Do znu)pdgc3cuW|egyu#r5e<7YW*PO>xn*KV}yMf)i3%7} zB&xYxGm^_4)C*OMjs5-jL6Kl!5SJ@VVsFF)iIA@#&%`KnNv@7(yODTgjJN|aW9DO= zW?gA_APSy^Bnob}z6?tIV3jqa^VNw=nwpJG{B2K5mMxeS=K{BA%2{g~`J&RLg+-(k*n@@w(n%b`4&4^p)>-9p@61NVQ%iZDEPljBcZ^F8*bXcfs z5(wuBhHHD-Z~U&{A>DNqVh%A; zgV0Ye-6Daeg(_M(^^7UAN`7jfvC-&`#aj2#trpY@9Lw#kGH6<*Yr)DfTpTB~(C^vU zNz5T0-BM%PRAW4`uB!|=3H~5u=I6i1AdyV3&l+d%UM#H@ddt;O%hy9>x$oZyxFY!` zl8~=?v4cd=uzgMz^tO{2=lwYO-Bk1dwAPb4XE}0`oB`ZtG`E!G{C_d4Z&@p#md(9x z_*AxJRCD85x+fl51)DL+W^q*Rb(JubbGDDI-w*Ih_#^?-_i;;F|5H=1kL%{& z{Po}>90HdO49k{&;FOs-sUg0iEN1YU8DWdsz zWK-Zt?P0>%KZqm-~rdnE4oRA5u5J~H3hYCb~$^&VCMkV{`A7LBn`1}}lB z>s~E@Sqe=l2n`nuPPB9JVH#e@w2so65SWRerm@!bb;c*0V@0?6q-i2QI|@x2`o#VM5N#KFmS$jVjJ@? zK>Em?wm7U8;v9Z|?8hli*NQ5YZ*8J5Y*Z~{ky0u{Fmem>DjvJHU(Wtwk zSHKlsdLyZFPq<>hVuMeT%hscq68L~i^s;jgJ)y3qotRzrH@Ywk{J|Geo$QsMTi{PZ zJ~U%DAscE)Le#D#b9u*=AzfF8Tya+GYL9^9?x6ViSYkZ*La99m+j(}=5dgJ5J zV=wK3^RkV&;9Bwm?<0$EZ)o>FW zxhyqBPj1u=BT`$;%KDG=Tenb60Yp1e88pI$@k}Z6Juv}c!;d<{`30&>Fclpq#wQ)$ z;ZDWdf$djd(4#|@cBg}+z@{&Lakwl7MDKxI47tvH3%#b*(;TUwm=nKNzy=iNYBJ=a zkJ#;ai?->7IYeVTWva>QImz?j!_2r&qb3d<>Q?-q4ZQ~st52nT)g3I3+w?(P0E?d? zQg=81yiYV#y!f28a-a9I$I>`lx$8^}vmk12qVlREKsU@^*pOM1>M9r*%*oPNz}BUu|S9NzP43 zLF-y=ir#L2QxSMYr?IhQZsOuQDtHtH_+_8!1>Mz=N-Kr8oz6D zY=Qn|0(_UF&(0m9cyY27I)lc?X!hU8u z@EexB@_CEqalL`JxitnOQ`ZDR(FXvUaGt)x6;f*alQYJ`}$onI==T4{%E<}o7ZY= zh1mqtTTnmUnmwwXCVSR0$Z<&JqCF>Jm4;wsvh@3XMglw4te<|15dST)G&URoin305 zD?9ZvfOF!-D>I+d>#j%(RAN^4RznFPAymStZT+r-1=5Y|H@}z%wMt+Od(&CTcQ^*b zlPM$H)ths3XZEq#W&K5|eves>`0PSpzgEvApjeJONjrA)j8(VLJaCxrPxtEJkbuL&Z1HPdZ8G8aSXpww3rcxFw=VPjddklmdfi0VpmLE?rT0EJS1+mKBJ%f=oNIob=m5( zdJs`%6?6v%dy{L*>M7`vVx5Y)JR%uBDUA{dGL0zttGnQ6 zEKPN1=2j%J;0lS<4@5j{5I9_(tl`Xb$mpBrp%N|lip)?YudS#p8)5`rU1AGwe$eS| z;y)5!C{>PL{J?jr$u3!CiR+;K$5;eIU6i5nYoJMXz(a@EzI5#tsJ+ zg5l*W<+~39zfsC}don4+hjrhY(-lI8zS47=F(2&LD=cFzXp{fXqKC};(1|y){DT$L zvZ58Z!nC;#t%Y6r_&WsFNnH)?|J3~Sw(TU^_Yy%7gJybMWfRdMLJtpia4^cii5T-d zA~ei2I5ONsp&C+g2(Ug(HLVWEw zG9e3tN>~@9uE3^5p&>8I0ei*w65@M_p>e^k`1)MgkWXQQzL4l|dw1d0wbuVjKvQLe zx8>LddvphTdO^2^@SNBj>IfjUzO&%8^9hJhO?0V_%@;W=ylz$Mng#exh!R_?03@^u zJ+TxvLt&mte`|%mchJJ|QD~6;E^~(~y%zU_pLEJSXG9?0q>$cm@3=BSyoeHVp0&)7 z#SoBaZ~iW%q{>Hyq{>63r_k%V@EF!D`}(--9}>icL3s|WulocFEj)-b2TA^C^@^+i zl$P>~hB4=(GOo1*1Z%d?d&@(l%0s5g4bs`Ze83q|kZolaXF{R~B@4?Jr4)$ez+pt3 zuoO@T6;J{wh&s5u|3a%Ix+RcAFXXtgo`m}Ct=7Qd6alEVPhXeyBjUFXdlp?T|L4VL z)L}(xh-e8XCmygTJTxYuNkU@<&tJ38OVb%|5tyi7tN&Wn0WY%gerApOX+X z?w&mP)?vpGfbg7@9~ zf+0bK+ru@5Ja{Y)Ljcc3yL|%0FTZ9iIc$yJP>=oR#t*4PYE$(l@sELGvE6U|?&p5; zq%@hm@>@9oXF!<0nZHn>CGZYL_$oK+8*ECqFg1m-ZdUu@aoM~$3@-EK@pw4mv1scU z7DMCD6CST9iypuDuRc5OH@wBQoa=7n$1mLPkNi53X;JULLhXUCldUzx`!~-xocqiB zf}k!!Q>I5{<3~^B_b>O*u+VEz0K_k@(KYEE_p3>IZoMHJ!Z-X zQhhiQuQ3Sza&8pd%qE1>bc;QH6|UrQ|K8d|kpC%AKT#YEiwgHJEfGE`2!=qwn>Q@h z-WPj3XZKj0-6P?7!ogzREK3aE_73)nyX0_r-G%2GB|lhL;x5vx^s*s7pjUni)WxH$Fd3EcK=S#Qy&w97`%nSePZBg9Mvt(`W&%wfs zm;W|}GUOQYJDMgqE-Qi#txp0SCT8kE40+?Qm3MKD>n$SBXNu=(-Ot(UkhFaFr_?At zp8nOV*60e4+XW`{Kp(a4sLz(w7HP)<_LkNbH=c%ZE(G~}od5*KS$?{KRij;0jlzoW zAG^d#i8PoK(ps_wEr9Kx%&`Gey0GQ$+CEe6I z=~fX+^;BML=@ZD4rK32xQs;hD?!a6riur|8(se%tA@m&=&2<+wPrc37#U6q8SA7VfwbaS$-}AXqm$RK?nFJ& zlZ8KLY>!%Ac-{DHb-*bx<*2h+r&EvU9r4>z7zHy%UO3%3^abwu4Jau}D&`o}ooBp{ zdL7Z*;%N(LkACk!UT%mfQtybqm|q`|zR7%I1ZDEG6ldKX%v*fA?KMKJ`tAbm3hEU+ z#XMC!g*=tPqb{Sa6fP95WiGc(*U{Hi*V#2v?$X-Toz=Xxo%x;R!EEK~^k=)KcvVaN zG#!6BtUE3`aJW5Cc=Jk}D$ZS6U3ln9QkhK)kJ!E3AX2h;uhnU z#Lq_0MlWXOQ6A^sxv%JKqxsZ+(!}>49SZ#t`SkcT`9%>>9+jUWyf|eMk{*w&!tlv2 z3X~C)A00aQ#M{CDBs$Gjj|}C+9rJXMa>D9v#~KLj6j5 zKB&J$ReSKSl?Rr*+Qbl6&iA-^b!x+K9vzDC(NFitc{i)Vv>)pf5L(X-6Y$Y5_SnDN zd?WlG;dwVJ7?y74ZNO zL)iPU4uyt^MB9vOjKe@EunwJ0X{N0u9XS>exmE!YfUk2)0O?@8cp9|%spC5qIO774 zIo9*SULA+Z=^y6r0PF{V?fCphO05JvvXJmO#Kj!Zsrefu=S@)o&A(0?UU z0WiG~zX|p(oGmhE$u@SfX+RX5`qLVK41hbRBwPc0jJ3-Qs$+-wN8d1j2F@V`_z*`8 zXBqQ8#1-%afCIz;Ko&=6W276$;wv+Xxa_xV+SY0ic{i+pM8P#|0yYro0A3G%(xuHc zcwI~I+jbB)O~FrB*M&)U3f}3wn|^Z&#^H5?5*8oRlL)DbMO>v&VpTdGA;7;6!}U9bWQkmxJ^E5?L+YeYlZ(fHGhKz!LuF zSEg)cBfuFzE!@2KoA?BT8iFk)QyRdVIRUO=9iR?-TM4Yk(su#C0b~KV2kAh&Y=PWi z>$ZVr7T!v|0Ts^*;2}(VGGHv+iJq3U+~H<=9RVR1$kYevI*hp)eIhKTao6f*P)stZ zh!ZBzjxq_R#EmlH=6xn+?eTq8h{zc!LdfqfjD#6XJQ=8F+$_NvW0OWYr$;JgDU4xb z7;aSXnJ3H->2Kw<0%UM0E-K9FO9RB<^gxU#fs;nNMvn@3>pLS{6|L#RbNtxOTASCjP8 zP@ry%JQ=#Mn^TvDLnJ-jGUj)u713v1ac4TyE;R;yevd-s{^>u!$ArpbxJK|S;^{?` zOvjwgL0n_mMsh5>u%Oe-eHF5ExyA-)%2V0qeZRoNW63Zwu#b_QGb&7L7}Yb$)+EFy z9DOEE3I?jemDH@Klh=0y5%9( zBuy2UHg51dX*r`ooLi(h9kXJ-8rH~c;5(D2 zM9JcQO{^YWLc5W5M(X0m$BkR5Eax|%r?{4fQ~bGDgS!-Si);x9&C+Pg2-Vim_-khx zwQA&s)0snO=qvyS$1s<6ro}3&Td=2!ttY%wv%qnh#adO=Plvr-YM6k$U9b|2cPZDB zyfu7nRxkm75&$=#*Al%on%anV>Guo-BVTt*>K(~D<;FjlyOe7>Q?F{n=AFAmsq_D0 zbHRjc&~}mBCw5P48w+zW8J-aR99-RBI%MGGHfI;iXjUd0>TqK8hn|tN*Xy8i#Ny1z z?kc6sZQ6Xj=VRI>A&&M(Y?=|}PH@N`@1h5wIWq>+prbo(gwWb`#!sa{a&5vB zr3HI#GTU*r25FB~@87pCZDQNewZ>}C*b11EsQ20KvpZ`mP#v~7iI$@}Z?s+MKvBG_ zUhdMr-y9lHLAW~_a6r5`c(*gtE4Rjh9_jp|@Tw2rCj4jz-4v`z(2_%M3o@@(2vZ;L;fEm&Way?ALcn{Z)o*x02tD1Ix zQe5I}wm-J!X=8U^;j(RgQ;#Aw#_{5F0kOG^TYX=jRkOrJmQ5<-pwyx5$(_I zbVsG!TJRcM9~7m$gypkPsI=F*9PaX2C9>=6w4MQ^g#?;t5wP)s*afzP-$MyMTnW}} zmV2ua+77SY%x!IP>)<}PIM@EAY_-F_hxzddL~8MosTj7+g7)9DN+Io^6oW&qILG-e z0vq^{thl|Ai`9t#hsdQz7Jk_rbaqVpvNL?$n@f=)^ye^^#N{O)3G{=wQvfF~!0*tM znPhg#%RLY!v(cZ4W8Z(~jk zTb0yXr2LRL5mQ=fMT17g=3!2F8>U!sQxNL8@}YcWn8@fzBV$}jb~zDKB-Fz6ly11nL>K@o?*lvGCotc;<{ndBgvN3eD?9m(4) zvwzuP>F&ldp>48FgBO%?5pJ?#h-4lIQYN`&Tk?go(*Ze_vLf0`K|qzlGEOxil4hX? zo|VclP9*?h{gmZ?o2bM$d8*jHN<2%t#GHD?K9IX#%NYss_7| z{nPi0o4|&-8a%X=E&uQ11wrs4LjP%5zOs#y4U6K2tV%@0x*-UUtaZN~%BpeUb0(@O zxm8{SHHRV^dEHJE{9+bsr)On!*|_IPunSq7ZPttWAnFB9%`(OINc%vx zZrUSLmU;FhxJVwDX$x)+W>tfgjrRYQ%a#8hmy6~&wEyE*&G%nHDYb})1sH@`eUik~S#8P$mXhFfW<2`{!X1u^UMr7=j2CUUVNM2jeS z*AZl1#mr?OW@G+4(h{d1huO(0m9Cg$u84@X^n@8sNvv)r5#Hwv(4@*l%r@tcw9*%} zO2GzwAhPRrZ2EjB7l)6z>d7%3Q}K5~Rr@PVf8|L+03{iq6ud$KN_> zFUHM&)fj(p>!cEDHL5j=@+}awILCW&j!L?4+XLl=wyoEpd`}?7kD3H7T z^W2fIdG{$j>4yaWW>m;E6KQ>ta$nmdo>DHpR=Xz&bv@k%HD(CRa#p6rB$UIyDB#7G z=blTmf&2UNL(n^xg>Qm~B7CQaB7Z-M{URiK2(u?OAr>)Nt{_2Vj>xoxBf$jEsPgA_ zXs2TfLLk0DpCFN%u+cd;H7@c_!h}Wl-6J#`8$$ejrG2Bia1CvmSgLR}3#KfYX%bUe z!N}jBJEA+}Q=Ke|>`t*KFE>9W1&fpsjMtW&Q)p-DGv_#dTIKA_yi=sT8m0R4Jpa}s zbSC0bh?MALrNmlHpMJkHO@IXK)rSZ{?pR()bw7%I=Y+>aaZ4hD`?bCMS&7Mq5mL(cH5Nks`5r(y7_2WW);|cgoKLm4@TE2VE*Uu?IZ_ zTBb5(gHVlm+39;`k(fTu8(^u5JRhyO`!5We zHU-7CRK9lj=aSN&vKNZC;zuML@)7*lGhyGwf5Xn=@_2AJn zAX!`RA32E(Ltl6b(6!byMS@mge7P^e+aH6}4j5BnJ^_+kvfwFf4|-j9mE*kTVOX)Y z?wex8&VEUJdR}-#5cQMA@*`Cs`=@HBKp$~mI9(_B9?w$l&7TO{Sh|m@g5-1iI$9f@U(aYj9{q@VvNZa}EZX3(ZOt zU%0~OS$sA4>~g>B|G4cYIVPH2Gd&z;boOcla;W7L-dwwOv{j3lcambLB2IsfRL>hK6xLwj(+mMt^4| z)$ORWH~Zr4;cb)PB}S%jAZmvL=2>M+n>BEy7Fai`NQvD5JmFk0j4D2#5h$$}6ozm2 z#84BgF~8{USS>SQnXr<~3IHJo97ym+^FTTwBQx2Y#z0V7I~EW`86?N_Zp}UzJjywt z&w#aanI~kXnF{VO3&-xw4ao*{1BP;QNt?;pTj(V*RRDMlT@-7^U%rNf^lu{KyivrO&t9Co=+V)e8D*)gu3(mYCVcye4f=p+GALGq!_Dyb+bj2P$E2%{PZr88o5t z#C}X=N>F8L?&xEqG`Pk%zI8l&2khr^n~Sd>1E*)49@7Z5Yj-EHje_>Y=|(Y>8p9C* z>u;*%G?WEab^TY3`HNgmXHPi%{s$}`eoz;Jo=>xNS?-Pd&Aa8y^iB6#^M!ZL_W85m z3Pz`k@6p$a#757&AM=Epc4f#_+;rU<2+lPwp_g|EECC*Km+%ZdFSkceY+Yz;L|KxD z>aVY>`Jyxg+MOHZiy*&;%_RR%Iw}Wo9eFN?Q9j>h2aek=0qnP4&6A^tn|K=%zFLvx zGPF!p?7}KjPg7g^#OC(GD%W=;-}`+YUGK=FH~Bnte(v6lZtJp_ZIY+O&MzFV^B@JX z$p+rX*jHm1JjcxqB-88IHcCW!t7U1tdLh>86KgfXg?FndY*wwqq)wx6+YA>aec7n4+3d%Y-Y-@^CGjx3~B}M=$E#XIj4*#4{3BjDScKKYr)sBmPk@tuf`uu z@zT>xyo^E>Qk@F!1Y)1!qB#C!N@~QS0UI@pa7DvSPZSQ6F=*UfoBrewZNFMBa)w^f zAJ4i3nW+S?j7-mPY?Z&7ggA9pBN8G5=U*4wvVmqvX7t^f!a>e|faO@kaES%K05OxFb z=){Bl*lH;iev$Y7)`cvLm4*v z#x$3HhJfwjA`L=LAkBbdZ1a6bz~G~xg_^mF#+VUDt%MFS zZ=v?+Jq8+R9B>u_c;59+F>?&@X#974mh{sJ`?ixmg)9OOug4h~4iVEsn9tQvNh+VCZfIH@vrwEGg4_DYNk8HBHamd5y zhN>K#t0A&mg2Qk6gY*JV(Sk~$L2Xn#oocQ)hbrRSCGj}dZ-))Pr_Zszs zMK4Slw`g~EChOG(ZIaNq8?z!d=U3K^nyaFgf%Ia?Eb;M32Ps_=oy3OMT|j%(eP2me zeqj41>&K z<1xpg6)A0VJ_n?BpSDdhJDyKydzHympfq^DPL#7WMkFS2UNbh^JlL@G$fs-9Yjsvb za740UG5$qRn2cMoav0eFMoy+NVPn*l>7GFsz#PJHuul{Z9Lm+bM=e2RkP5yqiGKHB zN_@E=;=N>Szrw+ehp|iCfPZSCyQ!LrTiMfi<=>H(-65`_0{6WdI8-MrM0Vk7p37bR ze6__T9{i>gY!enCy~V*GA^<^8KxQDmFHIe~i7__yTd}^j>fvft9#IfR@b0ix@Iey_QWqw1mu}4N8+a?l6%Ii5VSvU2hlgHLIP!5Bm2Q1lZb@#g zP}io=4SWAUg}80y`-oUXZ8Y%1tP}%xJ(`@z!Gh&{mYl>vQpCX-C-5OARc^lWy3wQ> zxky`PWtwoHZ37Zu|LKG*`Dnu+xo1JahBC)0jdM9KCkQ^Bk(+}LuBVkAg=>ZjG5>o7 zh8ZLboG`vIf^cw9_Z4xQG~WHhQ!rMP@Ps5Drm5d@-DT1FA%f7KV2^l5 zY#>lZ?ja~zh>!*GZ|M52=(-FTbMR^cw`WWHjTI8q_7!Yx?2U-A6#D$#@cORJ6*3q@ zl*GP@C%xtMIs(+8enS`G3t>DLw!0DCg#u3&K30c?sRrKL&cIIwP82;=+^%qotn zw->4&MqZ2?U$7SP59%@?FGGII@3?;jiRi3ipH<`5(FzoFz&rK9A^M;!5=EW63h3yN zcQ~k%O90W~bS-X)ZEgm&X_munSJDY>ZWfZ+uD(w?u(j6+>>DldF=TrU4I6=(#+=|=pN*O8iW5Kjh%DW!MyRB*S`77BGf2%-PT&e(Y2KA%{4upeogG* zowV)4vmokFK;F&8vLSlwMn3myQ3G>fB;z&1Fca$7P1dc-(CeC4L?bD5Nuw)^D=pc) z;A7>T%`BPiEwj9JoI@x%lx^$L?3pGs>D{{00V(IlDRRPk`uW9YTa0mH@0fr$?ZDth z>$HbgX2WEAKL04(&F{mT&S?u0Qy76x|hjz(Yg0|~VrBZbi~ z4oY!3v(%2=DG(2MXg-PoJRn- z5Cw<9|7cC871=*N_9ynfLgtiV-9=n2sac(LtA&#+me1v_7s{jSv=1X_b&AGCtd?H$ zIEdWLK!mO?&P251asPfWV5-bCwPCQQ57Wax8AiebghgW-2gfx0W=+h%-?A;*0L+g# zT+h7CQbQ4B25!i-#4kfVZ^Bj)5L|i!KyWVKIuM-(@h;zrJ$GgIqB?$1`g83eJ6&3b z3}yuDA8q%#-eYfnZ0k;Fj(>Rn4Z&b2y0-`O?)YK;H}6A%2*MliqgkK(qLDe|Rikv> zn5uamstMo~JX-D)YB!Zv2>k`1af4`w6jy&+0{|d6?~V` zy4q-baI$y#HU^quXlOw*b%sqe?FuzU8kX?}%8;ykgJkH{d4OhYBg)aZL-0xvE^G+l z`-^+jtx07k@kV6&kYDQEL}TMJ`xxXQb?e>m8U=W42z>hRn#?lJ7;QZ#KaL~(vHO)q zYrL_+?Q%K`^TjZwR2zN1B0scboSt@hbhSKWR|?}H1uO181#%6ge&$Vni;ZTdI?1Yd@VE$9gbN4XnDUuKmU1W)<0&0b zf!S&in&0%M(z;ezCVdW{44#sBzZt`8*}@jt0BD2;D>cH6d{Z$+;S|-}Haz;SGf#h} z6Rg05Fya>hpc0IM9_zF$e!>q+I>WD0{rVUh*TQJlkOH> zLJd?;9rr=qyHQXej>O)<9(Iax(nobPi$Oq;Hj6Q$;Hk=RGGhGOz_nXF|JKv=s%9?uH^S7s*|0 z^gFEjGj3xur@%ZDpLTEa>jLD3MCn@R=+vD1_m^^`_glK1Nt<487ZQm#!r6wmhdx*- zQBe)BZI$=q<)d7h+*arBhqDFto-r#i*#56_T!D@|`E7yutIW^cEYFqA%T9ha%?$*y zMl7Rko8jvw-nq;5+PC7)A3HXbu{cuA*rlF#eg-Ui1gJX-(KUa{3=e-G@si1|h-&i# z;vnlG4EsX8M;LP1+S%gKEXfs|FP4IBu%zRMSpYAt2{u_d-s3|)Az2lgk5|)%fujv> zxXbuf8f4zU6?NmD;y^8&K?-7_h>MA4*F!gn2OG1E6A9KIGo(X@j&06;3#mQ2J z;kU3?n&DH<|HQfr>}Ug?l>P%I(}m@l)lic`+9HdATHMrF?Qwd4AhO3-bwI#OKE-%K zbmq8V(yfR95%babD(5SqyC~$f^IaXM`e5mIfDiw*`q_&h$(KbA?kAya--s2Qx;+m4owuvvHGLurm*nmA@M~I`EPd{*dxc!w7F9J zrt{6(wcGVe?#7JT2hmt z-Q1zJ(eB%J4^?}2W5AaLxrl;tWSDj#CMu&?B1W?Y$KZqir^g|c?D1oO2Mw43vTR3v z=AxhK{b5eq^e7eh-DyJL%PZ>UXg84kW}-jXhU78Ww&IK-f z?!y3)rmYkMYFiZDXj2r^XloqfY;!j9F!yhX7rtzqqiQEhyG|2=Yp5{zHc13i`*-YF zv=7lK=%rL~en_d~3@%seEu$ZGx_fR>y`#QwQtlent@p&b?M^LPM|!bemA0+1P=c;o z`tlhVoy|Y&%O4JowyAtF;TM>rc&Uz*xSENmrMr$TbEQnBts2KShQCMdz9QaOFIAxv z8S_Hw&v(UBdm;H3`r&-G474hi6f|5>AAwwiPbtd-0gH+X!n}jMqVT>!l3p7f_3#5i z&H(?%_q0yeQd+P^zcy_m_R<|)Hp#1%Mu>H6x-L;Ma)(LS4repFWtQ_mNz(0-;F;a9 zHi(Vau(q&uPHD#(yEN^#AG_P{m6x=q)VeMMe;j2>H8vNqelHuEdfq6l59?w;PNT(cvC4MV+d z3Q(%&A5#QXEWsFy>wnHNNkRDzWZ4p-N-q*4N^v$}Hg1nBaMp2Ua~d3OY-;Nq|A{8H zL!J#trk&82b2nduiJO5I;_{_B&WYb>;SEgy+DqMzW=K7@MQS2?{LHX#K18drL@Q_# zyAV<)y=g`}T?ts1n6JpbA&9*f=Hs}6ED}LMZ;n{{Ixj?a+FvjD#E)d0_PzzuX<;4w zuIj)Aq|Nspvq&+@i(2bE6n{D{&%)OCQt@R7(F1bmI6fAM1?QFpl_-tH9O6) zl*I9&C?hTxTgxRFKRcwndBsBxZxX*n|UyVOz3v#sc-i*Ua*+1@%ckf#I^vtMrUr&J?n}Pb!MZo+$=JyE>k@<0 z)g*dh`$)CQ>8rE=;V!j|{Zi%~Ipcv~kE`nLjqnv(vtToBWwMP~n|#tNF8ZC-%OCBb z3n`NY z8%zkZ?n#hvwy-f%FxV;x#yU+Ia-UDkRn=z3I&sn^n-)7^6rf%`;8iPqUTvHo?ne0U zC+dmq-(W4QU|?>AMj3X6Mu|qHrtS1p9p)}AC5{GlV{;_C%0^T%P&}|Lh@ioE<6wOT zD3Xk;s9yjxZBxxjAYXJA1^&=GK?C&4OK@Cdw;}{6Z7l?3HwjjJC~brGu=qN(*6@(6L*W6n?;8?Bj*WA{ zfoaoE2@MWq45*1*j!9#B>`EX=p1cZnl~C{jcmq3hNFMxvI&BZaOEsVYa&TZn6wrV= zK2+Mc06a9hAcIy%!qvICfZ#27&Q-jBa5mcCQE~ZK9~iO|CZMkKA5h2;u13t+m_5=7 z875f?8oq#_x)BH%zJQ`W0|^)+Y(t?wBmTn;GttJzBE#8OGv`9O){rRPfdiw)bd>|E zzG3`dI+slU07B;yV1}u4*>wshdpuayV5zSvp>rA0(Y8u^oImN@*|ut9mg@*UDDts9 z;&{b*X^CLxzQV?y8`bgAqB*4(6`I3cm7(pAg28YZryq%7{MX-yzef3GdS|2us9+Nx z(c1qg?73dI?SShVvD{SqySDDs4yJQd4v*WPV5SMO+t6aGNc!?mPUirYB!s;Q|NYi9 zl+JU&>dmh9s>mzzLQXSN++Dn2Y)_0o1W>Od1Zg$0!NMIL(EEO947K{&LLjRTcURg* z_hP#;1!q05o$s0LTittSJ=7-@nD~2{fD)(T6+VPH3qwmx99(5z)HfL-_?>3wmR5*= zx8(pv=ddG%X!B{_@O&@s2Gg^(o%C{t^@iMCUCF*eZ2u5K7`fdR(f3!2uHlK=pVuh& z+>v-s7T5|zuGH;VYxfV%vkq4%&NKgz?s4|&USNtVAaIj)c7r2Zt=5wzweo{n{&RjO-81BK)+Pbpo#?peR*mMd(xH;QPH(5}R`M0$!ZYr*p}-0qVr&&)*I!n+F{r-d z#8Zs)v~cT8NO?!FSG&&d#t{(uIY|Gx^`bO>RkGD_WVU`=%_fkxH~Q|+t}@kA&?_9Q z#_;&z&t^j-h$6fJu!ZSqKj6`L;^+sZ>a{HftT%bR#PG;Ls{0#nva@_YZ@X8pxrd%{ z>xYN>q}Tl3Z-wlK8)7@eCvB^khU?j~1ZsqAG<2Byfqj`KYkMcawl`M!b2Ky10R>g_ zF#*213)VVYZ`i8Pto6a^W4*f@xe?;IgRJBI0lsF#)>ju4)BTGB?YLSZn2N?gTkTH* zJX}+T6=TxkT0`htp!31~Zp9!EFV{uub43-2+;GQ++b+QB6< zJF~du-Bh?{JXpKO(UHwyb{`BlE=~4Zbh5VknwWZRxD}(@<(Ha0t-75@K$TkX7PfUK z)}~FI*yho)6?cK-b62w#+yp!)rKYrod*7anAW@@9wYfM9C)kAKZ)z&dc4uSWmOf}m`uH^ipG zIQ05IZ}SE`y8vd%a6AW%g}TuHdS(Oud2+)xguq?YGrkH4#_q;&>ob&X5dUXiCcU`` z-&R0} ziMIc;^05xPo6?W5zh?d}n0$R!Jm4vdzR6|lX&rp^YreZ#8bPRxsUDB6j>G2vZTfjy zb$5U_B3~Jkr-sA-hyA-~a`m|UF0U*)FOSWye(=?_x!$(9Ubng4H=}+~(fE?;K;1k> z|Ax^|**5y$^grvbwi)#YiU;mx(K*xDJU5JPR4m^g<@Fa-#-EzT1MtSJljK_z90e26 zJ84+{lq}DbEZ-VtpB0m@d04V0ELorKW=VPG>~E%KNh0H0BFwdt$ZWNe@|ATFRg>v5 zDOlcLH^%{6Bja-Gvs5_Tw!$@(O^nz>*<^2Ych(*#y}7ImWz(y(#NcQw7EHmZj22YE zQkYHAf)iLxL4q_`O_72nuv%03Y_M7r`OM(e#s#L;p>C>-IIn^{LUfVe{oCTSw_o?CLPZ?orAc?vWw+d%E}uj zEzf^D13La@m(a76X9}ugx}*rMV5$t}U%+qMV8p)1Jem!L}AXsG{78 zWUjL4LX)j4j8IFq6s4!hG!adzwunSC)tpnI$utvPsHWVAG}D-qp~*BAZLGG4MLW_^ ztU)`{oYSFk(w_TGlW8vsQ$@KGiLRv>h~`;UJ{uWXWs!h}rafmwqh%y2U0psDnW{PG zM5ARWN>go-f|jB+XGNoBENWd{J{h^JIp;+~-C78z)-)GMU1gDkrm8h(cEM#8#U|OY z8py7A@~#_mHZeb^i`Bd3R>tT1ujY^4G?)sgpE37ByK;;#0;N%u>VC7a9|6>C%);SFH5HNaoLh>Ixh+n_ zdTl5Y@SIzVe_fXM;+3q<0r6l%{`}x&j^_)yv987fR_7FWu+78=uPj3FVw#Fnc(6^y zE!|kxV@Fo!G&j@SuQO~@unJz*4$Vju)pxe>x*=F#v6;;XG8F&8jIfCn)+hzuPh4i&{h*h zW1+9g|Hh)PDc0lBwM0p#{tIK`2^WyUu5dmv>B_mIw!@WWh!3c*0dhGygH}F zL)}>9>ejR!JAP#mjAz?a1Rek4Zjpqix;|&dQ`t~N=hn0o+p;$2#4gWG3erdZd>pbNu*QaFr7?Zs$|_aW@7QL zq+SWRmvNSb9Lsm*rq0i2IlsX4dlQ=jx6r-%@=h5WYvu#h;*gOn!@ZA}?k)ANNVtlrsMCLlvYZTj%4gi2fe4DN03^l4j{7P%ceM zR?58$IA-i_#uX8xwxFm@%5|8R;8?Ru+EZQIBb*X5#g~PpfT^-NbfSObj>^eK%%2eZ zR%v$$N$6U>J{liLx|DITSz(JZl$iXFc|B7jQuf?KvS~FPe<3M#szx;JR#zCUchq`^p^u7GTSj-9OUrgUtPiwuYIp241_7r1AXI9i8zY~7e z&%T&C$!e!W=c#M4E}H7Rs%Hn-Pmeo}6XR`0v-1)zXj(@9Ttr|~o3uM8#zt-R1Tm+P zYwyipswYfXt3e)72);>T%kv)DhaXW0zl}Ym`Zudk`o~VGWg9DFIlaLdy~&jGD=X{2 ziL1jLl?iyhmX96XFkp=Lrc`@ai}IF?sza7EvPLaxX1ry(%EN*@LF zx9iBx3icOSY-i<09&}rl5F6FE9^jNd7UE*&ai-9`hu9!?kD4$S2>SH)yS8x1-R9VW zRVR&$&6Aw^CZog@D|Z)d=v3+G5}(}3bh16L7Ux>>4!=xVLU$%_7i5=mit@CIV~i3u z1+OxF@D009+6+f2y_XYf&x!BZdn0UYU3?s5Y##akzdu;G#==Pz}3;0)`ySd*_>_h_IL>{nWY*q<*BdAUY z21~OEyzM#lPQlIxui=h^lqx7#>7{+-o*Z8Q zk}S%$a9~6K7V=)}9aah3yxgAB>9DwOHJzf|Fii`kKjWWeH!GLKb#Sa!X0iI-clT@f zo-MFk!?D*#Ox+;0{>j<@#Lo~DCg;g>Sn=pwt2*hv)tph!G*-`OuR1|1ZCg6FUr8TK zdh+@7b?3QwqkaIN(sE9*v7Ho<%y?_-qCNiEs5&{3*&FxDwX!>{Ix#&?GN89#eqesk z{p-~;-i5{YQ`V4Mwlw9{Gp1v?ZIhcX&7z*MFew!Kpm-e7p?WOy`s$pmZxrmDO^{MN zjGOS-YI;!_9ZXW53~41ZDQbK5`-Dp7pWw(l{H*G>OMGx-ns7NVBBxR^PQ3tM#ir2|xIxLOyurx<=l_zN{=%AG88JDZS)(|E5VMb0Gib;{h#WED;J1G<rCIto{E);%f-?(&coy4e(U8Z`w29g*5Hu=GIe#oM4%14P~+B4;IYYos&at=pD- zw2gaQ2dWY^;qn@m(hItTY!pJ!x8DBX&hWf@(4lDWZnx8N0HfQ{wTLzT89xjCY+W~c z>&J1ly=uM)Ge_VwlRX28v*GtL`JIL3YhQ;9-M_QCVU0f*v!@W^5@%!L-XYln*d__X z1x|M+SpUrCML{<*^t@uijV0fmxJf9Q7bxbsHt`+D`5f~Kg^E|C>J^;&F)ui#m~!!l zkaElihG(4(l*@2ez!gBN^UaW@_q_A%?Vlcm;h`Y*Cb36b+aRpdgTr5j>Dy`#Fl7Th zRuk^q1gUgmGSDv)6{rFLh5!0{;q_|F8m6X;GgzQ1UBuONP6!dEhIhF;TPci-tK~}h zO7+sI4RX6^80(1~PzE1H03?sMm(Bp}aV{!w?L-DH!H{0Td#sBppqzwBz{;kd_}?ck zG!d#4WK1MU9AsAI^`1Gvs;EL)&*EGH0zy{Sm6eq>B~$PhZ0Ac}QXAiXm<}{ZMI2w? z;kG@s%nQt^ih$@ck=BADZdtHH0+P;G+{17eKi|b@NZdjl*XbAG=OH{FhnmWX<;ID;PgjEfg z_EVoVG$0#N!|_>7d}a2;WogsV@`Oj=zGS>2Ifdn8;I`I&9M4Uhb*hwPOeBuoH!uXC zzV^=8hlwj&)L`EaPg{EMQkZq2^?(pt=>m`N zb=KhnrFS5M4S4FDuw?Q65r|~Ie0_r>&t7P;Y$?yVA_Rkc`@FBA6=`0L)>QsWbgQwn zhCaU4h+|t;t-6GjB+h^ewBH;7%kA<_%v!>MKEJtsejg}#i7m$e>Ch5g={Bb~`c zbYO~~aA`wxJpsdI97DQ=5z*%OUUxXry}sk0)yhG$IyL}thi)sJ7*3PfMT{)E!HWK+~@$o-&$D$`#Z5dgP*fNyWhY2@I=D^Q*KR z!nBz|i1w6dTaz%>{G;W_2wXAK8CYL24=23^(yot7FoiSyoY6ZPJEG^sr$BwS8R`7U z9%jAvK4T|}b7bkU)zC;5h^q#Xa1^Pph&g`L5+v@TJJ)NAmI&&nzeXqeXTnPV%Hve` zXG$j#_#_llG9_^u5QiIw0?7O9|2QevijKf zh=^Etx$Es!8cCzl?coGvc5Bl&i;$$E1;%)ro=Uo^t-_pdgeStpo-Q-4o+jZ^SMQ584%<}!P zN!;)C!?;rPxIJie+kF^5Ig{%#JP_xIPovsY3RYf9j{&plAGv9>8vsY8!*0Vc;U)6$Yv?G z``zS{ZQxL@*_|Cwc&XG&~qNk82m$bGbnMo?k089t=2<35l8X^nQ)5=;-jL}mZlZPM6h<$c`KcUZZ&_8wonfp^I zeCa{-^HMq=7NE%z=R&#wxX zp*^&z#UdIQlMN-JJ)#I zEG1rg-sc}twNm;tjHvsR&NIrhFruC&?q-(^5jH~{iix_YfY^xtTE5P;Kn#&_AplsZ zVETWS(Ep7@^FF&q6!1mZ7nv5*eI&3iGL@0_l2Ij+y)C8JfnL_r&T@JKXmlN!^6*ZP z@*OF?5hyEY=O(%mC^wQRXCDwLTTAK9Kv_jQx6oUGab)-%9CyQ1O1+d4N6$74PGsJ^nNd)3^G)jf*&tmaSBa zyikiPO!pZ0JF$C2NoD7td%z5U&MD6;iL4)~7Fq8ILp-p4n06kaj{@t5e5%Lvh97I@ z1T3n_`)4{|Xybd>KSLYGfwg1w37WhAt(D99uGmBv8oc4?%6ilj>&&aQEabw&2B?kC zc(FaOHbL1zCLVBBF!52Tl_4Zy)O8FF-HuT?_mXZ=%ps@8|g&M1Lxk zoq>t!EVOurK1UuKy8I#EKQ>h37P|A&d4Ij4ur?1+-%kZRd;Z8dNh?d9c4HQ_A%i|| zo%08MD5hzMnEO*LAAPu6r??-i%>#7y_^AM<#`>AU^u^0|VG+*-T`wrlaY5G$%8N>( zy1#vn*V`F7g_6q7(`V=lAj^6BVqGU2y6k3+SoS(!>v?V!bcsIiT?JjDFB7+FFTL!> zEV^NXj2RI=Kso#dnG4zmsr|9@fkE5#QaJWUR{k_5K+Rc~1G)}Ts+7+}U8RDqszFy* zfWd0|DjnoaU#%4k=R3gRLba+u&RSgHIh!pD2-V^i#NA$Xlb81R4fYoz!=r)W8esT3 zFkD05Ak%GYE7FYvxP_m&gs z{t+wEO$53=K-U-O`pEl{>7I?_>H5em5wiaBKJpa#aSHX950D30>qv!QEjX^LG?9g9 z{+(DU6CoQ2mCmA}(t+|p!J7F+k?*gx%2z4QzNXjQ_zjp4I}GxlBUgn1Wsc030SU{n ztgFbdH9|HR7|!7s9xNY1*4~%|kuEAiHWcXQa&$xG!^m{scNgiJM#zQ(-3U(W!{sB% zbT9uP(yRg0bQzm6q)YIkD_$gaV zjcx4#q@OxGt*rSrldxC8fuKtEbDI8S>Krdl)At zl1dUq(#b$N0Z1pxotg48Kste}!v7?Rq*gA&m+@4n99@T$XTgut~>{v)QRTG-DI+9qr~QNpt*U_+=C3|`OEl*pS%>E-egIfN}%$p4JcaOKA)GD5Ar94I| zE0wR5L%ai(%2&&Y3)-Kyiwjy}^^#x3>K~EH)PF!QgRwK$=4Fmsn5O{~&xl{ftXn4EN2QV9k%`L<@hBA$s z*8DPgr(mEK3ify!_yc?F2F31@?;$pF{`W#7+>P9;%4_6Co}u|hcF7-xaJ_t&d>=Hj zSH7R@%@65$GT8z7MbjnIVL8c&Hv){9sJyO7Qr_MhI=6NQ0dQ4qh(Zi%A_!3>8|Ro} zK1OtxNK+2!U;|^0OAm^hM8Hqfz$THyPt+){-?0jA2ESjg3Z!O11;^#-j&4ye0904=vB>xP`1zE(|^NKoyAEW$BNh~*yHRriGCkGtJMfo{7hXc7N zzeFBAN819)F7srU>m!?F4yTX%QsgG<+i$JogJlWOy$Ts{wkn9>y zcC9|LP0m2F8lJ2M$Vg+1bhukWxqnA2L~h&2Bxo{y{C;<8wNm0Mi)QuJ0JRL`=s?b9Nq#YdSU zclHUS#0+Ld@4E3vhr}lT_!qIs-}##Ct8n&H^!GN&h0}t94#zdZ@WTy0v$^!dpxJ~*ia%=1k|9nacw$aouUlhyBuO;*8jZ3qZ9RN)+^7!GX? zQE(@{7&HIrJ$K+iFSdd2KjIrmQb;+Ok`zwo2wo&E5UCEd>EE@yO|P3dqZUZXM@|p4 z;p^_{tGg%EJu*;TIKn3Fc*10kuvnf9gsF;AqHp7&BVUP=>IYI;nqsAVw8Dwf6k~`e z=uh5vV-CBmTzDo(1@ra13Wi6>B|R^Td3+%bx%RDzg>+l+OOj6gW=q>pL>TNW^~NCLfw(IsMZwBBui(h>#AfW&o?{ zit#=bVtUehe-syr5mH$%6`bwC_}5F-Tg43wK^lC<7&tIoH~UpcTln(iaRj2~aO$RVIau#K^~!r)9mZ63t1z+Y{K`ky|9QL6po=V*=fw zS(aooHy~&NZJ8?AvcP+e=c#8vxK_;9Jj)UlLC?0#vT#x2IhGs?LbEMI(pjrS(xwq~ zE|7A8;ylY-AkDRqdQpX2>_sb~7Y%@3G*Iarq#O*rXn>NW_T2k(2#6J2SNK6lUw=+X z!}$Yrg}y2{e^B)!PcEhkQ9xS+?FIo?fNthl=7WH43(40n_cB;cQ(5d{SBb$<|$Ltpn-rKr5oY>k3Yr9)WSzFvCf39-C~_F&pj8z|JJrshnUzO;^GtH z?|0t$uDbQht=c#rAUTZVGtpsQl+tCi7yUEBGTwnu85~Upm{8d)!+$Qd-*-0+tC{}i z{F+$_x>-f;(Q~ee_FgWDpnI8TSxUj)z0G~h2=yWlQ7WoHpj`>RGEFhdvYPXiX^J%# zlE?ospLg9MN{Go0R}N8fG1=kD5#-h7Y(3xHGzFYAXDg;DxRd5=#SG${XnkJnCkm-- z0Q8gAPBcI@kUS3DAI-OwtuRVq36iaVv3{mv7A$_2l2=XDEk(+vQhK%`TQNfJoTJDA z%GqSl(eyuyl&qA_1xh%m$WzP(%3KA>z2AH&rxw12Y_=C13?cDu*ipE0C%j1ykclrLMU&Bvtd0hYAAs#5i;BZ|BBi{^}U5^`jZJ za1|JzOL!y)gE1nGPP4z{nU-;B@u;P~lOl|fH$5O4SvH8S^1s^wBp9W<_a{*)KvF4? z5P4dkAn?Q`;hQX3PF`z1|D#Zxy8(N`w2EB(@Ba~sbNLk0%&W;u)8)U29;AYkA@HEJ z&==My%E)A$lSML!e5?a9F7mNXv7St3PZ4|G3sPA*^t=twTDf8)ne6aDo~&E}19*j^ zT)_?C6^c#7-N0YJcH=RmK@;Apr!wk5RIpwA+-RPe3I+6@N=1bNde3G>74-2+Vz*nd zNbGh1;YfpS2M~_Y$}!OG(uhkhHL6gjy;~1&Y0Bx)wX>8YDPQ?Z4jx2A;&sl)BCr3H(&@l! zhRQi!H34`{SCJNPhyI!q;{FRpu$a}NV0}QaY!GaQ(m7K(3k1t1>he#Yh#sny(i6c$ z_bHv3DmZnUNc7Pk{+5G3btADlbgj6pT@M@n*|4phqjcsdbAi>_#Lkq~Mr0M{G8eGQ z&1EjtBqF1l=X2_bsACvyRxUDH0gUDWqjQx`w{j%-XC9H!588^1!uiEyV3a$*n5>$j z;zGh0KD!Bg@*!c|Q-$rsx+B4Zp>7DJPgP9=f65~I{wlvXRUpoI5NE#9xj>n(6bCU3 zXIK0htQCMIwf9zq*xpWPZy~f-pmchah0xwYqD#iK7e$0U)^rdN_E^~}ZbX@`BEoD8 zZ+imsz+mT__gi^_vv3egXME_Xo67=!>iw~&ZsG)-b9!FPspt9>Mn?<$I)bCA8K5Hw ze$7bc|AMVHyPkG@koD9@C`I#>8A&KLR@OX z$kJsO&r}{YUoE9CQhC%R%6XZp1}$79rgQpdtSAmGrRRb;5KDD)bH`j2)2ZPDX)Ryr z)ZzWkP*RAfVaz<^^_)-L@@bkt5Q5*LrH<(@5ehs^ME&4b!`9 zopLody`y!?^+fB;>nieh3ivw@{9OS4E?O=@2<|+YKlLV02y6?krO$s5TRHmW}$NB1|c8j}N}|8R^7 zb2!R2&oGm6o*WlqPC~}OfGE=|f5`~G8HaO&CxskYC2}XMa8)Jp0+kPZzL2;Eo2Pcw z_xLu>9x=@e@gZT7ng%C|ygne6d4ShKh(vf)MMO^XHLg&P5vMj6A0x&w+UJ2nd=QN| zAf-K2SSvn7Y)JWJ;cW(IYLa-BcvKn)%Bwu8-Owc#sfvjz*=cp*b665N{p8ic`T`y} z(wE*ZtS4}R>s0@4<_ew1kffQy0itG_M93C{W-_?@VvAKv$fsj}|D>?KFa(Zt#21D2 zgaxpqul=jAo{c(|bZN&z!lsz{^3Ip3A0~YD=T-?_<2rrari(8lj_}m2_i@IyVQt}& z5KWMRyHSIM;I2zM(UIvWAs?Czi!ZEaOOIWp*RwpiUKK}5|4>NStdexn zPD}`~R8^u{rdqBd2{!9t7bb-vaatYNtB|;V#L--?_*e9A_gSUdb;)lKO_n!DGei9_6d5%g*p;wHlow?>r= zgT`v2$s?X{5z=JfhE&ZMu{{fHQ=mOS1fw$5Iu&Ul^`&qG88VF}hQZ!{a@|Jm098>T zX=8}LBV1gF+klx`e1chi4g7{*er=x+*l4}(NxYjhsRL2fD(fkC5+i9J1Q<*;xwk#sYV{v=y)jtwl5E}%0ya*pq z#X(%J3;W$r=}C#rjeV*J_xg&goC??qwt6$;rt-93ex(Q#u_9ScnITwir)qE1zNp>g zK=4Cv7LlV(xE{Xub=U1&&&qkLsGcwo#>@UKc-bu*=COB+NMRuC1;+P_LI-DvXCj5I zivo7wQ_Ppi#lQHt=vHuvA?-7v0Xan13e}VF2@FxOn%XP?&UF@l!t(kwDluvdupg zkx|Atr+Q$b80xi3W&0u23rC-5zv=+dsn);mx{dp2qk0zM;l)JCUCBka1^hktaSlFH zHPH_7eToS9UA!arE5e{@iSqq>Kv6wFSsdlmK}C4{DUtI0;G%j^nb^SW&>}oUl1TaD zup&IBkVt79UWA435ed)w3F~6i$YPEvss~1fJv`4SsuzNV>5r;R|B2o~IMX{sJcb(k z-vYu@UASJc@6#N75_D3xfAJ$1VdTWBqv@0)65@+U`+as%eHbn*?Wc2!>O(%^*4y$V zl49|TletA0d=HV)jQk=pHV5}E>bGwE%7e)05>F8UVS}^(1OIT5?u=n4r$t2s>wxA>bM%?&X4pfz`V^z3YR_A#uaMmf*FgB_QkbfYH?JB zd%1KWZ{%Y{M}NJO8$XYGvq1$I_F^r=Vmu|bYYyg(17cqtc)qBdTcr&y}EZ&Fd&1@nUUlCBeFVlzFOfH^4`HS~s z`Z9bJ7<(8f@fYvU^kcS>i*E`jp2GBJc94rtlr9Pp7rL~!aI^1vd@Y{HFBSm6EBJk>F>@zy`HC|F)%>1%)Smp%#QPmzm%{Hjp= zwCarNtm+)O_=MMl;^$QtRMbUs=~k}`r7x*2tEyF3$i&QglDenb>jan{@Y)Y<%-VqHI*)uLy3P<-_9Ux4 zs$Oa*N>=w)llnlpC$pB7iSx?rPx)4o)dnfuPoAuX>9dczuNt9#z68>k?m2N#kdkrJ zouzvY=5-sQ@X!BKWD6pP{nW{7E^^pU-Cs>4yT7eS)>JA>0W#Pkq7?N2GTD)KJXwkw z0*(XKDQXBf4pa{!Q)PT5HpWV2gP}1lIsRbv5Hi{HE+Sd9R5ldIhJjg!s)zf`iX%Jz zAHnBFs7I<()uYJ8pZi%To~9nH9-|&hX6lJ#k*Q`<**IWo9xSoPsnf}=bnWYBDg)RW zPcHs?il3XrltT}S!&Yh ztnz#Dbk@}3510YyL^|I$9)dEM{`2_|p$xHqew`|g0z*|&dMbr>V+Gwb`EwE7O41{E=^=~7z|h0z~~I{>umK*vihsW24`yf*o+a4wjfu+NPis7E8a1V9g%93Gaj>z)} z;CU3|QOyIMM=@@4Z`nFuq#Frz`5@~;pvzYm5ND@?5$@X=pf4{KTT6x3JkVMpwB}J4 zsZA}KVDx%H&@1_E$FEn2b&rC&7eU>{Q1>GBVxq_Y{wo(TT8o>a%6`fry$FVLMUUu; z{DOxl(}6NkrZkXg3COe*WLlyw@mU8W6ZgB%9 zg)xt5QbFy<1~Dr8B{7He+!>CoxjRKAj0PpF041yhC9F`dB6j*KqNW2Ei@0lRk*VUf zHR8xReJ{_<3Uz{%E>*8kuU0$PsMo^Er_|?X*uCo!QH(J#CYOO2>(tKm>M^hvFC%x- z$B&7mV?hHOfOI2hV1v4X=mw*|b7A89B)#P>$*i?%CfW3%J~_C@-b^hX!??_wvkC&9 zYsZZ-J;u3lJ&dTWDK(Cj3Qw6X-?J*nalttw*iyefyr&^9mFv)qO*&9!h>zFrIK%O zn;J%*o$76BZsggi{*|oE4qB1V@xbRen7wubpW~QaZ6|ZG_I6f@SYZv!A_VQR&PChB!jRGoltIzzDGithHC|+^2TI2(ibfK#cGH zv?3F?>m#=KU#r;SL}>8<&>d7e52+_XiwDT0ouWk2Odvf1q({}xW9s8D5*{Iw{=KP4 z>H^XeKzdT`Jf)rtt)3t|%7e{B(n%ob!YGgGEC{+V>I|{heb7IL^r#}v@+bV3$DBIi zpyfh3EbRUmGcsnng~eea`S3>e5U+@ZQ5~eRrBMr`GW1TgG^!+usQQ;5=gF2v!2#p4 zsHIU5A6p)^9FF>yMUe&|ZMGXX&J+1O`e%{PucWfAz~{CoC)ygd-PamMe_5+CNgH__ zwk0Kp^aLi(%4uC(HgSsGV2U+zD|txzqK1jVCRU zKO~i1Q#B5qm49LN~ zWJ+vq&pTpsO(SH>p*incoXbu7iT4h7mu3>8MmVi}`EM5y8h~qUnUIGrWUvXNk(USN z;GSV6YUJt9MS}wp^9C3kkeD~ri5l|Z%vZu}m!#>bp^`Nu)+P?kAw9T?Q{Q;M`a%OF zaQcf7lH=70yAfsT(^-(Im!`L-kEXAN$X!<#8H9n;#$Si$5TB972sNlIlN1!hP<3CI zSt}+;oCCYLNbnHiTGuaCs7G$Gc_4bY>dm=>OCl|b78Jk4fu`4IV#1dssYZ{;Aw9v1 zld9i;TqJA=Nve55f? zy>Z~5+|(SxOTWY$@}kayg2tHDP5+s0;;sy%Gi#!YgrLC)WgC@K-y6gjq55se#Dum< zmhGD4!UA?kD$L%PSt}w=a=QtBsX{)FjC(1xr;CK`!8Fz}ErvUJ+OmpKT^>6cPoFaDjRpb6*c|krK(^6gMCvhximUhRwHy43%}m^x;Uf z!etz672CBtS4pT`F73kG1U8uqM%M|01Za^)QJm5Wy6QLLgjkFA)f_F>O2@u zY9n&ED-@~>!~crSnYcq8k~LpGUqE=^5NFMk!agl@nl_9YvL@sZA3(<#^x@fVQg8#O z5ciHu(uomnHj$2Y)dMMe0;9^Gkca#lAWoa_3mdeMxmqyF>^d+jEV8T65Q(F9eqPr%fQsEOfTwohQ;`M=9c+~x!Tb^X47w86>k5p$4?F8{C+yeG0U4c2Ua&22l?Y9 z;UQR)tVF(xTiuk%`AlvYFZof(5REzd#!NC-j{N^$Z>N2&{ z_25ux0p64A$Pv=@U?z$+bKJyp0G!hu&cwk?NbAf^e*ZB^Wh=pdxIE4)<*Ve(+26dU zvAicZ%MZql_64|6o+H<>g?NUWb2O8T^uc+=f3tXxSSgQ@%1Y%c<=pebrSjEs(!_N` z>%ly_%Uu7>j~d;N>g4pn_*8Vd->2p}@*KWPKsX%m{HY=inB;nAj%U^f6~oMdx&JK2 zTm@wYgd>m7|M8vI-SncmxqNW3vjCTJJLWoe5Z6jePGl0Xff!FbI87X+9+Aq{z#z32 zHdAZlWyDa^*&H|SK$)~ZoRBT-57)`v6uX`n*1IN(A9V2zBmPHcGjU))Qa?HHbusCV zDQ1j5d7r1&tJb8IB{PGUdX3yBrOV}Oi zM4cC8xiI$$NfH0k!UI4exRTVz^$UbPo)STAm2Z=CR~0e*EX;QW-BiSMw+O~l>y>R1 zyJM;|LxC+Z>@La|6jWj}y1?e0#+LAMhzdfwsJb8TD;Nn?A9Tp?~D z;WUP>W)kqVOkOy0y9Y&n!@ZoVTQT!#gYirnnaUOkBhvx-JjZ;;VWO2#~D6xUKSE^oxS`ECMWj3mS@QPvR8x0tab_g7;l)oXRPs8HnjNEya3*VoX zlN{xT1#SWe4|)y86$k#pyW-;{$#*Vxg}O_I=?3l@IQ%4OVU)8(l>BX}>>NnGo=cM| zKTialJt=dMFM#0sN1H!+$nUh{_j!RF5j+rjxXM3EK{r~d~Qx^W0ml04lC zNN_J)-`F8=Hi&*+O6LRID_P=PNEblg$oB=5FkIdcxC{o1Vwlq}Eg%D^u*jLkYO)VDD7$)f#c_xdAEFD@~fH@~2u{3#^ zn~0Uf@U-qFQE{J0Ws5;^OQ5mE^irQyF)U`RF9;DP#Ig4NayJJ2NE*i{DO~m3A;XCD zr&oEA7Sl0Ox`bX#!|Bv=uP>Ak`MfCbi9sh~#-C?bx-i$INGkklLqV<34@ssYewji) zQ;!>nW(EyJSNMVG3O|11bpKzatDakUIAv@UlyNJ!xE#v^nY_v~c~zKXFy`vB!cD?I z;$(YK<*M(RAV#+5N?nA+MmW=b{hDYx2b{8k=~mOuHC}ft^_dPcL%lMgn6zlZh}Thg zAUNbzMx1CzR=Y6wtVkSQ%qk|$jTnVQwHFogqEy!3vY758aiac~GMceqAfZgx1_uaw zHwtxNpSYFEDq&XJto1m0#uO6afYXJSkn7&|Bu3NLxI)}w!`Y%FuNX70H@5PgtVelq zqVg)e$}1u&?|ZF_baxfk>-7H;o$PHXy$*UE>>bMK4KQG?^POp7^tjhkj9-F~%=PYC z*Dc)4`=W^}^aWHe$PlAB&1znAdpMBcoJzm$PO$^%NGhP zy_KzaYX$M-^MJsRc;Ad<>wYO7^4l4>;ZIfJ#)CA7!u(Vq2$Q8*q|VZ;Am`%R=ptP| z!?D-N&t7Pl1x_K#;hx(|p#0e80>a5DRvQOBf;Ogtw@s}_8|hUpVzxqDP-l}HgXbWv zs9&Gt!DiV{q~_uz`qu_tB8giwPeW2!ublp^YcVrMD)3-D)DMDHp0kTP9j z6#n5h7w%>siA(8$0{kHqX~lGXL-2|TqrW-(-596`Ntkc8yNDOIFgz{W;UVSk!|C7) zzYZ`54H)5)54uT65sYwKcDQcmp3$R6J(z@iq_EcOM+$;N*v!N*;W)w#-v~f$ydQ23 zNkh(+Bf^k#K)%RP3}6kC6(lttVpcL-@7(7i+%Lj8=4HWnp`!dGE|YF}NZCbj?fvdV zK|N7>jCh^*yKpyIm{#GmrEn1ab~q~~d57kh;2l-6#f~LjSjr+AqrY>4{)&m#$wGy< zlNB=gpsSwiAsDvU(*>9_1yXa59dQw^1l*}vgFAhg%oD zNg*+rBS!Bd&lc2k@PSdi?x>51u*a}Dfi5IwBgC-z?74z^&N47;E;;EUA>naLsujoG zL;wX&JcqiFbjuDW-cNqom%J*sHite*Hb)+w46lG63z z9DZ^|F(C|sJ(N1{x`lkySt|oIk*M%#B2nRk!QeoXlHUby^>AtVV+u)W0C94^wWAml z%Ybk4tm7FF>;;Vq!C z7XH4z2rF*=`eY#~2OmzXR%=DEe&-VlPP_Uk`up{dVRXX7xcDcDOYPHzM8p(^OXE78 z%NjYrGEx*Zat@Y}q8Okcv3Ti4VpJ2uBK2$`2|0z!DOxUa_@R{UOV`K;Dx8B9gF%mc zMlsBqF#VJp17szId`7$+D!_>oY4l$TNgyknOzo;fnW|vy83Jk_s&Ecd3J{Hm-g2}V#YTNSL5F! zhbb{!KCpx5vZs&Bp1|eEoA9C=L8=SHzLKaqpK%j_YB~S(;*{d^7+B z(iCHeU4!}@8@3~-IxpOLnV^`c$W*w9932hfsP;w=r?mxst^!Q&mt}HB3u+UwUv+DUuQrF9=GQq&R9hX2~Kdq5pX|VT*@jEv=mg z7f~Xyc0GW#&0YJj5Q82f^#PoN#x$KcUVR_yAx4BSEJlA)hyeLwef)r;pFCiTbd?(%({Jg6J-qWl1Jx zjGs&8@~c8iR0KWSGRwm0V~!=qg3xT=aEv=n3sOnoo|`m4&Tdl}jOrn2qSCL4knbU2 zWRgXQGBu5$b3rCffq9m>AX6@JirEq8Ax1VZs+e%mO$rBKRPotA3+qYZf@$uVOK!}j z-iM>XzKCil4S`O?Z9-rF)^nTpT_Zj(#3PHyEcUaOh5#bs4j8&tyYX=YazowO(h!(J zeEFE@(hz_=T*u!dXdq;E7Pa_(L7Zlj^?%q+6|-m3Yekh zS?0rN?zRvgSGeE`m9_`7@yXv`Oind`3&T9!$rCEJha0odJba9ZG;_Y(OPDzi$cI^m zTYT^p+@by%L3aFuj~IPNYD9e(Ng`wmK;iiom~|Ie7FtO9Qy(aP5r?iW~O zQdzNOfn_&@9g8iCEhJlid(l{_WxCUwrQ6=U#p8wdY=c z?v3XXsU)gE^PERhs2L)8p-8hxQ>>wiOjD@A684a!ua@a_=W6#~MSHP*$Cj_RjsM15 zK@fnXOSg6%S|9L#cOEVOLjxzks1Uo*uLtt!U*zn@-e z+o?lbhqei^FT}^ke%G#Jk5}V5#>W5mS)qXV%TKQZbMLoJ_~zBFoxghn{M}#Xr`Bz| zejS_eYS*^k#eUzp>$fk*b&YMG(79`mfFd8nejOK|(6z@it$?xb+jfohv)QKQyRWns zi683zM9ZgIKK78vPv?#uKxMD|5Lj8;?>RQ#1rq;X8^^xB)|k zPem;S6}^y<&^4}Iw}jaEmhI!2;dj@~-hjHhc52%({-e0~xON?5TX*J|>VJ2c;$K;6 z-?sfXu}sItVddR!uf-;`VMg3t$-j>6)U{iugt+fweSM$T!LYl|6+bd}i0vZSW#C=s zsa>~D9XiJH?DV(rEuHg)cD>l?um4ZBRka#xX-YgTAhYCc${8A6w8+|+6fwMIj&)#NM6 zH0w0$H7^{H9F%nH{(bi!{_x17JtBYn=|BJd`InwlGS!RfP4%JrQvIm@R0=hK8b}SI z22(?*q0}&HI5mPANu^Sws5ELcHHI2Xjib`33~D?zftpBVQstUe<_(&)<|^4Z$3RJ$ z`M5mYF-+p7hD%0BMoLm8qaZ!flsc4&4V9v;p3LflgyVakmO4iN(v+%Nui`j zvPe=aSqv2{fzML-lt`9ImP=MhR!UY$O5x{f$r{O8Ntt9FeAdIK9Lj8f&qhgwWRs*) zvRP6k*&^90*#>{x4xb&8oswVS-@7EcC3_@$CHo}%C7U#rn$4Oj%@)m8%{I+;%?`~@ z&99nWn%x?9kLH|dpJu=2fQCJ&IixwPIifkLxuQI#xvD%4AcB(`_7qsS8J|l)|<=Cm9kXxRruRA_|(AXI(%-xCsCWE?Ws-H_R{v& z_R;p$_R}7g^w*|ntCd%j1GEFRf3*(MvV*llv_rMSw8ORR2<=F1s+Jw4Wz)1(^3hs$ zjFug%WyfjRbZwdWB$z8h%Z`U%XJ}_?XK80^=V;j+ZLT&?J6G%0J~vN$jGnJ$7ijaf z3$-5?$o=s%2Me z*)`g=+A?kTby{}4wp_bGyHQ)A-K4G5t}<_iPnDM4qIFYSwcWSDkL_A^hn77ey&>7D zy`ljC$}afhC54;X4L|q5XQ_tWtKFyF55FGJvIn*7A?;!95$#d!G3}$rwI{SEwWqYF zwP&ySzE2WqP?oUrmfLl*WS=3>XLMcx}G{Wl?9K4|nwD(ygN==`OKTbZnN6oeH$mpxL96W0E71 zi&5FSW0t`YR7wOjL&wg9FJ|f3OUg9rfINkntz+lt&TDgYxw<^vT%B9T&eO5;b?gFN zZ*9JgU8rLVbd*O|s4LPfcNFUu>z3%2>Pnyv4&<;*m#N?m)0gWmN3DdvtvZgT9b2wrH|W@nx(eMUU8Qcbj;+$MTXgJJ9lK4(E>-OmO>MZ+o`*jC&2X%))za@%gio?1ix}&;dy5k_u3HWSR>`eidMZiZQ=hEw-b??t-g>r= z{%=*Ky>%2t^N=vSEs>Q|Zv=}XOn^}V8p>ZxJ+-q9oUeWFwK zeWTOh=V(1OMsFIcAE!^(XXwZ4C+H^vai)HSW0HPg^ag2#X|jHbJ_|lm;WG_B)8Uh? z9~3=P&rYS-SJy4`j zU!-58FV-*CFVQd6m*|)2m+M#PSL#>kOZBVa`!)Jh^IH7|bD5r6r(dt%pl3JgEA(8h z@=f}exNOLk`jC7Z{0zO{c$~YLQipzDxB1x(x29!(Vx|y)1TM>?SlS-;-a3tq`$1M z)?d+I)nC)s=vO&z=o1Y|1~^W13Lh|9B81p?6QLl zrH&y6cBo-^^lF`B{VZ31i{G14% zp2}oprom;HWSDH2VxR_ThG@9--&qD~s$rTTRgEz#GqC#%?0&-m!$HFbhYW|6 zyUlydhYd#zM-9ge#|?YUCk^Z=1AE%Qo-sUk7PN2oa}mRZNFXErb!p>1L|Gh3i-WwtTf z87ITnG00`kDDxODpWzA^RLF2eOfgf!EK-#+Xa}>C;q&zH32SySyO}*q8MBw!$Lwe3 zG&;!4ZFHC^G9P7%&BvJ%^GSv)XSfQ6JH>FP8SV_jRWjUJhC9b_=Naw-!(C(mR6wi0 zxJwLonc=Q5+*O9FVz_Gzcb(xjhnAXeFgwh*nA=PrwlCX{<>FbcKg$hZ2eO0M!R!!r zC_9YhhO=A(n~p}XBiT`GTB9*+B0HAd++ZBrztMPhr+Ff~%RHIgZJx?bF(?VlodkD^bYj^s z^CTaeHBw#KVE)Un@d@SvO0f!vQZQyqKUUsYndWul=g~^7(AtR5?x#1w0CtJqAiGj# zk8N$7T6cNdqIYH=H*m(uNW#CF=+BL!>$VlOaZ!!`Ge5m0?h+Ld888r%JXH{WQ-6oc z_R0H{++ex<3uV+AbMwOD9~KoAQQa4O6MlU}>@6B%OnAB2Yi&{P-5+6XSd>2K1tD}9IqJ5?&+p5p{=}!E7@_x!;ecGaJ^+tWyMP2Wk@T4^(rP`D~ z+MF`Kd{VPFMST}WeJ@Oir#9lUQbE&sMD{(cI7`=eic7P$0~itJ&So_!L9>z$Y!B_>}Z*aEc# zS_J3qRuF`+UqFiBfY?&D7|w?k(|Mi$^#$3iA^^4}-KMkcmh88uD{k$3S(l9R7us2_CIvVz#@v(#CVA9iO|eq7zT zc>&IciHnQ?$}`in@HZ?~MV}!%wuK@r^R$o%oU>985n3$sv`A#wyG6GlaF&TiL>V@E z;d$5y8{TFtkM~tu;6_QIU6^v}-H+mh8|6xP@rRSDKwQ*m#Sbo9Krw{VGGQF{w2}y? z6{SRv4BQdy5Epe|HYwJKTw2UQg{WPW32w{%-6`0c2Qh~lbEZs^Y-k#oEq2TKHmejf zhc0t;Hc=*=z-j+n#~llr-|Ug)V`Zx(6nE0Ocew+bqXalTOE0lduJPDR$}oDO4YQ{#A?oTo%SGbI6(aj_6m;2QY9s@+l$vtWwAqXods#VAm1wx+QnDJ z#D`X96PsNrP!bai7VC=8TxcLYTo-D(U$2n_-28`s*b&20s>ypD>ea+i zseJ7it3<{b^G|UYm*k2bBjW6f3B%|zdVc^wH&v*UHypU}-2w9CfjXPEdg!mFxu}{= z4)cuUM$8nUleTzb*`qN7&pkOc{c}4#s5=yW!0GELSb>fJ$SjP5X<+4i*ndm?_F73+ z-0)>{HetMncY^y`uAB`5<}WuCueEj}4e0$C0Y$w1;4Hxw3z1CR@89-=lV!h;@Kh3% z-lhYl%Kit;McKrTwb>)@ctI;mhT#K^lS0Dv6VmC_K4lRCW6!P+>=dI zwYPesr$2T{zFQA-xpPs;q3>~7Yo2HK^A$bUv+~tpzUSBRF2f-3?DmME#rOT>JlFFm zTm6@z{o|Tm_vsZX{Caa()IB8v(j%UgJ6|JvVq?AoBXGVKZ7_2yc zZLFxUJa8>s?=J?5N_qVGCnTg7U4XxD#xhIj3KHyrPs0Nw;?LKKyTMH;=gu8K&#~<6 zb8-vJ#{;%w>L=#oheVc4)N2nxguyPNE8@oPpV$^d=N*~{F;U(r#@U6@_efIs#HTCg z?@HI?7S1jcH$3AqecMs|wH~xT_1AfMp50oLH!MKnu$wl^AnF!*hmCjE^_8$~N1*dA z(8=B{=*+o3+=FpTv^D+`6>o`b`w~fkLuJU_>s~(Nh6xX-Pw&ouarH^2hgNa#{y|`6 zYMpKHu+P^)1iJ7J!ByM0$qbRUyAJ10EQANU&Aq1p2POK~*%wZa;~#%rZ&)3Yrv2S+ z{;@|#FYz!S{PhCa^rKdGYUZKsUA%&h7O<9I&SQyR%HvQ7$nPCIJY|<#)nlAn)MLevoMJS*PoK_c zc$>QU-#~PR_v$|e8eeMe8a}D-{+zTwS(%vV`gq9xJ31Vsd0iD38CV9Ildvu88A55{ zNJs+fP6=2>T+^_vxTay6aV$f0uZT$b1|0)24PS*3Z;9ycqF;`WoNbG|d3dIo<8f`W zW@8#dS7{4&K>4v#Lc zk1hj7m)}O0!QMuQM}Mq+Mt>BnWaaE+{Nar`oaE}D+=uc zW}Fz@1In;Dum_TDyyE~O*A|xw$5~LFvN-=kA{|6f9AlAX8sm}&t?Rn;UpJ|zZ6Js6 zpRS;vG3n$2IhMF&d5*aBSw{H;avU<2>18=}z^@Ao!HvMs1L4s3nv_yzqSo!l8lGBQ zbQr8*i8O6#&WPD#SwM(>hfND817(@xl z3gP>BQv8tH-jACsvA?AX*Xc7Ljs>F3;|6-Tcad1LpKI#Y_*Sub{yx@+d z26n_!L*a^Y*D}#eiZb#8uWDpmSH-sb3@9AEngBfTOx`phX+1gcW-Ua)uG9}`!11<@ z*tw2C9yB^)A~?G&&SaXjr1QH+0$zS@zDuI%ut#`4wJ#>AMgB~`Sqi)?`+$vwAvuMx za(B?x`$R$$84as&+rKM=P}MeaP96`qnn|_+>qs_y+TiPq?Jv@ajb>sTeWqOVe{9OP zTOhNu+M%#l)}@lW%b(Q+k_R;Zdc_6TI{fdoV@{!dK541Qs=di7#o}uZ+4Ma6)>=z0 zV9|~D(j+UZf0-FvGEY|lI(<7N+y)|6l(cAC=|r-JCn;n5Y~L4PjoLM5#&AQ zyjxS4*{qD%1hi;i9IuR5$?3FM8?~}C^6ZUV^+mkV{DwzcZ#Nr#Wyj11^XuNrFSR-8 zJUj2z9g({iu-1#_u#mF9J{o0`=~(ExDWUcQeRgri0nUTPZWzyhrO3X-kUY-F4gxdR zLLgtpK}S3C92X?MdXt^98D(DEU2=))taugf_O?pxDE03A{)vfun4~(0jlm7WFu?3V zvLW{7*Ziq43yxI2H7~+}nv*;!3M-NE^zS0po6N3ESu78}nq(1Loh(2_5zB?I`aHyo z^vb6$O(j;{DNqAXo6xwMe4Hw;-3o=~S;uAC|I8Qtna2>Esl-@|>c6 zqGeW=2P+}BGT{^7WMX5BNu$Lk`RnFAEX}TKeRnrj4LK)93E2TTmT+dp7HLLR+N4J0 zcKl9A(@Omhw-I%;!wO`X&f>sG8!3-}hEG;=Mgh>N2``Q~-Q+rO8O#A@Pl}Fg_2vU1 z9upl@0&&~-Io-y62vIIRjd`j>(r?~HQ2NR+(ANe(xp`;0S-F;QC9@mRbj#v;(TP{FO zFlgqBe`;#lu zwMGy0NDS-pLq|&YBT@>6h~3j-yMw>_V_r(081MOnX+^(yap~) zQkx^h=1*b8GZAU)eh&+Xr_&j^vKL;i$Pkoyune7s#9G$Og8T4B!E@aPKt1F1Q-80v zgDD|_-k+-&Jy5F1vY(WvEDlyzJAL~(BK*PBZYP+O-%ieT-#QcU(uyr}vi!OGxmk6A z7EE+D4M8l#5xAQ{t&iHBx`v~2ycHxwR@E9l=BpE{hdcqVo(${qz97gvf6TFveE`e5 z=?gK+7%4`~I8l`#ue?Ezh|nccvs{#q|@vc;itmEpzpg+w@?ZNrxZ zWisVftKQ`R);}-DwRBKl#t=q&DGMT{d<<98^!}jArH|**>l2t0!bOV0gh7>x2Re-x zpf@HQ7oPAEI#O?LFrly}-v42?>yu4)M;8W;{Wpr%AZ<}Q0K9E+)wWKpD^#P8okKO_ z$A^ms9E(?+r)?IP*w9ApsG1_L#eGGt$g8W{T*@t5FB zdLT@=wZNzMsAY{uu)6v^4kP5%V|UgL7w5V_R=%I8sIxWa5NKAkg*B5dhy^_GZ(}9*awPFN_!s>1?m|3vj#Zb%|Pp!P2=g>!Ch-|3gcB1#5TA zi4RQ6&bZY>mtW%2CBsfEr%R`IS{My|9VsyUAz6+MYFP|EyB427&x*_9L6NRV>%F_s zKf@@>8`3~VsoT=EDfQ&Uyd#efxScF#QUQ0&o1N*qkbm|>NFAg7p@wSzp#-cS(;WY; z7RiG`Z9{>~`37(rl%(t;fCeS-OA-VDzb=*Rkeam(NuXzS4E#){_C2-!p*;K61fr~e zHJ@mXG@$ns2YZyD^2O}u71oYl90Qsj8fLZ)F7u27kpL|RQ+Qrh7?S+plUuy2&MJ|f zt=zo?>P2Z-1NNa1nG{OpMG{^^e}NnkyWMSzyjbn+fH%_hz@2>QAuOVmmL`Bq$puO{ za}wNeJaog@rG;allf1B8cE^8CiN_GLj>MFKMPxKnuLFA=Bx7XIfp5}->ckdRN)LMb zRyv4nLcm8+Y?~w_r<#1a{rr1zU3-&DNJ-vSmYh4R8eQ(4VHHk0!mL1f8%DB!3WGbm z&C3bfS}X=@3ks_S999ReSr2&+Eu)q|1-z2|24}z0YMgE1ArmX$^Tz~Mf(=UMku1Ty z3#>`zUU3|p8-p+R&~y;lb^sIq_X#d>%v;(Nt^cT8aG`igp{}un_*RT!j=Tf=hOk&M6^@(oo|(COmZ&{6~$t3#oDoDyYmMcDxsER_m7hrl)gQ0g~j?Zj9Awmvf@A6qM?n=MZAm{ z<&urr*oWz~zRCufrc{j#SEZ)hgkhL=%5vU(@nuX04eI()Ws3kCP=g7z3ZLNnh@h5R z^Rb9e{tW8&0f#MMq^*DQhs%2TrWB^XgR<8X>WhE4A>vg3c7dkTMYA@R3PhtUNt<>s zt}8W2pH4nTpombp$<8t=YxShJdn{huuSuLhG7x5I9QQ?1pJgj+^4GM0WGM7@C;ZuH z!A@A2SPh*DY?}eypnV_Q2jR>AfJWF*>4Ql)o{Cl0Oyt#{HTR`X!ayPFQUhhath$B1TNaJM)LL)njK}7Vkr7ZFQ14>(5(|tIA+LLA9Hr!;Ln36chSEID29uX6O zwWnwhw5q^#?9*ytpMx%Ac zmI|5tEofwAV5XV36ulz9C36EciY*^oXLK!c<{?$BV&x22yq&>21cu+}`&*sskv>#OQuPqig{iZ41{FRh_(+mdfNnT6@JL4D{5&MBze=$rX09xqP z_fwQV+>(;O^8;~i_|vhy7o2b+9*zIHJOMnYLR%^9O-U00i{;+|K2j}7LtZ1JMfVJV zue0~hR=!?z>w$sPe^UhJ-$+(C&nLG`fXatX;tu>tS9OC=Tks^D;`#ttpnUj|3eWE+ z$XT{ylO{c@SN=dmd}`SC67@qZc_AtS!{J(si(DW{EJ$4t0r`nr5L_W7hU1nfUs3M$ z#3_sT6%z28#=1etUU-0w1A;^W2jP{;T6(N>6HXw24=s!&hW1bX@A?WIJ6=V3NDde@ zrZ3AZ95g7tq&5U;GFkEQY_f_83W?3zS@fYg#Z1fanGJ*scJl7D*5nTADqD7RF(x8N zIu7(97vxuQ6_pyC7eWX-nc7QQJT5>C+A0wCgJx8fH)*>Jk$wnM*|Zn3VxT8=(0?{_ti*e2c zf2Ilk)IFM?d3MPPWoy4(A-0QcRzLpJwB0gLg5R)BLraZgeAtqv3*0= z;W)b(T#mT97`RU$P}b-ooV+?m0^A`xa|KtEBVOTfDG(&5Lh_6~g}AZgmAVOYWfh1N zZm$I!v+-k$=ix#~*i!RO$g%3SG-BuFM$2cV%FL4p?CV~6^@w>aX*vD^;79>u5?Epd zu*w^>K-Ay?Sz>eK@lL^yF-|Jr+J^xKhfCT&hn^qkzfXd%Ct=>5nVMiwvf9o-q`NI_ z;qqj~?iWvf`k!gYo zj3}iYUi3t-yh}P)Sj45a^Uheda^)=jjTR(FzHcz{1S{MQ3a5SlNcFV`Us8H6hQqHP z9XkMV)_i!)6U$zYa1`YH$$!)zw&Z=b2^&v;{>nSOVYi)zx#zr9P%JT;#73XvAHXNM z|E~60kC7w2?rU}j8!;cOykoz~Oy6|F1;HS3#JBUKodTOS@*Q~j zZOlf-%M-ugt}R3&031K*(1I>TzETd+v@ZF<)el%9+Emxa>yUahVml*nep%Pwjtq}( z5peu{_5%cqR+r3TB`&3aYbi#GpAA&2PrjG_=z(nWd(sZwP-Gyse-p5q9vaieq+N2B z^fbr_Zo+YS-j8wKGs%c{`!=lxw{HY+SO^U}UleK>5_^51hGd0K>}qs10Y`=yd>xinK+BeQ3ygrmFMS$;)C2&{AA+nP&&4hW_DNt zx*$Q^5kPM6F*!3VyxZ9)o=~R3vj2YB%llNIBr=iLy)uq|J|5rN!zOtrZ!PRdfDwdk z&-~q*XygSXVqSREq(G#82;5j;yMJcz=U((6RD80rsJZ2KSz0p`HujB zM?U&TAaVK|7&rvjNbU=A@(wXMOYSok4f%~lv~)RNQ88ai~L2Qllb|miUw+FrMgJqTf!9cXw z`=hrXX7)p+iZjj%wM!p?9S&Zone;{PN6xB)U&Si*>#_f35(oC);2iPTUu(SCfdW0= z))%ET51ixzM-8hCTrKHu7LUpj25V_rmxnItk5O0R(}RxTz#Gj*vXF!4g*=j@hUBjGmG=tI#JCWy{fY;)Tq7{-Ss6DC2AN>8W zGAe}roT#f06(_?}fJw3Bgty>?xZuR7;H0RZEU;=1FzW_x1LmW z6e6Mm7pNi!v?8avp^W+@5Hm+ar)(hDnNiI$k^D`xmJIiq(I=he4`5sJY;eH#0Z|7=X%<~u;wdYo&mr`Ei8%??9+$-d^qx& z<84G|8!Ewr?j&VL;spek$$uqkcpG>)2Vz*KuAxq`1`LZS*5}9XCspTA3Pxnr42Riz zG%BH`ymZK^8^++2ok-LAmzzHpu{JVyY!B7`}0r z$L@Wus_AngDiHMP5xxUV3{RrP)SKm3@JT^dlwMwm^kr*{3!`245ndP8CO>!b$?fb= zkv+vJp+5bHHV(Xym_sd4bLqd&;#%;3ik;FUo(iJs-JH3auPnrxoTc+PYE5<({N|aK z51GlYJ4JJCDLnhdF!G3A*Dd(SX`(xFK;0AtSf9OxS5jJEoZaO=&$Wm;!V4e^A5VQr z1rIg4BgaT;zrBMB$c#YPIhNJ;V}})Xo5bzi*3YDW#jw<4nIseD-VcVemxmU^^uWou3|j<)D#f*tQkt~js8hMf2g-qD0SHF~&5UYn&Mp0yj? z+<@lXg0MEPHsYztjc0ts_hDJu`VQR+JRvVl1if&?ofkhP^cHd8eDig&n}O{hH6C%3 zN+TdZcRPlYoqkUKL|L~FVj#nyj0!4%ip<2{+d98c8Q`&r9I7%f zwvgDI#)4=^kK_< zjz`iGn^9yZ0y&JkFhSb%I0^;2I+a>omGY)_^l@ijPcq6ls`9rml2u{jpzs}j!)FRa zMr{APBH%lr!I?t@rP0~89g?RU1Vam5lRENZgMm*h4Agy>%7Ak>*IoL6qKw|mpPow& zaW%)0Gd*Pm;uPppGvFabn51Be0sUyV7cS62w?_Ij=a#%Gb|7R!$}f4!AA9@>%RhWClcW^HEvM=?ui^cBGp22*w|*E`*LUnMYt-b=4S)-T?9HH z{G#H#rC)r~&q)%Y9t+J>HE~E2*h4l`W~%*frVQ&cL9q|x?plrsqa4%3Ue0&jO-Rod#iFZ?~FYFdUTu z+u9^}yW(Ivs|h1gY)xSX6bTW-2}Pk(1zAGQ|aD zEUKcI$N^T7LlP>`cyeG^6c-25G|{Fwqp?mNbqqRXGOS<2r>LE1vhb$SLC9ETM9-oG3;R@jD>?7Z3G%MhTRfW+2I@b@Y9|+kHN_FYnsbSqy*-hfo-u9RI_jpNQ{@Gn3pFf&^-|@R|C5GoP9~mspADe3#=TD7 zL2w|O_7|K-Nv?55#iyJmGHV~yDahEk2LCjyzg-LC^LNIY)4}4*-lIyOXux>uU%Tby zOOpT`&=FMh_UXo01iylgIW?hPp0G@i)_52R2trM>egvzfRCy?kZnr}ZihIG>ZBw}S z)CE_J)B~XwwY>bz;Q2K|hvi~T+XN6}IrF9{&_D-2(6dgGRi2DjNz^jL999epd9l*s zp(2T->+AETULC(thk9exqpo25RxMEQ|D@eh_kg5l-5^Q=lD(x8 z1lfJcE6S-QHB{?i3`gw^Ij&@Q@FkrZDRlp>tLbuyhI`}AcZo+{tF7?mADx+dgbw4R z;|nDYd6Lt>`Br!@nU>}huuhZ27nhy`eh2_Jtz$-OiQ~Ev3o4wipK`K-kiIV*z;sK; zwB4OZaR@5e8>s1Wbc6e1BgoD@L2CRpRg8qj5zJl zD`Y1in!?nvn;XAJK@1boOg7f^aL2S$)~%ud*DD5Rq+;}-Riy{XVjzSbO~b);&vQKQ zQR6CEXPORq$(ww5=r9F`;peESH+SsKR~5@}6wjIXAc1edntHt7r9>v!emMlKSG0vS zW#uaBN?%(_DfgIKLq1k6m^LCdmG@RE^TNbkGtn6*_5gDL^WDn}j$9&{{FmK>o19VA|TgE$}Enr&*o?b>O;edKj!k@@z15xJ!7g(Zt?lYZV^))OQ7E^d^Fe`})nmOL8hBT&bzGgp%Q?xBx0 z+-AJr^$&F)r-D&zyFH+G6-l?q*sm_mBP!NLulCkoW%&uHs?)ByP_B*_LszNknTZ2P+49&-w=!1@BU4MP8AG|77UdU z44oQK?>F*FwAkM{L+#27u2V0xMsw*w_rdGbgCj3Q<+JOW;GA;y!GH$LhyEqNxhogxx3GJH^A3kU$+dm171^)3u}$`)tABpM)UN#zh`*Vunq z*gvU%Yb+>JUmt#8Qxk}cI0r`7VD!u+Ch(C`HxyMV_rgB?Z(CTq_113m_Qr0t*mf~i zKaVl=y)Ht{_x#%4dF*?heI8G>_`X#i)3x|teI7CNY~CMK>|4D)YSZ(5KRA-BOjT{B z&ggfFh_~EhS>Obp#Vg%xjf%R&`oZ?WZ9Dxj(6B!Fd={ygp?}z20e$PWNbS2bd>T9| z&8vxcMn%TOJR|prUHNdYC%bVp4#C+>|4N;^lygGXLFbj^or(*z^Z z9^q$oxx_r#i)2=&C~N*b+Cf2>8;!m?!`Y3ENV>hzADNK6FYW4l2oZfxKRf}eWxm_5 zx5J|D?~nx*ADO%PZSm*0NU!p;pY%w4#m0UXRzxL@9(J!K!bVL z#>7dBG$!*2~cS{+D8wu56hjt-58`#{|e->08q1d{w0LVsDCd{zH3#@`#TCr)`e7eKqdL94Leed@nCuYq`Zo9*otC17AVu7IlS#0^ z!DCnAJ!9wi5&@qqoe0=aJ#L+pwt9X@I8-NshxqSaV7akqJkPN8Sj77HtnR^(l~%Xc zm@ht%(v6%zHBaXKFU9_SV8urg9DdI!fi6$SOPAg=>rI!^!d`3q2Q9j=p`hSBiGtsH zmG|5@;8x&#H+D^fn7hq2dANAay?d^qW0}sc{fm@14goR>?skQ2@+sd-*blc)ZVZ}4 zVsI8!eU3-@>NQcfd+b^_{>UvN66m_v*n_r$E>V}HNOtHl{C@ul>Bp>Ha<^fTpZ?34 zlld-ukp1QrnDsvk{^aK-C-(UBEp&+>VD-2#W-IXi)I9h5KGN6wRkgGB`*X7Ovgaz< zEV^yAZ7CCci-1XDn?{hX$*P4nbOARCF;EspG@#oV<`f&Vu%l;v|AsU3`|>xsUAuef za0lJr{yrYvS5d!3Yh|#`sX|y?U!)vtqNvs!NkC zX}3sPLR-xu8`@UAHibv6ql$MWTY_wibjSPYYT+`HBL5@vz4W!d@B1g;j}re`0(4%G z^$(o5$h;yeESvL$XG}xk}~hU zX{Dk}+Cs8H|y#=foD#g>->!s9ISe%>(hK^NVCyNykZONvTO{ zNh`=*!$cD)CQ?mgTz5fi^Q*$z6q*bhgd3C_q#LvwAOh{uZBlJAIY~Mep7Rd}nIIOS zNyJi(C8EmI8$=sa8)O@B`PYGe$v0>=ApLLC|3?txCgG;xCZbkLtCm*bRpnOcR_#>r zRWYyVt?;k-tpKCBE4oU$YPgEJs*d2P;Hl>-=BlPv*HKZcuA!BymaCbo>X0cO*F^D@ zAI??-V5*|4WU8jBXsBkQJXJNa9o zUZq~SRrfc)@Ya8_WJP}Tsp zU4&VMS%w*aTxckEK4v*)F=jPp!66dcuB)a%$S^nxk)P>Y1CB$!nZ}{pEa+rkKTZ3u z#^QqG1mUwNIUbqiJS!ZBZnMl_c+$+gDyv-Bs6I_*<%C!>D-B&U+cqv72gXPF;QVnC z^n}#Jal(66)IJjMpP(Xii~kICgcxotya^XhmV;r{L53A$MTX51JKHRiTzAOS0&t9N z7it#ZRT`#UdhpjeLHB6h#OkkR6B}0+TUKk9>mB^h=A4&YQ%;{%vyd~J35rjfW^kJY zpcdN>XIjd62>>HpQ7sIxCfa^Ryb=H7&hqc?_;mt*p|8kiXx@UV)uBkoPoYk48V=%Q zDo2F{BO@yY9JE-lNC#1&h)8&7-5-4XEJSYN6dbIqIPuV;g+gOtl)`(V!!DdF%R3dB za+bwZ$wJEogO-DP1OY zu}WFz)Z`ZBR>>{OFUhaX2Fy-u(oWIZwv`Hc^=B02*5-oR(zmEuJQmEXooJw2b#z2% zgNe|uI?3#hDO*@>vZa}7rPS$~9*{_}v}`-s#-nYfZmMb7wWc)>k-*!QvCCxF&Med| z)UDJl)vejh+b!EI+O66x*oEGLir zZKjoOrt!4UxmzvJpY@O7T&>yFy% z;>&6o37pjIly8^&&L3`8!ElHRh;xX`u(PlWfZ^S-172rcccJWjZF9`BW3kI6o$hx@0N4Lr@$12Dw&#u=l(5}!fkzTD;BRuVFURgJ5woJQBCOoZBWXhGs zg~qkorP@^{=xQE!p1IIeXez9Y(!x*+p(pH{C(oWE)Njesbmb{J|Bx zQy7nfBqckPT_ehstW$Xhen)|+|Y5r05$pV@YI8A8A$Pyxz24`wkb($H@luZW(%Mr9;gf+4b zSBzx`8_^{ih6CdtYYe!b1~ZEa%N}+}#1lm(3nPKp_(Pt zCJXSU<;j^W{?3OKYzTE_>`ddA#cWJn8NaZIr3K429y6*KaZRRZ#j)_vQef5P98hE4 zpbq7l0a#$wCmhVNZg7Wk%>gj5?uiHVOxvbmU4stlSanecbxhl?VOzMJOHRQXrX3^O zW*-f{8-BDHb57ryc0fD{c*F2!;SC}ihO`_x$H?n0tU-7aaYpXiqYaT)8f``AoNleA zyj^3=iFD1fX0KXhO{ZDp|39$m)&DoF>YMg|fmNe@;DJi93ofcJ%Cn}NDzB`}@Okp_ zYNb`_3^1Cafm%kcklm=VM>p3^ZMeT|(@iy)*Q4d+$`p7;J5!I-x|{1!Zr`K++^$xp zNBXf;nSbUR2QT2?1dKeTb5!pbb-T7%P*?#WczOi0K z>TW~gf1dkg7s~1hDpI$W-v@g5d5ermJ>I}RhvE@dwe+1E@}5uotGMohMa|9A2P*UC zHH{lSM9pIZZ<|l2!x4U(>kyBCcDSKu&C^j)Y`BB*OEgCyX}eXJswBYH)i=dmqJY*+ zA>;dw^nyWd*i;9NMZdleusP-WmKlV!#N9tP(8N)ZFpy%B4(^PxKL|Y!5yX%02sdu= zNQs@l76c0e5tbls&_affMh&6T$gw*bM`>Xcx(rxXG!{~R*G@imzNNB8P=6T>ZxH{7 z`O=mnaNM23BnEAkWn`(9&;DVnhR0lxXI1i&EpuqFH)*mrX|y+K_SYWj?TGWW2HkQ( z`FufdTVY2Z=-bi^P4*p|=)E-gy)pScFxjIq-rF1N)gSF`kN33~_zX$@F37Rfo$&L> z`>u$wRT=Tq8ELCE5^!wFPixLsYs$|z|J5AzQyTfHj{0tj`ktIwfbH@7gMZ?h?`B5DCIWsAq+@MdjS$ni`!P=Uc_)(o5 zRc&fK-2gDRc{lY+MCG|P@#WeuP<%Ege~(POxHa|B&rhLW_-j}E`WF5Oz&!gZcIqV+ z-bOP&eJ6-8I5*voPrQV)18oYn2r1YvBM9R>2N%KxvZHP?S`00q_qbH^1KX~|2e2dC zu2tuLC{-v5V541*6)5`>Zx#|nyIqV8m>(T9L)~qNzS$uAuw&(_sC+&z1NWSh%it}m zgg-4C^0|sC;H{{*zfLgqTmbU83(Ms%s0JCjxXv3!m;GSA1f;a;5US=Cgi=2$&${`c zbQcvw)Ss6Y*uG(1MDk-LKU|`u@WSU{=m`X^pi9k&;(~48W(8ldF zBAMZ;72^!qxak^;pCKSOO~ysFVP}5+D7u3z^aM1o5bl^2wBb;e2TrmT@QR>QvlbA8 zs@Wu@VOA)Ewhjqivli%v*|?Mio)m;~n-s!pSCF7zRD^Py6~<{-prBurgi^OFqM=`; zgmT*!&T3TfK}eOBN;<77({@-UU^J;h$y^&$PFYzY$jHqrw!<#l@wpPIIx2H0IWf5u z{X=eNIV}^c*I@IDS>iY z5lX-vRt(^>g%pQ5Eq5(5&NAi{BLk$8l(tPKFyo~El}U~Y;UM_S2gFl2sgNaikWQ#t zNX?fCWzWhblR7VvH3P7cHtw9^zj9y%R1Qvg<=OI!(H&Gf0Bb;$zml}Zm7+PT=vp(1 z!#K*2u~klKmpx%joByvou$8Pabt9AOfUs_hVmj@z7W}~JCFhD)+-AQL4wn^*gzZTM z9d2uCF*#cqIY$}2b_EUkMOEm9vFK@*vTtm~r0@vN0ville?*;jg^;+*kT4umQ8v02 z=I^J;xdTb3X(lnAp=kTT7$wOC3cDJ&Lg=by1=AObl))Gz69D1*Xx{Jt0YpH%zmA%0 z447h^CQX7i%{W~;-8e%!!2PnQ>(4;WENQVZ75qR;d8BEQ~Dxsn>faeI>k?a>!sg6iE&mizTi~To`nJ5+$Nr zmO$_03vngTgJ@GlJ;WoD>{72j@Zr5IUOXk&NWIYb^uGl(O4dr_!$?<$$3AbXRn}eZ zO^?N%7a=#58@jl_oBbr;3Qug82UZI+*RscuZ0P`jWC`>OAd~0>nol+|k{<0Y>Wt%D zw7I}XG9t{ha$mIhtG$jJ=iTiEHS>tjwO8Es_8z40D9Q57nRLN9;EiT0ROW(SGpP+BRwGE+&{e(~P#yeFA`Cxl%- zT)^B&S}K(#(j#fBl}d!w$V090e)(4&gqPc0P_L3oT;fGR3*QGt2;c9K2aNM8Ue3L2 zyUSAYqgrNT67!MfId_aO&qP`ym5rqn>BGoMjitxYyetzZF{`r&gW}ds+D4T}9R!w@ zd%yXz_+~e9_{1wXc5c8H*2uhqVY!1fSguah0t`QG+9B|hU8$1FvXpk^0fm*yQf9mO zsRqgI-+S{D@TnUke0CEY=!+T_)<|!HyQcb@Nd5tUxH*8hxe9BlVjgTSa}*>(PMIhW zaxATt$|}%Unong@flecyW0l_ETO$SVSGh1QC=M95YWqR9pQMTy9$0nULEvQ98c_y% zw&33ch$brnwz!Z=qHo77IhgVijgDWoELL|gMfPOwezd&JKs8|Gqm`@hE zC!Qm7;=Q?Ba`Fn&?qnauLcwz}FvPOVPJ3ypuwS*WR!ZDk{{O$&Dn>OeRSil9)5? z^K5*I#u{__CdD(SZOB`IVbkS(QRuIBA}$emxx>#A#$l;VOB1&jz?6CeGd}CifI0q4 zA>n>IZe_jjuWWLjNn9QCcWnNuTVU9<_0}9h86Vtg+jPo7kkdrk|7~a?Ig0^~$KsEB zcxedB!k2bxMxM7KgwfxX6|_hVUHu_>DbrWMl801VVL-BIfTkv zICEK_N>M8_1khVSD@y^bY@0G3z}!m4&5P>`{mc;C_2rF)gbje$HP%_^NABVz{i>g{ z@d+o1V+Ix$-erBD_b)j7O%%fgC)?WYwkFNyqC!6l45y=CIV*BQuvF#*ZWtP9rJTxK zVmg{rH8{_^c$=yGe$<2I)ua1a>GgiT&jX*QDk}!DO)q$a>(Ri0VOi#Uaz??|4i=I` z0FGy@pW6sUg-B~7v3E8;+bD^_mtS_=r5eKgKNZsC#v0(~0k=VWLii5Bd zn6m!lzPsSQS08`;$;Vyk?@4@k(u)rVhYboVCYF6^^J_Lf(=bUa?XDq~ybE@cxaqa- zw(3${vV3=`E-GK)uG57B^0)^`UrBdKfAvk9)kAxRv_o#p;zhBy4b4 zDLCGJN5nN7`@BHrLvHgGhKbhw$3`gPMPwxN$3<8<4<2d^T*a@6aDj*VkjFz!f^kP5 zTXhXAx=i7!fwia6bTdT>Ww0<~z4Xr_jBAxNoPC7NPhBe3&d zO>O7bMZTSjB&j&?_iS<^Zmbe<{O2M+Vi6xSxUE;mM9CA@<96xg%iZD)O;)+{1s))1);w%8kHd1vP42T~@ z7Gd0@q+Tdm>;+oSczP_&Ydz!X2}BvxX_gINC5ANI<``kP@pPb6W*JZOS(q)45*PQQ z3yb{h0XQ(9NwMLpt+=xIV!+IdEvk{k7pLN++6dJ{uoK$5yvWyvG1ubRFmM9$dbNP8 zldzuzXW&Ac?~)xx%M%z3=(-Cq{*|O1{t%E!I+O4FQ-a=i3F`i(M{I0thYm!mzLzu| z7B)0&w~{0nrxfMj3)quZN~mY&Ma@ZpYcm&#)x;DN&`R@FBA@^LKiQ<>1bPfCYdo;9 zBv6VL+x|!ymgM6_WOWO-Hr54Y5)2!ria*!J16>>Z@8NHM^35l4(J>LEh4SL1>V+~q zY*<(s(Mq7(DJ+zmfpDrAD!&=XpDKpRhmk8~ovSP&DABlH!>$w&%1&bVyR*%PskGz5 z0%q-m^cIGaJ^7UWY0~0sF(4aX+rwyi1~Y)Xk1)Wqq{aEqWi}sG;xQ{M)0}xXmFU-s z1n09@91b}^l#I=Giv<4+qGafsd`0yH`3R7VgJ_auOp5nN#y*H#?NeWjQTIrgYMx>9 zQSJq&cRf2nRP%ss_k(iCv+aI#&yfRW|=H16PL*jaL|tg!8l589W5UN z>trOkxMNAHVo^7kgcevPn~0Bp`Hx~B`!^QffBmqSRCo-7@c*QW2#3Q|UqCp2nCgp; zAtG!8+ZOu}Ul>Gh&#_@j(h$cu|9P>mg^zoDSG!`;8ph0jR+>2f7%6=m=6?cNPa5CKaT?@X41e z#eId9$|i&P0NlsaWO@pDu)^PqF&EuPXnbL-4Fe)^!9>Rw*SZ}=n$aU!;*7v#GZkjU zn{1}i)5tSoh8C0VCSYdNFwaK1@P`30a*an<T^KHJSj|s9zGYSay zAlzcgek$`WykHlnWs{0s5s7+bo`UhRu5Yc#?%rVoKdS1Rf zWJL&C8A4id3l9k^uAh6w^@9~R)=NLcQSrld9x9f|P8!RN749Hc3>Bk_Y_{BMxTW&s1FK%ZIkY`3zD8OS)hM%62vK`y$)=I5#fhE-lq$@W_T3^Sok z`Qn5iI(QCDh>s4QL#GlgoI`io@NxHGHpAed)trJmFq^f0Cex3*0>j4?TH)CfzJ_BY zf0Y8b;DqudaZmXB5rISFc@E7Ej0X-KCm-+E=v`1EVy=NyHV-g2A22tMUO>cL<6Smv zTs4V>nk?|JP;)TxU>=&`d59%xFMr=50uFJ{3juHtM~i9Rezedn$1t#;DYFrxgmEFJ zU(Lta$!L&;{guA1qW=TXj}|}H!jM?UhO7L==bUgg+QDt zObAYP>2wASajGlZSIFXc9kWm5coN8K{ZC zk6=WhCd;Rg>;E2VB}_Lh1nBO7jUMQp8Il!3QH~JOz8ANtfMD*xv5S45=#T%KlwJw` z_;`tR6}=kRWhGJMWmK~QCWsQJn;o|K30A^P@TjwZU=Y9!x5+acHtYz4ncn+F%=}YI z+W|8U+L}r8$3Z(0GoK%^`KhgqnP5U`0pqXmRhCXQ)O z9}>uwLpPDq>*ySMJ#F3KV%l{yX}H3Z1%x9YZgx){vyp3F8&q-suxmC6oT<38qKIOXqOW#au{B!=7< z+p-`o~Mid;|9}}nXft1b#!I4K>^XUQ*@3}-(JL#6k z5o2s3mGyzcDC~Mvp9Xy!kO-V#Y4cZi9=BU|xln*H7?I|;t+_bA)?fmG`4!RDV!8z8 zS4cc-et+4+xHnZ?IvNm6n%3a+Hh*R#9DpsJ5dr*EN|yqFJ80`pdKUm#N(8V<1n?FQ z;6Sph);21wR*+>ILtF|nwJ{`3Nn+PlW!XONXXDs)XV*+pJRvTu`GSp9{~g2S-P9f~ z=c{qtRNf*gcDfq{7~34lvra!-d?&`n*Du+KRs-A$ntfYbL61mfi-K<&L9?P31;;la zktB3qcCA~~#A|_C51ROzBz=SW1sN@0V5YmwGu_?p6@{VlZ$D-FiOIwe;dfL>F!SNq zGar_my#w?!RKY3;p_8 zkDoq=?kuJE!1^zvt$XQxu>SXubwx*;QsVIvcTiMF3&~bX?1;@jDfM%(!m!~QMzkl7 z1P4@nkX_k7$V$Zr4G1FPrr!%9ZX%`he!$HE+Io;a1i0BxJPZF`J;k~fMiO%yV>10j zcVLMBpW8N4@*%7X=(%qMl*;z0L5gp2o0~AaIpu6N;r29^Y%jGhC7&2^t7x%8Tt%S) zbQ-Lp#K2R?7Q75rQ5tbq>-4fnxgVwUVW8X*+Io~e29!HYq+D4wV=3t* zWBTs?r0y2eJNio1)8Rgkfz8>2OK^ymiR$Huu#sWwj3f=>fV{A-X%$D&7he-88U^Mh zpy&zOdXg>&!W<_PCb3tkznBXgHw;r0;w_~lM40Jiz7oq|hIvt0NH#m-4gvr4gcRk_ zJ*Bb=K*}lD(kkfFMBrwNz}-g+=w40m12}6(}4RF|6MJV?sMXT`~TuP z5PK33V8}dK<5`bK14o5rnDdEIG2edS3EC);oi?5{o^e|=FpT$^y3mht7^@kimJ-xS z+!?HG&rH%)AqvwIW&e0d>`%zZh zXO`>m*6q7?Zy)t(L@ZxJE}Z`v>r?sagX$9ktZIg%&(v)mO@F3(Ojx2PpCU$XEUA_o zb=@w+aa!*wt)=>y4*j`)AJF=(m01L{l6!is?EFBVmb)D z&e21`v3`+0M_&Rtev!URn=b#!3iZhfHB%N~c;c)VPmB*6=Sf+Bq3-A(1nOSo!x*m6 z7hPctSLmzcQ()YMQh%8maZbK$e@-Oamo|E)iX8^<`< zII3XdxW-p!qOa4Y?e}BB{z*g(5$lyz{V~nIrPWL`DQqGfO--eLQvbh*`nAqAI6in< zR?P>K!zRJO#&qycKKQTXgW9JT>^)#FmY5PY8ICWe@;_PPznvv&o?>vkksVOY8&kuk zz%j;j`A^>XpW%%_l55pBx`5hyf(8lZ{EE3b~!D<1)cFQT1>Z$mx6HN zj20_55qxt=+vI=BK`yQYPC(n_2WXr8P|Oq-_=p(ZAob^LLd+hVCa(-D#f0A>-M`co zD%O8eiqa9kWP1eEn;+&1sE4DwpqoPXWJGt5peunrkv*?RP%l@EDclXTo9;8nl!zG- z6`XXQvzB5amXJihRuR2C;E^jV&ewd4mn$re-0|HNa;G73dn0oDAaZ*L^(E&|eAuAW zCrkv%Pk1G#9L{H}ss&`C)A?1%I|pQjttJK}81tio-3)|XKZIR>gk8TNmoo`Y>FaN; zz#$dqEtANlS0W6QE;OAKeg@~zy{!VzP#jaL|66LL4%M>BN!Mom>8m9 zz|TrEQ?-C0sM#X%aD7P7P-5`36EbmLg2oZGc1HzHlQ`^J|Ds@5qguc)gxyjRyJ11Y ziJtc}%;}^k4;U;{cURyDh{Ljh9E_)5P!4NCdbs zHLFu8ffyW4wf?K%WUdx43gIMrxPnnZV_clW@F3u5W&HlWtDo+DKc3V@$LlyhH&Pc# z4buJH%EjG1>7h^$s|Acj)L*9%^<#s^xwIOC+WR+sJ)lS^nO;lxxtB>oiS4OOS~Jn4 zb;*FZnuS<39kFUgkdP8|1+i*+5NXL% z@@uwF;6EY{KA%|XEkI)JdXr22F&MKj>Tt`wFq#>W60w`e-*%ua_#4BOz!g7gM{aSDi+$j@j?zrt1`5e?N6^VQn z(v;Mo*~FLh_BYdg?nn{Y)q82FPjwPbwfiVI%|$rPK{(AtIL!%~M|{E1p$_5(0z=B8 zchX7sY;e7OVsH?b?HJl>_LbiQ^MlfY76dJHtt&CO&1;liN$=*q>q{#`)tqn#Zgoz+ z<+Q1^0z@(V&<|5&Js)+r2z9s^b+{;K37NjAt)&>_0!h{@-c2X9!Z2kbbdWX$xHZbqMhjw?I11MnGVqo)e;Hox}%gZbK}_f(r}55i-Hy-6qg1q3R;GmEe%>uX5-{t zr34%?lYP(L*`z4en0fiW$Gn^xF*BlsI0=@8NR!~YuwZpSUf8-YF`i^zSbi8uzMI}l zCovBr-@KZR%It57Wu7k$g6e?uprvRfD1h{!3^L14A5{d5nhirZip_>;hZ8lo$NT97 zL18e=9ieE&Qlu3tkXEcj{8$l`Nt{SOukFBX+=!HQzpPO9oH}3xqHH9Zaz}h-<6Ra9@qMwkl{1 z(IE5dZMS~UiAaqoBQI)>-;!U6qqSqSW3}V7B(fKqGD)n(W&^$>cQRf(K|4`9iKt_R zjnhe*iP4s85f0);8XF$tfub!n)d7=HZ!0tcn5>;bCaHs}OyS#9#JOqY>N#q;`grYh z#Df_`4#YK0$FP}{m#ov+-AZ0Edyq3PnLS9lz>mYLXP|^vZ*47gKnm)qKcYTGJCpo+ z{*wb|4j|oV|3{5XA6+92miGPR!E%kwpx_+W)p{Hu7plAEk%}ZTi!2X~&MlAGNFsBz zq%l?hj(beakC+p&ml&Vuh{sH_5zQr=$WiGp>LpaNs*k9y4xEdYNb|J9eC?Y6%q730 z16ifzNVK?0LoF8|JxS9pBop7+AQQhxyI8wKyOcP44;?S5l|3i~S+)&!F>NBaVc0<2 zi5*d-Cx;*>X~tkhGvo<^B#r_PaV(6OA0ZtVVFuG{&C>nNa2VB|^t^*)Rl?oEGC!vn zdN-)51@Xz|A#E%oEenyh z7Lk^v%_gqX+YHYpg!{)aBy5Vp5Olb32r)!FTsRbTglG_WuX(z^*D^-i&&k@Z)F#ru z_9KP_);&h)pk!RW%U(b=Sg78t3HQl#qD2QK!{ zG)Z#~1=Ujr91S`YbPQ?t(V*i&Bq@DfEw>W66t?|Il2V$6R|n!o;J=XYtO*j-W#sz>t}^A$@&Fn?si|CwWL^16AdV5 zWexYgM#f&|{6QK|d0J%BU9Zj4iYDFl+6}}3^2YdVLLLx|GR3^;AX-l`Dt|aI*WVE* zM%8~76jc}F2x`(aVjMxuQl#pOUDHW5@n|tdQV|6izMoPt7Kze!=c-{xVFGWq~$H z9k^Lrpe@u2TeMpdEt`ppwT~OgsyUxSo4=tZl6g8q<}Y>!g<gdNB$wkY!5-&e)nU325lSIBmzHmO+7@`gwY8-4tmYiY6;Yj2|jZVuV2F>G* zB{UC;mc@f!mPHJT{l7>jZi6vXWR`o1^lQ?>Om#bFW&0$s58Fjz`?Ov@I+Wdg_AaTL*Q|DYi-bENKZBsMT&kT*5 z9Wok8f?Xx%R?5<>(g?y@O*UFCWRWuhe}7J4+%&|2$!M4#MjV)II^^mPBPMP^Ha>$E z$tP#$ufyj4_JzjCLs27(Ga7oldm6V2G*N z+(9y^VQBmN28A}X&dt#j>%?_#j%J;PgyQHg(}|`N?5kV7N7AF6#wn&<#;LBfrnp1_ zvUhJlt|m`I$HxlA~JTn06*wR~{iZ{h3yp&Ol91pr$9a!YOSk zYI=g)bT^|kO+ii1pr&WF!a41EwBb2JZhDDTn$AQ`FQBFuwZbLsEY#}-;&`vQI2)hf zf;hqa+o1HBiu87McvkhRNN-n%Um=djo!_P7cIYJiJuZ762iP_1HM3M3h}!b`=MIt; z4>QNys*_1v8DS{WN2OP=PsPzx;`XNwte--v8bFWS~E@|A`S-ay|?)to<(c*2y) zJn5xQwal^#Z;Q*|6g>A+uMszxHbA@5)qi-B|8xHCHbN-O>{z2VsLGK@N&%Q-d zMCRdwj};zvPzUTmJlq>DfIZ>+h{UbwlulgWVsNZ+Qo#`|u!<3m;sUE!vrR*qr3TBh z6ec|mPCLQ34uXva%aM_-6pqBG15P5297algGW=9HiL?=Cl+|=0+K(-#1{)_B1+bjj z;EKVC4XW{_(pzVB;Azy`@j&5B_*tZ1r(G$Nuot5KrcA-B&>+8oWN=d}+|u4gs&a!k z3wMo4CvGz^Gh|&$CTU}aMRf5u3Zh#OqIXccyISF%Rt#2mhqw}p`p!YJUg0_{`Bv)C z9`uqr;J(%#^Z?;`U;B`}{BIX6HM_4xzA5Vs_mOWUI=5YKI6@2pKjDXT;wA;x-D@3{ z?vTI02GpI?UtojbxJzR&iq`Ftq-e{jm0ES+O=>xHixO^AcMvykQlz=PV=wpIKEgE2 zG?F;Cum0YFv38OAPz}g^f_z-fzsU3VUdJ%HN#}IT_Kd`@e_U1u=2moEHWAq_CK-jv z#wo~lG0_#S8pDCM9UK+dxp1Pb{%=JAUsDG>LJIg70X)+7(2-^kwd}}0*yunr$W(;r zG&F-uHBL8@xbi}5I%%ti6K`xs2gW)^TU!y@-Y$wT6L3sqfUFTt8QWFf*U7b)L`apTvQ-@}kgx zjwK8WKK_q`V3EKvAm7aZ%pMju+?%eZ9`#{ zi5=7s#}g>7CB}gXOi$`#h0;ea^=8c;m9!1SUGYy!$Ls=0m|g4Y@E>)-)aF^Zm5_G5 z0}>q`(H7=dq-YBm=ERM05cYXEy^Q!N9lwnw&1&a|=K8z3h?&;TDbrdn_0HP6Y8Prq zglm%>K6frjgpZu$AZ#9S+HvCNbi)1?x8*F%%qC~|#HrPHKRYlti->lVsSeWS5l7po zU(!iCRm^xc8sl4uV@RPPae%HNAo@ zG=}XnQyhe?6iGj#R%KU^!xcl}rvn@$k5-JxE;Yy`S+a3Qbu%3m?R+pCt@qz_f@y)I zC9jRmeS&+khT#s3PbW#YPPA8a%Q+FO(s)e-7;Xe*6Sr45RxEe30%N?u>Bt(lj`+{J zi{r`)d4~7v$cIsp>aS)Jecy25TY99EOeHwqx3gY5nf=eXb~5{)lXfz=T$A!N=hqbs z*V&7z65`ebL)n?0=|pP|Mu9^o<`R<@Vs!Gqos=W^#_GVG=m>s?Mkorq@Eia;iBsOV z*^WxMS``G9;I~9LjtuRUPBJ**`kGdwgs}O*d93~LS|xV6^e$9~5nDg3e2kHj4Qn z4r$I3y=}i5mR{brgQMtYH%0!pE4Y2m3yU3O9|IhE{YR$zGa6v9=CuZm{tVr#=Qes7lE=`l78x>3%ieYbNR^%v&86LN?QQPOIB5&rtnE7B8#*CC9`-YV)0DfapEic*L4nz>4VtG$BA+$si>1wT^5mosV|iH+b&_G ze%>v0zvqt_;azbH&u@NVoT~hinp=r@J!A45_qd8)_ywSX%ff>|A4Ux}ulFa8> zh|jYSpGjl+jrU6kdpI29{=6m|pC*}z-51F+cC!(7s1V2G@L9QpI0`tc&1WT~jTJ^Z zU*tO~*yUh!Z)2lO-0?6;sJ&*mg_=RZOB$jtnHxFG@*2a7G2fJ6wqQglWpC^xasd^l1^rEyl7x|RIp~kEn8D$j$alzenmslyaRJ`D-m769$iAX zw})l-yU99x3f zA(BRR?`87HzOK2Up>7gAY}RhbCMBCDaXqndChqu|w3gXAvBYPyMvOUDAaCssRG(`+ zRDB-N2jR}LTz?@UFpOH4Av5ZhhRUFB6OBmYQcFnNF%0^SjSf<_Y>ZI4ZOSI)=O%fX zk8GCd=Lj7)xfEvPVnP8J>fXUkF7?+-Y`d!=Ve;VznNM&E-KkLV*b>wM3ysbk+F+s4 zl|dVK?if&*jbSfI1OKyB*1)CV%fgq3rxTAsPOZ-Mx$keNdk@E(rW+;R+$Wwa_FgVy zurfR|oLWUZuljC_#F~XhT1*VR(0Gh;Cx*st{nX7fEAnN=Fg0;YHa49(iBZ<9Tz?nt zF)V13UE($d1S|`88Uw(x@Cn56lvJ$n0?qWjwF`~nOfQ<~NCUmrHhG{w&^**okBDoX zOWC=Eo7*^c_j0ov=l_k1K_%yLUKWnny%uRCVt00U4qAt-b?F60PPVPtm?ZF|mr>Jg z4!re?#Kde5CiVz^sOd>G9mZ}@sIsa9)*-5L(c#;=@I2R8!yva%MlN6%x5&7gTWlop zyvWUSoErc}##3^0{oO9dFnV)QHYqbZhL!`{9T*D=iObLLRE|-Ddk6Ok?n`ua8D3mc zfzb*>Qti_0$|Mi(xjxt5rF2{%-w!hh9ubDRpJRBit5o7aKbNlnhK9HI$oKbV>PJV6 ziEt&@#;sOL-N^X8wt$i1_d6XP#*L*$mvLjMQHsil;Zw$@T#rlJ0b@>j<;>va?42Z`Mt_k>a_q+tKV-L~5_|lVGbJR?FN|y_ z98qMu8Oe4elI@6K;b2%nO#ns`59u<>a!L0AaUIS$s&u#wb+{OHxFlFu8oUfC(_*4= z@944YN@htOccp~vNrG$G?`jFz_=cnMz2gd%yAYMj5tZq|LPl_5Z2*=NO~#hinIwM_ zj4*~A$|YT#!o7S{C$cd~ph?6XcN15Nh?|CpTNx~525&|>GmSVOoN^QQWL_d|U3=boq*b})Ve^s2~tYe0{1$6Hl!pG#dwHlV#EYF z_X395>0f0Myk~HfEYOu!U`WxsykH?exDd^mGl`D4 z+4@o+yBkSihsm5Sw`V4CywHQ=lOiU{QPnXV|NQGroL3J?2}bO5_}l7X_&oAjE-C&R zhRwfTQP_N^q3Fb!rdc2Ca^fVRX4>!Y7f%=?kw&yEk%M}4?zuUf#9DaT&DzNklOoE9 ztY!b6S(*E2jSea{yBE-`;W9wDF04v62n@ek+{&xK`x5J;btAVjao&a;aa6+B?EzCt zGTvf{`|-Y_4ENBOD?npzW3aF(cr%(z3y6!b{{PJM?_Wfc^cNnIo)R%RVlUD6De+b= z**6Qv!6xS%#LZ zVd_P`lwfGa@$K`wxfMCm;38q4cT~pp?#+-=jM10G?rjRYy^@^bT=q>~94wMJScEu8 zlG1|?nNM(q>${r{52apdbSm{qqjVt>L;bz*QjD3GG&wAOn2Ym!Ax*E%B@nZR!GwgA2t?9Viao=49Cn9foH^zFOTxEU6#N%M{=UFG(#?F_ zn#2wX>2FAUyYRr_r3b5s(_-B^661=4P3piM!NtLg0)-P{ThK~m2XQ4*_FSotO_<2( z32oQ<^WMU6`tRqn38_VA=rE*Dn=PN;tU=D?Ym7^YaR75QdBjWixB#uSNNIv_d_Lml zGuox?M0`fOv|Yic&~ffgC!YtZFhoTyl!#IdQe_b%fqflOiZO~3MHBViT0cH-={P1E z7s>dnHD(j>Y51p7g53@ydiFxLPas<&cg&03+!?GQiMuV6M~n)9A!6+FxZFBKyiPBX z@yanSBfc<`{w!%m5wd0kID(5rYX)!xmk?h>pVT8I#=)ZXclnG}wMe&2M^p>$pKJZO z=wZZm@me+}s3vI=IiY0WeH;@+%qz-^@gZ8mm7*78S+KAtcrRMQm68WhPlfIr<8mEI zP1dk^gphOi`7LU#kINv5?g_8>CeaaN9Aa3zv3ibYQcWz4Gd*N0(TGcH*N~Ja2iw6e zrGs_GT;l7PZ7NA>p5}S<%Bww3BW6wAU3)+AmGaqZrB7hBcuUS{=-Wxx@)dI_;y$X{= zzcdn)XeFu7PUD4$vk}uxL>-tTdxfYr7z>CVEcM?k^=H(;aR1w{74D-Y_-Vxbzql?@ z5jj7(^I9L@KoaNQ49W4685Xyl>J^?>fpZFumb`EC{a=3~A(x>b=NX>?!`meaZ#}It z={Po>9kABNOA$wOEtpqPcm)j6!+*%f+`}SKeN&-YzQ0Y{25^5Vt-zRrA?ui%EL`|P z3|T#6^Zi|ox`f`c7l`s)9h&3kLNczKH@f8eyRURLSh=r+p=_d@p9ve$0XMVUbTiY( z-b5nnurbHq4O$F#=7>C^Lj#5zJ^qzXxE+OCb=3>cA*N)-bapQ}AAdIrM_B6yc_g0% z49n-fQ%bt@i96nHXwIpeJ5*Zte2>r#j@q}0sx;xAGr$n^@pCzqNOSt;C#3`{5{3(gU-C&288Bq6mV-q4KMKc?l`E6w zdpC!8G41nGZ_5)gZqTp!<@12z^zHk<=8=!QadhmenM2A^iXr4`t5P3R5Q&mbJ@UPi zG@3$$n7jQLP8}GSkGc6}3Te}s(e(JkX+;*zA;Zl)i8V|s{Y zQAtset^XC$aX*dG;jXqTMe2ttk>+-W*^jR*tF>f_1=8*ji&XQHfi`~^VeQ|twH04ul-``M^&AC z+O|xH?`lIxBM2>%+r`Etc0#{&h>1mio1&jGOI;zO;%rF`Uw@@-S66RsO?5tvX`c|E z7~dgD#JROCp_?rs(o1clV`EMAKZ{C=>1KwSPa^7xzq~D1P`>>95dzXODydWR zg!nEk5S!d}es1Fog4sMFs*A0Ad_w1DF$uQzN%09kc~og->xlS~@Y7#fBNV$wCD_~u zw~hSlgEmUzm%25Kd_D4&mlS;BW1|tvKKRiSSX6fr&CgI1_pi@V?Oc7BhCNdWdb8mx z)C(GTja=-Al-bcZDJdbQ9a5=8q-&;EE0p@zUBsVbqGDtIjQ~1_$8=Q{jt@Vh?VFMHBOBCj(6(uELV}2an+r|jyL5?ZPBG`d_q#=4oS8I zk4kM2!YyN?k~+jEbcyt+A~!R=-2BH@w#4}4g!YKd6|%T>E7PyfQZKwZYk}Y-#6`s> zeif4#(=OK5CSKHoP35R3!q^@*~>TRTlP-RoQ*J*}pMJrn*%F!IB!s+%k1by17B4$e2>zpJe04`buoMa6!Z7!%hqF%r$uiKZ#P{{p{z zOj4)T$z8=IjV-#BOEB`P-}bbzb1ullH)(5IQj(JmKX!>V^?asW@S-?Le2XVaoyVYe zR#KI}s}eiKbn)!@mn!YKeS!_GPog6e(aI(!&K7GLT16^|wkna0yT+j9cGsw+$gj}$ zLfk{PbOA)@bcyQPDL%m#HZbs$Pe1#-<>z0tYTf3`um1M+-@o}s+i$=7{-06p+RwAt zderW)+1TljA!fd%bDD)_SdI?~H5kK8HNwNX#F^o9hWM`UGR;3&r?;iRI^oZ4yryE{W%Yn`KY9+s0Avx5dFFcmBpwmL1if_%T#bV`bbA5L$yM+ zQkAJ%rCP08qsmgPRb{JkRO?i^2tXbx`KZ`c>s1?61*(mzO{&f4vrx4~wN+K5Dn?}+ zD%(+=9jNS7?NaSlIaDR8QdOC1k7_UaZ67N8RR>fD(cgzuhgC;ZM^(pE$5p#^4qb_^ zR9B|kquZ<7r`xYPpgX8Lq&uvGM|4MZ$8^VaCv@7;cxX+%4>(lia z`bI1C=K@#iVWxhSezm^U8vVtS3N9=Ifzd57+DA20bj$ z!;N~lNe?&cVWA#w(Qnlk>AMx{;Wqtt{SN(3{Vx4(y+gmCP6;ZddRV54zi9njy^9YntzLPb3OIgCD!ppvhHNA<__$I;gldU#R~Pw7wV&*;zU&*|%* z*I&?I)L+tH)?d+IMdh0Qy8ed#rv8@xw*HR(uKu3>zW#y!q5hG+2i=qILHD9FsNSgb zq5IPP=>GHo8V;lf(SzwB^iUcOqleQY=#lg&8jhyn)_@&GF|3Q2G=2;X$I^R(#?j;H zBQ+OUGV5kgr&Rs*6Sxd&DostJ;dFYBN(|>egI-W41(o8U3~DA_Or_F`EwgDjhlX=e z`+2DAv#N8dGpd{6Y4o|UVb!QX)u;tDT!-qdLn4LWibtx(AV`#>1FhCI-Sm- z;R+hAq+urASHFset7*7~rn2a@bT+-jvX0KB^XPoqj$lmJ%+Rc-Q#7fX^I;q4+uv&M7Ae&%ATznL0fh6Bxm%!AFDVMEMA&BM%axH*FwVWvi!N0~>XVh`IGw%54N z_^+l#beg7^hTCYkorXJTxRc&R@1`Ae2@OkWSVqG=G~7!=F+IgTdQsqh`T%{99vyUu z4m(UAp^wsG$LQnq3Hl^`3UO7;OL3Y$L!YJ3(dQ947f{)!*{``w@6ueM;Z+)5qv3TL z-k{-4`WAhgzC+)o;XRtVPs0Z^Jg>?MeMFBj_h6`=OfRN4)2$ElUS9_GW8M?P@QH!p z`ZF2S0A?UFh{>$8C!j~|!OVg>LzsD%q0DCEFlMP`1VfEvmRUwK%PnJ>bjx`3If0=j zGKNXaWM&F8m6^s&XJ(+rDNKeXm04lgp+01o#mr{rpfVSgd8o`sC5>5WS;)Y-6kLS5 zT+F~F=wm4=%a}|{IzweJODtkMs}&4f$#lzPRxzs?xQ2mQsLEO_B!93kRczLs&|5ZyCz2whU+C2zHHS6#7*RzA~DHW6;;JEEF9@ z#Dm#sxjy`9gB8Cx3VP~?b>@0RROAXZx*NIM0b69FFJC7Z! z8?T$srm+jyh3q1Bo^CNqEn%sp>@s#ao6csSvVx^nvYG5Eb~U?(U82oGWi2Y%sN|rs z4iz!(K`xue=Ch-M?JQi+!VN4eVBtn~6T6u$WVf(e*&=p1bx8#;tFEZ7qSw_m6}+y3 zH_*46s#~htDtJdl-BrPRD!4fS-dE*P#q2hAJG+D3$-)_Cm`Y_?cC!w)ge_&u*gfoC z79L~aarOjzl5KU0Jso_SJ;R=5&#~v(wU&!4yu`xGEWE-tx{5e(jfL0Q8|+Qip}WQ2 zX78}smU}F`FY=Oo$Ub6waAF`b@xsgsGhAtgr;VpnXN+e9dUCzE-ds<8AFeOg07pQ$ zzmMzB4d4cHDFK7HnfhUt!Ca1ICntOZzJ5Lj)427Ph1>?qVy?il zl-p=o&TX<}aBu~;lFQ^)ajUsCTo#;qbxa+=w`RGx%f*UQthl?oOL2F1cfGh%+`YIJ zy*L+lDca&t+}&aOdz+WMe|EFkWX?G=lW!)O$s}`5zOOBPV&4_)q0f{NDJNugu;fMv z2B>qn=76UvuwC`QwfdMee4@B+c-2n3Tb^j=TNQakYeQ%IL~CCR5T(;xEpiWqzdpC0 zZQr}TfZx`j&dI!@R_%HFadZ=0^cZNswdrd5-}g}9XIw9d;Ah+}0r1SOmss%3ZkI^# z^{$r$@bzw&aPUs9m$>jwZkK5A7p|8i@Z4Fkj1TP&>5*#`b?}=h7efOZ0;dB5J^sQy z!otC%qv$*EH_iy?k=LIWSOR&3L7R@BhZ6TkE|HJp_A+#bulN~&k9p~`uS^rzLQT`^ zfds;N<*iw5IbNAw*~S<(uIW~B0RQC4cQLX*ULkc%mX^+~38mz{5(I08!@n;oHglZ?Vt z^d_0NGp;8d_x$+^Lf)s5w5@d@^_6D6_3fy6%2Cyq!(*~}gC5|M!5YT>2QJn#{?+8c zH$4TvW=?sI?r`W?5Q3<^E^xUy&ALUNW073IOB~T5MDvyD#CqPlnfGz-t=cZ<_n-8y zB$83RuC;n?_H(T*wE-!A(THc^u;0`NUdk<72k#vMkB=!C)dRz}sHr7~q9b-CQi}Yc zg@q?rY<>GMT>o{rhUDW62 zX3=V6;hATH5Ztu}(eWa&m;8v5GjAQEzXr+i2Vy$ynM_oKNjx~Q!DQh!jW{`A74N9j zBg(Src^npX`c(W1p&{U$c#AQ|h)lSr+_)Zhj;znG(+QU(goW4mprDPgUQo_rZs+dTp z?9qa~be217Xd<)GhA1qQk}`bU1hw1Oi@z4cJ}OUN7Z~mcca8`36gc@re(a!a z9;0n`L^-*oe_UgIENZ+vy*$-lTn6KD;~yZETmEU!MJI zv5$vMU1wOE+jN^Q!kb5Er2oL%Xq)X(iGmYe?Smr*d%F)e2Cus zIhi&c@(@Y?hcE9VU*5~Vyl+ar&Pcun;fBF5pgdWajMgKIzjv~f!lz*t>tg;&`Dd}Z zgjgzr4`nfrLKU}?KS*21DI3U2g*7nPKBa|Jpom$p(1}+}kstRb6{(wyvZzO>>51P; zl2cUVkyBKzlb2K^C(WtbjN(@@m@_;(5Is8xJUalM9lks}V0lQQqlE_#ke9&=@L&NF zB7)7xx4aQ}FadNA6Jr?bl^D)^Fu90OVa$HyoM2oY!eT)@wyX|pw(t%DwzLjRw)hTW zw!98Pw$KjJWHCXMEZI8*#UH-m)5XtW(`C=$a1ZEt;;2Y@@~EhJ((wp+%JFE5CBxxN zh13yDrDb7E#buF9WvXIXSw->{zl-E6eTpV3V2dUyBi;F0C^tQwIN7om z;dRB0;#z9$MRpa)RSdQPhq|_A)?6*Tw@);p$1W_-jEC3}Rc&FQ+M>d**w~S(t72{y zc|{9#Dh>SVX9%!VMTH#Lso|=AV$0v~;#-JtRZO9N;Hp?c`7s#R!=5$;zu`Lf0nl{& z$dP&Mp`;nMDqxA4f_HJ9`vFS2eYD6t4p3GMTQ#t`O~E&~&JX~TZXXpg*d9uYVXF#O zU%XJPa>B!_nk3BD^STcbs!Fo95E>wWuN)d#WbA|hwnP&eP*O4AR#sUT*`uawQ)!PM zCssc%c12HnNz^*~_ObVG(PP%2>~mj0D0plT0@KQh=6ikpE9 z`WHQ!HlipsOf{J{Due)`kqlo0Ij#=2ZV`6*1eAm8JOOaj6A>z%RpT#R7H@z80T8&v z8W2HK7}#PgKXEhFk=JUF9T#D}7`EzQ*P4P!;OLsr4s8n0^+cSY@A?4G1Qn6EvzsD< zjlm&sRgs_IVmH+m#ZlCiP11ccLyp6Rr0^>?`t9%hiCg{vq@p?Z3)M(CLP$!{#Evmw zQcxDD3HPhYi`k}Flm*vWj06Xg%9L0uB6LI&U?(|L0$^AsMDB3^fzW{41RBuLgZ%VNBnGIUoQAYY2`4eR_9v!7$_{E6I<#?*U0#oMo z3d8Rb~w2u&GW0cpAvhLF!dQNSeR8z4qI5~-Yp0Akg-_#hFWocw1 zARcc1JAkC~{=L%u7jx4}%cy4&+67n(jx)ph-C0x2x0+feyGvGU_n>Sq zh27N@F~0gA^>NW#FDul`|@B^^xu zrM6)6>t)Oi1(MpXtj(ij^e={T7A^UDa($6WU*5r_BXCZS-8G_))K7QMZ-=QRNG3=A z@0uaXg~SK3GC<1j?YE5*`$CE>KgYwO43-tOd~qodzw;#HW{Jn7CCuM6*ZBLp2V4o3 z8NW|C=-?QfXn!H>SZBHf-oeT5V}>hGNfSp*w%)lpL&jvyTlI4iXJ8AjDBZ%v%F4Z2 z%&FZ715EKvJigwvuq9SV3^t^px<+kxvr^W1rDzL{2Nqs9zwFc<3?^%A4_+^8xzPc6 z{UkhvgjTwF;9>l}++7PIRxTC(Vz zt)7|#5%ZP__mafub}x_q4wvhzc)C2&t}xWon?T3V(q*`I7qWsEf`rRK3s?B|Z0jqJ z$`F3hvyflm%T%fAz(r1(#~R0EafBCnT|GUwy_UO>;~~z(@ELYrR!QcAbtp+}Uki-8 zz2!3ALHB8V6vr|A#|a6&1gg!^xkZiYg(MhHH^ZKf!Ah!@w82VzF*yHJ@p07C@R@i| zHX*l40?NY8mQnKksiCAf6Eh*&r}B&jzIS=tCETjwqp~xjf43*x(gfYAMq-@vp$G6A z73p_hPWM-hP=aY01Rl#eRqzN<2u+j!P#D^}E;xHC9ZW4n+kB>k$CLcte93w?Nn_zX z=zc$E#T(dYY-%LZc|C@R?ot^d;CnUd9DOu&I7;*5WT5ilfHy5JmAjR)AgKjyc~j0S zNEyHMe7eYAUyfHb@;IG0?9!#|zV|Ij;ac-?VTnp;yS#NLg!$Si*@>0^qDoTuOv&(m z9{I@O>h0T;1FPDm@*y)=_4l^+($Ex}u*;Fmo4+&LrZODYS`y>q7kE6AgoQE2AHaHS zt4t-$fGqK-`v}6u`huDIuk?6jz4g6gm1J0iWfOsT|DI>H^WQs%oKVDMOM*h*mp0M^ zzmvQZgvUKRBmWm0yW4q?K8Y1fN~xke)7T&PFV?{g-S?hfIzL_w(5St0Y(7X&(^uXW z(num_$BAY*GN*Mza?U$ZkmSnFGxsngHe4_$0S=3jQu>-jE(B?GY=4Gp^9pw-1 zvxhj*f&9NWs788$$TlY)@4iCRq_|@O^QCsvyH+VD?(_vo2uRD4{-z0}(&$9xJw16B zG`q7X#7r#b6rH`fCg2+=W17E15KlHL=kCPSh)goL`H>f?PAd>T!z|I1uW)p}v;C8D zX1Bi>km1xRbos?wG|Bja>vsSa2qWa8qG!X%l^EsH-TGn7M-)aV*3gKF6s6Tw*|NK! zi)Q7x!0qIXM9;L!j$-+xj0G~QeZkvVu<$u^{7TM(cNeDezLWDzNQX$K#i+vJA%h4? zt@G4}pVkO!y2iaYfw%xQc)^G}HZQ3fbvdT#kL=G&*4pXuT7U7W6ar4)xrFEwrDmPw zCbOM_9PcC8doA-nsU?*I*mZT&ae0Pt3ePsgSH zJs&WxiK?4K=fmNae4{5JK`ttA=+0_j*@zXk=;FJR)Dm~VL#p|rW^~q{Ru5GWJBc=k z@k&|^Y{j9WJY=&zo_fiE@Nin<-=(fLVl`J@@TpsQukqVce!c+0GBzg{!m=}jOAI5_ znV54h4x29#>zx^9n}GauHXc_FdS5%DVi@5dbQmcJX8ZYr3}G36`wLbE`+uSrLO-Y2 zSJAzXdNTdaI3ZE+G+Z38Y`%%%hskcZ>MnzP7UsQbxvu3bMHsfaKZWg70~la*$JPN* zpZc*CNKqrfQ>B9&v|ZuJaw%)}K_s%?1Rr0yKyKD9A{-eHgz;)9h!%r|1p2BAn{*8* zVMR2i!1js;?Gw-=Jy2K@4@-_?iU+svj4NR3yI3&cr-9ih!cw3r)5izXK2y|ejUbsU zIug(zwZ*l?d&OOLU~X`3u(M%iu7&t5$+SZ!#&~h!y}D@Ke4H9g2|L;dt?Om~YUw1D zvIRA$1kA}8aFP^~gsYN*3{8%Ed|4Q=Zjx)98FT6QWI%Y002%*^84tjgs{;|@U_ z%-x?C&$Y7%SCtI?w4!s#YDKICr|cD%48(EKx94n>yLAG}O#YldE*md<##|jt0}`E5 zShEwPD=r%kd%;|tw9q(h1cUzIf)!Sh+r418_2iIqwF{c6#pIb&9^pp*kA)9vEoY)Yd5tRf5|8GjgV~5r zZtP9Q2Jq3H>__0*zQjw>_X;p)&(9S7z9E}oY1-h0+V0I@`oJW>MZ#~_6g1mSD`~rQ*_MIcpox`Y0i9jBJ z-#Fo_<%}S%HuWDR=Q}B5Wxvp=0D*?4bz|1^S)Y7ouccdc>0iz!D!{>rfJ16{!NPMwD9Cn<%cruk>??FK!unn7jIfVv=6cHA@rK z3*lTwiq33Dym@0UkpBQ5H}f-snbExC9)_laezU%JUDuq$zLqSTM=&7DXz-U?b#w@9 zcQXkRR@Al*{^pK0>js|wg&7A&d?+>p*NFGVzCo()_1K052b3x$a8yWIlG(G>nA|0K zeZHMo|D`P-f)X)r?P_uhtVv<_6XuA~SgO$Al*sp9e5#06w^DB*OFKx{I-RNBUnTXv zf0#Y2qw}2f)f8mVGT2?%U}(W#0xZsrR|oLk+*v5LOes0DS*6k`_Rx83exiTi;Hz8+ zFjCYnpj96CO{aT6)#x4&VS*iRdH0p6oPiaI#CNv|7hS9_)P)MSLN&Kq z1Do3x4^@3*nA>9YQT`9#~w6V=k`AG-?iFZx_8ES9cL* zKQ+Fz(g=s=g$jo&)>}+eQ04cNa15fGHd0wa7tpg`W-gi$Z~;BG~6E>`Qt#@)CwV15rep| zLygR0K~8k&2E()18^Nxhs6V|(*H7hltlXX(KyXi7`vK~7UpLX?Qw|8t*y@=-IL|@} zXFrph-EHb-Qhp#KydGr+rNBvvotecdf|-MvjhSl(E4{dJQb5n!H?qZToOH=@p~@aB zNux#cQg1+UMp|kIk0d#i2pAImv$5tow%J~xw{NFRz={GfYp8V9R>{5z-JGu1q=3H1 znt+%GARwP3QN4CglndSUk-SP6bp7r!`y$P=F~WPejwd%IDTOFw5fK_Y9Ne@&S9P<` zS{1whvua}Bh3;sS`;&w1L0D+}Hcr8F#6y#x5eu2dG?Dc~J6&PI?7~CEu-?kBMIc%L zI)V4o?D8HU;YRACd3GeFm*BXt17_{%XGhusgl$07eN7LluT2m4`D&*?`svf#sxW2Y z@zVm1Hx8CbzKZeq#!E<#%<<~DKF=XvGBv<{wrZ9}uCVgwrQ878*>Rg+i)eS-hW$#R zp}5{{_1#8uOHi%hTbun{{cpqik7GMjBRpGfTXj7QTZ;0PKVqt4jfxe-b285n31a~g z^ZR-hASQ%fGzcn>a#G^hPcW*6vzs(vVPV-9>t*`^Yt8gd^nsTbcjpUi@xdF+H%dd5 zwzsCqlfqntrqzsa!(}Xq5N}aJqCMOw*PVFShu>P^LU?!*#UA;eK7J_yw4b#lNWYQ! zZa8SmJ&AaXstlDlE}y}p^m#^y3$>AsL!B&bpfZHAY2b+;$Sa+Hn-Q>!IqI}R>3vd@ zrI@>K>;KM%-^{5K7}%sU-3#*UC(K)TE9)Gn7w58s`<8mm)*5kbM^0-K4&e@ zq+NINIFvOuv1ra6e=s5{OeX$%{$!2Ln`I_8HJ#fm3lbo1_1UvIJU%Y19gCY-A+wag zq#K%f-Fg#Vb!ECAj5L?@&g*}xceKstVicZP$5LP2 z-Je{d)923^)Q_r{J>Os2X?<~cQKcJ?6bIR_GTQc##xn|p#VVTP%BtIZ!RH$x?_4>CVs#-96*AUECt?G;Ax>Lbtj%n@moji zqZSGq)H@->rRqUtv1!?<&9m2_vUBYF+?8w;p#!jlzb$~hG0;5p8TAjBqLK{8i(5(z zO0L1q?w6EYzVww=Nj%m(<6X2->eFws9N$~x;^mGp3TCN(mBg$~nqPIHgzcK0XqK&5 zk=bIp`=oSyox7i@;HCv+(oZdK7KqXmP*H^XuhMyQ_r%3r{+IM7iyn*fIA+k^EnMZ~ zI&Nio4)k(8bhVtgVnex2;oY?A79c(byI+&T@a){1tXH?s8K7VkPQmZk(yLO?|6-GZ0 zX~oI1=hc%d)i%$5d?0ScH^~gl!?T!MNVg`C(70l2{%^reTQg%vTI|sEpXM{Q{-O3} z3?r)A9~5h&q@9DBOz0P8ES$3bR%4Mvtk!(WzQgn0rsbJT`ETxl5pT`P4be6Rb6IT3 z>bZR;5u`ZNv^>KWLO%{T4Th^uDIT{ayN8tV@}T zK3;z_GIsv~{}79Zi1!_w8~GEk5us@=Ij?TmsG4>`+&y+W<({kf8Z zGya}ueYz?IBLtl14p`$(!2UTm{8CB6@&hE(Gx3b~?jqu+UFg3#V zq#@csjeO|eesg{#do_71xg^=o-#6Tky`}1C`+UzjaE5Yf7qJuKBJ9SxxT%23G7z#a zx)0f(Y#`q++BdP}S<4lTXHlb=Dw!<#_A}A}#f^9!Z_Xy$l)$lM+mqnDa9hb2uRF(c zHVypk?1Lq!z_NFrty|tLJVMLHJ3eCB#yd2E`$+HB;TbI;BjUmOSO}GL_OgqP{uWbk zcrCQZm#sTs$+5msT9AS6v045@P6rY+kC5v`a-I9PkFDrzgoP|D2-SS6+c)%b_ zY}VAIs09<@~#xi?9zr$tKMH|7Yys+WAk-Jy}iF%hnat zSaH9H+UWLkFj{1%vo4S<6iVOaFFvrnWWG&8?UT7h@lFz%B(RNS?oJ}^Q;O%AR?MSt z(t5jIeum4pm}Wird<+neHtA$y%gCIV#M!5Fi*KLq@(OJ)Y9H&k!I zLQnIbo~}LMa)zz2|I6i)^NsdztFvDF7o|8m%}Ilrp7_vJUT|oMr>iqwTaKG^tUDD^ zxLXA8AP$l=n6aPLvDz6#kEP@?)c+YRe{YKyE&pH(7R~VQ78RP|{uU0J;ocS}n&H6~ zD%!^1Ek?AB{Vig&jlC^FG)Fck;JMps`2S$ZM^hpq1D*o?g91MZCy@@K?{8y}ph*g` z4?J$aA_PXV#E?!UZa4jhB}d$S%>9lK#Pf6MN*0LmPJuxf!O4ViKUjr_| zA(S^-9rS9Ap6gVYebI5v;5i~Yr4eSFn_rUsCOf9|=OZleaUmT${2un(FSjRU=0hP5 z43zRAOu^dNfS4X~WQs2;HMk+QO9EU-XS9-WfWC@<_%6ml(7lRLpx%@Gk2Z&o0DyX{o}gXzvo< zOatC?)k@Wm<}STw1~?9QDR~|gq)l}wtB;~$V*a2er>j`da_7|CIo{PlC}|2o+XaKr z!*fwP>QN6^P^xNEc8#nPZsowh0w;#D?PE6LRDtzu{SMYOz-vfr3`cJjYlwpC8v>UX z1#@kYj-5K0D)9`~UoGxDqE!*{L_5=K?2E&{sqt@raO6tcdq-)Ki5oJu| zq_Mt|?Aut?6vw&ACGsUsIfEby5t5+D@pW&=fsiO&YTOohXDV8l^;)@+Pe&;F0w4Gg zv9ffhxYHDyF9EA*U@EA}Nh6A*aihxoLsxLqHo37`EM3XG;$^J7W2~*?dT{4q?0}e$ zOfU1mJfZU7l$vgdH-pQ2(zjl~vRfxkdIU*RP?-f6zXrXXZ*Z&@|!r`+y7B{Z2N%zm$7~v>O=jow~nNK6^?Y`8E75I0o%%c{C@|I+$8aLT5lv z>be?wFN6nkVjo7^YB7F+^rE!RJl)Fk(xVEx+c{aCa;wcmyDZD+q8MMS#S$d!&35k^ zq~gCgMtiR|1vShwI3;76ux~?N^+=5Z8EhKlY(A{&I3?QpVj4rQgf_7Wq9^!c<-402 z?WdPVoqlPIV*Y&Z?Q$8ELU}YAQ-GoJ<$@~b_MLeTR~$w||BhPF1o;MBC*3luvRjVV zL9gZ=Tlula8v5dTl`Z1m`HMu2HnOVcqCK`o4PHo0+=>mTw~%q$DZC9z-0ABm42{~hyEfmOZ{}UJ=Ff9-6B(8S4Uk3 zY^GM5M(?L;TjCqte~5Q}hQ2D@kvA2C@PE+2YIi8jMR9rEU=2>l`9J84M$f04cmdEIZHM#iF88%aKiv=iqpT8^kbRF{Kn)%@;90 zl-&Zo-q?&P)`$#cu~$c^hb6qCk9B{{3G`?VLL@3)rHHEX+P!P(b7wJGdp3838=Kw= zQ2%(%JqAR7l7m&D4i*Hg&<6(qR+xjK0X$!W#Q{7F!4v=YzF`{1rq|mw844+Fk>)308Ah32LLk%!vnm( z21^4DO<)CU3o~$TTR}pav&%@&I-)`J_{Ol%wZ=&}D6JrJO_l|u2pxzsJ-!JnMXhlv zPFyR9Rg+~2X;=s1O`mBD3#>Ix#!+Ym(Q2|RB9-Yt-03q-VE+x~kyLAq({UzSLA;tQ z%Sih=5Py1^CJ?Mc64#bpR+Z0y5);J4?p$+6tKiUB5P9o4hNhI=A=8aqrRhd#E z;qg`(56$syNQB?Dxn#jUMTJ_PgjlU0R-No4RuNXLN$la$wS8+39XC)vFLM33suD!n zyT(a%$`Q=iA^y8klafLsU^xglDl?bkI8nO0Y2*OeonS21-PcI2k??O_fxi zY}Gf6xQG-Dvu~dx--!|f^FNhWP(v!KXe$&XEePo5w>dPBa_i*6+0~oo4v21f@dBpB z3vNtm|1ZJ`(d7vBI`zZ$u288)ZJxCsYa7lKQ_Vhby& zsbUYiT4UUabJ_sP(`=YP^3)3%K$5E|TtFJHF-HFtNWT*48-@+Aj%-=_zsNCOYPW)M zh?+s-n$9ao3EGfv^gNcZBeh#$IJwOrHBIL~NYmO79eN%s*n`?F5RQH`NM3VxKxA(T zN)UCyf&&k~g5H{mMMY~)-?*@@sJ&0bK-w+j-`n+#3h6L0s3Nf}bSzH9ggZ|6$nxz; z(4`3eW*Wa|ODnr0Dnkr1PA>XmF5clwM>mi1`S>UT=lF9(+A(%$RU&K+uulQngHRC- z?iekb2xW1fpicmLWjN#sF3Iu}GK#vK47msPu~KDUl@FJD*#jEcAcO|7b{n2umM-lrL1E0AJ`Enl7 zGpN%SLkkk0v2o}>t!hw|`)8y7TYW+IX(8$|xUtwND>?R*)f84s93@GNpCFes$5X!h zZ^cmHQu`NHUvl4~g18EAQ9>7(5QOw>qYY-x&5FwOlQ5OKCw}O^`xksE-hV3v|9A;g zwP@{CPjCyCa^Nt3vHK!GU|En38+qh;C(`av9vUHH)R<_Ho)a7IrjNHoinP{9Qmd`L0}@*`5!bPJ!gu`0+`z6aHg}0%u}_3xmRZu%ZI8ZOw2rW4GD5`~2DJ zCiBV^Q&R!K-85>)wj_tKe_LMiYerS+p?_CH)3r=e{QKBx&k+AE!($~aPAipuuU?j` z1^!){p0xi`q(o;^yWp=Z(|Yn$x@DV_=RJy46zpxKlx2m*eqe@9}s#{S=UsV7)KA*;_ zN|moGTc#Ud+GpO5T-g@9KpR*i?hw0tw*EWGQ)zZ*X&b>Od8Tl+54-Kd9Y&z!aBCmf zR=ps=&LiVH$J^BIBWisZvGvO;Z{gXnc!7^zo212bnyY?T4X?d3@zVO`!N@$JeWS+Y zHAT{r_eVC+vFfUuex-m2zCp6t8?Rg(#kEVpTk6Sl&Ci3kJdwYZj{dz8#`87kGyvXT zP5SynKu~A#=TCd`v8Z6isA4Gsn~c|YUb*B60~uElruNQPCh0y||Drt9ql{TU`1u@K zIE9NL_j$KG zm{MUM_3+b_ujXPrCse77>~roHSqt;RssR1gb2|Z(h&{6yB8@e^oGjA^s8-5+D7|6i@$^$Fcqv7pNZ4N zC%L+Nui%J`qVb(BlWC6$6hjB0nm(Bmoe{r}DUZ|fQl2)#jI!uh;C)IL6{Wg%N_e_M zz!9<7Zgc&(%?ll1`Zgv}0PJT{Yd9^S7+@l2O|g1ZoD@E=dbG+7{w*rbtC}ikbBN*k zYqoN@6on##<2FgiC;O`UXn0(PVBA4*AdiP*08HZ=ah2pRo)_4tu*@a|1YwlM2oY>!C&2IuSfU@77aRNHpKypH3`r@TN0vc z7};c+aU{lVtAd1B(4)W@{4+e8qvgP}e#_6)QWp60SG%%Q9aMANY1VV|c&0BBr;7&P z_j1@v?gw!*+s)H0Km3cEu=clvyMZyd*;7KilChJPthE*GEB5=zCPIUak0>QW%6?Y( zXP@UPsS7OJi)|Zi(@o6O53&txEeXU@Y?|$+iXO+f>}w5^;-qIx8Zvd0CKu*ba>mlHe@6|Z8g^GdYQpv7-|&&173;Q{mt z@=EwEa`^p)~_E``JWJFD@p z*`Z;-MKsBc`qsfrquNNue=|M9zo=1(3ud{?%4>zuY@khjf5Q#AUyl*|8KbwWP#&M% z=A7C!ojk88k_OJ3O;Xrp(+u6VDn=ifO++2prC>!enX;KFQBTJlS>*uT_*@JXg7o&x zQS-Fta}Apm+Qn%WPl>qOsc*iCXGp?c48UWx7Qln8K|v4Wcv~#C$fd7Gau$ zv=(QQxBljwa$9I#?WQ zcOGp3DuCwnwFOY)5IfR;SLYb;{+4e+MuTIZIj=BHpKYUGlVii7gz_>>Zhh!lU^IXj z4W>VPwp-yQjEpdd`2;mbF4zGPr(}pNE)I&+Pag+|R-rJ6ABSV?K%lGjV&F*e`}1}A zqMswWOT49PZ?2B>?2o|IocBnb)~e0Ek2Ct+W-B;QW-BNDkK>lxONN3?sRs9YC@(<{ zC@kL9}{NjMK}CGu#0P0LO6+Q*g*I#wPG9=FSTMG zHYK%U8dfW{Vi|TOwPF%RL~+W|&qQ&`)lWik%GobOamw8fMM1=oZ-qw4%px7{Jc%$8 z@7(YGo!6pkFqgGoXV+rC>k7$j&O5E$e$t|jpq_O(ZaIr^m{1}AirQ^8b7YNm!}R>K z6FYibl2aIf0-K;{6k$lp+d52I>d+iCO?_wzs-r%%1f5eKnt<}D4=q3&)Q4uE9_m9Y z&^tB0F(`x@-y8&?#y15OQR7>JIDjbJ5CmWx2jnX-jthbhjN^px0OPnJFhB(k(GEoF zEaOJRvP|PDL^cJMDVTXhmI0V7>P#Du4t1sjh?hFk4&+0f=>&qM*0u&oQfu3TsHnAV zK^D~7jvyTBQ8tJiu!ap{3#?&<=mKllA-+KK9OF<#u59BJM6Mj;Sj5(B;~d1+9OFnt zSA~Xom`;U;RTw{ohGm!+g@#QScm?O#TV%JDg)BkSjsYTehzl^61tJT~WrNrNb6Fue zz+85S4^W>4A_>%IgIECdSs@z0zu8+E65tdBFW|P}mo?=u_~@hp1a1YdEP;8!{njHP zw~^c6cB^qKl1!vbfEu})Ih`p<_SSbqz9BqzgB?<~^&L`H!5#iF-y!jf$LYqND+BYl z-Oh2iVXqX_gbOA@f=%&s+)XvEFFhId>i$l@GrjQ%(RX)D`~?)EBBQU8NYHgS4@S>5 zGZbSkDDGd?&O+BXC8(TOJ#+H_InJ4PnMOuIEi+$e914+AdH1@zYR9Y@}A#5St ze(BR^$EFlB`GQR)=JG{AAxt`Yb_|fmI6DL|V4R%-tTWCI00bFlCji}yvm<~2##!_a zBjmErMZK_a+Qx;ja5}~fuo2qE6|fOHWK)0vMwWg61tZHipoEcS7+}WOFnWsgINm46 z9@o_8jjYhnCxKk5XPgX6t!EqqTc%4k0GMZBSqHE)B-w;y;bvNd{Km~R3uzy1#+_{H z^G9ZA=o2$H2^qrGHVyfKt8E#whpTN8!hl@U+((C8)7nRXT+<@Mj0Xnv=r^pRoFokc ze&enfhs5Kqn1@W^u9$|@;;vYRoZ+sRgb*R0Huo_hpSJdqAfLAM3Dr0;t~iB2_Xgdd7QQl#aFfhQMUoMhBI*uF7@Pb z&Hr(Y|8cF5>Fh~-!qYlhLc35GuJhWkZ>>ygdWgFY2JLNF)LYABg6wlk@qYA0o&TIk zsspcY&pP>>{^d;wf~7y;!%__0lPGZb#IF%}+r1L~ys?&p_}Ea6ine4fwYT)_l{`}DIXf7t8I9H&x z7*E*uEQY}Il_-FsvgaaP&ZO+DIz91%{eij@%g~CMP2?{<`N8Q;1L6W10AGsw5`q58h@q&9TEVx!adCSn=f&fpxppmH~~uYHes zK{bg|UvuDzDj1MQ;7}koMn(_ybtz82wn0N&Q&m*Cx>^4j)w9xmKyH3@!wu={y2gAD5^HFIBLJ z+5)DRFbpJ|sVLg|gKL$Zbv?CI(+;w4e(Lw_ zlxAk(*YY5j;8?A8)$r4ESUFgs#eoNA);j zvxAcO+29q;GV4JdF^(Na@$5QMDGDZt_23WucrZ!{X8A(xDCfb1ycFd*mwu`;qm#r= z;DG5mROrtjYp+kD1L(boEm{U^7@8Z%i$6RLypUp#156RBy&sMUIjNDpgvY*Vw>S`o zy|fj1h-M%thPiYwWB#&i6`zKq6kj2&t zlG4C{nNHImBSD)lMaYtG`8y>k4S^nLf&+(tltt^&E|akstzSBU)VG+1S`{{a|Hje1^A!k{j&g^5pV-y44}|5o>* zVS70}&r*}w+GE8h`sdXExerxc?-F-`Ic z0m%P|@{!KepB#s)yLtm%27ww> z7nYa4%?I)q((v8ievbVrL1>oUIPW`u_dSw_^lO&XN6LSVmO8XL;QXK+8hF7s39sLD zNM3-WFk0*NPx@6CfW`DPX$$%tpE&3#H@3d=a+S%@&LX6!SzrDvm|T!iRaemHLPyzI zEe`#sU#IH4mms6S_w;${&CTwm&S9{~sGLAn`C^5+;JdaDs%7&NF0=hluy%;wl!1;cHP*`xm*~%*9|& zhASf!>9+*ryzFwVN#cxo*FAL~npF&5M*hk%*h;D|7$A#Q-dffo#}tYBsOqxW{=BJz z<-gLy>1ilbR$5HEKK?^PtU+gnWlWXrZ;gB=?BqOk8*L7{TKlnof7A=GN-;B79+6hzrT^wM z?%TMWl~KJ1cc1?Scl#mAJ^;bs?wjYo@Q6lxH0nxg8;@Y;k+XH>6`)R%vy2el?mZH) zj`rXUx9x#v@C=7~t#99TX)zo0+Y$=8we<{6+4opXf)cTKvv3n}}&zvl}a5GAO@*;seu$jkmC#xd-60 zaXIq6{#(+LgVgs{F*kL(7V>(_YDV#5Z_gYFyn4w|AvhS zvVTdaZ6u#|eJ(GI+xS0J3i{Hj#Y_DRIX(yF#WxTQWxbl|Wm4CAi1@Xqu+E>PE|R4l zR=+SxkRL0xQ;o91#)=55PYG~@QqIN4{|h95%S(SFFm8fB*u@7vVCNd`x8)GgFu04N z)rVD@mFYqof9INdk?0^p>=JyYFp0R@o|%GQ?uE2_tE5G#bb&H_l*g!-yTMCHTJ9xG zuGlumrSC2KGS^qn?qHTzwcfytpf#|?r=8eID zFkA;-Ir#YN^}lGux->pfh(m#?$!kUKL)WSAL%OfgPZ!+1LvIKNipr?!2VRfDk664Q znm0u6yzUQ0y>}nfj{{Q5HiuP!;Ce`(z&$$n=XSv|(qmWj3znbP(S9(DY3Nhi(TlhF zp^)W3Xeb)-`knkO#kTI&TWf8vUHa`sf`5gDZ0++rxXnCBR_Qr{q7|0hG5uDOP)M<8 zjwI}Mo;gLgWN>2y53APu_DZuel?yy49>W)iJ(bdPb}2i6TPe%D=oFVv0g<3pcWOw^%~UbWKc>P;Qwda+`=k{0V&I%R z(|gP*K`*nT__o(*O6XP&hv46$-`6&Q9?#$Uu>1 z%n@y#tn9M~?!OouiT*15m#DT?s&T@uMnU&zqZ$9s)&^azHnmM4Iz^C&okQVmFT#Ma zZD`<#ka{0awRQqXo*ds9O07t@LdwCB>@gC=>%u;$uyg$>4?=_NOc#nMn-v97rH|_s zk|*gz;gF2}`DbNV|GpV^)IY7Rb_0Is0GL2$zdQ0HK|WkBd?Dk0%ydiQYvDf4TI(0l zE8{JIxAR&8mwup9gs=;|UyEI0h?Nmdo5Hodm6~erU(S2EtWO&?`N$ybhg8GK!E`** zfLSKatW_ennc_h!F^wTl+HaB<@Iszxhj${mJ>FgtO{KWBjJ>zt`*QaA1Le?eYvwW- z*QUzRFDI38uMYM%Zl`(`Y#vZQ!d}{Ke0HZV-CGnpTMfyrbMs6%$kU(N#+h$Ygq!=C z_F9ebH)~RPcz5B`@D?UMOkctO3ui!>zp_gdM?T}HRaLU!8Z-WHl`-H3?efJ@mb!S~ zwYKrgs%OT}I>wJGofAJoSAiu717Z~@hcMI{|5*h?K)s|^$rv&&gcf~Sb%Tr_r)HI- zHQz!j(RzFf{zs*^v2XdGS6K)1<2i8drS^t;})Nr{F3WSAEK_!g1AyPt}jB zKJ2P`T=iiV+Huu~bqL2*AHG#Lu2!*iO5T6iZ2j+9iEpOj6K5G7~UC|3`{zPHHPYq0_q#voG6ifmA9gNHVFWP?t2=xm2BcIaw{Zg%Ky zhaPt5X@_2R=xv8ScIaz|es<_@hXHmNXoo>|7;J|jb{J}hVRlHf!*Dx{u)|0@jIzUM zJB+czSUZff!+1MPu){<@eL9GwhIQhnaSmWrx{zm}7^z zc9>^}`F2=fhlO@nWQWCeSYn5zc35VI<#t$Mhb%j+w8JVpthU1%JFKGt_+mR<91l!yd5ss z;i4Tb+2OJsuGrzK9dhk(%?{V?aKjEa?T}~Z5@OADC&apiU0ToF#xAXAe!(uSXYOE^ z#+d=TH23!^?yk3c_SM{7Z};(Qke+#9U&Gz?w$q&u>yCXbd$&6CDB%uw&sz^Gp95RIFuH#~uXl2}t?tSI6kNtCo|w;C^>Y_7YZaHXYB`HvpiDQi32K#) zny6_TAvMuvRm56%b|PK6+>h<{OlkV{$xT#k>R4i~rSDq`xt97XUSj0~75x>16jm6h z7_5+^kY42a+7o*SLY~nxQ3(+N%X8)ba+4=ItB*)f)DhAvIow~*eZP5nW;*T9HNfEW)QBfbGpBNKTFWZYWBRF zA59SnUkZvCs9;(7P{lxn)e1x1X{TsnygyhJV-kunDe}CAPQP!MNIx0rCr4%lp&ykd z(oaG9DM9Hkj1cLkB0YYzbovQnMfyKws{XVo2zB&$kvb!CwKgL%7=5#eBKs&cI5pPXFYkpIx!20Ec%=hSjZMdE{F7pS)7<*?P}C``jmuI;P->QU|XDJ$$G@y$)_GPyOVbHeB+k2A^}MsvaUv zm=9XF=2z#nL9;F$F^d+ zEAhpcQWWwj5C8Prm+BkmJ`RfaNdo$F*aQ|5gI4u|k(w@a`Qy-Dg!H0I9~0S2rXyYO zm`LuEzVwAMES#i_lCvI*m9r#n8Rqx^*(w)54wVfc_wvV2ZYd9I8Conr!qYPBW@u?j z7e5xenUd9C{aDEzK=F^oKmLWPgXOF3652`xPG+0+IB1fX{PwZv zbNw5Dz;Zf!rgEu+by#1iF{~3 zB+sndPxi=uO*!lTZnE98k>?`MM_#DpWV_~vk>*2Di-ZJVYjL#Mitr9@#D$1+u7lt zZ8ukTMRqSfGb-1>XWRA8v^$EqpdA0yoG3Ff(XNcYUYjA%$us2H&@$I;e@<V_wWy$AXw~ zj>=5jyB-Iz8Tv(~OyGMeX1wD}%ml}|n2C-HG3ky=F_Rn>NZ32sQ4}-9QKp2wQyqN5 z-XeRNuB&6XF2gZWH_b6xH{CH-mq|+4d!WW?CTP;$8IBT3dyDKB+Hs#ecBS2%b$N+FZJK8jR}n#H*As0y++%(F}Fl-{$2Z|RF3Qu zTx7R!?-*al5Rb2u@l?0L7j4_&dcEZ*O**#jklem?5+0D@Up#q$-|Bsq+S;gY`euX1 zP2Q~6rj;=g_rt;=ApYywW`BN{OGt<3pm-GJE(5m*K0kcw-Vrpx{f4`!=SzWTn$$X} zMQW0Sv2vK^DJ|Nj;)Vo|S=}hVf7eTG`xQoxAfce5Pd;qiJoS?Xty-ldrKaM3hugh( zKWUuo{-cF|-m2#WVCf+SCa?NZhp~PMW8yP1yX%T|YsnwyzT2)v zEBsf7q;K76t)ApG(x6p~_F}tx{mrK#=ANg1*S019)cqHFUfOkZE0NE%08vejNKlpgf!m;)wZtGQsSM#U*0wFLLN2%RM=2OI z#OF}5dJ&1IwjN?H!bC4ZzFoKu?b~k81f-D;gWZoX#Ke=q>G_}lQ4$a4rBY+Ks+OJ? z_b*<_9?Ww=FwI+~dMCZ)V<}1r;c{3fz5m(2P*xARE=MdiDeqhr0|mU&X4mo}s zCTQ3(nG26`n}#0&XEGmlNN%0nfzK!B^%%R%x8HHE77GU9^~fWC02v&7MR{d^jRo^= zmIe(PH)x4b4XMrBeU-!yfbJCNB?eb6Q6<-l{?Y=&N!m(1sZL4C_d9k#cbD{=WZS+} z(!coG!JVHw(1I9?}WOM&6jRbyF7%e3R(@34N1c_9_Q-L2R zrL^hTflqCo)PYRL&7Te1;n5|^#fR?H4Mc|%a+`NJ7oo(~T#~H$*X^az#%r4P3_4za zyW5*Mm;3$Ottc5d*bJYQrbZ8`IApX7hv=jp4AKR41?fWCgFtB z$}^DoT9hz~@pQt>;`a+j>zOC(R_?%h6J-Dfm-$DLEYr8{uX zP38XsNBMi6vP04rxFktx)u3aCFFEfqAMPrk$PcB-{oQsgTeNQ6&<*hVo6nMq&pEqn zhGUk{D7X^hjW6KOe6mRaCDHk`PLt%6ly=;L%CBMGZ|n1fPZ=rnOfgzetlFK55vo^;g{c{KAsxUmY=~4P!Z*q56{E zYL_BDmgd$HkncODBsJy&J>7$2E3Y~b*}TbV=l!-#+kKPTq(#bC*r=(Eam~#g8@Lm8 z27ol|_{A&rU#$NMmEgr^pM6=f%>V?iKKsIp&()_D@#-tjz4E-YV)7?w^kq^@{1;kq z3bzvpM061q`&(C@c>^J}zhsSrD<5YN29m69qA$bo2^wQG~aapZb?JbEVw|O*^D{*XHLkeD$eR~RN9u8OaoD8Lz1bFHS37W* zIZ3+~Z`YVqYoCqHlRn#gb--%LFeX=6u0w*rqg7{)Z+J#Pjg%;4+DtrsCi5TQ3;*Q0g zj$;Z)H+1oB*$GXrng*^)iop_y;I zT<6B`L%}ex1HOFeQOd(RbY|>xE@1pI6f8++3!$m7&t@(({np<}QT6Nb03MJKG4=Js zg=S7Kaq<*0w!S_?<2RvV>*t*cS$%yE?LuQxex9_@F!l3vg=U)b@`iQ9JW^%bY; z-MoYdy6{+qe`sDflo256&sU7lcq06Q3Bx6VR}^B1XR#6yj=ubV4!PqiAL!GWZ3^g<~yK!cP}2Dg1)}e5EK~w$MuO;)P2aezE!CuulJIxp2tfAM6%} zIovyrE*x_QF;1_N?xhau9jw%QP0QdN^x+#W@1Tzm;q(sr2ofgmppOh;@DBR$|Fw7r zeS`|LchEichEK~kgm*9uGL-NRhJFtB@eYPz?jU;yeS`_^MPa3;6kcbo_hDPyMCSl^%*E>#UryKE9R_x&-aJg-)4|z{ zff=hWvUC3(P>cI7|4X4gocD~Dp)0gbO>WhuMf=C&YTS<{%ZW~49!mF_^Ou^t|J#%O zrq(U~R`U~j<}kC7Jzax2Qv)8!RA*}pkZskSWX{zXC_7(ckn93}U#u}$wo(VHbZ}9w zUa5OymF|tzx;NJ7e!ouFAY0dPqps0rUE{5~H@E8;{O=B(I!E_bj_&Oo-5+vv@8szI zcwG0Vle#}0*ZuLN?vJN*jvU>)S9MKp>fXDpd;hrZgM8he^L0)0bi+kp?jN^xpB~r!Ghf#tU-wzQu4Rs{)m2^6P2K0W zbzdCUeVMOI&e#1bU-wmxuJu)2o140}w{`7~>)Pk&{(V)Ka#NRjTi4;Zu48)a*HdB@ zIl6Chbl>LazRS^lpQHOBNB85*Soy5j|ICX0X;$pdvtm0ji(+MqV>>g8W4kabW92!z zu1t=u8-BXurw6k!R8#|tP5Icb>h@Hq3#ilb4V<$14;wCd) z;-)a&;-)e^;?zCkGMGMb)0qBo)0shWGnk=qnauFGnarrTSwsBW^LRG=DIA4*$}sq z*&Mfu*&1gli%_MJs3PKQi(|LP!Hzh{iG!VS%&xfA%-%R=UmWa@V-Li^!8kY+2Z!UB zBXMh(8`XbY;@HG4bHH*3tZ+b<16Dd=5gV2uOTI$)gx);l2E0UI2!(E*zru-O4y z9I({^+Z?dn0XrO!y$;ytfc*|Q;DCb;IOKrC4mjd~qYgOcfa4B0 z;eeA4IOTxT4mjh0vko}tfb$Nx;DCz`xa5G#4!Gigs}9I@z%>V4cfbt?+;l*m18zCs zwgY}~z#RwNb-+Cb+;_kO2jn}TzyXC0C~`ot10Fiykpnt8p|caZIH9W(x;de{6M8tI zrxSWPp|=zIIH9i-`Z=M$69zb8pc4i;VXza1IAN$0hB+b43B#Q*!U-dtFvVU827))*?g zR%4j#MvXLCUX9_hxlZ{^$7XhxV+%Xiv6Y?Y*v1}{91Wwm43; zR|f}la7YLDo`7RI7!d^zV$;RSm9Dc^*XM%aWEZsaoHrYH;HWj}! z@Ov75Psi^W=9e?gFw+cIH89Hzv(3;H=9pow8RnTG^GR5S4OR>K*Mb4Hpj&NN?t~Ri z$a2C;C#-V9YA3A0hO7l^ov_Xc>z$D8gbhyE=!8v9*zANYPT1;%ZBE$kgdI-Eal%d~ z>~g|xC+u;;UMK8x!hR8vV{NjW=PPprYdrr9Tga=N@cS3;^3Y}2o zgkmQ=biyMibaFvw7j$vK@LJH-1>IcG-39B-3<{QQetCl#Hkx6R88(|?iy5|>VVfDY zn_-6;7C#9+TrjE@jIIS^YC)gc(9;FIT+rJEeO%Dj1^rym-vwh)=PnrNf;OHp5WfcLnMJNW?2JgJp96+)6nohtW@c$ToHR41%rIIXF-E_S9fzOs`u*$#{Q-8O z{veyKmkoIehB{!9o>`2->6s-coIYZj9;WMIR}9S1L#7^P>Y4P|ZOmD7rd#@GyvMEotWv2KiQs71u}L9bIW|& zjFQU}pHPF-{j}NqZC;X}N8uDD7~O3p%Es}TuLoVayhH^q{7YIGZi>HShP&o_W&n9W zT1Q)nb^)`3&0<%wt5}f9`AWXx&HGq;fpj&?5wBroC_hK^nm|zW!!550a5S76*0El# zlhHnKj6#X-(D>L5YOGXucEHBh8;ggcTAw4gsu5&6=d*U z$2LhR7%o-sFL?6b&X<$_Gl3=FCSIyrwql#qCQDr^Z>@fwwM|kvXOME#nU_Kxb#A2y zIy+^*h*O`W*JS zekW^8mxsiq8$46rYay2-P~yMPOA#oKVCbcwr6uG|+S{mNKfNv4^fI(*?`H#A+?I@* z8>CF>X8)lsBU!RZ-gMC{;iw*t>EXB@+{3aDeN>8ABv;^SUvl?I`l>g1pN<0g8n*yh ztV~gY=BsbLi(C_+$lrOB|KU4QjF2dq%X%M5x27e+4@Qc0;5jNvi2e8R-nGmMP|Mf6$-7S!$d|jz18fSvA!qkm zam3=rtJUI|Q*G*4rcOjaM~cfDlgC5)D_&yd0~P%hgA`U6s2Hq>N>BxaJp1-M0di8$ ztNFG65hOg3El4<89kJD2Db6@Yvfea~y`phWV@xF3#0&$Gx2(lfX2 zl>rr5_x;wnJlRl16e}O57^*nOSYenVO+jn1|1k*aAE;ni`B23`h1Ci}6+N-R0z1nF zvt1AW!b2{gJl&W&Bs#-IiB8^MaY3)wLw_t-j&|ln>`Z($Td=e9dd4j(slX;NcL>%+ zg*7$a30y@g>MQddnmS3aw-N-{Fhw*g&t--wE+8zIxlXUz?m7~z8Y>^J7^dirRU57t zLFe|zrv%t=g_4!m9j+LOsJc&c_G=?ydRYYwW7pSpkf=J@1S%)Bu=wZ2!d&{gu_UVf zB9)FStR9JM;Y$LU{F!HCpVQZUo4T10ls&Lo-APU!sF|gy_bOnbTS3 zJRKI%TY{lEbw(IxPMw*HjJxX*#?<@$rStjIS!w?GJ*!xT^G8>ib-7{%@>xblsxL~&k61+(B3CM`s}x-4$WrL*u2vAc z{UrgohTdB1uSg6&X60*eJ*9PA=akRO@Y~3MQv7*tyrtrps;Rq z*Cv~;hf{eHGLgl3cdcTR!n#?p1vNOBjy!NnLe^mwTM@ZUVcqWLxmBU^9*$R57l-4m z%zj+-l`p> z6c&G4VLhWbi^ZR!3-(MMMR#XBZm)^kgaioMdW3L^@`#uA}=YF z?kYVYR44CAp*mS=++cE@fNF#{CQ2oLgTnxpd<_SWT*Y;Tdz~Ye+Fe{MGUz|rrw3G$ z%KP~|>3J!5UR*Em%vD%e`3*&`;wJLEp~#~T*mXAFm8RqC`YZYy^y#?KUV*&7;;*dy z77mNIk;^T`FA7D1p9wS&7p(3yefJm3~{SWBwizH(BsTRE2LMWBj2;tB4i z4dv=LL^+I(Q@thO%n|Z5#NA;Km!=#}$IbtP)DDxd9d7E;Zm=D0>PIN4L)|~$m2i_8 zRxt+KZ>-WfPMN0%7(<74Zz4gbAanvkCn~M!%3BDXK$q6_z68xcX(uCe3Q9X!IhBrk z)KtPvLtF;prXemvIbBH|%l`eLfRoQqW-4bYXVKa0`lrNZ2C|urY~~=F*~+UKDihqWcZ^z+OYpQpM0=cK|EKIqVK757J?pfdcFRr;kI*18#jB zQXZ!3Xb!C;Lqc*BYWSWz(87Z<%@#R9B27;MWWZ`eZt_AnT%+7)luBLVg(7%V>58`eq1 z!#b&gz{XwkhIJNTorA%izTpk)BEY%?gDtt~4eKhvx*`lCxt>refsfjmB<>5*<;H~z zQTtU?zCc{aExy($3%SKtH&u5PK#*nIKZ_)!fk*aHT6+jcj8CeD0%_f}sx*&4Tm%ud z*u#&cVr%im_EcGWsd`HSkPKg823WQ)xLqg7*6RM@`8 z609F?cg7-a9OA~R#;f?~0WXQqj=Sdx9^jvP$!mH3o+n0uIsp#+RNyI}pqi*kS4~nG zpX6__ev5nK|C@FxU;PhG(=XL~*7Z$t+g9zqNi`*SiP2`RzzBm7WNTf3aR|nm0q`x` zr6jdz-~Rb}&zTaur}m1&+X(oRqtG#3cLQT1WUxNyP;T*n(I1Lq@}YnW#Mm}8(qor5K4jR?hj zgmP}81%`zPop0by!q4ML_-Z@}KaVHja$}?ljJzrSbl>A4KA=C$Zo?0i)v_@XtHcP! zB4o7*rCe-Sf~*!9eC+4&KScY%AQ=n^^|8(S>wF(lTjP`I64O<(2>DXvy3Bz7tfhwK z^rO_avjpH$gPfJGF)THl#sPngVJ#gNHCKSGF{oMjI>Q>nI<&QQhV}GgUe|KbqO%Pf z3>yub=;W#_5BX*UY%!?3+h$NFv2C`xsx@xvz8>ijrs_k?&W$zS#(^YuloT-|w;!d11RWs>RlQC^VQR37IjT(6P^ERQY90zR zhhB~Qxf0UMD&`{+-E9k03lTYAW$gIox5>E8dD>dRU{8L}rwSm_AyJ z^rw4#*axC44)h(OEX#2+U8Y(=*Lf?209(ebHL_I8aILXYwF*_9RdN>A?7Qa)6{JdY zMN~0qv77y$lOuBi%!(sIs==@Xb9u?|!+!Ph)q)K6;FQ{a}H9 zA^N!GLhzv%pNZ|f1g8!mv9$%kzRLpu6EqK7uF_#c>=8jJE65xd&MOPUYoVc6u zQtDK3(|brym8{Y0qGZ{s4XP=!jr7I9_l-pI1M;-$*Y#WI`@a5hS3%~5ynMZ>{RWd!#?FV#%O;rCe)p6Ac)k%8I+V+wdeUI)_WON!8a!PeZ=(AqE$Tsf2$Mj2f zp?jO8F2o)A0ssRHgC1?bX$~~_;VAJ7qJ_Vy8rU*K66{A-aTWzTr?Q?`T|f<-rR(n9 zkrMJhtl}afFR84TRaX#sk&b+Cv}7F(S;bYf4h$g4Rb4~mRh6-J?b`GOKK93Kmsfx6 zcT(z)###Zvp4B~KH@LjI`IGgJSVja7#Pkr}#A_Wzv~&EmQW!`yDrjcDC@4>g`< z+@w>tzbI1Yan!d|`ntDO#A66WzTgEZX<-_1Nf>nZl~PkEMSe$hSH;{@VYq;=IesLr zoQ~-kYEh|)Vo~>1%p&H2${q9V)r@OA&FFsQ)k^PqTFGa^8L;$z$rUug@sVuFBgBoB z)X%#6UV-o43{|`Dd-j9F>+t(QoE^MKsvi+Z&U4imQOE1iET2aQy-|BTkD?M30c%iC z`BZ_Zpr`~{KpOjZHi70MAE!SU33XWZHv&jsH=o#LFU%_DK?T^e z3yEauSpr!ReYp6?L4i(Qta_+o9?_{g9Q9ClQa@C6R!1es1JXL9pDhw?)om~Y{SNv{ z(k~j!fzlX^Dz$*-oFpvj{_$;YpcevYgF)ugdBk-f&0lj(R8kjpS9LdaceTFm`$RW^ z{2@==Lrt9xf2=OhWvVvTN4KLoQ`Jjt?XB*kM!zE+n)eR|rsE#IE#L;KafvoWJy6Xp(T1pp(j~p~xd0oY#wFS?^$;~K z(bCkzQP5#@+eFtnS-rAS8biAo{!Kubm-Y#5_BIz7a(+@+PX+R z4C}gp4*ltv1U-b%@d#a_wk}mKQwP=Xzw#vL34|_3=nAzpOT7}I%jwX1#S-*7LRTSl zwc5Hyy%wRX=+G_lM{Q?&v6*8*lEo#m>g z0&W4bM9V7fF$kX?No15bB9nn)w}4hd_Bx^ z!*=4>Bj2sw$&Ed*TfK+g5_+=)L$}yogrQq(pL#!Pb1$9Y-(3PSM;(hHKB%L{yGnIa&yy(!uy-%dS>hO<^LX%8aVZ`@F*K`#Z@x9S?oZgZr zuSu{MSj7ePbk#+*^^%%<@#6yBbY>Jw$QN1pWkmkY3YXPa=%^o*43E03#^vT!^<_0K zH?OL5-SeZ3uxv7Zm+KR$M_4N5I`fFDD`M=RU6KdS9Il}}+?m5Qb&#|27Hk>}LbTk6}0%%iLB`9Dj@cno|&8_tm4ARj$!S+NiwuU!=}PWis?1B9nY|fx1v# zM6b!te@ZpMwkpP&aBWqren_v%;g(WW&>6uzqEp+y6sbFDI%~RUx@xF0#eF5o6v4{7 zX|P#Prf!<gH<8|4O}0uv z93UnkkQ*Q-X(rQQm$peT-26^K7`OSIqM1q;^Ov0xECx3!2*cIaG|hCZUUx179$XcpCxYX zET;FnB^Skxbn*#wHgBaH=o$CtYWEVx@x7;x=h0@N|w?kTy#S~;)yz*tmk3u z!7V%;zirrty(y0#mod6P!rnye9mL*6>^;MMjFz}V$EGF7MC>iZK0s_fVhap~hj#u*Ld1c&Lv7GuyaB{pvHTQ(0bnLx5!~amZP& z$yVZ!<9Zvejg1aJdAlHEZawx}Qq0 z*a-PrgpK1~#9FIar!gj1&1#%mcPF*%P_IR5Dz3Qe{VTOyTjRf~hSf6xcu_miOUZ&d z+P0%ezDcuLvqiI&-qZ5BNo^Asq1c9PGX>jb zyQV7|?KXO|zR+8O8gNgIPz*GM9L-LRakT7lf77CheC z)`q{jHst^KIyE)5WlL&%{yfano;j`^uA>^`%-`DcSKXf6-}M?d`?OgH3{0aoZjCfg z&|==V@+fZfky_lMlEolHbwX)iC!ow1d0r0}BI( z7ExLJbVX!wU-LkduPLBQ6nRY~FVqxiiZu^4wDUdv1zKnwkx9E-B9lj&PTJ1eE?U~r zWAn}hv}~b-GnCg;s3^jDYX6Ul%9C_;Mv-K(1JO(0Rhy;hrnN#>ZFeno*FW`K1 zOEs#7@d8XfR69(YrX5ZvZ%{)dAE6zo9i<&j7ixD+NvJ1T`4|*xF&@K=(T=5a`CWoX zsBtLPcsltri5{UQpjZ>>LN%%*2~~@gr=w6kQK)q7Bs!O=R*z7VQLHI+^65`|gqn(C zWzcQ00XyEqX(z(W~>8Q$h~LUX+Q*nb`7~+F5h~N7WMroUNUs zovWQkXY<615}P5&WYaN{C6ZtFV|ZW!X0A;0B_ zTc%w>$2ERW!lfZD3vnwEm!(}r$Njabgd2{y)rebzxYgRVblk3wCEN(atwY>;#I4h2 z({W9b1>8EVj+JlFuG4a9-8N`9(qZqnm)MO&cAJphW@NWXyM=CFH@geCP1+8uVykwO zcAM6^UAqIv%&m0fsgV-LQD~Vt$Z@CEx=T9>eXKcjVP)eb=x7vn4?_2%uzR%os8d&d zp8{eC1z`p{^=VPrqmC`#lKBu;6VDGXq(y!aq?_?Y5e-G)b#rVXWtm_jDDPh10`E63 zY=pYIzANy`@J$GL*&~L$@Cm*N5ii?ad8JBWmHMMXw1zQg4g1j=4xlyc*B+!>(T-sf zZY<&sA?`5Z4r!0jaZitzaN`hn6miE8cT{_vj+;4Az#Y}1-cM+cYB{~1(4N%N7Ikms zl0u}Z%?6pu+N{N4;Pvx5_BR$FCg@y)_O@h8KD>GQ29~`nvT#b2)(Mc z=4!9uAa#Wfz2SjQLg;mb-q2caYNsIA>-6S!W=YV=*aFMrvoyD{1(wI(qT^O>6>!Vr zTe0%>@yp}KMO$Hgd^Y`9`Ol{W*!p-pzTObOJ|0J%jqw}tXm|rX&?5Dw#PD-gegqjF z#XyTA@yF<}_X{OhGAqA`u+wOm7vnF{<$M~HBJ3+xaT#If71k^9S5eN(bmTCZfXvb? z!?w7KZE;U)y{~Mo6_w{sg%+;}46~I^ zR$ipdRu*I17ik~T+n#M8z>2i-5%LZCBHTydneYbv8G7*8_wPu!8WHl1h;t|B+^9dV zrp*M*q_R__eFsq`ns{C)sk2%9nuiQy(fz6zFfmbV7=~#BA=xLp;GIo7y7*0 zNsw#fumZ1}I^2{5={AV23gJ!<2Z8bO%tDWG66!GEKSiZjvOIV`&tnPC6DrVqj3Cwv zNJ9`^(@UhGY0SJx)R>DFVchsXxjtkBxqg};+FmCHo1DP&vdEL#i*!;0>b4eZW|#~=c6TsJ~k3dsL&CyLR1-=tu3J4v_jBApLCMsXdnc+ ze_CDWWgztkQva=6kyq_#lE1y9fOy#p#jQ7kR9~9e-rHK})#}d^WdB_sLG~BiQ#(QK z8V3u4TpdFY{ojkI6()!td8v?MWTf8kU4OARbmCtfBFI#uO`t&G<6f|#at*L+|xsw>e{9k(XL4%)a%9VBwn=HsNLm)Kvx10s1vUi z1iBH3P>;SdiYUE{H0!;!(_bRD$r0M6Fuo{=$q|IhSyY||&CM$y+;K!Rp5;#$QB1Br zLBc_+f>n(mWKux^?baiLkhR|^Du=E9aU-p2Bni973JDi1(dN43H;V#T21&A$J81PG zjmO*Mh2%S&Xl7e~w}025Ri)V6b~7EWpsbh<1S&LAXbI z{HsFaF=liT%{B=fX0r1ns})oNDm~)c|ctl;6gKk4x`24pLpXM zL5H{Uf+(LuNMSR2!Z(f8wEiwcq6ENw5Bi!kkAAdJxvhU zu1HNVwdObhJ9AXbXb?38I>BQ|icFen*g0FRnAzxTy$Y?GwdXLmi?2 zey^yc9gsS0-CG5;+w=&M+=wisph()W-!BScIs_q~{iPttEqnwyCqxwn0TM)&KPU=f z0R&M`c|;{#`$rJf9$iQVaz;Ur^aD}SHB`B3-zgwpDoB&-2ajBVfkanyei6Y&j2V^p z`u=-K9qN6Q^jWiZEx+R4+mZhKAf;W0b}ierE-fATK0|^+BVQ`?y3TNyaGl{U;W|T7 z$N8bYH>$URNA)%cmmm^U`Eg+p*^J#o0l^hD`sZ9fhYHC)etM&je9a=wJ_a`k1|(Ff z$WtjoPa%lfxp85TD;o)-#=RX3ND%dUx72WxG`LF|zr?uYLd zlCS)vnN{@r6d-K_yJLBPH3g|&Ij-U$R!^vx@`J)4ca0M2)wF3aAfaBnS5THDG#}}L zdc{6wPN>n?W`#lSKqb`Zy}twl5^D4)i?VV-lO@#W-_I2Lm@J__`#&lq-^@y@&*{Gg z0}=#do-L-^I&p&jtdMZkE4P{=XfJc6&uWS^jpwu^l}(eV)Axmhi(qMPjn!*N>nNIp z^ZrBQMN)R+3&rK@M{(;ZD-;^X=$DGgc23*=xBj`%?|NL?-uTfE{?xSEyp~N_nz%;= z!sL{Z=Nkh?kY>nFg@n6$X{uWHN-@0)k!;~mR{(23l)n-?oHYqk-7CM#^FGlf%&p2E zxxObw1ce^4n9$K^YmoTvzDpHCGgR;7vs58N?V&iXvF;`@?c+2W|vq4f}gBrPGq?HEw(%?EpAH$G`q*k{)}+1X&uAG}1DS z$d48Y(&~TmO4X6inkY*<+ImU%zdq|FlDZPp3#r#`6KY*Jk`5yXmDjSE)@?`u0oEF& zs>}0}3aM9tlNR@*=`hmN-L{y}6>!lAMN-Qv-xZgqXY?CaNWJHsP`m0=sW4LQ zI=oI<&C$dx5{F5`wekcpduGsK1YM5)zL?g}35!mx+Z z6d@mgwVTJ)Zh&$iwckNH9YzrH`yY#`{eYm9KmCKWLZiwk4ksxvO(=dCdO%Dbj#E3GMf$9tTRa z-<$do)VejDMTZge-g+=;HAq`IbRO=zav*5nj%av+&79<%sVk0#w-l2ZRxt*9@K~jF zoH9=jFos7Gl(2htFeFJ26J`*XP&83@c|@Ip3@0GNiArm_@)k0jKo#}XIl+)5t#0a8 zOzoJY?cZ9`!ivVMNB3fCmm%oo3o%mumLdbyIT>p=1+8(iaw^q`_s*fi2tv;3QB1Xc z(k4|Lg>NaQAuI#AO+#3QaynI!1=pwxJK~r>w_M!n-6yV>Xl|uG^F&9{3}vQrrg9c< zjHGb5Ud5DtLvu*=pAm=;sWMXvs0$X7>gp|*R5t@*vk^82VY8KUskOS~sTHY<5o%>z zKxIg(UUp%*)<-Q@2;62X=OApJa<+0l!saO#P_6zyy^E=xg;2Mog>-I&x;Y=xmsNzi zJ(VSJo2N9h@`cKIIDS}Rp>h#b#_twUQ3QpI6W0)B>tVa#VR^O|7sZ;*R?b6ii&2kD zklSMAQfk!_me64YA;-%emSuqC09o z{i5?l8*NxFSmslY-TZ591gBY>Kj#trh`-X>zZ9hQW5xMGekSr4{n^MpE?S$vvD!m@ zJ@Ra1KLgFMY*7!(vvoTyuCvQFqr4LRkh<0*aB~bTCXMklO+3HebGp>ua9uyZfFT-$ zzJ8HOM6{`Ab#~>#kAp{psRmXdq`TU(kgv0Tdefn>N}p?S3T!RT3=c9 zQ66nHB1Ni*6$&)ylkX{feN&-yPhqyweNSPwlDkEOd{5zBaaOv>K`weA)w|ijT|LjNKEaTVP0bDRRtcfOqCU%` zSYUku>WhEn1z|^!)0vq|d$ELovdzh*y~IK=_*F3vsoNex-FmmrBZ%nkCWQXph`CkD zcN$;aA~mp{m2XCS;@%F}tlYw{9SCM|bG7el$ONOajVSh>*ml;&qhEr=PW>&fHyKIN zHrXcd{r~K}2VfJ&);~I{6{}ut73>YcNr(~>Nlw2vxw#1;q*oxF6bB4AF*esW>GuX~ zx-s3RnPRFjHr4drtLb2RH_ZYp(~IPHR@z-jwq^_tg#Y`$_kDK*XlHiL`JFRo&YYP! zvsTuSmadnrmBETXS})r`RN_rb`C6AvR<71%Q&CVYT;R2Rq_?(d7KZK7BHR8EZA(Lv zAGVNni>qLy_2uguLl=%Q%x)8gh0CV;;2!|9T*AY{vZH=WgbVcNdc<3~R?1FXLD?*fftzKpEp7|Z?w=av!SrwIY3lAJ zvaZ#0ya(y`Z@*1z+Wp{^&6Tmf!dAYKjWXC#v{klI z20Mzj$+$BtTZu~ZL!Jj?W=X38e@1)5%@i>R91~3WWm6O_y9@1FL8Q;o5_#&5R4mkPv1VC#9dsiQrRwFty0+@qI9!L zL_``v92ES&Rcf0bTm1vR^Hl6pty;ACF}2nE39VC-Qi5+obuz_Np0g(;-LxQ`bU^c|3jEeG`!3>S z`b1D^YOib`5xA#>PUJB?L`%~FIIt!t-JIdSX$VuRa5rBo-5g0XUCrs{@rUPIg(9P;hAEBGo z1I;AY?75lc;f`lx+`q41a+7A|7@i(07ft0qIlp$T?1)V8Yw-{!3bi(?X_^^i-mJFS z2Adbl5gKGBM#9e#-A7Do*DA%<6tr}Se6yOnFmZ`|ssBEE%$Sz+YsDR;$0)7{cn$+B z11+bCD?Uwc3Z<9Hm&>UYa%+dX<_WzXmlo$}@t?$|i3#yZX}sS9{qlK7to`SNq&CSv zr?w(-GRZB_Rw^yEFR_#pIZ2ZWhe1}#SINgqR{v#If?UbJ%F0`U;H56v9{UvQ1)^Uj zzbLBm+cZ-Fs_d58D!KVW1rdTSOdtzFw)vcCot)IoS~PQ$qIsCETt2&;l%D~k!f*Xv zQOy8Y4bO2ysl847PmZUbed>i59KGWQE--r!<)-V7b3;_5ZExiZ;!iHaT zQFe*gI~VEsHa4r3;Qv7H)T02yW2d$XnWKUoayGj zqY!rh?gMw-^28K}uymbg>AJuYMxQ)?RuD2>;Eesum|L~nM~|cOjcdVF-r%Xc!BdHA zZ|g%M@S9+m9R>sRaIE2>Dfj{Inv|Jk}hzmL9i+u%>@SE$MDBNbFoz zPRcTcLE^=4-QgT&3=)Gwkf`F3s1mFbh9%2@idr(5U|5P=QCB93~ z!ulaL=9=%RCANi&j}PG$t0*U`N6!G3nDj)rpnZtwI?Mf{>n!I* zhmpXJfCTO=agagS7#S|mMWQq3W-y&ycsjfAbmBy}_8(r{N-4=(tjw;s{ai8sEfD1; zrKK*A*AY+;mtv{E35+T}lHd;G++g5#t}L&kbVE=}=TS=+q>EvHM@|JfBMmNqw^xwv z9YqU|yyzuu55ggML`0Bx8%RFJ*fr&0B#J@p>s!I7W$>tF2&m!0Per^QxD;xdIj3+b zjwo#B7309yI;S9^_SrNKA%KY!(yk#DJosG*QhIJ!1vWE4SNw+5_jves zaqG*wg!N@k8!#g1C5T`t5pac&OXDIpoL^R4ii(yNLg)PDOl{|JB)_fDEG?UBKLgWhtFjN5O}Tb?N=*?^53%4?A|Mo9_+N)kTD z6i(J3F7Xh8&N$VI|JhxO_kt1kl$Kt?)*l@7ON5NU((8&FikpgC3KEDp8_VmKnQlfs zQD&deOb^B*>m#>i$@@YV?LkEUyW9$V)(6s1HEM-0RF%oLHr&>b53FNQKl+C|jK_o9 z82XvF4%?Pm2>B~6a-OdTOdIFy~p*B^MDdg|Va`bd&ya+W`4MfV`hS zY>8XISWpp^t0L=Bf3AwGM@ty%*LTfo_;0Wcgyx@p{^?dEaUNVLh_h6Bz`mz&l(B>raK8o%H(3}V!$e^q&q zED!P-1`qNX2C;c0l{|Z0~%EcP-u`MtK%~>m}{T!01v`iD(z<(bBF;@G`+JbX9g!lI+4jnF|j! zNk%1WE9#c{uu#p@neJDLbWn=HyaneRKMa};|8$4s7R88&UgNyIn+&p{3mc zy&g&%>aOhRzhxLBspo(2*4$!(gSwf@RSRMms5fn@Am^~d&52Z<-6VexBcOMM`zA6t z0WFnffPk{)IieSggYfPBB7`zp+6y4$(joRz_V(Yrj1kz&YdwTTI~nH_V*V~wUppJU|GWOK#sq<`sU7UBH_ z*17;*@c+Z!x>>>p=DS;D4}ERZF)DI`nT zmw0vhnvPyVtPf{EmJ8rw^U>f^zebC2_kkc`F5o>9@XnQwBI5l{hPxJL6N5NoaMeO6 zMh35M^N`k)F*5i@NT`2N0Zae=KnC2>e?Mh^q70(Cc=&ETy9q_FjVAx(X@@=KZ-s?1gnQ`&|rM<@{*N(6MV{T61EFliqA`{4>wRw4|V ze~kB%Ha23q>ImO8C#10Q> zV**A5%N@6Zwi_2&{M(I-EdK4r*eleQcuD&~%v4K}g*%2l%`zPV1XKN^90ubT9&lmvDSwVzxt!;|9dGWZT^_=& z3Y@CEeYt{^kP{8l-BsW79o4BQ(M@_o*Ia9v`$WmkL%d+ zX~$EoNRt0*wIKOY>0$e1*oRA!<*&jOZbg>pddv)vC3nburezk$at2YBUp97;GMnM9 zSPKzTjU5yi9cVM(P0l%wn>MCj37s}#P+0l8h{8klm|{R-4QTXi%N#(Vn7CB_>l3bO zJ?F2gKv0~kt}5`x8bJkIvLp6g7Js}8r_G-!L~RC3Ql0%2wq@fA}$=U!UVKcnqmiP~Q$h$vq%sus@i_p7p6K81)@gR+5 zm1VVMjeoepAaUb}JDj73J8l)QOGcWR40Z`9Do}FK)XBt9%aIVxtsYv#Ay*JUF8n?Y zoP19ocM}q6;*gsggxvaut1Rn?s^@vtRhK^e%MLFgz=Z?;3AG43bgL-jfNK zifEdds&pv^$!yb<(*cL6Lo++7#%WWejLx};=$_AM63r^ty49S{LSGqXSh zuv}Tp#R_IANmx!f;|a4OAEcNV$Eh{ zB^(FBNub^Z4|$0jgXQWftSd)a?#Shag`gP=-P9pQw^(B{2fasqkQy)kzVF7loT^Jf=s$ zwnDrf)*(@Wc?vOJpKWmybG~E5cKK}=sTvOd-9L)>H=vnfz<;*fHb=g(Aw-Ob2e}`i zD(iAb!uJQfguod#`Qc>`Vci{v|EdTv%ao0l7MfSe7QnJqp?N-Wm1XuXA|g-F(s_W$ zd}wQ)d;!sZJZW_kb9!Q=w&xueu^MjGLsD56YjrRL{2J$}FyJR&_mEcMv8j|I`D%q` zEiGN5EHrZoHI^usDoHqA4B!|xTPX&Rn{*}7XyH89cU`2`u&EM$<5grHXTKN9=YjoR zBeNMu3+{mH{#OoWUCdLyX-`Z)PnOSy$# z$j5+QU$_e_L#3ygp0W%Tw9#F~rP?ApjW-1V?=1gjev}(mjT9<)yT`52yep*W@u#P~ zwZz15#)+xK*)$U3+k+5yS6zdEuhC3{?~@ z?WxL8aYxX4s(Pu28Eggya?32RWLf;VWpI);3OP&hH>qIIZ+FgHw~*aS^2)kg2h?2Y z#q8uDq4DjYKsuU*mPHmm9S!b0=7+Aj-0g6V6$KSdOQ)MNR4{`=)6JR0@gp+;{hi#p zqEvb7u$^K>rI&DW3MZ=8ipsiNiuBD0anSMQ=b0xD$%{CkAqnbgSFns=io7fhHv9dgoF<&yEd2%5c5NV;f%g3&8m%?BqwfvH|mh(~= zVQp4c)@I%@D%C;AXpP_1fdT*B2Sv?iX=z_DQC!N0zN&tH6NN$FC7>S)2=4U3L~(M_ z1h$&Nz#*MCeYl%YQ0GTahM8HTk{;X*vDdxis3L~HlL7w187&;3GljgjVRu=Ox|}>;ls@c^Jq*(4cE=u;pCwK$ zUuxtg-nN4Q^VsJuVl@mX*VL87tiBi-yz_JwHmFF-A1)V8N|Sew85?+sTM}^CZ4s~w ze+>i%y76DQFttdFk|#BlcVHUFzfgsZ0g{}6w&F?Gb8@zrIxi>Q?)jj%4(t4RHaGEp zAq;9!U%H6ZaDk-A%DP-@vj4>@!buk#dY>!_pjS+>7l`Q1Z0IE|?qkrK_L!S^rv(Ov zhfS4r>E%-d&@p*bFsvyWdBZKYZKUYcLs637I~8YK0T_Ag6y$-)yM)2`W#QJ9(K4f=?6%xFSS&X`aIS(YwRU$DIlSC zai^GTLQWM^*ND^h!(Y4VbQQ$zk}7PFpeq)Pm?$2ML!68bg>+>M>hogVq*MeL_%u&? zu^R|XjjrQ5b&E0{x*NnPoc3E6NfR)TP2EyOI-`NxPHguQR^f3Imgi!`3Cjbtv_DK( z2B>VPziOb0w3qlX;hqz!v8mBb97r*zd5~@qjeW}2D$)cVm(DlNMG!Zxw@9D%*0NHL zQOJ*@E3xWNir}?-NQmGKQVmvRt8$1Tkb2L!Nw>6M0Nk^;iZERz?MKaM9kL%4huT&l zks)?P9D|yyL1i5hv5XZl8=@Mj8m1afoIF=O>ke~(9e01_p{m*@vKS1;|I=H`A~SBd zZR4s#Duf>&7W-ubS~>#yC9J8U5vp7j3GeqBR+6qa!SvHO;S8zNBlpUwD&olg{c~>e zv2q;ro6c0#GUdfV-}Gf~xb@|+k8bVwd?%eA33TX@(4|Ka zgU<@_n5akIS>cs;AtvLT8o)Mul1tp+oY2ly%UOSnP&!_zBF~92U_JkEB}u6Zl znM<1*eTch{<2uiNcfamnu+4niOI}aLAn?H}?mFCp^J*i}JUvKD^T0g8Vh74ojrF6A z!EI%GR~^!P#@?(VOrdd6(g9UsoNV>85KU4P$a^Ymy%fC_5Kbbd)y(|Bi&-Kj4MWeq z;SO`e8+YG5mhN8WZ5&N7o`J5v!V44v4MfW9o@c`1;u1)wtl z=spTtmZC2Jok{Gf>qQiXs3t&Xok;Ae$KQ2hP7{-O`IZXs;-9LMcsWIjysQUa1^_Sp z6}Cf`!!Sk-Af^L7C#0MUSr*4I?s-hyRP;E_ELN_REmHEgYAq)2Y#IN)o0LZngTb3J z9s|M@5x3d)Yj3sXY7%_QWg>iA0KTaJ-!z47x?%>X!c>2s!yvNpaS@RxVRNo(rOX4< zkXtG*(e?Y!$3mYglZ|;a?@|6_FD|jRkdrF(k`WAO8xS`OX>9XhC3SatGT!<5CWvZGXH8I&9}_I+H}G{ zvfvI7)aOaV&6#k9bXt2aY1tE(9Pl|&6`rG|b705ai#9aJ+*wU(>Wlw)F$<9-&OUfZ zS(JCTKh4JBhUY7Aw*g?2s?^ZTKYN7W0aLTUT{Ab$9hV|9%z> zC+h@G!g;kMzyHrpt}wU1;qno^BQjIXDYbre*G{ne0=L1JFZmBG<1$G#7wlT8^q76( zqyGD&#;7r<{(N3Qb%8n4yudu2c!kwcQ+NU3@cuCd-A{gXkYY8jK>&Qj=P^iI;rM z!s+S!ivkdf%!`S;a}tw9v4`8Gi3=LrD@jus+=hYQTqK_g17Aa<2;V_~Z$7}cKw(>` zSOl)leE&#~fp3g(*HMkb-9#-qaVelhnG%xAJMj;}<>g&b(rD54naWU8Xo@n7deX47?!UsYQzkoMFB7gl#^}L^pSm$e+DXD)oGs30Zo?su7fvq} z$j^b6E(R@KqOdJhECVfFOtkeG&sP#mwl(hFfy^hdwSIZ;nji`BfBzGNSSmefKV>f` zcgx7DLbqIEo}ng5uE#Jza>3INTsSAedWM>$Q_;eii~@ND=+s!yspSgW3dJ!PIL0bS2n-u8AdpT^uuO!#r$mwp zf}ox0_x>>?EfY2d7s#(a%iR-LAYY~M-xEk0Wmb(110d0c#bub&B<1Rn`!vl4L4`IbHW5`wzer@L+HO1|H=l~!EH|(4d+Qi({tz-p z?vVdMGsl3N<8s>xc^PQiF(N~+y%NGu3C~aoFht7wPEk~0&?*Slm+LQbu+qGWcq8QR zZ}25IC}5}cX2k|BqYv7w*g_0v?;a@f{a>0n34EWD+fK{R0N*F&M9PkclohLIt4SlU zFxrw8qAfMjmtZ(r7~lv(OxuAY2r=zYoZ>8=f3U6;62RT12=9jm-03tWV4^xRE0%pF75-!UN+NIb{ z47xWKvI&F`hT(m4x~ne!cD(@azRjN2AMepM48H$nA=df zZ)1pG?B$8SA?NlXVoHsnszUZ5Vyw`T5Gxcsz;oZmjSnyJ-0|PWr4@Ull5`OT29v~L zo^UsVUQmcPgJQbK;E*m-BT+K;BxP0TJ}{D!DVhsP7QAT;!^lU&J>hQItW?x?%jQ~j zRki(7B$}RT5uhnhdW@P1TYLb0*c`=|&r=u3^V9>0m+k#I#)G*5lSC8snLty>?j;Pr z19SqvLTM63izj&SS43iu*mQMa95mR2gu4;tYo3YjM74|h(v8WdLzctm4+(M@3vw8% zKA{9sFbKV9;t}fZ2NDC#oJpRbdlZ*guGOLn9U2KFi~|zJsTcb9Vc>2#f3p(fu#j7k zKPt2`9$FdCw}Ok77~*-|o@gRk*Nv83^#{?QD0FCevH#oKuZf+JYO(cK) z*(Zgszgr-Gca4f%`Wd@WdZK!XYNEQf@((zL@{@q}Nl>1IZSzF~GQk?>v1iumGc zV%ltzAhsE1hY=~RWosz52{ont{54TO#Q8&tpjBL@#nf#1FR^9@)Eo;n$0=;%6@#GWSR%D0Ka14j7L71%zVeFLW;bYa zBD6V4Var!chME(JZFc)bY%|QF0%gFxxsk@`VzT^v$xR9Q{ zQXwuMVu&l6ArRMD*+rSI%VAg1L8seP6bCU=Q#-%b|wvxPq!AC32P8A zoV+^ML%Qb_L*>^iL@H~Bl1a@i6mD9taWN=KP>U0)>bP9lcOy?|jbJXxkZ%kz^Ju3$dAQ|yvq;;7cBkZXBE4rW^;!o0J-`xj4y^Y{Py&V*av zx@%wh^e*3S&4*k6>UV2gd@Ovo-CcyS)ki7G9pj-*DDqLK?-LVJ+ruwy6B6OycQN`O z!a&HFC%#KM-TyC+Ff*e1=?rl>XTw;>V6IJA_-y5VW@u`0}e(Uw`xMcX8jh zcG=_4+1su+w=Xj#oVWjY!LHTm4aSH_li6aeA7$x~6wN+hO78ftmm9xgfAzJOUw`?H zm*0H(t(V_^xii&;TA+S;p?ZGadjKmGEAGxk@*Z@>TX-~auYPGwMC zscuwvst47R>P7XYGO0dP7S)&PNA;%$Py?w!)L<%`%Atl(L#biZaB2jVOO2#PQKP9b zR35ceea^m3U12YkF0%KLxa}_468iv2F*Q&!NHSQGEyXER-ygES4;hER`&S4=jgg1w1Pyt0b!>Yb0wW>m=*p&kd4|l1-8l z$!2)Az_S&~Y=dXJWQSy@WS3;Oq*Ss;vRASXe%lYv0m(thA^7)U$q~s>$uY@s$qC6$ z^)B^pb*Xxfdart)dcXRB`k?xd`mp+lnmwvMrarDdp)OOiC)KCar`2cFXVo_p8}}}8K_|gX$EVuHEfQC9il0f4b`y2H0*E-e?>ox2K4ZBgZNmHWvX|smiqS>n1rrEC9q1ma~r8#Hc z4Ns|t-J>a{_G*6G2Y>9>um?2k8M;bxP;*0lNW&h6AGsxsBk<=@cvh&{W18cd6Y$qE z4SQ0~E6dRi(Vmj@(2UelqqOX3?OsVby>d(NH*4|j%ttadXsPFrc8 zpk*g&*-20*ADTNWDVLm)T!|{smRtJPqk7k)rfAthcu}NfuPTO7WwOoosakfL_L640 zc7}GQc9ynS%g)xabF}PSZ8yz4EjwS!F3?g7wTrZiwHNJ6wac{2wJWqM;Tzm7F{`wB za_$<9)!J)OYvH$bT57$P-JoSR0v}qBX|K7+ay^Q@5yjq&VsAyUo+xirRaEEbF45`H z=d~BK8PROlXm+cP?H0|RHJ6*aM{lNjL{mMZ*z{Gi|l))=j@rfbM`(umpx0j-rQGr$=+W_4bWY- z57J$+XX~!ohrpjhb<{AOX}E5LE>|~FH%d2JHwG%_>8{zw>8{(i(PgIbx(T|8@Jxay zAD+qZ6zFc)3w7)yiY zV;4e^MY_ehCAy`$WxD0M6}pwWRl3!>HM+IBb-MMs4e)-WF5A3Gx6NFlqc-cd=(g$D z?YbSh3Z+}QQ`hvW@|tp&uIX-F(^6g2JvwSHRNxll_UZQP4(JZ*4(Sf-j_8i+j_Ho; zPUy;XCw0^*9d%kqal0hW=-9Kma-B;@ozqb(lqZ$vbr*CMI=8M;cTsmq_sV76W%(5y zdsTN$cU^ZwcT;yu=h5A=SLr(IyXcFlHOjThbbW@ttDfqnr@HHV=zHpW>3i$hOnBKx zPu*1BQfBEr_I`S{zus#f2)}Z>00-&W!SL5?JzJ&htjf_3(GS&A!}P=TBlK)8ycnq; zr5_D{j)8~UbC;(ds~@Kyub-f&vef<5mz0;46ZO<2eZD?hJw!cOU!b3&FVq+5^VL)J z)HFRcT|YxVQ$I^z49{#mHAg>JKTkhjzd%1twGf^~@GORB2|P>TDN;>UEz>X8uh0)v ztkkos^z3RqyGGBh)vwd9*Kg2o)Nj(4=x0(FBy5GmEvbZI>Y{|bBw;VZ->yimO0G%R z>k{gQguN+Y*Gt)3l4aCp{TBUJ{Wkq}Jv%0v9Y^iZ@6_+o@79;<_vrWP_vzW=diI3A zOn*|}{FMH*;dbUE(y7ezt0s?QqW{T2N#^;P{f{dIk3 z$4xzZi^Edy)mP~|8wMx`D#t~$T zik=$X#W5Y88PVyES@35uJO`D>qGm_4bE4VP=2Mb0=Cjf+hIB)Qp^K)gp_`$*p@*TT zp_d^~+S@Qzv&Noj$Z%vC*uI9Yj{b&)kpm3uKtnM#$iNPUe`Ook9K#U92rWC*zz#F8 z!wu{Rc$;frM;fS626nWenX#6O3k{15iw#Q*OAX5m%i&pJSZP>gSZ!DX&sxJe z!+Ll&7&aO<8A=Q;<$2|1!+GTv1H0A0ZZl9Tz@AMu6;s;{><+_D!!ARSdbfcpHS95P z*}k}3S9=Zn4EqfS3hBGrG5SSM(8TH!xZX&mMU8Mz1mM zi{2l7AeuTDeJFarevN6ZX_(`v{+ND@G0!;G$c{6PH%@>?PDY@5iO2wvS6})g<+`Um?=Ued)ub#9v!l z$G447iHF%ynAa_nnF(QOtU~x>OtbX+$VFd*K7er30rkzsL zk~{eS@kVkACw1<%j(^>(L&vmVgQ;ltpH49O^Z#bze*;F|ic4+J%|3(BYV|gR-V<6U zq%}=W`pLh>#J#ofZ)*Ug;a`B{f+=VL-|&4_EBwHV-XQ$jhhb{)Pc4&02n4!YCI_&7 z<|7aSP}C%;4Y1rHE)7&ZwUzkSz~4ADe5bFVQtX{n@=^28JFD?Qd^`WDHdKAKmZ~CQ z;!n53moRM)sbmjZ$^Rq&M=%V}-(K-l$J6b;{}9C9HZl2Uu3qEYt%v0!Oxa+_h=hq8 z`2X#A4fjw;2sPJob(uW({=+-+b|{R?k)N@#P(m~gA3 zd{=zoPU^LUV5QI}iOLj+8VOiF8oqdHe5W?a9CX~LxpGg0E!QFqHWcs)!7Rk<;9k`Cct|VJ=Kuk{cdlI__&nT?L!*#z4gVrQ}~S{)@rYk(jdg1TC=Hu zSgU<3Sf~$%e-#jEgBk@sO6DT^Dg1j=$a_)X4}|`l)F$;aSX>hOCg!!!3o)+~ll_oB z9{#l-b3axITuP5%$%GbdSrf=$l{D9UlUkE5P*mPO2UJ43kMKII9t$tIsR8HNhs*#T z3Mmy{*F!bu?W8vGzkJwMgf{$J0ojJww>5e|NQss;m4$!RBGe%2o5l<;>y(4j!Q2XndVK;lb;SJU7UJ^~)by$*&9+lmO=W4IDE zpsT&4KzXBDONQwo!G3hjH;HlF4jyo(Lf#193s|u4`T1n6<#?uQD;J)nn&rS~-OlF( z8}o22JafMrk4A{Q6K|^fy7w;wi?04QnH8FVPtzPAmjzX|2^hHWS2k2}~fm?8C)xKX~%d)R;NBGCM*3IL&$qp|LQ}{uXFIz2kLmVWd2!mr}*g-M$ zSAkIPe1!yfCo$!fD-TE}-3W}@1_ zB7slbvX;Cdd(hzs+F9M|{Z46|5#S?IP{2Y}n2Q@*f2iw@ZT|#5x7&1>lA_u|`} zowa^+H^1!rV%)v3t&aFM3E=nfdy4OBhYkJoUF}%>y7s+n!N2%@4_n~>5!%9C?XaN> z%b^Xmxi|K+S}RHS-2Q~N_sidBTdTF)>2I>M)tYU8@9gg1(Nfqx(Dq*0d)>}=Lgk*=>yS_16MKCRTj1^Wy=y_x)sPnMrM(Vm=$_f@kXHT%dmYl=-)gTz zTK@a&bx5=K)L!5FmcsUdduXpi+PMezI^_HJD*XT%_!Ad03kvo6DEq7FME*)D72)*bZ};z1rnUEdmJGK^PqfwPaaV)y8 zWUUdcHy)ynNB5JQi0&^bgFjD350ES}qQypZQmR;Fd}Xoml_kbkmKtAOZfvsB_}Xe? z)3wIe*BhH{G*a;2O-4nD@r@GWn&Dh4#x`e-@fVD3D~;_A7~5YrCR{iEaNYQ0i81l4vBL#p zQl&BZfU#qV@jqvcDHn{XmBzFK#!h(=KaG!IN{m037=I}-{#s)Et;G0yiSdsq5z@kl z{}x94uQ1}z!idgPafD=cL>FpyL^`!7LRw*j^oEEmYC}X{c=}PBA~Yot{i*E{1E`%51F78+gQ(Jo!PK6JZ1^n)ej5V6 z4Tax^!EeJUw+0=KKu0319wRy$fsRF>;}PgY1S*R_b^GOHg!)tjIvs(|L?FUn&YQPV z!yRaZ1LZo39jL&8rZ`Zc0~I;Y zR0o>oK+_#)h6BxXpji%7>_D>}XpRHTb)b0;G~a<1IM6}|TI4{B9cYOIEp?z}4z%2X zRyfc~2U_Jos~u>K1FdzSbq=)Nfi^hMMhDvDKqU^e*@3n=&{hZ9=0MvWXomysbf8@h zwA+D79cYgO?RB7i4z%Ba4mi+32Rh_HhaKpM108jsV-9rOflfG3nFF14pi>TX+JVkE z&{+p6cOaJoopYe`4s^kRDjdk|K$Q-3(Sa^G&}9d@;y_m&=$Zpvcc2>%bkl)uIgrPJ zybe_5K%JeaixZ_gQHB$Bb)s%g)ZK}CI8je0>g7beohZ|Z`Z!UR6ZLhXeooZii3T{) zKqngHM1!3u+lg|VXowRHb)sQTG~9_sI8m+>jdY?>PBhwy#yC-)6ODDEaZWVei6%JF zL?@c$MEOoM*@+6AXo?dRI#H1mO?9GaPBh(#W;oGICz|C%#ZENaiRL)bTqm06MDv|! zffFrsqD4-$*ol@n(NZT`=0wY#XoVB4bfQ&GwAzW*IMG@sTIWRTodAkJb-!qX6K!;& zO-@weM4O#xixX{iqHRvJ-HCQM(M~7Y79iAKT+=S=W?G>wvG_2JkPc*s! z--mG|8g*t-7Z#aMRQm*mqqhfG@nHaShSEui&(T6zTW^{f_~Qk z&1iu3Hb(mzqy3H1Whc7gL|2{YniE}jq8m;ya~q(OjnS#b=yYS05sSLUqHeLM zdo1b^i+aYQUa_cmEXs^UePU5oEb1GJ`o*HoCTfu#bum%>V^M~Q8UR&H)Ig|Wq6R?~ z6EzsBaDP8Q_c2k~u?OkCCMpO1=x?Hi#2%t2t0|8i4dhB3ruVYc+$gk6yvFKnl+O0w3bm%mT&VX!L zrkpL1xZpVl&v|$*z*7MaLUat}rh>ek`UB|sZr;v#9Og&*$P z45ZfP{%Tu6K6CADb^QC<^84&{n`+;oxLS$HA;k^;Degh? z-7ax8b4}jOypFd?Y?x%8*1W%+iaXCDluKi?2n~;o9}&xC5jtr~$c_DRWbFS9S%gN! zZc~qnEtT%K_mPZ_b;-uW{(m-$&_&a|$RbosdEvR+34}(+o(FOH5(tfsy$=b5M#S!h z=l@j+gm###B@j9*&9Ut=?>3Lt_Khet_l?+NX4C1t_A%NKv3c+WX9gNVmC3f-{Rw>1 z&Hh9?lPLCpncb~rOS#NC>|QOqPs`p;TAjWT;nM1C)3JA&!{i_|uRmlSM;$iTNLX^j zoEIBNS~51aX3~;k>XQDr`HKFa`l|kfxwEp&d|f{-HcLM~Hca-CgUU(f+7giLFcg__ z2|Ku4M*j2`6Jq`8EzX(6^cEvxPfGXN>yqALbnI;7m{@B|*mDX03T_F;0oh>{tDxK;R<8S-7QPjhv2>3fAQ0M-yiMu z(f$Tzn95AqN**xGeOp&T?%S$y1v!TE-XWX^-AY~#YZ1=jfg!@Fez6k{ zuoGKEz!bDJ3jkX#v!N_yU*ctz2i~qE+>nO5=;nWRQKU7mXQpE$&j!_qYTS|$?w=2i zz??Ki2@x0)hTpUb#xR4&FryX>|Ch^S820)poRm+8NICe5QWEgdyG7uYw6q@pze#RG z{gnOvz+)gh_pAtE=>5>fJZUxj-l#8*x!KAYCN$GD%Y=}WsODqesU%#O^ehJKpTFV3 zzA1~KnWeIuvXP9ftGt^Wp{2gtOY^Dfo$t2>eCMMlQ*O4BWomTKha2)Gs4_qOB*AUV z;|0gvwk6%_zikU`Rcuq#1GN$$@%?d$0Y9#MKLeaq}I`%LZ2!Lt0;#uKuH=15t} zV~%0&-Th+EP|?zC=ovXm8_HG=A@+=C-xVcQ?Xqu@;`~~~b6ewHF{ZlWyx&l;N1Wbl zru`^lcvx|e=OJ79CCv;~W-Es&ZNrr#V3--Il;v4Dg#OK=+B?$rENvc@!yb2DqPfFD9nYZ*okHmJ?n1r^n~rD7}eY!qMFs`hPd8V73ggb`g>as zxvi(Xm*@l5K()ui0aS}AlG=avUM0c7#wo}$K|x%cBQsU$;vAW2%ITmWQ;BNt`cZ&5 z_)=KhwcRH?!nNI8zu(o+-|ulmJy^jLby`u6W@ac)bJw)a^!3FVM1wp3SFw|XyWbVl z-1tCq49(1f=6Wb?#oRbKi&*b+pq`9oW<$N9jBSpO%-KXTzv&^88RlMCT&)QM#aiKR zT*VNXT*(ueFMok%<|^~$i)6NWN^VS^ORT88%2zD1te4bdDlA17x5Y(OS}t0^23Sax z!ctFR*!TjeJ?ky8y$jIZC1~$5w0FgF723OGA$7)Qd$>rk08D4x+lKFq9vRGId&@mC zZXVlPo+&5s_SjgFw`!pPlKyw967)ZKkid222i~v5jC))g>#Ey`V=o9cVlO?8CK3Pj zD|8`YI*lQ|p%h_;9+H7*-jr`koPCi1GS}nV2)+Otrz&HrL{)Kvs$2tAxelsw!*UZ; z<(h@m&Lc7uW@Nyyu=_0$t}t^f9Cho2Fn*Dx5~%Y4bzY#Z%F@}2kjDb^8jzosm)%SM zh1MSK1kH>6sZ@CF3FF7^Ie|&aMLSNe;N?dpK8Q~Fns6N<5}^T9-*ZLW{+tD z)G9DfF_VVGtaf5A{DfwDFdkVSxh+fH7ly|^y!Zbue;-Og-!jCyP zVg@LAViqdZv~-Dbp%T1tv_!d-$oTtTh>Ta8403&UIUUT!M>BXXBrE6>CV5QoJL^m# zcozt0;MjZkVUfKs5onx3P+y6Z)|?jB&tt2Hpk~e$G2bMYNmkJSJMu*xLy9e06o@*` zq?Y(f`Qlms4ldPh314cdkGqAmgsD-+y)^hsO9NkeCAd`OGQQM8-$l~?!z zhu851_RH&K`^xy0Nh~mWOF)@&e63U~VB0PhpiY~(0zO%Z@6&|$l>hro4I-m=1+%g+ zz{;z^rA`Q?=KDT_ke`!RU*+F7zR15HuBf-(_a#oJhSI@hCRGVKHHoTU^Yvzm9(YIUx38MTej8Cwx(xd5NXA8>Wy%o8X<AbOzI}3HoA?y}@7z|Vw78UZupgG> z0rl!GA^`5`q*!0X1Wk&aMP$GG3kdH;TOWAo+a_(=d=#MQjRbDnF~7Uk`qjPQvEgG+ zJ@w>skCUdchF-!ncCsu#wm>#HmNawvu8)fpQ^1J#)Z?OfEwCv8#0wS?l_)n8;cWL0 zv5(x*^3Ef@Md5`HTj5N~p=92qWN;>BsVoCbO13;FV2UtCqG|KWS`0ph($$$frMTD? z&U~oznb+JLrf)A$6 ze+?Jg3>P~gwOQN@)#4pt+PpGSY%^R$gw*C^Z=hPnZcLkRkLTMAAC15?r+pLQM-UQ= zFHGc{!%XyX4IUR7ywgy(CSPo@+B}-nT*tS>=E8=$ajngp%(oVHqKsWc3bb}-0dh&P z*j#o0p48s(cM#rQkc|A6If9WNs~HqC82npOGlxGw;qAnRD9%oh8v5@-p`j4(3e(V$ z7KmgYw3rM8BWOckej0VkM4|>Q5~vArdvI$wpQ2hV2X5QR3Q?Y6{1;NAOTR$1nGT#1 z?OiE0T4Pl0NDT1~8;X#-*Za7K6mVs2~P%V@Aa6QxZuUxR@uY9|KF@gP48{EPW3GZ6{ImbQ-E= zHAqvd$Db6YR%Nm=F#|x$N%U_EqJLyeZp;BP{ezeD^bcaRv~(~th&c{^-e4x%9}mDV zkoY?ySR)cMql1{qiy0$yCLDR=SM%fzX21Q2)Ld(%wUFdJ#&~L46$0(dcIl?12O+bISd!_Z}b>P*yFf5dp7WOsK&%-Q4mUF zWAdP5n;JcV`{v9|{5PK@*>dxG9+MK~i?sBpvP5|d?9x%?aiX{wdw`H}F=GXrfobE* zP2zY_pO&5gwU`c&oKTh#HMUtvU_?I&J@gcjqGy6Aniw;VH!xVhAKNDYZZ|cGz?CXH zz?U+T*h?!F+4~xH%W)>;WEt&i>^QT)}T`e8IsCOuP?6SK}t$hpD6FYL^@H)eci&K#oy|Db9c# zqfU^kz4?Mz4LWugsK#~dF4ReXbQxD|*E?dh6q-2&)lO5kGZg2ao+3AR?E{fLBP|^c zogAiKXgD*1+{s^PE>?q$ySY$}+qj#{jPe_JT(zm6@ztch9EV;P%E1~!<=^4{m zQ#pAYeCivKs7P8m4u~2LM2%x6kXz}~R%peeW{atA#QFHiKM={BV7mnFb$*acYL|!_&w+CO)mi1Sd%Y+&Mu3 zr7q=JC3TL>_4zcBxG0*L3B ztKk=rbRchlE6hSt(Ao$_1HS$^(A4KvMU%o@hFmRScv89=UiF;MdnnpqDuA*Qj>*XDX65c19e zAo|!cZF`77G&m;!aaDOud0lx!Niq^&{VE!XJ`^}KU?oO^mB^KklGm`P&%Ys9)PL6} z(VGxNZv6sckNk7;Jk)c|s z?5cvLc2zeOsgVW$5*nFo0GpX*CHaKIyYTdfA1g4F{dk3^EJLNInVzx?6-=+Yt9qyq z>M4^4Z#L=kmT>gVzmbzf%eZc$e_G9cldS$1uZUK^+7ynsPw$4vK@=_Rsmf4s=Pi1w zdZ{?K6DK~Q_xRmToKCFh9*9l_Nf}dmUSE;xJD~qcl}LXyxGg|GtjVC>s!XD4JoToa z8bNLgu8DUjslSQdDu{#iQT0|q9ITHj%ZCt#nLgP(Gv!2sv1G6dyJ$+H-!5oVsP}*| zjBIz_FiJj7HYA8HK%1JhqMkZAK>9}?g42hD(9}1L&l*UkUUZiA*YN%?M zYB-USB9Ri_cOen-+D8H*L5>biMwjHGj2h6=5g?=4FuIRWFEhQgq}W5UTE1CF_AcV+b(iDL^T>@ zJ4R)l`S&Hz3%yz5_DT!42PAcZ4LXi?4){k$|6U~Qf?c`jslEoQZ?Vgm?h;sii!C9> zHl}}FiQP;{(uiL_7BoVT7D=NUszr@{ke23wMnePz<*CLJHTsKDD4bu0X`_WEpwZ(% zr^gdD`adlM`h{>wnn6yOY=2aHPLUqF;qYN zndtdcZ-h9D`QwJD8}HG~W|+lnVQgEOZ7~1YOk5-CJr3dBK9a;g*71BTggv~lbh~jP*#$U-{nk9l}(Tbq8q?z3S zS}9}O!|Vmnb`t|HSH2Ya2tyHe9phtNgOHUo47exELZ>KFO;t@(O$P_`bKE!oY2d%P zk35q_YMuS{EJPSzl%#s+zvA1dE)F6S6JkUr5@F2=m^jVY z&M;?ziBrTl&V(XV%{?U%H%0*9jwJK>gQ8>xfn;*PSk49{a;(KFlAm>Em31!{(Z{qLhb%l-Gci*MgMSsMh)U#L=dIuYtIte$I5pblyaQ z{tprQVDaJtng@R5Xw2mP?J%IG1gP1pvTacfgH2o| zME(B9EL0Z{HmZ%-^}=)utmoJM(@@V3^Yv!&f$rm1ZPEbf9OWXdgW!}`QjDs(m&83+ zzlaDA2b{J6PTK*eZK@r_5pYsp;cTL*Aua6;n_*$G3UxMjF_T7}itj7y6ee9M;ug{$ zF#t@RjYys#4vBZWi%5)sYCECYE~vIswVS9hOWTT*)^Jln9FYqbBBE1-(=@gnuW4?k zHz>s=#?4#?RvaouJH;_z|%r*6a5aSFOhZ04~JE+>H;syWlow1^_@(Ndi4{Bg@(k#p^%6;rfA$N=u`o8*I@(I?b-R0rmNFYG z<#n)>H-MPy%uV79XL$+2d2=Md-uy`fEUaz7jEEiDR1)^k;oPD|{l#uK8r-6z(AY7R z?YL?zxJ5_Fwy0T_h{{kv#RI5#xs1F_6?v2C(0*dQ5m2wQ%*}LxId5lKx<7Dd>S5znx83`b|j0V18FfX)n{vn$Y;Wxym+>K8+zy%@s5aLY15M)ZA~fNwCyvFFIU0lhI>vbhVQoMmw)`fUXN$#8JQ~=N!LVht zbPRR}rS(jnzPSKyZNPd(5rA78a2F5Ge=ZL$z)w6Dz^!1wjg^kW-hg>?2+I^fJtPFM zWF8MN&`&%b046fBKVCWk+wJ-sBxJ2(!DXlL;AlT_5`Zfq09=xEB9@&kQdoAb4d_OS zw*{;Xn4t+p+XA)+!05W_Z5u~xcw)M$89cz#Y_WrJzW|)Lwd)6&@}ue+=z6( z>O81A3#!hRh9*nzLe*K=>1EIowtKb(NJ+_#fNcSjA+|GMX8=Mw0439%u1sISb7cW=B?Y*$0JxGOU5LFjIzFn;vd9fU|TLGNmEhOt7Eay>!4YeD98f>WD49Ejnzk$UrZUT>;FO?~nrQs5)tucIe z3ok~CK#bBrjM71j(xgkVqd9H`KX<9WvfxbtLLLWC`;@3;D zLi5|ps48PvC=JR=7Up(oQ&L>kXuI?Y2x(cPr;V@|4xGyR4S(UlcB$*af$dWEe3ek3 z;Y5BsR8+>e`S9&T zg7F~0-{Ix_6*6CiPOz?G`CHZq47?qNGKe7o189fgBK9`r4ZVu6&T;`BFQ3dg0FN5; zf)4zK)w+Tz{TSPe+ogI^d=EB$nWL8X3_GRR?SZSu`RxH5>8)1tq=Tus6G(TNnmY|w z0>lYEa&)^EGmEqlSU=w$}dj>Np-YdOlVDbv>mF~l){c4kzFR)V% zqIKQdF1^*mTeO7k5}v_JY_Ojs6C`#Q2*^s)Dv;Pr_gPK>8F}~LMLy!Eg?eM~Hh!T0 zffPT3f&QmZ^sG@oC62paPrMqsV~q)fcC~3O_R6Qbg$QpE3-L-djpvn*ISqU5#7@qC z$Yc&B1}gDW(imReEu=UX<_maL zaXn+1!}iQ-lb955Hmx=>7rJjYZNZ+YUQ~nx400T6$L{4=%OqwUq8zHkbzzV4E)<%4 z1^Cx(P!VR^QHT@AIZkXg$-!S{+H7L3Ro-gaX2N?mCb1HbD{V%KFG+Kym!aAv>6OY7 z@F};CB+7H|g9{xL30#?9)k;aAW3o$-fW^;XGg~RpGl8^(+YMI2;8ZTKVcjIkEN#Ww$x0`mDcA9pXn8Q{)TZeLNCCbC?gcQosdq{ZMfo0LbCLD|A zC{tx~lvl9Fv(`@MS>$W}6zcd-*W_dDEZnAfhml1Xk?|QK`=_Y#5LqnKPOl~~D;aYM z@z$?9M$jcPx`xLHS~3bn~?dMO6rh&>XK$=J%N`SOGcFgkc^ zel3i=$X$e>4?}p0kDF42?Ns55l$NpltGr0T@lX5`$G>D4AIVCVe*yx~Bb^n1g)$?= zBFPrYm}_NHWs7CpK?W}oIKgeAik6DmbV@?#zn;mX52nokquaC@U}Vj2fu1?W^^9+$ zQz$Rw5d!P|5D=bDOL^h(>=ZX~3o# zJY#)3vxT_yXbsOL=8j=ms*Jf~Se5}?O2?~>O`#l@{+cTL>n`k&oH4BkBV>XTLi4Sx zL=Q0flQ6dpFwT>Na#I@@M#y)I-+#EF(%*C)drI(JF5%l{f+cw3D;&Wo%1w<@l)JF* z&0LRecbhflLA5&U8s04?KH3@IDXv@3PH%?W!tFMDrw-kE#&!BQvTJNiTuk@)aEMI` zho3sJ7s*$6^F?HIx0vtZyspw05TmRde$fDSwm8G)va?Z!t%~h}uXgYq1xhUeI*L(h z3C5A`Rh58Lq|Yw$F*1ZC^|cMWq|&5h8AvK@Ei9L<07+dYW0qs(f-r!yaXdz+fGC`} zOn5t6%n2_rxuZ{5gFfJy#;@{j+ z=swVHXc(@e4s7B(>Nlh$6FO?8EOeD@xeaV1yh?e=%8jrEpm-N>BTPVi{+V1FKJq_h_Ho3ci6g9m;`0y(UnE=!G^9*_wHj#iqYhepujclEZJ1c~^ zGocmB9Z{xorPADpm6#@PgxkzA?ho_u=Oe!G#v_l#Yt7%NLU_L+xg3=JH7jhHwv}#w zkC1{XJIE@S1f!mmj4~z|VMAlIaSZg`C~PSIqLd2uwAnATe&aanE>_D)FJ^Yu(M#-GrW*OwS&q8*DQEYIo>U1f>{~a zPV%|P5mINN2lMgPt&qFrb~fj3*&^F2BeuyH&F9rG9Y%O+zNbd-ju9N9H_oxtA5?;n zCK?YaLqjJR86iz%*H1zxyW`}(JUT*fI$Yr4xFq19l9K?O9+0OO3G)lrJ@@5o_xN7v z2=&kKBl*I1HKPvvJy~ALv3#A&f4rU)VL3J+US7c?gX{6aT;9PZ+aa4L+KFY<*32Sd z#Bmf)I+ibNpSc!L{yLW2Z@8$9J2Jn$E-AzHK&gW70bkqAf?N`B&{bH*;ppzarbrll z9DA=^;@HbvmRexgBQt+nmv&gZ=e0F1OU&zP8V`F+pkvmZ$oFNBt#a98Ool?fUz&5< zDoi@YYwmQ6g6y5OMOS(KC(wm=OuUZsUT~QQ6LrL^RuSY8e&jjE?u_n)f?F z{s~CNne|1!__vz3XN4qV?PX3f29R@Kp7-)TcWJ>R0VSN?;z$2shiGy~WS=upHeFvptiLa=$Fg zTW*7AadLZ*5DhdTSE5f0o$4LB3hNBq_>o=87qq@`{0aCi$Disf3JQyOQX!J$U6^Q68EE1_BOTE2kw zhBJR#-RIX!El9~xkews4&@9tIaJCFn=g?t? zCr;c~A1T5RDkK954|qb~g;)+Cl({@CSC)rY98WYsOS~s|EK|<%O!2fHyqL0RF2|HL zB#m2xmt=Ema1Wge{-?-KLCGfaRPGBMjUdsbbD`krQvdT##3Qg6O3t+3nS$_ea2 zyk@?4{E-mg;{hDt0pwoUY0*9`@k#eM;yuw6nmT4lIKCFh=uG0a4A%+YBm{W)gHE6c!IMdGyJo@;<@R z_I5B&n@fuxRB~Dr$H2skMHTu6r^J3=mM<_VVfnX_=O1T|;yAKh#-VhF;mBQvBPTtj zbd|T13W9y-uC%h5CP3NGM1jB@gyY`mOGOpB8rwx~bQ(IN2DAmJ>VW zhL?(D0{qxdaoLaYT-FsyE0{1if~9^18L`P!@OUGfEffOH;9hNZ}HIB)SV=+2m;V^n2BQlAHSfU*zMHtyw zAw)-zLFQpf;LNNI3YLarGBYVTAv-36z}=IwY_Mfc;EzhR_!BEp%ZXKuNXdO-Iq`r9 zeMppoo9jMdc&SuKsQwbh()0)qVAET?$Q~d_$rNxuPBn&3GfoE|;uNg=@zH}KVbcX0 zf}-NNVId`_fEy6jd0KV`xN%BmcxVP`BPbc*V;Zz0EWM$*vmE$XmsHlyk?RQln;^*cE_g+ zH0qQWd(XLsm)Z$59R4=j@DOZ^?G(k{(;CjoUHC4~x1G&N$xwN!Y?wTBxO{{hp`lnX zFE=Xoo-6QC4iUUCp8)+k1B7`d=-(N}SwYR(V#R?eY{P>&1Yptu%u;!1hI|>2 zk&Xp}ep_5wTMB_$(Uu2u48SZ0Fe~Jtneq!j&2r#YsSvlaZN*+HNud3e?fCYyq5YZA z{wjIsYWYQIegN38{ zOK}Aif?L3?;qGxxm6bMUY@1Zs4moGrv=adFQ)?E)5G)NRyRvQjoaJye-{`?(^%$t% z1=R1BhwhQ@1upM$!xTX6mye1uItgcyyyDN#Uq3Rlz%khcu#s|Q7qJWAHeB3%s_Y5y zZy&(h5B%FFKOi?}{&!s!?ip<%cuZ?HuZpiT#|do-#$-^%Yiv2#URnN0F-8^R_}hK3 z7k{%@{$>Gxan-&V#a7!V*MaRP-^b*4M+fDHuxLK|v>2n&aWy~qycnaTaiZRri@!Z6 z2P5)`{Gc3+$g8Gn0P+YHWKgGKjKao&j7#J}!iLFF00|o=$K=-;6A!yZlw#tC$WNr? z5)6^cvd}BCt6<_?!aDuVmgDL}`Qtj0oXO&vCD)VU6Y?x3fjv4QKZ!;3sf9=MXHs$v z5WOx7y&<~^h+f0n8qphh0e=7jenXyMoC5-WLw*z68I8LXV`d*L#95nJh&SXUDbADM zkcWn%JozmwfoTE!GVonelIJ#AZ^`n3z&z~y)olSko}L1t*?{ONdFW~R89+1}OX9z~ z7FRLzg$W@0`D-k)>>*7db8;=ehaEzS=fAvA#@r}6|7E;tQFbfFOq5v8=VbAmhbYZ_ z;5-whnJ;%A9u{0%`5$4c<;#_%q(Gi8zaS62EuRZZs{;4TEWii)^#X5m9Sdf`Q67wn zl-vO@m*t^%;B) zywy)3sNn)Uo7djr;YmsHaDc}oEg!BJfu$+!{Q@68Hz64B-sWM*Ag&f*bcC>4#Yikk zh25gmZDS+B99SS^`oz{HuW1M2VB2h5`D_~tZ6;xh-3sUku3g#$jM2eGul8G>Ak`$A$l*CUf7FtH&P$U0Q z;KRo!Wm>ILwzbt~{% z)C(Z;)`DW;^$J!hN;GWGi8BJ01uPF(fj!Zvk1VKaAum8QRmP8_3bP3oy*+vky;T9L z1Bf+l?1Wrv3yW*Fgo^B0fLRIS`qJ{GeD5QZAf92xW&YA)%(6+y1#+rafyeq+JjT8L zMPuaSu$aB{jKi#-qQ7E*VjxyQezB^!iWP{kM*c0^MM;XUNb$0OB*hdM`^y3*V?#Ka z#;{b4k;7Kgc=;GPv(+?So`{vAD z%K}14$p#o6>lC3I12zR9v;jLxj>fUHjb}#V1o?PoG$zR>0xu`vdAaaq9^@;ecr$?9 z5)g_u2W-X4{kh}CRje%p*tuNBv(uNYBS79yeR=X=PiYd62YX7BH9(;DX*!P+N3+}^kepUhtW;T!q7EH3@O@wA+Gctdr=Gjug zB*S)Ikc|fiTbpyB8nd-IM==*)ZH|MlrX|JmpxSVNHcv4hJ3qJkj+>~a%BRVv%V%IU z&!qD#MLyjbLYNKu1CN=Gl%xP=Fug5MEQIb#!6)~QeVwlfVbY7BCWJ|+Du#&=T7;FY z+#h(^8US0QGeNj!$wOz$$D28ylpzv=~%IBmRF2h#t4YlL5dfz%GS7`m=J$vk-WjEzFh$~T&izZz%nd9!++xW zIS}|c2lzQx9y(8+XyzO-LQ19hR&f<88lj6AEIfI>EOY@xJN?2VIv5a50Yn$bLl?>y z0lXA^#|OR7b4Ef+Rw!;TS}ctpz#q!W4@-%>#inpKceaP8Q=M)Q!xr&8GZ1KS#amCN8 zz!|nT0BczXaeG?af&w>IEJek&S?@h=%VPAz@HhAC)eugqSYo^kI%Jb#Gu9C>>J^qa#=w(IR=5njsfuZ!9w)o!C;_g7m-1WP z;5*wBFx7pLs*p=#NP*Aoh&9k>GqIbilOAz!yu4vTTtNTgxd8L@z(z}q%skDfT@{L? z8CFomW`dxeY1<{ZioB~rTe{DRYqMy2)|DH@$8>4NV{fdBS`o zKotVmBB8+N=D>D&RlDd;RN`Z`C4}9+NFKXDQk-FQr!~zmCg2aDzt@wkmSJ?Iq|7k7 zQc^C%9`baIE2x#1epfV)V}%rxI6l}!CBD{n0=T_Cv7m|_e?jz8}hC49$;tylg-q2giRbHzP#6ACe*=ahn~Jb*%gZv7C9O9Cmtg!7F`1lCqqs#g9~ z&IFH?g921NTv|{oU*M-d2m4B%C}>6e!gHWPnmDW&=y(qJ@@xwM`=WoauhidyX$1$A zlj4yqO@LvWGYW8#3&J+$V1B9&10AW@F5RGD@08kzx7$w)3C3MMB!K7ls|qlo5`w@Q zj|j%zrz5xqO$f$a7bApa^xA@Qx1;#5+wF)B%h?zSfm%=275H+~9hY-%Iw5c;HW$<) z?BMW@g4(*azMRJQ9k?Ak!^*{4(L*BCfRiNZJ~siTd-~)_0oy<=wYiz5U+X@4x-Q+il+N zNAxGwDc@eN+@KsIYOztdNx4}`Y&6U#MvLg{q6d02-6rmnsEDr49x+kfoUt8U#Jv|A z(aZT=Ol(hcuR7Zeez#Be?o2!G?cQi-eAk#*XGHJbj&OUY-hH}6MaK2$WL9})<}!cR zAke*wgm;UIGXGL%l2tRn;ay{*yGMR)UMEs1nz;V`yJbXlx5#c0@y-@;an4>{qJDTU zGRhhE^IKd2{>#5V0GvLFi0|=UY)r2<&~SN~e^=;MK7X7?k@n87Bje&@fA~{}nC|i4 zMZ`MGF9qqu+zQeX@NUt&chkOrc~c%2m(awu{@$~pi0>E_nS4y;zcxrmx`CM!>n^wu z2hEcypF^R@nCQ0|=7e+1X%QbE8`-5#ypvHOwY{WGU5e5q?@yE-EgIr6QeUO^6O}4tVj2ZdA^AF=%?p1YPh+kO>}pcW*_`quy{Wz zrb|TBXK|6yU&BCV@Mxep*oOu6U1WTZ4t;v}j){$Tc5CnMC(f)I`CPDykBNz5Cb@Wq zJ&~YrKzdu z{&_@{%h>+J-7=uoE24J~sAn1``RL=e?LKMuY5NWxKl}WPFaP${-#h)|pPl~|(WUDl zlk>2t`(9&@6Nbnmrk+PlYK>M$>HQ5xli3nr>J=SGH#WrduKD6@yOQ3aq*qBYiJi(_ z%H7KLdz51&dzG2QJ|(eVNgPnFk!2|lDi0}JToqjt_38Uv-|t`jz3m6xkN^JZ=U@Ia zfEY*&A_fyfh@r$VVmL8^NFYWMqlnSO7-B3jju=lQ5)+6dVj?k#m`qF|rV`VL>BJ0T zCNYbcO(YYCm4{77l*dfj;@oB`y6U`UVDNuX?{J9XGMewAGh{Ym$3H+J{PdYqH;mLq!nTTEv zA1mO=6s;7k60H`k5v>)i6Rj6*5N#A~5^WZ3fd;n1vkji@q8*~0qFtihqCKL$@VQU4 zUvxl}B{~StA$Sf$nIrHV6&({D7o8BD6lIG}iB5~oz;9>a$q}6sork}3MHfUDMVCaE zMOQ?}l_!)ZmD$Qu%G1g-%CpKGVGVwRP<=o7}Z$S zIMsL+ov50iN>b4iRrDlPwsf+Jo}!|ss_1Dddb;Yk={9uN3>7^SzAjcRQKhNURZCTL zhH9B=xoU+fQ}y;r)h)>?6}?)uMzvPeex2&JWW9<$DW*55=#46RlZxJ~qPM8%ttxt( zir%iGcc|!{DtecS-mRkdsOY^adY_8kuR5U0QuRHkq7SJKtB$CSs*b6St4^p6n@+-$ zt)fq#7^7o2oq3EtM@_RiL`9DpcK3-BlIAQ>-dc-BaCHJy1PVm8u@89;?b!PgGA;&s6=? z{nh={1Js$sKzIhJ2djsuhpLCE>EY@T>IC&j^(ZwxT0KTRRy|HVUQH*e=>y^;MkcrS zBI!cg1T~$cJ}sT7o}|tbpES)73B&4fT+mCguC zhd-C9OH>)^W$NYX73xeiy;4oDQq!x|gH>fTy+%#1RnzO#^b?vMrWvkz3Y)>})f?0s z)f;S^)mzkC)!WqDp^c$_{Tk1brJ8oAQ%!Samm2R>Z?x@(-}k7Ay=r=&n%)mos-GB6 z8`Dgs0raB)`f&hV7C=7@R0$}GRWc;Hpmva!7_23RXoqTt zX@_e^Xz2uaIZ{hJR+K45X}8+OXz8)qiNWLHS0+w4QAXTj%ec$nDVWbGX7T8PjboU8tq+Xz9D!w~K(*Vt7ilmyP$e=adh$SB$0FZMMf+x{P6)_Nn%n zwx5m(@7Qjmr-F{5GKpz07|tmY%qs)wRe|&k<8{$ZW1hIbZh&r}uD@!KZm@2MZm4dU zZn!R4JVG}|l^B$u+hH4}%OpnYcG|}3?&-(r=<)DpqK=*be81xK>*&di={dSxwt2eUwiMkS+d>^Z(yvUlNJppYW(P0P?X{)r z<^*Tx_Su%}_S-Ub^h(_--D=$$-CEr`-Fn>y-A3Ie-Dceu-Bx(E>9*^3=yvLM!LwVp zN4FQAeY*X+1G+3-zT&pxpzgNfkd8jAqmSr_qdNMS?zrxRE=_q-M`Y_x>6l$9W~=G6 z?u_oNE=PAxcV0KA@qPW=#>6u^xqwnbGyE?i^M;Ghp5*>X{N8i`c4|McH9bKxUAL;1FI(kpwAzPX5 zu zNz};TiPRC>Wa_AGDs{{@oyu)CgPKXrqKHF*hXaoU9t}Jecvp2iaD@6q;BnhY(6HI? zoPy_c;4bP+;Mu^OK;m5B`M|T<1 zW&>d%wNAH)N~Ojr6P0Tk(~GGkR2ra`PA#P}sAbf0Y6X=Ef3FuGH?5>jn9LKN%R+$N zU1{%(i;3#%1T(z76MlCB40e6;%X8WU;1-SFJ*SnddFb=(55_yptcjwW@eQ_6Z5t6E z+1D9f0ij+I(UIL@BkosYQB6sx0*n7V7bkh|-cgZV0kN296PakBCm1%_lEIFt!!6L7 zh)7giWH(qBKc8)~FU$Mlu9e$gYSN^9Mc=YRkBHdbKQ#|;9&UTfSAj1gqhE7`e-aCR z5T>i+py+GZqTJqCr8ZeVAUFoQL`Fo1zuD~j*PCV zkNG+l{0cvWx9jbU?hqGM2?MT;?#^y8u@T{p*Xph1=5^k347`u)6Xy)KzZUMOzt)?B zY}9@0ao>mAnUo1NZW*=#qn!27ZdDk^_HagpzftGS_JPfq_&(uwkoV^G*7)o7+jt#v zo2>+$+%g7K+V}B7C0H$0NmH<|TgF61!PYzI@yc4KauN6*4OoIT6knavZF=?U6CVM) zyg%8igdW~DCi;CR>}5oDtxnS&dON#Df^YOkXE)*Ey?Vz)1F9dx3?Rrs?^5Bd`@+|E zBjTLhTEzVj-L;yvFsj>kg^oY;2GcUSuM;)}VukBOgAH1F40~QY4(;}ei54sp8S!;= zOk8|qS6A1;bO_U2bqc$ty=oQYzjuh~6Wf(Rws}=`m}m?(K!MpNstyQ}jaIEf;VmPgoYCDPT*{&v#an+5tYSJ*uzZ_#!f#w7A{P1-gPwP( z@UJ3!Gophj&AfL1RjoqdExIyNY8DG`^O0-HuO@JJosS~F?h*f;lli|oRjO1{9)&-4#z(+rYXq1p zf2g8p)uQ52n3?UXgGiifj)>#Gee4=?g36$Z8Gws5s0L)VYjQt57vG zhpRkzqxwWe#8zWc@7M#(1}uE8KzKV?8%4QHm#WKljEL)5HB5K0>JU|-#wQW65itEm zRinJ?TXoBQ0t<+0lm$&9sQVy1sE@N_A77pxwggBUbP%II-OC(Yxi4GAbOj|UytsE2 z>J?SZVx0P`0w{AtpvnS*xS5D0hFqH_NFcB2g@3VmO-~qzYvgtEnpnPpdS@f`&L--e z&D3AEQZ2Sq@9v~p?xtGprCRT&2>Aa1CC{SX%c9=TqCUu?+GJ55=1_kHE9wuow%Lw!<8eOgMjFQqzUQ62NB&kCu}i>NPhs4q*Yzm-y7l~RAt zqB`YK|0tyXSwwZtq5f4$MU+xqN~x|{RJT0JSx9v+qQ1_ddX!R;rPMd2RL?9bDv#<_ zNJSS>F*#K4Eb7}lDz=b{E283as6NU1zVq~wEb6-~>iaC}hb-#HEb8A`)K81`;wAc@ zm*{_4qW{kleLo^oFIuVZPps4rAU5d5S=2xxiy8#aV0eZQJN1%X`k}-w{V;fj!!rV& z1b9Xgd-dc#{U~Ceel$E|hy!|6mVPX8R6mY5t{+dF)F%?z`U%7-eG>dO5q_HlzfFeU zroeAgiMuM4t49~~<|h=os7IId=&~MN(W9$+RJ&iU>6O>@=!PEM)FaH7Jbj~E`e{U= zemYU4pF!Ny&mJZk6a5zxQ~Z|@)BV$kS^nunvcG1I|59SUe+IG8e;KjZe>w3~y@FWkpGhqD zUrDU=Uq!6(Urns{Uqfv4UrTK9Uq=*())PDYHxRr1HxhgOLu!Ilbujuh=vpTrlR#7mzXYOZfv6vi`qO9tjRw+a5RC@YXb6pl(r6fshSO*SjowEI zwEsvNjiRTB#?n(o<7t#gPZK4n2I4Gyj5QEBwnw5xN@A-Gjb}>SfG{u^`8$bwM&h*TB5~VDtZ$qyI^jno2BE12 zziEat(F}NI8lH$|8J>z}8=i@h4I+5C!-h^aCbl+1a}2~e8=7Yz&f8Fm!Eb>9Ei|A* zI<&}uQVnRaL6k+^B$M^~h)cBcx(JQ+LziiEg+^Ctbd5&WX>=|Som8Q@8gzq3H))hd zOK#DrqI`G?;JFP?Av|~BL5K_@U-eLRwpZ6iv1*PWRZ=;UyM8}mux%ng2DOKf*;!{> zm2L+>`NmlD*B#~O<)Z5qjMppImUN#w+wiLvJZ=kq)r)r=j<4LbZ}afi!yV7@NSrTL zvPa?S@R)=zDBg_V55c(@B5(|@4iA}CEkeFezkSz$7sqgX*;8%(87%HADYshK9=XtWx_1gtCKSVZ4 z_z>CsAm@W1<`CHxL*&Dto~1!`bBJuH>Ukd`dk}O)`6wt`oYQQi=y6cK^!)!FBKvPR zMD{r7HguQk5ZU9P=WvMZLC{Hf{;Lj=-3nMFO_f$SM0UdXBxsiUSd(ni)1YkQu_oLp zvZGCAs~-dj4oz3nf``bs6J+eMu?t?u#%9T8 z%XX-fWpicurk(1C0sr+!#*Q`dePk?0c1L|oc2`Xosp(=hU81J%sp z?Qx)Nz5g@ygup5el`&`WMrd-Hofba`O3*wA8mYM-458 z_$)tIR(`51r&+S*qHV5bU)T}yiomI|{b2&9$}YK2m0hUfRM}=tL!T;}R=ZPWmuq;c z?27wT*`cr({8ZUC?RfciExkia@6^(}wDfN6o?m^^?5LKW9Y|N>yxFs$^7Cf>f~!7n zcGcH;vvZ0|0o6TWHY7Abcg;3RM~~KBw~f`U_xC(tw%(sTU^Y!nS3YA#%+%4dbjQMy zb@UwF4ck23O;D7xB5${q);q{@QK2@Sahs`4aRpN938a|^-fhFz4_;i;Tz^W5vS zSp64L0kbdP#2f{AelEMBk$2DZ@x_V zspyf;y*qcsK#U~w{x1mOe{B%LZKLx>7`hpT^1{%qFq9vL3c}FsFjN?Z?u4PcVW=n! z6^EgcFmx{r-48<#!qCGoR2qgJg`vk`s4NUU2}4iA(6cbq&x-n6(EuwNXhnmpXs{Ix zv7(_?G|Y;IThRzBO0c4lRy4|rMqAMsD;jG>1v1}oZVMVqW>vlVTzqODf6 z&5E{L(GDxxX+^uNXtx#Zv7)_Jv=4|1E*3Gn?Ee?IQMZ8`XZ=M(f+vZF!t+cd+D@Up z)OlPqM{%J1rgpNZByh6m9z6Hqc>vEtcuL`U1kYo5%BolF#fS}AM4M7+v>3uD6le*J z(rDBkrPF9BjUEM~!69hB6&M5Q45)(N!zDW<}Sn=!O;D zw4yvKx@ATAR#ad`x2>qqitbnu1is|B0$=Weaxf4NT!AkSU4bv9uE3W^uE3X4+eQ)s zUmimc2n4>A!3PAsJh5#iA@JpjEAXY%c8i3FmuEpGqVqJ7OCtz)84~Iac-czMfM=#* z8#&9cot$mhK|;U_yu9WLc$xS+CgA0%E8yjs?|>JgZh~EQkPy0u_8AaDxO600P5E>r zm6M2(LE@$!HSA5VNGLX3Mr>9pklFS76@#4#ml+A+GPn!uWrh+=q9&o7P=O`2NPl$d zUP0~BL;v!}5`m0DRI<22=+K+}_z1})#WDk0Zdd`#79%KGfomTHuw1+1T@rWmczS68 zCP$ksY{I1RG~ItzrA$=hf>_Kp^I9@{1syzGKnGya=dy1*yd~C_-$|+LRZ84FbVz zlU@+qDo44Ee?c(w3V$27j*sd-r5c;T?T z`DSN|nF-6wHbgEk_grYMo3OkE0na-uFU5RBxyYO?&W5nORCB)c)c?O>c?HV4y4!u7 zslLPVQq8xayIf&;spjVpmX~5a3D193SYAO;rLepu=2_|urfgH1Ior6wlx~Kg6!)F& zqy4h{xd^@WrrGKgb22>T5qf(n-1A=c%Ff0&MWuAA`iOpnU#|WU&BTb&6~pwFRJ!c_ zF-=$hzW09i%J;o9!F#hIcy9>=@AYpypmD0HVFLIDHco_RyJ>HeIuGF6AaLjVSkF7( z`}w=V^H$h=h3AdXWJ6e9ia9}(VjiiPZ+3^}?Q`GvzCSoob09cLlNCG(J_YW3&xXjn z{`L`#2iWIo4hJ70vjw8_jtJfPKG5!p&g*Bd`p)-3cHhx?>r5}uo$rI~HH*$0Vs}O7 zo%r8>=ljXvDq`?fn9F1EGR>7^@aPilO7nefHiY1FGG=N)43&hXc~kFd|vCD>DRBkg<`UM7*MJ0HA6H_D!_ zyAYhA8*Q(f7`)ky>Ey;Wyy?BazxPe=mx3?qE(c%Mjj>L>CiqRVyF>LR+bf0YrI@dY*PCh?s+VeBNi8;;gF1BU$uH5|PV7&jBI21# zqgY$s{C#cA__)}vo!qx(vR`AJA4PWQ#NJZHx#2tg6`Z5asMj3a3)dxm%tc-<5AL7Y z7HU=7MBFh>v)3{;T5Zt>wdf>tj@!6O46bSR+QsoS-xwbw3QqNbQL^HjUu>fE|T=QeHMYuEnc79HEPYm1|z+AT0tthCo|Z@5NOv}p&*xJAd$I&^;b zqjoL-${_znwUDn|k->Sj-Q2t0ac&#m(&YwcB$z?Cd9@I(P>aEKt=;@Xy<^)xKB{ee zhxmy2K5-pmTE)b0&7pR%Pvs9Z5!t4 z*tIun=6Y25v+pV$yTyGH5erOXkaM~(W_}Mg4w%yd9<`hKuFdQQIO8h=6Qaj`v8_819c)p5)QlHI?4?2PXb)9s5`<|@wEYM@`6@S%t@sDD)43cA6kFUKz*~iI=^B~W+d#j3sLC7dN%+DR&0aJ%CSx-izfr~^=ePaUiBF2 z4m6M*0ZU#c1x1T)-IyzGYh*`Ms>raH* zI=_yIkAx}CJ=1^U?PI}-5Vj_R^{M(GDj&Xs?6Zt&rvTsAilwK3raTM=@+;ikZQNUP%*$!CzhO`_3Mp9xhs{^aGWJq z+XfgK207|SiUd%I?A^l|%i%95Mb)Ux;6B7rFaAwx_>Qd`$zTC{Bp2_*<{|I&Ze%ytX?ge& zc1j}MU)*~ZoMhChHiP|mhgk!A0+H_5u7mxxyrI3Eh>E9?m^Yt9M)w7GPzwO^!;j9` z*57w^_GVx*nXbbl*k75Xr{U~zC9}m9y2bLkl{2nqd`xe5{H3{l-LC=7U)A5bvUUkh zYPe=KcdU<%oH}Joh20%<_lDVes#DJJQIO`(>nF~!PK3Ln0M3QRuczt`i&r}@kJ ziuZuDqV=) zAiLCys;oZ-R#eB{km_Q$qBRxX_g!NAn?+d8^e&W{e-jKT1&-~yGq%JleFiWAjA4Qd>q_16DDh)9uc|mHJ zDai|DJxxjV#=uHbk{6@~o095{haOXs7mRwFlDweQ%al~-vLHAmc|oe*Dai{|Jx)pW zPEz@lRPX)7Pf1>o>T62!0#e^ok{7VKFTw>zRptvB^@7~>%H5PzhZ#nH-QBYjUj#&a zr5+j8;Fsb;a~MX&KM!a^Y2JBQD)61p$1=WQhi~z;`9FW@Gf?l`$qF@1CdV_{9nGA|F!vM&d}o9!Kg48 z-3dl>0?^vVKxW$iWmKtFMinuiQDtXiG{s(v{;nz$%WdNw;%+e7WJa6KXp0$bHKT22 zwB3w$n9)u%+GR$&&1jDq?KPu)X0+do4wzAv867mELuPc?jE=&Tv#n9(`&H6qu1ow#U5m&`YaE9RTTHFF+u!+eX#Gv^ce<^tlj`8ILK zTu2m|?+_*CyTpBS5%JKBO3mnz89g?mGBbK&Mo-P?nHlx7p#By#z=8%^&>#yMY(YaT zXs87Zv!LM?G{S-sENG+!jk2K87Bt3!##+!g3mR`hi54`$f|4v~q6JN|pve|A#e$|< z&@>C0Zb36FXr=|tvY^=(lx#tBENHF;&9k8S7L;N^3oK}%1ue3mR0~>cK}#$s&4SV` zXsHEdSkN*HT5drrEGW~0R$9<13tDYKYbi7Ie{qE?LlJ3%X)KS1st81zoqG8y0lag7Pfr z7LaVeO-{ELk~8gh$l3P0#QuOxw?8B^?4{&#`y(>b z{+L{4FC*93pOEY9Pst5-R1%Et1*7}H=s_@g7>r7T(MCJkWJjCrXp0?fwWDozwB3$& z*wIcq+GR((?P!nv8M)7n_S^f3v+VuFhwKByN9+T|$Lxc|C+vg8+4dpg)Apg_v-V-) zbN1olT>A*|MSFtyvVElZs(qCBx_z|xrhSa~mVK=VVM_DSN$_Q~QW_9^0L_Nn6jj%nh7j_KmTjv3;ij+x@&j#=Ua$87N^N3wW~V~%*7 zW3KqNg++SRyzG7r5boO$SRFq-H< zlN@NW15I(DsSY&Ffy#o>bO)N@Ku?0v(_r*07|nE`Sq?PYfs!3)jswkgFe!`XInaCu z8WMtrhM-{~Xm|)35rPsz(8%AS1!goZ1dR_ti6Ll02ucb;6GPCX5HvXiO$k9$L(sGk zG(7}m(yw8%8O;nqDGs#2ffhQ@A_q!!pv8bj2wLJmX@E=!N)ADDLQuK`Ep?y_2U_Mp z%N=M1l!ulbXeHDNL8&2VF;odbX;2bS`Yp-`K`TShst~j~1g!}{YeUew5VSr7Z3sad zL(rxWv^fNA3E?v&y@tt0f)0kDLm}vJ2s#pijskyvi;jn&(;?_g2s#^razfC# z5Oh8S<%XaOA?RWVx)g#ghoCDVOxC4rSJtJgAxze#UC=28Vz-0Iy0pi^WL?_pKnEKW z`yA+SW6^#9>R^&E?QslXk}zdC1~N&Q4#LM+198YPh)KdU#LgsP+T)lfekKwzNxC*s zBSk0th?zm|6ih?N8Sup8S?vQZdKSyAwF18I(7XOmd_Oi2Usn-sY~H97!P0(PlfJ=SV|} z=O~KhSBX$GM=@6+4yur)$ug18(nR!sUjV^%p)jR3lQH z1VAS$LQ#@pk^=e>8dk84?)_Zm(T_~KmLQLAE_j*kX0$;JNKF#$g9q1{QSWn|nGvuo zV0plb0Jl_mfb8{8S-Di<7PE?f%v-NgJW8vZi7Sd<%WmZ>EgbPbeZUdFDqwX0u_izrB=T9Zd7FbF?iQ~Z zaI)J`a+{M~F)7Xm*}VXwlP}*a#U<9tc!TGgj+CST-=;`H7bq4g5J~~odC4t?XB zJo*$VSp?{hmV~A%hJl7!giWOOvyA0dzFbL43gr3n3-Zw0@WZbrxzJZaF*Q%WYY4KcP^$2 zu+N#tvTu~+by7S=GDbLG9i9ksga^>{6Ar*8<1!__>zOxXPqK+W5A{W zgf;}=RIE1&pv_d5N5%X(0j9?Jn+?@GqOOq>y`w*<>;aGf}xkQq;a& z{F$l7XA7T(d$(Y2&UygbI^)B?aCYes!`uuNSN@g1O`{`t1LN2Y2<~F0YSuD4e`U;h zRbV>ByTEj502saN%)eee-qq#KMs*?fZD@#Y*R)yXc22*=?zWR^hD&UpXf896*-@hwI(Pp5_2%XU z&xwgO&%-mH6wJeO)ZsklVDj)>H$)zH^gQ9Hi#$BfI|t7(#}Va8N49vaZKNpMkuN>v z`2RKs&!sxc!INYx&%r}KRnpn&Orj)!uIofR*^b-LXRbs%*^cLsi07E&Bs~9BiFl3~ zD<$GN?KowmXQ@w%29SGYv(?8O$?$k)&zVA8m8RR=scZ%q-6>}l5Oj`_KFMU40n*_) z15b4l%$yeaN-%RoL)SD3$TQ zr&wUDDnrOIU7ArSr3RDy$DLmy*Wu1DQDEfrOB{1t6YrG?=a&#pE|Kk6Nu6?-{}3Kt z6Z?`itu;YH>zLqftm%H;K%64xi!THc7hxkpB)b$i+U45495_aFC2*|hDtulG94Fd9 zp^X%}CYEoY-q}dKvx$0VGxe9PREzD@yF00tyQx-tsn+``0{%Zh$+M{UvZ(j7s1LHJ zHd)k%In-azQ-95&K0Hr-m`lByMSYYdR87{%rPSZEs7`s*KMJXT7EzsZsDG7G5v5d@QmShf)h&;57E;}dsIPOV z9;H-dDfLY$)iaBV%AxOEi~25$`aX;L zA&dGki~4sK_0wX#c!~b!CHh~M=>M}s-;c=Di&pCU6D#!thz)vi7Bvudst5h=-I&kQ zH@c;tMilC&6Gi$N#6A5?;-P*P@kl?LDAOksPxW(%e*SZb0sixdLH_fJA^!5A{wc%= z{{_S-|AoX@|3yTie=0H2e=#w|e+e<&KaH5>pH3wEYv%YbCFc8Q5DWd65sUqo6HnDE zh^79SM0NJO_xgv_1gYv^^lQ-B=TGum@KtT4pYYkmK*1yJ-q(aSKaD7Jo5{la@uqUAl;tRO*ByW4Nxr z?%wM01L0`oDI7=NWJ|1fZE>w7MZnlfLihD}e$LnxP(q`7^ukbP$H>*~?|MS)H<2xQ zkh~7<9U?_M?q1~vPvvkwOqLm+7+tt~m3VJ@Iqu7egQOc+OV1)hX0S!FJ%MEq70aPn z94}9igzq9FW|tSqBydi;&;G`5A^d}sOjjf+W+*~uDrSL*PgmeXE#yzUs7Xl43J|rS ziqK5On+UB?;6~j>f<L%i<) zi)|DgBt(TKw1seKq&-9h`FNH0(k7AnTmbh};$7RFT$$74ToT4PQ=kR=lG??-JVyAP zc6C!FQD5AJtG|Y%p*o<@hy|a{fj=wrOL9r57Zo?Va#Umy%$^wI$LH%hzu*MOUDFNM z6Sr>;a)8f(-S5@%JSW%kegf1Js$9AF5LX%2)s!Ah&dfLB!-Plm9^5>VZE&$%sbp)4 zImI(o4w~7`IB}WDqpDvdU)7D3NA1m>Jo*wUp7ezITE&W<M1b2ORJy|WcKEt;d}v?$}}cq}i&?xY?l z*YHwOvJy1>WJ%~Mmoc$Y!OJvHLYj@Ek8wM|PHP1&<$uj`X|-G`+D<}WVz*fx{%rAy z5-BNuX`%#xqnBQBk8Ty)W-o3Cu9ve4mBA}apveymoFrKdFTE;IXswYg)YLV$I7pIS zT-_Zm)GO1!?p=<4a7)TO>we4Ets2Kp0bJQ;l|k%k&w&6JsNp5OKpUDswhf9=)Lxyi zE!tC2ujNSz7uw~exlQZe+w^t_j`229r^fO|Dp48To?SR}FM`pRCcfnL_5yk5TlW2R zgLx3~N@R3claD*N?m&X&Ka(D%mFpU(nAjhhgf_@tStx^~!yCzzSRP5kOAY}xy%faq z;WhL7KImv0(aYH+v__tD29?VdP&ppQqXKWQR^aB)c+a(qy>27&|@IYI;?2nhc|DtMR@%s=>wd!V&v>p_Fr*3-qTJ%DSu!`p1jxdgZYE)lr| z;|91yT){dI&b8)i0h{_mErw0~iEHkOTcFm@AM>?hNy&Anb%O}KNib}>jsP3r&?wlkmod7Yn9M;<|gOm@_t7x8y95$?VJFjr^9nSj6jYzD(*2u7Uoh z>sbEDIop4NL{EyR18NX(g{DhpN^lcPW6mxYGkZ44k~!|u0zk+l?Vqi;`saT);xa;fxjid-+RE{`=$rL-x3oJrqx-3 zk3JOA)UW=A*VKNbco0+scNiL^7>vdAk8OBN?*gU|0n<{z^pWW?VEWL61NdDq4^Tpi zhX6ouil8BiVOXBdDyOe<$RZ9?;$t4uBEa+sVEPm=eP-%sM(7Ear+vDY;G?>PNE{W) zlL&VCa6pzZ%!eyRxN8Yu+P)o&=@Y~6NO7w1iD4hqN;NJv;$Xepl!qlF#R&kbV<<{c zjKsP!Z+=r!?gJI?3UK*A(XN1HSXOrbltpm66oS>(Dz-}@SZ$XSmQ-u8efLRh3EmAR zK$_jblO`v{qky!n(oi%?F&fLp&K-Cx!$|RZz;Xk~*LuZ9EUa5^@URpRu?nyb$RJ`> zF&0Z15mzF-{KFwR_%jyC^$H~^-lSNsfS6yjNwL|zHWdKZKb{NJhTZB+Vs8LWXEpib z?F#1;a0vD9#v`Qn6K?^8W=Qf0v_-MiZJKx~+~2?TvWMaZ+rh1Gar_AfX7Zcs7w|hMi9sxl~uy*(ceyiP$I>I3SAA8>c-^7vqKPw4Iwz_O##a_oG0ZU0F zAeQ9Ir4tAVNk|BgcE?>}Kp_ssCbl6Yxg>z;)fCga>Ae^*y%;dfbTGYF12RPhO#Q!= zc2~taW1A3;|NY?eSuCyQJM-R~H*em&X|)8(@KgmxxE)%t!j()=osK&bmuK+wbnpAi z^yfEOnJ)EssLRA6lHxUO=f?YzURUP*dTh>j+0v%9 zj`a%@2I7BdtLr^B?(tVjg)IEcZxfJ_xB!dew6U?js>}CPUJBgA-mw zx)}`4L@+p8LNlOS-b|!$QAhW~`W{0Xy0Du;2-7iKSa+~ATr9~3?|mY4%-PaOQWBZg zF7EOi51cW6t35B92(hF9WYY^ezJkzg#C;@(KXsATl6Rr1WArzU8weFLn_UY1H@n~j zS+l7NGZ$*?EPDNsE&cRZTkrbFS}(oy`lGetk1F3_dLc(rbF9^YYmR4RXXD1j?jU+< zbGy1RPN5pJ-e;2dZSaiw7!6cAF5Q+eJ{{EixqwYhxPj0YF8oxeanIALf7D7^jxuHV zDbu;QvvIqKmh;{2Zn6W9sr8j#y0CL8#-mRw{V%BW*I#<6)=M?pL7t@QU*%W*=i|=B z?IGHd#Xa1lkrB>J9DBut*~~|T&5bt+Z+;{7E64unB1BfPWochCVU{TwFFaMxzf?WF zpI%}{L?lfO`Prwb7vj#x?IUVxS}!+dcuZ7-*WNN=*3A%MuhcPNrm~5!f4plFntk=m zP~b5Cs%!F_Ud5#{yw9ex5Hq{qkju;p6P>tJt3F{<={@y>OD1h>@|(pZ?x-H@#)S%u z*Pgbv$JN@rAJdYEkq5h9vnz_b5Vt=RCTMXgQ1xq81#Bb}?fBM(nK~dU>s#M)%G!~5 z7y%l}#keM@&PQK}&NGlalY2XrGpr)}jSTGr#rI%!_eFaR)<< zy~R&Qj{nW-Vm{Zb*W{Zfu$;t6s=I!Eb$2Q5V%%Zk=%GP#7k+ArWD5F?bO(hZiT&}3 zPA1IsHxU-m)r6VbCW+txFM=bXy^Vd0$3vfaPGVGsBBST`@Kny)dCtq&FWw9fiPzer z+yX&5EYVXkO@yg+TwJNkFD%gop|6Q0CqfHCPr?A;MCd8vsB!docX^RIOwG^o)jVd> z4#!{p38r!u0pO57O)_Ct0T5xGrkXG_^dwhk!vr@WP=~9Ah~N0|-ZNs!X+X_|vQCGd z@wNsWiMM8%f|di2WZ%4n3qN^DEa%WXQ_$2nQF8qkm@v^%VkuuN;Yzuugt@G)5yaF@ zmvX7^GpW0IQ)A@Y@OR%7##yi&=ZID&d!pNC%%aB`*?1gAti`Qdgqc&UkYZNwLNbUY zlR-#RKuD9NQ@!ei3CxNX)WD3q)z66qA&$BhwxG@AT6<>=Pf%5{WEv1O9kQM#o#9m~ z9PEcY9%d9vX98@N)HGYl*z%cVWZiW<@)@yo4j@74=XsEG$jCbDd1RzmIv+JcSDVpQe1%xxdK;_ z4d&Ooc*4FCOI8D6Ye0ckOV^Txe19(sTP>|7mgY%UOV>$F>plGBk&#FD@yO@J&;(XX zH%LwS(v46(1IWnV3wdO9v2+t4A%?!iQ|2Zqsjk}k)m3q{E1C_jVbq|o2XEH@C6=6L z#>LRPo)5i1>?7Cv>Z$A!0z-|WP)upD{n^qk60O^GKNhY;7f0_S67xY@7k*lq)C3AS zY9yCJi$bZ(#8R@;T*9-$nH=PiiQ<2GvX9q$XuxHw*%t@<3YRLk7MtoInU25J=ILl9mL38+4ogi(q(^~{L&OIDqhIx0kG>Yo z3}j%!4AZwxwDEl_%$IErm@mVT_M@FAEm15z2BaOAnodYh0%^yHoyw^}oSq$$_cI=m z_cxL}g+|M2;Dha0;%>gm6W3ZSJq5&_mYU8;&jN9$h@H#+UtHx)!D9g0u(`2`UX&ICH!kTFqRTjlTT@$R zCWJJO={?1b85k1%s~v63{7B)l;ex^C^*J%k2Q?+mBVh!d@`sDGDiTLpb~~1|zS6J7 zlB-bIHGo}}UMJh7k2>&ni8zNpgsaLcp;tq%gEt5L0ApF0KZs?)%?zt=O5L7e^-bw5 zq7h5v<>U@638ik3%aBgy#gqkNDg`m!hC)iEcZeDi+1d3l)0z!t@}&)f((XZN_o1|V z(g#Fyafz!GesD=FW!!AOl#x(MN7+?rCkPRAly#O7ack!AxG{js09+TqWyrdcar5W# zxN(5%2Dt8k>n7_VBbklgH`REUnX{;cY-!zO5mh8TW!+@GWH1%fQ`TEXvIOrpBTWtC z3R5rP3o}-c^nt==G4oD+WPQmZS+|_WJyS)}4{&oCTt8WVGOqJV9v4|fk_os43@%eP zfQ*~9ipND&kqiXfAVw$yWrN8$;~E}ESCM1^&P@R>OE!dzJHD2$@(EDo#RgDlsPbaN zP#LLhPT||;&Cpw+rJ=XU15vbrFD082OGkoYjgpy0%dQv@8tFaP85?2E=b;k;Iu@Yg zWTx@5s{kEK=Ixt}JajVfmJQH}z+1L#5*gQfGmo1BxXFN<0=UVtsa~1ja09n;JsNZP z)(qK9axq5=`C_I)F|(kU*-*?Z*&G?kVwGgL9%A+Pp?U7WFauee4zi@plFbIv=E`Qt z<^gGQW%J1_^*PMq=E`WXWPxlhXrT!$kmZnJSx5Nd=0b4`p}0j*+(Ox6GVaPzUV_sB zmkSbH0=Qh+QWHJz8HuE=0h<|BrspLku0ZAT`VkLR!uC~ zB+HjU+yrfsZI%)JnQK>he}zj1&uHdp%Mtlw;-szM!*9VDy49UYr`udEchgF_&u!!pwm*-@yML&T<5 zZ#dV~9)xyObW(Iy5UXQO1Y1zP?C&rk2(@?|s^ggK1i2O$MX|7BGAm37%8toS0qmsg zG`TIj@d76V<_yL;wa?3pzx{X4!1W%6+>A(VS`CicLdoU0CABa9X=)$#;Mc$zs}{sUU}Ugmcha@0LDxzVEUBy%h*2U zVyLmzBVCEYHhH1VdEfsP1!1@7VLD+`CbxHKf~q*~N}PAu8O|ZOv8#sA(odpMT3Cmz zkUNZjxk`42@h`i`yUG#r-iw3lvXc@?t6H(;9k0um7vU`r)+TiGD-Vkdug@c6yvXiy zQxADhAEnsXZX*_XPX~k@M0q)8A$W49a{h&ZLCV+7W zULD0xx%CePEmtfH?VB8-JJrkNd=C)@KZtS+;y;#LlqEa?)VY4*B<^06f*JC+L;;e|s zD$?078N`GL=S0kf7C)Oj4K^T;helPA&I2eDC7d6z0HE{8(2~tO^!X~%9Dr_sQWr)n z0%%S|fc5IYt%+o|AFr`8+mDGde|sOF^$JlH$zsSm7pAw+;)o>?MBs@1EO2pzL@Zeq zu{eS`@M%@VYBKE0gDh-SM2J|jCSp|tbHu}%h_&S9U`4067LgaRE@FMe26FPZ&-jw( z17KqWsR51S4s0v4G>T*yo9yQ-qm@{Bi!bpKUJnz9U8=$&2#|2ss@F4mpCM|NKrmr&MZ=t&jsXca+yDc@JL!Lod-w=Q_hz! z0OUNmaT@hrheU7#&5!3yyh>i(<2|q6vn1Q}B9Y5))jXHailsTgk^E{LG<34f z9UsjjUxu(MAeTVDl`CIL7VD~NEG(CCCzi=`!JSwxUjb5GCik3M;AdO~k5p^dMEJefAWQohPd3Z@kfO0SMzX-MkekN9=)-UT{_8ey15Tjf9v|GiNdZ$>lN z6|^=RdQwaq{iwZf>y~7l)lXdcLE^&nUmuR;`>#l`q=zCy!CdUtL(x+~lGgj}s^eEz zl5C3Z7k&>J(S*L+n5{$!b9D%{)?0TNfqgu}MOZOTs=R_#?x0mKo>MRU#CSGPj5vX8 z@Cl^sqES!?+*pefhn`eN8^`f=6a~W^s3S02sF$L*Hy(+RO8!U}X0bR?@?C!6B+p#O zGEuai=-y6T?G9RGLd^U@M=o>bkmbvUjbyj>gA6V?a|6u*(PnRQOdT}(rFz-rw^%cA zs~c}7U?{f*%mi}+(-wIF+0ebzn}@;ZcpJc&(eXCDPW>TA1nAev1AIVi~KK`^tc(R!nZjXIF5kuP~{v z%8i$vs+E9R{Uwc|9CfWV#;2~=cM_WeKYPx+(DwFR&5IJs68u|j08swqKjyx zVw5+Gfl=-U`R<3BbDi`lt6S6M>+LYd88ThoBgE7*q*n+`a(XY>!S0`E%0u%3+8dyK zLQH)_`T?{z8T!c=JaiL42LLoP#B?;`7!33WkfG=Q$wRjTbT&ZegqY@r%!5*AlcDPG zc<63`&Ijm%5K~UbaVT{@8CuwihZX{K3_ur!m==ee0O%MpbXyx9dIX?L0J=29v@B#f z5WIv89oCkIUIyq2fUXQNtqNHU&=q8;CY6U?0q6vPt_d-%4LJz}PY5w)KQ$vyq!}rD z*bBy{?DDfIx8iQb9VT{^;ZuG7)oAdr#*mk28vfvwr_?T%%%`Ty*M*qSd}_T{>2QIu zjc)QJFIHP$?Z*~4pIW34OK(u~shgDP7F7!4h#TYuHHx7;t#?4tH-Mt&hnO~oY=Snj zA%rBt8sj(-9tk}ec`EWaQH1aFA{?q13*N>!1u204Rfg|eEt1*(c(a=@uYf;JC68zN z9#qg~V0sHw(B_b>-up$cYlzkd;0jn=L3y~CJuGf>2&^F57P6T+&(Fk5sc;w;#pon&OzVIB!nkh=g0vHaa3=a@h+nbejSSY$y+7%UPGDPT^w zL3=~?frqtHiW$acbHiBncm>>&m?5OIjIhjP+~TEvA5^puq`p7IbRgs)sAwUXn_QKJ zoBMqMCJbv&l{4E-b88>=!Z4a`8}A~VD1>u7_HY`Wp@b1v094O%`>Yxw^L~UxNq42%1Kg$Z4@j2$9P{)k0+F3w$2djxsTEcz2Jx&IB3_LH(Vsr@e~!tWCOlBY@F(jWXj=C65}z|}qY4T}HbVM5p8;9w!&@-Ts$ zZLlWrJ02x;X$*G9Pir0)bpH!^=-!5td%z_txa0>@_)>yyK_MC0pR-+PPypPG`$i<*vIrh0*ILK4ke{jkDE{MPiE37A*TJW+4tkGHBmxT#m zgFql$f}e1u3PBBE*z}q0v;xK^AvycZ0-)oF*iO!Xe0$G4Gz&_?D#8<`I}J5RBIICHUuud9H04h%(8Pr8DZT9QcWy@)4i z5RfzkdaZ>((hy?~G2WcD%T0<><77Ovl$UXtQ|dFQ$Gz26Xy03x$4&)yQyfl+CS+xe z`2IFom&DGoU2$$_9E|uaHaTPIfqlx7JJ-55k_L>yFy3iz%qEuaH4430vQDu^!JL7;PO+XCQZ*O4g{D+7LW(YO2_12Wp{Utr zz9xo2O>BUg$cLKPpx8(ZslL45O`Jc(&DLCYkyid<&wU?_yI{=|Tf?yS<5rfn4T^NJ zbdzF(Vza`uMX?o@_-*n|AmEMzFLsr401WQnfP-%0v=WBU`rG+B7#=E?765FU!n9p6 z9Abb4M9okhb_-0w;G|#sit8Z`2FUxPI{v;L^>Y$IRD4NoOTbwL7zR>~xN(yV%mfv7 z+ItP#`q&vNT)IAaT$}cv@W6;?;#C)BO%$;VRlcu`@~1FNJNUXD0Sxa1hIawOI~BXh zrMz&AE5&!L0U`PLlfLABoA@z@SiE(xM$ndJY{uVQM+vEt7i%aewHpT|Si@DSR zT@S`8G@p#S!H`%;eK%J~z-h~v`dYM?udk6%Uwfdw_CkH_QS2ky$EcHT+)NdbxTSYF z;sT5}Mq{(Cxr7(!5WB7k%9=AtMi|3VyHjr5+zd&8NA~do90jmKfb9oZq2d6MHHF(n zSTcg0PLYPQykSi@hRh%K^JI<&G7kcohk(q3io;}K{+;Fv6j~IGk>#z^ZsObxMku#R zT!d8wSQ>wOo~N-gi#=V{Sy-jC>$4a6!i0_=z;GtN=@OXX#~yKTfUT^93TXL96bBVd z%RizxN)-C@XWcmWnaI)mHlCv(sS}%W=hs+RAWInHe!k!)dc?R=M!mz8QjzKQ{=AsE z)Fd%y9OT=?7@%n+7_s9((@5hnvcSgG;{_Hp-%eyj|DjJ{6_}O{`^d++cao7L-{V)^ zB+nZo0nHI^iOa64ql~+&jwTNZ)_uV%%N?P;%me803=UxB%D6hq1!Mi>I#GO=_ zPAMjUcYT6L-}85Tt;MHdxE)3RDsh)H+`u^4zjUllzLpXzks%#wdn_a^VkOZrMr2V7c*k@;z#%*TPu&j4X(6{d5FY>@dGVq>Ur*G1acfsuXD zO*df#MU>&DLA(shjzHot4)eZatix<0Nuk~`UJB!Zstb^Hk-~IQaS2r70?}G+Ep-z| z2^itManB{Ra|Flwu6aD`g3GCJxEFJIoS-L&^_5ofI3ceGC&r;ZF-`z6UIv&;VJcQk zgvz~4E-@~TFHx||$B6%@2X36xPZIwIUi_Si^{|B*zPvrVybH=P)U`n+M2{LLjDPOr zg%Rvxki3BT$9eH*18hm;ve0V)TM~Jd7(}UapAYqbwU$m%c&zm_1uThVV??;^Pv_b4 zmPED`OV&m%i5#slp|z2DktCsPrb>wZJBG^lAGk;n8+;QeW@TB%ogitl>oUvQ+DKRv zy)JTXB&>;EAGtmfp>;&=?utq<4lhX`Z*t59F3`nvL+gCqP}w_1^HWCu;=kam5ZGM~Q3AB=+LCD%vkD zAv(*LI&xCQxBwU__E9Z|-`xrNH$pntbD81@=}7WvxxXn{?ke9;I{KvqxMNGpL)^ny_3wOPLdF{BwRWtcZo?1a~4j0dsmy|c4!&rzbKUqlE zNn=`G7bV~FgdBGqncw@!#ErOclZ7|fy2z7R#FD#;JlQ=c@2=uL(Lgj%^JEIT)VNyc z{wrGxf<7*eyBR+2a04L>cgt?F+}%|~R*|eT+=VFhB?_%GoFJaf@KOZJo}ibDGb=M5 z)F92)Vs~EkVP%4Kjxo%=d5dQ*s)}SiFz2}~cfH}XmpP0ye+=QJ8Qc;`$NRdLbI1FR zm5!5+mrfw+aW5mUAcC$jc6>34SCAktm&DRS4a<_ST49XI@HxCOX(*QN0%NjUYT6^+ z3&vy@(G@p~*kN*>%psOMfHw1*2|ZABR1#S`IGJZnz{kT4C-Wm&L1O)K+(dL|%fsA# z^~)@t%CgQO5t*=%x3HLA91Fd=gog@r2&8yzM+vtOpp&w*lFCq$WH}<5S4zw%0B3>T z2xk=x+eUG$eY%omP1wHTV9WDZ7{+j6=uE0wLKr0Cgt$}239*Z^tFoK2J6VzUuIFhJ zv^yB-|M4s@{osKViKQQmB@Zz)%Bo&Wie!ybVnh)+=LRc^3Cij63Ch#nU2GWIYCTgz z9!X)#`FTE9PBxU2tz1T2p)sij&yCO^1xMa#jy%B@Nu=)xPv1nKZz4w@P9^?xhSzcd zi-_T>t%>KVGNYlTQ9M@|V}a$WP7cS_b$Yt|I-Nxvz>YN+lY&n;S$uJw^ZQwoL?r1O zo}}?0=s9@Q~$IB(FU)(E5;K zd+ja7LU9!g3lm~^7J^L`k%jLUb1Zx`UH;JqVzkk2^-**&k{Ra_v!-&ntS2j1Dkdv8 z5TnTlxXkfGf80TTW?oeSnw#<&ui`+lE@jgwYLC z%mN%gd3#xYL^;ZZN)koy*D4X{1aTxK`$!TPl6XaoDdMZ5+mM$b-9&l-mYX|h_S_=yt0!y5Zm*; zQEEzCXKH#P{M@Kr^Q6SI@8QjNiAnJN;R?atp~4;+lI%>6uUWfUTW?{_j2izVx?3hC z8KXW)NKb6lPb8YZ?# zO-X}q&1!z~UemfMsm?lW+gjQK*%qFbl%$p*nD;vPXO!?0L*ge;mhbIfsFB_xj6EOS zfmvnC@E5=rPz1ERHyJ_H>#u_pY~HVN9F_guE$9+U7|Ig! zo1B@Z?>1Ha{-hysfT{IBlUk$I>BGVeRU?egL`Jkpj-sOtDQ(|)^QE_~@4WkFy*KN> z`Tm<9yxHK*j#MXVsq)Qb%H_)bqB<*-E0wF1)C$8Ss-K8HC+e!oQ_|~{G;`bedgTUX zzOwN~Wq;`=We&AjNo`S5Ta~%;0_8U4c4eJ2qO+oQ?SE?D;pJMjf7bo->wkXx{g2L6 z2Gxb?N_C^UQ$47jR4=MG)raa!^`rVznbZJkAT@{@Ol46+sG-y_YB)858cB_!MpI*` zvD7$fJhelaY1*kAWGa-LwDu7VHeHgPvJMdCPy$7K?I4OGHaW%S6jXD?}?rt3<0IgEjE1g(pw6PPAUML6k4rDB1*nH;cB2 zwu%Zw+u+#_&kjhl6P{h7-J(6By`p`hLeYNF0ntHtcL<)tq9dZC@co$RxafrFr0A6B zv}liVuX3NVP`O`uKzUGkNO@R!M0r$sOnF>MpHQAuo>HDxo>9_gmFJY_l^2vn%G)6q zm3KleDK9HsO1cFY|jvP5}9c~eQ>g7-|!qf~iYxxMO+s(U3_Rqw#N zyYSqD=RQ0S;OVI9r0T57P<2stRdrK!SM^Yx7xh&2QZaXe^j7szz4c6A72QwOUzMpE zpc<&62dM_DvQ+dC6+Ki{C>y4thpXrjDte@f9;F&=azS;CR?%bN;|$eI)hyL))f^Q) zS2a&HU$sD$qk40p>Y{X!ie9YBRV`69UaE3Qm#OG|5_-9cUZJ8_s_0cJdbNsPqoUWU z=sXp@PDQU*(Hm5BzKY(cqBp7N%_@3}YOAV1)qb0b-mcoA+Ns*5+O687+N;Vm?SrRK zMekSTPzO})55k{AD*CXBz94=eI-0eKB+pTIt?GssOYmQ z`kd;#>Vm3Bbx~FOlIpU`r7BikQC(GCgXg-+ttwI7P~BABQkAN1tL~`os_v=os~)I2 zsynGWsynN5s0?_zsJp7Wsk^ItsOg^SUh3ZJKI*<|x}UngI#WGBJy1;#Qqx-{JF7B_ zQK!kK%Lc3IEcF4|5cN=Xkz|Nzta@T>VZ=~VVbzJTqt(6!5REH!;I zWGHn;b}4Q)e4V3qtLCcbspqQ~sPE8pj+$PmrWdK{#pmZ_JkSEw^=tJJI2Yt(Did5}%_DjlQ8%E!sqsmIB)KoNBitZnkLuE!$1EMmb2f>pUksooe z>Y=JX)-6y^mv2+k+tu_AHN8_!?^5qp?@{kn?^Dx-YI?t#KA@%#s_E78HS$C1S<=Jm zBkH5-L9%1&h~w%L>XYh-Q|i;|GwQSIb5IF+@^$j_>I>>3^+ok1VCOPC%vlz9)YM&& zi<-V9>KNWpLv_-0)?{efchS7vRYP~vyv^KR&)iAhOLNkCK$2{Tk{30GO+L4r&f* z4r`8Rj%to+j%!Y6PHIkRPHWC+&T6Q08tS};8WA!o2BOOJvdMr+4t$HL!n@Gy7Hj@M4mW@{&ECuym^%Kl2`2$9KJYKnHMHcL5F zIZZoVJ3~8DJ4-uNIa^E3(Nc4@^R)A|3$!`#EYwnqw2QU5+9leh+Bu44@GOUC1w1R^ zSp^TXD{8fNjdqiEvv!MitF}NppDGs7S43Au*Pv6nE~4Ecx&%Jm5Zx5r649k1>b8i! zBceA+=)0oT)HdyQ?GEiuZ8o)AyGOfMyH8uF-LE~MJ*cHmY3bA2GupG-#^LylJ+ zW;(CEpe@o~)LzmKH@UQQv6jA~rLSt=yav2p*V1lniS~weukxn$mbO%zX}hDP?=n); z-q$|RcGNL<12G4ZEsUZUMbYQ0o)cZDS|sVD>#WPrby9WFb=7s#b=URK_0)}*^wLdG zosR3R8({0J%c1(|2HG-p9m5Cc=z;Kckd7V<-?DV{5ZzGSNHsl7M-SK0BXsmg_;nP# zj;2TJ=rKBatZtBPypA3gO;6AbwoTM!*(U3T*rw{}K2`3jm?N^L>xSB9>W0~7>xSFr z>PFadbo4^qBHdzLu5O8LscxBWxo(ASrEZmOwQdbOYjt_Lb-MMs4e;daHtIIPvst%A zw^di5V@}T5rgMdE*U{sm>G9F@4jsKyNA1$lyLEeXdv&vv`*c*HZoiJ%*UD_JJfJ(M zJES|TJEA+Pn-JY8JUg0tpr$59QArdpy}rLb zQ$N8rP(MgNSf6Ri(s!{9(P!I+=_lGo=qK4m=}%fm>&NKF>Z$EfJEC?*?TXqRbyc+| zs+W3U^v!L{&uyK8Wr3^S&hty%M-as`e)6bh3B2EpO&)E2 z9*&KlJ&H_gI$I_}B%d8YfBvZG49vFKBW6D^_k_PdxIslc8d10Mgiap0r~|TnVKj=R|+#DfgMHO(AO`}zh9vLpg`ZCK>y)k{YOXjA05_z zcvS!4G5yO0`j3nB4U6@kT+@GgSl_5r|5>TNajCvZfxc;x{_|q}7uWP(9@c+Vs{guF z|Bq7rKMVBDiuC^~*8lsO{+q-4Z%g$FrTXTj`W6NHmPLAJvHrVj`c{Ya-RT7+lZy0hiuK9Y^eKn+Z42~27U@%q^=a4i>4)|0#)q|^7$z;y|5TvwP@w<0K>tgD z{?`Kie`bV9W`_MXGwk=7VSmgF>qzBX)TS`;=CHoh=CFS7^ryClsS3g}sa;_Ms6Al=seNICsKT(p z)c&w6csB&z4TX2Z;N5U|H-fsVLdU|;@i5~(JvtGFPKKdVVd!)iIunK-?#jpoWLfq(+6$qQ-{LrpAYBCWOzSCWX(XriRa>W`xhD?yDD2bHa0|`QZzxh2e{+ z-0;QJvhZALMfehGb@)>1vS=B#E_^waAHIUx6#hbGh^h!he}dfXlpns2uIt( zsqNt_sa@gJ?r^jxT)a0N?F&bR;b?z2bs&5dwIaI8%IG(XdsOS(IZ7!@C<>kL*ex>dX#7c zJz6vhp3(4(foCi|Ml_xtE6S$Fi6+6{$?$gy{GAGar_qY(G@3!9qEIxGMzd(t7|n*i zHZ;J5X4}vl8_J;-3u&~7MvG~bOQR(;T1um3G@5He^K59o4K1*twKN4U^Jv978m$Lf zX_QZ+jWpUsqs=tRv7v=Fw8(}Q+fYXXb<&DD8K_(v$}mt%Y^bY&T53bx4b(Cl>S>^s z+t9XXYK0B$h!(B1p;b22oB3&qq>q7GZJR3TXQ0-=pG*U_);3KtO-c2$p@B?_>5>N` zuvtf`lB(1&(@gQ+D%9yXG{R72q+y0+G(2MrGbLjUvn1mTvnAsVBKUED4eg7jG9u6f z1C?h(6Ajcl8=7pWGR1(V8qjtfnr1-L4QPge8XvZqI!P^80XK8ef zMn|I1J{8K=pz}1k0FtDo7wPGuOYmHV#|2L@JXhdBNc>zCtDj}IT0g$cT4k!r3t9!L z>Un?CU|lJ02v!;){dh?b;z;OC&W>k=&NHC-h6M(MB&Z5xtz#2;{v1}Y30Fegbv~@3 zmW?+;5+(a{6CL|=zP!q6PYU89(V~yIMWWnZ6DIi@v0skWjBJjgwPH&CoZl~FxL+u5 zNz!0iM@4c8n4edQktA494QQTiinJp4LN31|H&HA-1}k!pOHC)FCt*eIG4e9l8((r9 z`tNhWEw|0_Ew_C}ES&?(ZRbi&^E}IK=SWGbdhOL?gLa1ysoL`ojw)_r3~51i+IVh3 zwUs2Kl4ZP*T8pKpKuD*hrZdvBAf!{oMaD1gOZkgU`RaUUnxR zMoyAL+!i2a9-3ZEJVd5VTr6gRJ?V5K;|8ADpTv@j!0aVJU6fw-Y9EHzuO?dj&M7BV z^+Aq>zS4KZ(p+g@X@vluh;1nO?H{cj*tdwG^?2RLAm8~LD8va@=*)ZWOX07>_fMe}&`$OJ8 z%B#*-V##U{;2IF%YUx^{v0w34tbiTBkWzZUf;miz#QCVVWAW{jq!JTOvGTtv?L~1H-K-ITgL8=P)RZxM-Hd(VQ| zxJe>%mybx{V}x;a@XvQ*@pgq&qWXl1d}5>>!{8{jwVcgz7$gFm zrP4dlpjS$9O2#p`iYWGL(N@Blia3(aUFS&}1|;1BlI{cSp7eqAQ7)SNq+J_lYGRAD znqPP}Wu)QWbFt9mcCDQ0uyhl?v`r(Kh6{0KzjFrH+q~xtuD7x03}Qrjr%o)!pb#Cf zH_YW6TZXBcAGzBm1$V{a6#Gow*oSMj+7iA_M?#%;lwFl}l9^CPS!WrEz3uOq$pY8X0HGPOt}>Dz_3g{nO6<)Gd*58n_G=7vjvG96=s%K6B}=`Omve)RFU+Qb(8gC z_QUp+_4eK;f?-1SL#$u3>KWl}Ry`xwW`*J4@@rPo$N^Kgc?FS3dx6Uy`K_Rf?IAWA^~sg<=^gUiKQB@=ZK`x$M-~(lYi5BqQM`nEdf<$Pq&#dHt1nywx4}NDwL%sBH6C{2U z*Yy(86KXd3F{y4+BCJSnmhQREl(Yvp?U7AX1s2WTq$<28xEJ*pOC==qOnLTubRJIm z#Q1IX#S+x?uh0SGfXB&ZIV^G$`KzC9|9xn+X14Cj{ z4m@s;lrfe7`^F3SrbE2lIOs`{U%(FMA0H!8?2hNZqE{sDejfd#NFK92dgK#CU)lZB zL!Kb&0ybD@J~4g=zZZD;lR}cf7U9R*w~)nEW)Jm*Cyq7&0X{JeA$Sw^uqTDEvb(e= zKPjY@w~Kr1lR_wV1NIZ6e!)AmpP24Ta0~Zibz3XHrF#^9OZS2pXHE>WrTeHMv2RT4 zvHvq$x^rT7Di_BTN{Xy~M7c4SWEY=q>3+0Zy6O8$x=@`%xg+UEy{|hr#szie+1H&L z^IzE4ofESU9`e3!`ibAxJcq+1^`+(@r@8~YF9+2e3^w#9W^wBJc@$Tqe5#!m>y)tHy zW>rj0-mU1S}v*=Xw(y~&oX*=*Y>K8o4Vofm`I(Y?jHqdWh9Wk>hcO77?` z@b2i&kNLm8quaNeds9rgyScXs?dF~sm2H|F)qG0S)Tp_U^CA~TE{>cQH9cxZ)Z)mQ zQM00EM{T#wg=b#W4%-6wn*&c}Hh`ax?ycL&ZUEo)up7X4^BchT*e2@s+9vDv1#SS} z9Wzr`Xq&Cu8#7n8|1a18z7`DAG(*lqZv@{Tb3%6@=9KP$?TqfA?VRq=pV(r@Nr$q~AT3XYT*3M++9W&spT_#zZ=8U)AG&LbPEy43k z{e;A%cBxJd@m4V6-GnqJOsTa`Z0Ss`llF6R3+A=(TLy2h7`|aji`Fn2Xp@lKl0p5g zGN|NaSWDyCE?OxdGhXp+l#dPu)=f%D_DI1K-hVFm=X!|=t&&sH(i3@3s|6={uR{xG zTjm9q;+5bO^%Gh5^Az-SrB{LB9zQU#Q)>Dg=)RtVT7X?zimztWAT2=^Vfuz8`Go7Ek;Zi;?kg}mO zJ%K5nOY?$2nnnrC3A`}pf~Br$i?;Qg-zBt5O0S=iTIUzP##KgTnE#u$Ol!i||0@j> zlH2h*2c$5KBqg~S7vy60Dz{5*;e=!`a`r%8#z2^lO+1O;ZI{R#@#`U$keGS-d3s_} zV!G$Rh#Hur(7HPO?4#I*N#>0bcq_9E&9wqR^*lPqeDJkczt0{$!~i^W|J>G@#)1OA zGe9c_*sutN@{O5Oz#ym(C@xg-`yjvsGg9dmWrD0`hlM0N|BS0E|%1S8b96 z0P(>9w)^tRh^@+?H)UEJhx4>($lMbyYtjOiun5w`CiO|b5rjj(OobjmpzZkqxH(}T z&<|7-1M)T4_c}no#7uyDEcxr@rst=iISG8=OkxXrt5RT&S|9%1hr%;rdN>+E1B2fPnkPnBjDyz%0_|-){godhzLy@)R|xB8Gy}h4 z5lzy8`!+nn_mx3d1Q1Tfo^k2v9ASgmN7$oPU>_CAI9G&$fG!FIrSbI`#h`3;D?-8$|E!I}y13HgfuA|W*~ z0mfQ5{R%{V+AbX?k@$Cl{Xrmt|CWaBqXGfoy|NC#=WUt!mv*a?p~! z^HYye5*8UATXDvCNYeyZy(ZYrm4orpDcH{tkf0FUih;K)5A%&Y1w9OM25B%ZgcrUs zR2eBXX$zw;W_r}=F(1L-1-%l#NP*Y8ZuvvIwDd-)&K6C;PCKDY?q@-g%fOj|Ydz*{ zE>A0N>1PPbj5>wz@3w38s@-9KwZe%VwQK)PuvZmG{P)^6$1C=VX8re9UwJi7&|eNt zT=#pYC&I*>NCxxZX~LBg4D#q7qY>;WW&&-qET-+xb&`^pYkqt&DMzJIuXticm4_;_&@;Fsw;iXA21a z*8LvbrWW8eG2@nsnb@H36_R;ShgGW*={>4c8GxsEsSLnYS%AGlP2CT`d?(t%z-YX1 zd|n90Tny(oEH3i~hhu8HWurtcR$Jzcpm)loN`b{^{)1M5cepaWF#*P5Ie5@-%nX7KcROV-WfoWg(*_Di_r@Heurw2@Yw468V|%GCJZR$-DH{3km!#7^(Qunb5ki^E>9n z*X>%v(3df$&<3zS2&#@>V*k%&0{UNlo}8F2yz}V`<~Ak>Rn}|5JT>1-Zt1C$X7#~% z2!xVw@0%tvqZvls6PfdN(~ONOnQsGP#vT=^WR8v7dIR2-hxy8^jsZ7-Z|q80rd^bq z%5Nfwl%;PB`Et3b*q|FJaib)dEB)ScA*k1&d%_-=#7&wsYS65Sv&FmZzWdHggQY?# z>p9ar%2~U@sksy9E0#Z(`sH#`d&YU3cj_oVF;gFnojG6-n-iD6-dig1>e5HW@Ks;?hF^C$(w^Hs6sfzf--kF_p zl5(H9+KekdsmH_c^c}3?zktX1Xdv+BH5dN8IVzesaCOd$<-vU91T`e@&)})}&SGXX z3)ZqECNc3=mebl8l%IiyVT!+*{ClMkby8ck%R4 zXDiRK*G#c3oXId|PT?4=^UxXb9Dn%dvZ#m%-e;CE!KxwuVry3{sb8m5T^R9MJ7?<8 z?HTRW3M-T$? z_iT@1V$Kyz8xTLPRY6ewq=Z)9b$S&9cqaasfDMBzYuST=^7cr+2P-o@)WF{cOeMGAYvN^mN+zANCA0dDOZ+@O zF`vd-P8xQFi?BypHn~^JFsa{5ZVv)VZsmdSUwBe#S2#77|EmN9YxM$w{Eba-JQR{E zH_&o>gQXrSnGZZa9|xwY?*!4LI$^O)tf7Eo?H zkQYI`Afh1%8CI40f!H@Zjt;~%fVH_`Xt|(u@UKv$->*RygCj41t{`jnF*K2OP`=L@ zj22G7HJ%{Bf1CoI&fl1i-cPJPu+#8-skTa>Dh~1puyUY)rp1F^Cxh6g!7TFzC+X)P za4Z?jr?Xce-KXDum*!0OcMK|o@(`4evSID&wc*3hWfKHbwZ`hDlQ3LJgIXyYg5??`V59Pe@N5>wOCeO{g~pSqRE2Zj@##i=kj zX5vP^OkS&aCS}}!N?;o_`Lupw+cY1x5<-NPlC9Zw?moP&;&>nE^@@XY`@!}9`kclnV(tTg!!=s?#IBTWo5bG{2P{rAWOp7 zGtW9P-}oDs!Z!jgTL`<>jFV+#nFPM!d)e$gFm}_Ku$TfyEoFc9?m}W0YL=BEdpuv+ z7_0xt5dJxdo|m%G#Ue5 zxARO%gOuTyH_BZD9Pr{B&(@WODJ`9z;@+wxx-l%Cfi8^4+bTPao|fFY?9v#)$!@{= zd$mH--jzqPv($pfH!3<~Er`a&>je|PBpj9$Oj{EZ!sNCk)@6>@^@Ic3KM&_%`nH7Ww`@SXCcoI_RaExQArpc9k11JHUsK_|5tM?5LS z2wmj+SkGP#yxA8ku++y-k}>)5mic%Ozze*VS5WT!HN8U~XLGI$VFRC(X5@dtu=i@= zjkfWc6*0_3!hK_m{ht&%`J0BHnDf>BuOgNU-Z)TuW|Gc(SzMoMpjhx8}ogs2Gc4+MFf8>$VW5!lQ4_q2qQ~imqCpb-=gVlnsU0uFc8ec9@73 zb2x8?+^o&%;&zyczS^7t;9Z&ujlv?oRnhK>|+16u9*5*}sGfX8Hugyd7r<)2jUD-BcPS)micr(l-AFs^;_{VGW zBD`A0l9AU`t1&5S^M84@OeH6;&4cl)n+jE3n>J!r*5so{&jPqkE@Eg>uspRPOSrC49 zQ=zh}^G3|f+Po$&kD27@^;rNu`ue;$Z-=pD>h+k3$!brA2@z zx1t^7#i5W7epxQ)vs<1lB+i}?D86|dD7(&jT2^=S(0SxfSa{ zbsh355uB$1HN0_~fIoO=A)wpNdD;jn7ecN0XEC7LE_q%E&bt5tF2zyzC29hf7)k8= zG8sOa2pqBwGxmva{dI%wa*y4$UqFxC`7sjFG%3 z%QAhqi@)&n^?Ah@O;Z6W+H)|lS{A~UbY*^U|DXNiSaXgCR?AKpmyT-p|5SjWYs_)L zZrBR*(wUcnUpM4!V>FEhylBk{z|u73<=>n4g5%fa1!6dl1+W;+`C~aBX*%cOWIW>W z=;PzJ)taM+rD@LF#Bd%BxY3&9hwZQv9z2)_g}s1UtnEYP<(Pa z8*`$ngqWx+U{G6Hj;L7`y1_9o#NG}Q=QNt9M-qW=8js@0oX23@u#^BdZJLg1$(%=E z-LR18oHB34zGg1$Hf@@Xf|)k&#l~kU3^a8fo7#o>ZQrZD8#I~=!&)lDxzL1S51IP)!3FILNw>?X>kn1Nr~&x zqgx7?)!0@dMl|Q$X*2$budA`mM^FeixU;QClxWPW&}KkT8_lI*v0<3IBjEcWzym5; z3$WGL79(tzggCA822E9PB5g+tc!?r#&cd+q*$a(KowuUo)8?gFc}yfqr_Z9Wv)K!s zOr3Y47}AvDv31!BWlWvdqjXGFtW9sa7$3Ggb~|yLPQSz4Pi8*j|5?E=QPnj=SUU6l zm!{2<5wV?zZ|p>LzEY?9H z=bYP15?wmYM^qSS)<~4(Wa;wyN*eO|kB{x9U z@Zn=RvMV6pk$H10XgHp_v44d5>)(s-2tuBMhFkL|bX>M5sf^ku6PWMvifo4n9x0+%sz%pC{8PoSVAYXVh6Bkv;6R)O zS&Rikj78oQhp`ie1e>-Jgk-+{;O^^uITwALZ%|28jY_1*>tgp0E3B?ci~;d)?uug# z_XrfcODs7jd{)Tr)4c#T8y~KFE)-4~? zU-AeRv`H%`Duev!wyqW}D@Nhh!rsTmV7x5zGW)DhQyLC4V=OgM>^RZ?vZ0)1LA?3_ z0f5a4QD1=lqo^}1dl@;uD;2%G@DenB$M`dY&K?!Vh1(- zo0@Dd%u>_S^F0{Vxt!&!)am0|B_!IXDq56K8)Bh2MpqWHt_a^~?9_#i8B$1HU3I)w z5|v*w9-xtcVkpMk*qQF^!V}WkszPViXxs>BZEw(Q@aWsrS@$Nf%ih$u$7D*ZA>>aO z)EAssW9jzWEaT2lZAd;S40$J_KsVmi`i`G=0yeEgVh&Z)o2ON}B`GM7Vc6 zSfMp^u#`ynn~FyJV`#eWPI^~s>Y>j8IOf;aGieU>L3w0^V>!H0Ochi=2CoKDeI~Ou zh%hVe4(Ay^4v(LrlV|yFZsOVCJm^RvRE!A>RPja&CpzhCrUY)LfeW|I#|g`w%^Y<# z+Bkv7tXvfgd86Wh6q&w$JQ@<{<2)#|*Po{_^xk23EbD+uKg%lx+_J-o2 zkVUdht(oOTtQ);)7F0WiQSNA-87M;4dF~|yT4^-#;CilRlK2u_Lkd0Z806uqa)v#~0(o1VK2QjPRU3dxF77#>lFo z$nwsA%h&Q)laHE#WD2e;|CsXl)@jnWdYip@LLccTT8TnKGs8L4jn;e*|Itaq>JQa@ z=MJm+#e$uFQs8P(JQ^Dqo_lKMST`*-3BS;YT!yPGbE8En_nGmjtz@pz7Au_8|J|TT ztv^)55;uhUifUD&?nvVBAxO<=<)^`zxe z3mVCe%EcinK8E%7z3{dymXsxf_I`n*1$b++*Bd9&=|jvQY>;irCiVR&nJ(BoaH(Z5 zG#*Hn6YviymPZ+u7wIK{Au>qPJ;^C24E@f`YZy-U*LAozrMnCBg{W@R(0TwxRK|I- z=@T~(CD1DpYv)T_$D<>aPvIC*44d1tc)YmNNhdl?U27T*Bce(33;mk46Zp5sMC`~P zSuAR>GT4eZDn(^h2Zce%qeS{7AT62eJcb)!Z;*icd4^g?!hM}*HxM8#tqB(`*f0En zvHB;r;L??jyJenmGO@P zOhL+9l^Z)!+1q}pzgVrF!DT|GO2$WAZ+NzR`Hs-UuA}#Ea*YV!m~6D*-dxadr&7 zf*`Xoe7h-m^pZV_ezFaPxR$-^+4n{k{)K8V4-v1F@q`CO3*PZib7(n-Uf6GJHzOeO z;15pj4YpU!O%A9jM7|uGCU!zJCyge|#cc0@E4eC}NHC|o2;;tN7gmKHq136o02TB8jE!=KL4#Hso&aWx`?9TtY%kq!UQw`IcFd4%e$;Gca-0 z-w&l+z4`8r=L;oPPsGaJjff&T#i>R@3kP7Cq#hnz+uYcvrDAZlp?c$vlh}V-g9!`t zZ};=@3oo4UNtnrx*Q|jPb!^b`h#u~P@@RCh`q_*1YTC-XO7LJv|7*eI>fys7n=E;K84es-Ln&dEa>EyKU*Xw-QY#Jt@~DV=R$$nQ{BO zZsyr>>JlS3A*KZV{2-=Z7bJ&1)_WenqJ?}iJgiC&OSkN7w}C!*#c%c zhkYrJYT4l3kBimy`qERL7J%G1UqEgxD%$e%->qvL+7o5{@0aoukwO^xD)0z z_cJxb2fU9^cjyD&YFETtJ^HT|ci$GMGtx-L&C3mb`{KzMt(Yzrx`*O2@s2h^WS91^!YpNRte&jb_Xc+C13n|eINunjEg_&?vpMTHiH$+a#IkW zP|OmvH#6E5{E+@mgm^yp?`=7zcx$m2ndJ^Eq%0xI??p+bJ})5!eTsQ+0~PiDIGrTT z@*;+0#BooU(LJsbgt|pvEC=@D(tVVg=b9*_%pl4dF-y7=j+R1oZN33b+?8T6KSj1-;&U{}seqlR;sa@!V0e z`#Sn5U=VzudH|QJ6!a;0TnrAHEuf@@yAea1h-x|xw|LZn6};*XI(;O3`@|>deA=s( zbedkhDwTdKj{GAS9Tjo4L0XX5DE2%@S-EE8^YIcD5q2V@BJm!?Hy7FC+adsXeN z#wQnb2C^__rE2ya)J7Tk4(YQS5q9%srs)LeyFMEuB+=nngYfV6x=WVsi3Axm9$Xw6 zv?K9c!HbN{yv%K2hN7^3h5C7bJB3mcG$B3PSalf$pn8mgW`KUxWjCb0tE9K0Y#_D; zEGKE4;;snDfxi0xg8t3(5>q+iD4Rca&pW@P--I`FNFyv^GdB)vtB@bL(_NQ)yepl)$V zl{P%H5s;ZfQ6cfjej-*WkkA|aX~D)&&=dXDkN^IxfcsE0k+N;`b*&oDPwL6ngnCOX zN#w!%=F>snL`ViPV!|bPR9kE6D^$qx^R?3Oh-6dxlsbHi(iOB!m zMp2^Iz1iebuNztSVxw>OX}a0E(X;)M-NG#9XUM+I5veB{OES2+aC!F3R=>iQiY4th zd?aLwI&D+JE%56C+nu~4;kG6pTi|#mOOi_AIyWTmSxghVBYs;lI2$i+yz49Y@_Akh z5EjJ!d7Sj~`@VkFAc?^ef+K@K4h$zAQZ&S3&cYHNLM07X8ZtM8V@{DG8bLk`haM6$ zL}5-(6OkoH3AY$>HiTeKlp=YVd++x;59|kzkm)BK3)qXCnCv$ilQpDE7m6VrO++0F zKO%Ev;SSFFLy@pJc76osNRci!6L4#m=rq<&#)+6Q8!Cv|*NBv3oS-4*NPTBP!xy=) z38H|*cTScHESNHoD9u2cnn*jAd_?2Oo-STPyqa)1_H4}2^$(N}cYj^XmZCLId)(&8 zl?BrGB!PD<+nAsoHfQ_p3c%sDzb<)__&E-GB;4T7Cq_U4yWdE9hesY8Ke~U5dL;dT z=8?fCnnV7&2zeIh4D1soAd9&mc~-B0JJ&hwH3f-wIPJFI z_{Y7%{Dxo}y)J#oMgK;?8)@*#%rKqH6o@qrdkD@ngz0oVe~PI@#7B}p3%mcT+JSE{ z+E{|QFr9fyBShxk2=gJfEy$ppF-%e-mMzPmoIzVTTECq#SF{u0ZUf6#<=3nFB5 z%svy#mUYm^psgCNHG02=RR>}4m}LvWlrnMjX>-`VGo61*&y+B6_R0)_>AfFvpZZ^$ zs4Rs;+PONEU<}iiQV4DQE@dpUn>iOgA28w0UlSC{{Zndpj)g6Y6F4UfU;a^haX9s< zEVDmpe@{SAo#WewbWA7GXl1#b&~vP&TuvaI65EHjOli`1r*uma$_;OrU(>N#1aSvP zKy(lHu=@~MK zn>x^%{p5{a-4YxmM12nkcmW724v`uR;5`Z^?b;XPL)<36shESgGHaKzIGHo1bu#On zc&X!#lNz?%lhywqS(5Qu6OPsDw=7dC588-3@;kilYUo_yJ5zLx^=C~Rao3`+DBP#_ zB$(w)%SUq>##Msu@67W6lYXZ%RxF@*CTvPMd3iKCW2(_NK zk>8QR=Q!(@_>{+tEzvjVt8XjPFFH)Re5;+QU8tS6E%PwIW>n2rFIO){TP9R*=53a3 z7Hw8-7Hn2*mTcBc&L0oF@;V<*^SXFVd+->h+P2!(#%z{OuIkPwS-o89br!c*bLV+o z=iM}eY+Hpo4;cW3%|ET8UBsNlT*REmT*{xxU&x=!U(TG(T+EzDIE&TCaMhBQl%Xz@ z^VF!g3A-st>MS7RvWsU-cCc)t>$cxi++^Hz)NI3V!!OI>yUDm|tLJwXc2-s{sh+2- z-(DI%eLtrUsZDdpRSC!o3Ms%Xp$0w$K8rqyJ`X-^*}pjk<+N3nFAZI$Zc3iF&wrr5 z)ZbYo(@13JosRU^9zJjR$VIsZ_!jsk1NI zw)n>Q*5rhhO3tscbFw`?4S9cqe7k#+bSvgo=@%)?mtJ7bMLrLq@W+=ZteTyrUa;S{`mjo^$7V% z`Dy5voz9%KH-0#MkobfeetSH7_=NYU_zC+d>0^0o&L*F?(|XqE?7q-MJ!a%|*7WB0 zmJ15)F6^%SH{QnWMf;x|!w;{I&kw9YtZ9vDyx#Q{4`1EWPx?EVN4Zzso6Z5ZeEo)9 zl3w&4YTt6-$Zxgv#Xad)Z5w?ULDqfl66~ACsaWls(QHo4MDmlr;(nr4#4~fb*#EH1 zv5c{-u?(>+rT)UPP8re!gyJ?_-G|5;78ykQG!c(@MFDVO{V1^79PU=#K{@-G=9!X@ zDX`ndA#5W6nJ~K)1EX?n77(@_fJ_4oD+Lz�>jJxXUXixXbHDxb+us2wSnjKc>WN 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,fxQI&jNdH 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

nh-fqx>`ALE?gT(Br@T|7`O%jVic| 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

NK#h$9HTW7EM;)P{0r6`muf9+yWhe5rg{0)` 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

iyB1#GBxJMN^IXAw@?s~o3-HS&x# zniQ5M`@J5&%js|?(d;Aac9On`Bs<&@Z&FT@&*k&`Ls}1DTGif`J-}niZ-RECqq?>^ za8&wkdn|u3i~bhrz~%h!_B7^2jXsk83X{1L8aB+8=)9Q6v_1#~sapN?ckJ;8*dcVCF03M1aPwI{f{LbG@CEc3-o z|3QG+{S+vu0$4wnLp!fU!T@~hAw3d)%to7MM&#g8L4=wKGmPhs_tY%e|J;NljdjO=mA{qvj2 zBWFS-KP0Ib)|XY>vtfy=E-w?*9KImwu!DU6rh*%48`i`$J z(`6S#X5@!(*@ZanIGOsi**VE1@W^$$lbyau4v9V3Vke^X;Yv=42OZnAg)D?~#ivlC z6%5I|bIyUz(cW5)8QmVGy@J#kv8qx9bwl7~(G6PpN~}uY5R&E01!Q^iuC8dwpO?y9 z&pDL|PO?_jZVn4`!|HNqtf37q!E43)z4XGEXA@{)44dXi z-kO8-Y0mc_Vn*Kx+y1E#=LAz82`kuK>j|l32`XpFTw^;FSd;-9dKrpn=+OnlsN3S3 zKv;qaWPR7mQ0Ky`M35Lq^16ck4YpT&V^dE3vKMXwQH|KNG18cDcUQxE&QOvEe(0r_ zvJe(zzLNGZ&|IejbS|B)^h8X3K26!Luf$Y6FHXeNjRzE__#I}oOhzf+mr`o`FTB=8 z2szr)Tdd*`5$QCq$EWydF~!-Sq3(`H6ZVPQIMxQC9=XpkT1Fz`9~%BKh4O$_G)M4YB7~Sg(N_Cn(Q8c`$E*;dz3+bA3TbbA(nuJQe?TX15*NHZ3d9g)hDfBFNhHF8X~bfR&Vre^ zUQoo=4{#1e!E(NrMWby*U?Wxm^A3nem(g9(J{PIj_!u_C-?mS~K3o%U+?U4rX~o8S zq**M6M_dm9t~7v0!1FqgsU3;)+h|?wY)_4Dn=1mHZr-Po!iaS8Qwu28F9T@8r#Iv? z;$hBbEYY2|FGn*8Bxuc#VgIU9Y`ngY`Q|;%I1rttIvujR`?0u9M>`-}zjYt8-Cb4Q zlaF@A&+F2>1#wB%xsb(|BzJCdAe`**XVV9!a=p2ZP}rU82uFNjkJIPN@ddneH%}4f za(5pT1npo~B~HVPx_ylM56OAw7`^}49wphfQkb;#_rcp%8kgyqORmm^YzZj3|Gcf# zy>^PY50qh{kYR_od4ZiGM&!#6_A=NOL?l`q+7^$a&cFnIIfMul8we~AhdW|h>x7Y7g7z9jPXzV;3j z(h#{wuuzW&3V$4Nf>?sx6=xt`E>1PcZBbfQD@D8YOfThR^lU2(1qR;g1{Ki;lfA6S zfeNOdF=XD05B33>`3wWR>R||+6_M3h!(o#f^2fHB3NYW~&UjhN&Im zrbS?q{jjTh%g&?u1kPB(i5Yrozk{Uqa&;4MDC>}cZy!?;e(WR=wvYuJN4A?7nT|_ zdw^$5be15YZ2{;TWeYIg0FJkj?G=!9MI+A6fsoclZPU%@Msja=gTpU2;~~qgVW|#_ z(arQ6>j0mlCWp^B4M{(qzIEqxHPjXXg+JNBq37y!Q3tIzRMZjkci%-X`8Blqylk~R z%>-NZ#}f{8<_21ZK$6g_wgN;~TslC({;bOd8^i1hG0SX)SGM|>xgzY-0v2n$Wd_uF zy}8!;uVk1UY&{rPPaJIJ>r$<_Ojc)x$q_EPM1v&z#oZeiWV&IcGM>7U6FR7#2R%oA zQbD><50o6MRBl`?si0e_G!rX?wgfWtDY42yr-T`?4?ma0;JsBsrgRgT$c&j0vyjgQ ztq`aFT27_ZdQdMEpjZnn9HrC73{WUQu~^8C0#)AvJ!HRx7ufBu{uA~0-6MsG{Uh0Z z^23A44z2!IV&Mz(!}&w7UA`E$S$P7|%ez~JHz~I6qJEl;s%Csdt@QK;PFgI>sTAgH z&oGuRAdGd^4|m9Jw(Qc50c1eU{~=G2Y%wzw#J zLbgBTPtFbdNWnwc)LFRgz#DC-~8F*UJVip=XDN`f!M z;z9mkw+ys&N({A1X4N4f_d%^Xf>L2?g1{E8Op!ZbG6zHY8T-6ExnQl&CctxuOM@ev z%W4l22=`_?L*}<{5hIN3Xe=k<6V6Z$7o&lCet5*1qRV$bwFFy;A^^HGaraE1s>1=!s zS-bO>YV8&wWo#8x&Wp~*qjK@B87AjWp@Td(&<#8wU1XNSkXc+iTk|(sBVYBiHtYCtvwGy>z?x3a6s49Z2@yi-XP4c|Ru8a2^rPZo~;6jH8x; z{D~S^b);yZNnU^m6~*g>w9Yi3eA`S%0UHyfF&J-dD~ZRBnkvxN5c-(|Dq=rW1X=XQ zU!H+qs%kp;nov{ZaI(Q9T|K%ty78EAC<)s~F19tF*c+^Jm7&J$vwkm*aF=UI7y7j3B>Aa*&_7!9+od3X zs9y2ACy0d{_%;-B85XiY7gFmj;N4rCbAo9~lS1_AHuxzS*ubyWOO<}r-s)l{##DN} zz_?VAzEGE*g!BucVfVaf4UOlMK$#o|<2>RtCo4+EG$$gBEX6&30yK*~w1hrgij|2! zy>Bx7^q|5uQ=BU=kE2T_^1E73ip2Zn%WP9$~J_Tm>m1IV$sL4*pT5)^6mgC;Mq%Yp-h*f!{%!Z93={;=} zOEe{qvx0|3bAR@PNZ6a58;E!vfk-6D;R$%Wj!?u+Ha!9%pU+Lg-y|M^D1(XaN!8!)8p^t52eo$b!?I|443pVaH-x*Y+p z-|O(_hFsZUl2>@$PMR^OGOds4C&cHf+(%1i40yAzqL^0NLIsHH=%H@#IPlxwYgE;%^nY+Jmir*8D0hNw`QDykA3uaS*FHLzo62y_ak1e=B-*6vcl??u$NPx z;=No>3aj}QEkr)xi&J!8Y>kf@4+r}-*Ij>CKa(Y~vbbx+l9+wuKd{uI$1Ct(OqNWb z9^*dKuhZTiB(cD9IOBY;S?@2CZ9%x6Pg^8`RM%PCel8uQWq**GN0o5V z(SDT}SqJ%}3ox=i-N>q%o_aqgQl=4kGwv-yNy~awhV6gvSD8It9n@KysKky+Cd#I~?}-BK{n@LRK!$#H+sJyLI@w z^YY*lVxVCQd(`f)ly0gte)tl)u~Ll)U;b__;!8nAE`KvW)(_H&*&y$iF6T=kssX<1 zKE0>en3C>9qFg^pmseY3gmSd4&!Nd4by2aLm==u=*`ij}w_{O%u5%4uh@j|+9o*_kaWS9!Wn1-LSF|HTuwIXkFQ@dvKX?-^oDHI7{^=v z;a#%{kz{w+pY6(ZM115APbB1Wgxtg!=eoVlY+tgE)_>FKT_&%*P;ADe&Hd2yJ`h|Q zt4%7v^`ZCVq#{MBawyBSG||XYjX7Q^eUeGxH2oW)qcY71P*!Gb9QmneBVD*R!>GHa zzkVX=t$(UM^dH=!p-T@x1aYH^Z2Lc#YSxZ1De#}afbek!c&oJ#KHdP&M(_y+_%sBc zYLM>(1fOX5{zn9#WPsON2jPnR>uZ2T&6YjENOwwbgmS0j`K-y>Tm)HSn!ywg_rs z4LIY!h3z@R+GB4A_s0JEMHp%j{IO_GncOKmBzDTwTJNe`Wfp_a$C%I^RRZYhn`$Ds zzRD!HHlcDBQqlL+E)=3ORo@2Hm?gwM!Box8(GW%*QLlc-8J!oiRPK!-T6gU2ilYun zs0Al-`T$&zpmekam)qR@>&@b87L>4(R}n->B7={B^$MAxN)k)Ug#f*JlYJ-f;S0z3 zhx$$tD=L(q-g2<3e#C?fCH%STL_a;8EECu5!tZMzhO4aj>oWPZQZXdI?);*Vj_x)tDQuB4N1Lb+2^2heZXL#iKe4 zYkcg(V9qwb_LYQNxzz#-L_6Y|gT0c8io{PMO-xdtYY}v^0^Nh4QxxdWP*8E-qb8}t zvF*5!6b#e~vUZ5J9w6lN&bNpTBNDZ38@~bnqny%1@T_8ZH#!*R# z*sCYSyBZGm>*}+dP6e}9;=Kgekvo?^uY|8>I~@lZQP5_)||l(EGSt)&+$jH zy-ugYn-mU^6?9+75%PHbj_jO(%jxzw{bc!vrW}gI_CIe$e*Q;x9O4;8rk5VzdlBU{ zmrzJpqi+MQw}R0iyBUg#-?rW+vqx4Pk2#EaP;y|k@fi9og3eWjeK~^8Q=tBbbg0-h zlHer|_cqkTL-@!?K)tyM_))c}8^cdN3M;Z@)ubG{Yo7Ij!N3;Wn%VOEC9m-8UdQ;!E zx$NXz2XU7^Z??x9@caGrp(8OdP^=g!(-;BS4jO>WWX)Hd|3aIgpqUM zm&v}ZF_|EY6rYsEB@6FG<3Qz`8dqeR#(^Z#n=9ThN@l;_t&xc%J+_n76pr-YUg0Bs zFEbPT_Fc9nfky0@RSs}Px;?>{oa~Myd6OJrkDt^+BoWJ;o#P~b%k_ImWkke9;yN11 zDH1(&O(q(xM`k9%#=VjW;xoN41d40_+@as+ zt!;e(3fFxg2L&jVW*ZU!>#L74_25g(6`MBTx|%I?Mb*JlMH2$QtP%va$RZg4KC?!b z!nBwe;NJL!j%#wr5aD)PmkAFUzVi21$o|8dD8B@8gBIJ|>)|Y4swii%ZQdpbUuJ-R z`89+uH^39WLG%s$e?stO26)0Y31`zA06n|JtXQm1Z#>@Tm%`~yoG3kK!Y1+(g!kq5 z9B(5p)Ud{1_6D3?4cffhBh#c9XMJ1)QH&F7BwKhKvM1h^vM2Qx>IsOi&&x(yY(_U( zU%EW@c)KE4=K&nN9u~mRdqe`tdT|4Al@`l#<)kZI;{}sC9?thgYaN$*i?1qK>77zC zrBa4qW^pX`Yk}}(o2=`#$~{s-^cK`o!w;<0hGd!az=pVnq6cW0ze5f4ci_#hr?^gRo+WM#y$pczJ=7qd{M2OPTz#g0q8d!C=rL!{SPr!1G9YdJ>a3k3h- zWight{-A-OKgsJMIl9a1^N=(qo7BgWJjUVkMRFn@m&==+>!$Su8{`2ybs)U=zU0VD z42}n1;*Z&@v!+-?VETKZD!HQHT1~XjS z={q6M#Hq-id<&5AnK)_=dYhO7GcwJ#BCB%#Qmx8zq?D*_oXUC8t0V(d2GOe#;iJ}T zFUo3$XSwA?G0b=Vk_FZbC?RTSx2cAfR`P*G$Oij?p*<2@A!=6;>D#N{p|2Fs&%7KD|c6FW6t<75N1y6<;=-*jir>_?%Bb31jI*KfCGX}+RUpmm+ zB(#7T(RsRsq{FHpFf_gugpvYg1kGzLp(ai?lqa36;SpXHw~ffj)+=xD;>C%wS$F7N zca*GzRe>G5qfA#jO;NQQ1+U?qGW5WHQ>Z zZ>v-6z4S*!V8^_>UaZ(@xfPvjsx;^KN&PBI3Iz2fKB2T1Yqpnj)CxACSV3=2ASo%y z=XC^JKC-LhN%A=YKBvc#o0FRpa{HbB5Z%?OZy+`3h~&zb1Ab-aB2>HqzY1M#&~iV5 zMnXun5x1U}x+tl-q#C(sh|dEgKB^_utX3Is4qGUkXm6Hewo(MlEGY`59TrDaJbUp zTm=ohr@j(vp;|J^Vo5R9$LD6L*Ojsm0SNF@{{d2=wEu*0T_O-_W)4t{D_eF(%TM*c zfy>VPeLZeUC82qF1B|9rLaU4zpqNq?gx>)@!L7r1XKYEQqlB!68OZD(JwUaX@vxJg zSj;;~H@bQtJWm|S5}C7qGeBptS3iJ>La2N+GNgeE;Hp{PfH zyDQ7AxK&Zq+e{d(z#sSOK3hB% zu0El1QVbext3uo_Nv~EOM}As@2%;Le=~|hfBZmXK0bd-KE73yg=a$`}uk>2hLG#pp zqxH}ZF%NJ@Y=~%G(nwB0rteiyr5CzTRsD~qRBx`175;Z_*(IZ$HxERXJ=Pe0kL)2(STbOZ zrv8UY#J8hCvptVy>Q@)CNd9F+>Z4wq)Co4aNhzMmluy|zr#!xv-pKEjF`3{FD~^9Vl40AG*blMV3W2tLICzjg+a&j7y(!KWGEPa*hp1AGmDi(BJ_RUCVF7TjL(+Ft%44uEUtq{$V{wgWUI8IhG#HT+q81K zv`zRK47$gw$nxYP1I=swwA1WL>td#7g1U2gPllM^UmQicA-wn_nc95`e?B_USPxii zV6u8%Ca(OX2+17SYJMgtZ=@==CnSeL?uaWVCquQlaFH%5z06>n^v= zZdj~)ZWStWOOljIrGyBJEtewel3R%)#Y^coGoQJfGoR1meZRcFKkBJHXU;iu=6q(( zoO5Po{*;G*s93)IA)}~YllPrr&*03Y5EzU=>)*J*n@RP6KGq|Ph?3_I~RIk29uw+q|JGyBbd(&tmQ{#E#k1e(D(?Y@rsC7-%rJO zDqXS{u#v(({?4bph@+2Ki!Y&F$cOCpjz99f3%%ZA;SyiI9Js{zouP%~pLUj6Ipe^M zP(-DpKoM5`8TY;KTw=slNHNS06=}GqzXDr5ICJ3L>0KMzaUHSgi3SHD_@9jeYy^GS zmlcId{#+!{kCU+iuN>)khgY}JA28C+o(%p$@M33W>~>nUN8^=LENh~(ziy*Hyi+Ky zpXU{NrJU$7wjl7+#b!#Eu4#jw&EdC?YSgy=*$()?%;FH0Th=IxV~^PwQMCK(@b({{ zXa}5Rsn8gt(N54fMHI@PvVk;SaYXo+_@cw4BDS6)asxKB0Z-Cc<6I-M{_@EgGmc;4 z7!ST!;dGQZ;%yZ(&Ps{%PnkI7OWJ@pP-O5>s$gL(qTPIErV)@d*mEP6ILk$~g7Kn= ziOS6DnGx$5II_)$=K%J^3}Q1+v0)lcKsF}@o54iG?3ED~{6*u`aGMJL zvKhj7Xa+G^rI;9R#31OFH_X~XV!X1ijp^|aP2-0&ZK3x2_bF|$M?H)eUl4(lnjVsn zK=u8cz*bTIAwNHa*Hz$&M>mQzE-BNYB1UM?$^a@nHblSGpKZXK9EQi142pP!0J3K{ zsGP=AE{H`9%z}AilETBM+kmGvj3-)9>r5p6XbpPr*=XPKR~z`U2750Bwazn~($ z`YHr-j0Lkw zG??#QA~4pT&%M>mD%(Q>(<*WT8yJUDV3i0jczIiO4Y4#Vgwnc7TYNJtMF?@=M*_$$ zZDocfR3ULLyFn1>_}*P+@F@vSEVKYuuGZFk@h5;+y{WCb_|v#a6F_&_-8Xai+Eizc zi+Wk+!#z7Cx^;|o&uGO6c2^f?p3KHFwF5E*&UK5WPFCG$`EQMES4Gyin-W3aM9|R= z41FI#4`^*Yw@4^U389r_&^DD460`h4jlgS)fQ-mWa9(wNh%x-QgtI5?A?W%v@u4W| zGh6vMfn{78sDn4ufM1)qde5GgG8FnRb3Wm(m*=~#bcS(UKqSP#3cD%f=CCV*2Un#0C}DGpJ2#tRikYTTF#o`ooreH`TkQ^860_^$p9ezrMcc|=)W zqlPSH=MOHhA0$@djr-%tM8f6v$4QN2G%MkX#ykO6Am$B`Fej;ci6jl%K$6`RXp177 zf6;0e9VsUWdw7Cj8HZoAXgEn-f@t{!6a0!w5I)fae-y!AHDwd}Aovs${G@`jL3j@K zV!!CcNoa@5w0zLmDsl4x8HBOM88;n}K?vP%h?@_{AdDF|#_<6e1kJiBE)U4a941cU z-F%xsS$7@>WENGJk6PbUo43wq^vT?vV$xQf5FGQ9#+ZwYA|^LAJFXpHp%`;ScSeTe z;P?tJ>nhAjGwp9XI9Drt5@}NoOo*#VR(>2k1|7k_f;^+&)ZP+djkG@Q}@JC-RQ0DUQ zY%KT;$Mh)tmS<~9nBnLegYY>f_)iEv*95N^NAykneF#3s1iv&P;p_tiz?}Bt>zkoI zQ2b3a%z+1HageyW}#zR@@6j))-@_ zS7Gftk^9?%+k_zG)Prr+WkF;rqh(Dx!wt(h!wveK zwa<`$wFWV~G*Bb1Q)#+dQqeD>Evc}84{RFy`Ftx!U2or@0xWZECd4f}T9p$z? zLR%Y*f^jR^emNv%GgT#=y!4sr6y=a@W?4i5Ld)nA#eX1Aj67RHfrx8O~3vR$1Q10W#z|{*{ET} z{*DAHNHp8)hY!K+AsbapVqHo?j;bgrGztGfMUJ#Vs|IAkFGK`iy^P~-GYO9oD_@z= zYS2t5d#;4S8AWL3ueg#FPOm~ExbGo?&sXNSdx&tN42@yUwQ-br)e@i(jbfR#TJI5| zRk|tS%O;{yuXaM!QPE5E6YgX%8gs?TZp!8L_`R->Clqq|qR~Vs5ea$xne^beKAFC< zJ%W7aGuck(OBd}P&;NcKOV{6jvZ00w91U8asD*is|4PpBB2T0%G3VZd{_HPCsMR8& zRkNADW7`fNVB<`8XGUWoZ_wk4XL&tjD57pxDDDor0tvU*?+eB~?hw6LMW2ACwTPmj z7#MaMcblP3e}y}}Op|wJ`viJx5kuQ{6xPn|jy*1ornr)?d$>V zif>0C`gfRuOl^0`4Q?5ZMJuTvkyKo57UqhH30(BUFy0d5)L~Krl>N|tN!tWiho&V! z1&wi=9kP{ez*g8R;Ao_6YqXKpbw5n%p7z9H3Zs17N^Vft4gd+~S}5nt^SkiLtjXz8 zlQi|pY#A_kZ@DlaLqjPRwo$BXj2Gh&oc9q#l^V+hJqQ-d;yzRtb+8vj{+<=Ya$~EXM93L_%KPQVMB| z7-&4~Z#80PFRU>&z47X#YRUC{H)bn|t! zt9ZoMWFF$~r9M-dUYBC)E+qw7QfL4Nk5FedLd+tu39M@*1TiKnOLybiLL=scbHCm)n#OcgpNf}l-ZaNe|bEK>TJqD3%5?9 z${FJ}N;I}j)!3Fnq}G#3lrU$?$0&oIRLW)L0LK zp%w+ki+%xzANH8eJKb(^-icWs?#A%Z%KDffR-fT(W5GAO$MosHXYuJXBmNMvdf_Eb zr67BQQC=fI8jLvh)g&rrVPa#HPE(cGtX_rj`v^}6uXCKigdZz5k^C^?i8qs|9E9=1 zC|}Q1{8+^YSMZ*Ojw(FUTk8bRo2A~7O^HPjk zZjssb!gCU~soOT_@$=PY@k*8@aZw1vcw4Mm<(DTxSqSZ^Tsi^PpKFq)XWuc#!D4~Y zVMD4F!j26|Sm9xXQIdr9B^DUDo03|+1%|iZk_2@iENf`oAS>RFJaB6P)D<6-7>`ic*(($Gq^J%k`-sy$EsTJ8M zs$Z^`3EtW%%*Zh zUZxRwCk@&X^PSL#_xSJ1capWLI+4{i+Qaf644hT7y(|FQQ1(R9;nw!B0>}ifSzD0V z07`(+=QZms@%f0`1HiX+ay$mIN%0fJ;>;bKMJW@MUz0_#-VvQ?=57zFfhd-9`o*aB zIhVos9v+cz&vmyYu*B8TYs2vS_?YEQYlr0+gHWQQRP`5MP7xMe!nItft74=44 z-k{s(3MR55E_Wo7mE}(c{qam6twh=&@6pmNWm+RCD=$VG6n=*kBbgAF-Vd#|)WBn= z_bI~rwi(Ae%6cb@i}XS9{NdBQXMH&898>F{Q7$d~aLln&^Y&I(ZRu#!Tei2lYD-7! z`*?ec=hDCs^_-v7pIkE$dFF}s+KW#7B&rz7yh(rv(>5k>ur<^+D`6rypCO!PZ8^>f zrfE{c7ubEEFYC`!(d{|fNnuMVW~A92 zA+3{)mN*M4)cw|EvB$DZbsl|A_8!-|FquBbTe=*MdyL7%&OI6DIE8_1e}^;MOx7}@ zojag*RtxQHwQqvEJzdi)g{F-X{+W&yF2JJY0?C4amb*Y#vtO27m7XE)!OKJ1gF*lq z$w6Ya{L=^68;i&1wgqAiTU6K{lnaQpaJ8uy?f!9rJ)tq~0-@qwLD+E#cH%#^_GYlDrdYE!+Q3ORpUH^UTdg1oP->j!XBdi^qt!DQC? z@t|0Gz^t}8HItTJ?G(`BrBw7q5FCA$Gua>=`gb2+bAl-{c;whm&p)~=r-(%ix&VLxw({>!=~Q-@B5 z{3y0Ym>F*{lrxr=NOlKYF=y79r%47NVP>(ophVo_Jb zoea_Urm_-|%w$&77orsoT35dPTR10%!&JyB97b!_xd2)xl(BpB3>iYBiwirpjm|_D ze=F>F&$&v9o#~lgUnI*L3Ao&$0KG>e7IQ`7(WEOBBqbZMtVAdoqxWd&${hJ%2h@q7 zVJExTPpayLhx}4Zxu$!qu%!4 z3(K=fS%&sG4S8ICPB!BSGo(r9si&1DNe?q&5AScqd$@sF6$ytjAG8ka!~@NFCpNGl zr3d!dGiHd(ABv0gP!XrJe`Vm~e9VhPjA}pb*H8TEC>7fIL6}l{k%&_wo`FM|6rm;u z?iN56$fSKXoUA&xa1KR+14E!4mJ@=+sT}v4;*gL@ZcME&Me+)azQR*X*VS$@R1- z!W3_3u($G1+n%be^SO%})4i`}GD%y@0Pe6b?&N?8vXlH`fD0~4vyQQDx!rSc# zEH{h$LoCMgxX;P0nFuG{G^Gb(K@nF>W0X_A#2 zDkXDfoGaGNRj;Ux&{RKLsh)+kF?5B3VlCWURcJv!K0=9LfisoBD3Z7Ay^egPV7`HI zuQyg=volYtR6UCH_5Bbu9vYrYGq$50m~k`3xFTfy-1{B1+#MiXdx-+FTo|Q`wQ>aM z?10wYy~89|BhTjKlpp-0qn>A@tugIM6D4ipNc5{_%<_iZ4L%m4Z8mPHp_if4Y&BCJ zO&VZHa)!g1<)Fstwn<=Yftahlk}J!-j7{p2nvxK{( zganLw|L)3;C&?0gb$m4n8~u z`ko@~!>(ioLR|i}6oPr5Nc>vUp!W$gM^eynr5)8JM(7JNnNa6D66%;8^CYvNyz8fO zc}tnPi@7Jsi^uqV^RID%O4(@ghrN*I-rOZLcZ7URWg7wRNkDO|0k@Ltq~h4Y?umK|J)f zAEgsX%oBC|#)Gos?93%5{h}hx&I_aSe)}Ba%E`6o3Lltz)pkJ!ya!^$1pJvc3u_h_E#`$EXxbkv&!Ci zq4Y0oqe;%0XulKG{;>*N`}xeI>C8w2)@X2_M1wm!8w*e|s0jc&yvlyhyVCu!jR_kQ zpDu(q^%)Ropn*G0FTXE))-rI%7H!Eab)i^xe_zOS)8J&G*ET zXv}aV*f+)Io(&%xUSQnZDEpIIPn^Rrw(BJJ=J)%e?uf^g>85ws zhCE4El<;!}V##1K?u&;K(GX?2MKIMDu`3s6Ag1HO@6z`-=y2BOL%Bu_B?}W!lX9jf zJc&rao#}QZz4V5OOmC(u;&I1ZNp~Qb>B&rb-Eorab?Q3Zx$0RI^LvTrOZkyK$**eF zXP|#clOag!Tb0(CtAqNJ_Yrh;N{tRNcLwSDuf@=vDK(T$0)LvkPz>MObwS0XEa8ed%Dy*RLqW4iNW!mwk`glC%?$@&%@RHUN7;A9i!iX9 zi>p6_Z&_e98c2>uKJnwq3YvXEQhcwZNHO(vSwpDnV!NShQF?;}zW>t<#0ih@D`{eU z)my1%X)Ax~#|0jAZ;Pb;@@FurL|QPa*VpWqoxnFNOZFRUJX1zc#4LpCGrz?>H+pw( z`z%8jbqp4@*C92ljl2l&r~cm#uZ|Bx{mgL8s`(5)(V}z0<79QB0N?-8qoM4j$k(KETu{ruB)Y%Ef$C(}oB!Ur7R+h`}rpL71 zi4aLTxg#Wf7IAyxo4EnTb4iLV3n47u^;!BpW8g zrtWe$OeYv0w(*cmP6`%eDK{=h)cNdO4*PwQ^_ywX3pqU{IGq&JEpx|_FE+ClbjQiU zLvQo4sO#^sLi%;M7AeKVb{^{BN!CH;iFSsJo8QhE7qeSP_4hd0t zza#_SeL}@Z<09-4BCwbhRe-S-_ua}{XMU3b5LE056502?Wd=#oDB7Zj{BZkY+eLfo zoU-Z+2|K()RA-PvCHjGzsN262)SI_3)2_SQuR&qkoNb~l^-x(^fP`(^k)b#f>vHB_ ztn#Gu-htEQXHpmnS>X74r^>L5z2Fl5U$?7N;>lq+AO()@dtvZ;umksJ#x59wAEH4& zN6^6zO!+jTT&T6(gxZcb7a%Rn0R=`AOz`&aLHI-yd=`SgYAV3`2EnJ8;PFKeK2($5 zwp&RriuXbD{Eu_YH^m{0rAu;5H^m`@e|?$*!{&6Oi$$n%b`kPE%fa`^A?T*1IWo}2 ziYDpc;^Dh`9~{2nngZ@n+*u_oF6`|5l_0<2oDm;t8klpM;>^lkzd*DPujaJ#ndBm# zfk}8336wLqcDWFYZ8uput4QlwBcNESc1-yJO)VJOA3;ZGlv^XpBQ-jiP+ zNsXbE20`en+V{Rm$%Q!kHss(WAf3&$kM&vDrHLBb!GNtuzsbf|bn?TQjEbchh-z(5 z6Bmye-)p$(r$dG5R-9wYu3PR}1}IGpiz{Kx3|n^gYpH0_(ajrkP`=OHwwkPdQK?1< zA1C1~!$TE?J5y~iQUy!u3HBu=IV!2gqKA_1DM8n!oHCZ=l%(qnt#4WoAbjAk`fxcg z(t(2WRo~{o)Dv#GYIuFnXXctChx4T#LbfgE6MV7e&5RqqXN*ngY2FhWpekw_|lJ?#>HR>S!Z>r<+eWA_*>Y_w1AgUU1)yb^=6<6Bu8R ztTP8EW1YY#&?VW})nwHW_rJ`k4-jaN=?ik&OmW#H-s4hu!D0pS+m!rsJvc)i=KqZq zvs~oUL0}H|wRDQ;YYE+5uu~YI8-<-Z$x|4R1nkMGw}m=O$ks?6u>e$F>)J`bFc!+t zQ>4u)m~E{j?M4ggmp!sNo4rj5|5Qv2>tR z7}Jpse={G#=a}GC3m|;13El?5XJ_m1u?RlL1W$cY!A)cE{-XNe)1l(wA-?eqImB!? z11Nt!xRZ>Y83$P*;qC9&*K0KAYP9ndZMK`i6X0zl1$pC~9XoJ}c|5qdzU9T*$WY7cr^^wGsDsKL+M#L%=h`$ znj{T_ZUyFO3VCWe^j~K?FzLHLlBAhiCL6AwAzUBBJ77kI+ZL*}^yYERc^Gh*FG}mR ztHP-TVM22eA$@iG=w-ROp^JZ+yM{cas&7Gejo2DZSTY;I{E8Jn=9UE@kr(E1BE>9J zNu3-W<@no>53wT7XO70F;m2oF(9cJtf@l?3DZTooyz#bKBW>BPF7H($%6X70hW+e( zg%depFJ;n_s)<>UPyPG8m?mrw}jiKC$I;so2lbUxmi)>kS{vL3IGAUUt>9 z3#3^Y#euTlQw{g~bTS822$9N-S+=TNOYG;1S)Fj@2FVX=DxW@G>=H_i z1P#$Sb#$pX3vFDM!3R45RZ?+C>Q?*E2fQgibenU`#kj?yb*G$+)^vWS|J67*MiQi* zdz=#i-&ujWb;Ym3H(G6<8g{<&KfZe7ys+@2J7DZTJtf9|wS8LHs(Xii>x8U>7{41D z|L&#S_={P_i7v?OCJjV{6gmAa&Dl1U-lT!xzaAHpfngZVbZ;V&2ql6cm(S0>{mcNF z1xP|N6eU^JOi#cUchhfQx7Cerbwc0%YcwIrUJ?SGUS)UwCFfn+w6HVXmlcY{NKuh1 z?(+vp%9hSKbmAeLVhK+yndOTFXx-07dHaU`p^f@S_K%nTydGXiZ{N@n+d4Y)u5L6+ zWehxBt+CJHoI=(YI;XG?d^sZ5=u%GZC{vugq{D=mb46#XyESyQl~;8}^$etlM^o`< z^E=@p9;#z&VpFf_jA{i)&K3+q<-f(GVN9%L5UF)-XRQptgwo+Us8f>0x0+C!rg9{T zbCP5|w>LhRO|za>$Q`Qy#q4WE#_j}UHrUUc?0XsbtcY zv$O?rIU`?BBs1uVgffG!SkN1HdA-E4Bhi4z74&$b?od1#%8Ib!x%Kj0D{c8NSDusO z#{5S3y%YyEQoyw072hwD&JDX+f(lNi07L4hYIg=fYAQHMFKcYBtsrb^z40+nK5`ZU z#P0QWR>4EM(M8a%0jXvh+a&)sp`5u(q41lSbd)*wC=?Qeevut1VX;JvcY7m=N1%hM zV5q$@gl^H=wo*{$b9I5*C`sYkILf{U^_rK4=cw4p>NPJ7Ya_rqUM5z(OFLP;=A~in z2UzqQB>vn!XzD4R{4t#^+_{;y6cs1biFUXQ4nFy6tERyy_od?mMdriJU>=pmb^aWV zGt;IWS0|V&`A3w(eqMN+qpr8lw7~~Kbi^ZzI_nRD=qQI43(+Vk{ve1ZTGORcH1m5P z8t$@{5*I%QVu5?>IzSgb=3!4OKN)_WS6~0zLaQ;^o_e(y6OmLGSwI@RMRrm_&KI16IEon?Ou+?rHixa(AwN~`PNQ^lj zua)s|_G960q;Q~jZnx)ZRloc0>g-RAh>vz}moBxcM>@x=*YalgYE`day_P2<%lOOf zwG7lob?R`GTGi9Y|M%$DGf}Iyv>hzm_LH5#vn12Q%yuwJxl_t^SrC5e^BZR50w{JI2E;&8t z)bPDh!wm??laX1=qSFVi=FDf>#A_xq!gPIhjIp`+YXsUvz-?2nD#49^Tp z!&r?5^C2h4{gD_3e1Sqo{P>1k@B)SNzUs9)Cwh4O?t0{>dk-R7q+8sbkxBnIMn*K! zrHh+>Bvei^v=29~Uh6R`t`fYuMWo}|%lTx#UV2}%*yvV7lm4=o)aOgLlEnS&QQ4qj zeBTSU2n70dpRrdslsz|v-jhtv*3yCmI&<-wRLyk%S%oKdp03f=ag8rmdjo@FEV6O% zIDam91A}Uo?3jDp0A>7nD`#|!ZJ61`V$7vMgdF$gf@duXoi zyL%DJ9WBJ?Y6wDh5n7jPd@Zy^KUT6(v5y}2_xHByqZhAH>?0l<#A*LD$Jxmk@kwU2 zP3!n=2Rmy=U73C{t=DpMwdW=%#`~gEZM)>E=O!pKi=|~ov0Pg4+RDl#Zn%MqGfRlW zs{O=;!E77=!~1(l^DjTMqA?Bt{Cht&4(EP;0yW+9f@=DkgAJiYXO^y)oxzL0$e_#q zJbt9JR{e+hMF;1q*D5SH?b-m;23-ecSb&gyf-nhV2&kVRrI;obU{Xm~=GTYhzV~=% zP%&vCSf_8LVA!oNks9-dAa#U%TNb3A*#t;ISAtnSw#4QiK+ET^UT8CJ+J|6O!jE3; zD_^eMYOsS#0UJS$%AcQrc^kfY;VisZWtfd4Jt7$`yXG{?>8J&`Fa+crW`}{M3mg+q za8+)lW!sZQ#j??)tIH!oh*;6LcFTsfAw&j}MDKR0n*`8~DgG5LAS|Wir zNOYu!f5-jL0z^pcE`Hx87W)I zKRd}kbmz`$RFPCwlvK=&aJSRbyGSz1;IZaA>f-GUsbf286MsyX9oN%s^OpmQq9N8d7<16J9E%k2{+Q)IHfn{ zCxiAsO%k?mD4o_<62;cyN?mtp7m)CzdS%}a9@)ri>iePh5Hcy)H?#rat$Us0ZD6cQ z!8e2v7tZPeuIi&z<)}L|pcxR=@#+afdp)*u;2ttDuvcQ8-7Z2pvst23Za4JIx$zf# zH3!gS`>RBsR@>+CD-ui{U;RlJ?VS{gu~-b&;7_}N+XMM zx2wD0TRui%?Y^h9D{U9ZaP^8V=2ub>M(S4rqhkvzc;&AJJkiJsK4M)L{f!g^-(~-G zy)=4fiwk~<9orOdnF*k34t`6dDj6ajW~n+`8U@X-z(e#u4!H!A1A zz+bk%Gk9&6J$j-wKU4zAA2h)`eFNa^iVW<3W*$V((Nl<1Rts)pB$-5RS6(QS}x&V)u$&t?DgwwCgVGYW0?h zj`qjpT`khICbTE6?5fvF=qTf_?h5p4yhpOH!Z!$~>9ri^1nVTbM?lx-&o_#3qF+O) zp-@r<2$UKBML4&{a$14z93Ox?$6KbzNO`FdDR-s^Go#UXJQQ$wGqXtLPnJL8iX?n~ zS1cOz_yYlVJQRu>W{icd;N(KjwDIDfg<<-_w~p8MMyP-j42|jFTZGoD8b>=R20F!z zH2)?@>m;LPvH$FHixkcDD#^YIo3KGt=eWlhU!oG`t%soQZ@QW5{wSM@m~6T$7e1*4O#C`Vy&7=7rg!Ct1zsw1 znhj+n(;&=!J%<^|$Wog{xTH!=5H2xtyx+14yNZa^R+ma!(h;+ul#&i8sj#F7yj*S( zcwyyKU15EZ?Mm*CoPp(3t8MxsH2Q6nwWOzx(FIOJGrEDBJt>z4oWpxnI)M^5%7h?L z@-9v~Fdt?h=@MsX9pdbM4`#=zra=btZt0|-ipB_+rFGJt7lfqGe4tWw=Af)72A0H{ z*64(<-Nk}7{7|JIu@s|g3MokS-Fo9>F>bryBbB!+O?8g`A7#DJ(J(FVrJuN26ovwm zxX&kC6l2$$!8~Sq87U{?pw}yJ`UIY)V^IFLI~~mN(L< zi+(3Pn>!#*p-9l|rI$ki!cQbccUZAVsm&zX7Ed>I%K=&NR@%C8ZL^=@^|;1Qum!K2 zvF=LxgZrqe4(2J*3(KKoE0kmaUO=J0%*(-pv=@I@NU-_dZr~CHXL>T~AtmUckSmjh zBD^88eGA3OfBCXPiDWdM@P_;eT6L~<;Ieyo2lxi=eRiGPC{2*xl^~?3SR+xTk@z;L z3QhB1o7nyZ~`ZFAr8|N@KR%G-1NeQEog*)1bWmpHQUz>+z4Tjy?A*b zXKpMW@HP0!)Ltj-5y-W-uMu9?Dit%S-_AWx&Eu8+_ffRa`4u=2b!&{s?ZJl;n(5xuy5QFA2^zr> zg_58#2Lkb@KhX_eDLheYya+U=%LaxnS5Wrxp}zh;RDFD`gv7+%+q#=N=uUkrt+%iB z?qQh*CeFqywt5_k{p@_6W1e8n2D?ykvhYU?dZA&mT4j5xtX4ttoR;#G*f+DMV3)A87L7%tE?=fU>hcE2e}$q+pDWW73S@<{qQRgiNh6$E zZ$=F0fo9JS*vvOYQ~p&$rSg%ef3_8(YF9;!H|<83+Izy?sJTOb4~IoLWG|{oS|MN9 z<6dKuHbk9Z;0eg)8JR9K=`Ysz(HdKpJIZ458xu_0uVmFyr=mZI)pLp%ATfc z=n%s2t9zQRRKggaT+4$KT-#Gl=QR4}Fn`gts6X4P@&4p9of%i$&2}IPFFcK0K(p4y z73uY0%g~ngso`BU<6zNMEXj4Do_IBygQZw@E-8L0f(2(rcy_bxV__cO-Q5$cMzpg= zpcA0{-bC8?S!bbIBT&^Ey`lk$x*3bgqL+ZpJrDKNZ|=beeOn5I5)uG4iFtP`C8qhU zuG!g0mcvRG6QR?s6(RkWZ;NkZgkFZH%U!8$Pk6UY^9y7DI3)XF81tOrIPw&nxn^s9 zoZ_gsyYgsySykeFNDObiIUOoz!Nt)=)eh%_0<{3`fFJxB1XQWvnX#HA_9+S44U2*tdi_IKzjY*b@d&vI$9RGfGp~Fmn@7B{DT>s_Ej^w zf)&yjJ01=djbo~@j9kn156|kVuWJx|aIOHCkia$zze`xXc^t;q-HK@3AKj`xE$Rm2 zwq4%tdbaEAAgXhISFk`~GCKtfErlt%74(h64~Wc<^aFAZyYSbz{U74s9p?Fc$M8$%l@D4Xr-Lrd-Y2Dj9~WVU0~*KC!+6y8=8 zc=Wk8w}}eh!MTuHg@X(gnC~yWa?G=GjUsb3B>dJwF-sVBP6F4wg3D<8K(l|3>BTXi z`L9oXK*j;Yw1zshaC$DP0ypL_A@kuMdZG|C4Fzj_k4^4n846}I9hwO~Tm)x2GLx^& zew{AV<8f`+2fKQyB38n!JLhElywVGYLD{6$6td~}K4(+RugoHKRFQZ*=?x}b0dIg_ zIFld+Mx^M-l}N^;?s#U%lj-r&kfp}#$7SvkIg@&N>{y=~MIX?{GI0f+OKJz%+Dn{uT26}y4v z3G=%l^Cp7%R&h8So62{4@fyqa^oV@9J(9e1^$?47f(1JvfXP37u&2cx(y!tp1eE{> z8WKRjwhCxZv(JEftLB@0Z*PmE8f#Lk$)g$~-Gn6G^=>XG-8Xz2z;wgjUT7Q1vjw70 z>we;W+DmgRx=25@P1665)Oz0d{9lhUCSfuGMN#S@Q9 zDc~^)@>9+S+)nC(R+E>{Lis*hEHWRg3cpl^)P(?Tl>jEutM2cGJWwKDO)i?zwN_lb zQu`WswgF1;?g}wT>l`K5n^@#Y7RJ-2dh^Rma>1zv8Zag@ROkH5wdoCtU8x9W0$0fs zYV>3Uz0pGQ{!Z{Ft|zT_VZ+1+$9y__)PKghjP2gms#wvFq`BnCpBGSlh zOGw==BvAa9AfPrdn0@0v1p5ZW2T$p7BkcI=M|j8c*#Hv*B_aGb;Ww65_x{s@1^g`b zre=wpGuhMuc^5AL3>1Xuti8-dXKiP?FXRjQLLQ$hE7P6j@+L@Wb1)JJx%^qaL^3Op z8A~R8wA^=%DEHMr`qRnYsNDCH@P{dw?*Yg2XfYz`fj7lkYFzKwu)^~=J;0V*G`UwO zC#tHbn%L=`QmSmy{~LMVYyQ&9Ds0pW~7oWv0vPwwNn` zy1T#*4mzQ}BrAx%-~gawg$qhC_cAF3$x&$Cc;U+DagM_1hp}@M6t*Y|a`8tpetr!+ zlZ1pEP_g&fa)7#4zRKy13T#OtK>H${SIaMwmq|9L#l^U?5q%c*Y7^pwLZG*cUxEB`WYpkOWCzPW_?}fl_%HUNn<;9BG9Oih_vx8W;H<12D zJ23Pk1tr;XKs$GMZ{@WN4^pp%dhJrK{Hw$SVyyXir~101kMcM_B{5%i>JYQesb2=` z<|BJ+k!nbKYlqiDEiC+%*Z0vz4+_5IUUiU@F4GRe z9elHwU-M5DY3+2EJTeHGR(MG=wRV|axepuw#d6Jb_R-yN=I)~QBO60^SDXQrK?_0a z*Q%V>UL#1<5Yp(KEsuw82e0?Qez;&ih|>mX=ieY{8%|Ec+l7I=Q+mZ0uhV-2Qbl`8nH`k^L)#-v6*V zbxQR{qoGk>W-u#3c3qiqm)9R6(NG_)=gjg1LxE_*6Y{d-mfOYtOCROk&GB)|FT)?D zkdWGZxB`V5wtY=ZR&e;&q=x9O_AdwDabdzOp$V26l~ zmzVwcXLGVA*jiYQogC1l^?e{sSie?Pm$KWJeXJ|6MU)>2xVx2pf{(D~n_c71lHA38 z^l~}E(s(GioDs^dxS|h^y*tyR2`|~OCxfoIJK%SDlfEohBFzh?=i zwL;ujuIpgQ6Zq61*%)YIt$jy~{2F6h$m9wHV?;7v!WGJll5j;J6m$jMe)73^lhI@( z?u+}QA$nWArmdN)v0N+5lB;!Ve87-og*0=2Sy&_qPm#^6rhrR7>w`D5L<3}D)5K}N zwhvBIlqt^wAkUx1W>hoN?n|Ya(nU4_S>j@w`sU{)>Y>|;Tv1iSBp;Qs1e(Zw5A7Z#2;e*BH>Tc4m!Wy(c~Dq#^o6_I?faBzrCd9a~{+ZVEL%?G+y!qg?d?XuOid;`yGgh6uz95#*kZEJ90cH**o$ z&)pL_&I$Hj0#yT)&$dXZflh}NkpR&T`{GzWdmI@FKM)EJgy#Qw6xkd3zLmSc}aLR+^q=SMb54_PA?MhNir)mFMDu}VG0_}EM(MFRcbdcCNz6Ox@+>bc=G3G0f zNr|jCS{JXIDoAcLCRNf$c8s?NWc=ztNF5kj$`kF31*0qsXuj3dyP9f#$8GY4`)5z8IxR=wf{%v0{GxI~n zltCR)G_nCAu)As4JJhHf%V9V8UR7{^U}j&qZDgql$^NdbeYH!6A@8j}^o2_Td&3&> z{Z{+XCEexQ#lXDiK(=INvZ7QM0TOzB2NHo+hQZE_KU?PxNy_vs6f@^*cPsc_{){&2 z-X7IG=W7>h&ALFZKhZ_&>oDwofumS-koKPM!sToRG)I>v+;YGk)sn6w7&=iw+2SBI zYTE~f9nME0_y&}F0w}llMbhm#uA-wlTN8#IC~&-gfOmmeM4{I6c}OpV9k^|agRt#T zt?d`6?HElR>EmFea)?Gb2T>lCjVW(Klnb@C15w-Y8s8rpbO(HgYHcT@wiEQ(vtf7W z6m8U&G}-C;GD81^&W8MaJXhm zE08S}Y2#JpM>t+ZTH7tEEsX|g(hT{ypJgB1`>ctoh+8;qjYn)pt&Lp&>34df|KOEYj(wpSFA>JL9f>8-Dk4}mQ z3DanH82eh6Qq(He>s3Pph~Qw!Q!1u66pu{hs_tH>Tb%z9|-NK%4&d9R%6! z=W&8tXZh(}{Vg|qEC|sU@#)C<67)J*%cMg4J<%BA68~x8LIrC8L=^FEv)3)i3w- zN5;AiL?tA@5qU!15)#uOMY|f2&5iowJq)43A|H~%6C=7?*Ljf2Tut4NWlMFd@QWnW zWm0#mx(Er+{-C?6&A>7||9N**+=HRtukLP9F5{g1KPvzKuc9x-Vc3Hij?Ek3tUcR- zq3>>l&^a3P$`S~jt3e-CP`tH#{&O+(Y^M8|KQoOQ=c>jPQR8J_^w(oCbF{V_Ra+he zsmU8Zxvaky1YvWDZ2Qkv@zEQfh{<;-cSso;vwZ1eNt7MG^tbe}J`o6i9)?0t6hl2i z$nmTC>($t7dP38|)a`J3BFSi)%>n+F5t+O%3+gKA{8VRR)~$E&!h}6 zJ8Tj24@946@dz&t6QGd(!_-~ z)8z}rqJe~)xLa}h*0C^o%notEwDB>My+&c6efW0Ha zj(j82ZN>}W(js2D1u4%&Ny_~G7bbO2 z!2sYJThMAa35W$>_%hR)D``Qq z*IpC@WdtrQ_^f;t@WBsy>7``D!-5y9613ZCR)sFive+s8u(wM4?6mPQ- zIttuQ8zKbUdoK5xmA2J}^1RiI%X5s)9pWnAhLFL>Lpg(drU33YGowesPMkUbz5K-Q zKGHb$jpkX!q7lcv!rsJTTaDAvsp{ilZweXV=7x27`ugBnSof<2; zMGs5hZq0ao0NNE;3{%B7EV?E=Sl)ADfKANG8a=oZ=4 zu^P4M;=sM3*e26Cd=D`g_6`b*K>)Snn?E(uB7MpeHm6wZ_XpW4b-VjDH7=O{A}QX8?Hc zfJLA&?Tv``9F2CJH({qnW#hKHP}{j$+jeiBMXo+lu6?Y_v$JvI0>pT@CiK6tHkTpN z*DM+UULjyxLrnW~M7v0%ec9`hHrW>fy8Q)Rn_+e-Cc|I*p_)pxZ|r<45x47`MFB7$_F7iV~15xoCYFGY2lYWJ@SsY9QsT8nY@N4}cfJ)0ie^ zbem$t;*b~`P*Aoo-vh;HHJ8&a=EZJ2o~4N}YsCO~Jvc6Jr{9ur6Fi#nLVtZn02WiwG+LF}AK6fN%WO-K?7uRB&b9`CTMyB6`x9hc1JKuw&Kp@O`eN^zxj1T z8&e-t=Q<(H*|!T9*XSlK5Y=ejJba*K%$5xf(&%EBAZC23^a$ifqVCNY#vVljaX8k( zN65|KWQ-w(HxNxH|2znek)*08a&;u} z4n&iFf70Xg`svjSy6kU`9*FkGC6@c+Iv&Yazoe9)@>nk)P=R`!=$_p`N8x=B zaXgrCm0lvE7VzbvYeva;tBqvpcsY_bYZ^ZQ8uXG;YpfUidFc93W(f#ms$W@xap@+F zsNl>>&94Tk%oich3=-HU2%I9S0gt-sc=reMOmDjCIBO-2deT+LIV5q|i>@@lf~CEE zm6X<+Lgi2%yxxySLokI$&PCxNNkP2@tK-a+IQ&w*SGB}^yK`~*UQ%Ee)X_i&rm*B( z6gt*Z6pYtzm!Tq24{lje@_b~VY<9%j`s+CQLr#O{+~%pQR##R6q8VP;(9BbXt)-yY1< zUP#q38Z}kS_yef~2)2vcaC2QC7k zyx5W@;qJD1`b8Xk#giyKpUML_Wtc+Xdt2tqIg8D?GP5929%z-1G7DxNXCx2xNGODV z@N^!yErTqpUqW-cjLXM5{}@{tdDS(RGo_u7v%~IGGx%)@rgu`%rCjSr!-qJJVq+;MUrjmVk%)W9Ki7h< z<`(%#gwCXUL@;Sk)q+LQ!;-~UHyp24?vHAJR-@hmb2}uFA4FWqW>^hz6uuN??YFR> z+($W`_4Z08Cue~=#F+LT>(R@HY2p&<*vM&mm_>Q>xqU5Cu?5k>yzVZY| z+rVVzFQ(41>7s9Kk&oiZ^4mky-j-1)`mCzRPyxv+kI2`m<5!!AguCW}>i~%Npo#L4 z_JJ2|fzf)_jUPc>jAb-zhM>LbLCEez!T*3v-C zk#1&clH=U&Fob5sZRyMTs>Xl9#fl)c?v#_!ng&tme>KjHk)RPiKW~Wu0wdpqvDgKU z;1sEL775bfw@-!eAtrc71TQqfXCnAe6MPebkIL5J*Gz-(;imSD5WL6)?~LFhOz_DH zZeb&?e@PqBQW)&9EREJu#A}oZejLF^o8aAFgYYpX_#6N?+34XO!bUs3Rm-9)$5mI% z85B(FpPqT(sa+Fzc`pG@6jZn1R6{H{#aaTzxVQjN+GXF~Tl!B{l%4^UV2Z>!@c+X- z29M?D=8%6kZb|>4U(>f?+?l%1%g(TMq!F9}hlswEG^Qg!CU@seWnMYJ8En!RG*AqT z1OEv6Fo25n0EzIKSlLCYg;gda8qXjO2Q&^F6qHTzi298YHN~^^igENF5jgey*@pX7 zL7~_pb+QbRTGB_Kkukh>-#m3ro()E0DC-%)X`2`f<`&52kBH_rwZNEH&b^Y!PMTuV z!N>c-)m*(ROz>Jjyy5*hUMb@xGiAEaqoesK`(iAMEiyTo5A*WCDRH$dLY$Hp^59AE zf&a6U;ON_-|KJ1PK*Tcxg@~)|o5Re^kQRQ3LNlYOA>&LqAhF86E??T2ZFAVXt(z^k zbu{11#$L9rRv?B=X%V*`vTh*AFgw%z(P$);>GruY1FugUMdZS}y`R z#^D=gm@OfZibFY(qf8OeOR8wi@-Y8LV#r)LDml(?fFJXwEleV$uqO?49`QS ziP@Q}o{&ZJO`JtO>od$sBT8!lC2`LZJ0XRr<@`8M&p0D0Pmh43aMVsS&XmS|;vvVq z13|{w7z8rt+0foI6MWG3kg1Ag?ASm(2KhWTlJhyi2I{1^2omz@b6_Ayxzf}(VdUaW zdUebPi95=NR7!iIS>8-92}wqyUYFNL|0_w0cRZ2IXf!JjjYR^6EhAZuj><#9$*r_( z6biERr-9ZvXQn?yYxQWTzY~m@xo6`Ki=LIpvrZ5`?Z`ltv1H1795Qi^5duRiCrMAB zpZ7ZDtCSe-PLE#)qFi%|i9u`(?8Qk7l??uEphddhBHZ++AhlaNJnek>!q>E3z|&dZ zg<*GRIHn%OA=g$=Urj`2{}>w(<6Puy2d0obhJu4^M~bLqzN%M@;30jrb3RJ!&e0fr zsu&mxZL2I1t`n5mP980^66X$)q!-5r=W67u{Epz^8IbGs^Fkj$`%aSaL#ctJsWeCS?-^gse%?Zy`$N(@J~3sllIs=%kj!%@IGJK`6UX5H>6!YnTp4QT--n?(3LH-s1BY4f$X_R* zK1d3b>4Tk>M?}i6mqbX?8fePdQ@BFLob8}2zU z2hlImphGeJ)h7Bahv(xg_y~={Bt^kkQ^Og&={(VtWx=Tij8nv@`I}e(_906ORYvB6 z1h#QV7qwojT9X1O&~oFfe3{;^xaY=EQF-H!fEu#gpa)<$j2ASfK1=9Awg5$7`@YUwiA8 zAl%7;(*%$v&6%J=w-V)^Z}MT%9D7OOxa-_XMw~~*~1mz)! z@`#(GY=t>0HWUc2mZ!j!X4P>f+*^RttP~-W1GDcd0BKgrOU`8yr(L!n(4p8kb+5;< zZ@YUC-)$Nv>vi}q2tLsS&u9SQubOfOZ4rEm34Q>;nfr+m(i;yly^{?)_-MF5OXBJj zW@ZmEJ)VgW{7nX#AJ0S>Qy&c?(429e!g=|pO3@y070OXlj(ikT* zGg=4+8_#__fVBP&wSMF=-a4O2Cm*JOBAjkg0MqSh5LTsWfy~yQ?^-Gw+aD?b$!E5f zO4z@fiEl|+FH7ZO`Gm}_NJb=kklK^Yy^Mmls=4@U-yp}yyfK$M$O(^4^DgX&y zD?V=&2tFn9_6q>Maj+6r3;Y<9OtUP`>WZfeKz^5Y-b5@^sEFxLVVdL`ItV^p*xs-^Yk;P+Qy{#ImGKXS?F;BQxbW{_rv3MZxHP6DuLuC#L-op^@HGx;kc#(D1m`WdZbACA02ivwI%mz$C z2Md^uD=0k}@FiltP!_!tI@9GP|8|9f!MH2o4MszrnBSch_0n`+u}J6X!*W}X0+h}x z4S$-#1{q;(?+FLF)Iein{0Kyw)tjRoW#Y*soQ}8X`2ve1oQ`#Up90f6C}yn50PBx3 zu}%Rjnj>RfL>OQ7gEzkdPBJnf|S-RejU@}Nj37#5SNImCKSV4W07Pch-Vk0_mF zlq|Ncp%>G$0d)E1E9L4kUVah3Po>UcYb7T`)lis0cu@2~=poj_YOiPL|CKEGl3 zM_H_zX9gCOW4oj3seSyD8xDAV#Ve!;FLqxrCnjzjRMDtiE#B8?7+~B zNf0_jgEm6YLJj&Df)3T7gAjC7Hik|_(BWF!cM-HmgMN;nBQ)qn1RbeCcVMYB=%Gob zRT@D5LC`T8wDM#K9j`$P<_QnZh!kLG_-zQCs6o3U=&PD0hau<`4f+j$iq&6&Z431H z0EU0Oz_j~^;1LVWdw&RT@*dv#L)hf^)V`m7+H6)rbHn=|2#n%$Z`?`amay^e#d6=y z{Rue%A-wQPZGTJ=yd1b@CEOje?OPgzU-31Eqn#VZ`Dg8*vpo_GQ5zS-?HwlLUN6YN z?J>l-YNOh;8e@&&CpLo3vvcZ&-#cF5X>4~GN~vs=#X*pg)SBWT2=zp?HoJc3ZA$b*7xW}!6%a$Osa_hJqDj?NNoB!e#GjG{KXfst zmUx(h6=4CK2YtX{PR-%W+{f2FEno~0eqGH9XrP;Nww_>8+AfYxHRAWt(O*}ed~|m&r(={kQAti_#jN{GM&G$Yy*{SWb)Nmg|85O zFEKX1lo$H|TS2sIui|J&nTBL-9+c@vF$Tu%k#x$!f^5cPOg6F_mxr$|G;N(R5AO|y zIEHQ}a_KdNrk(XNbYsoOLkhu^hZQ@mMxn`5G4ps8@Syv0Oyj#d1PwhTj^$`Fx)A%P zW=0QHDnwg*=L`Rv8#B*VTeUX~J3GViU1lLHoxy#)WO5;x*_r*J4sNIf?Tg~30s7Q!0vy6h2Buis6d8}(;op6j_$eK}irt(-{2bEEr==SJDBo=C1Vx0H)r zNhW1lH$`;HxSh(l^AokLr`lRb(f>Lig?fxsEUMM4U4+@$n8)L1<#7h`P;YadZQ*7Y zqM_@+`n@iCy5^jf;_UuWB;Y0`Ae(ZYfR@psG6$X!Qx3cT><-9&`5PQ3pXr$_KWyEX zEZTd8c*eYMtn5$tIg33v6@m*!#njI(Jwt3fiwe=>;*iGQw-&1FHcL{CvSYONH46wK zj4E1o1i-k_?2cPGho};ii&;@G zd-)PDsa(5Id!|Jv&@lwNL)>-R9Yb0u(#%zGHE@{jv>a4Vj=c?wu(FO2LEdm`CO@eJ zEd=y=NI>G>b){{ao9_BfG%XQNCP`TIus;1eCZ$8lLtKC|eftr><|!DadeaH31wkv9 zy&#kMe|fdp{xB4Gh9j^1P`Ogm`4~g{+aYw01}#R=xf=8cg3ivy&?_8>vIZTmp!PJ| zuQ0XO_>g@llkOo*gx_i)BZWrGqe1WWIX0}#pC`gmzQJ!T){*%Nd7kw$@C=S0e`|* z^^IyKj=jnc6Y}%8{{b5JH{tzs3CCj-?g@tGpuz!lRP(t~b^?#m=In?0@k z+pzHschvcFsKusyf9efjQ?9oOrf`b;O|M?+sCQSCsBp_m?;7!HPlbzBl+43#+y2D~ zu%BUro#Z70Ry?l8cae(f-LjBwV)*jYZD=#lY6BHA)H_FRJO z6y<-CX{$$WEH~#r!NrFSK}YIV79Ck_KPX<81@Kk&DydTGwu52%)Juu})C-+<;kO@u zOjsH-#-%C5IRG?w2#PjCy=+sce1pdY)bI?P>He4}>Gj34T=9rMN?(7>bcN!Hpeq)O zdSi)b$Q#MZqT9Ot@^qm#+eosOoD{tl)M_J$1VJkpoRoh|s5$icNolKzmFtlUCVk~@W7``_h zL2qg|Os(@T^2cSYn7o}f%pzB+V?9=5n3gN$PJ!UpEF$L&YYIyM1>>xtV^9@HVUD7} zh6S}ARuc{j*~wVU9DUNk%wg;<4ra66h43Y$?iDKwI{j`1bkzPp%s|&!%s>`Yeuh-k z4&a>gSR2^w&~2Q^8DU7qJl4j`5sEXRNmCrMTL$pz0br~9Q_ErK&mohMV1)E~*v91C zA~D9)M`lc{0zy~cEtSB=8^WGw0AX8DyF3LW3(#VyS+{q|6~nnLz$W`s-Qw9yIvQG= zx2_#-xd0KBFSfPiSnOxUbsX~qQ#pMC+3Sr5y@5c$B@m_%=E_@7HJN{q&3*(8jOt z3bKsx7sl)?!JFO_V8dv*Rrxr0*P`K;Rwdw*J{oReRRVhdCju(pwZaIeC4z2M0^{n> zhFe&bfL2*5wZWdmg0S%jW>}Sgy{llvs=k0KuGe6js|Z+?XtF=Go_L&xT9wwOvbU%# ztNOzB6vr~Aa$k{dRl%g&7YMlHE_asK=kkVpepfIMA*DD0pVya6(1!zp)T%T}wonnW zszc1GG^GCZim+83VpgSzf1th;UmM`J_lWk4gD@WfuD-9x%6$AB>^@LrX+8pe^p_$F z^AXTHjtVGvg99R5eXOVq^AQ+5elM~x9|7HZTy~r7Kp`ypN0G^V1Z=Q^5%XCCb$M@- zvB?p@d_B3`?Q$)G10%!-hztw6-(b;mMY zk*sLI6$wQ{AvY}^a>uCoXq2+LjX>t}3o{=LX-tn1*nECr=A(&Uu9p;F8{nrhMk@39 zMVgNQFU%BR!#Yw->)tWHz+h{z-A<=4YKN2{TNe^dO};nn{)q2?Fnsy z5a7UiO-6!}BD5utI8&RBG(VvY;9Z*uIQ3MSQY38tBOFFA{(}86lUdbbq`GHo-bK5q z{lf1(Xt?8W7p{|iFLXwW(cI$nc1_KXJ52^#baf=<++ zcl-#UB!iEj4G?sS1|1KeMphYsPwyLTPLBiliv6SY8Y2jP;lOB9jS+-bJ2)CAtpV(7 z0V7!iIR~N1V#_ZAWB<8pj7Z~luyOe#ym3CGu2Q!e-d}%@#x+J1A;^I}&x{6fYcwNC zoCCHooIr_~aU|?d`gMKWYZAzk;@@;js_izpmR0obOa^&CItNiQ`Vr>u8>e>=MuD4 z07xWO+Bq`8$F33>#@fju9?YU65bd6;Ia)DyK~hX8w^o9bNX(N`B7TFmGu~W9%1XnF zn;^7Fi_x*MoCw^pm!vjl1y<&FKyB6Se_d4>Rsn3$d{T;&xQEMsafPs4qb z5X&pJhNwOL9Q7DejVkWe@OCsArxkY-grEp5J}?e=Vyb8a;=J_mICF6~fY*6+oL<}w zpzpU3P+BO$)FolLt;R_|P4-kPioEEzo&JZlMRcP2Eev~6;5gWNoQ%k^+HM4W@m~-+ zM1#&k&_WIR8G;Vgpx+`WsqIG4-w>44b|dJePeN#s22DrM5gIgzpd&SCCj=d(LGuxG zv<97qpkp-XVgwzpL0g;{51pI)EC**8u$WsqyC8 zZUAq3dc3K&8-O4EYrMI(8^Cu-IIrynu=#(FmwuO=ZP3(E!!`lTHs`ACUMIr$M&sMc z^Tzp%x~lEg@Tyjtpw)I0gb)XA6F}y7Q95jfknriL6Rc~y0gkQegtOLm1JvUJRn&F^ z*z6l7Sk-m|j0rc2)+J;rGs7>dHUZRjPx@b-3;r)Au%lrp_YB7yLh=$`)s3LGn;>+K z27MYq=W5W-2uiBD5p*D?tU-4wD6?z{dh=#sw=%p* zv&%Zl?lee=cv_Sasp{6MkgDGPcZUTSZB>%b@ z{B^VZ>lX0WE%L8h!C$w^zkUb)`knmi_u#MJ%fD^|f88ekx*hy=`~RcvP2j62lE-mg zGMNMw79Tu#+++;`>Wl9_R8%C%lT{8mJXzUy%#*Ak$tD5BbypAp6-7Z;2)77cB&ew9 zDxk5OsGZV=A-~a#f`+a}E?8BMv>ZZAPa-OHZVa8GO4(|z32eeCIe?&*H^^Z@tt0DF3ndwP&Pt>vE9vZsf*r-#_n z!`#!u?CBBi=@ItyDEIUzd%B)`x}H7Vz&+i-o^IrxZe&k4aZfj~r<=K_o7vMX+|w=W z>9^d|Z`sqW+|#Y>=>m)PbOFBcfU6-W>hroPu8S>}lgS-+Wv!4W=X@=%%w8!^$yp_T zmAzV?oV`Y#mi>)9C3~&>bgqwEdx>guOab@mSVi=3VE#q3J?KiO4sP0lX)jht%v*__?-+?+jfZO&f#{hS)~ z!3z$ldHr5z?(t&yf9Rf!g8b$5^>2g8>rKfiY6EgR1J`EJW3O|yWte96&Qi!|hHQ9; z?Y6p<3fqO09kz=pJ8i$DRN5}3RM~z_*=74JrP?-H-fbHr@3B22@3oDUYi!TT`)uRn z{kHM)0ow%mpzS%i*7m%7$o7JK*fvoTC(Kx0ZEH$do}8Xm&39>HO)fO+vdh+ln~Fsy2L=yewOUwOD$2C6hLL2kd|jj1)bl zl;jja1U<5#=<(hK`MHlPMNmr){mYJG_@H1t~b$CyG!LyXHQh+kopgfNBRdYa%-8urCHx= z*6gPoa2JHPJ5N)iqpGzD1A0FpFrchq4A4(TmvO>mlr?NJ^lbc($i}h;un`rg>aCsg z7bZ8)KrZuhNt)24(YPj!X18cGuQ|GsNZ+BcG>xzcF{xZ^Z?a-lr;zrj`59sL>`5#Uc(F@$eVP5L=U0_uP?AP^`u5sJ@6p(y`-LNP-Wit^tl6n732grd9wLZL2j zdyp%r(*JZPLjPUh7$cS<7gA{P=}nA7s1oFxmXOc^ddMX~P4G|Ba|Dw`5~8SFN-}_1 zbh8EqRfOaK7+~&5!dU$C8ufP;N!9g$$@Xesz@>$9xD@2}ky|RS!9S6F2Bt~{qq@BU zps1e#!bNZ5TStI}or7NFYh>SoU-m74f{mA0!jR}lgduFF+T@6R;rveR~z)+KoZ-=%Sr zzH7|7?65V~x+K-`UDB?3%5B!A!j?w6sJ^kDFON(zxX*g_wka_*(Q_`$JK^ZenvMlk z-3f9#^(W_>>O9}8xLq_Ig&TSjAQk$pxNCGk(lj7?&fdC{0NG)1YV}jy&PJM6>ikes zMy9^3#TfN)Dea$J6B8~ycqikM;6|3w={P8Jk-&GI(c31|BtoKZ)bp)m+$N zl!FT;BKmsP-d@F6%MX-H)&qW^#zK6fXJzvRe0Za_(ev`rseBs~X1?EpF_XszVKE;5 zoDGw??P11e9tsk+N$_{0xzOpSAlgcpg0coo0jzn5EjJUElr7*xI%L7nmvDe5JqbUW zP2(FN^99+Du`-87#&%2g>(i-?5EhQ@wv6*R>K3>fvGGHo=z^lH#${1qgx>s^B6 zl{G-}jF{fPl;;ObHbTQeP}nq{pKP?|8A;i=N+Y!z#is9N^Y9l-w|v9gIe5DuoA10> z%A#+fFNV#Jzv>0uWEmu_=fdfxNi*<{$I5$&Gn;{b?k%6LdBN9?y;HjdBilRc0< zz3F~%nR5&ByN~c@`ZIBOT$dx#xm%#KE=Qzu$K~j3^dc_~vJv-zA5eutsDpcma|q)2 zC$#Y;qe>3=h%w4yL?F&q=dG~Efq{$Yf3Kl$V!h_yEm*Iz23Ri`V_`Or!eZ%dy0T#m zKGBi)lSZD2ZP>}%1}zy#Z9|HgZ9tPGVvzodh=It1^V}4o6pV;p(pnxry;a#JT9xt! zSQQhEe@4{!@`h+UnoE&Nr$FTr9hH`~Je8m7sBEE8i8&-fzFmO)sSa{84Kn$nrXhQz zC7&+nwCj3d;3c|&`v?PH(CJ<~Zs6-1lzl=NT-0Ik&Uzk$Pjwi?H4ID?5FhSkZhbgxLgxnN9e zM+M_UsmzYkC4KpM`-mc4hLvcclw^|1>oAu~q zHT3E0B&c|*NrRW=l&`>RN8k7aOnUR|xo#c41#|gI~5t!vL`d+e`-CwMTnPZKe@^r2wC$DFj)tzpu6V zxTATSf0?w=3+C&4v^G`s(0iiRh>sr5-FuC2^!POXfX4^wv~^0|zc&?}3Qcf~Lv1q* zwbr2dqi-(NC0C5-yui@;QrZPcP|Hhv)N=ifq`U5%!6y>fda~ViJxV0(C5Z$hinU!vlWU`^<<3dJ)^!T^(C3OijA(v zKP7!}5&&dCo4@B};gLR!{0g3Y zy=(>!^K3MqjvgQKsDMR7($bDdN@r&&mu0BbZrRfDx%CO7MCs?OA9b{a9J0Wc>-HH% zLr+uk5n~%Ye*%4VLrqKOse0c}Umu5+&m7wW3|q)_q8q<};_C^uU!35%f*cWhhRYcY zL}Ee35x^Hm`jvs~&@3s#8vGo>JVY>k~nLH_}pVGq`tdtf-*4AW@Qee{S*c zNZx>w;qlyp%$!JGUKCKdw;&e5mnX;mUxVzMNaW?_D+E%j4l5+f*V5eVl@c!LTqRjn zL*4iq35xl?k=9CYt&`fVmp-;^kSyp+SDPfuX34TevV1H3mb6u}+}?Vdv|Xx@ zEa+=hJEeA&uzI0vNtI;T1;(^mx^cI3DMxhz1>t{%CIkO1<7-`h$=N5Hi_|UsIC(IN zltQgDWNBb0$W(Hz-|>=5!bD~_e;7wChZ^9~5b$f-VDI=DVhCu@h`ZxnB_2pPe4eP& z;r05Wj%dsqclcsTB$SAFf_|r4WN-EVhP`__p^PGCZ&fFay?T9i9u?X9YtDXp-5jS* zML%fjxU&@vwHVz4UY=nRFs?Od?AQl+8)N`8e)0@m&}e8f>|ZnZpzd@lF5qH~{xFp_ z!q-EHZ{OG6f=zJwUC~G|;fOfnF^4zek2oTUkl*2P#gI9Od1B6(I6b@mH`BAf1IlgV z>Dkjkn;yMD-gHKsp5Jl~$T;p0bY%H*KJI|EW^(p487oS;v@C~Lg2hrTU6@oISZh$D znn(Fb!eO8wG0z|4!$25pN_MG?#0DLrfC;~aOm@?UcoU3#0Ha)enLM58sMT8vq##CLn(CO4?0H+WQ7PxLx=FFp!L`!j%;;;iz9hpC}WnxW4%}! zEfc(V&;u77;apT}C3k*_E3v&#g71L~Og_;o;=hdantC4|!$=7=CRHZ^>f8$ifesFuI@{U>8 zvq>#$1-F+e{&rhe6RT|{VVIo)Hv`>}y5r@1h{t5qJ zblUZ8_MXu>?ck8>5r6bY%^^3kZCQdR95Y>HTUU;4C`T?%$wY2S%B9jAo~MwUAH}v7 z?CraB>6DIdMeYmxV2MaxF@GzviR2BS<(*adYt#Fr(^;d#HO!=0OERRaXuD`#u1080>5|s za9Lajb)U(*kgsPnvfo<26d7d%{lp52lt^JADWZNREY8;5y4ezEx)x8$4l}h?`8#IGx0Izgp*V@LYU1X&U>G_(2IX{>+LxY>p zIOhXteAq}tce;m%K4Xry$3+I!UXDQnf11i63I6aKykFGqQqmja=o%oJi|w{<$R9>` z)8R2iwplf{Aumx6^ry+p))>kzMJC=PPt$#(ou_;?qkL$U32}?5Kb%@dxGAw5JMLrFmoX={!2gfX;b* z>cGg|$<&)Potm_5ykNYN{RwV$m zwH~aR|HNa3_vP8_4Qou#s%dVZ35Z9|^B{2QRESJ2{=%nDfkC+VKoGdu6Zql-t%Ss6 zwC8@FY1le6GmSHqMA*%2%ZZcge?MnWcMRIjEIxYAbL1Y@poQ2 zchKOkmgXt2p%%xpw3x-6+JxlwuB_K(G^ELi%|5LdZs;EUJ-RyvZm#c+frG+`VLO4c z2b=x9sA`Cpu}^L!GDbFpL=nrU0z?uDCgr6EXp;&-Flc$H)1PD2BS>XV6bIsD9+2r27FTCBU z>w8Lg`>lniVBZMlma3al$}NO5?~UZq!v04(kM_eaQ`%w0zSv$hd;NI!S5WpJ5|WQk z@iU!IgYQF{QtPKW{0H7Pz%+_ebol1!+9YftJFa|#yIjl#Y@N=NIO$1_gtKjk)4>zz zoJ<|mWzxm=nDadM>?65cAME7vqmI@_WsWZ!x%pEX+_P=4Q_IF&O2@RQ(tu^ZKhKa~ zDMJoX*=Jc%VFCuRO0L6T+gUbJn1C%T`+?d(c)n0~wq)06YEeb0+HT9Jk=Tu=hHe*L zoMjq-V;7h4;q|99T9Jr>eO)Nm3a4Y5O(B3bW4CULdSf0gw-GE{+bNW#%cb+})v{It zu#~9;Sn{{YzqGsrK9HfwxoP|gvN^eteE{1rffR~*bf_nIA5b)-Zkz}YP!sf}$xc1s zA6-dL^@EdWzlD5}vYQ#p9-7Bkwj=fHtjgq-Skim&B`Ma{oHl|zeLX*LQ2!THyr zT{5~3(Pi<-S*r(fONK(O@BVIGI^Et0nrS@j9eE;m*zjSbT{pt@jIQXD>v@q;_Ydf; z6cxJ;du)U-CINh%R=MSG~a9#`t zu~dmIHh-c?)sED)S&-DHdv6UCsxIO#ok1Wve8mJ}dfEn%o{d>Ag&QTCOV6t-xyGBJ z@s_M_vruC!J%x|AV#;_#!1c*(q-_nb^T1X6vWPv?dnUiKC1SaBx{bNbn<3adyQ}9=CH8o) zL_f9eufLK|iWDdW8~~b@7r#qkI>_FTtD*EbcE3cOyjQ{#u0@_AYO%&bUg!QwUiV9R zC5(tjPM0_HPHUGolisH@!mpQ=wl4IDu)Vb&%Yg;`6;M1CDR4W5A!nw|CKyc)*I4bX zjHC=KfT~8bu2Zk3U8jWiSk*0*{%(3gwmEOK&}wRLZiHQo96JH1wG zGPD`dLTmGbWLame(GF)a)0=!y*nep=M4hbu%CLeFN{`~gK1vCe;=DYP5)p>DzZ0eH zwQzUHhzKvor<0c!b(ZYikU6dwK5ysj*LKO#RR%Ea6h&p_^|P6F{ww@?m zNP|BUVd3V8H5z=gHobeSEZNA`mXq{y9kz>QREFeN^$vi3l%{v`l3=cO6aT@h9ZKZt zB>V0qvrI2^pwrJrd$gZHM3U2!cks|Ux9VY`bHw|OJ8Ye4DUbo|^^evgRlHcYv}t=< zMTYG??yWJh{uJV z=2lA&tJjkh)-}BHb|Ai(L7IwR`*grFtiv8H^QV@H*D2Yv;f0ho4hOEg#D~Epi z`!}9#dXb3zVSfG6&Zpxw^-8`dV;E_qdY_kd9=1QngzC^$2eWFk=I2bus~zOzH(Sz) z?Bk#OPiJX4d9fFwc;9RXjm|j&g!wO<5}i%T+QTI%QNcb z)cabguH=8Maj@s-(7|f6=&E-V8d4{3E_pr8lA_|xYz)_`{aX~s3BXu3uy5OEbYVo? zBQ?YV1ZSD1;3u=NfBefojdbBdDxn%ZM&6AR zc!vdDmAFjcYJBRbA`3XO6y&#tv$c7X05Yk8)Z4bcKuN9 zlSz(9-Ip8ar0-*r^BwH0QNh|sUXMyq$v2;@!@^|QGdxNx9`MH%N5tiHI=s$M+!1p6 z-Hu4q9}hZ1PG>BkEB@a3zbXE{*d7(O;^gl6_FD0`UNEv|5PV5ycSg9D)aHxipV-Qj zIB9EhRo=PR!zwj-|30hnCTq?nYj~6O?oHNSo2-A@W4))wde0u~pK7dsGISkZUC&x5 zHfyt&A~56H?vh~*o_`H9!mzg`cI|(F%A`7TSp3Dw|KTJr{`;_$X)F2D+GHalH&WAap2%NZi$&0K9w~qJUfiav+*XAAXv+1@taJj zgg@s48A+G@!QYjN(Spx(8hjS8T#OofnqmBT9mANGblY4WcMUkRW_;H^4?}iY^+!7Iu0l#YA_>Wn0!}T<~vC$mX?0nYGS@kq) zm!vhTgJxLx#U@K>6A=EXY3GRTKQ6RcolM$X0N$**8hFE2d$HkInKVqgnDudejcQV9 zqhGSdHL0hOl13X{${Jf=qdL~;*ZLvVG^UMytH06it7xOq+4VM>a5Zf-1{%TMo!{k4 z1mk{(CxpK!4*v=%fw&_GsvU9pff!=Y1^A=q>XK2Z>G=rp`Af}pWj-LKHF{gq$bS^>#rX*+-o<7+aEO^@8DPayjJ=( zTl5niI>Z%q;q&ioxo_RLVU7ZXI$27rU|3;6u@cu&Yi~AScwu2dQAzQ@qTFHVK&Aa^ z`lLreiQP*7V*tF$Q_$H*dnS3N#P1r_J2$^iL4I~Yo(^tKK@kJktzqraaL$G`)sSf= z&kwg=5bpj~xb@rN*6)N{zZ-6CHiM7**$m#Bn)GJaGOo#C*<|J>y&+s|RMUWqjqpyp zAdTCf=XcuC8M2)BWh9aa+wK_K?w7@ONM9Yc^O_%#jk1x&4m@kJ!^_ruyS`kI7oSs9 zd{8~0$zJX=bg!>MC&VUfOPR;9t#Sz&AHOEWBEk-pByQEN$ zbgwrV(&DiRT-(YLf%~7N%Z6G+V*+W(0tU%&SVNEdB_8)m1MWAN;7-bVIuL|zcxsMV z)?+eC54z)7p`#6Nw?8VJRDX*!-G{f^VTVo-)9&wtyT2RmZZ=)>mguHyLX)Gi-LJQ( z0}BR#rh@<1OEof)Xr3}CznE(J1CgS9&}Xv&IjDmbhF1|Oo3k?Q-0yXetXY)$<5A3lxnuBM}8!4)RRh4!)Q<1 z!DxRZHEE$ryHUpfjh*(=rLipB&h8%aU(-;bqJ7(g0 z#}UmjTXXdV;+UNf+T8ISX>$r3vqLB-7v-RIER_R#Z8c1Dg15@qbOT}^E}sB7SBo1S zy^T!ltanPeBMRCnTi$36q_sadZ08XeGH#AgUt!O{I~=fDWeqRP%Z)`!O!hR2S&%ML z`$h6xGRz{jsd2)xo<@4zQpoEbDT^RUcu33caE(U)VJ?^5!NuGxX}j7om)SI2ONK)V zuJc~oTzx_qhnrjz>va?cj{`58m96d%%@^o3^TSvdTKN zQeY%=;kbtyKWzUit=fFT9y{{~+9sWk&>2J356o5$xnBleFs= z()UBT>TSli32k`BqzR0fd0Z@E#pSPzr4L@C6<4a43XvKbDy4JA&*5rlkVteTA|X+c zqxFULh~^W+DEX%#e`KWXETaw8eN)lhzyvFwbbmNS)nv7lCvhub-Ky7kB}9s9Z;sOm zxPbC8CEtyvh-`9kaPvlM0{dZDDr^3avgZFRYyNau^U)T23k;#xy**8a-hhUXS3#l7ymH#h%rG%Tm7 zY~c4MQkH%M3vD_-E2pj@uju)@W<*fKMUldx=re$30I!-v0e&3*rHNUKiLcD%@?7?7 z1^ww?P*7slX~`7Y>67sHO>hmHP{Z@;Nxp{dkaXqjB|r0((@G7ezj(oVxU5v?&5GDP z_PVB*t?d~NT?h4G?k}ZamH?RR8W7-^LCKv#p?n%vqilVPS7*@{mzwPo!jQiyy3ge4# zYh2MOl$o7v!dG-&UX1P6V$;H{9!9%T{+TurOT*G8>sXkKXW?%g{EfGW3SZTfDm*#0 zYl8oiOXq4iVteNX1oSvMh)VZ;Ttzu?>%nqecIaRjJ59`Yri_{eRbCU zb=Co!tOJi*2c5Rwf5!U29_xd3)`#k>57${A*<>Aj-1_I!)<@4+hwQQbrOq0uvqtNz zu}#+aajSCLnmA*9Y>#zloi(@4`qw(^JKQ<9>vAVuxQ>WNO+qwL#fbE|02-^*I+pKIQCm*$tW zwzut9q!g0F1864EFF9*kY;OxWarKE>n1a5ZO=`@{u0{BWeq^c2_QlmJ!Zp&@;o}w> z;fPkarj%d4jaGO)v%=``jmgCY`w6ED*q1F}`^!|fa^y_GCY7H*v1qdb=CVbI>G}?7V-n}-R=Z%qf7t8f4 z9KLK{pem;k_5F@XZzkh<+5tSzx^!eX?^1DQHN=$g{?@sCH81{@gg|%mj{F!#Iv$~$ zWl2Nnu}PkcpWiPPPRYtuJjZU#=;?ifOe^mfRoZSubt0d_4w72Yd7q1rTtX}8cc-Qt zBbWP2Q!{vyu4=9$NzazSuFI3uW+sobS`GS-FyY60-yNNtZfqOZu(j_M|bLDw2#y&typ7-WrML`yS0y$L^A~Mn5|KZ zTy@!iWUo8k5K9Pf{%Ht5#`_-;Ahk6AWW@7e2E`Ly>c(y7)J*LG%V1!4fGgq{B!Mq zdG%Dq2uOWPkz(f}#8J+(QBZbM4W@_QMmi69i>De91x%Zh&GYn_)ch8%#$o$x!h;BqUP3s5avo5n@H=jnEiQ@;9x$r7L>ZQeZjj9!@VC64dAR_2 zFp3_FFVEDTxka%&h5T^Dt=0+qXiWsvZ6xadY)yZYrCiabjeYL_ImDSu3?grhPX3$T z%4P>=9vS8HyHa0X^`Pu?{(mJeXLx=L-Pg-VG;5oQ-*MD^qm#_OoMamGbM#W9{_^^r zcu!}E(d>65v;X{cZ;E?%#{SJ%;#5tC^JBMP-Y|QnZb{HV3vVEU;?K%EOxCEH<-A)g z_RhZPO_NLnkMTh*jg2k@;sHOpLiB@;ou`!XL#x{p)Jy2|o~A1(6>ZOO2NO|WA`o)~ z-Cn3KjCs*Dvr5$A4>^5am(QgrKA*jf-dGOG&;8qQ92~bwK`zDVhQS(P}l-xERLYd6L)xm0e?VILeY@dukX7b`tFCmQJ>o#gv1qeizp6n zG~jlG5`l=rA9Y3)x62dt#S{9z`=IYW=o|9H0&%AkM)SwK4sXx}eLX>+BajHf$VxmA z^2POi4?y1ou+Z@`JH7=~yOYV%+VFSs`tUJ%L-@G7F?>QckN)nV-)2oZ4WSawZZidc z{5DOCQN$oh#A}&v3R_&pNe!?F_x9Fgf1w+_zhEJ!0ccXOmo9jn9ai#Q`jzs>WM_jS z=W`MGl^}{dPLmdiL5i9splA*HnA4FJ4zuEhj8$xRU!MVxRyueb4r(}vqn!Cf)Ftfs zM|j$|(Lrjk=MQmxnlRDV*|eEazqO(F6z}|i_sOrEeK!WtmA!e%AVKooL~OpLVskV# zeR&l1jl>Tnj9jw7pb_=}DS{4mjltGT;vNqei(rGrp!n z)nH#9*r^5tk=qGycSR`|9a9s9uW%LswO*k^VwHnO;*U!i64+uh_~$FB#U9%(>75Q! zlir0t)jiMcPGJ9g1&;%ErGa8}R{RdLZA5924QGY~Uz$r{#wQMLA-?ltoLpIptu zhhz@9F+%0R&6$%Y&gYUjRM0DJH={7_Bn#vCAz#={L7o7{qEw0w=D4Zz&5tFe^O)s* zqjAu3rtMU8)#ub4exPI0E%b{QD8hnat|LR>AN%zAy3-%XpBDj4*8muK^T=9_kO~Nn z^aHG#F<(q>Kom?$PSs}48%NdBCcM<_usIR?jsW}Y(aX5`oY!;L@I*p%(Bc1+cfFNi z1x2Iy*6I_^)7hk>yVG8c?s92b4o~(mY1BIYdN4grElp{LEl3F4gTHHPejPW8S#%~a1~zGyZ%Q_6AOp5gWS z!Nv4A9f6P^Ihx>YMxF7HBd+-4ip%41d7~~g@fF;}Z-ORP0G2Dw@b$?ai0xe_ zY;xbKJ7$fn_9)CnB~=l~tVD_*zx9dX`MHo3gl%c^&j_grDW?AoJLW|tlvD|DQ^^McXU zq3k*>t*17*LdWNvqYH#!SItmR53X(EEg?g}65Dk8PfJT~;?taJB3YBH3{A4^!7I;$ zDZ>%9J9JX@v?f*dj9A?3_xhB8BkB%9)+FH$I-*KQfwe$U5{YO65+{LHGSaLu$?eWc z2iu-bJ|`hn_)%JxWY2)UL3hyab_A7R5V|XVN5~yZI6@I$K=CEqirbe^yPuWTSyA8D zZBuQi|1?`E3=c^Vrza8%Isz{6JiGy)*Aa}we9%AO^Z5cHr$6LrmCA;%Wy4RiEok$j zv<6U!hTN`*FCKKbLh%SXc;t12&>eyv_`hh}>w#2@mjiJ~2VyONh$sP<&+GR);!(r| zZz$@BxSbJ)D-j9CTyeKMT|lIQCB3Q z_&E?qbRaeW2)Emv@OVNoM<|58juZ^}9gzSK0)r=_&QK!a^0`|{DleB>X@3|x>IW7i z6h|DIIlOW3_ke{yhd-it+)pRPT?%->4p%(kK?y{UBLpcphc5tZ z1P9vV5BQKQSDVVRxS}@ep(WicHR1CzzEF+lN|$4dEBNMPfg?{9P}_kl2g$4&J-M~b z=tbwhVo%QRiTItt04P!@2rhik4-|k9IO3rIh;Yz_4&osSD$JERk#L0qPOswdDIstK zogq+bC&;ij0D6${ID_$kOYLs1%uXd3i#wHwLvaO=4n!b$h(tqUT*-fPeATC>WhIr zg7D1`iQowM=(HcN%)DH;Ii)$`Y5T%I%lpH1@`3OL`C#~>TpRvHJ`}zr9}fR29|`{^ z;|rEuyznh7B*IsQZ*f;I*F>UsClR{`t|el3E;Z#>&XK3%zsSZ{ePA`s>$-u!pFQF& z?kYxnQ9N_%=n&)Rwd&aI0^M{+K>%TO@H??+LZA}zIpb)tfwa8K<&G!(NHllVqno@z zY5Xv!n@7W=Q_Ta7wZD||%60L-b%l!5g3rwSNJ;JpCDVMnsW?CP{}P|+JDu5mmp8k- z>3e~hJ}w8$Ccnc|Z)ulQRA-*8xj^6xM&pv?vh| zIAjottHYYx+Zb$gMS_t8q<5U)FoeM8h=9lCNccmM5EzUESX^YLs_M75o@gxL@_>c% zxzQ$*8ypYtJ3zTSiZc-R!@?2aL73UwL_kS+l^{5NU>L#ufVDFe^+&;E2cil1S3Km3 zav;p?Z6f9jBs?LsP({Js`oReex?%P3pj)4VZokU~#!>@eW^d!pKm>eAuR}>75TS_E z5e<5RXeo<^oG>xb0JfV|I(r+1^oHLDYZmxe35ORPL2$ny>!pD2=MBcAK36P8`|lbb>JQ=PQvVZvK9zm4gsH_Z zPg56YnN-or-m)hchoVRxu{Pwwq+-=)qpEPWCA}&3O!)FUzPygS+o)l^a4^I08#0DE zB&x-RU4WB(-pLdE<701gy8zV7skC|M)n6>~ruhFVZK5A|*r|Dj!cz3wSjv{=(zmU& z=$sPMDoL{j6|vad|SD~kD4n?!d1rO`GvxNCTBUL3C}kn|R-vl_lykvFga=0R!|eg8On zSZ)b>Ou*1%RH$eu7gov4LHWgzghHDQRGuh-8lhN0JU9O_XdH(sb;!5U*Y`*AhARVy z7v?EfS{%{JbXGU#hg%C$W!%I(G>kX@WD~O&SsOOewE?do>Ipf$*wrzyBS|4OWk6s5 zDt$&n4>e(Bl%?YFye!EESvpYswzzL(o#;*BeKb5xyvd>rfs6ODHT_i6EGM1%eC( z0uZOuNBb_<_4PPo&QJ&(ai3E`$!>@aAmI>mfY%)WQecn7@1cFa!vx`#I}#;3LT9CKxV~$lZ&ZP$*zHn)N&w(>xnNwh#JUxT z1i@+W#{;+mg(i1s-}P2;q58g)mRx9jF8o63PvMEF=ff|i{v3WOwJtm<^+NdN)QjO) zQhy0gPQ4VKl4`CqjtOsZH{-!pqRyJXGn`p-^}{+0fv3_b0&2Lz5*V7sc9X84u@kt_ z7qr4=M}+Xb2*DVwx1cw>Cyhy=I~TmZR{V|M7$92@9-`^*{E1g)?M`bwnw0{Y5Kltr z=>~t&;r2OwATjXq?NCqw|HczY_+pW03_gvnZtfU$G#+(B-IB}W2>2i)<_$(5H|X>$ z4reIlas}e?s6T>t1ZgbF_f5q7v3M{LbaCK~w zQbbP#5rGs*LF|BFK@EaP(?CM;C>E+RG-kbN{yf!m> z-*_si`anT|2^mLM3B}`X=o)gXaRA+`hNDSOoc5Jv6zo-q8i3dCOT**=KdJ%)?FE0O z{lRo1;0bt>w683qA-~t341%2bQb@jmV(v%+Cii;0YBZUE*or?u`^qxv0qqg+rM*BL zRPGf_fe!!)G`BAdUO*DUaZxX$l`Ny6NfMqQ)P_N90wS0y@;v;YAW~2vmQF|2usak+z$Jmtd^qnPT)voBT+a?r75m?d=n69A*Pipr2|hnBFXrO0A1W zX|A=I{?+Y_;|ud&&O7?dd7z(1+NXA7W*&}V`FL{eq$Fs-F|6(Q6=2Od&`0>MJ_34I z)-Ha%?+W%+%cWAE=E_eN3At3GCT}~){QM17=GMQMpTD8BYsICAaq3UAFDdCp+E;a8 zdyTf!QLwvTNo7bALM`;>>rBXU-kgQpqd15%Bwt!caQo}}MTUH-wpHqrd(UH&Yk@V2 z_VmG-8I(98#9-PomqvuvS+Wn}CuNKj8`D!tm1-$uO0ZvSn{E|S$j06Go$Dz-jRw7; zCGsfNE4MBZu22vG>@bf4s6Fr__WiM8k&tX9dht4Xbd!Hm>;H2*^Xq6tIsF$wZ_s2E#p|wJi^La#`dmvD zQfGdpv<*nBCuQJudXXtseEyUl_y>JprmQGTqwQZ(s5Y~wb=at{^P^HVNuk>2HjQxT zBj@xKyj`*P1h2IIW9(w@`}yARiHB=12N%sw>ztGK5TBGgD)Gjs+l&XgD0}>3TSvcc z)s-6sd9?i>K1sPzaIg3)l?EnBMhm7f=LL@}o%AK+5NcGtKJbj9Dn$Mu z+Y5%2Url?Hp_a)*_JzqzWO+<&FpaY48N&UP#<}paw5R`^uKF znuffb2dwHyDh?KT*q?+Fy9k&rQAjjHB~}PRsI;$a8G}t7j>o~(1%n6qe~>4NrXlO? z2cK3A#=(b8L}_2yGEVuyQw)JooC-p&IFJm1RUP$$2bu<#HwCt)>W$F8vSpm`g`y!u zCJ(p*;Jw1+aR`gMlaQN(7 z5Z{hR6Oi3afV&-n0J#@3X{4`g8S~7%r56|7ouK^NF;RKW@whVA@h|0h$0TK*W3n>e zF-3X7F;!XMn5MkwU|Xin())Fm1_tn`9&Z%f46g@={lVOirUO2A5d3&=JQNQ5gUN!k z$Js4=v&ZKh$o>i|vhjAy1Us0k6YY=NE&sAxzRrH5^(6bxd6VsyDR#^L?BnN7wOgjy z$*Zcu&iBQgWb$Wou?6~sve1z$pm^oo6h$rK1<~E(yh(Y*b>lu>%td#p&fAiI1^1@) zQAyf9x}B3YlsxvNf>03QN2`(cKy_&{lya*+@OPl}G#>UO&}wWmixq)927|z=D4_v; zA-NEbf?%^}JI@eh!4h+Vi<@O>f00`i&&(Y~^@ zfwLJ^eUTur8@PgjR2&L20-zz(NCJ4s3u&K}m-dyVEfj=+nLmgcqYQcoa@Ywkq~eo) z@G>LOB)GwBURm0L09g>w1V~W^8~jRl+zYX>2n2f|uLP3rQ)ypW+Wg*lAQ}euHR3@| zA!NMWkpP69P!Wqi;`4ZYT5N2aiL|Btku>=22{**{5WW!kflPG@v|1{FYJof{HA4Fu z{7}fMNB!V|sYwqi1j30VKspsnc_H}%3QuM8%F@QG@J)|#(l%Xr$?>GJ$nli2*fB#{ z;+UzFJ7y^rj@e43<7uVJF-LhBN!u8^C~a5!rAUmN|Lc7JY|e+w6#(cyT$cr0QQQ%* z4n{o4!}LIwD}W+?ktFECbTaHor$b(d17amaQ%gdq61>l#A66pnL1h`?a1=6&5XAF= z^7BLPI+XB}17JqhO~PgXIjFQ7;uf$`s8B)xwN6mx19B4$r9p}L!nCim4dht z$Rq75vo0h8)i}go+@PN!ofh!LVO|d;_QD<%1p%=Mu)Z?urhOit3e{HbWB^iuAgW;q zRr;WgDdkT@VABH1v%WIxhCy6{5l|7S6hx8(NYdgd;N)P+18Wq9Xj33b`^v2AQ-cW= z6%#;A6;*%178&(I1R($+*CUdVEcKlnZaXhEgI_4^M zj^~wSj(N%}j`_-R#|z4<4)g59*feWJ5*arTCVz}FIgTo5FJ1F; z;tlB56tZ@61!Q{m*2Mrt8?A-bqvAUQ)2&NL3*Knllz$<5M-e6bNID`!@H#Suhey0@ zgu?v%KY7O(Qf$X9+G847SKwd84U5GT8;X8NaCJLtNwe247&9pGzC5*ok-|{57l3rS zKaElyNxup?b@(fp02>LSiQaHrl{V+ke#_=8yEAj5;^w?SdCj2*6e#U3d%{>V&eJX2 z-=u0iKu|o;mnXb-GElY=YI{*;&@L4@hrUrj4{)5SCNPt*J~BLvxE*1*5g$c!?I~&_ z?OP~v{IxC=xr-hUIR+3*@Q97Qn;^CiNB$uYlw;tkiXDsP8)$&3{QP4sOIs4AT8Go$ z=-E!{5bJ;*<^ZLxHpOzJJ^7UGni$YHSjxvY@X1YqO=hyVj&|=zKD{p-owGPqiB~4! zT*P;fQjt{6{3fPqG^P<~Thg0nntgvD(@^(Qr{)BXnkb+mu0+=X0?RD2$m{89y+n99 z6(0}%Cr|OoS24!3%&vyDqHHK8g<8vJk%_gTv zWS39{tSN8i&g!#wD`T@mz*xdCkx$k0Chg%@b5rQLp|kmL3Ib4^WSTySW++kE7tGKB zMA|&ZK*H*)d8Xa>$1ttycH<)|`n#B>uc+X+08jm*t-P@eYsWSg`k?KLigsZ-VBVL< z{0EBpcKQx?j)6VyxQCaX?SHJwHJTY8%;OiH*baXtTrrh$1&)Pjwgb-=BL?ehPmV#M z@x%16(0sl--Rg~-@0#%f^RaD>g3IYB!8%mHy0bR=0qgq`+P!|+691$QFAu&7xtnVJlA$wu2dK4xMv&{e;A zs(7QFJo(ycN?t@npfo zc|>~?1cqEIAW)G30yx{lX8CY)gt35LV*5R?v~I2>~GBM_nT zd!hUo#mgX4oK6P(l9%-PZ}F03D`f`VD2SJ|PNx`YK?a>Mcw4Iz1%{yIRTU?b2711G&CxpW7J`{F}2A~)_3B}l| z8ufbuYBUgldTw!TxBZs2l?{>GtHiZ^NqNKJy6jYT9Db%R!rqTHAz}S_oVoS^m}_fe zi?F#y?z5B#Ws4C)WiPeqyON*;&-j9_{oA&ME?38BBn@cZ zA{z1}!Xb%LTYn3sWOM1#r$tIFR^D{ryU7Jvu}-2Zij>U`Ti*1dr*nSk(UgOZp=FZ4 zK*EJ@ViuOEYc(Bqn>Ot1qB%Lg_Sl(&PS9i$s732)PWqjU^wqY_1+H$y9M9C8=U+ZF z;e*sgj1T7Iegu5*acqf_WkqH?knS;_bh9QC9QWZg2=e(%8KF}H&j_U6Ktk%4+bB{s zP?~E3*SnoKxYhw&pTyS35M0*6?0tOGv(DLfLzT(i`9=O&Z0|G$)4!bu6Wz8Xjl1w( zGVT}R9*N^00Rkxg_3_07*bOlxPFt)Nli_~8j}6D~qv+kL+3<4}r~1y~6s!^OFB#yd z(i2rw0CBq$!oE!jd(>vH!Ai|_M@DSoL)zks^E>&wdbR&K)r*!abRdwTMQ0j1_%yaL zR<4+%&|`;=!W#u9#CkL?5UV0XVnMM3M~nadjWXE*kQ^KY5MUkGSq}nia%_k-!ziyd z^1vFWDI7?rL07(*AoG!kOy%!h`3JwO(8~ic8wPoNHg+NSY^H1oR>1lmJghag{8F|9 zcu6N$p2nik&Ic^YxKE%!m##YZRVbATM64qb zPY?9i0e$gu z49kCWEx(KH`+d6@b{Pd6V@GwD5gS=6i=N9th=S`VA-UooRF@;}slpD4yfvJ68E3kD z4qL;Q1s`=Fj|IZiT-z3BC%+?8ZxM<;QIY4_Qn614yoDiV_ zyQd)4uDb;YyAUb6@<9yKDdUAqj7claA~~6vQS4>7>^Xf`Y)OORKVxt_m_(@k>jBvDo1`%IV0g-(hR>MA7V=pL;as$X9@7 za$qr&Y$mft1(WKgDZDkh@Ap}w_+=0BE(m$obS_ilTeSt({N_%7A{;UKhYGIJRr8Ht z$wIs~SxJ{{H|!?pt@CViO5fUtQo0)7PjO7zE^73p!frJK;^AK^^wQSRth9BhMTVrv zM5O zf!te6f!xiWb>qj0JxW2?VEqDvxk|7iE`CJ!u*MaOAhxko>gA?eXelc{`fbDM=*XKw zbZ|N{=<1beUb9%c5M11nKXb989_lnPMh|f zM`CVvrCz-XrMet|>;FOk%=$W(J+IXXeCbk-K{Jf5>a(Fm_3=(D8 zuiLES^RiCh$Enf1j{qk?*uOn^9BXWQM>1OutFAkE0JD}60L!uJq7io<)t~;lgnLvH z0?!gG*`w)Npp~fPfg#1ZjG*mom0V5j4-%kvk79u47!*X$=Xv$F@BgFz0D&$1Of+u{0qaDMJrJa?zbhfLCl$%0;s#d0G|Gk7eS<|;?__dTrIYwp0TSbvPL@U*yr(xMzI z5FF2bMFMCNPiUfI1)v-yRCXFc#cGakI!1t*I<-;-PkpkZlTinCH&q^!jl~U{%_Fl*D+24zdk_%&`DoK%u{Xo-^xJ z7F4&mocEHm#kZBv2UrWhbE!Sk@T^)<+of8!jro>p#k$M+w&N@KIR-!Mc})F*`#kn1 zz6UBN4oNaheTbign#xZDeWIGbJ1&dx|a+{_v@1^>sgBK+bLC3 zXvjY9GwF{X=~QWUvIJ)hVGx?M{so zZWRgrrp3&F>X|S3Ab->|#MSEN!NqEscuRuoO#VNwPZc~ijLPH45?S?_c$w&=6n*=IniD3vSu`a{IOXQoUEaM{z)2&jMGd* zqr^7TuvvX^>h>~kp0vkr7(62c%@t@yKxa(mOolcS(vw1g<&<#l8yxQ)1KyhmBG_Qu z@sn{u?lF4;(Jvz5GMK*QZqYo$jNS_UsogOT)f52t61r z29aHM43X<}ojfip;N!9a{w_zN6y#4Wb)C_tWY8dpCBr}^rLMfP2f2S5K;015L48v> z^DQOoZ6#}klC`&0*1lF*`&(tLRI*mVf40whN6A{o zXWFfWIU}+;>#ftdPv_GXyi2hqzY{7EFNf@aXa)HnqE^r$8*`FHqh`a?m4-`|R|!sf z`B*(HhHA#Z=(&wIdXls@tsHw@xP)AWdqn%C&E5-zom~d<={$6{ZjAl}1=YI)lFp5d|pGGrqr@iF*H3>pOWB^1X{D;|drp@P$Nk;L)C@8FKe z1WKh3ln+{(wfJVrQtqL3vleGQL0f#C_YJ5%Aan`O_LeDx&=pu8LBPq?S%aAn^0zbC zC)4SaYn7EPO(?qU5=K$6kjW&4^2vBE9kd&$4~$^Z?kzbAKOv40E+l_zq3n|G1jC=F zRdLmF2uZSOF@SG+lM1z_I9$%#2hk_eX;49n(HoS~>NOPC50!S!wE1~0*CxlX`Gj8J zJ?`@VkH>97>9UDjvg%u)^ugF6yefDfx`fw)-(N~Ff)Xk%$E`l(1t4TA7K-`kXt7O8_5^eH%Lx`xqw^p|17--?YmGH&s#O`R#8{ zeiwG{Cf&ba!?|S4?5);1E!!C3Hw?>UvZlvii=UPI zZOmf6GUL1ID>JD$f^AB+DDTomfr3vxQ)hssXCZ}Un-w4Kz%A;j61@Hb@_8eA^chhA zBJ2m~``umeuNAK>)g$cas3kU#1V|Tj)eR(6VwvUYeX5cw{6A!C#Q)t-`#U4CVihq0 zUHeYaD`LKj)suQGdGGVhq}=?rt*Vf1WgJm9TtaE~x%Jm?~+`TSyxjT(%1uwnaE<%B3;aCEFiJ;-5}!%DO2?oIuZLmh6VDVFk0JUGTJA2 zKJ8(3*_H_Um@PpoIVTsRib?Y&|ID!DSZc+IT{lx&HCo$Q3v>7II^gVfyD6=N%FBlQ zv-!%)4~)YOj?-bAm;fHMtfTZDmmr^4+U!jjW44Z5tAf6Cko`PIaxHrGr!D$?c#c_v zJ4$E+^@DSOq%wYuH`COM-<54 zFCWZ*|I#r21H$*IHu?KP;rm`g|FVbp@B0kjH*w$bekc+1VR=2|7VkeoTO6>q!9vA- zTrrIDlD_07969bWog*#QLdR}?#agv}_HHwdY|L*(ITFjNIOL_Hcv*$r?$_+BHl|im zuhEPGNT_!ZUkrxL>I`=Hx10&yk^GIN`H(Q*dE>|^jW%7HW!AfwN?wCdEu0I(J_kSD zxT(%2e=~}S)9oD3gbnH!HDNns`GnH_xk=>nv)N>~W8BTPT0Koy|2u7FE$XJ5sei7) zT~F!if0yYH|C+(8e;|syx@)LFH#Q@W++Y{YGT8>W@3+q8w*iwCX!{po1u8OF0c|tk zCK>ZAznKV@I_7__>09$nHWhItAA5;s)JDifZX0Xnh5FN3sr;E3A1sUT6 zH5nPpaji<$=tA@#n^}uT-!l^;uEGBIbs^eoIz-F0ybzhSc>hBa$>6?+KQb z^WIcYL-$(S*gSI+Fg?rE>gPuJ(M?DB3Sc*D@$OZ$#kW>$H%u-P8|=5;(~~sWh)U-6 zSnec}hkup!B=o7WHIVZH9q_{sQm$vv`JD!+We^>~uly?V9HVbxbHMj+Z1VSYx3llA ziT|%ha5H+bc)bCa)^{*iu>^4+FX&st9)YF2WWtkur`Cw?(Bl@L(ors)R>Qr+DrhUN z)i<+w4${;B_qk~)gHn7KRcvNkZO$L8!9m*@8~L>(Ys-D#C4AphEPo%iiG9a`XhE(f zPuBy{vvQB2YB`XrONmV3UvsEjZJ;qcSI1;9;SEO89(TkSOt=F9zt0_w1Ox7XnvRE} zfhf9`4?RA#QF?r6toEXoOsqDC7>MXutqsbD+WyZqx$iJtT75~3BHMm;6?gUvhf$&e zx-$s6KSCJgy%r>lV!|SC{i&9F8-vAK1j1|$=&_cKu_?urkv3A8hj*;yuHA1Q>S-L* zYjatVw*dKxr)gI0r&yhZQjkqGvRf@mjBG}Tlc(_*Ds^k{kM%MC5#1y7a8BD*x%HRTb7Vmv;P%XO>gp`I7 zHN>X)#nyLXtx*ke->r|c?^uU)=2`4lS~jo)bcl9X0$uqjk1>848w2NE1^Ta^&*xn$ zY}xPhcr^ztf=O0z_yR5~*kId^PlTbfL8L0Sh+zI}S*=(VYhp&fCYsR|8JN-LOK|?P zbP0ZiCD0U)OsL0iq$!|j#p7FQFqlNQs;cgUFOl#h zyuM^4j&D`n$X%y7mR^aOh(>*>bj0lmM?t};@t`~552ny-#jt55Rew4hpnczx`g#(H zR6Gz-(QO7n?Pbll8u7a$K^P&PjE56m*7t3xFM2vO6bh!@DRkUF;8zpwIJ!kP4ZNNR%zcATwipZW;CcK-(RG^1kT;1gqIQSl_$8D;0!m6H_4UTQfr;g8+jgBvrMChWPGdsu=n0TjtT3b9EjaEy>ET zM{9-00Ze2?d5Osi%0D*R4#q~{Ezw$NU(Gjd-DW{1Be< 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�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 H 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 z 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∾>^iK!Punkc;5$ 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%0Ay%ox%e-0p%cGJYWicNO$ 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�C_!Pe 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

~U+EbF;u9|5~CUH#uWJC8B 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%0DXVgf0sF(=G;Af%`w4+%GxZQSk$o&D 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�Iio=)3UsYj$3{{Vb!9Mz`gJ3q>1tTik**^-SENTf9Aj@0GEP*TI3gTQ+ z|B2b|%V!{OKGU;d<{wsv zdCv9}d#y8j8sEDVN&ZG3E6Sx$*WVs75ILqLQYst6AJE$MP=Yz$*}@!4vrd;!|UFZ47m z@NIH8b(5mZv*3+F=K409H z!;H8yQ0K+8cpLFuWBDy!>?Rf$j-0lI#MaV*TNOg{0V~9GD8wvHsdo_+VwR>5+RT0# z?3MAh)#NkY7sH{=TI_7L&dz3$WNI!HrGfvz0+Qt-Y>?ElV(T||f5@^r1G2ga>bn@S zy2+=+M|90qpU$qi)_UI#Psi_s(<7QzsbutJsmz2_N+FdpNTt+gvpAK1PT)|v3#r@- zzmIM}w0DAGmuyq98E7iT#sI#0-gF(#S@hJ3RTp}hJ73ET0ivk5%iQ@|;~>%7uU^mM z8*L*Q)kG!MWN;*Y0407Ho)+th zzU=$0E*Z|2q7!36f_wH1rhd~WA<^=|kRfz>@JG>cNftU$m_|_P!t^ibeB<}vk0hp& zj`V+a>e7)0hlomBJcT3eQz-4T@Eoh7mpd8+_N;aP8c;YXm8_{*1iSz0dkj_TKgf8wT?Su;R>v;v9nF9ERc?@;Tz8 z2@ZkLu3fiw?L&fJBSW2CkYs0~0v--)HnHamX6tjUjui98Y@1@P45D%sI7;cK9&XE3 znAH``?g}!yf;nBmm7wYPwV)aJji8zM&7fJWAIi%e$O%bu&?ublpTs8azbxiY+u6$-)6i8&(vSQ#hm}_V!i-xK#;%lHtIdT_oAcm!`ZUz$JWZo*;gKuQ-UY~6ces>bVv77G zXgGHzu(f$t?N4albwE8|b5OlNBUa&AwnBD`Rv@yhGt%80{RNpQ-%A!EzKdMabfUGW zx}sX<>ML8nKXzW6jq$62^EHb!nq()gpXrhlEzyIi#WMTHeZI-DxycgfCM8%qKs}1O zTd0#7mjR2|z8Dj?W;uwUtwxc8>g@$l;_-*J-hMKi0YfJF z>hO7$AC;-jajoDQq%fwEZR)fB>wFgITR-Zojb|mvhLT){l3ei#x#|NK=fPzkjoj8h zQd0r8I}}iD`UrK0+tds7ORcCMs6ebQL9A2jZnis6?5i682{LGwKIctJPXa{Hr#3yU z^Vz0ueGvPjO~S=c!s}4N8$Kb;KDp3V*Tpy6H-5$rsL1-W1se)$9o}}pm-%2DTd-X7 zj#zU}%jGv`|37-s@bv^%m>d|C8kp%GvMq31AOO{(dbkkG z4Roz4_&>k03XXMgZGZ|s78n8=0*?oZd04rS^*?$H?z4Zh)mvR$FTm9&R zo-sOG*!5E5AAuhpj74oaS3g-s4{O$W%wdD?k3TTqwQjkTr?#rySASz!{K>`r5@hk5 zd&uR$D^R$i?w3M%ej!+3qY-KHgzs`@Xt#WV?aZu{L3C5IrFs9u133=f25Jt^= ztuz0{@9dxMhJV@u|MZbh$YUS!>ZleUPFHTzag9q(wyi54XB*&fRk$)4sd$NAE9MF3 zmhxjw8z!;EuBPk5SYv%UHKbK%sTs)#Q|0lFi|Z4gDvzfy8a?rO2G?utme9_y8g8PO zYg=FX9M4wW*~Rrathz@CcAL-!JDkr8i)I(0aWO_o8}pV7)n#Qt#IBWA`C^ zF2v`Oc$f!b6tvXk`cLPvBNgX%o}a>+662%epsC}NqHUdLft|8kR@jua0xGKqrZmuD4;0~LSe!~yR1kJz**c?CZh zWx#cgKd{T+jv%{ymgo7|b{}>^#&yc)%Tf2SPrqN^dWBcn3YSW@_$-w;sM4B;s;tu= z(9_#W-0%DI*;as+sIcCn0z|9%d=09mUVlVS%>cQd&!Nv4JqBr=_0>la>&u{zE@N0< zD>C@mv<{Iysz0QsCNu&>@Os;XW}MGrIty#PL((nolb8w%B}Ecy++V=2FrtX5umMUk zksSAncuSkNINm~UowZQj;>ZJ4xi$}+q`N*ytS1i46MEG@MYqT&{*6PN-Yk34D)G)s zY{Vz)ZVY0FngY>XcOq?{&`)KCngt$nSu2l3-=%IRDCIaJIC+_EU2&?ed60+@^Zw2e zg5Cpr&I&<|tGJZE*oQbfsn4-FIv3L60D_#-_oN(@`?V5%#c0kcR}zT7`k>8~Ci*n! z>6hjNqPZ`(ZJg(M!fku8!OB>HB?~dQ2TM8IdOpcjhZ&NMkgE&_&X)K#t1AA+n+SH@ zJHy4VwxTv=()hA0M6yiRk(c<+4tHTaL%`>#t4O(L^+(A^F(}A9R=wJ5%=fNtXDLbC zMacQD;9eO#T?fRvydEq0UEXb+-o6$JdeJ5*y<7IjH*(OykIQ!XLpJz7(ctIEhAVu6ph*` zqf9rBuge}tm$PAlNuFmPoNW_aTC-)voZv5}?tFo|JH!H@d5n=+;2%aOS-u*YJY;C{ z*U`y?-nIQRct~Ob%t=fh5o}Egj!#GqPO>Bi$0j6_zyA>~2CymC)U8|JT9T5J;P{68 z2$Q9QzmBuOih~CZvJCtwI5{DBaP&`>;3SxG4Kt{tlY>Vj3=JL>Jq-S8h-IKP)(R7; zql1S<$5~@w()VCEpp7QSOTh`T!F^y3xb=sjiS#eXVaL~T(aDgH!4xyegCKVdN02NJ z-7|z5K!gOdf6_DLgZL4BzK#fK$0l*`&C;$NT4fliTWPg-fh1)y+mBwfxd0W2xVUf? zgTputMPS@-ISqyM0A>eR&?Y0)EXAH4E+s0KrYQQYKoI96cg<0A#{qq0{|gU4t!2NpPeJe?2gID3pNYG@4{PaRh})2p%xh z8b`8=^gte0NEn(7f0L9DHusbS1lf0`s+WbHZopX6e|g=?nRe^RHJK$GHTZ zdkWc~(atDFo9Xg{2{w+@CID42<|Sp_144~y-(X72Z}u;Ny`W-fNt$DFR2U25jo;K$CxIh(wq z&1LdxPU2BTc($Z6yc-(URtgC=f648i?U^6_wc}2Oi|g!hmZO)gVcC+Zuq9M>lV&gf9)5uneUSJ=lG88bw|C?hyp`V} z^ZzFvIuln^J537q@;I;^ee-I&+HT!uX1*=-tbw7&qYslxDRAwS{-re9g(i)egUD;U>%u^6sZ+(`} zUvJHGRWkizIzQY#MwGK9gn4+xUUS7`P;`8%Kf&~wMIH;-sP}ye^Zi}7r<4iAHCn(6$ae@%KxU#IE5Q2h zw)j3y=hVLQ3rlh|bmQoc;Cg35B7J_+{!WFw)i!Ich1LxE1ik#oRm`MG++l#rVLx!h z57hhFI#4b+ewuv;%KhGMX6qd&7khservnwW#=Glz-M}3Jbpx%wWSaUmdyU{`+|6}k zKz_icfNL1o7*HG_X2-ww;Pzhhz|HQKz?*}ZTLSTF%Qg$!KXc{zX(6|NrYZ5SR$Dl@ zFXsg=d+oVpIqt!^xPu6X(XK2SO60k0Wt~N4d;)aP3Krdk*FTFn)+=lHj+2mvC@PQ&ct~Ao3#9XWZs@sTjI~yc%jZ38VQid^3bq>rH*)4P6^$~S_0P5iTLJ9a z8V3^#CYG@@vwQGk85I#H@B`JLLPpX%1QQX(H220@zUJ;?ZQ&Bix&MbZ59v9xZQr9) zmyS-|Iuxb$ zCKqzMlRE?x54rVp-NTy}HTc1OG%?q1K~<3xj#awll6*Mrv%MrDsP*`MZs7c%TU@Zm z<#da`2z^HuFL>W(@d>&DW_^sSt+hv5??$-Tua5JUNTH!7@@>Aoh%wY^xN!Z{3${$n zu0KcpFG1rDl{}`WP05pV>#btLy_~iD;oe$TW@oZesN~aU?dP7{@B6Me?zy$zg9ha7$g>nVECdR~9b)7-G9ihzK$T>MWH+;EdUif@!*PO~3RIIFwoZpKBbVFHHe-Ke zW}7Z`;oB`~KCRAom%PKwcQ*#Oy114HYz#OJGmOduDgr2hPw=?h^CQFMY?yqDwt}f- zV=kkE%h4`HHk|o-3T_CWHKZ^54DTuG%$ofT4s#3m`d3r>hc2~=?^1vHopGu01}1@q zb$9{t{VhhA`1* zynz<2Sn%TCEC!TAC6Sb<>1WRbs4cU&Rpl_Nhb4T_YqJ?piJD|QTTj1cCP00KP}Cks ziJGpeRM4v+P_~{qw!*4Gfc(cCq=rcb`i)#MRQh~`%Fcg%PZAOgQnue4^EsR@9bhY2^W4F0PdUo=tsFj?epNghOuL4Ql z$z{d<(gUAiz-Ai81c+p?jEH9!J@^}|Vpnnat>-sB4STV?fV#(0mijjo_1T7$08wP) zG8XwQh0HXhiX(gGvB>@ua*m<4jVRJ{6^k@d$oYo7;>c~QS!5K2TwvHIj>Oin$XE)w z&=GQ30gJR!$VGZO>EHaKlW*O4OW&dm=i~N~FE;dY{qwq;ytm>D*STmD~!mvZ3 zE}r7LX73tw@l=rx&*%mwccZ&x0mb!I+{U$l2_KvJpqteUXgUnC>wIzywl*(7y40Z7 zoNH(rL@%;z_E^Nu-zM*8z87F_E2zrYTmim>caVhSKDVb(xTb?B64R|t^ui^96MHF{ zajl?po_~nD^SfL^k8b$fEE~e@8{qD+rYAH02)D$dBS{}5C0Pa!h#T<{OtD}#-9AW8 zPP7gfnr!LRu50`D?K*Vq)UHFgXb{$}r#;|rBJHeXT zb$GjLr%urwV!Ou<7-)&^+Obo&nAi>-x_9f`F|>oFgT>O#(!Rrh&K){->8R=KnB>=q z2{A(lCbLvH!%a=7<3Ib>njB{l{i6QKn{Z*TS$+RYwW zEQ@;gQo70wnA>=&vkREw{`nVQe)aWN--PSFjfnj2`+oiP2BXOw6+K|!M?F98`AN@D zdyd3LVI`8DrIK0Ulkq+m@ib|bgs7Gf8{7-AZIbPh8cFyL$z=DPl0s~k1luja_DD8) z)=KtD_DTAj$1mVRhy5~a_}lNcAEEs9U;qB?KfjO0#$YK}DmE5N!^UCbv2<(#HW8bI zWnh!BDcDqO8a5r9fz8BbVY9JJYz{UTn}^NE7GMjpMOYS=jqR6A38|Az52<&Z@cu-6 zM#wdfiSJLv3$bbVbbJOr6Q708#xwCb_*{G*J|ACzFT@w&S$HMEYD#XDIFypEgd6Gk)}$=O4Fp{ zq?hpV(sXHy*CVe9(uvYZQX)e-Svo~JRXR;dOqb4(&Xf|fq{M7#y+@{$m?I_TN{M+= zV!m`n$PH+$1yW)m{O2O6HcOfWicUnX5HT_Meru9U8l=1W&g*GP%A z(sj}T>3V6Qv}cj@s`~~hu~E87S}YAOk=}4Gl@do>i83j%SxRh?66I2&LP}IhiLFwi zN=j5qiEUD1yOgMr5<8^CPARcVO6->Ik=9Cw?UfSyr2D0H(gV_i(nHe2(kUTFV5yf9 zN2P^WgLK$2_~W>gI3Xp-`zudMA4yKZ-!#JVz_SoL4S$}2WvhfZD{YdVga14)B`!#b zi_%Nd%hD^-tJ3z@q}Qc4q|MTs(p%Eou-uW}mEM!ymp+g_l(tA8Ngqp}NS{idNuNtc z%0|gX%0|lyu`#fu$WmovWofc;GGe?eT{b~BQ8r0NWXLAVrpTtsrpbuuGJ<@`g}fGF zg-4#p3>h&~*5ENqHd}VZbyf&@K|p=L?2vkO?wbo_*g_dG+9l`BEZLNhY*_Ys6k>~I zd$AnZ=+GrHVyTQ+2LE2j2BCc8Libk#cO5e6)Owd{~OSSE`&CEAMq3I@nEE(&UBMIQe*ax_rX>4X#r{Cdj9R zOq5R!nIzw-&XA{sPLX3%<*A|5wQ2u6&++zI=gvp?r}%3;uDo zyt!A7JUz6|<*a|Me2IK1EX!b74$BHy^5hdjSILQG7?BT2u9g#P;E%PitdrmDwO)=D z%5U_#>v_+!NKR~!58Ei;Brlc|C32z^LdxWuY&k6Nb41>!Uf$=Z9BY7oFw%RJ z_c8f#`3d<+`6+p${IvXx{H(l5eolT~enF01lw+6V*j%r9UYF&>75P>9H92-&j*%}* z-HmdNSUO#-D|Rfn4*{*It~8zspm+q=?Y>7{O3#s zK|WA2OEFuKsleta<|^hXi23lt0>whbBKR{4meF2gys{OG6*-Dr#S#TJNitbNKB2Qz zfh|)kSIm^mmaI_ZDOM_0De@J|C94(K8U?miu})E-Sg$CArAUEoP;69eQWPsn6l;7+ zVJU-UGb~$RDTjr;OtV5!so1KR=2fL2sujdG1+iU0)F^f+b}Du$b}RNMY83@oGfv#Z zZ{fFLA9e>P?&8Ef_^gkMx#@;a@~47sGZ zthl1Ms<@_@6LLdAG%JXk3gVWc=WVE$I||~i;-2EZ;;`g_;-R8Nai`Z~1@VN`u;Q8G zxniVps`oT+@^QVQAYwxhaY=mzLTtK{m;wK5rjnSYoUNQEBQll593?SVNz8*^=PQW?N^GH$ zSfrdDnyn-jEARKpRX*soRQa&iawRd*?TK`SlE_oe4qc^e>9txpCv>gyQLh5!<6ebI zqDZ+xxly@ES*$EkmMY7Xo0VIX<;n_WB`jN&Rmy7RHsy9$YLq*aJ7L+S+^yWBtW}ba zPVH6R@ZP5+_A7}xC3Zkb98?}s9#-Z{jwrEu!M;s>PwxRMS;6R8vA`s!~E{sYdnARE_RES2d>heAR^a7pNAh z7OAj(LHmR1f(`^747w#f6qGJI9CR8x0%LJKEJtB!2->bX7IZx5L=bi|=u}XaDqFQ! zMdYY*RZC#S7hH4RTnZVHq)N!6-pf?Pa#e|Pg(^=qRWe<&=@nw7YLzMy!r_Xt=J!95(2Kk{AK-IeJtyRW`k}hn zr825Gdb716st{{Y6OB<@tasJKBA3jNN9xDwYs`_?@p+`Z&CGYQT1<8>1$Pn zD=K5N%5+<0KB0EwW@!w^mSe3 z``aqt|E%);eUtk4%P@*Ra0`HsfQd|hi*W3XCP3M{FxjK#M3x^MSQ!?yd5gJnD{ z>99KLk-)Yzp-|1Mr?+omy?@ai+S@3tW z;qNlx@8-bY&Bbm>L8C7??W=jJ0%v@|SzplP3(on1^SFMWNfhz-DWGn`gbi6MY$mM1R; zd+w*Kk%6Z{pc&R51fB&m|V%^I=&4%R*Qd5exBbViBH0WZ_HT&!zC^ zGWc^j{JDbg$s@o@0$lM1s|b)!fN-!H{tN|EL%`}#uqG4~5L&3UGP!I~%hk~sH4u4s01yzJkH37B}U^@Y72(W_yI|;Ch0EMBTC=_f61sg-b zNPld?`(TtmwkZ^h@yAkogH(TPY;Ta}kEQhn<6#DFZ!m%U_cGUs{@D25%Uv`4v2^%j z3jD*~D_mDdFzEl&NJPHda~y`ZJAU`nSZ2u4Hm3-zkpPF?uyY;3Tz|KD{wrM#*E_ zr5To+uvCS6T*hzuRfpg5TjqbuZyWr%PkP&LJN#J#%i@n+Ql(&_A4r4Mk^esLzR>T2 zdz$p3d)~(w`JXH4AG38>rVh-}VRLn0o(`L@0}FK6LLFE{{XUEO|6ComL731YXnvmG1-4bzZY`UynZ;W4%W5n#qhiPIn=@)RMqnS-i^c^ z_1yk<)l>W5Q%~rBUp=G$1NGAW57jySTht5sKT^-`|5%;X|A~4H3B3fNmm%~DgkFWv zYY=)JLT^B5GlbrR&|B)Y{kK_82sO)Fr&Aj0e?Ve-Oy_1P=p2lR;juT7%7& zt;Nn6)?o*N3a}-f>#?N)aEa1Tgk3Ofz%Cj#Vpjt;VV4ZWSniu8*kwa0cEwPJZRxrh zyK3-$(LcXt@XmE#gB5wM#hTsMVHJS|Sd+(k>^jT`xB;Qf5PB0ruR-W7gZFL28tjf? zEp`{yde2aR-8Zbq9zf_r2yKDTM-ckhunAjfbg?O*#K?}0rUh^=O5<*VBukl15IkM4 z6-69SAjD*%X%O0svVH%^x0KzCnxMzZtYWuBqz&cl_0XpdtLfuZVkEcuA(ER6T9?<{ zCvta#M#DW1+`xd>| zZfei{6mJjsDUv>0(&RslOam9KEqVk~+ZehwvKOFo!ZP^V&Tc0eNph%@;kn`B)fs+e zs!O4(BRdpPU?T#i(m=A;fj~Pkz8}tr@fQ!A?qEc#8}u)xy0LV1WCtd;%kEXgx15xE zFT!5jAt$-J>^b4$RL>!*X*5-`%M=B6_%{O_M+3=zl|J}kk3BFA-NLjZJWVO4lc^&Z zoxI_J)7>qz)oW|5MbS)a#pqpBQSW^76sP5t>2kw2>$XryHgI2-;%gL+nEK}ohN*PS zZ3pF^bV7(ApF;Wr8+VE^>bZobK}VLr~YrK}ZBT=ZQ}B*dlm_ z_eTblL+xl^R>I5@0j1A2GL*pX)(1KypHKSR)7Ur+F_L4@WZ~4row}GJ`1L<&+TNvI z`xjcjc%8aY#PW-UywD;#J~)B8bL8dm2A4TrZ|C#ZZB~0F{%bg+L@KyU=C`(qjf^9f zQ|U2fI!w&%Q+{RK{;wW5J-!snGx$x|!uy~+gDoD}wwq=~G3?Y}ZslxZ57p^$VTZ<{ zPOrkSD3tDJx!<2nvh}l-FFsrnrByr`(IU65-9^;2`3yHGl~bY6PD`QxVzl(82TqT_ z-N;_U|4zJ-H+u7ruX zTIyxn_Zw;m0rr^Juh=j!_CgHRF>oQ(2!hdWPeooqTbWL6lRRUp*=b+|pu1B6 zY=V0kqL%%N2M%Xh=jiT~%Aw~s>877-IrIm@4~A25b_zd$G$Nm@fN}PccbOU&9SWa6 z#2E^24NJ$-#6XnEAPLLlV#wqkgM)R!j8H&6SOk4Z>{h^&f+iXWrweSZCBFf7AB}P? zb6?41t_HV@M$seD+4IJ*G-a#NZFHzDy4Aq=wj)4P&X3+=<;wP==`9%)vZ9&6T^o@h3jo@&mUo@q9lo@+`>BemO1qqH@q z(b`?6G1@(*6zx7!s!@Q*EX2awZ}~pv?omywT-4p+B2pMZIfxT z_L^ym_OfZJw%IgId&e|gn_`}!Z86Q%-ZRb8J}}MJJ~3r#pPA-pN1EqqN1Nwq$C~GB z$C(#s)6EOD6U~dX8RjhQGIO?eig~einmI>1%bcs7VP2xmG%wZ8H80c7H!s&NF|W`r zH0Nov%qz8v&8xJz=6vl6^J?u%^BQfwd98Mhd7XBhxj?(#yk1*mF4S%`7io*l8??L4 z8?~Fwo3y3oVr{j#L|bPr)gCsNX&cO&wI|J6w8zcm+SBF=?KyL$_M&;K_OiK3`@~$W zy=va3y>8yFy<@J?Hk)^7Z<%*$@0)jNADZ`QADQ=RM@H?_J~Qvvj*hC+j*U8?O^G_F z9T#;-J2&dEHa+Tyc4Ab$HY4h&c1l!(c2?9eZD!PQ?Tn}s+G$ZIwF{$8X+?c>OBdEh zb15HnqZd-LJi(|}Kwbbd5~}oAY&-w`KJzEbUZGN)(bZX8OwQM3oZQycm{e0{cv$&IAscz+n@pH-QEdIBo(bO`y>P z&X_=x30yOQ%O=ol0(VRx#SB_Z;GPLQFo7o~@XQ28n!#u@7;6UO%plziCYnKp87wn{ zDP}Ou3}%_Z3^T|ygSlof-wc+R!9p|0GK0ltkZT4j%wVM%&>9Z3^tlU zu^H?(gUx18Y6jJ2P-g~*&7i>yPMX1SGdOJq=gi=u8C*7lCuVTf46d8O9W!V)gIi{B z-wYm_!6P#m83mp}-lD+RD3B5b#zld-Q6N1EOpF2sG_ZA&z>)sB9ABHnV`|fSUMcerJl6QrUeoMnq*jILA z?@if;ySb;pWWAjM*RWLeSTz7CYS>b!PGt=`2KMD{4AY}eSXG0|PS59}J04vR=A zW)S(WP+8#U5hnrcT5XxgIw=>i?;t`Y&&|@=&?VX8slGy7Su9c-+YfH2S;*@Vr+m{9wNoiLbrN2OVOQm-x}P_b-8DL zz%KIIpXHvrnfWE(ef245Kr~O;Q?&EA^Ni(gE$lqt1OkpWse!cs=;F1RGq8qZV3Ebw zS5w)=SJG+k5cEJ9T|s++vvUI?ZFF9y9gog3< z?eEAjw*AfZ+zs2`p0L_5a$Q!mZg+pS?)-qmu6AA!Z zUbC67Jm9E7oV((`u-wh|+!m29*&b0ty*w<6E_#DS*La+OYC37?<`CTL?;P+cL!;re zVWv&+Dn7TMEdoQqYdjha%ydZr(}uBiHo(=#CWFrb)jaI5YCcx4T7cb`F2s(j7Qv06 zEbN(IHg*i|^w;_3V2!@HFo|LbCgQ}hvAokT?Dc3==Ob{`sGHo*r&1^Gceng=e zdLfilqbT$>lMqU3TNL_Xv=B-fMHD)Fpb$#hP88ZXRtP0cEMn65G~T8cdB+-eZY!uZ zW{|L2(rZN5d;W8aUGJ&zuF{pMt99F$tAL>!H1HRi(oZmMP!~pT^@vO5{*#bA>9C^E z?nx~4B!pfwc)f`4(}OL0{(fm>_;WcBb};Nvn1~{E;~ea+QNyBX{Kjz;DW?oB*i?9L z*Ws=9ZNK$k`nKhsY8Tf$&*h$Z?ja!0bET))*k^Guf9yj(b|=;Y4o^ir;AQ-3fT$L` zOkuUy2(@_2fXy1PSX|-eSwiUS0XZ185!c8Yzttl}-66=+m~bObtlKDxXSe`gRxvX?nbv)Y6Kx*%W&E@ zf~fI0>tF;?cb?PDKjC!qqUe8K?om(5&R8tF^2s9Qp~dKut@JbJ29%SKLtg5PSgMb499Y0S0~-&6%t*vBdH zQn*c>YUjw?SVz7ZL*8<9&gHK_TxI+3@&=Ik5^4a6*3GvGE{eR*fS)k~NSn?C$eagA zXU`1|L9&MkG}6d)CH5f869(im$~fBC?axa+7j8^4Dc4ly{&&{oLAsx;Lq3R)jvMhS zr0qzgF;9_5V~jOc%2xyko!b`9$oZKAzwhS3ph!@vF<&y)=y)s~>cs)4LGU=^c%v;5 zN8pAdCCClQ(?X&ZKKEuT9P2$rpD&rJr{C?P`U!!@PHW=!6UV}s8}axqJ8%wi*_>A{ zhKUk2$XKG}ZcDn6zco_vqSuLiD`)E=->jM-sArv{Etc(kJGG!{CK$hj0$38jF>BsiKzPmPjFY`Q_{UwAGN^O1ALD;mH`ZCYfQI~)U zgxLExMhJYO5xsA^-6PlbfZ5-f?;YGGQev{p7hKekj;NMN#;GCnDhT&`Q#V%QU|0V? z+`bW|F|7xpkzu4?XA`P=_5!5p#jlk4p=SrVbxbkde4ph+RMT-6Ihx)FHH}_yqV5yn zTJ0kxV>NKo70>p4fRif+qV_$hLiQz3lTvr#a=3nsxW?#CRm`NIjBnC4q)DmX_c*_) zt-QprzaMUBv)k?>Bc1Xr+el}zj_qp%)v2yb;%)hfinq-ViFXlS=;wgmyj-?<>j=?m zyws=~@_4(L7ODkWsP`>`ZPpR*%~vP!)^q8dc0N}dmoZ%3_wvB$%wbX95(5x#J3pyV zQZY_IE%ur%#?cFOV)cXvqI$@4*J2#CUC(gz0CGfUF^j37{~Xs@q$dVwZ$lEZIz2WSBJW7I#5zw zyCB-0I%w!^mO0@19~iExcNfw6HY-C(n{Rj+pJw4zL7Tebb|y z@vIHTQF?lSwaa4(8#esCnD5syw+)oyMc-{M=bL&bxdi1YWGwC|VvL?uvt6S=6-9S# zQ^?XZC3Vv*6VLQxGYG)2kl>1L=ZU-fm;`?bw|AuI-nduAW6o zCRJRf7K@YTHgld=o9nryoqfe?`@8-j+Ix_I} zCw!ShHRk>36*(< z=ZmwpFxp%$VJ`P$6R8FK{rVmfVzbfbuTMn~8xcZuiM`YL(cJB*?K)~Z3T~dTty@st z!*5XQE;pi=S@(D>W!?E-;mr3p+{!7HQDaAe3fkPajU8uu-VGB^_x$_<%iC_x9gw%3 z5#31E=ykd?F4bs4QCmHnb1AOvsX8uS`u^n(pI+tSJ~WndURe-@3^kVvpKTK$UWq}7 z64iDiyP?m8y!!)!>@e;$Qc;2Xc?bH8(OMMkaV8@*l3F|qdz_~5bIkB>m;EHUg72fF zwbX5h_7*n%XloZ4KAV|#QOgHS`%%~~L{0em71o4jymvtp?v5zxhun+uXFR|CBa`jiKttHS6&e#4*N(o2f?aIn_}j`IY$}d?hn4jJ zE}bVsMcs%CG5jLtMqEVNuQoT@ZF3_or2OA@Zp8ik;ct95qUQxJfbDa!#VtX74@cVBS%By;sF{|?UnP{`>9-CFUkfGCUR^3NimHYYH zbiP%!ukro!_AbUh04_k$zrlK)+ZEk&ziYaY{x@`^{BP<;`{xBMVO}7$x8Kl*sB7Bq z@2RV6N7nZo6@1V~ZEidIh0?l^aX>*?`KKq%lw4V>s z?{w%90wk!l^9TVV1R>D)VjEKbTL*@7?)YY&BBUzFvxSiT0vmd@&9Q4chwR!8ePb)- zeQvl%uejav%Z$we|eCx4;lx51~0t>u%pKo$ohXSz& z_*i2LgFOU^&*NEMfIRdF)p`h7UVylZ5S{{M{_6n>%XCx_>n^|DDwrB-`*QZC1eD?> z6^u#`8_^4-2Rv4>Iz5BF6K;noxkQy(`k0pqUGIW2p=r0|R@lR@qV<BLLnTq>4tD}gi1e(J;iJ9sUAJnFkLsJQm8#~*XN`N@hnP;j) z9;;b?-|GG%?aS*KFVnf+1!X$ZM&nkfe*X`Q#s!b)DQYw>WWhhgjK)P|d{7}4xVezW zAKDp>`#H9ch|vT(yz@`K(RiWwFdsYYO9p!cR+r7QodCJ)D^%+dWIF+(1|dY2Agdm; zOOV2=^X*4sf2rb!<%5A8;AWVxH!c1r>P_n+etxEFRFC}jw0blwV_->vB^8#ju%y8< z4wmt-q{A`+mWi-Tf+Yi%$*@d;WhyMwV3`if3|MBuG7Fa3uw=qA2bQ_8%!6e2oU|9>xI#>!|Sr1Dg zEJd(vfMp{rn_wx1r398zSju4849gZ+%3-O1r4p8{uvEcP4a+uIw!=~b%MMs}!mR~wwO9L#&U^x!U30O|TatfA4SWd%o z29~q1G{JHXmh-S&faM}AmteUJ%N1Cz!g39k>#*E_r5To+u!y$j5^j6m3)?eFAZNF3 zxjy0k6`B_wj5rj*_T&ObeJcvJv3etVYWA?l8n%&TqwjCH)l<#F&i4*}gM9BWJ(8n> z3%8DU2XTW7b)8+SyOP0u*j>pW7x&ekd7jffLe_Y$g}aigZKr{_6n6Y58j-k=_v6JP z5*M-LXVD&?3u&8d7m>K1Ytd&6>59KsHg-JPE4v=n+P#-lBoi2F-!HaEmhE$d>3)s~ zo*5eMFoX$^(|)xJVFJV!grJ?`h{sx1PVk%1DJYwBA)`my*<948J3r^;0oS{rJYbQ) z>Hmzg$IZPhiZv&fgP75xKEZ{o8YAWtT*TH??$E+h==)0}8Q;g~=`ZUv+&UC#c22|n zoRY?O8p`+rTg0V{8NZ$nnx5{^_yT0liFU>pAWRc^#;^BSXIsI^5H&s*(r2oj@mcM1 zadW1LnurT2oi1h~F5=WI(SZaP@_DA61-PHrW%4Z`Ha*G`^uy-^+X68k4Z=nsA4Ru* zEe^WHew&^{zZR#?nZ%RaJ1my%r`BiqyW~y9GZ7Hsz_B-sG z-IpK(S?G-Ssj$Yd(_v@AP*b8@Mo{mN#fa6_$YlhGT!f&uW(A9s_z=`k=rbU;nWdnX z6YG(wjv1#iS&v6O3RqixRmgnr=5~ydko5^J>SQshrNVH25VZqvioe|Q5%W}iT*ZAK~WQ3!)osUG&sUGL}{q=re2)X)gC*pqB5u6EKPB^{lJ%ew(%SgZ@ z5zMMLeM{IWd^CGw&lxvHq5ECj?hvF-TkYd(`m%jI;o`my_VIVIkOI&3u#aEoNtvRF z$LBb2hRGkd+vXmroJrUYUw4U$1Q9b9wv|{?L66p6?U^@r* z0Olq0yrcdFyu;mI{vQ-vJC*CiV$TC#HumtZR}vNR8Y|+tFs&%(@xwTrAC0JwXoxr# z!5rWa($4Z{X`?HT=-a{SDcNd{K`&X`OKtoa2QgQj7fcVB}7k9TOWeBhtin@qEjBl6ie7?^F z^bbAVhwf9`$WXPh?C?dBXxKN@^_xc-)_WTB~pcG zmA(GWv;98S_Ea!!{81uq$DrlHA}*Ql>ujg3)=02(>}4B5F-xX>b$Gj`Q=cagAR|-oFMJ zn#FgsfZrH~P9fL!6wDK9CZP9J>Dwm6T&Q;q--Win`kv^3WZYlahRHvhN{8@9d<^T| zl}Nly%#F6By9oPLzj0d$R43(R7kGM@@&-e+Ox;AE`J`@6;16fs9AdjUfy@eSJyo^# z6Sl*6)y2IKb{IvTAsalm!eLk;Gbt2^Gd~zv>nijOpZpY;Ge$v|y2@zkvlV#~Zf^=4=O*rp;H+gTId8p5L@58TlWsj`u~t z6(50c%U@@N1J}Y}3ps_c17EIu|Ne!M4nGT%XQ_cN_w&JDna>zKmZEdu1S7IpqgV}n zMBNN=p1c{t?$WLL>D)Jf8|kA&JM3kD95#Y;Hk29_3kc3gLtN2GaU?;}mhCcKY?p^R$n4TSIJp5A~`un_|QvxaIQ^obwm-#KoTAjZq9im!^nw5$EB|1(G|> zC)e{WhFl|MqIwrmHMH5uSHm@o0HTb=4j92XDn~Uk0aGqxZH+9?GsTPXSbNUewaXCP zCnqG2` ze&zGiFnk2(G>cc;0{f8@M~@ev9xJdws{61zoc<6+=~L`^hOyM)bSflq*)MIM@j|Ox zlzQg!rScfhNOduS@klYT=BFaD$VXf47&zSlF>uqBjfuiKdQBZ+JJQDVJ zWo|nuql@yB*eSzy$B$RrJUezWc5!YLf$S{A+mMOsf@)&Bphi!-Ahj>gVOFzx1gm3D zI^F+{pLn`IyDH6<=FtkI+3RkXBU-%)Vo(IzfwtugeXq5xNVtBQ5vhQKBVBb0*sY;6sJmyG$6%f>6z zxpPtUfrlLQRfxXEpher6M+s_Y%P_5IeYuY~^<9Vc-LO%&cgSl!ScfFnHR@fO!)`jh zR_mRooVuG~-8Wm4tm+vDeG8&*w}$=*RNK&ZAo^}==#>};eGj7Vw}uXK;h-Nt^uyNB zgIqc27Knb-8amUBgMJLrPg+B}dT`KBA^Mr|xse^c9v5UIdNbgWCT8?1>@pT~V9t9;m{y12NPdT#Oz2`Tg348wYBJd+Up}NKBjh7Ej@j;W zBaAszXg}DCD@T))o!HfgYY~oU-ffF$PB2Y0IYQ~)MW{)p43pR)tgd^6_GSi#V$9X; zM9e*lcpfpPKf4en5ckYK(D3hZSRp-g6)@KBeOs%!5IDvJgvwWRM#{e(;dTcq|8B%| z|N9X${2xTj^lyony%2{_!cwJ<vciN9+t` z*?Af^Mv8{rFlCZqWc+@Hk;^i-F_C0j5^K9f0$Xk-Z7Jk=;(Lhay^;97$QAwvBl8^c zHIL=%8B`O~z-?^xIE)%N&6JSVrhgz>`Td}N4yo5f9#$7b9#I!X)~na_JE|^=Y*25B zJf^OUJg%;eJfRl5d@!Pxzf#-gH58ES`E6nOeGd7hW~>5}h8*Y4STB-`S$v+G`}`(2 zS?`G0XT1@zk$q_&5<~rmMU8?eYPva3umpP&Er38JmU=fvxCnW=`!V9FGD5a865Nac zJ5_+5*qjXlC6VA>1UMH2&If^}An-5(Jc#2p2bBfKM70*q`msQ1XxAfb`Z>j&FFBKB5D4m?it|-~fl!bn!H?V%iJGCyVlhgj& z7@eGv_7wMH4MIGTiJNY1AVSPGi6d|VA2P5Sb3@*!?;}91fzF=IkJY-$Rh1 zAn{7PKSYRe4iFdmAVi}Bg2+%2t6@Y)Hni}fO7wmP(7#%lKI}76@ar+jX`13Zl zMKAC7f8X}`zi<1zytjQE%^=?Chh`9~KBjX91djd?IXX4XYDCNF0#|<{88xlBCM}h@ zagjHYD@1K;J4_Fvl2b&hnJ^SpbIL*ZTRRLPnk45WqL7$>A;>}LA@LE&xZe<@PI^Eb z(r+Y!)W&QMb)>#K{gL|eKPIR+v4F3>@8pd7##8fZnCmHa9OsMuwirfU&U?&_-P9AX zbv+fab*cY71$7D1244EhbF@Ej7v}h|w_Z^h6MT~d{`)t<0e?GUjcJHjhIF#D)m=4L z1G_ru<>I;pu1;2Zgn%uc<(?wr33(B zSx6Y_$T;a@)JB}ZTBr23jkxVTkHSQcM#<~=wx}U(A-dq%+rZgCIBU0~Wpc2iB_^Ou zZ4+=}}VbpKD(=eJn>;J1ukK4s0B*Xcjf&S6XGTagj%fSC`;)yCtiuuXV ztzG+e9oly=geN4$jfgi4u*MHeNVFIRCJm$}o5AnKC(swl1iw2pJ}ElZ(l+?rfrBgq zf3n2Df5j*K5}g>|qeIvB9o~We*OC0c&hK>S+`Yp)Uq*E3+`cRP(YXWpD})GsH+E=T z+>q$xK}qDFCnd+kSqHow{H`T2F(EP0G9)1}xyO*iguz3SgWsjLZz8BW_!-$XH`?Bx1Wa(mVPyXohRe0YIzW$p0XJ>PJ^H<^KkKr%A?HkTu1ixY6 z9UOn?ApW7Fqrd3r_%Aw&e+YF{RVc5j;CBaEe;8zmPfko2GGbUXR8*oR){vi`Xs=BIy~7q^gbLK3kf7ShghG4 zxH!weWNSiv68v}kz@ac6$0s|Vw$llII(YEVfk|QAn=v&l|v(p*)Ix%6OCFv!YT$cFj~dr(aQn^hDSL zk>o#2Oh}Hiz7*0ggC^PeJ2OrR$oIDnAvtgwZD-NpsP%(^-CsO@7Ix!k9 zOUF5pzJCCGu7X?VFUqoBuoJZ}; z=)sn73+%v#I&ZQ;(X}N1l92clIY1%jc21@JwbN$l6g4N0g-Dv=mY;{BN1>cUQD=dB z#@1vf#yOoOahP?WW-F2{8T1nTq|+GN4bK)oGjY49QO{(J_`p+m5kQiNnR{ z;Uk<%5n1&mXxh0BHFPkUZ{TcdkG~Irto=W+wk)A^+d`3^;jtmP7grOLBCK)3&8Kgq=N# z;*cg2Mx3wmBx+wS3I2=hiJecC{?`}O;)m18)4Q@xqRQ-Kk!#{`5iOA!S0=%wA2R3t zB{MO zMECOqCx%pprgKN$h$=KSmF4>qjLRoY@8CoCd#MU=-twV1eWwp%M7j8Wu#+Z6?3&O^ z*eGIY_lb+P4o-45(Zmr$k`sPNj2h3KQJN2 zY0JLiJbX3860b{&dzmaaI{=Au@qOp^-TPR`8<4C6;l8=Ed2uc^sPg!M)*;c(w!4k) zch>lrgkPMkW$GUmxL@wXR!5C%>6JgYvg%Z-PEDXD6PIlvjXd-HHCffmApR0aI(x#% zqn_kE&-!2NeRq5oRo4HRXP!L$i4shJ@UWsTKDL0G8CFmflmM=}%jO|jvo<0`iBgoJ zqASun1W2Lx9(pecC4?3rbO^nq69S<_sJ}Dw%$@ek47l&R?E8B^?;lq%Ozt`7d(J)g z+;h*pw-rbC@rA5Bx#)ziyS0z+{Mc(jTD8Nv8oxESi|^Pmq5Wg0`f`vI{&x-4AqvM9@m0TMj4m9k14y; zs&hOhi67_Lbp^!_JGFUSab;|L`)&!Xx_$S!s^%WsEXxt%3cX^wCboZUtAocHl0UY5 z4@cc=hPyS97W z_ADY+dHluH5<8PrG#dwq7Lr zk&nB9DxvL%iC@0<>g!Bh{Aulaoxa07Hkt!6)u~(8hL7*YZC)k+W|Bw&e_4yNe>?o& zNxRuk(x$td0bev4lJF0;>vfIqjOuOJKJm-W@twQ-FK0tb;;wB&6YAFWt2cxT(b0U+ z6L(1Lh*i^xZSdc|>-J@P-1R~mdRe$Tu1hx*LP&@=^tEX6I$OVXJwK)Pi5VUHp&JcCK=1&T%+5LAj>i0nSD|KZ&%Wf@1 zQcVP=$rXlJU)zLy>UXIB6Pf)V!6l|P(cg7%&)xm0iz@z)kNf8T6E2%2{zNk3|5JJO z+v)!&z^a*jM0|gD&?=6YdVX2zwdqnXAR+F*v_w?{?EmUh-WC5j{)c#9o6d>fbrtF- zaXL}_JN~Ch=g#rnwf@0hL9X>L;{K`DKXP@VT0iGgC)_{$D;n+6xy`5k`>y!E3Vr)$ z=l@B8$>WMh{!^idJmhWomzdY;zskDi_BE+4-%kE~Z?5!yz>dUZ|9f=#$}6qslRKz; zM{)0gew%82h;=$C$3w9AmnU?FP1+*luB~#C99o z9c)@p|MXB@p1qS?WIl%qAHO?sR^8BRFw=Nl1wHd=h?RL1?qx#TwU z12G3<_{+al)Y^X`UH+Zn=p6<8ZTBitu{Gtl-4BZOKY}HrQ)3lDX+M7vx1Z;LTiBO& z7H(mu_cy)XbV_sXv$}eBr{DNexI5jv(UxVSHraxnvGt|*3myK(|IwXXnSQ(JDfzpD z0hHhCB2m8C^j1?t%D28Dl(TJ{Z8J<;_&1OjQvu|6j*XJN189%P3DA74{mQ3g)>Bmg zc#ADi>ftESLqD|GET?F(0g`0NB&kG6G~YV;vq$#U$;j9l(W7GD;GQ}$6g#W~5&Mui zHS9v@c0IA59v3BhTu^Nb5B3mS=<~@VJ&Gp|1QjGVT1x|=f7Ci!Q_`SXGD(wB(v;ZA z(VVC@6(4~maPD7c3WErAaYSh@=8qPTYlt~J$s z_Wc*~5%*1g^k7p#bRqwGvEkzajeis$7jV$#own7sT{bW5wB_nCn_VeQ2h{< zxn^^e!Hwj?h-q+($DiO@6+4S}`oL!-QeM56D8LgpowTJUTygDYb_-@y|-EQfRkF zH$ic`=~MoX3^lf)hp4e9X!CB=SP|ug-L^e8EwSm#g4ice?7KA|c`WfSa;T)4LZm?q zIZrh!K=t?bE9a<#+#JQfKBwgBxvTQm=eGK^H9u8CI<@*#ms;}<4bAHq?E%qfxhF6E zuXY5=SNa{1?_STJt!mEyt zQaw95hE@TS_7l-IH&bacohN5HH8w4FbZi+Vy!I8q+lMy<-frVaEAxo&W^2WA5eJnn zavz0wXma_~&xFf%`JwzPIFnTGw>%^8n8v??lO1N_$D5M3dN<|c4egDeWR#|~=Lcz$ zSxW7ujn&_xub}?Dwoux9z_!;m+v0@-wu5@}#(SbhxF=pUWnK3Rk@Yxzf)+zomB6!} zB_ZpW*s(ZIYdyYqQ-$wo>Sg|+8TCLsd{Z$H^B!R!@}aGYrP$}>p>0~M7OCh;8L1;N zc`-+0j>V90DgcW2ej`vEqaT>GMC^1(DPj>PVvT21{S59c^aCepDktO=rD^9mf0WsI zTI{%3<>35--rzi^FtT(aVICQryuD6VV&$tN&>BbVRV$b|{-YSo9I_s6nn&j~O=?b_ zF$zG7=}XXh+oNNC7bi&O*T-%68hqcuf@vSHRi`b7YzJ%$EZ)PmJR86vn-;UapJdD) zLuQMr6;~sXmoAxal0-5!Xv+~Kv)JN2YCDExj&M_X;0T%&C41u6+|LcO!eMqe_sXx| zA1T$*3VQfIA859kDn5Cnr?>g&WVOOAjOb2;!`0DQ$LXdft(fn za85pLJ8R?T1f`(OoIPZ70=hme&}z(4fHo_-tx~D~AE83TuZpnh43{GQrBt5i zlGM)f1$PhWy~qSc7sHW+@khvlybB&V(=JxRFD2g^| zQk&&fM5PmBA0CxzNEjE~Lp~ks5vK!t#OwfgJLf6k{RH6^gLIV?7gESTI8A#r1#rHg zh+)+NJYo#{)e|xSGQ&UV&(yy%!CN_*%YDO(iCVY#@N zz=AHFUjl8X0uYhs|p_YVDrmw*NQl}=Rx0e!12_w8(0J)AT0UAbiA&xMB=Id1jnx-3{@Im2= zdg?rsBdC*lNo^PJjUsk&$!yQBIo!m}R|PebOocT^n2PYv;+i8(nIW()1lETPH8~fU z^VLF~q2rf{Z&_*?$CBky>bID6MB4Ba5vlT%4u#Lbr65A+j$=Fh`rD99NHX7R)Y-6#F z!!{n<1Z)$rO~N)A+Z1e5u}#A^9or0SGqKIWHXGXPB z%fYq-+fHn|u;pUgjcpIMz1a3)+mG!4wu9IXVLOa158DxJN3k8lb{yLYY$vgu!gd%TY!cge<2#46-Q02x`Wc1 zRko@I$qcF<4w41tiQWLqERZbIFa}?@i^Sj;Y@X%RMZGnC(^XN@i^n=fd^MC9@g4uT zRL?u6WHRrJY{ajz)F-5$u?hc6K3 zGJPDn2ftRM`|L4-?)kQd5ZyEO=YgAs`L4E;eS$_W3H?lQ1^Im*a#R%P8ty%!0_NsQ z3Rq5gDtHBCseqfDLV!zY-bhD74^~G>k17XXJLNaB+Su`b9^`+62SKY#G6z^)mF3ce zq&9)9p2P%p>JKkV;3n#>wNYaBkbnQ#rkYAG5bLC*P+!;H-``E_{Ss&Imu>w1plpEA zuL=VU`go{ue;RGFsRilQiwNQmOT?XRSugLlAjAFsCk3He!+n@)xR-Fl9Z@X_9Lt+l zD8}-fzd&D62W@-=1)^$Gz8$@mXLT9XwpHq&Kbf z-J1UwS^aPDi(1B#FB(f3T|*X`h$E)X82O6WaJXciCBx;Wjap9K;wS7mRDi+1yFN-$ zr=w|r7sm+(_!hT?`+o-bzr+C5u4w8nQe<31%kTA3`Mn9%pTR93EsL2mNwAnkR=Uii zA0}&Xadfz}Zmz-StmR{*`f8HE^(U9~vXFOHOIb)tlf{NJ1s31tc1wR3i%TXE7JGi$ zh)*-Cs28l2r4oLJ74u2ukRO zff8To$7e^UD(z;*CPB>XuzY{sO>Gx-Gk#ZsOC5$EJxDT$<3HuYa4ogGdQz#D3!Z0r zwV>oOYB| z|FqI>mezWOr0N6F>a~lYwLi`y?g6TRpShg?UlKi_N@$(G>S6IyP_qBS{`Ts1z1~KR zyj?qYOYqjl>A1GHZe96|&L1LZ)8)I)oxbrt)5z=f58D7-`jiW}&;>DtF}o6l+=htj z>?47>4L{JQ&2#OEG9Mh5irvmSPBjHB zr0d=lkUoz{Z}KCJTI2CsY!blhnHwdmujEFAAvQyTMQpYqHbW4bp?2>u`*6f&h~2Qd zgRLU|Y7Rr2lkitZ*u9WsA8FUBO1gW3mFI{Gn$Bo8PFX@FSHPckiHqN8VezY!Gk9;5 ztT@lV4>;9~bBO@?&qoBvcZUQW!i-zGzve`VX#AVM$vk^syTFU8tJbF^?KRTmcD2au z`Dol1M%mXW)Z6!@AbSBRTH?LkMFlfIydyAEjN8KLwvrfA_5F0Kb_un+cK6X>tJwYh`6?GxK{?Na;4#IEgX zcSWufJABuvbJv8nkHWr;jaO=ub7Ks5<3rt7U#b0GxAtATbxvs1F`*j@*8Y{+E&1yK zK1k@^s?)a#9UFc5r$5EBZP@y+HHc&qUVWp1w{Gp2E=YuDgQwn>yDI@%`5ypPU3)}s zKuG%Y8Rf#O`ta#bb!%0EzRb%hNVzRw`YG zsZikY<+}nNB{4#1rPawRhoWRvjQ*7U8X9AJKN4pM5@VS3>+DFF z6A5!8Aw3f2MZ)|@$f&i@WEe;m)fA91kF$@rPq0tahNEK{f#ZU(dg8Zwl`?m1D#&aq zjmdaQOK}I!Dizm@Ld|Ibb4CQF-KkKUTIlfoWX0?co5b~*473dAhpd*&p9#{84i3uUt=iDU-g#OyvECGInS?er+3uZUA5|S-lAQ#914SA7 z9S~&5A;F&(4u3fuC94Y$7`?AnkkMNdM;FJzpeLXt&Uh%)cvj@I5Arz;`J8U|&afvV zpVQDkC_z~BtpEb-r1*GZg`#~6v~_aKKCaKZ;2AL!@UR(zET} zIrh2eb!KS~v!0g-_g4t_Dy))@2E=Vj`AnUNd>4Yw#TYWU>v@sE{>WfDGC0rfoo`=& z45kN|!quL{6mlu5j5|^iu(0^$n6#+o%6%WfAoy5a>Hj-lk;m!!wO2D92Y3< z;q`>IyM~f>e^Csj_h1yh5JTxjcJE^Q5|nhIoewD2DtNd?csR}LSvXl6ps&AOCi*Hj zP0;js*(%E&AX%GFk~qxMIPHo{S|#qoPew`A#)drHm3YWQ9ws3VEA8G@_SFdaB!P#3?kh^7WOcv( z`EV^ggbcqoZVN1S5Ay3pQz=!i5T#ULzR5Y$d?iQ;+3!S$&sa zHNHwCLl{~{iZGl+7}g*RYwg|)dnUrLM%xKIeU0#+AJ<6BroJpt+SFjqru+-l!}Jp3 z%VJ8SWR=0(DA5#leZCZuUB{5jocfs(t(<-;w3KAJl|={M`io2mA&?{ids%koX^eM1ZK#k=jHr+csE~E2ko9)&2Kz=-$U3{0 zgt6y|gbB-^=I1||a8VC_S3+G&od;Cv9Hu+D4Z1~Oy2wor=FuvYA|#Y-YLxzRQ!8dt zN;d{ zRHAh?38GPcw-OL%72Y9n*2y^fR2-a+gEMiOM>iT5D$`c=A9k)b{7q4mO3d;srP6Ji zG0U@*+9J=KNl0~jGD!@UE=Thf$Vy4i(1(bur$YJZRq5xywh>|dsS>Wd>GliiK4LG5 zeHdzDX=8!?rPN9%ZMi`$rEXH*TT~@xv~N&ad8%?k-#@#PS|%%|y*uGAt&yd|dkCp; ztxJzF5y2Y}CF=eTn(G+u#umXEb5x){njFj_s~3dAd5TEJa^c4*)fG0Kz*A_p#HR#J{{t!4EbAS zNOWb0uQDXAGUOkXA)i!+#8-xVSsBu%G9{L zcXKO5?)>pi20fJcrQmSk*Pjcz@&Tt!ae9?~bg>qpF+3>uDSm@lwUd(j3SpLGwIrH@ zsWgC*=9ff90tQJ-Y5-Z~{a>N*|Au-b!+}untuPRF*sIXy-S!>!v6%eaZQo} zXTK9<*^Svy^IrRIE*lDa?fYtB#@$S52n!s-{p! zs;1)4((q@a@n>W3XJheanzm#<~+>Pev`(GEpjd zJ)(@mcF&NJJ~-%fRl}L(!uO)sHEGL!6g%1KJzzhG6U%-(hx@=l+^>8o;eIBLPmRd9 zJ3+X^N-(nPrHgux?gIH-dsW(e$ewGTh^Qa3AGT}B^~1A7t}@dt=|I17X&7@wT6t1h zz07;AzHFIch|a>_L{EPo=iNN?^hfO8qxNG6Po7;n9Wq{=Klyj4!Qb=nc~9PtUwjkBRoO&93z z_f@4W2Yvf}XsCyL>o6!i=+iWW=+|Y2a1#yTR&*tA2*J;oHHq}6?uQ-s|4MPFj$f>7 zD-FHlpYfKWlzP%Nxux(mVkmj0Lh^UNX`s5-&Jg;^3q|OIg3KrFTO!Ii=ug^D>5PC# znc%lk@H^3Wbw|K^CCU-7lN$j~&g@J5Q4gftS|Uj1VV2_1&`=m=8DP~r!#Kb<06BEYEw3Px{C+#lUeA<4}egG{mr7mx)mjAjaO`E5`P9q8M)4oR4A@pcwh~LVNYLUhZdQ^ z^S9pGjT&M3jC9|qzo4dBeETj5{?Z!%7qVI#|An1z;vZeQ;t%3Gw|(9JzfAqt{U3WZ zEz8WxEbAUx*8S++iQ-LmdIr<1fnYGhEcLNE!ZOS<0zF}pWu!$1Y)8iivTOHv-*!Zq zR3>1Tpl{<#+6=LD?GXo%CCGdjeb)d74xq!nJfF@C+e&7&XX13&^oeY87w(B(P|4~d z!YW^tX2@pd5s^)6kogF*ImUu)9`POZ>2N@GY9PBk&9L*$#bW2SAoDToycPC+%y--; zW_Xp1Pr4f=tLoA;hf9(B>ri!LL`9c<#$#_)5a}v7LKGXMfN$iV!OA*jB$P+Og-Ey<2^EoWDH1M6!j(w48VT1T;d&(8h=iMwa4QljBjI)=+=+y{k#H{( z?nlCdNa)ExF9v!u(1(G(4D@55KLZ087|6gN1_m=Qgn^+93}aw814#^wU|=KzqZmkL zAccWc2GST9&A=E2#xgLDf$|025vHNi-Af8ZZmL)fx8UcW8gjm4;bjlLN6A2 zv(SfyzAW@(p+5@)SQyB{AQlF*FocDnEDU2|I15QEj9_6T3!_*_W+8=zR2I@$7|p^M z7RItLj)n0oOkiOm3zJxw%)%5Frm`@Nh3PEJU|}W;vsjqT!Wx#CB;8ROYJmmF0+@~yCe?E9fGG@ z1HJpj4A~eTBC=t|ElOnL4CRG#`v$8PAIq)HGztx6AIz{dlci@h_#FIe1NB8-hR%7% zQv!eG7^+z=*vq+4?V`N`7k3xzhQHZ4RQydhZMlTMiP6zz`xX4nOLi^ROtTuOuglUB zafrQ{R(+T3i(ehhWQ9?N@XzvyOor3utH|UsjC-!yuW52vxwwJ)o+QJl>iNb(RFz~w z8%wq%SdS)2 z%)d;W`KvUORnI*1G;_5V1p4Ni_OaBuh;h}m2%lWtKz(hGOjjc9iBCx*Yit!mx(P25 zx|R0Z_B-~wngToH-qgMkCg98dt>2U`+%QD^OkELi9HjRUac+>_v){LCiS$dT_8=8M zcsWcqNOhR2(dJF*t_ed}%Ik^huq~&k2bw%3g{cRPZhvQABmMPs^m6oe^l|Ws0VR85 z+P@>Z)au|vm5lRm0{YrGRu=#*0hP2;(Po!<7&4ZBk z81yfL9D^NX6fP&k8;3WO?b>qW{aYC8=wT!qbd(To610%tkkSnKJN`)w`43qyH@(>O zO4F-NA9|Ph?G_@ZHrhM{Ic?>IA&#NaHi?XpKlOeypdL^u&8C{txV{{1=p}D76TD=y zC73p+SduLTXdNk*REti6rV;vB;kYfW6lq|}o619; zT2eKrr5d^F4;nr#A7_TFwfwutngf^I$QpNfe3D}Xnx&Gp)pN*T^J`s;@Mw`Rx5pU`r_-|67V%N$PK9@BPY*;8d}hcpNkgcq|K>lL22mNQXQj>=kKBIh;A2$ zF9}~7zARje<)UNa5O=?-!Lr#aV_BZTG^D*PkUi8&h!jM?|-di9eCQ|LA{eG$0+P2I-9#WFYyIaeMe= zoR-)p&J(fMHTS10bYtt^x(Q-03HQ>LOjP4qhj(50`fz~EaLq}fSeg{L15N4^ub*q2 zc-4^SA1{jXD6>h14*s2w1P7mD05U+$zj=Z-pQlnR+@lNUsSCy_!TH@qAzz@)8&JrN z;a=Dfo)xZ>#~vx07kalc1km!UXg8nHmI;nj$3%yBl4G(1V1h&Iwt<(5BFaB$-CXR6~3fGG|w?T21_Q&xGPf&DKpiP-;+Y5j{{A{&VPG-QLrewt&t z@fyS3PyDqfY4Z&HwLuuS%y7)qgM_sj_OK(HnyK4d$;&A02Ic&~H+I zk$e>__D1r!X+GOA2h}r6%eCK@u#sE0(Uney7CR?ev{)2B&5~l_#80z~w&*0I#|0## z)fl<%y(v|>^7-qkh??$U*}X+sIxvUWNF@&TDOPX65ZNbNu|0fMy+3mxTLZNnnRV#I$TiIGJcDs>7r z1ewjvxgmWpPVS4XAGZGdD(yvGWyJ}~qF&N6&ey|;ajs~7!7bkZpaf|CYXU&@T&j<+ zug}ndCHv}}YEkWC`l;t7kx;mza;#z6T3KSOy?MmKjt#IhL*7E_b zRoBXDClV`*(9`lsQOkby`KzZ((d&{g5*jDTMB-*EalIuIJozm$T365me1{()nU|*s>87*QK5CJ>S3|y8v%117_W-^%!*?4=Lz{Y}VIi?`XrD_YRU9MJ6U8%MML+DG@I6QW$ zdf!H8HWs4{3Nh1yb@F>jaiIhA`9`&y zSm1oE8lSL`>3Gt+B+=k^X6k{s?R7E`H#D!48}eaU$VU|+f4LI!*ApQvb3bUz`YOog31&EF_^KHnr*x+BIex{<&Mjw`6sUd~LN{{Wpp7DZ!U%`ks1{ z9T6A5l3+qb37BktBp07ERYd$UB7O@IuSCReSG$9V->Rl1!qm5j2+Nz_^{@B!6#vy2 zF)+t!+S9m{^;Q)h)6VM?S;pbg6SG9=uAp@HP`djl z-Ggd9s{`BrsJe5#PrqCdaoTdI;#wG69UNS<||AcG3+?B+@GPqaPXUu8)5Yh@@x#|5GYxNz-- zB5(`WUR1Gh(%_vrf`aaa{*gAPhusU^fd-NuHZM%((?z+q(O|PJl#KT! z&CT*A^FfqQ3#2ySQEQi9-?Qr>eEHw%|gY7lJS5)hU)H?64Ji&{~&H)W5Q z9$===omZM^ib*G?T=BzOs_J50eb%2Z;`AbI&On?pF~OJNSm)4*&r3d%RtbZAds}Ne zysy5NR=U!xDQR*Wy@lu!(H`huYv`ewkSRK)5ZXKrvjw;ohjEti7DLf$FBC+}a9|bW zdPjzXtAbqb*r2(7pWTySwz7E*9odikMUs7pZ(nO2f45%}o|^x;p=iCbMA5MJd;*Hb z)t*nVOu{W}6=a1ilrxQ%BO9Qykf(&@uv*yVgNU%pnl~~8vHNNf#HvB&jR@jIt{`ut zBTLUfF1M6G8s^*ITE|t5ZzqA&zg6`kl=r{(Ec=&<9krij#{}}H-rCP_8Du`~{7j4Z zF0DGpC$`6+$=5!2Tt(0HXTPYoWUs?|j^6fXi<#FPAvc}ou$aZXYY|%sigH{sy zNxp-v)y`&Y@>_x1aJp-PzilRKg2|RCmZ_F$7DFz7+CaG6>e%Mk?#R&`Y4>Ik^$(V-t4kT9ZNBswv zAuSM^_QJ)&f%jXzRW3QHgXpBJP04GF0oFYDV<{Ol(s!t}@eLtcL|64xkYxwDsu}32 zb~^fC=(q!mECPCeE>7C^Ot)c7Z|JIr>=a$~Q?z+Hy6PF|s;66KTGV5#!&)-N);G6o ztvZ0(T6G|{LD&Xk8-i^p#iyu`Dfs#36M>&(A9s84=xADda$P754nyDFe1`}~HQJnu zfDFdX`CP~DfW+hbPc#ycSki*d4_R+LkL?;ZJ$uXiK(e=Cz6# z`ri?e6LB!0|9dS+|Cud<*R_E4Enq_nD5(miRpDG!*w_NH@Q1ZvQwzwh1=%fNV=d@g z)qh$`DLK_zZrh`yjkk^G$vE2?u_NLzsgaN*f1hxsyZ=ApD>2m1aHROgMyLAHeB=>f zjk1Ipp9)=?Hn$j1h1cE*g$ysY6FMBjYj3RoWj0+QF35z~6|pnoh;-Gdvft^XU(?Yi zJfzeiiAdVuGl8vfRM6%Y;-N4-xA6DFqFV^1&9l%gaF_4RvdppYT2WFy-%hTTF@CKG z^P|YXS8WI`TU%sT(HnscK9WXYlJBDN2#nY(L6aM?E8>`z{xZIiZGdi!p6beqeuLjj z*N$>qe!np?5v|ev*SKXNyj-YHX7H+J#ko^ z25QjeLYxK`qlFeaij2!x`sYa@XE6qyC0aI9wWEmcRqK|fo0@KIy6xec=Dkmg9DPQc zOSwe_idyP8hxLj`;iO{Bj3gwcx=w|Tvd?jG?~nw1b*Yo^)pJ(UXdgAke=oNhwTZd! z$TDGC{T%vE=;x1C(^wxh4(B0_ufF&s$9sebgjv_->yh z@NI9gy^3K5#Cuwlr8;eykFqSVco$l@ov8Wf83RQrC!+9=Nn!U4ynPLZ)$~Ea916WZ}y$&MBGx_OAld$-aCcV$*=_nQ{VK zx%+~q)x~rZ;D5<#n(Vh;?RC+gzm>0x427|u5rqk-ElW|DWft#p%L*(>T57zEqe~^w zE+T9d7_SA&e)_MH!uWtqOY}RA#`4ssW;okhl1X!{{U~75&}y2(WAj+ISbPcJcf-FX z#<%x%?VJ$bfnU@FUZpf&W|@c3GJ}Q8i!R9F=LyJ{9G4we99JENJ2I(6o7CI9A(knX zLAMl?F*-WmALwdN+HbU%>}UDsS{fT4)>w4`8XrL^b<*r75<$(VHO6>%cDX3$HOF-a zb;EcQvR5Hl%&)X8r#!3tu0kbjcuTpf;9^^Cx7ST3?7&u9S_`|V)Y?>$j!MUE z?E-Z+T1>5~0p(xbiRNnd5Oe!V%diybXId}ynbe`$9qv>j!i>H60ZRI&g-l5r;o8)n#c++&(N&NCWe-xvcT%H{&k$y7 z1%dg2qo=c%v$s=&X!Bnb>x!!$VO`-rU8EGCW-CE}49aRcYsOqe4(1|qFc*-0h&XFq3Xo%I$yJN$^);RfLpQ=sKN?@N+ai#l#~gKPw?{#*lt z{{K|0LautqDuh4#qr{-!$Hd|ItAO#FK(1Q)TXN8j zaUXvtKN@rN&V|j94X}*QHI2POGIou8fF3h@UOGXTd6zctiP&iAZ}P&Ph+KatP_A@+ zwLTVTOm*e^69V>#i2?ZSP~kU@ev-#e?U_ILRVRa?j7M%S8Me7llq{?C#5?K7ENZ=#dvL6W?uy_wz4k3a4+5}$vN0KVNp;dMG z#w8_o$!79qg&rrZ8jGB?qAiD!lRS&}h~+49a@e9pVy243SdN4y%c-9wsd6ob3ngeG za6-ML+1>QdlT?|G&^jOMbvBE1c1%-GbzM>P7q$QsY2H(o)4Sk5a zXez2Jk+z&hb)B(z&sy?PU8nWV#dQ1rk@GjrGTI)Cr;yQ7i}#$R3>hua4zZ?wE6zId zWeque$30r8K76NR9w#IosoXCNC$0BdiEREzo6jSg5AjW_5jw{cBY7yPOdc4%ATVyQ@QocS_~(u_MOCuO3znylN~c^ZI74{0AuZI zN*L!lge^ASU8%$x)n9UI#;1u+cO|U7tz$krWvmTv<*yCCU>YhGt1TTW&^l@l@}npg zbjm+lk|N#@Z_0Q|NB=MUAlJV=qE|qyH%bLVnWGNqsDAs8iX(VgYL3#z6ON|WDrst% za#(*|TttS`=7G*WPVR1-fzClr9evj6E(tQDwI=!I6A1a@rX@|aWc}-PrL31YS@~-| z)+@3IEj|;L1-+xV{doQnW{iDLDUx;rNbq~rbINb&I{ND#@u+LHfFx%NwPuT?$HN8QRF-aN}(|kILGyfuSy|A?wQ(bQ; znL6fduRjoLP7`g+=g|TDc^SzO+?HKnHw$M8-Q2KSO*4GdOfHxYoW?h+SexzQe1x`o z7#YY9{7W0JZ*2y#~*6PwqKqL!`a^+ zu{Z#R$eT(S`nq5B!=M5FXc@_o+LPm}hs7Bu-8SDh$F;!Mm(Q`=BMyG8rhQhVeZK83 zq&<{+Qdb326)NDTr;94R=Lw`2;-=$0ZvCsRfTcjOZ3E?!%>GHb!Zb|uwqF$s;!d^)E%7NP zY58Za%i=QUiA(LYyx%t}(VpdYD72OTK&FJ9t@#N+POITnVncq03>VXsQhSPCMNYYV-Lsi2Zu1|}Q%PIpfgmlc@R^3Z1w-F57NgN1QA??) zrApM&ZIq+Za>t@=v#&^E*wn-wAtM9{2+)Dnn0{MnjqhNQh#`k_hlm`GK@RUBhxd`g zdzJ@!nb5aoNay+As2m+i@wN3A8S9Wrk8d+E6A81npS-c?lZ6TW%z*B-JtnI zVV{~^Hv6O4Wx8!*^w{W0(UYUOY1Q}?&2W+NDad$#WPAWJ-rqXVs%>KJBu=!TJEDSa zi|si+cO1xXr{_g}GaOTp->K2lq6q|AZ;Hqu*xlMtsL&CDQ2njdg3N=g{jGzocBVK}ooP;f z(ooW@mLN?UStYw_0#}^mSf{SOYTXm{^#|HK9`&`t=7sUj2~IJwSik@2a=4wrzBYw zLtsrLeXof~a>X5)Vf+i4|tbV}(Et-hH6t;DGrB-Nnyp*@U*IHLsehs&iEY^emzpomo6b)>T?7 zEyfnA7+X(;lg&vLQMRE#w1L&M$w%dcT-8h89a60@0{i;qO}W)%=_QBqjY0hi?kRW= z!yO&X@p0xYaeQoaWcxD1Hv6`SrH&dJxGEFifL{aGlmfi>w$Ni{7}w`kpPmMSewDf! z-AYVxsk$5dzR;a%n?Kj5f$9^#K60EBnkrgv%^>qAwBBScC>&)?(XrlIQr|lB$?BnE zyx{W~60eme688j|Q<3;J?h&R`YnoLD?iXc}9d7Nf?p9KdAKpxz#5Cj~WV9ISPs32Z zA{5tb80uGqj@DZ#y(!~i46mo{8hVQVn&>Gr%zx*!eyzh8k%j3LZ5fZNjR{uoMC&D7 zUyZkF3E6&Zv%s9GrYSTHFa=#U#!76=KsF{L8&j;_sn*NL#$+99X!THQ=sZb^F6J3u z%kcC#k%3vLis{I}3{=H*>r6d!_);ca9xj^$sLz}%KOcvgTtfz49WOF48yT2|49rFb zW?AR>&tdBQo^1lzqMU0@x6ZT9w`$Y{l}r)qf|LnfLzdo{A+j_VSz3TBEku?USQq(^ zr=C`bJ7%gtW1;VqKa*?Nd7GI+=L@V0vGc{&1=c0l`C{u*;hb&&fe)rPQ{;CIyT47k zUu?y-&@$^{9Nu17W?gRer@XG2lEger5g9InO+kJ~Y1nn=St93)k@FSE`AXz`g>{vc zw*n>CE2m3Vz$cOo`@S<L$#c4s(0rG9UzmoyG?*c~idd1dHY}j-B`po6lL)J%$tdDli#O1{-X~`@j z`}zX$Si}=ojL+}?y|>U|hGT?-w#>#7?m15HT<04Avz`1wP#L3_er+s10rdz^*&E++ z(nlmb5^KlPk?=fRho?K|BUz<5&nzM@Pc8FREAu^gs@&Hz^rEj<=p|q8(0=uye|;EG z9|qQkLG@v9eHc<7hSrB+^chzTFseQz*N2q)kXj$o>O*?XnVR|>@EcJ@ zyHlaYmxJ^rnpogm=v?Gn?6j%aeqjk2QTnQXqbH&FHg_nR?_dq-;2+DH$x_@8T_|r) z5fL4Qh%P}ymm;D|oXa!^*9wvJG5Uc?z+9x=W@R%e;k+#zc7_|DE}bx4B%X}K)2e4U zRv_`T>dO%qCE>sIA-N6z+SjHcJui#k_6S1voh8yuLAt9^=ru@pwR0_|RRRWe+9vr_ zM-s$(eW%S8`%cBaGqCSW>^sA`PV2-4vsLs(%EYYkoz(M08fi#lJ<`~KG}b#eYSD<_ zCYvASnOZ)Dq|9ri_LEXbOR2p7@_=o$K;(2Za+-ylZbDA8oY`8OdUIs=63BD3#xGkO z5NKpMarb4jGt0^CzHD}G@u#b@6aqdoKoD>bZ$?GYCf<#oRcL(w4uOy9{B;IghL&Wk zl)cp%Ooqd0+W6s|Uk-^tj6oo_A`sgUh^@};ev?x&@X=1W$#HpCl7>>!pEsJ&KZ9u~ zL!aIHh`_*BXICsEcW!m=aC&z-cR8_)+&`7&D_Drm6wZ+%KIZ|a789K&5GE3qYcb(G^sn4lpIRs~F&>#X zh)f(pCJs6eYcg?kqIez@eKW7p0tKFJ2^SktrF_c5ko=#DMe-And>)cNg5>j@M>WZx zokYl=rE6FMsoyyyX_L=V84^ENA`+j7#E&8I<4F9N^90sxne$b&&(Qm)if1c$$qN;< z*~0?uEF!ti611yq-80sB+xcLrz~M3H6SVoH^O%#nmhq(X6vyE07t{>4o+dJAxa3Km zdqRFk^4Mo*q5zX@I9()Z=og>8DC%%B`o*(o>iJG@fpZ%A#j{$| zWaU}Wo2XN1<|MP4jd9bJBcn(mN~?UKugtJhLK2NsmdIC;_MRl^GO|hyBvTR~ZP=_w zlXk5n?G%)@2&FA{dP|(sQQ9J>PO{}!MY2Uqh$uyQt)Q7afoCoa;BnThM;n8#bTS6d zx~_)iyY@vGiu81aDAH6E=^Tnw=JcL-mgC%dPS`;T;MVb=nJkUv-!oJ48$L(w&;5aZ z5xtf~yk9)kT(+?1l&96nwuR!g4z%$F{9Pp}rlAxUP>PFAZ-sLPD&~T;Vw7><`$Kct z%{F|*E~C6+F$pE5*g)5hS+9u1r=uTR6Q1F?f_`jG_+?GX?dlTB1FHQxJMhcw5@M zDSS=%#3#J4DLgye9&tUuiFPw7ooH3ev}<8g(2!s=wC1pyhAN+XPhenExRthS4&M|$ z#^T))z6G}*Hiz@81Epy0mGadAZuLGeK@H=1yaAO)Wc-RYA4M6Dg?r&>`0;Q)INzk` z{|M>72;=Uh)L;{(CE(O|iGcgiunehJHH*{}X>&1BKZ8qy;_#AiQF%%ZX00O1D~|SP z5l?)d5Z~_G8)k@Zo<#gx+ER+d3oYJr;bn+!sUKaH^sD6P7Da2GA+57obYW*5r^WYu ztN_r70$3|MK+{8ZFMwK%e$hmXAysmpHWcGrkRV2eV>SAP>*yD5IK4NWx6r#?7e=RQ z{C&1~gbXAtF?z|xCxPqHYpwTR|x5`_mWLuFWdSGZNBTww%$YUcGr2|zeLSe*g>N;0yh4q z0(C~ghu=4sW@N*(>vIbQ_myp}N}I2TW?Q+Ni?4@nG0wUsJtOkW(&h)qb3-pYaQ1YG zLr2N>DZ;j?G+Oo=v5e*5VT9#W3?hu8uxFkZXq$Vvdb_ATE^+;-dX=ufDE+uKun8F0Bqf%OV|?m zI*E5D3O!DBrQ4>uM%mTIIxF@QGLOcX&c=)g&Btck>B5glr_-?0X|6(ty3-Zkkxnnh zP!%zw9@1fWOVZ(V>~Oj(BcQ`ook@pRVuG$>hu30~LvO^Sgx-uv4XunxdkBHEB7qr5 zUsY}})DUCealphHNkx&>3MUhY(2_=zG8VTnjp)3;4M?!fdT!@5=kx&r{mm=YE zBwUGvtC4Um60S$WjYzl|3AZAlG7@e_!ktLC8wvL!;eI4Mh=iUD^kSel1AQ3i%RoN{ z`ZF+qfq@JRVqh=>Ll_v!z%T}eGmyl<2nI$nFp7a>22vPEWgv}#(F}}XU@QaU7#PpM z1O_HDFo}W53`}8QDg)CPn9jfq24*rai-Fk;%wb?I1L+LRV_-f53m90)z#;|~Gq8k# zr3@@%U^xRT7+A@`Dh5_Fu!e!P3}i5n$-p`W)-$kyfsG7gF|dh&Yz8(nu!VuG3~Xay zI|Dfk>|kIg1G^Z=Wnec0dl=Zuz&-}{GjM=`gA5#E;4lMu3>;zLC~w!Uz^dvM`E;WEN6bNM#|7h0!dGVPPx_<5(Ea!UPs3vM`B-$t+A^ zVJZvLSeVYj3>IdxFpGuREX-kHE(_@_%wu6b3kz6S$igBP7PGK~g{3SkV_`W9D_B^` z!YUS4v#^GRwJc0eSVkSBYY)-8X(+`mj%cI9sG49bCOM3hu-S)xOfM9{?P9)qN8`Lwtpho}r z!Wx6)i)!qNof~=}HeFMqUk^7{y)v%Pz@I)Q49s$^cg}Kc)fDO7JaHlSFpNsX4re1q zvvoSm6FWRcU*tCsm+7jgaYAg3y9Ew1I+otz3CZQByF)weZfTMS=euhChK*cta~y+&`PBgEcz+O}hFIWcc=oe8!h zcC?~cX*(KSwM-VfI_ubhUG0q7#WO~%D1~%3rKGXy<#~8>2ENv6DLICCx2*g|~QFACYT>KA_JhzsDDd-M?0@)TbC= z%ZN1GOC&uIb1;TqN-Ng|JuWm>K9jCyvuXihbAJpq`3cRXwymPE_ABY?&fdR9Iy zS+h%xwVzQ}cNRl^Ds;9l#(wU}F{W!Z$C$2TyMgT{wp-XLvE9aY2b&hPp4S_zUr|qq z;i%bE)V4k$P^0_`*Xpe5&Bp5Y%~Sc#{3(2;5nc)vIy^#S0o|jSfELjnw;HS83m?!< zc%nYwV`pV!_|6?cIR zHj%r)G#t*|T0)0@=X^Luc^71n#$AwnT4A$dOiUvb#b=dycT}QuM}H7V9gdN?BYw57 z>}~9w#NcWT=20wNH9DMsSL$$=zv58Y-?-XxSP=yAv^tERcfaW~{pgP1B-fygUL{)>>k!NMZj>P1}9E~{^!|m4iXP?bFfCbH*3d5S4Z} zsxP+DGs!pnD|iB{;=gZjD_N~R(DdK;B$aZ%wQj3~F8J@_t3vhbz8djkV#l_fe(dtt z9?AM09KEPBK#l}Ak-eRDJn_GdnC#u9{~?I|YaHnzcIgQTu_3+_i8`N6tkOjJc$@ZT zwW~H!yfUWq*{4r6Q9R$o$5hHsB0`%e-(ceBm@SHLg2S4q-bK=KJ;z=aTu%zRp3A?- z^{Dn4wq=fxZ3F6*bgY-9>BqG)yiMsxk}0QNs{XThp=+nkwL8XlNa%u^PvHMn+l%JY zu}eIE=!w5cwOjkPwL5m|TKmg{+Fy0*hBo#>eCLGP-8*%w-663Hf2nDF?QZ;^Z4*0l zhoyetyN&NyJHAVogbrV}?_Rre!dD5M6VSrmdC?wmGVq|Bxchg$?YXb>LNiTolkGnh zDEBvykY}H@H`H?;{UFQDMFJ?-L#xx~9P9Pa1-N~XW8I;1a^a}*d=Y%OVm$o629a9^6yaCsQ`sFq?HOQ zG1t&hSWf8(*@msoW>c9=VaJS*qu*U7pmy3CL7Vffr>zB6FXUSbt(xRF+eeC9f!E$K ztc$p^iqu6ES@%aAh$z)N$#X}>?f6#qh^&C!?E4}-L)vlh3=Cp);HmcPNLiJEjy(tU zcw~DXzeY5waN2x3^m-_F8QAU6JE7Y493pkC$zT6B2!H$NhuoL=+*)xbE|j)xw`N;s zTfBEexy!8m50V9RKEL@$Y0FFt$FI#w9ESxp(>>JKNCwg=V;hRd5ILFV2^$hD3rggVoo(h9O zR&J>2+-#vRlmKDg8BK)Aiowbe}OPhNmms^p`-eG;h0{WdZmh`(RhT;-| zhIaDu7NO(bVNcPPzG1z?W>~!a!up5d`Xo%-O26)*yoyCmeA0MA+ndII;8WJ`%Ovn6wltEwOKVYKQcbA<)-$TNx(w1RiL&9*&dU#k8 z0x&F0$Gir}x}VsJKk=$MIhZtu;E?anavI8)aY*C=<=gEV!ppbYH7ZQUv_>jSOY;!y z`gDPVd{v56OC>K^lqwl(ZJ~F4-Xw`Mzj9W_TP-5wD`#BoYVx*bp2(Xb;c5vC^9GPG zkGueBsLbn!1t533Xxfq-w%g_Pri87-)poL;sVtH~S*m^USo?({yUL`l7L-R+P|mf! z`4HxeEQkvU$l<@vQ2qJ!i9*ha>Cjbg(hB%__iV<_=zX0 zgj9VhG^|?n8sXJCbgb#A724^$w;H|edFh>q#_u+2+NfEh=8al3dcRRmsu#7^)hNT2 z7M)~zFWcqW?DBAr2W@d}b!~G+Z+9hGa$L))9WH98i`wN{ZOe7-cI|P!S7a(Sb^GDR zAAWkd-mBfK{QS#5f9>&GZ>kT4rbG3o1|YJ7sKL|_YA7{~8croqBdC$oC@Pssp;D(S zO=+glrZJ|mrg5h6rU|Brrb(vBrYWYWrfK-^(@ir>GfkdZ`1x%7-#OUkVoNts^Gu%k z_|pa07Ghh3Z85ebCeKp*V;Q#PrWK}@rd6iZrZuLurVLZ2X`N}kX@hAac94Z_6Si#A zX44kaR?{}qc2f@ixx=*6w9Axh+Kp`ww!QexK5Y9<2TTV|hfIe}d8Q+#qo!l{v*XxK zm`<8b;s2jDoiUv?<(mpjg{Fh9L$1TFJl7G|QP(loan}jgN!KaYY1bK-=d3H=Rp2Ug z6}ddct`b+N>zu31b=!X4b;n-ry5PF#@>HN!F1b9HU7jm0&sEno*LBwo*G-q_7XF-j zZo1NS+qEZbZy0wH@ecm%F1C9v&wZCCFL*h1E!^_}f6&w2%iY`E$KBW6&)wfWz&+4i zY8vDo?5?!mwhwU+bq{lUhP#v8Bitk1quickcZxgJ?MZWcM!WN@W89vxZqGQkXS~}p z!F@U6B5G`++cOFOI@w)gihHVintN-+4EId;EcXM`Z1)`ZSzo@dz~?FS75V16)7|sj z^W6*F3*C#{p2hAZ?xpT!?&a=AE8OQTE8U(|?$z!!?&!7diGrI1d)B)> z8{D3aZcmomv&rqrc6&CvJzLzKt!~dYw`aTCljHX6aC>&Tce!)jKkRmU_PF=D_qq4G z54aDy54kTy9LARC_8f69r;fURIEH^5cY98_JzP2ON%w8nDYxe|{_v)4IdumAJd16U z%aiXea2MiVi`<@Kx2MEi>OSW#bDwv=$~{SU(Ou!b`4yxa7Sgif_LtibxN=&HTbACEqHV=w}PA)Oic>*Ob$M3>P_d^rUYMzn2K$; zbvZRHcsDgY_)5ggV9%^z&usjiIY_R|bl!B%bR#@H_|?TRifwc7RNHi0d9^LUx5BsK&$b6sIl-PC!JeHcNASJSqhSlGRfc`hbMe!$e0*f<$dYAS_UAY8Cc*6KeVu3| z$;c2S*~pe}+m~VnRH{*FM$%1&$u#Ye;eFUWBiSaPa*WC~c_!b|9oZW>?VIua8{4mI z-2++%wG3$))-s|;^_U*l6Iv$ifTk?dmQHtIr%to3UKNaTKfR12)Bz-f`@p7$9RHL8~hY!P8rUf;a^s7m!kremMTlNrN&Z= z3#SfJrKH|=*#K#@rpeNbOQ!`YfMX}<4!K()ZMf5pmv{wv4S8dmbl@%C;XOLhg%9XP z4?f!4sa||WAHG=sR}}cZVc6FXHGn}3Lq;%)up-|WV#6Y9s|hF(HK9 zCy-N|;T#vZ#1*b_<=nu}cm~v`h~9_4?=KnV+S{l`K+pekZ9ODGSm;}IY8iM6Gc1W%&pDW9>7<*cB}@@9L( z5`C3aRjg)#x6oU|T0UnT>sjq>plYOQVl!W`g#k+|RU6y+lCSuhjlaLKbXeY6-dWyT z!taqg*~Jgc^K?^sC?6@GD82m5K7Qd>eq%phsC}0lxDH)Mb}2h{Nzf%BTRL%_y3Sm3 z?ot;nxpYb2ExB@assRpih{GJAlo}~hqa5QnC-|L{oZ>X4%*a}t%y5=-lzGYmi=r2~ z#Pzt2KR4nQ{#mB1aFuKPdz~Ae4Q_Ia+uY%evq#yd98eDV*OAT8F(t?lPdM&9%iHyrKV(T>HMc+*FuK(}yZkZJMH*quQd{qiRg8d2ZUH>P)?9F!9k%mS&R> z-C}LP64nfEHS#|I00960?0pAVR9D{jxpRj*FxX~bhM71~bdx0}VFqJ#)6Aw2O-xLo zC5%c@FtSm}B4$nY-K>hDfCU@au^=k;-YXVR5j$3}qM%~$?K}70bM8HN=G>9&yXE=5 zZ}Vgx1P|^myJWtosW#VW2N(t#(hLLY4>Alkq#K49__@dF+Dt>1Aji=WY0FN^B-lfjW#T2#u#j4;dkQjL%KcRFvMP97;2wmunqHiTz{^?R%pnu&o^Y+7aFqciw(o_ zhLwg@hSi2OhP8%uhV_OGhK+_zhRud8@UzuWWY}idZrA}oI}OE#68PC=*lpNjC^hhJ zh3+-f>dOqaeFocp1G5zdy1Az1%mIV#py80=uwg;HBL=42aMZxxb--U5aLjPraKdoX zaLQ0&s5FeQpD~QIpEG3JFBnGIFB(SMs|~gqgYB}xcEw=3YOvKBY}X97>jv8mgYBll zcFSP9ZLr-j*zOu^_YAiC2HOLJ?V-W;$Y3jOJjVXmFxLLm@XXNPIKVj2XiGEN1{rOG zjp@cA#-YXxW2Q07Xd7m<4L2@lMi@sLvyJ2Iqm5&XV~tmX#~E)2=NNPB{AnJTlfQA=2FKXB*OY!)9u`=^XiJH{AsjbJhQN)61Mp$cvGi>XO;JD4p^-2r=a*AjE{x`#c`2WrZ;7Ma}tpRunt8NVX z+rR)D7-$1&HZaHr2HQZo4Ggh?p*E0V1DQ6^9#m<4)*Ju0!T86G#y@T{ez3*(VUh8p z?Z%IH8beErpX@fm`LIv+7=22O?MjX9OO2nF8b2#Fb~tJLyu$eTNn?i!V~0xPYo*37 zYK$GP8Na+~{OY9f>j%bf9vH(O7{g1A5jDohYsRRX#&1s=zk6VeeqeMyFm@_6cCImY zxn_*HX^cH-jC){=e_-tTz}T(Sm{4O(yk_iv)A;>KV~+>MqzA@7Juv=IYV28K>~+o9 z`=&AZr18g6ch8v9Q7`zha#^4k17Kkajib-v%<=lk_%miuW| z_zhrI_zh&%`)Ny!X-uhc5c~{=pLAxsAGgDA2(!a)DEwr=PbU0i!Ot+J#E;$OH=Nn! zHv)b}GJE{$m-=Nh2mD4chx|q}NBqVx<$hzCqkiMy&vM|;a^cU$!=FunKby$hs1GXr zz-d3r6C*g|2hRF|bAI5wAGqKL{;{7_`PIAV2QK-6YCquNAGPLv%tSkwWCxS&V2T|~ zwSzo6m}Upl?O=u-%(R1iJD6n$1$Hpo4(8awTstVVgL!r^-wqbo!9qJ&WCx4wV2K?p zwS#4Lu-pz-*uhFWSY-#R?O=@^thIx6cCg+KHrT;NJJ@6go9$qW9c;COB0Jb-2ixsn zhaK#+gJL@fs?6re3JJ@Fj`|aR>9UQcSLw0c34vyGCxg8v}gJX7Z z+zw9I!AUzfWd{{@P-zFJ?cj_ZoV9~9$aH`#2N>o6!yRCR1B`TlYzG+S0HYmXj022yfN>6x z;{dr1Fx~+sIKV^)nB)MH9bk$BOm%=f2bksn(;Z-j1I%=Qd)2Uz6*s~upC1FUs`bq=uJ0X8_m zMhDpB0Gl0Pivw(RfFcLj<^bCrV21K)C}Pb%0|IaNGe-IKW8wfVXKi|uKlbCCMlbM@-QC98V8BBlwnan`{d}fgU zEGFIGXNZ3Rlj%R38SX!a$@ZVijPWmIa{T8p6a42hll>PkdHxHT>HZC8_%C8+`7dVX z_%C7R`7dRjHdw|i@?Xv@^S)woXE2Ol>!)umW* z)NGUMez+r1r-VImr;|=Lb=?=2W%D0q1H)|-G}*R^n$b2e#x_Ya4t{drx4H1g<86~Q z6Kzv8li_Cy{7i+PJlj;wbX%Tgrfr&L7W`TOzs`nV=fJOXZ7&wuz&snM(S!Lmu)qew zz(N~XWCM$Bps)$J2>qoAnBN4Hz6$O)1AAWuwZY($15`UejRRbEfGZAg)d6Z9;F<$m zcYqrXaMJ;9L07W9xWWcj+Q2FsSZxDqY+$Voth0gjHn0KK-vr!-uGa)CX#$SD3XZ=D zPP_{4IKW*8xaR=(9pHfjJam9Z4)E9ko;bi$2YBWH{X@Wj5U|z8z^aODFK)Ae?KZH( z26oy&u?>{iz%CouZ3BC3U_}!!Fa)e@0#-EvRj-1JuYyajg0v7YC6Eh0_iHR8v|HQl>e+r;FCRIqdFF;9ZQXud=xd(6hHdI40}m`WQs?8WQ|1`|zQ zlT4@CDeyDZbcW3{on@z)&au-?8u-gJ*mIbe@gX4J#7qbQ1tzcACNReY$_!wx2^5;Z zJQFkBZx?gcR_~$)WP5>gHgMhsF4#bo4P3N=Q;orq`e0^5aLER$p;B$$mu-cbEAVp_ zern<88vI;`AG~j{C`?zax$eI$?1ukr(+&Ua@M~H9oBliC*PZYqKEf%!lqo(wDZUvg zzTqf7ktp6;DPHS{u1_V-)S;7bHzPUz{MwVq@os0>024s$zjj6meo)=$RMS~ezOLI= zjzrB9wyvB_s%YxEePwTy1|Jt$5bgV09O-&AboNT<>=kCbzPcr{k^A|DBA6XU0hm2f zPcBf7A6!T}-PHB?!Q4*23EQT+uvj9j?t5zdvxm6xf$Xv15q`VGO$#LFz10(c z^DcYWjlF($X=Cqs{mIC($W#1s9=g$(VkVF3zDMP+-ly>Dqn_37hO3Wzyo11Q?^5~Q zACk?}XA_C@5W>E^9m-vpc)>PTxX|olm3OH0e<$vGcGrZTw^9>pp1VijOM}FtAzVX; zJor13_Ij7OYsB}>Ns1F0DmK_uhR9s@yocpe6KXumyo+JAOPMV5cyka~%53*>YrU%7 zB*hU96>Dutv_6e$t-rd+XbUeRZ`bAy#ZHorUEnKORoBm-ynuKtWmfvK++AiVbB_tS z&pd$J)bBDX#@6=lb-teXU}H&6dl;6R0C!tVGzU#GPlmfKCYXhd6fU9XX(EO%Uc9Zc zE8zIPee`ABP@fN|KLLaAN5V@nUI*G@*aT0N0$D@q;gY^rqOeP$?+s4*WtK{>FFq?=kZtCb zMYa_?iMh7~%>y!Cvo%YYU%(f_uP&HknT~K`P;Il%Acb4G_DXl`isL3_(s2`yGD_`> zWOT}>9^7f`bIRwm58P?%bH;}%BwKGnNaUFo&b{w>F@W4Ro*M>e)-cS)8m4<$kT2d- zI>IE}a(SJ6anR2auljH=EaY_#@;d8tUdW?F(O17b|>eu^rXD#B{+lPA@#n z;A$?t9g3q+6?HfY!eg~Caw##Vpx6nWbenP*W; zx7aF`R@y)96y7^l>9o%}{n+pcVdKJco_}>bJ4NECWwloz$I~#Yx#F`)Wk>urGOcpA zm2dS*Tlq}wL7LBt2x_vfp4VThcKnC)5RWU+>A9;uS9qtd^_dC#{i{9}*iZEOF{x)_ zN_b+*Pl+k-1ojcW1_tAQ{Fsv5EwN9Z#Du_ZLdkeO^uu4j)v{HaR&C;22Dk1WA0PZ? zVnRajTW@u36Pysz`mMw^39aMXv}psaL37D%&wNi`B#CkpqvD@O2z$96=iN+M#r}q< z0swafn^pw~5#+wo<1TJPQmnucM8(T55>3sF@F>ZQX_6%Cv)pwkNf>5s_~b)LUiaZd zkm4VRI6v~oIC+!{>WQJj1?XRk$=&<+5 z6zOEp4ckq%Cr@rF9Mp^Fazw$U{11rB_SkY5;CIAo1gSqzlDUt`lnGK_AI^AWGp`V_ zxy6T(J3hDgFmlJ|t`FVAnEnz->vW47#L9LEVnqv`X0ekQ*H#p`3&s~pNP(A$NfyNh z{p8k|Tb{?kt>z;h+Iv2^%!%OpFiyh|40nKu@mKg#CB&f8Hr!^ z5>M2+u|CrQvDWaLfIPzNvH-*6cjG+R`i##8BA(C!ep)v%) zla*YVjyQPp#=kw*^UTCA%dwnq!L2E_0<$ny->Jx#N^qYvJ`BAf0j&YHOVsw~U&_Cf zB4wd>aqN!RlGt6bVglyQb7#41*M;7LeAMhZnh^GF&tvQQYb0TNvD!g;7;m7k2k8gv zRSf3`qV8D{f=xVfd9M68LRkePM4|V^=VW#<8zclAt4)UphUkMpx_+phBCgS2N#c4K zJ}7ZV?BGQ4DhG}NBLcR$!F;n1<#42WYqjJp~7OuY~*%N5pAfpP2*V&$G# zHM{>wVfS>y94wa+~gk`IEgJOlZDH>XZ6m*FMQT`=%z^ zQ~RZgQ))_%IZhnHM%t>AJPIzcR1%yIs~rvn$Db4!t{|@O+X?AEHHx^{~mn%&h&u5YX_{N9? zpqap0ynIucv_G~DE6Giq|`YhIgK z(c)2p0#1io<+{nhoap zlVS5pk+pA%LfbDh`C)0{Wd zP6HhzEapKRRe@{^tiaif)fG!@b8ImOVj&hV(FsO5L6#GYb%FvXnCS#loFLZ;ra3(e z;LS6V+F+JH4XO=h`P21p0WeK3O!1P4N?t{X7}14Q{H)#pncM6LZx`hIB;=ymd9=J^MACrtCL+v1Nd(7tf(Yy8M<%2y6*+Ir2)R zNBs3JOZXeH+I)yV1NNl(`dKKDx@AhQzJTxZIM$GV2ua{L9n0><>xkg;*SrqJsyl6v z%tVdGx_2;*r;*PhPel^%3e?u# z-XY}uFis8VuJ>f11EMOTJi_RARf1t;xw#O=2rj5lKU4$2Ts@8Ah1QtjkyxvWJ?jU` zIOjy*zHPMR7UiEHgw+ka(xR|ql*cMtIuv{852!6T74RH!R>?g4SZ*HVF@+17uU`Pg zIZv-)#cU+b2qpH@`(72SF*W(^p2a zD)!isKsguZF;YW6w#B{FE~g%bzufL1M+kyb+~Xi#hIc{o>7Q`VGbrjg&ylW@#h_!k z6;KRtsIXE{=L$7L{Z3)19&??hH*l_VNxJfd2%igrZ7EowgQKi; z3+^rpMVR)!pva8v$53W`+jhaU;{~+*N;YwM5H@jD4vsdG3j5^_%b{#<{715nZt!dXtsh7%U}BQyJKxMFCTYHd zeW~+YTn1{Mk3Z>Am61cDhDLeVSCOl55g}SURT5f?YpfK8!WmH-kA7-=i14QQHe$J< zx-?&yh@|`S*K`b3nc|-_X81~Jkqc7q$#NQ+8I={~vHFfrr0N^9+QsHHU)Z06 z#pWzuSIxfO9*2p_*ym}MZo2#2qB{+~B~OMwENXa^w+oIj5)Mz@ex=-&NB*{_i2q_U zoO&PTyVwk;-iP@vQ5&6IBRD*bQ{xadUFI+%YNTfsv<4Me1vXYY0&19l-*|-YNMG7W zrt)({e>WV-oI#qn*chu~Y*QCq;Lw?m<=5aVR6*HmUgN~!y$XxTGck+7;n`7V!c>eI zq{$+g@7b8AY9y*Jvf6A&b(C)q$o3uWEBK{L`(Mo>{W2p;&8~dY>YO#KVk@L~jmP?q z^UV<-gRD_Z6qsA0iGng=g#xbLAYYJV7!!eQ@Z9r!LD(ap9LYt#K<*J3AEvVNp|MQM z+ok|ee4DV^NzmX{ zz?r~FzLV*+cF!efWkeO3m21v_r>r>(^WH}lJl^{b@z^5-s0qA+sh;ybL1aOMN4@Ad z*>I;o)168u@b^N6&Wp@g=XB5cOyN0Vs5r{b!e;hOG$L~Cbs|)#+m3`W*EbJZ&onwl z?|Bl&(LU4bxeB=_bZd5K-cD|!;T92xKJ!t8f3%7~$2k^e(fve2_dw(+iTd1oEl zPXTUpH*WOy>t4&lRRh&oQe<=73?i8#GHN|d77+D}i^_@0jS{!cc+7vZd=QT!T?>}m zpfA#`*Q0CdHmHqLhba68S&>Bh<2alHuLy@Zpy#!UVfqS{$Fk@~KhC9BAlj|!fpshj zTS#O3qtJvWYO#!RgfzBDd>fWxPO}M$qvNF%!KJzzi*SlCK57E&0z6WE;#Wbuv9;1H zys@>?+`k?+oY|Pk2Y*6L?!E4n(aD3ot|m|}ijal~L{;zf#6yJDovof{6ap&9XSi00 zn}J;jUtCP)Bso#^AaGzAVTn0W6Qh(C-M{YJDvR858&`sw-k2c2c<1@J#S0aR2fbDc zgQ{uu)XMvo_pk5XqJ0Grh+_1;t=|0>@iuLo*#E5 zV{`#>a5Xl@Nl}xbG18>fG6hR3vy)&B85%YA`;H;@noP|)wei4dLO)~TRjl+TQE0JX zrOQ-h{@3HU)%E5LX5``${HCY$$o!C7cw{j7gv=mIZSnny!omcbcaiJaHKff$W9Hm* zo-a;gVB%6g-7ki(m;8d?`QsYte^%)n)fuing&A%%FR4ejyLy8>Z_GcpQIU^KiF$rM zqU8lZRP*OwI-E!R%S~!&>x(iDW^BA?UiJ#iYeBsw^{BAF-lRx0Tw&7^4bFY6)3PPG zD2jH0QA{|50KX){Gx%r;{6_OqI{0Q=B=G0;Q=_It&5o9Kxw`FJH8hd-tsd5G4x3(Y zOW0fDV56QQ@ID)#ufT%Qn5 z2P(bom+c7Nw8m#m`+TNEG0$-UsmV>|&1zw)Gr?ipb8K&JC9ZIbc`JGNIns>vTqqT2ISrR8JF~rZ8GFD;yMt1J4vbmniVB zeW}>Md^Z~qwz{~q{@o)ynLjVu=2^&&Gq~05<{c`x+-{H?mDXciT5Ro`hpL$$y}yx) z^7j$obK}KTkb(RgM5vMqT*=#B^P_p26XrxNE8;{q94FR?SBTS}6z}^B_C7Db46ut= z<`*lbK60@uPp?;D8fTePPi;H$SpxGixRT`p`G5gI26O6WEh>7gRqBqZAHYe_A zTw&Z~{~GO7|1yJZDq9vExt{BW2gF`Z91g>xu*C0&NmhLxoQ42J+}N?;kUzuB`8uv z6JAFmVnhQ|F;t(yvNp!YtB7(;D=f+fot87S{^HH1ivHr34fPk6d;0fYZq>bCubzQF z!F_p2$-Ub)Z)p!{9+=p>TXI5D@9*0-@0;2^_^sx!(EIiE?}hd49iEt)3V+cDej6Cb z|KMZc%Gkas!uEgRr|{>^f`bDil6oa3_e~8<>K)jt&+CD$1A8U)hFk9X1O^A=V*D+& z;fa0thEeJFTZQodz2~6(il{qOxRpOS<>$ce$ti)b($v6|zP$re5`RoiN$q0~{KWpf zJuo$;-|KA4E-)&Ch;i4+hcEtA_ZcPvbzD-W~ zL4IC9K_sd7Ps!Z`Y1#u(6-2Ra@xA$13sMsK^A{iQ;#0m) zO#K@2fYf`v->=P^Q0vN{p_1Z##h=2z|2jUk$3KMMo{*dhH;8r?zwmb*zvpnNRxoG> z)uP|~BKiC86H{ExU-||9R{B9;_Y}D8G@<9uU&i-JY}*`KVsohoEJX7e`S1Bns{G%* zPr1@LR@~(p3#Da;wZ7*d%M&d)=uHUaA-?C}?UCB6=f40jU+upLaku2&a7S-qT|q}B zrgTm2la%`N`@Nx^#Y0r`Pku8d{4I)!4w|tDhDCg@(rcV(B=;IMN!~7f(5K(vKB$B_ zY|1jL^atf{;{M=KC!3IRlqkAZdm!o!ZrO0kK}YksA4bF9hN+U5yg+nO%Oj+j2$!^M zv;*~b?9%9E(aYheTA(JD5!sbSV0JvWni#dw$L|MI7foFnENh7yTp7Iz4rk!1M2+Sc zOEx$=3N=_0$+w6OXu8zX@lD)O^WF5c#wtrwZ^@uUL~gD1=!9Bh=Q8|csxZn=u0m|fcJ@)1tfW=0QDdqgRkXm16- ztxsrdjs|o48MV~ZE3d0ynRL~4Rj5wPyVLlW;1HHg7|SbOGhteE96emDZ0y4SU|LJ# zrgx>QBSmgV$dt)O+I)&L<$`G8jv^Hqrx9SM#Jg1!(+O8of`?T?&PX7gF%TgIGrF=z z0fcv|8nLj{QPq- z`Ogcfg~}2x`OgcHF8MG219{2+f8bXCNg+qz=l`l({STU5ZuPIx<^&x!A2H`O7~xlL z9^rS?Y~wFVn$}=a$aMH2uj|ic_?N!KTlEK;#oO;^Gq#gv+mQyga{jt|+pz|=;|*+e zx$Ay}AMLLD{S9ru^#tH@bQ>DPg5k%ZnM~ zP{gG(-(0Dn-9l7lit~62(GnRAoN;uk_0B^n^a!U@mztKD01)1ccN?etIsx$y(rG4j zg`>YoP2JcH8;yryyXuzNdhtxJqjutiFD;)SOuNIYpqM{K!(O*?%bwzuh&|ySbMEyl z0hI^~U(Ig*`ZMYPVjH2bsqq4!8;Xj?`l56jB5 zE78Dee(FPjx=Vv_?rw>2{@trYPyiLe|I9}a-q&fK1A$_1FQ+RbzY;-*w-Exc zn^E*M;^c|4aI1GK<%80~e3uK-2aDwSuH(LN4+Y%_-jE@=;u-&5rF`)GWBQJR_Dl1~ z-3~=&yxRfFSMY%K8f5-ipCa?0R?kaZX;m?V_Jok8sqH)ZjwrN-{z{|YG7?%eg2unn z82({GLJ~g_9N#nW>y+dl6XEI)T=3u*ZurY3;BrS`b2J0aKd<<0V%PBGZa*Z#^(g6| z@Xu0{yCwHT_fa%|$9IHI zR0geL`{{&6rlTO}g4cHio?15QG<)!jWdJkTbjOcR%3P5#W`t}Yqtg_HG1Z!?rWAoD zE3r{rE|1eermc}7+UF-2)b_MiE2NqRH*sd@Y?KTOQ-M2rdCv88|NPu^>&d}Y9!7+L_48Y(V-ewaTf0WqHFeB0?CF5;Shh7 zqU%42jdyF<1=KOpm7A?lE)`HvjqJB=;rQ3p-)2Q&Ry?PzYNrqLkhiOlI7KYQZosCW+N!c2jsVNFA?;vdcoo;axf2T*M}QOfU@<;hznroAePPWYDpuc9XFVYyXzo%OC{p+3~ay$a}%k2&7a$ zF>Fq~Nnw-21jW*@e^4J|zshHMblu-28r>8j__Y%I`EI0N7l*2CD0$-2Ke&L=H$-5- z6x zqZ9Z#Yt0&tQp&hYmPn!Z=mfYoM%m;1H5~OgAkD_i4$9S7E;2!>DSZ=z0^7C?ME{EK zoj`8eBmN5t3Ty_8c`EWrza+T-@Rgu{+O4A<`Xu+3?;34m4Z>?FS-3^5CjZc^mHX%W1*K(hE7O2=hoHvLN7)b4G%AUJuR8RMG&)(fGZXR>@)KqysA^(|Rw}(tUjR$bPM9N< z7GR!L0@%c%!g&d#W4V-StJ4uM^HgB|PEWv`3r(OfVV>OZIc1fXeNo~0_4wlR>M>%k z=u#}wPpWg40j}?LV}`cc)l|UfQnJQOVw_)3C@8diURm%`04g}I9!c4y)DsI?-8`{6 zD(wwH1nn6K^IZ()48>rm^)!5ysAmDJXCds@@ueV?O!GCOpWQ4Ty(0Vd&Hgx7yHdBc zX?ouuOn}<%%x|P5mrL~qm}l=+j3A3}o;{}?x;?3JB;MUtG@9}GR-p@GUSqHL!5 zROC6roVh!2Uk3qveRzH&{4N14`PByEiyP&sRcfs}$yx{bxQb(NU3F~_A?mpp=~~Ya zwIFjrX{4=NqG}ci-kaYDZ60thIi?jVsac$WCxqQgb$t_;T9U9dL2wI~5{a!zw^*bS z2@2W}A!u1bexv0HXvqSWty0$5>kp`Gej~oh6=GlDIu$T9LOz(sUl1vnSgr=y*Ty%H zedYOhEs>VvD1)k2LtVCd3wV}GnR*u|0`n-yYq%g&VFaf%(hvVcj^Or(f=06jsokcL z%_Pl|3{^Xvt1_8PU^q8~qvqlzW}J&3iMCn=$&%=@zL&(xuVSuDpc?a1Y|O-zJhipu z0l2kl&D|F$gS2&+D9`f<9HfcOplCF-e) zbgd^{&4Vv0t^d2fqiR+n5B78mO*Yf47>RBq$FkZn+(<4c2#n#)i9Qzlny~k|=yn)) z5J_1G1Y5$aN?4shRl`?StcKcXtEDwL)Cml-fB8wo$H^&)AO85GnDZ)rz!zy3-?L95 zMSBZ+6587X*8@t!t|iG+Fv=)kkHS&lX{QR$M)vhyB&ji616Dhh8^iIJl#b=baVp(u z93iSLXwps@WqP&2H+xTScr#869v5{hB=`JmDiY)7Ag^NQS@kINCq)zzn{uhE?<^dN zOPr&E+&cH0FW}C-JlgAMG&mLwjz@zN(cok>Z6@e&FG9#=P{=n!?+UZC9z}QwXX#_P zhOG87GnV6TNWIKl6=yg|xUbH`-GWG5=sH}i?C^53>wpd;)I!F$k!x@XG4|5K%ullP zgz17)is1ZGZ$xz;Tnnh=rweeDUn#Ydu^zSa3`cp7axfl~(H5l~z|GmF93d zR{L@e$3Ktr@+(qSsDgn5@Hxr#u~(DDKCB?UT5W3r z!F6kd3M9W|8PcJ!!(oCikxjjHR_T#^JuTG4vF0=$hQ2C-a+7Vs$FgiIZM4|j=v(=` zKU~jpH;N0@r2nsx{9pDApQ}p$w>DD-;KuKu01TFen`^?K`Ckd|Z>kL+V7eYY&@{LW zNN)p%v;jlgfQ&XEvkk~<1BSH$!`pxnZNSJjAiE71)dq}i1IDxgW7~jnZ9q;NV0!sA zHKCNBK|*<5$N`n||0-F|0V{R;#H%AIp?Z0v9 zREjUOAz?+r#)J*5>O8>~9Z`A{EWH_(7CgFI2_VxO6<#4|WU~M%@giq_E+P23c9v&UzL=|?7U`n@I zo2*zD%+$#1g4zssH7}OcEY5YfU~AD>Vv3#wT-OR3sGl0RK^GA?qe|4=N*Le#cnSgi zpCtmh-bY|wP#%^Ri5E605q2wKsF_YGiQJbZ5|tu}4Xx0=UiZQeUO|PW#{g-iw!DT* z@h|rYcIQ$eKbW+;?Xh%A`sfY9l8R&JC&*KjP%sq=|K5Qma}1^tx!(NRs``z6+03p> zNEKQ~h+j+kfT6Y2`X&A5@M4#K_-}RXho{N)@H=5$>&d3nqY~5a6WYvjQX8AwhICbP ziA!UnR2y@%#Y2QG7Qww0u&v8VC64?9YO4f>n05N%1dZwCH`E0FVl5JQE0vh~jEt%B znzvHR;VHNmP5Wd}YgI^ExF#u)OLPU z%cyur!`&e@As~%F?&>1+kBTG(7wdGI-QDt-1)Vlp7I)fYS=wo{WqGG9mX)2hTBgMn zS!TvQrXg z(`lb&Z>Rm1o1G3=Zg)Cpxzp*8<#DIOmVup*STZ}8TPAisYMImdm}On(z1M}H!Rz`+_dcKa?5h8%Wcc) zE_W=WWA0j}#@w?^kGXGI7W2R|C+4ALUd$uQqL{~)RWVO27h;}THpD!$tc~e!-5xW* zx-({=byrN9bx+J7Ygx=->;9N@>%o{I*26JFt>rNp)?+c5))O&V)>ARVtd%jtt!H9J zSkJ|bv|fqHwpPcCvR;cBZM_vU#yTi=to1?6IP0C59P7Q9Tonp<5ooXExn`a#nJIy*fcDgk?c7}Cy>`ZG;Y`%4D>@4f}*aGXs*xA;} zv2(1mV&__?#ui$q#m=+Nh@EfEk6mD$8@tdtFLsf2LF{7dqSz(YC9zAb%VL*VSHv#2 zu8Lh@T@$;~x;u82bwliG>$=!A)@`wCt@~rwSr5mqw;qe#U_BMP(Rw0wll64$X6yOb zE!K;%TdmcxMb^i$+pL#kw_C5q?y%m9-D$lRTWq}%TVlN%yUTh%c8~R8>|SgCxH9Y0 z*nQT4ar>?5aR;n};tpDe#vQUwj5}=2j5}f-7FTW^5qH#@9e2!{6L;J?KJJ8dY}`rf z=(tnXsc{u*Z$msJ9B@IrrDYxF8-m`jw+sq=AO7kO_K+Y--**Rl8Si8#Vc&Nu?7A@V z;BnyK@J1=>SkAy|E8&=U0vtJ1GG`d7dnKQc+-om%uRZ^Dum8H&f7rb!eY1Cl>|WbE zy$q4f1UE$XU&+8}wX;km!%wT7WzI7c7n|INaIs40VyDB-h})|cXh*ttS1si3N=Wit ze5qfpoaC+3!&F2_BCaS4oxFhx?ZruiN}t{^qmFMlXESeFCC+djYyjlU&w~wMs?Z%R zZbaG;{cg5X$Sx}tJ^X8_NHDiUadt`V;%zcW4|k(yGh3QT2vb<@B1CwJ394q`@*%j$ zNV$&^gRZZ<)OIIyT6>iw@dJX(D5u&>4}>rm#(NZIN4#1(mNT;2iEuJ)1Pq`Pxk;P~ z&aDK_d!hG3If~W~zV1Vq#@+-p8h0bpPLZQgGhR~&s)|2obuzLz;Z&q_VJ4cs;AtyETK4IA2GRhRY|r>D^#{vF!A{bjEY;oM`&fcXSWV`UDApl ztDOwBG6ia7GB;Jw%44THio#E@$cqy!kD1SU|JXM*ushs!7ufutyO#wWVzbA?4ST75 z?0T%(3l!u3`X|}=A3)=$O`{&f)2QSb7JAV8R1x%4Mh#8^*l4(s#tqb;ej>*wx8V*} zPebD=c&S^#*nE5j{)_v?_^AmKSw92nb`r5#^Y6 z5)(74oeP;1LMC&$d1`BcKM}3(5I1ovsrLOvc7dhLURJHc8LV`2x>pWRc%`^tL=x4` zmpTVf5XqDpH>te$H$v$`ZW3b`V~L$gu&RWm(F(*KvyR8@C9zsqZax(20xoDF$G;pp zpQAYCH~*tJBT~-dGa^*5gEwHX%iBM$uM(>!5NO9aDQ#N+=HciD#qRP5T`YVrhaGWF#NTIWTSbe$e@&OX z=ZwB0v@-N`XhjEcL!_(sbbTay&+&x+de48o=RfN`l*DSY>qy?!+~*IG%>BInZ0Nbr z{C1TcJaqggiLPv^=Z=5+m&n_Ob04tWYPf$fO%t?+TMN71)tpLNwM&6l$l%W?GRk`x z?>RUnbVgqp>ghG;Y$od~3B$K6w+>=h&joGZ_!*ydYTf@;f?_e+;pXD`Uz+tOL)p)& zE-M`%xQrK0WGrUf_^ca>&%jrQ)`Y6$5BC-MgX!gsoEqN)nC~WfYNh!d27Xa9xIR6a za+xmgw77wOZ7c?TE_8^&iE%qaZQYTATR)L79<6e_N$AVWI&3d`pol%*E@;M1#zR@rWK;r}?i1xmmgZoc zWi%drXWmbev_4|BWx<=dbWIQ_3occ&x}F5h_3^@ZTA1(g2@F+dRrO$%{=x*FSE09 zx>gLo^k-0&!A!O7h1pWuKd{_6*!FoY=mJ*-+diijOxhCErm9VWRuW>|$UhXVV9{dcp-nNa7L~RL#{u5*O91?;3$`k2p!H3^e|$$e>&)-gH5U zHQ|Ib@;uK;Pn{^?{0pnS3~^q8S=VLmDo5LryiD4X+`n^M6=Qwq)`L(6 z7*7{>0i09#$7$T^L+HUfd}~8hy7d21cIm1;*wtk&J(wGAN0$4Ia&EAqHsav?C{)~( ztJ1lgG=X>u!+ z-8p9{G0~fwCpGs>XpW}Jo`fptUa^~KD&MKnlzB65s{bbsyQ39umGNdB`l5+49C72M%W`{IBx>rc zX{|;$Mlik=5Vrof6pV<*n8f{FfF`R}yO6BD&}nA2XQujBarAqMx=5|A(_c-PpHQ1{ zEkX4talcrp^nTy#u=I_Dn+ejcomwT%nQ^G_eBl7iEpcNS#jFbmMHQiNoiylq`xMac`BkaR;+f^DgoIaFO~`RM;oaf;FqFU4 zRDirjUV{G#;eGm&*CTYul^RM`5@xV3LdB^!DV&;;*c>{cm<2CqrCD%15qlk zKe4Ubnd7xzBks%`r@qp5$vn|nZ64*UF=sh1o5wn@m^EBrT zGqs%t6L33^6WR)i(Rqa&r=7&NJb!W+I-)q&K?x#zl!=2|JFm>f?K~CtJ5b#17$L%K z=!Co*pca+HIgw9>s$I%oP1Lnt91$t&DXo+ZWSxHCCql3u(OEfaSs(tg6OCIcpuq-- z>vJTp+7(jZ0Rt2HQ(|t)>KKWYwW#jO!uM*7#~JtFKcbAgz{hL3c&`Rc&dHmxoChSH z4OX$$8wy)>1H3T`1BS7FbCP%_>w-dhAD_l|O+&NT;>()_4Nccw7|pW;;hpbd#w|0* zd>g+g!Cz)fx2~sI?(d0{h!=f}5Nnn=+ftFF9mGf$HEb)HmXg$pGqP!=f3ks9dr)E+ zv6nNRiYNLzjAtptqw;J7QOyC-LX~h{I4fJ|7T>|2hQj1VTEh-!jv;R&cyEHVGDEEInSv}QlD6OBVOttv-HcH`C-eQ=&neb+TxUIb8YX3d$_&h z>@y9uy?b4y_6ohXnDfI{I9EFHrCAgW_aaE{jHg!FqlZ-GKA%<2E#}qEHBPzDR6;y@ zA4BYMSnaKWJfh7*^yfYDdMd=W#mtM1-`V7HKjp11sApg%br$ZYL`USMh^_e;ACX@X zuHE?_D1HyD`T(r{fC_%^0}P&jIa9?f<|xd9ihkvf68hD?Ya#k|&h@Gi+wc%K`o4{B z6)WTxp$iJJ8%}$Qf!q8J3f#i2@cbp*R7As42(#D#&2Xc0a3tEr?_T;3KM|!j!P1+Z zTLdE#p4b?ybi28KL4{|9p(i$ksab;IzQ;I*%0Yr+irWdn7Q;m?_oia|ksdxPjE;Wl z&jk8gwucSGGYI%qlU|fpO&}sREzza7dXzAAPJNtLXx6nF+Da|F9U_n)hKp4YQ@Rp) z<6jV_hYik}M*Bb^34M(+Bp-T8ZlWz0W1-OBTvU`B{tT5X6U2ETOylYnt75QQ6o_u2 zV#_BKw(RZVJD+vN^NV7x!%>L6o+hhgv=5ZEdv=!S)c{M8Ddq1gq?Fmg$z@=^1Iq}5 zZL-KuI#h%~;{?1h-DLzc64a$%WEWsxos8?)to1tWsY_>v%k>;%-xRRTskYGYE&-?<&H`x9y0mnf?dONu67vs=wm*8lwr`G< zWV}wl!@1qLQ_MeLib%iZ2fY|_0m!FoOaI;Zx6n=TD9TH133?{<@(E6A~|37-(QHhf(;zKNY; zJ;?;Bqv8#*Bs=E}#18C&)2l)AVF=ZZ)VgANg^(b=?u@J@ZWbPP;ybMOZc5mMu&H5rVd%1;i*Djx zWs<1531{$p?4j%8pl}W}rJGNhOpNyxwau6^0IqP4Hv{Mp)j+->1(?LF>3C)~-qN8yK^dmvHG46DF-tcwg*FTgVJ zX#ClPa`&LQ38fs~3m`isj~s@VNb7gw;QHMIxPJE#l6b&9;=~u^Tq4B_ixI|679D%X zjO>`|4pRu6$0BGrFGx6RSgYl&prE#GpmJVnaC`Y}LE+IK&Rub>lE?r$GtBda z6}7u1d5(wjd;;b96w31n_lz#j{3S@9n=LwxAWz=(sZO1*aB5)`M94D0f@H~vd6h?$ zUzSQJCqb0`bvL*Hx**VBH&91K>AM`E+yb@k(Lomx4oc5hw_D_l)icVbWfID%5M>%f zIS8Um(+%cPy6O8#Po(dvdOFQ|eqb^zKybuTg+A>+AboBUy3FtKYmWUnxRnja*<%4ttYz=Vf1%Nfx*@oVYm>+gFvqwQQZ6W5i*jJ#A z8M<^`rtS&@GIUuw6a-~}eK#tDAWhS^e?gkQ3^lz~)HF?r-+mz}QF$7Xb2p3cdy{Uy zNqo9XFkhv7?qK<7s>0M>5`1SwoiDpMeLxb8#Y;O3ie>=^MKeq{9KFAn!A_9h0pE&b zQ;aQ5Fd`+uzBbZ`F7PqUO@N;dB-5ioJ}UEt?PVS`@s@QYe54rqNJ;1}LAjzh^D9HBoBojh(2iJ=oGH61z%D?3|m#e)BH8kw+w9 zH1^VthQb)bhl$a;u{xUhnZJ?D55KonD!geW1pU1V?{=mj>)Q;2{w4i-vqlJg)e6t) z`Xb_U5r)1qdi4k1QWgF!1qx+t7jbQxOJUVv9*H+TDiODNX~#k0w;4!$oGwSlxhwhH zVA6T3BIS3cNDU4tQH~R6{@q{ZA1x?XiHvuq7h(dE1_gpHY4AEhWoqL=c;-m=; z0?51;SnQWWMcYvYF-r!K4?*NX5Yu!)({(o>h&*UM?f}a6k@H{MRVPC>62dwuuBs6b zkG|$5ud1zkaUpalXsNXdOYNSHEcId}8gHpMR7u@C%w{Jgz6H?CW`> z+8rRK>$f}ix=d$fP^Pnlmq;%v1`1{2$XfS@iZ7AEiF0U$Wy+C4Dzd^YILOd+YY3Kf z8`f6kMMha1p8LR4k}PIJSrkB7%!aZk(9O}QIKVkV(EHGCCpWcyoq_jpUy5AkFU%KZ zDorT-AQI|cJYNLUG&gx%|0|Nm+b~ND*OVA<`EN81M~_UpiTLM8Bx2z$nnR&9+1-|8 zR};oROCmtufM>&ery$(94ZKQ(;HYBRHwh`6itxDM`VbbecCM~aH%~WT_G=fJoH>mB zdT@A|GcQaSZYn8Wh$M%b`^B4lTsiKuV~)q!TD4WeM|F3Ystb~l%!Nj>02;|cXe0}C zi&UwUm&;W42~^y4JM>pF;%*5Smre;~q!-|){dO}#f==T)%7M9F2^+7nFN7OeH)ptA zg?KK|ErdK5>lWyiK%R?rOI3N!J0|no4|&r1sq82s$rT@EIVvQ%!T_A$vbrVCyTz^p z_b!WYf!AB10wrYcqTZigM0^(OY^-*fZZS*>g1|D}ay8#J$%10`Q{P|R{dXw`->feR zUvJ(PzFmBz$whgFxmbCn3{xX!7&HM+Js}J502CmhV~O^+Z<2kP5L+)PyrS#3NW#Z) zY*lgFmk5Fto=2QbFGXUjjNfDEY+ZvxXGMM6a%P{fQ*C3M z3+#i=qPtQLt%1O$?m=lK?Y@({hf|?Ld}-|3|AFWp)Q%qz(mxRIk-%z+z?pitOlRxu z4|WrJzehNi+QiR_?G%K*m~pe7p#$(+Hao+`{ll(;U%M3x{;F4Xq>2Yb5#TE$Jiddq z?}|=(2dhXYyn|Jw+XNFrH_6WYj_j3=hl&|E$?~bhQgja$l1~O=lCvUhG>)_PVve&J zD=pZbi6(-r_&U*EbdMa>mEshxB#vR+U@gtZu-2Q!F^p<5{S?25QKa)@x$U|l-4rfp zhwd!^w!=ViKy<>1+v-_-A>&$NVP<_i%vDg z7g3!Jscw}$S9pSo;FDa4O=qYf!vKYm<06c92P9#5Jh}Dkmg1}!#kDg?Q;wjb-r5Z=d1pE+; zaSH!72)g_NmuQKQ=>chMpm+KA-c3iGIDo%p9z#P~_ zHdFrHVU-#1W6E5|HQ|^eB^<|Ld>5>0n6jN815rCi$ek6c{_qZd(MOx<#T?TeSIhOQ z3Gq#E(!62(0_+Vl>R)=1qd;Stk)C=)^i)@d$#2OcvfNFnHj?>*A}!n5qw$A7eWZC=OSp>?QP|Fv*>l|d}n?T z!X}A0^@?tGn`t4}s2V7hSX>Fa5vJmH z?<(AmN;T>gg6dwUE7eR2RgVE|UVs!DK4ZD-Ff`oI1>NMc|LZEb&}TA86uKmmFTSq~ zT^>FD1FO{X7p(RcY`F|}v$u4&bu>3FD1%k-#F0w-Y|sJ;=9tjw9CfOtGEPFs z+2Y;f%JrYtf0P%K&*(4mi^=ZI{ka9{4#%9HMs3 z9(rkv%J;ZhKbNmO=;%BM;CIogX ztcH2+kZhNN{C!0JJ|s_5bdyzB(Z%8W)TV-ea&;89n@B$-kluz!?}XhIL@1a}wo;eu zYe+a5!t>zA=|TMWafDXH$9yV;Dg%6`um?@6OlbkL6v}x3U_hV0Ni38TUl_Lz z78*h}2PZdAYDzTc8PHLr*wl(_x*!e$yV!Jw-=(Hg{i~Y}sbAC7qxKrUNNVo^(%u6V z?d@5OwO8`#W&=%(4@fbR54L!_K%NnZA(t=*O<87@&5^PtP|V=+$AlT&gN@w}8!J3M zD2_E<>|poD$PNnpbea=RrqXuH>`^w$6ta1UWb+WpMmRG?$YtYNd}gX3(u==cy~em1 zezw5RR^3TskxrO1s8QrtBjb^zZo@fZ^nwdDqKzfIVT{xAd0n5%7XI~0kXS_AgP5EW zNPgdfBGaRv5HfuTW%?-W*7F~=YTSer)gvUTN4%(Ls_4*Osfvlt+vu);H}*3K_7@^7 zNxzA`g1qp9-ifJwQsKYiQxe{=hrA2FeY4FQ{FiR9hWH6`Lg+IASs*2NH&kvWOMB^rEEqy@2JJe1<#9^!FBN^!FBf z7-5P;85kqG%F7~mLhpuBrJ4M#QkpZJ57fM*Dx12sNl9wv7dV0MAD$UWZPF2~Y;ub8 zp=SmD_&bvM0K|L%&z$NWH)WunR{~!m>m7*d9f%}KAvdO@OfD-@#oV8fX=V&n0v9?d zC6McUWR@-^P&T>ZOVlJgmq`mB6i%%#Ay!%6H0NW_61}Hjo`#sGd8@ia!%;G+ixDbV zJAQ?+4h~O;ScL(B3)Jfg_@hdZfya#&&un8s% z5W^^!Y0mBl!*M(Y5~pQq*d=&~)+roODdN0#vb=lJP3?UOr)tuWQcdrQ11+p2;By|5^}nvb`Q@F z3cC?T-UP-9jF1tPDlFQPRLg!rRKb}zW@A#Z=cNDP>xjh@oq^S6dOy+ePmpGMXQ^0A zUm2W7>8!I$^+vMX5blX?n0L@{?-5WsLpW@!OEIbO(TLPGY^!dx2LFm_&573Y`8uB{ z@(B^2WAI%!--+^}pO3|SG{O-?6=Lg_62x*iqdO9E&-M-)h}tzzQ23KJ(>Q9`(rJ<>^bMHP&l zGcm@i(OZ%{f?R~(15e{YZqlVekmI~_P=JN$(KVJ#kII8kdQ=n1=SM)?4@Ka+-%06) zbZ^Objjb*O0*7M)nTqE*K(6-$HA7uWh`21)a)k-{r@dwP zQQz*}`Ff=14CMh+=b*r5{D?^yVKw_SzE4C-d{WP(-rtA!jPKLqm46e47An2Fp^Kb} zWQ5;Ia&yj)Mq=mOu7wNGM?J?*TU$vdk*szi)Cr7nV50XVwVjzogidON@P97O1wn-~ z&~K)+VW^hd=y?TmY^Vfb7~DcN8Df|MF--QJ>ixf0Iq`Vre@x|d#h|8gpBP!?S>bop z7HoGb0}{Qi2C;Ho!^1~JT1xdPiG99L>}^l%ml){i+b1zRxo=9h#INI1djvXC-r-*l z{W>N2`;_=zf$frdCiV$@rQcg^T67Leggg=<;lL03^hxa1wPzBf+%c(JN^+m%?x~&I z!SacJNly8pGe4anfA`ay_BQr6I``@WdG}1}YES6dv-!WS86K}8hz9TgD~H{2C>#9hG^cSV2I-Bs1yGu@@hd++ys{_p?h zc}xscpE~DrPMtb+>QvPnojYOP*MlL<5n% zSRS#L!_MV)Jv~z|bUUk!3#-1*!Bu%w*FdGPmP65>z18R0-<9ix3lf#9Gx#*@oz z1%g7VSSrL;E%9+za*9U7pu!YA)sP>m8U7uX)!&<02xJw`+%Do416dbx8hQNL33$<2 zXc-qVAv`@ILp(!*3j*CTQ}=&`Jk!UbtD?`x5!rdz6|?iKH?st=vk^eQlv@VaS;Fa< z=I1KY6xDxG1#IiikmpQM{S(5;ccS$D88flQ%iFjdaIu1`F;L67l{)_N8<_(sck6~h z?>`_0<#t#IE|gZo^s}1R48*I~!6yTVY;Nld*<8*UX=4$$oI7rCP(|E2PR9T{DsUPi z8KAoF>z$Pbm>EuK3e&Y86lSL#)`>r26?ps?$Y>E~rj5m15myXca51-@)3M(q1)~>v zO(xd%hfM4Oh@x>vnp^z;Kyyn8w}C6=HtJc^A1Z6o7ySDk zA&}3#0IV7z-FT49XO4o;GQjC3twA`atAd5~VcAchr@h5&yc-K$Mj)plRdnch&=IoS z8a z15|eH#&CoRTTuN+$uLHen!r-=3qtwXl5Z`ls^9MlGohgi`PEb_~=aRm^0CCCP@U{~qgnSS0axByJ1tC>t54VgTH zK+&oc=(Pq_3hbhfX?fTyNDg7{og0z&L;=`cg?H&`80QU{FKII`ot`3Jq?iF&TJG;H zaV6^MiVC>5d%_OqfmKDFSSej>&GADmF4`1F_G|gH~0OA_g?nH&F=dQvFg~^Qwq+m@R|Z{pNs@N7k%R?(ZbXm z?f*fxusZWR>2?tfQ}Ii4Pmvb8_x0{n)Yo~?mxdLr?4_uhni!t<#H8@au-;Y63Z9j_ z)a>sP?(aghbl3A$m1wW@hTY|XSxmHDam}G5@!2#q1|>_9wkEIAi_u0;-H(vQRI~R& zU`onFtBK7|PReNoVz{p8q4@>7AUG5a8x zT?^P3g4wlf5vw^zw9HY=5xL=)d>>tGObicGt5JBkjxA;l>sfKzO(DwVUy-p&x*$^f z&fAQFO?CsD>s6{P#44o_XQJJONdL1!tTmx-g^Tbn`fS2RwFHTAyHZW&wWy{G=A~tJ+KYNlk zZU>*82J5r!><;qy@NWt~%V*!EncZN9+QmA`x$R&Dyc=x#t6|FPhwdC$8sSwLL>&(z zi*osSO#D6CSP6&=PeE6*7qsyTo2kGnEvhK+W??FVZUw{6(-vIuG-$4GR-yr^$-(dc>Ulo7HZwPxIvCrXi z?Q{7V_5yyUeI7r{KA+FCFW_g}7xMY`Mf@E5Vt%fD31478$Ir7b<>%X%@eAzB`Gxis z{382GezAQOzr&`AYjS{LG_?(_DZ(Rki= zyDOSxVJoqPT@ftoDytJZ?N@|OcR=VQTzw=2L~FfZG~{%_XsEIG)DGea0gVupDMlga zhz8SJi6c~<50_xPKrY~a2oz32Z0@9ER@j_%lvjfYlxSBmo8#_jhjl~MlXXisZ-#UEMAf@s6wMB&aV zmCNb!CUiN}^bW>731=H8e|N6&fw=RHGvY5a_Gx-gm$Q+bAZPc*aaK&bb^LL_DE#o8 zblh^hn)feOLEfvyfpbYZuadkv)_?n2dcxOd-^cVC*qrZ-Q zz#1NcAj+-ZnSUFldK`|?5Mj_NCH&RV(mQmus?q<;c*tLo7>r35XM4tDWr&ni`|ZA1 z82x7#3%~v#3z%$v!1gmUp1iG?sPs%l5mJUTQ!V7Tg^;srN|d})f9+V=u79l#G_wt;~Vuo5zJYK z_VNZr)JES))Bwaem2fagchS=@8Lvx9n}ZTrb3QxN>=)vmQH}%4K$LL|>O4 zeZQ_UjID^Bb--xFJ2{Dbv>AZ;CY)J#LEg}aI64W&IIH!;543&ptYZ}OTL5B7+p4K-aZvj<`>Hv=xm z04_(H9mlvzutppMhKFYtxi^&K`x;E7syQ8yEsr7b5?vw>enT-2I{**!01xxcjs@n0 z0I7LqP0!Hej>0qKJ#o|Rynas&&md~_hKkKCh|S{1(rCd*%;z4!=OV!8VzXn3`8dF8 zky&&T6VzBeaSyV2OMG+a<|8&j5=Y?o!)8bQvW|} z6#H@S);}k7?2{DVp<4oIr2c={=;PkuiJjj4u1C+_Nr@fb5u9vGm-=U@%Pu|pbnEn9 zLKG<4>lB}q(CJ+THC#0(@bY*K5tAy`zlrZ1@k2t##LkJLScG4SSh?K5dIW;`{iblQS@()8vo}3Q%67{Bv=S;b9s<;~+AkODE zRdY@ma^51+V7?cvLuU)7Gb55b^*=ca!*ma5VI$B&nc1<)yctaW8_l*UUPAeIQt!ad zLgDtmZyDtFP#B-k8~pwU$)cU{VwcXYU=`#D?9?-%cMnHWV3+tG69VG{lf*F*2x5Bi z>I)DI1pSoQqf^hHdOMsD^}wVq@kxPT?UV#Egy6g0fxY_l5EoD4FZ%ZEBN0pN(Xm^f zP6?en2!Y>#rU`*=yQ=Rui^JenXG)iKmSaA{y}T*%hEM-u ztb;mWs#|~#wgOY#V%}!9Hm%dJfaiRn1&|MRm8i&;L$c)pS@e>K+H77~hs;K}g;!b! zxpjTfA9g+8VDfqpZ8+;yM?T>`e=Fo-i@5>VVKZ+r3rBOen|Ht!qepDHs58o=@1*bh z*7=I}>?l0ieB{v#QWjm>mb^(X#rthY3h{zl!Cz@g^1|QLl8pAg+K4z*n(Tm*Y&Y9z zW|w)pxqxw;=FR|rwabimtQCy3Dn)P#7f)z1@#HgVCQb%iZ6vK{Q}?V|UQ&orNs#Q;TCyMY*>$ZC)Itgv@!)?{*@8JOM52hE3oL#r^` zp8ld|kA%0>|FR`2_7h%-0{#t5uy6keT*6zzFCt)&C;tWn&bq&mzQImI{*`z##`d(Z zw0KMXFU~x9&TFi-&n2n(?IK*R(=VQ8qr`wGp!c2 z6th&mWJ|L%I#Au&nMave`>RmRdFr`g zN^_Ma2h-m~9E@q;r^!IUvuXy8`akg1qSWM5L`k?woBXN`gITOc8&3chPXZQCm``bY zkkNlvbFjbO9HSNoao->grq@erLLBEcjUWekY$(l~Hs`Tt%#O3>3m^bHt%(yIk7%ds z;Pl0FYA$o0+(s^%Z|skGc$GGu13bLxpw5}kn~7gd4}@QxGt;#3g87`;;h-*$EaQ#IG;9%WvCdjVM8f8k6*jaj<5#2vOb`XbowC;E}^ zcyL0xHNb3{i{=`^Y%iHF1IK$2B(lUE59tHA>CxpCwCN$;gZkg>W6<|xizg#t61GaRu}GBvHWu;&fTO+mJwA;%Ec z44T^spAnYD(YfJEqF)zE0W>-GdjWF13UCZIGmC`HOt(0*7wWb+5)4mrj9<_k3uLE_ zwLqZ7!tJr<>t;<}M>WU1f@QI9ZurvZWn#gUCbL@*vxR`!^#KC2np9I>RUuI9D5F|( zr&7?a*=L8>6}YScI$Rq)DDsiTf%9I6;MWQs_lCJv@VGb3H?^_<;|)b0MW7E2agi95s!ZlYSJX3LHM}A9)O_9MnIYvl9h!1+H zUrBj)Em{d2lX_z`dK>tb(yPu0CvQz>z6qf*-ZGCj91gk-vLk?Ij+$nZmXKzyC;=!z z)~YJ$-9_~ta|MmwW7gOlNJ)mk?E@7krI8yWHb$03qQV@p{9B36nFwS#dn1byi2_+$ zB7yFh@0#zK?`!P{5ABD0-^y+Ry>E_`TtO4Jj$Pluj;a1JPY7#WVU;K>(u6gT5D^Q3 zsu0i#F_jS22r+{&0}CEbys%Imv+wvybzxzo7_}2^_nlVQcEN022W(fEt?SGW%(jpJ z?A4*d4JY5AB!}W>T33UzgD^x@mMs9Ht&#n^;OL*~79Mh)LWvmI50>&R zx9DZaakrZSX_V96J0k@Qh&-l*V;)VkaTwq+6U>CeEW<6D8`85zlLmG#% z3MPM>js)Ekxi?a?r+^eiPqhK=J$2W)s$N&nb>Cn?S=u-P2+BLC5tfk_ak^FTmaz)* zM(v9js2gL+yA4Oaha99^qG=}6l5Uw`aZI#KvQSi} zMZ+bQT*od^2ov^4N|uZs{l2O3=(jW?++=xk8XggpFdQi0SEZ`6+bTS>ZovNbM=D&P zt~gKh#NxE0naMz$DHcbTWhxM7GO$liKKN|NhmkVmv64pB97Nw#Y7_{p6`$Obl8IjliA-9v)+{9+CM0x5CkZwe*SF>9>xHBd<+`Od+wG> zc@>YLJfiuQBw_xaq>a-7|H2WM>6RRr7I$O+^bE-Uf&i1(C0{`V4JNxkR4{oUvLfMKkMz)!S}j=x}T8_>*5z%AI`m}SWWwmegNLOZ+& z^D@{n8t^hEMtYP&1LhUa)R$wMBau5Ij|#EPqfRde{tNTekY;8Bo>CY`zD0P^Y_>K} zN0%z_De@ibHua@wOnuU0(rULh{3LX1$6gc{%}ZKo2}K9iSK7`FY&%4uQe~l@rkOcF zD6pq6*HQq0o+CNpEVb2LT@GbR1CDr@Wo(RAjnYFUFJOD+F$bG2m*4%0m-)g8c1w-0 zxia6f0B||aqUDnoCo0xVo4}fBbJ!N?sUxA#qn_zu8ToNXO8S zz@?dPq-L#wr0Cg(rSZ$+8Bb#8|E?Si03OL_xDo1J3<-sqyjH{;G949-MaJ%_X!Uyz z(%K<125OTvi47=B^36-vYyPhvUGDH+=lDLEcDQXg-T9nUaJT8x%8<~)xrK&Y3l zj6@aPjK(^+L2KpOIyd~k8O#3z8B5W5OjTRX(Q;@xn-_=(lv~W5xQhFx@`4@ zJmQPE4Z@)dKx~?tSjTga*jUk8K+Mm0@^wB)3Bs93DUg1kYSX|8+nkM*Ey`0X&M&c6 z3N0I>OQXwR9#>;dZdncI7r{-+rZLa)b*q>2)sh z#?zvnW~f0Miufx<4{B<5X}towd`9F<=n^CsL~@()$(Yw7A+41*?@fx!4Ia?T(JC^l z6=Z09eeca8x|-eHz6!f*EC#khcj5siWpC4>M=2j@pG#}a**|@c=j@5>RxoF83o8$k zbC+u7YCb|}36Hgl4cz(+k40yWHb;+fh{o#1dH8juv4ZH#gYV6qk(rA3Z0&BW{qEpR zRW9XxgGc95Sofa#e203Hv;m;@G=TbDVWT1&yi08^Ee@P)wO}*uqZrL{!Y9>I>TA#> zSNT08x6TG{Guz!*v*CemuwgOi7b1b9AGf}@P&4qsl<_gSiOBS}U{MeEK<);ao|b~y zPmzMfN8x1+%Y@$QqtvjNfl(0H+ZGa_$_<7Kks!h9_W7(I)sSm(vAsRwVwS-ViLw=w zIPw!Du}LY)CJk7k8$npSGGoqoi3uA;H-&M?iAe)ZA+FrntG_G7#WR%Ji|p%&W~j}E z>d2Z%D78%GgFn<#OM52S^fWo~>;qYS$~zM{-c$>I^Iq)&`HRp6dI=}E5jfj$PwkRn zPumbUwvh&u8kh3qngv4Q(^_I9sfhot{PQk8)8+oKmqc3pfewUhB7*Qi| zJ8MsJGV7QH48 z4l>-?qTXnbNnMF?i5rcsqm?U>QuHvi8$WC-#Lv|FxzCG1i5kYQe^v%1XT`jkXS|U; zMzJGW8ok{u3T&zo1&YDVLsefp`l4_dNL6U5j095x=xe50F#oZzukFgmxQpE-`{PR_ z+3~0|T`CcK7jDuseh7X~gXmwTO)dATK;H zYDfdU-nx&Md)ozi6Q_JPH{9cE)S=K_nuXFM_F<+>Y&R59!w1f~gnXcIPl{yU59yW2 zzx znW`X53|2hG<~!XLiIM$aY*vIFz=;uYK6mT*S_GQUOMSCqW+viUQX%H-!AL)YqClys z2TEtJK$HwZTD~+^dN4&n;GYxFc#%*Nhm_g|A|}d1s?ahpO3viCG5l;4GT~`4InN9C zm933)Luya7aXlV-!1ko*(2Y*YH?pZLw3hm6=DtgMU^uHR$HFSZj)zr+326?kdp{;A zQX+$+DkFzP4UH0uPuw;6TPgBFMMAJu)|ho~@#IF-LNXc6xbz<}Py$JSY`65|biG5T z$#5vZH>D;+wkyTO)37LE@dQ+?=Q}=o1%21mBQK%NSUM7lf6BZayoD!L#;VrWN396eE@bj$qxp*o1|=7KUJ3< zQJ2HSIRX@wXi{r;1X7y?sI8ZjghM|!1}FW53^F$+wLYGB)%{+}mgBbJQ6r+n)1fu0 zg6)c)(AG|bod$X9lVJu;)`nF=)(QZ&(0+6}eI{4#bY#@1sQOJ<%>-<+VdoP~;p!h= zxtK#|%hx3S3{+scCgS32E&G#$UjJ z$&8piHvNVxGrehMq2-)V8?Z=B+%L4?3Baw7^QX}SP!hKxZd9TUyD#Sltd9Cw>HJ+WQYp5y^7#NiFR3kY)&7KafrL1yH(ycsum8#jp8oowpfs< z@!P`K1{$8zv*ov+#W$GL^zlU{Vnx2>y`9OjK1?*T6zBt#ge(*7eyMgH;7gYj5ow9<0k?>> ziAF@KG12wQS4?zcqH@E>M!gQ_M9(fKDZAVr?cU|{I?35gT5SU@e}*>TRpV7C6>970 zKj~$t|540qppJqW#f%0!p{dLmM%3LLHRO8{e+T9JwvDOn+)N-Z#?!GXb$LmlgyyT0Xmsp|*%>2ES#Fg2#ippc`9$&kq|Xw2C%xODch7Epk`kOrKPTba))XUp&V95rNDUa&m8k9m z{h_)GxXoVP%oVPHyUNuVu5q;-D9q+GF*_2k#_TwM(yrO?y^iXJ4&0?iRr3 zI!7Gs-!_M%J(U4P%4tk01B#T>fWO!BB2|5n7daKCbx+l4B}iicNYJxsikZ||E#?6J zj9uKJQNs1$CR$~zYG`QHk0Y1wkHk1!1vuOWINSj^+~w{89BymdNz*QBE(Y>vwbbuF z4@)N8sPC@+OBy@&n%(6ks=FJ+pR;S)No^gnlZu%AG2+F>iow&PzI3}GDGb&10vmYRPl0tDUE1&QSvhvfKRz6b3NZ8MC$LQ+g+5*#CEoT*f zL6TGVDy%dJW}VM-v@zee&S#782!!t(U)Ie&`oE3sLkyO1GQe%^HISMKMLiI+H%3F& z&*v*-O^?cm8XqN<0%=OLqmNpmA$&F2bFCi-B`PsFXlA9Q#I(xd*k}SF@k)zk4?}-a z_b`;N0Xyk{>;9_nJr%K?Audx(q{v(sSicO+#*4JE5U{Zt)LIr=)>w#kcjF(>?#3~o z#;w{gjuC3ystp$nn!K}p)w~bmFT$~}w!gUFk^P+sI~ykEUfk5SlAej9rJ>g8U}sLN zzw5uK`y0+*lBy1J)zlh$Luv=XkQgas2=HP~jcU>Yw3y3`ngAjw&0fd;s_u0Jf0=C6 zE5}3d3oTF3#7U@QXiw~Ef2bRdr2dbqR#n+O(XH9Et#h~&rgBiyNm5&+Bc;G$NhItklra@XpN~w-q zdOCKm7m)1rypM>+q{(9MVQLmr`0I9J4fdqjs0MqzrNpwqQmQR_{75z3RQ`t6T%LvS zm*AfmrS{)m8ljwKcdw?XyBp2lwBrS^5|t0_$Rdu$GYYo<&`;2eB3VDtq-J~!O)7&i(Z;43 zjBwVX=?jc!((b}=`Id!KmJ?yxp6t0aHG^sV9XV=JA|3BUNFR%NTa(mV6V#-}@ptXm z-Ko)Awg|bqNl}x5yCcqIPc6j5w2?Qn1q{<%Fif{v27owci?$NqoUCRgoxi8;pw4Bf z8=mCv1O2#({=N&%3DU?D9gkX|?u(U~y2iPWYQ8gwUO4m2S4{)wXZV=WH1 z*sI<9xqNl+6Zn4q(quD(&cPO6iTZ8feL@6Nlh&_u)wCw^{r!nN4ps12+2UA>{qX7= zx84W8kEA}Ow~%+tQ+GXyA3*N<<>hkM$6HjkIG_#BvH5DcXZV5s8uQ#TG~A_HW%qT; zJ&kpWrlik(i6lJ}^EL{MCZmbr)o?fhm%Qw~SFzae7*17aIC-59yAY;5>Q|}-o6HX) z19ndVSXGPTEe=_Hn!c_Fwr+BAQL?qCKXbM)fVc`@2x|-`8jQ*M!Md+)h@aGcva~b@(0{&=; zKJ*(TdhW-gg!)@i7X@ggF$*ao)8H-5zMAk%+o6VM8b8e6!}>nyivo_bvi12ieOgax z7m?B$x=TA_FOqg<8?W+)=jrUHw~!CS#;n0Hlpk$81!AZLAQC=hIjt>^_g=L;+5B*S zcP0j(MnT+GeaKmN5Na_9(o`wbeN@D%b+R|MZ8X%%F(1Py@?*43i{vHQ8L%ijt1Z!} zgKCMU^CN&nYGr?v1(i+Jgo&@Tl{KU`H#}z0eyC04N>6ux{~GGf=xX+KFzW{0*fR(^ zX%I;D+HTRzOTR*--Zs&z8e)U71%xyUX&%%pG$`bCzFFv-q0Qb54t2i%T8ri_LR&=J zo_oE;tHB-Pn{^0k5&A}ppyr)l?- RGSy^EVP+3vM3rdP4jg@$NK2n!ovKu=BOh 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 z

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%0AAt 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

foQ#?y9E+OX`@=rmkdMo9^ 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
    gV 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
    x^*7Ziy&cvWeV5sD&v*p=-YCcRJ*BO#` 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%0A?4DX8IC3(~)mSpf6cp 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%0DoJUan&doX(pqNBsfej1 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

    vt~kF?lxmfoo~1|PIBDLx!`T&YkR#!*A7U# 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ⅈ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

    Uflji-k> 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

    +(4Arbg_ey;n49MxvO=`=P%wrhV(_-u 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

    Contains internal path helpers that are shared between many projects. + internal static partial class PathInternal + { + // All paths in Win32 ultimately end up becoming a path to a File object in the Windows object manager. Passed in paths get mapped through + // DosDevice symbolic links in the object tree to actual File objects under \Devices. To illustrate, this is what happens with a typical + // path "Foo" passed as a filename to any Win32 API: + // + // 1. "Foo" is recognized as a relative path and is appended to the current directory (say, "C:\" in our example) + // 2. "C:\Foo" is prepended with the DosDevice namespace "\??\" + // 3. CreateFile tries to create an object handle to the requested file "\??\C:\Foo" + // 4. The Object Manager recognizes the DosDevices prefix and looks + // a. First in the current session DosDevices ("\Sessions\1\DosDevices\" for example, mapped network drives go here) + // b. If not found in the session, it looks in the Global DosDevices ("\GLOBAL??\") + // 5. "C:" is found in DosDevices (in our case "\GLOBAL??\C:", which is a symbolic link to "\Device\HarddiskVolume6") + // 6. The full path is now "\Device\HarddiskVolume6\Foo", "\Device\HarddiskVolume6" is a File object and parsing is handed off + // to the registered parsing method for Files + // 7. The registered open method for File objects is invoked to create the file handle which is then returned + // + // There are multiple ways to directly specify a DosDevices path. The final format of "\??\" is one way. It can also be specified + // as "\\.\" (the most commonly documented way) and "\\?\". If the question mark syntax is used the path will skip normalization + // (essentially GetFullPathName()) and path length checks. + + // Windows Kernel-Mode Object Manager + // https://msdn.microsoft.com/en-us/library/windows/hardware/ff565763.aspx + // https://channel9.msdn.com/Shows/Going+Deep/Windows-NT-Object-Manager + // + // Introduction to MS-DOS Device Names + // https://msdn.microsoft.com/en-us/library/windows/hardware/ff548088.aspx + // + // Local and Global MS-DOS Device Names + // https://msdn.microsoft.com/en-us/library/windows/hardware/ff554302.aspx + + internal const char DirectorySeparatorChar = '\\'; + internal const char AltDirectorySeparatorChar = '/'; + internal const char VolumeSeparatorChar = ':'; + internal const char PathSeparator = ';'; + + internal const string DirectorySeparatorCharAsString = "\\"; + + internal const string ExtendedPathPrefix = @"\\?\"; + internal const string UncPathPrefix = @"\\"; + internal const string UncExtendedPrefixToInsert = @"?\UNC\"; + internal const string UncExtendedPathPrefix = @"\\?\UNC\"; + internal const string DevicePathPrefix = @"\\.\"; + internal const string ParentDirectoryPrefix = @"..\"; + + internal const int MaxShortPath = 260; + internal const int MaxShortDirectoryPath = 248; + // \\?\, \\.\, \??\ + internal const int DevicePrefixLength = 4; + // \\ + internal const int UncPrefixLength = 2; + // \\?\UNC\, \\.\UNC\ + internal const int UncExtendedPrefixLength = 8; + + /// + /// Returns true if the given character is a valid drive letter + /// + internal static bool IsValidDriveChar(char value) + { + return ((value >= 'A' && value <= 'Z') || (value >= 'a' && value <= 'z')); + } + + internal static bool EndsWithPeriodOrSpace(string? path) + { + if (string.IsNullOrEmpty(path)) + return false; + + char c = path[path.Length - 1]; + return c == ' ' || c == '.'; + } + + /// + /// Adds the extended path prefix (\\?\) if not already a device path, IF the path is not relative, + /// AND the path is more than 259 characters. (> MAX_PATH + null). This will also insert the extended + /// prefix if the path ends with a period or a space. Trailing periods and spaces are normally eaten + /// away from paths during normalization, but if we see such a path at this point it should be + /// normalized and has retained the final characters. (Typically from one of the *Info classes) + /// + [return: NotNullIfNotNull("path")] + internal static string? EnsureExtendedPrefixIfNeeded(string? path) + { + if (path != null && (path.Length >= MaxShortPath || EndsWithPeriodOrSpace(path))) + { + return EnsureExtendedPrefix(path); + } + else + { + return path; + } + } + + /// + /// Adds the extended path prefix (\\?\) if not relative or already a device path. + /// + internal static string EnsureExtendedPrefix(string path) + { + // Putting the extended prefix on the path changes the processing of the path. It won't get normalized, which + // means adding to relative paths will prevent them from getting the appropriate current directory inserted. + + // If it already has some variant of a device path (\??\, \\?\, \\.\, //./, etc.) we don't need to change it + // as it is either correct or we will be changing the behavior. When/if Windows supports long paths implicitly + // in the future we wouldn't want normalization to come back and break existing code. + + // In any case, all internal usages should be hitting normalize path (Path.GetFullPath) before they hit this + // shimming method. (Or making a change that doesn't impact normalization, such as adding a filename to a + // normalized base path.) + if (IsPartiallyQualified(path.AsSpan()) || IsDevice(path.AsSpan())) + return path; + + // Given \\server\share in longpath becomes \\?\UNC\server\share + if (path.StartsWith(UncPathPrefix, StringComparison.OrdinalIgnoreCase)) + return path.Insert(2, UncExtendedPrefixToInsert); + + return ExtendedPathPrefix + path; + } + + /// + /// Returns true if the path uses any of the DOS device path syntaxes. ("\\.\", "\\?\", or "\??\") + /// + internal static bool IsDevice(ReadOnlySpan path) + { + // If the path begins with any two separators is will be recognized and normalized and prepped with + // "\??\" for internal usage correctly. "\??\" is recognized and handled, "/??/" is not. + return IsExtended(path) + || + ( + path.Length >= DevicePrefixLength + && IsDirectorySeparator(path[0]) + && IsDirectorySeparator(path[1]) + && (path[2] == '.' || path[2] == '?') + && IsDirectorySeparator(path[3]) + ); + } + + /// + /// Returns true if the path is a device UNC (\\?\UNC\, \\.\UNC\) + /// + internal static bool IsDeviceUNC(ReadOnlySpan path) + { + return path.Length >= UncExtendedPrefixLength + && IsDevice(path) + && IsDirectorySeparator(path[7]) + && path[4] == 'U' + && path[5] == 'N' + && path[6] == 'C'; + } + + /// + /// Returns true if the path uses the canonical form of extended syntax ("\\?\" or "\??\"). If the + /// path matches exactly (cannot use alternate directory separators) Windows will skip normalization + /// and path length checks. + /// + internal static bool IsExtended(ReadOnlySpan path) + { + // While paths like "//?/C:/" will work, they're treated the same as "\\.\" paths. + // Skipping of normalization will *only* occur if back slashes ('\') are used. + return path.Length >= DevicePrefixLength + && path[0] == '\\' + && (path[1] == '\\' || path[1] == '?') + && path[2] == '?' + && path[3] == '\\'; + } + + /// + /// Check for known wildcard characters. '*' and '?' are the most common ones. + /// + internal static bool HasWildCardCharacters(ReadOnlySpan path) + { + // Question mark is part of dos device syntax so we have to skip if we are + int startIndex = IsDevice(path) ? ExtendedPathPrefix.Length : 0; + + // [MS - FSA] 2.1.4.4 Algorithm for Determining if a FileName Is in an Expression + // https://msdn.microsoft.com/en-us/library/ff469270.aspx + for (int i = startIndex; i < path.Length; i++) + { + char c = path[i]; + if (c <= '?') // fast path for common case - '?' is highest wildcard character + { + if (c == '\"' || c == '<' || c == '>' || c == '*' || c == '?') + return true; + } + } + + return false; + } + + /// + /// Gets the length of the root of the path (drive, share, etc.). + /// + internal static int GetRootLength(ReadOnlySpan path) + { + int pathLength = path.Length; + int i = 0; + + bool deviceSyntax = IsDevice(path); + bool deviceUnc = deviceSyntax && IsDeviceUNC(path); + + if ((!deviceSyntax || deviceUnc) && pathLength > 0 && IsDirectorySeparator(path[0])) + { + // UNC or simple rooted path (e.g. "\foo", NOT "\\?\C:\foo") + if (deviceUnc || (pathLength > 1 && IsDirectorySeparator(path[1]))) + { + // UNC (\\?\UNC\ or \\), scan past server\share + + // Start past the prefix ("\\" or "\\?\UNC\") + i = deviceUnc ? UncExtendedPrefixLength : UncPrefixLength; + + // Skip two separators at most + int n = 2; + while (i < pathLength && (!IsDirectorySeparator(path[i]) || --n > 0)) + i++; + } + else + { + // Current drive rooted (e.g. "\foo") + i = 1; + } + } + else if (deviceSyntax) + { + // Device path (e.g. "\\?\.", "\\.\") + // Skip any characters following the prefix that aren't a separator + i = DevicePrefixLength; + while (i < pathLength && !IsDirectorySeparator(path[i])) + i++; + + // If there is another separator take it, as long as we have had at least one + // non-separator after the prefix (e.g. don't take "\\?\\", but take "\\?\a\") + if (i < pathLength && i > DevicePrefixLength && IsDirectorySeparator(path[i])) + i++; + } + else if (pathLength >= 2 + && path[1] == VolumeSeparatorChar + && IsValidDriveChar(path[0])) + { + // Valid drive specified path ("C:", "D:", etc.) + i = 2; + + // If the colon is followed by a directory separator, move past it (e.g "C:\") + if (pathLength > 2 && IsDirectorySeparator(path[2])) + i++; + } + + return i; + } + + /// + /// Returns true if the path specified is relative to the current drive or working directory. + /// Returns false if the path is fixed to a specific drive or UNC path. This method does no + /// validation of the path (URIs will be returned as relative as a result). + /// + /// + /// Handles paths that use the alternate directory separator. It is a frequent mistake to + /// assume that rooted paths (Path.IsPathRooted) are not relative. This isn't the case. + /// "C:a" is drive relative- meaning that it will be resolved against the current directory + /// for C: (rooted, but relative). "C:\a" is rooted and not relative (the current directory + /// will not be used to modify the path). + /// + internal static bool IsPartiallyQualified(ReadOnlySpan path) + { + if (path.Length < 2) + { + // It isn't fixed, it must be relative. There is no way to specify a fixed + // path with one character (or less). + return true; + } + + if (IsDirectorySeparator(path[0])) + { + // There is no valid way to specify a relative path with two initial slashes or + // \? as ? isn't valid for drive relative paths and \??\ is equivalent to \\?\ + return !(path[1] == '?' || IsDirectorySeparator(path[1])); + } + + // The only way to specify a fixed path that doesn't begin with two slashes + // is the drive, colon, slash format- i.e. C:\ + return !((path.Length >= 3) + && (path[1] == VolumeSeparatorChar) + && IsDirectorySeparator(path[2]) + // To match old behavior we'll check the drive character for validity as the path is technically + // not qualified if you don't have a valid drive. "=:\" is the "=" file's default data stream. + && IsValidDriveChar(path[0])); + } + + /// + /// True if the given character is a directory separator. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static bool IsDirectorySeparator(char c) + { + return c == DirectorySeparatorChar || c == AltDirectorySeparatorChar; + } + + /// + /// Normalize separators in the given path. Converts forward slashes into back slashes and compresses slash runs, keeping initial 2 if present. + /// Also trims initial whitespace in front of "rooted" paths (see PathStartSkip). + /// + /// This effectively replicates the behavior of the legacy NormalizePath when it was called with fullCheck=false and expandShortpaths=false. + /// The current NormalizePath gets directory separator normalization from Win32's GetFullPathName(), which will resolve relative paths and as + /// such can't be used here (and is overkill for our uses). + /// + /// Like the current NormalizePath this will not try and analyze periods/spaces within directory segments. + /// + /// + /// The only callers that used to use Path.Normalize(fullCheck=false) were Path.GetDirectoryName() and Path.GetPathRoot(). Both usages do + /// not need trimming of trailing whitespace here. + /// + /// GetPathRoot() could technically skip normalizing separators after the second segment- consider as a future optimization. + /// + /// For legacy desktop behavior with ExpandShortPaths: + /// - It has no impact on GetPathRoot() so doesn't need consideration. + /// - It could impact GetDirectoryName(), but only if the path isn't relative (C:\ or \\Server\Share). + /// + /// In the case of GetDirectoryName() the ExpandShortPaths behavior was undocumented and provided inconsistent results if the path was + /// fixed/relative. For example: "C:\PROGRA~1\A.TXT" would return "C:\Program Files" while ".\PROGRA~1\A.TXT" would return ".\PROGRA~1". If you + /// ultimately call GetFullPath() this doesn't matter, but if you don't or have any intermediate string handling could easily be tripped up by + /// this undocumented behavior. + /// + /// We won't match this old behavior because: + /// + /// 1. It was undocumented + /// 2. It was costly (extremely so if it actually contained '~') + /// 3. Doesn't play nice with string logic + /// 4. Isn't a cross-plat friendly concept/behavior + /// + internal static string NormalizeDirectorySeparators(string path) + { + if (string.IsNullOrEmpty(path)) + return path; + + char current; + + // Make a pass to see if we need to normalize so we can potentially skip allocating + bool normalized = true; + + for (int i = 0; i < path.Length; i++) + { + current = path[i]; + if (IsDirectorySeparator(current) + && (current != DirectorySeparatorChar + // Check for sequential separators past the first position (we need to keep initial two for UNC/extended) + || (i > 0 && i + 1 < path.Length && IsDirectorySeparator(path[i + 1])))) + { + normalized = false; + break; + } + } + + if (normalized) + return path; + + Span initialBuffer = stackalloc char[MaxShortPath]; + ValueStringBuilder builder = new ValueStringBuilder(initialBuffer); + + int start = 0; + if (IsDirectorySeparator(path[start])) + { + start++; + builder.Append(DirectorySeparatorChar); + } + + for (int i = start; i < path.Length; i++) + { + current = path[i]; + + // If we have a separator + if (IsDirectorySeparator(current)) + { + // If the next is a separator, skip adding this + if (i + 1 < path.Length && IsDirectorySeparator(path[i + 1])) + { + continue; + } + + // Ensure it is the primary separator + current = DirectorySeparatorChar; + } + + builder.Append(current); + } + + return builder.ToString(); + } + + /// + /// Returns true if the path is effectively empty for the current OS. + /// For unix, this is empty or null. For Windows, this is empty, null, or + /// just spaces ((char)32). + /// + internal static bool IsEffectivelyEmpty(ReadOnlySpan path) + { + if (path.IsEmpty) + return true; + + foreach (char c in path) + { + if (c != ' ') + return false; + } + return true; + } + } +} diff --git a/src/Common/src/Interop/Windows/SspiCli/GlobalSSPI.cs b/src/Common/src/Interop/Windows/SspiCli/GlobalSSPI.cs new file mode 100644 index 000000000..4ae2a3e0e --- /dev/null +++ b/src/Common/src/Interop/Windows/SspiCli/GlobalSSPI.cs @@ -0,0 +1,12 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +namespace System.Net +{ + internal static class GlobalSSPI + { + internal static readonly SSPIAuthType SSPIAuth = new SSPIAuthType(); + internal static readonly SSPISecureChannelType SSPISecureChannel = new SSPISecureChannelType(); + } +} diff --git a/src/Common/src/Interop/Windows/SspiCli/SSPIInterface.cs b/src/Common/src/Interop/Windows/SspiCli/SSPIInterface.cs new file mode 100644 index 000000000..7818332da --- /dev/null +++ b/src/Common/src/Interop/Windows/SspiCli/SSPIInterface.cs @@ -0,0 +1,31 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Net.Security; +using System.Runtime.InteropServices; + +namespace System.Net +{ + // SspiCli SSPI interface. + internal interface SSPIInterface + { + SecurityPackageInfoClass[] SecurityPackages { get; set; } + int EnumerateSecurityPackages(out int pkgnum, out SafeFreeContextBuffer pkgArray); + int AcquireCredentialsHandle(string moduleName, Interop.SspiCli.CredentialUse usage, ref SafeSspiAuthDataHandle authdata, out SafeFreeCredentials outCredential); + int AcquireCredentialsHandle(string moduleName, Interop.SspiCli.CredentialUse usage, ref Interop.SspiCli.SCHANNEL_CRED authdata, out SafeFreeCredentials outCredential); + int AcquireDefaultCredential(string moduleName, Interop.SspiCli.CredentialUse usage, out SafeFreeCredentials outCredential); + int AcceptSecurityContext(SafeFreeCredentials credential, ref SafeDeleteContext context, ReadOnlySpan inputBuffers, Interop.SspiCli.ContextFlags inFlags, Interop.SspiCli.Endianness endianness, ref SecurityBuffer outputBuffer, ref Interop.SspiCli.ContextFlags outFlags); + int InitializeSecurityContext(ref SafeFreeCredentials credential, ref SafeDeleteContext context, string targetName, Interop.SspiCli.ContextFlags inFlags, Interop.SspiCli.Endianness endianness, ReadOnlySpan inputBuffers, ref SecurityBuffer outputBuffer, ref Interop.SspiCli.ContextFlags outFlags); + int EncryptMessage(SafeDeleteContext context, ref Interop.SspiCli.SecBufferDesc inputOutput, uint sequenceNumber); + int DecryptMessage(SafeDeleteContext context, ref Interop.SspiCli.SecBufferDesc inputOutput, uint sequenceNumber); + int MakeSignature(SafeDeleteContext context, ref Interop.SspiCli.SecBufferDesc inputOutput, uint sequenceNumber); + int VerifySignature(SafeDeleteContext context, ref Interop.SspiCli.SecBufferDesc inputOutput, uint sequenceNumber); + + int QueryContextChannelBinding(SafeDeleteContext phContext, Interop.SspiCli.ContextAttribute attribute, out SafeFreeContextBufferChannelBinding refHandle); + int QueryContextAttributes(SafeDeleteContext phContext, Interop.SspiCli.ContextAttribute attribute, Span buffer, Type handleType, out SafeHandle refHandle); + int QuerySecurityContextToken(SafeDeleteContext phContext, out SecurityContextTokenHandle phToken); + int CompleteAuthToken(ref SafeDeleteContext refContext, in SecurityBuffer inputBuffer); + int ApplyControlToken(ref SafeDeleteContext refContext, in SecurityBuffer inputBuffer); + } +} diff --git a/src/Common/src/Interop/Windows/SspiCli/SecurityPackageInfoClass.cs b/src/Common/src/Interop/Windows/SspiCli/SecurityPackageInfoClass.cs new file mode 100644 index 000000000..1730e0619 --- /dev/null +++ b/src/Common/src/Interop/Windows/SspiCli/SecurityPackageInfoClass.cs @@ -0,0 +1,73 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Globalization; +using System.Runtime.InteropServices; + +namespace System.Net +{ + // _SecPkgInfoW in sspi.h. + internal class SecurityPackageInfoClass + { + internal int Capabilities; + internal short Version; + internal short RPCID; + internal int MaxToken; + internal string Name; + internal string Comment; + + /* + This is to support SSL with no client cert. + Important: safeHandle should not be Disposed during construction of this object. + + _SecPkgInfoW in sspi.h + */ + internal unsafe SecurityPackageInfoClass(SafeHandle safeHandle, int index) + { + if (safeHandle.IsInvalid) + { + if (NetEventSource.IsEnabled) NetEventSource.Info(this, $"Invalid handle: {safeHandle}"); + return; + } + + IntPtr unmanagedAddress = safeHandle.DangerousGetHandle() + (sizeof(SecurityPackageInfo) * index); + if (NetEventSource.IsEnabled) NetEventSource.Info(this, $"unmanagedAddress: {unmanagedAddress}"); + + SecurityPackageInfo* pSecurityPackageInfo = (SecurityPackageInfo*)unmanagedAddress; + + Capabilities = pSecurityPackageInfo->Capabilities; + Version = pSecurityPackageInfo->Version; + RPCID = pSecurityPackageInfo->RPCID; + MaxToken = pSecurityPackageInfo->MaxToken; + + IntPtr unmanagedString; + + unmanagedString = pSecurityPackageInfo->Name; + if (unmanagedString != IntPtr.Zero) + { + Name = Marshal.PtrToStringUni(unmanagedString); + if (NetEventSource.IsEnabled) NetEventSource.Info(this, $"Name: {Name}"); + } + + unmanagedString = pSecurityPackageInfo->Comment; + if (unmanagedString != IntPtr.Zero) + { + Comment = Marshal.PtrToStringUni(unmanagedString); + if (NetEventSource.IsEnabled) NetEventSource.Info(this, $"Comment: {Comment}"); + } + + if (NetEventSource.IsEnabled) NetEventSource.Info(this, this.ToString()); + } + + public override string ToString() + { + return "Capabilities:" + string.Format(CultureInfo.InvariantCulture, "0x{0:x}", Capabilities) + + " Version:" + Version.ToString(NumberFormatInfo.InvariantInfo) + + " RPCID:" + RPCID.ToString(NumberFormatInfo.InvariantInfo) + + " MaxToken:" + MaxToken.ToString(NumberFormatInfo.InvariantInfo) + + " Name:" + ((Name == null) ? "(null)" : Name) + + " Comment:" + ((Comment == null) ? "(null)" : Comment); + } + } +} diff --git a/src/Common/src/System/Data/Common/AdapterUtil.cs b/src/Common/src/System/Data/Common/AdapterUtil.cs index 8070af754..1783fd02c 100644 --- a/src/Common/src/System/Data/Common/AdapterUtil.cs +++ b/src/Common/src/System/Data/Common/AdapterUtil.cs @@ -92,7 +92,9 @@ internal static ArgumentOutOfRangeException ArgumentOutOfRange(string message, s internal static IndexOutOfRangeException IndexOutOfRange(string error) { +#pragma warning disable CA2201 // Do not raise reserved exception types IndexOutOfRangeException e = new IndexOutOfRangeException(error); +#pragma warning restore CA2201 // Do not raise reserved exception types TraceExceptionAsReturnValue(e); return e; } diff --git a/src/Common/src/System/Data/ProviderBase/DbConnectionFactory.cs b/src/Common/src/System/Data/ProviderBase/DbConnectionFactory.cs index 9ac3330b4..82269da9b 100644 --- a/src/Common/src/System/Data/ProviderBase/DbConnectionFactory.cs +++ b/src/Common/src/System/Data/ProviderBase/DbConnectionFactory.cs @@ -22,7 +22,7 @@ internal abstract partial class DbConnectionFactory // s_pendingOpenNonPooled is an array of tasks used to throttle creation of non-pooled connections to // a maximum of Environment.ProcessorCount at a time. - private static uint s_pendingOpenNonPooledNext = 0; + private static uint s_pendingOpenNonPooledNext; private static Task[] s_pendingOpenNonPooled = new Task[Environment.ProcessorCount]; private static Task s_completedTask; diff --git a/src/Common/src/System/Net/DebugCriticalHandleZeroOrMinusOneIsInvalid.cs b/src/Common/src/System/Net/DebugCriticalHandleZeroOrMinusOneIsInvalid.cs new file mode 100644 index 000000000..ff4ea687d --- /dev/null +++ b/src/Common/src/System/Net/DebugCriticalHandleZeroOrMinusOneIsInvalid.cs @@ -0,0 +1,40 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using Microsoft.Win32.SafeHandles; + +namespace System.Net +{ +#if DEBUG + // + // This is a helper class for debugging GC-ed handles that we define. + // As a general rule normal code path should always destroy handles explicitly + // + internal abstract class DebugCriticalHandleZeroOrMinusOneIsInvalid : CriticalHandleZeroOrMinusOneIsInvalid + { + private string _trace; + + protected DebugCriticalHandleZeroOrMinusOneIsInvalid() : base() + { + Trace(); + } + + private void Trace() + { + _trace = "WARNING! GC-ed >>" + this.GetType().FullName + "<< (should be explicitly closed) \r\n"; + if (NetEventSource.IsEnabled) NetEventSource.Info(this, "Creating SafeHandle"); +#if TRACE_VERBOSE + string stacktrace = Environment.StackTrace; + _trace += stacktrace; +#endif //TRACE_VERBOSE + } + + ~DebugCriticalHandleZeroOrMinusOneIsInvalid() + { + DebugThreadTracking.SetThreadSource(ThreadKinds.Finalization); + if (NetEventSource.IsEnabled) NetEventSource.Info(this, _trace); + } + } +#endif // DEBUG +} diff --git a/src/System.Data.SqlClient/.editorconfig b/src/System.Data.SqlClient/.editorconfig new file mode 100644 index 000000000..7a1183d15 --- /dev/null +++ b/src/System.Data.SqlClient/.editorconfig @@ -0,0 +1,4 @@ +# Override .NET Diagnostic rules for System.Data.SqlClient library, as its in security maintenance mode. + +# IDE0073: The file header is missing or not located at the top of the file +dotnet_diagnostic.IDE0073.severity = none diff --git a/src/System.Data.SqlClient/src/CompatibilitySuppressions.xml b/src/System.Data.SqlClient/src/CompatibilitySuppressions.xml index 795b8b644..dd3e963f4 100644 --- a/src/System.Data.SqlClient/src/CompatibilitySuppressions.xml +++ b/src/System.Data.SqlClient/src/CompatibilitySuppressions.xml @@ -2,1011 +2,15 @@ - CP0001 - T:Microsoft.SqlServer.Server.DataAccessKind + CP0002 + M:System.Data.SqlClient.SqlDataReader.GetColumnSchema lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true + lib/net462/System.Data.SqlClient.dll - CP0001 - T:Microsoft.SqlServer.Server.Format - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:Microsoft.SqlServer.Server.IBinarySerialize - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:Microsoft.SqlServer.Server.InvalidUdtException - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:Microsoft.SqlServer.Server.SqlDataRecord - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:Microsoft.SqlServer.Server.SqlFunctionAttribute - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:Microsoft.SqlServer.Server.SqlMetaData - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:Microsoft.SqlServer.Server.SqlMethodAttribute - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:Microsoft.SqlServer.Server.SqlUserDefinedAggregateAttribute - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:Microsoft.SqlServer.Server.SqlUserDefinedTypeAttribute - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:Microsoft.SqlServer.Server.SystemDataAccessKind - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.OperationAbortedException - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.Sql.SqlNotificationRequest - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.ApplicationIntent - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.OnChangeEventHandler - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SortOrder - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlBulkCopy - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlBulkCopyColumnMapping - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlBulkCopyColumnMappingCollection - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlBulkCopyOptions - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlClientFactory - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlClientMetaDataCollectionNames - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlCommand - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlCommandBuilder - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlConnection - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlConnectionStringBuilder - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlCredential - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlDataAdapter - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 + CP0008 T:System.Data.SqlClient.SqlDataReader lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlDependency - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlError - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlErrorCollection - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlException - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlInfoMessageEventArgs - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlInfoMessageEventHandler - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlNotificationEventArgs - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlNotificationInfo - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlNotificationSource - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlNotificationType - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlParameter - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlParameterCollection - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlRowsCopiedEventArgs - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlRowsCopiedEventHandler - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlRowUpdatedEventArgs - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlRowUpdatedEventHandler - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlRowUpdatingEventArgs - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlRowUpdatingEventHandler - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlTransaction - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlDbType - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlTypes.INullable - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlTypes.SqlBinary - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlTypes.SqlBoolean - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlTypes.SqlByte - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlTypes.SqlBytes - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlTypes.SqlChars - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlTypes.SqlCompareOptions - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlTypes.SqlDateTime - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlTypes.SqlDecimal - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlTypes.SqlDouble - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlTypes.SqlGuid - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlTypes.SqlInt16 - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlTypes.SqlInt32 - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlTypes.SqlInt64 - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlTypes.SqlMoney - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlTypes.SqlNullValueException - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlTypes.SqlSingle - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlTypes.SqlString - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlTypes.SqlTruncateException - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlTypes.SqlTypeException - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlTypes.SqlXml - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.StatementCompletedEventArgs - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.StatementCompletedEventHandler - lib/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:Microsoft.SqlServer.Server.DataAccessKind - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:Microsoft.SqlServer.Server.Format - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:Microsoft.SqlServer.Server.IBinarySerialize - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:Microsoft.SqlServer.Server.InvalidUdtException - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:Microsoft.SqlServer.Server.SqlDataRecord - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:Microsoft.SqlServer.Server.SqlFunctionAttribute - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:Microsoft.SqlServer.Server.SqlMetaData - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:Microsoft.SqlServer.Server.SqlMethodAttribute - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:Microsoft.SqlServer.Server.SqlUserDefinedAggregateAttribute - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:Microsoft.SqlServer.Server.SqlUserDefinedTypeAttribute - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:Microsoft.SqlServer.Server.SystemDataAccessKind - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.OperationAbortedException - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.Sql.SqlNotificationRequest - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.ApplicationIntent - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.OnChangeEventHandler - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SortOrder - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlBulkCopy - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlBulkCopyColumnMapping - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlBulkCopyColumnMappingCollection - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlBulkCopyOptions - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlClientFactory - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlClientMetaDataCollectionNames - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlCommand - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlCommandBuilder - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlConnection - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlConnectionStringBuilder - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlCredential - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlDataAdapter - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlDataReader - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlDependency - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlError - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlErrorCollection - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlException - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlInfoMessageEventArgs - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlInfoMessageEventHandler - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlNotificationEventArgs - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlNotificationInfo - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlNotificationSource - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlNotificationType - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlParameter - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlParameterCollection - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlRowsCopiedEventArgs - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlRowsCopiedEventHandler - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlRowUpdatedEventArgs - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlRowUpdatedEventHandler - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlRowUpdatingEventArgs - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlRowUpdatingEventHandler - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlClient.SqlTransaction - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlDbType - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlTypes.INullable - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlTypes.SqlBinary - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlTypes.SqlBoolean - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlTypes.SqlByte - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlTypes.SqlBytes - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlTypes.SqlChars - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlTypes.SqlCompareOptions - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlTypes.SqlDateTime - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlTypes.SqlDecimal - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlTypes.SqlDouble - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlTypes.SqlGuid - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlTypes.SqlInt16 - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlTypes.SqlInt32 - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlTypes.SqlInt64 - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlTypes.SqlMoney - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlTypes.SqlNullValueException - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlTypes.SqlSingle - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlTypes.SqlString - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlTypes.SqlTruncateException - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlTypes.SqlTypeException - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.SqlTypes.SqlXml - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.StatementCompletedEventArgs - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true - - - CP0001 - T:System.Data.StatementCompletedEventHandler - ref/netstandard2.0/System.Data.SqlClient.dll - lib/netstandard2.0/System.Data.SqlClient.dll - true + lib/net462/System.Data.SqlClient.dll \ No newline at end of file diff --git a/src/System.Data.SqlClient/src/System.Data.SqlClient.csproj b/src/System.Data.SqlClient/src/System.Data.SqlClient.csproj index 7c024402c..ced505b76 100644 --- a/src/System.Data.SqlClient/src/System.Data.SqlClient.csproj +++ b/src/System.Data.SqlClient/src/System.Data.SqlClient.csproj @@ -4,11 +4,16 @@ $(NetMinimum);$(NetMinimum)-unix;$(NetMinimum)-windows;netstandard2.0;$(NetFrameworkMinimum) true Microsoft - 4.6.1.6 + 4.6.1.6 + true + netfx netcoreapp - netstandard2.0 - $(NoWarn);CS1573;nullable + netstandard + true + $(NoWarn);CA1001;CA1068;CA1069;CA1309;CA1310;CA1419;CA1711;CA1805;CA1806;CA1816;CA1822;CA1830;CA1834;CA1835;CA1836;CA1840;CA1844;CA2016;CA2101;CA2200;CA2201;CA2208;CA2219;CA2249;CA2251;CA5366; + $(NoWarn);CS0168;CS0649; + $(NoWarn);IDE0073;SYSLIB0004;nullable; false $(DefineConstants);netstandard $(DefineConstants);netcoreapp @@ -35,23 +40,23 @@ - + Common\CoreLib\System\Diagnostics\CodeAnalysis\NullableAttributes.cs - - + + - - + + - - + + @@ -329,7 +334,7 @@ - + - + @@ -473,7 +478,7 @@ - + Common\System\Net\ContextFlagsPal.cs @@ -552,80 +557,24 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + System.Data.SqlClient.SqlMetaData.xml - - - - - - + + + + - \ No newline at end of file + diff --git a/src/System.Data.SqlClient/src/System.Data.TypeForwards.cs b/src/System.Data.SqlClient/src/System.Data.TypeForwards.cs new file mode 100644 index 000000000..899ce57bb --- /dev/null +++ b/src/System.Data.SqlClient/src/System.Data.TypeForwards.cs @@ -0,0 +1,76 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.SqlServer.Server.DataAccessKind))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.SqlServer.Server.Format))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.SqlServer.Server.IBinarySerialize))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.SqlServer.Server.InvalidUdtException))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.SqlServer.Server.SqlDataRecord))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.SqlServer.Server.SqlFunctionAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.SqlServer.Server.SqlMetaData))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.SqlServer.Server.SqlMethodAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.SqlServer.Server.SqlUserDefinedAggregateAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.SqlServer.Server.SqlUserDefinedTypeAttribute))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.SqlServer.Server.SystemDataAccessKind))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.OperationAbortedException))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.Sql.SqlNotificationRequest))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlClient.ApplicationIntent))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlClient.OnChangeEventHandler))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlClient.SortOrder))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlClient.SqlBulkCopy))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlClient.SqlBulkCopyColumnMapping))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlClient.SqlBulkCopyColumnMappingCollection))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlClient.SqlBulkCopyOptions))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlClient.SqlClientFactory))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlClient.SqlClientMetaDataCollectionNames))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlClient.SqlCommand))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlClient.SqlCommandBuilder))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlClient.SqlConnection))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlClient.SqlConnectionStringBuilder))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlClient.SqlCredential))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlClient.SqlDataAdapter))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlClient.SqlDataReader))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlClient.SqlDependency))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlClient.SqlError))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlClient.SqlErrorCollection))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlClient.SqlException))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlClient.SqlInfoMessageEventArgs))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlClient.SqlInfoMessageEventHandler))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlClient.SqlNotificationEventArgs))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlClient.SqlNotificationInfo))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlClient.SqlNotificationSource))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlClient.SqlNotificationType))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlClient.SqlParameter))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlClient.SqlParameterCollection))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlClient.SqlRowsCopiedEventArgs))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlClient.SqlRowsCopiedEventHandler))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlClient.SqlRowUpdatedEventArgs))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlClient.SqlRowUpdatedEventHandler))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlClient.SqlRowUpdatingEventArgs))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlClient.SqlRowUpdatingEventHandler))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlClient.SqlTransaction))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlDbType))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlTypes.INullable))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlTypes.SqlBinary))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlTypes.SqlBoolean))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlTypes.SqlByte))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlTypes.SqlBytes))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlTypes.SqlChars))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlTypes.SqlCompareOptions))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlTypes.SqlDateTime))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlTypes.SqlDecimal))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlTypes.SqlDouble))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlTypes.SqlGuid))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlTypes.SqlInt16))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlTypes.SqlInt32))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlTypes.SqlInt64))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlTypes.SqlMoney))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlTypes.SqlNullValueException))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlTypes.SqlSingle))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlTypes.SqlString))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlTypes.SqlTruncateException))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlTypes.SqlTypeException))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.SqlTypes.SqlXml))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.StatementCompletedEventArgs))] +[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Data.StatementCompletedEventHandler))] diff --git a/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlDependencyListener.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlDependencyListener.cs index 5640f4510..2295e1cac 100644 --- a/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlDependencyListener.cs +++ b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlDependencyListener.cs @@ -22,7 +22,9 @@ internal class SqlDependencyProcessDispatcher : MarshalByRefObject { // Class to contain/store all relevant information about a connection that waits on the SSB queue. +#pragma warning disable CA1001 // Types that own disposable fields should be disposable private class SqlConnectionContainer +#pragma warning restore CA1001 // Types that own disposable fields should be disposable { private SqlConnection _con; private SqlCommand _com; @@ -34,20 +36,20 @@ private class SqlConnectionContainer private string _beginConversationQuery; private string _endConversationQuery; private string _concatQuery; - private readonly int _defaultWaitforTimeout = 60000; // Waitfor(Receive) timeout (milleseconds) + private readonly int _defaultWaitforTimeout; // Waitfor(Receive) timeout (milleseconds) private string _escapedQueueName; private string _sprocName; private string _dialogHandle; private string _cachedServer; private string _cachedDatabase; - private volatile bool _errorState = false; - private volatile bool _stop = false; // Can probably simplify this slightly - one bool instead of two. - private volatile bool _stopped = false; - private volatile bool _serviceQueueCreated = false; - private int _startCount = 0; // Each container class is called once per Start() - we refCount + private volatile bool _errorState; + private volatile bool _stop; // Can probably simplify this slightly - one bool instead of two. + private volatile bool _stopped; + private volatile bool _serviceQueueCreated; + private int _startCount; // Each container class is called once per Start() - we refCount // to track when we can dispose. - private Timer _retryTimer = null; - private Dictionary _appDomainKeyHash = null; // AppDomainKey->Open RefCount + private Timer _retryTimer; + private Dictionary _appDomainKeyHash; // AppDomainKey->Open RefCount // Constructor @@ -76,10 +78,6 @@ internal SqlConnectionContainer(SqlConnectionContainerHashHelper hashHelper, str // connection string used in the hashHelper. _con = new SqlConnection(_hashHelper.ConnectionStringBuilder.ConnectionString); // Create connection and open. - // Assert permission for this particular connection string since it differs from the user passed string - // which we have already demanded upon. - SqlConnectionString connStringObj = (SqlConnectionString)_con.ConnectionOptions; - _con.Open(); _cachedServer = _con.DataSource; @@ -207,7 +205,7 @@ internal bool AppDomainUnload(string appDomainKey) int value = _appDomainKeyHash[appDomainKey]; Debug.Assert(value > 0, "Why is value 0 or less?"); - bool ignored = false; + bool ignored; while (value > 0) { Debug.Assert(!_stopped, "We should not yet be stopped!"); @@ -400,7 +398,9 @@ private void CreateQueueAndService(bool restart) { if (!ADP.IsCatchableExceptionType(e)) { +#pragma warning disable CA2219 // Do not raise exceptions in finally clauses throw; +#pragma warning restore CA2219 // Do not raise exceptions in finally clauses } ADP.TraceExceptionWithoutRethrow(e); // Discard failure, but trace for now. } @@ -886,7 +886,7 @@ internal static SqlNotification ProcessMessage(SqlXml xmlMessage) { using (XmlReader xmlReader = xmlMessage.CreateReader()) { - string keyvalue = string.Empty; + string keyvalue; MessageAttributes messageAttributes = MessageAttributes.None; @@ -894,7 +894,7 @@ internal static SqlNotification ProcessMessage(SqlXml xmlMessage) SqlNotificationInfo info = SqlNotificationInfo.Unknown; SqlNotificationSource source = SqlNotificationSource.Unknown; - string key = string.Empty; + string key; // Move to main node, expecting "QueryNotification". xmlReader.Read(); @@ -1087,7 +1087,7 @@ public override bool Equals(object value) { SqlConnectionContainerHashHelper temp = (SqlConnectionContainerHashHelper)value; - bool result = false; + bool result; // Ignore SqlConnectionStringBuilder, since it is present largely for debug purposes. @@ -1160,7 +1160,7 @@ public override int GetHashCode() // SqlDependencyProcessDispatcher static members - private static SqlDependencyProcessDispatcher s_staticInstance = new SqlDependencyProcessDispatcher(null); + private static SqlDependencyProcessDispatcher s_staticInstance; // Dictionaries used as maps. private Dictionary _connectionContainers; // NT_ID+ConStr+Service->Container @@ -1228,6 +1228,9 @@ private static SqlConnectionContainerHashHelper GetHashHelper( } // Needed for remoting to prevent lifetime issues and default GC cleanup. +#if NET6_0_OR_GREATER + [Obsolete] +#endif public override object InitializeLifetimeService() { return null; @@ -1391,7 +1394,7 @@ private bool Start( bool started = false; - SqlConnectionContainer container = null; + SqlConnectionContainer container; lock (_connectionContainers) { if (!_connectionContainers.ContainsKey(hashHelper)) diff --git a/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlDependencyUtils.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlDependencyUtils.cs index 4d5ce1137..2048f4cc5 100644 --- a/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlDependencyUtils.cs +++ b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlDependencyUtils.cs @@ -67,7 +67,7 @@ internal DependencyList(string commandHash) // // LOCKS: don't update _nextTimeout outside of the _dependencyHash.SyncRoot lock. - private bool _sqlDependencyTimeOutTimerStarted = false; + private bool _sqlDependencyTimeOutTimerStarted; // Next timeout for any of the dependencies in the dependency table. private DateTime _nextTimeout; // Timer to periodically check the dependencies in the table and see if anyone needs @@ -91,6 +91,9 @@ private SqlDependencyPerAppDomainDispatcher() // When remoted across appdomains, MarshalByRefObject links by default time out if there is no activity // within a few minutes. Add this override to prevent marshaled links from timing out. +#if NET6_0_OR_GREATER + [Obsolete] +#endif public override object InitializeLifetimeService() { return null; diff --git a/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlTransaction.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlTransaction.cs index ef803d6c5..9d189e0e2 100644 --- a/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlTransaction.cs +++ b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlTransaction.cs @@ -215,7 +215,11 @@ override public void Rollback() } } +#if NET6_0_OR_GREATER + public override void Rollback(string transactionName) +#else public void Rollback(string transactionName) +#endif { Exception e = null; Guid operationId = s_diagnosticListener.WriteTransactionRollbackBefore(_isolationLevel, _connection, transactionName); @@ -253,7 +257,11 @@ public void Rollback(string transactionName) } } +#if NET6_0_OR_GREATER + public override void Save(string savePointName) +#else public void Save(string savePointName) +#endif { ZombieCheck(); diff --git a/src/System.Data.SqlClient/tests/FunctionalTests/Configurations.props b/src/System.Data.SqlClient/tests/FunctionalTests/Configurations.props deleted file mode 100644 index 729176f90..000000000 --- a/src/System.Data.SqlClient/tests/FunctionalTests/Configurations.props +++ /dev/null @@ -1,10 +0,0 @@ - - - - uap-Windows_NT; - netfx-Windows_NT; - netcoreapp-Unix; - netcoreapp-Windows_NT; - - - \ No newline at end of file diff --git a/src/System.Data.SqlClient/tests/FunctionalTests/System.Data.SqlClient.Tests.csproj b/src/System.Data.SqlClient/tests/FunctionalTests/System.Data.SqlClient.Tests.csproj index d241e5dee..476942beb 100644 --- a/src/System.Data.SqlClient/tests/FunctionalTests/System.Data.SqlClient.Tests.csproj +++ b/src/System.Data.SqlClient/tests/FunctionalTests/System.Data.SqlClient.Tests.csproj @@ -1,9 +1,11 @@ - {F3E72F35-0351-4D67-9388-725BCAD807BA} true - $(NetFrameworkMinimum) + $(NetMinimum) false + $(NoWarn);CA1001;CA1068;CA1069;CA1309;CA1310;CA1419;CA1711;CA1805;CA1806;CA1816;CA1822;CA1830;CA1834;CA1835;CA1836;CA1840;CA1844;CA2016;CA2101;CA2200;CA2201;CA2208;CA2219;CA2249;CA2251;CA5366; + $(NoWarn);CS0168;CS0649; + $(NoWarn);IDE0073;SYSLIB0004;nullable; diff --git a/src/System.Data.SqlClient/tests/ManualTests/Configurations.props b/src/System.Data.SqlClient/tests/ManualTests/Configurations.props deleted file mode 100644 index f97cd5ea7..000000000 --- a/src/System.Data.SqlClient/tests/ManualTests/Configurations.props +++ /dev/null @@ -1,8 +0,0 @@ - - - - netcoreapp; - uap; - - - \ No newline at end of file diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.cs index 426edfafe..a7a25b541 100644 --- a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.cs +++ b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.cs @@ -8,187 +8,190 @@ using Microsoft.SqlServer.Server; -[Serializable] -[SqlUserDefinedType(Format.UserDefined, IsByteOrdered = false, MaxByteSize = 500)] -public class Address : INullable, IBinarySerialize +namespace Microsoft.Samples.SqlServer { - public static Address Null { get { return new Address(true); } } - - //****************************************************** - // Constructors - //****************************************************** - - // Constructor for a null value: Address.Null - // fNull is not used but needed because compiler doesn't let - // struct have parameterless constructors - private Address(bool fNull) - { - m_fNotNull = false; - m_firstline = SqlString.Null; - m_secondline = SqlString.Null; - } - - public Address(SqlString line1, SqlString line2) + [Serializable] + [SqlUserDefinedType(Format.UserDefined, IsByteOrdered = false, MaxByteSize = 500)] + public class Address : INullable, IBinarySerialize { - m_firstline = line1; - m_secondline = line2; - m_fNotNull = true; - } + public static Address Null { get { return new Address(true); } } - public Address() - { - m_fNotNull = false; - m_firstline = SqlString.Null; - m_secondline = SqlString.Null; - } + //****************************************************** + // Constructors + //****************************************************** - //****************************************************** - // INullable interface - //****************************************************** - - // INullable - public bool IsNull - { - get { return !m_fNotNull; } - } - - //****************************************************** - // Common static and instance methods for SQL UDTs - //****************************************************** - public const int MaxByteSize = 500; - public const bool IsFixedLength = false; - public const bool IsByteOrdered = true; - - public void Read(BinaryReader r) - { - m_firstline = new SqlString(r.ReadString()); - m_secondline = new SqlString(r.ReadString()); - m_fNotNull = BitConverter.ToBoolean(r.ReadBytes(1), 0); - } + // Constructor for a null value: Address.Null + // fNull is not used but needed because compiler doesn't let + // struct have parameterless constructors + private Address(bool fNull) + { + m_fNotNull = false; + m_firstline = SqlString.Null; + m_secondline = SqlString.Null; + } - public void Write(BinaryWriter w) - { - w.Write(m_firstline.ToString()); - w.Write(m_secondline.ToString()); - w.Write(m_fNotNull); - } + public Address(SqlString line1, SqlString line2) + { + m_firstline = line1; + m_secondline = line2; + m_fNotNull = true; + } - public void FillFromBytes(SqlBytes value) - { - if (value.IsNull) + public Address() { m_fNotNull = false; m_firstline = SqlString.Null; m_secondline = SqlString.Null; - return; } - System.Text.UnicodeEncoding e = new System.Text.UnicodeEncoding(); - string str = e.GetString(value.Buffer); + //****************************************************** + // INullable interface + //****************************************************** + + // INullable + public bool IsNull + { + get { return !m_fNotNull; } + } - string[] twolines = new string[2]; - char[] seperator = { '|' }; - twolines = str.Split(seperator); + //****************************************************** + // Common static and instance methods for SQL UDTs + //****************************************************** + public const int MaxByteSize = 500; + public const bool IsFixedLength = false; + public const bool IsByteOrdered = true; - m_firstline = twolines[0]; - m_secondline = twolines.Length > 1 ? twolines[1] : SqlString.Null; - m_fNotNull = true; + public void Read(BinaryReader r) + { + m_firstline = new SqlString(r.ReadString()); + m_secondline = new SqlString(r.ReadString()); + m_fNotNull = BitConverter.ToBoolean(r.ReadBytes(1), 0); + } - return; - } + public void Write(BinaryWriter w) + { + w.Write(m_firstline.ToString()); + w.Write(m_secondline.ToString()); + w.Write(m_fNotNull); + } - public void FillBytes(SqlBytes value) - { - if (IsNull) + public void FillFromBytes(SqlBytes value) { if (value.IsNull) + { + m_fNotNull = false; + m_firstline = SqlString.Null; + m_secondline = SqlString.Null; return; + } + + System.Text.UnicodeEncoding e = new System.Text.UnicodeEncoding(); + string str = e.GetString(value.Buffer); + + string[] twolines = new string[2]; + char[] seperator = { '|' }; + twolines = str.Split(seperator); + + m_firstline = twolines[0]; + m_secondline = twolines.Length > 1 ? twolines[1] : SqlString.Null; + m_fNotNull = true; + + return; + } + + public void FillBytes(SqlBytes value) + { + if (IsNull) + { + if (value.IsNull) + return; + else + { + value.SetNull(); + return; + } + } + + SqlString str; + if ((object)m_secondline == null || m_secondline.IsNull) + str = m_firstline; else { - value.SetNull(); - return; + str = string.Concat(m_firstline, "|"); + str = string.Concat(str, m_secondline); } + + byte[] stringData = str.GetUnicodeBytes(); + int i; + for (i = 0; i < stringData.Length; i++) + value[i] = stringData[i]; + value.SetLength(i); + + return; } - SqlString str; - if ((object)m_secondline == null || m_secondline.IsNull) - str = m_firstline; - else + public override string ToString() { - str = string.Concat(m_firstline, "|"); - str = string.Concat(str, m_secondline); + if (IsNull) + return "Null"; + else + return Value.ToString(); } - byte[] stringData = str.GetUnicodeBytes(); - int i; - for (i = 0; i < stringData.Length; i++) - value[i] = stringData[i]; - value.SetLength(i); + public static Address Parse(SqlString s) + { + if (s.IsNull) + return Address.Null; - return; - } + string str = s.ToString(); + string[] twolines = new string[2]; - public override string ToString() - { - if (IsNull) - return "Null"; - else - return Value.ToString(); - } + // using || to indicate the separation between + // address line 1 and 2, assume it won't appear + // in any address + char[] seperator = { '|', '|' }; + twolines = str.Split(seperator); - public static Address Parse(SqlString s) - { - if (s.IsNull) - return Address.Null; - - string str = s.ToString(); - string[] twolines = new string[2]; - - // using || to indicate the separation between - // address line 1 and 2, assume it won't appear - // in any address - char[] seperator = { '|', '|' }; - twolines = str.Split(seperator); - - if (twolines.Length == 2) - return new Address(twolines[0], twolines[1]); - else - return new Address(twolines[0], SqlString.Null); - } + if (twolines.Length == 2) + return new Address(twolines[0], twolines[1]); + else + return new Address(twolines[0], SqlString.Null); + } - //****************************************************** - // Address Specific Methods - //****************************************************** - public SqlString GetFirstLine() - { - return m_firstline; - } + //****************************************************** + // Address Specific Methods + //****************************************************** + public SqlString GetFirstLine() + { + return m_firstline; + } - public SqlString GetSecondLine() - { - return m_secondline; - } + public SqlString GetSecondLine() + { + return m_secondline; + } - public SqlString Value - { - get + public SqlString Value { - if (m_fNotNull) + get { - if (m_secondline.IsNull) - return m_firstline; + if (m_fNotNull) + { + if (m_secondline.IsNull) + return m_firstline; + else + return string.Concat(m_firstline, m_secondline); + } else - return string.Concat(m_firstline, m_secondline); + throw new SqlNullValueException(); } - else - throw new SqlNullValueException(); } - } - //****************************************************** - // Address Private Members - //****************************************************** - private SqlString m_firstline; - private SqlString m_secondline; - private bool m_fNotNull; //false if null, default ctor makes it null -} \ No newline at end of file + //****************************************************** + // Address Private Members + //****************************************************** + private SqlString m_firstline; + private SqlString m_secondline; + private bool m_fNotNull; //false if null, default ctor makes it null + } +} diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.csproj b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.csproj index fd12ebb57..6e515cf87 100644 --- a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.csproj +++ b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.csproj @@ -1,6 +1,11 @@ + - {D1392B54-998A-4F27-BC17-4CE149117BCC} - $(NetFrameworkMinimum) + $(NetMinimum) + + + + + diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Address/Configurations.props b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Address/Configurations.props deleted file mode 100644 index 29dd700cc..000000000 --- a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Address/Configurations.props +++ /dev/null @@ -1,8 +0,0 @@ - - - - netstandard; - netcoreapp; - - - \ No newline at end of file diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Circle.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Circle.cs index ac8e848fa..9bd80d116 100644 --- a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Circle.cs +++ b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Circle.cs @@ -9,144 +9,151 @@ using Microsoft.SqlServer.Server; -[Serializable] -[SqlUserDefinedType(Format.UserDefined, IsByteOrdered = false, MaxByteSize = 30)] -public class Circle : INullable, IBinarySerialize +namespace Microsoft.Samples.SqlServer { - private Point1 center = new Point1(); - private int rad; - - private bool fIsNull = false; - - public static Circle Null { get { return new Circle(true); } } + [Serializable] + [SqlUserDefinedType(Format.UserDefined, IsByteOrdered = false, MaxByteSize = 30)] + public class Circle : INullable, IBinarySerialize + { + private Point1 center = new Point1(); + private int rad; - public const int MaxByteSize = 30; - public const bool IsFixedLength = true; - public const bool IsByteOrdered = false; + private bool fIsNull; + public static Circle Null { get { return new Circle(true); } } - public void Read(BinaryReader r) - { - center = new Point1(); - center.Read(r); - rad = r.ReadInt32(); - fIsNull = BitConverter.ToBoolean(r.ReadBytes(1), 0); - } - - public void Write(BinaryWriter w) - { - center.Write(w); - w.Write(rad); - w.Write(fIsNull); - } + public const int MaxByteSize = 30; + public const bool IsFixedLength = true; + public const bool IsByteOrdered = false; - public Circle() - { - center.X = 0; - center.Y = 0; - rad = 0; - fIsNull = false; - } + public void Read(BinaryReader r) + { + center = new Point1(); + center.Read(r); + rad = r.ReadInt32(); + fIsNull = BitConverter.ToBoolean(r.ReadBytes(1), 0); + } - public Circle(bool fNull) - { - fIsNull = true; - } + public void Write(BinaryWriter w) + { + center.Write(w); + w.Write(rad); + w.Write(fIsNull); + } - public bool IsNull - { - get + public Circle() { - return fIsNull; + center.X = 0; + center.Y = 0; + rad = 0; + fIsNull = false; + } - } - public void FillFromBytes(SqlBytes data) - { - if (data.IsNull) + public Circle(bool fNull) { fIsNull = true; - return; } - if (data.Length != 12) - throw new ArgumentException(); - byte[] value = data.Value; - - //read x1,y1,x2,y2 - center.X = BitConverter.ToInt32(value, 0); - center.Y = BitConverter.ToInt32(value, 4); - rad = BitConverter.ToInt32(value, 8); - } + public bool IsNull + { + get + { + return fIsNull; + } + } - public void FillBytes(SqlBytes data) - { - if (fIsNull) + public void FillFromBytes(SqlBytes data) { if (data.IsNull) - return; - else { - data.SetNull(); + fIsNull = true; return; } + + if (data.Length != 12) + throw new ArgumentException(null, nameof(data)); + byte[] value = data.Value; + + //read x1,y1,x2,y2 + center.X = BitConverter.ToInt32(value, 0); + center.Y = BitConverter.ToInt32(value, 4); + rad = BitConverter.ToInt32(value, 8); } - byte[] bigbytes = new byte[12]; - byte[] bytes = BitConverter.GetBytes(center.X); - bytes.CopyTo(bigbytes, 0); - bytes = BitConverter.GetBytes(center.Y); - bytes.CopyTo(bigbytes, 4); + public void FillBytes(SqlBytes data) + { + if (fIsNull) + { + if (data.IsNull) + return; + else + { + data.SetNull(); + return; + } + } - bytes = BitConverter.GetBytes(rad); - bytes.CopyTo(bigbytes, 8); + byte[] bigbytes = new byte[12]; + byte[] bytes = BitConverter.GetBytes(center.X); + bytes.CopyTo(bigbytes, 0); + bytes = BitConverter.GetBytes(center.Y); + bytes.CopyTo(bigbytes, 4); - int i; - for (i = 0; i < bigbytes.Length; i++) - data[i] = bigbytes[i]; - data.SetLength(i); + bytes = BitConverter.GetBytes(rad); + bytes.CopyTo(bigbytes, 8); - } + int i; + for (i = 0; i < bigbytes.Length; i++) + data[i] = bigbytes[i]; + data.SetLength(i); - //it should be x1,y1,x2,y2 - public static Circle Parse(SqlString data) - { - string[] array = data.Value.Split(new char[] { ',' }); + } - if (array.Length != 3) - throw new ArgumentException(); - Circle circ = new Circle(); + //it should be x1,y1,x2,y2 + public static Circle Parse(SqlString data) + { + if(data == null) + { + throw new ArgumentNullException(nameof(data)); + } + string[] array = data.Value.Split(new char[] { ',' }); - circ.center.X = int.Parse(array[0]); - circ.center.Y = int.Parse(array[1]); - circ.rad = int.Parse(array[2]); - return circ; - } + if (array.Length != 3) + throw new ArgumentException("Data length not as expected", nameof(data)); + Circle circ = new Circle(); - public override string ToString() - { - StringBuilder builder = new StringBuilder(); - builder.Append(center.ToString()); - builder.Append(","); - builder.Append(rad.ToString()); + circ.center.X = int.Parse(array[0]); + circ.center.Y = int.Parse(array[1]); + circ.rad = int.Parse(array[2]); + return circ; + } - return builder.ToString(); - } + public override string ToString() + { + StringBuilder builder = new StringBuilder(); + builder.Append(center.ToString()); + builder.Append(','); + builder.Append(rad); - public Point1 Center - { - get + return builder.ToString(); + } + + public Point1 Center { - return center; + get + { + return center; + } } - } - public int Radius - { - get + public int Radius { - return rad; + get + { + return rad; + } } } } diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Circle.csproj b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Circle.csproj index b7945cd91..87c642551 100644 --- a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Circle.csproj +++ b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Circle.csproj @@ -1,6 +1,12 @@ + - {6C88F00F-9597-43AD-9E5F-9B344DA3B16F} - $(NetFrameworkMinimum) + $(NetMinimum) + $(NoWarn);CA2208; + + + + + diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Configurations.props b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Configurations.props deleted file mode 100644 index 29dd700cc..000000000 --- a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Configurations.props +++ /dev/null @@ -1,8 +0,0 @@ - - - - netstandard; - netcoreapp; - - - \ No newline at end of file diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Point1.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Point1.cs index 54b669943..1ace33c40 100644 --- a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Point1.cs +++ b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Point1.cs @@ -9,174 +9,177 @@ using Microsoft.SqlServer.Server; -[Serializable] -[SqlUserDefinedType(Format.UserDefined, IsByteOrdered = true, MaxByteSize = 9)] -public class Point1 : INullable, IBinarySerialize +namespace Microsoft.Samples.SqlServer { - private int x; - private int y; - private bool fIsNull = false; - - public static Point1 Null { get { return new Point1(true); } } - public const int MaxByteSize = 9; - public const bool IsFixedLength = true; - public const bool IsByteOrdered = false; - - public void Read(BinaryReader r) - { - x = r.ReadInt32(); - y = r.ReadInt32(); - fIsNull = BitConverter.ToBoolean(r.ReadBytes(1), 0); - } - - public void Write(BinaryWriter w) + [Serializable] + [SqlUserDefinedType(Format.UserDefined, IsByteOrdered = true, MaxByteSize = 9)] + public class Point1 : INullable, IBinarySerialize { - w.Write(x); - w.Write(y); - w.Write(fIsNull); - } + private int x; + private int y; + private bool fIsNull; - public Point1() - { - x = 0; - y = 0; - fIsNull = false; - } - - public Point1(bool fNull) - { - fIsNull = true; - } + public static Point1 Null { get { return new Point1(true); } } + public const int MaxByteSize = 9; + public const bool IsFixedLength = true; + public const bool IsByteOrdered = false; - public Point1(int ix, int iy) - { - x = ix; - y = iy; - fIsNull = false; - } + public void Read(BinaryReader r) + { + x = r.ReadInt32(); + y = r.ReadInt32(); + fIsNull = BitConverter.ToBoolean(r.ReadBytes(1), 0); + } - public bool IsNull - { - get + public void Write(BinaryWriter w) { - return fIsNull; + w.Write(x); + w.Write(y); + w.Write(fIsNull); } - } - public void FillFromBytesInternal(byte[] data) - { - if (data.Length != 9) - throw new ArgumentException(); + public Point1() + { + x = 0; + y = 0; + fIsNull = false; + } - x = BitConverter.ToInt32(data, 0); - y = BitConverter.ToInt32(data, 4); + public Point1(bool fNull) + { + fIsNull = true; + } - } + public Point1(int ix, int iy) + { + x = ix; + y = iy; + fIsNull = false; + } - public void FillFromBytes(SqlBytes value) - { - if (value.IsNull) + public bool IsNull { - fIsNull = true; - return; + get + { + return fIsNull; + } } - byte[] bytes = value.Value; - FillFromBytesInternal(bytes); + public void FillFromBytesInternal(byte[] data) + { + if (data.Length != 9) + throw new ArgumentException(); - fIsNull = false; - return; - } + x = BitConverter.ToInt32(data, 0); + y = BitConverter.ToInt32(data, 4); - public void FillBytes(SqlBytes value) - { - if (fIsNull) + } + + public void FillFromBytes(SqlBytes value) { if (value.IsNull) - return; - else { - value.SetNull(); + fIsNull = true; return; } - } - byte[] bigbytes = new byte[9]; - byte[] bytes = BitConverter.GetBytes(x); - bytes.CopyTo(bigbytes, 0); - bytes = BitConverter.GetBytes(y); - bytes.CopyTo(bigbytes, 4); + byte[] bytes = value.Value; + FillFromBytesInternal(bytes); + + fIsNull = false; + return; + } - int i; - for (i = 0; i < bigbytes.Length; i++) - value[i] = bigbytes[i]; - value.SetLength(i); + public void FillBytes(SqlBytes value) + { + if (fIsNull) + { + if (value.IsNull) + return; + else + { + value.SetNull(); + return; + } + } - return; - } + byte[] bigbytes = new byte[9]; + byte[] bytes = BitConverter.GetBytes(x); + bytes.CopyTo(bigbytes, 0); + bytes = BitConverter.GetBytes(y); + bytes.CopyTo(bigbytes, 4); - public static Point1 Parse(SqlString data) - { - string[] array = data.Value.Split(new char[] { ',' }); - int x; - int y; + int i; + for (i = 0; i < bigbytes.Length; i++) + value[i] = bigbytes[i]; + value.SetLength(i); - if (array.Length != 2) - throw new ArgumentException(); - x = int.Parse(array[0]); - y = int.Parse(array[1]); + return; + } - return new Point1(x, y); - } + public static Point1 Parse(SqlString data) + { + string[] array = data.Value.Split(new char[] { ',' }); + int x; + int y; - public override string ToString() - { - StringBuilder builder = new StringBuilder(); - builder.Append(x); - builder.Append(","); - builder.Append(y); + if (array.Length != 2) + throw new ArgumentException(); + x = int.Parse(array[0]); + y = int.Parse(array[1]); - return builder.ToString(); - } + return new Point1(x, y); + } - public int X - { - get + public override string ToString() { - return x; + StringBuilder builder = new StringBuilder(); + builder.Append(x); + builder.Append(','); + builder.Append(y); + + return builder.ToString(); } - set + + public int X { - x = value; + get + { + return x; + } + set + { + x = value; + } } - } - public int Y - { - get + public int Y { - return y; + get + { + return y; + } + set + { + y = value; + } } - set + + public double Distance() { - y = value; + return DistanceFromXY(0, 0); } - } - public double Distance() - { - return DistanceFromXY(0, 0); - } + public double DistanceFrom(Point1 pFrom) + { + return DistanceFromXY(pFrom.x, pFrom.y); + } - public double DistanceFrom(Point1 pFrom) - { - return DistanceFromXY(pFrom.x, pFrom.y); - } + public double DistanceFromXY(int ix, int iy) + { + return Math.Sqrt(Math.Pow(ix - x, 2.0) + Math.Pow(iy - y, 2.0)); + } - public double DistanceFromXY(int ix, int iy) - { - return Math.Sqrt(Math.Pow(ix - x, 2.0) + Math.Pow(iy - y, 2.0)); + public const int MaxByteSizeValue = 12; } - - public const int MaxByteSizeValue = 12; } diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Configurations.props b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Configurations.props deleted file mode 100644 index 29dd700cc..000000000 --- a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Configurations.props +++ /dev/null @@ -1,8 +0,0 @@ - - - - netstandard; - netcoreapp; - - - \ No newline at end of file diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Line.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Line.cs deleted file mode 100644 index a6b18599b..000000000 --- a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Line.cs +++ /dev/null @@ -1,164 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; -using System.Text; -using System.Data.SqlTypes; -using System.IO; - -using Microsoft.SqlServer.Server; - -[Serializable] -[SqlUserDefinedType(Format.UserDefined, IsByteOrdered = false, MaxByteSize = 20)] -public class Line : INullable, IBinarySerialize -{ - private Point start = new Point(); - private Point end = new Point(); - - private bool fIsNull = false; - - public static Line Null { get { return new Line(true); } } - - public const int MaxByteSize = 20; - public const bool IsFixedLength = true; - public const bool IsByteOrdered = false; - - public Line() - { - start.X = start.Y = end.X = end.Y = 0; - } - - public Line(bool fNull) - { - fIsNull = true; - } - - public Line(Point ix, Point iy) - { - start.X = ix.X; - start.Y = ix.Y; - end.X = iy.X; - end.Y = iy.Y; - } - - public bool IsNull - { - get - { - return fIsNull; - } - } - - public void Read(BinaryReader r) - { - start = new Point(); - start.Read(r); - end = new Point(); - end.Read(r); - fIsNull = BitConverter.ToBoolean(r.ReadBytes(1), 0); - } - - public void Write(BinaryWriter w) - { - start.Write(w); - end.Write(w); - w.Write(fIsNull); - } - - public void FillFromBytes(SqlBytes data) - { - if (data.IsNull) - { - fIsNull = true; - return; - } - - if (data.Length != 16) - throw new ArgumentException(); - byte[] value = data.Value; - - //read x1,y1,x2,y2 - start.X = BitConverter.ToInt32(value, 0); - start.Y = BitConverter.ToInt32(value, 4); - end.X = BitConverter.ToInt32(value, 8); - end.Y = BitConverter.ToInt32(value, 12); - } - - public void FillBytes(SqlBytes data) - { - if (fIsNull) - { - if (data.IsNull) - return; - else - { - data.SetNull(); - return; - } - } - - byte[] bigbytes = new byte[16]; - byte[] bytes = BitConverter.GetBytes(start.X); - bytes.CopyTo(bigbytes, 0); - bytes = BitConverter.GetBytes(start.Y); - bytes.CopyTo(bigbytes, 4); - - bytes = BitConverter.GetBytes(end.X); - bytes.CopyTo(bigbytes, 8); - bytes = BitConverter.GetBytes(end.Y); - bytes.CopyTo(bigbytes, 12); - - int i; - for (i = 0; i < bigbytes.Length; i++) - data[i] = bigbytes[i]; - data.SetLength(i); - } - - //it should be x1,y1,x2,y2 - public static Line Parse(SqlString data) - { - string[] array = data.Value.Split(new char[] { ',' }); - - if (array.Length != 4) - throw new ArgumentException(); - Line line = new Line(); - line.start.X = int.Parse(array[0]); - line.start.Y = int.Parse(array[1]); - line.end.X = int.Parse(array[2]); - line.end.Y = int.Parse(array[3]); - - return line; - } - - public override string ToString() - { - StringBuilder builder = new StringBuilder(); - builder.Append(start.ToString()); - builder.Append(","); - builder.Append(end.ToString()); - - return builder.ToString(); - } - - public double Length() - { - return end.DistanceFrom(start); - } - - public Point Start - { - get - { - return start; - } - } - - public Point End - { - get - { - return end; - } - } -} \ No newline at end of file diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Point.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Point.cs index ee3fecd55..dfea2d7e5 100644 --- a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Point.cs +++ b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Point.cs @@ -9,173 +9,176 @@ using Microsoft.SqlServer.Server; -[Serializable] -[SqlUserDefinedType(Format.UserDefined, IsByteOrdered = true, MaxByteSize = 9)] -public class Point : INullable, IBinarySerialize +namespace Microsoft.Samples.SqlServer { - private int x; - private int y; - private bool fIsNull = false; - - public static Point Null { get { return new Point(true); } } - public const int MaxByteSize = 9; - public const bool IsFixedLength = true; - public const bool IsByteOrdered = false; - - public void Read(BinaryReader r) - { - x = r.ReadInt32(); - y = r.ReadInt32(); - fIsNull = BitConverter.ToBoolean(r.ReadBytes(1), 0); - } - - public void Write(BinaryWriter w) + [Serializable] + [SqlUserDefinedType(Format.UserDefined, IsByteOrdered = true, MaxByteSize = 9)] + public class Point : INullable, IBinarySerialize { - w.Write(x); - w.Write(y); - w.Write(fIsNull); - } + private int x; + private int y; + private bool fIsNull; - public Point() - { - x = 0; - y = 0; - fIsNull = false; - } + public static Point Null { get { return new Point(true); } } + public const int MaxByteSize = 9; + public const bool IsFixedLength = true; + public const bool IsByteOrdered = false; - public Point(bool fNull) - { - fIsNull = true; - } + public void Read(BinaryReader r) + { + x = r.ReadInt32(); + y = r.ReadInt32(); + fIsNull = BitConverter.ToBoolean(r.ReadBytes(1), 0); + } - public Point(int ix, int iy) - { - x = ix; - y = iy; - fIsNull = false; - } + public void Write(BinaryWriter w) + { + w.Write(x); + w.Write(y); + w.Write(fIsNull); + } - public bool IsNull - { - get + public Point() { - return fIsNull; + x = 0; + y = 0; + fIsNull = false; } - } - public void FillFromBytesInternal(byte[] data) - { - if (data.Length != 9) - throw new ArgumentException(); + public Point(bool fNull) + { + fIsNull = true; + } - x = BitConverter.ToInt32(data, 0); - y = BitConverter.ToInt32(data, 4); - } + public Point(int ix, int iy) + { + x = ix; + y = iy; + fIsNull = false; + } - public void FillFromBytes(SqlBytes value) - { - if (value.IsNull) + public bool IsNull { - fIsNull = true; - return; + get + { + return fIsNull; + } } - byte[] bytes = value.Value; - FillFromBytesInternal(bytes); + public void FillFromBytesInternal(byte[] data) + { + if (data.Length != 9) + throw new ArgumentException("Data Length not as expected.", nameof(data)); - fIsNull = false; - return; - } + x = BitConverter.ToInt32(data, 0); + y = BitConverter.ToInt32(data, 4); + } - public void FillBytes(SqlBytes value) - { - if (fIsNull) + public void FillFromBytes(SqlBytes value) { if (value.IsNull) - return; - else { - value.SetNull(); + fIsNull = true; return; } - } - byte[] bigbytes = new byte[9]; - byte[] bytes = BitConverter.GetBytes(x); - bytes.CopyTo(bigbytes, 0); - bytes = BitConverter.GetBytes(y); - bytes.CopyTo(bigbytes, 4); + byte[] bytes = value.Value; + FillFromBytesInternal(bytes); + + fIsNull = false; + return; + } - int i; - for (i = 0; i < bigbytes.Length; i++) - value[i] = bigbytes[i]; - value.SetLength(i); + public void FillBytes(SqlBytes value) + { + if (fIsNull) + { + if (value.IsNull) + return; + else + { + value.SetNull(); + return; + } + } - return; - } + byte[] bigbytes = new byte[9]; + byte[] bytes = BitConverter.GetBytes(x); + bytes.CopyTo(bigbytes, 0); + bytes = BitConverter.GetBytes(y); + bytes.CopyTo(bigbytes, 4); - public static Point Parse(SqlString data) - { - string[] array = data.Value.Split(new char[] { ',' }); - int x; - int y; + int i; + for (i = 0; i < bigbytes.Length; i++) + value[i] = bigbytes[i]; + value.SetLength(i); - if (array.Length != 2) - throw new ArgumentException(); - x = int.Parse(array[0]); - y = int.Parse(array[1]); + return; + } - return new Point(x, y); - } + public static Point Parse(SqlString data) + { + string[] array = data.Value.Split(new char[] { ',' }); + int x; + int y; - public override string ToString() - { - StringBuilder builder = new StringBuilder(); - builder.Append(x); - builder.Append(","); - builder.Append(y); + if (array.Length != 2) + throw new ArgumentException("Data length not as expected", nameof(data)); + x = int.Parse(array[0]); + y = int.Parse(array[1]); - return builder.ToString(); - } + return new Point(x, y); + } - public int X - { - get + public override string ToString() { - return x; + StringBuilder builder = new StringBuilder(); + builder.Append(x); + builder.Append(','); + builder.Append(y); + + return builder.ToString(); } - set + + public int X { - x = value; + get + { + return x; + } + set + { + x = value; + } } - } - public int Y - { - get + public int Y { - return y; + get + { + return y; + } + set + { + y = value; + } } - set + + public double Distance() { - y = value; + return DistanceFromXY(0, 0); } - } - public double Distance() - { - return DistanceFromXY(0, 0); - } + public double DistanceFrom(Point pFrom) + { + return DistanceFromXY(pFrom.x, pFrom.y); + } - public double DistanceFrom(Point pFrom) - { - return DistanceFromXY(pFrom.x, pFrom.y); - } + public double DistanceFromXY(int ix, int iy) + { + return Math.Sqrt(Math.Pow(ix - x, 2.0) + Math.Pow(iy - y, 2.0)); + } - public double DistanceFromXY(int ix, int iy) - { - return Math.Sqrt(Math.Pow(ix - x, 2.0) + Math.Pow(iy - y, 2.0)); + public const int MaxByteSizeValue = 12; } - - public const int MaxByteSizeValue = 12; -} \ No newline at end of file +} diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Shapes.csproj b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Shapes.csproj index d31537a63..6e515cf87 100644 --- a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Shapes.csproj +++ b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Shapes.csproj @@ -1,6 +1,11 @@ + - {B73A7063-37C3-415D-AD53-BB3DA20ABD6E} - $(NetFrameworkMinimum) + $(NetMinimum) + + + + + diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Configurations.props b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Configurations.props deleted file mode 100644 index 29dd700cc..000000000 --- a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Configurations.props +++ /dev/null @@ -1,8 +0,0 @@ - - - - netstandard; - netcoreapp; - - - \ No newline at end of file diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Utf8String.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Utf8String.cs index 677250b0b..1c875f7e2 100644 --- a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Utf8String.cs +++ b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Utf8String.cs @@ -6,8 +6,6 @@ using System.Data.SqlTypes; using System.Globalization; -using Microsoft.SqlServer.Server; - namespace Microsoft.Samples.SqlServer { [Serializable] @@ -237,6 +235,16 @@ public int CompareTo(object obj) return this.ToString().CompareTo(s.ToString()); } + public static bool operator <=(Utf8String left, Utf8String right) + { + return ReferenceEquals(left, null) || left.CompareTo(right) <= 0; + } + + public static bool operator >=(Utf8String left, Utf8String right) + { + return ReferenceEquals(left, null) ? ReferenceEquals(right, null) : left.CompareTo(right) >= 0; + } + #endregion #region private state and constructors @@ -311,4 +319,4 @@ public void Read(System.IO.BinaryReader r) } #endregion } -} \ No newline at end of file +} diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Utf8String.csproj b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Utf8String.csproj index 62e17a6d5..6e515cf87 100644 --- a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Utf8String.csproj +++ b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Utf8String.csproj @@ -1,6 +1,11 @@ + - {E0A6BB21-574B-43D9-890D-6E1144F2EE9E} - $(NetFrameworkMinimum) + $(NetMinimum) + + + + + diff --git a/src/System.Data.SqlClient/tests/ManualTests/System.Data.SqlClient.ManualTesting.Tests.csproj b/src/System.Data.SqlClient/tests/ManualTests/System.Data.SqlClient.ManualTesting.Tests.csproj index 3c26d3461..54024ba48 100644 --- a/src/System.Data.SqlClient/tests/ManualTests/System.Data.SqlClient.ManualTesting.Tests.csproj +++ b/src/System.Data.SqlClient/tests/ManualTests/System.Data.SqlClient.ManualTesting.Tests.csproj @@ -1,8 +1,10 @@ - {45DB5F86-7AE3-45C6-870D-F9357B66BDB5} - $(NetFrameworkMinimum) + $(NetMinimum) false + $(NoWarn);CA1001;CA1068;CA1069;CA1309;CA1310;CA1419;CA1711;CA1805;CA1806;CA1816;CA1822;CA1830;CA1834;CA1835;CA1836;CA1840;CA1844;CA2016;CA2101;CA2200;CA2201;CA2208;CA2219;CA2249;CA2251;CA5366; + $(NoWarn);CS0168;CS0649; + $(NoWarn);IDE0073;SYSLIB0004;nullable; diff --git a/src/System.Data.SqlClient/tests/StressTests/IMonitorLoader/Configurations.props b/src/System.Data.SqlClient/tests/StressTests/IMonitorLoader/Configurations.props deleted file mode 100644 index 24168e5ec..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/IMonitorLoader/Configurations.props +++ /dev/null @@ -1,8 +0,0 @@ - - - - netstandard-Unix; - netstandard-Windows_NT; - - - \ No newline at end of file diff --git a/src/System.Data.SqlClient/tests/StressTests/IMonitorLoader/IMonitorLoader.cs b/src/System.Data.SqlClient/tests/StressTests/IMonitorLoader/IMonitorLoader.cs deleted file mode 100644 index 5a9dc1688..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/IMonitorLoader/IMonitorLoader.cs +++ /dev/null @@ -1,33 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using Monitoring; - -namespace Monitoring -{ - public interface IMonitorLoader - { - string HostMachine { get; set; } - string AssemblyPath { get; set; } - string TestName { get; set; } - bool Enabled { get; set; } - - void Action(MonitorLoaderUtils.MonitorAction monitoraction); - void AddPerfData(MonitorMetrics data); - Dictionary GetPerfData(); - } - - public class MonitorLoaderUtils - { - public enum MonitorAction - { - Initialize, - Start, - Stop, - DoNothing - } - } -} diff --git a/src/System.Data.SqlClient/tests/StressTests/IMonitorLoader/IMonitorLoader.csproj b/src/System.Data.SqlClient/tests/StressTests/IMonitorLoader/IMonitorLoader.csproj deleted file mode 100644 index cd9953253..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/IMonitorLoader/IMonitorLoader.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - {AF78BA88-6428-47EA-8682-442DAF8E9656} - Monitoring - Monitoring - netstandard-Unix-Debug;netstandard-Unix-Release;netstandard-Windows_NT-Debug;netstandard-Windows_NT-Release - - - - - - \ No newline at end of file diff --git a/src/System.Data.SqlClient/tests/StressTests/IMonitorLoader/MonitorMetrics.cs b/src/System.Data.SqlClient/tests/StressTests/IMonitorLoader/MonitorMetrics.cs deleted file mode 100644 index ed37544e4..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/IMonitorLoader/MonitorMetrics.cs +++ /dev/null @@ -1,96 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; - -namespace Monitoring -{ - public class MonitorMetrics - { - private string _name; - private string _strValue; - private string _unit; - private bool _isPrimary; - private bool _isHigherBetter; - private double _dblValue; - private long _lngValue; - private char _valueType; // D=double, L=long, S=String - - public MonitorMetrics(string name, string value, string unit, bool HigherIsBetter, bool Primary) - { - _name = name; - _strValue = value; - _unit = unit; - _valueType = 'S'; - _isHigherBetter = HigherIsBetter; - _isPrimary = Primary; - } - - public MonitorMetrics(string name, double value, string unit, bool HigherIsBetter, bool Primary) - { - _name = name; - _dblValue = value; - _unit = unit; - _valueType = 'D'; - _isHigherBetter = HigherIsBetter; - _isPrimary = Primary; - } - - public MonitorMetrics(string name, long value, string unit, bool HigherIsBetter, bool Primary) - { - _name = name; - _lngValue = value; - _unit = unit; - _valueType = 'L'; - _isHigherBetter = HigherIsBetter; - _isPrimary = Primary; - } - - public string GetName() - { - return _name; - } - - public string GetUnit() - { - return _unit; - } - - public bool GetPrimary() - { - return _isPrimary; - } - - public bool GetHigherIsBetter() - { - return _isHigherBetter; - } - - public char GetValueType() - { - return _valueType; - } - - public string GetStringValue() - { - if (_valueType == 'S') - return _strValue; - throw new Exception("Value is not a string"); - } - - public double GetDoubleValue() - { - if (_valueType == 'D') - return _dblValue; - throw new Exception("Value is not a double"); - } - - public long GetLongValue() - { - if (_valueType == 'L') - return _lngValue; - throw new Exception("Value is not a long"); - } - } -} diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.SqlClient.Stress.Tests/Configurations.props b/src/System.Data.SqlClient/tests/StressTests/System.Data.SqlClient.Stress.Tests/Configurations.props deleted file mode 100644 index 6c4bab107..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.SqlClient.Stress.Tests/Configurations.props +++ /dev/null @@ -1,10 +0,0 @@ - - - - netcoreapp-Unix; - netcoreapp-Windows_NT; - netfx-Windows_NT; - uap-Windows_NT; - - - \ No newline at end of file diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.SqlClient.Stress.Tests/FilteredDefaultTraceListener.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.SqlClient.Stress.Tests/FilteredDefaultTraceListener.cs deleted file mode 100644 index 3311abef6..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.SqlClient.Stress.Tests/FilteredDefaultTraceListener.cs +++ /dev/null @@ -1,211 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; -using System.Diagnostics; -using System.Reflection; -using System.Text.RegularExpressions; -using System.Threading; - -namespace Stress.Data.SqlClient -{ - /// - /// A DefaultTraceListener that can filter out given asserts - /// - internal class FilteredDefaultTraceListener : DefaultTraceListener - { - private static readonly Assembly s_systemDataAssembly = typeof(System.Data.SqlClient.SqlConnection).GetTypeInfo().Assembly; - private const RegexOptions AssertMessageRegexOptions = RegexOptions.Singleline | RegexOptions.CultureInvariant; - - private enum MatchType : byte - { - Exact, - Regex, - } - - private enum HandlingOption : byte - { - CovertToException, - WriteToConsole, - } - - /// - /// Represents a single assert to filter out - /// - private struct FilteredAssert - { - public FilteredAssert(string messageOrRegex, int bugNumber, MatchType matchType, HandlingOption assertHandlingOption, params string[] stackFrames) - { - if (matchType == MatchType.Exact) - { - Message = messageOrRegex; - MessageRegex = null; - } - else - { - Message = null; - MessageRegex = new Regex(messageOrRegex, AssertMessageRegexOptions); - } - - - StackFrames = stackFrames; - BugNumber = bugNumber; - Handler = assertHandlingOption; - } - - /// - /// The assert's message (NOTE: MessageRegex must be null if this is specified) - /// - public string Message; - /// - /// A regex that matches the assert's message (NOTE: Message must be null if this is specified) - /// - public Regex MessageRegex; - /// - /// The most recent frames on the stack when the assert was hit (i.e. 0 is most recent, 1 is next, etc.). Null if stack should not be checked. - /// - public string[] StackFrames; - /// - /// Product bug to fix the assert - /// - public int BugNumber; - /// - /// How the assert will be handled once it is matched - /// - /// - /// In most cases this can be set to WriteToConsole - typically the assert is either invalid or there will be an exception thrown by the product code anyway. - /// However, in the case where this is state corruption AND the product code has no exception in place, this will need to be set to CovertToException to prevent further corruption\asserts - /// - public HandlingOption Handler; - } - - private static readonly FilteredAssert[] s_assertsToFilter = new FilteredAssert[] { - new FilteredAssert("TdsParser::ThrowExceptionAndWarning called with no exceptions or warnings!", 433324, MatchType.Exact, HandlingOption.WriteToConsole, - "System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning", - "System.Data.SqlClient.TdsParserStateObject.ThrowExceptionAndWarning", - "System.Data.SqlClient.TdsParserStateObject.ReadAsyncCallbackCaptureException"), - }; - - public FilteredDefaultTraceListener(DefaultTraceListener listenerToClone) : base() - { - base.Filter = listenerToClone.Filter; - base.IndentLevel = listenerToClone.IndentLevel; - base.IndentSize = listenerToClone.IndentSize; - base.TraceOutputOptions = listenerToClone.TraceOutputOptions; - } - - public override void Fail(string message) - { - Fail(message, null); - } - - public override void Fail(string message, string detailMessage) - { - FilteredAssert? foundAssert = FindAssertInList(message); - if (!foundAssert.HasValue) - { - // Don't filter this assert - pass it down to the underlying DefaultTraceListener which will show the UI, break into the debugger, etc. - base.Fail(message, detailMessage); - } - else - { - // Assert is to be filtered, either convert to an exception or a message - var assert = foundAssert.Value; - if (assert.Handler == HandlingOption.CovertToException) - { - throw new FailedAssertException(message, assert.BugNumber); - } - else if (assert.Handler == HandlingOption.WriteToConsole) - { - Console.WriteLine("Hit known assert, Bug {0}: {1}", assert.BugNumber, message); - } - } - } - - private FilteredAssert? FindAssertInList(string message) - { - StackTrace actualCallstack = null; - foreach (var assert in s_assertsToFilter) - { - if (((assert.Message != null) && (assert.Message == message)) || ((assert.MessageRegex != null) && (assert.MessageRegex.IsMatch(message)))) - { - if (assert.StackFrames != null) - { - // Skipping four frames: - // Stress.Data.SqlClient.FilteredDefaultTraceListener.FindAssertInList - // Stress.Data.SqlClient.FilteredDefaultTraceListener.Fail (This may be in the stack twice due to the overloads calling each other) - // System.Diagnostics.TraceInternal.Fail - // System.Diagnostics.Debug.Assert - if (actualCallstack == null) - { - actualCallstack = new StackTrace(e: new InvalidOperationException(), fNeedFileInfo: false); - } - - StackFrame[] frames = actualCallstack.GetFrames(); - if (frames.Length >= assert.StackFrames.Length) - { - int actualStackFrameCounter = 0; - bool foundMatch = true; - foreach (var expectedStack in assert.StackFrames) - { - // Get the method information for the next stack which came from System.Data.dll - MethodBase actualStackMethod; - do - { - actualStackMethod = frames[actualStackFrameCounter].GetMethod(); - actualStackFrameCounter++; - } while (((actualStackMethod.DeclaringType == null) || (actualStackMethod.DeclaringType.GetTypeInfo().Assembly != s_systemDataAssembly)) && (actualStackFrameCounter < frames.Length)); - - if ((actualStackFrameCounter > frames.Length) || (string.Format("{0}.{1}", actualStackMethod.DeclaringType.FullName, actualStackMethod.Name) != expectedStack)) - { - // Ran out of actual frames while there were still expected frames or the current frames didn't match - foundMatch = false; - break; - } - } - - // Message and all frames matched - if (foundMatch) - { - return assert; - } - } - } - else - { - // Messages match, and there are no frames to verify - return assert; - } - } - } - - // Fall through - didn't find the assert - return null; - } - } - - internal class FailedAssertException : Exception - { - /// - /// Number of the bug that caused the assert to fire - /// - public int BugNumber { get; private set; } - - /// - /// Creates an exception to represent hitting a known assert - /// - /// Message of the assert - /// Number of the bug that caused the assert - public FailedAssertException(string message, int bugNumber) - : base(message) - { - BugNumber = bugNumber; - } - - public override string ToString() - { - return string.Format("{1}\r\nAssert caused by Bug {0}", BugNumber, base.ToString()); - } - } -} diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.SqlClient.Stress.Tests/HostsFileManager.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.SqlClient.Stress.Tests/HostsFileManager.cs deleted file mode 100644 index ec0d258ef..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.SqlClient.Stress.Tests/HostsFileManager.cs +++ /dev/null @@ -1,483 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - - -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading; -using System.Runtime.CompilerServices; -using System.IO; -using System.Net; -using System.Diagnostics; -using System.Runtime.InteropServices; - -namespace Microsoft.Test.Data.SqlClient -{ - /// - /// allows user to manipulate %windir%\system32\drivers\etc\hosts - /// the hosts file must be reverted if changed even if test application crashes, thus inherit from CriticalFinalizerObject. Make sure the instance is disposed after its use. - /// The last dispose call on the active instance reverts the hosts file. - /// - /// Usage: - /// using (var hostsFile = new HostsFileManager()) - /// { - /// // use the hostsFile methods to add/remove entries - /// // simultaneous usage of HostsFileManager in two app domains or processes on the same machine is not allowed - /// } - /// - public sealed class HostsFileManager : IDisposable - { - // define global (machine-wide) lock instance - private static EventWaitHandle s_globalLock = new EventWaitHandle(true /* create as signalled */, EventResetMode.AutoReset, @"Global\HostsFileManagerLock"); - private static bool s_globalLockTaken; // set when global (machine-wide) lock is in use - - private static int s_localUsageRefCount; - private static object s_localLock = new object(); - - private static string s_hostsFilePath; - private static string s_backupPath; - private static bool s_hasBackup; - private static TextReader s_activeReader; - private static TextWriter s_activeWriter; - private static List s_entriesCache; - - private const string HostsFilePathUnderSystem32 = @"C:\Windows\System32\drivers\etc\hosts"; - private const string HostsFilePathUnderLinux = "/etc/hosts"; - private const string HostsFilePathUnderMacOS = "/private/etc/hosts"; - - - private static void InitializeGlobal(ref bool mustRelease) - { - if (mustRelease) - { - // already initialized - return; - } - - lock (s_localLock) - { - if (mustRelease) - { - // check again under lock - return; - } - - if (s_localUsageRefCount > 0) - { - // initialized by another thread - ++s_localUsageRefCount; - return; - } - - // first call to initialize in this app domain - // note: simultanious use of HostsFileManager is currently supported only within single AppDomain scope - - // non-critical initialization goes first - if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) - { - s_hostsFilePath = HostsFilePathUnderSystem32; - } - else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) - { - s_hostsFilePath = HostsFilePathUnderLinux; - } - else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) - { - s_hostsFilePath = HostsFilePathUnderMacOS; - } - - s_backupPath = Path.Combine(Path.GetTempPath(), string.Format("Hosts_{0}.bak", Guid.NewGuid().ToString("N"))); - - // try to get global lock - // note that once global lock is aquired, it must be released - try { } - finally - { - if (s_globalLock.WaitOne(0)) - { - s_globalLockTaken = true; - mustRelease = true; - ++s_localUsageRefCount; // increment ref count for the first thread using the manager - } - } - - if (!s_globalLockTaken) - { - throw new InvalidOperationException("HostsFileManager cannot initialize because hosts file is in use by another instance of the manager in the same or a different process (concurrent access is not allowed)"); - } - - // locked now, take snapshot of hosts file and save it as a backup - File.Copy(s_hostsFilePath, s_backupPath); - s_hasBackup = true; - - // load the current entries - InternalRefresh(); - } - } - - private static void TerminateGlobal(ref bool originalMustRelease) - { - if (!originalMustRelease) - { - // already disposed - return; - } - - lock (s_localLock) - { - if (!originalMustRelease) - { - // check again under lock - return; - } - - // not yet disposed, do it now - if (s_localUsageRefCount > 1) - { - // still in use by another thread(s) - --s_localUsageRefCount; - return; - } - - if (s_activeReader != null) - { - s_activeReader.Dispose(); - s_activeReader = null; - } - if (s_activeWriter != null) - { - s_activeWriter.Dispose(); - s_activeWriter = null; - } - bool deleteBackup = false; - if (s_hasBackup) - { - // revert the hosts file - File.Copy(s_backupPath, s_hostsFilePath, overwrite: true); - s_hasBackup = false; - deleteBackup = true; - } - - // Note: if critical finalizer fails to revert the hosts file, the global lock might remain reset until the machine is rebooted. - // if this happens, Hosts file in unpredictable state so there is no point in running tests anyway - if (s_globalLockTaken) - { - try { } - finally - { - s_globalLock.Set(); - s_globalLockTaken = false; - --s_localUsageRefCount; // decrement local ref count - originalMustRelease = false; - } - } - - // now we can destroy the backup - if (deleteBackup) - { - File.Delete(s_backupPath); - } - } - } - - private bool _mustRelease; - private bool _disposed; - - public HostsFileManager() - { - // lazy initialization - _mustRelease = false; - _disposed = false; - } - - ~HostsFileManager() - { - Dispose(false); - } - - public void Dispose() - { - Dispose(true); - GC.SuppressFinalize(this); - } - - private void Dispose(bool disposing) - { - if (!_disposed) - { - _disposed = true; - TerminateGlobal(ref _mustRelease); - } - } - - public class HostEntry - { - public HostEntry(string name, IPAddress address) - { - ValidateName(name); - ValidateAddress(address); - - this.Name = name; - this.Address = address; - } - - public readonly string Name; - public readonly IPAddress Address; - } - - // helper methods - - // must be called under lock(_localLock) from each public API that uses static fields - private void InitializeLocal() - { - if (_disposed) - { - throw new ObjectDisposedException(this.GetType().Name); - } - - InitializeGlobal(ref _mustRelease); - } - - private static readonly char[] s_whiteSpaceChars = new char[] { ' ', '\t' }; - - private static void ValidateName(string name) - { - if (string.IsNullOrEmpty(name) || name.IndexOfAny(s_whiteSpaceChars) >= 0) - { - throw new ArgumentException("name cannot be null or empty or have whitespace characters in it"); - } - } - - private static void ValidateAddress(IPAddress address) - { - ValidateNonNull(address, "address"); - - if (address.AddressFamily != System.Net.Sockets.AddressFamily.InterNetwork && - address.AddressFamily != System.Net.Sockets.AddressFamily.InterNetworkV6) - { - throw new ArgumentException("only IPv4 or IPv6 addresses are allowed"); - } - } - - private static void ValidateNonNull(T value, string argName) where T : class - { - if (value == null) - { - throw new ArgumentNullException(argName); - } - } - - private static HostEntry TryParseLine(string line) - { - line = line.Trim(); - if (line.StartsWith("#")) - { - // comment, ignore - return null; - } - - string[] items = line.Split(s_whiteSpaceChars, StringSplitOptions.RemoveEmptyEntries); - if (items.Length == 0) - { - // empty or white-space only line - ignore - return null; - } - - if (items.Length != 2) - { - Trace.WriteLine("Wrong entry in the hosts file (exactly two columns expected): \"" + line + "\""); - return null; - } - - string name = items[1]; - IPAddress address; - if (!IPAddress.TryParse(items[0], out address)) - { - Trace.WriteLine("Wrong entry in the hosts file (cannot parse the IP address): \"" + line + "\""); - return null; - } - - try - { - return new HostEntry(name, address); - } - catch (ArgumentException e) - { - Console.WriteLine("Wrong entry in the hosts file, cannot create host entry: " + e.Message); - return null; - } - } - - private bool NameMatch(HostEntry entry, string name) - { - ValidateNonNull(entry, "entry"); - ValidateName(name); - - return string.Equals(entry.Name, name, StringComparison.OrdinalIgnoreCase); - } - - // hosts file manipulation methods - - // reloads the hosts file, must be called under lock(_localLock) - private static void InternalRefresh() - { - List entries = new List(); - - try - { - s_activeReader = new StreamReader(new FileStream(s_hostsFilePath, FileMode.Open)); - - string line; - while ((line = s_activeReader.ReadLine()) != null) - { - HostEntry nextEntry = TryParseLine(line); - if (nextEntry != null) - { - entries.Add(nextEntry); - } - } - } - finally - { - if (s_activeReader != null) - { - s_activeReader.Dispose(); - s_activeReader = null; - } - } - - s_entriesCache = entries; - } - - // reloads the hosts file, must be called while still under lock(_localLock) - private void InternalSave() - { - try - { - s_activeWriter = new StreamWriter(new FileStream(s_hostsFilePath, FileMode.Create)); - - foreach (HostEntry entry in s_entriesCache) - { - s_activeWriter.WriteLine(" {0} {1}", entry.Address, entry.Name); - } - - s_activeWriter.Flush(); - } - finally - { - if (s_activeWriter != null) - { - s_activeWriter.Dispose(); - s_activeWriter = null; - } - } - } - - public int RemoveAll(string name) - { - lock (s_localLock) - { - InitializeLocal(); - ValidateName(name); - - int removed = s_entriesCache.RemoveAll(entry => NameMatch(entry, name)); - - if (removed > 0) - { - InternalSave(); - } - - return removed; - } - } - - public IEnumerable EnumerateAddresses(string name) - { - lock (s_localLock) - { - InitializeLocal(); - ValidateName(name); - - return from entry in s_entriesCache where NameMatch(entry, name) select entry.Address; - } - } - - public void Add(string name, IPAddress address) - { - lock (s_localLock) - { - InitializeLocal(); - - HostEntry entry = new HostEntry(name, address); // c-tor validates the arguments - s_entriesCache.Add(entry); - - InternalSave(); - } - } - - public void Add(HostEntry entry) - { - lock (s_localLock) - { - InitializeLocal(); - ValidateNonNull(entry, "entry"); - - s_entriesCache.Add(entry); - - InternalSave(); - } - } - - public void AddRange(string name, IEnumerable addresses) - { - lock (s_localLock) - { - InitializeLocal(); - ValidateName(name); - ValidateNonNull(addresses, "addresses"); - - foreach (IPAddress address in addresses) - { - HostEntry entry = new HostEntry(name, address); - - s_entriesCache.Add(entry); - } - - InternalSave(); - } - } - - public void AddRange(IEnumerable entries) - { - lock (s_localLock) - { - InitializeLocal(); - ValidateNonNull(entries, "entries"); - - foreach (HostEntry entry in entries) - { - ValidateNonNull(entry, "entries element"); - - s_entriesCache.Add(entry); - } - - InternalSave(); - } - } - - public void Clear() - { - lock (s_localLock) - { - InitializeLocal(); - - s_entriesCache.Clear(); - - InternalSave(); - } - } - } -} diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.SqlClient.Stress.Tests/MultiSubnetFailoverSetup.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.SqlClient.Stress.Tests/MultiSubnetFailoverSetup.cs deleted file mode 100644 index 31929622d..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.SqlClient.Stress.Tests/MultiSubnetFailoverSetup.cs +++ /dev/null @@ -1,136 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using Microsoft.Test.Data.SqlClient; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Net; -using System.Text; -using System.Threading.Tasks; - -namespace Stress.Data.SqlClient -{ - internal class MultiSubnetFailoverSetup - { - private HostsFileManager _hostsFile; - - internal MultiSubnetFailoverSetup(SqlServerDataSource source) - { - this.Source = source; - } - - internal string MultiSubnetFailoverHostNameForIntegratedSecurity { get; private set; } - - private List _multiSubnetFailoverHostNames; - - internal string GetMultiSubnetFailoverHostName(Random rnd) - { - return _multiSubnetFailoverHostNames[rnd.Next(_multiSubnetFailoverHostNames.Count)]; - } - - public SqlServerDataSource Source { get; private set; } - - internal void InitializeFakeHostsForMultiSubnetFailover() - { - // initialize fake hosts for MultiSubnetFailover - string originalHost, protocol, instance; - int? port; - NetUtils.ParseDataSource(this.Source.DataSource, out protocol, out originalHost, out instance, out port); - - // get the IPv4 addresses - IPAddress[] ipV4 = NetUtils.EnumerateIPv4Addresses(originalHost).ToArray(); - if (ipV4 == null || ipV4.Length == 0) - { - // consider supporting IPv6 when it becomes relevant (not a goal right now) - throw new ArgumentException("The target server " + originalHost + " has no IPv4 addresses associated with it in DNS"); - } - - // construct different host names for MSF with valid server IP located in a different place each time - List allEntries = new List(); - - int nextValidIp = 0; - int nextInvalidIp = 0; - _multiSubnetFailoverHostNames = new List(); - - // construct some interesting cases for MultiSubnetFailover stress - - // for integrated security to work properly, the server name in connection string must match the target server host name. - // thus, create one entry in the hosts with the true server name: either FQDN or the short name - Task task = Dns.GetHostEntryAsync(ipV4[0]); - string nameToUse = task.Result.HostName; - if (originalHost.Contains('.')) - { - // if the original hosts is FQDN, put short name in the hosts instead - // otherwise, put FQDN in hosts - int shortNameEnd = nameToUse.IndexOf('.'); - if (shortNameEnd > 0) - nameToUse = nameToUse.Substring(0, shortNameEnd); - } - // since true server name is being re-mapped, keep the valid IP first in the list - AddEntryHelper(allEntries, _multiSubnetFailoverHostNames, nameToUse, - ipV4[(nextValidIp++) % ipV4.Length], - NetUtils.GetNonExistingIPv4((nextInvalidIp++) % NetUtils.NonExistingIPv4AddressCount)); - this.MultiSubnetFailoverHostNameForIntegratedSecurity = nameToUse; - - // single valid IP - AddEntryHelper(allEntries, _multiSubnetFailoverHostNames, "MSF_MP_Stress_V", - ipV4[(nextValidIp++) % ipV4.Length]); - - // valid + invalid - AddEntryHelper( - allEntries, _multiSubnetFailoverHostNames, "MSF_MP_Stress_VI", - ipV4[(nextValidIp++) % ipV4.Length], - NetUtils.GetNonExistingIPv4((nextInvalidIp++) % NetUtils.NonExistingIPv4AddressCount)); - - // invalid + valid + invalid - AddEntryHelper( - allEntries, _multiSubnetFailoverHostNames, "MSF_MP_Stress_IVI", - NetUtils.GetNonExistingIPv4((nextInvalidIp++) % NetUtils.NonExistingIPv4AddressCount), - ipV4[(nextValidIp++) % ipV4.Length], - NetUtils.GetNonExistingIPv4((nextInvalidIp++) % NetUtils.NonExistingIPv4AddressCount)); - - // Using more than one active IP associated with the virtual name (VNN) is not a supported scenario with MultiSubnetFailover. - // But, this can definitly happen in reality - add special cases here to cover two valid IPs. - AddEntryHelper( - allEntries, _multiSubnetFailoverHostNames, "MSF_MP_Stress_IVI", - ipV4[(nextValidIp++) % ipV4.Length], - NetUtils.GetNonExistingIPv4((nextInvalidIp++) % NetUtils.NonExistingIPv4AddressCount), - ipV4[(nextValidIp++) % ipV4.Length]); - - // big boom with 7 IPs - for stress purposes only - AddEntryHelper( - allEntries, _multiSubnetFailoverHostNames, "MSF_MP_Stress_BIGBOOM", - NetUtils.GetNonExistingIPv4((nextInvalidIp++) % NetUtils.NonExistingIPv4AddressCount), - NetUtils.GetNonExistingIPv4((nextInvalidIp++) % NetUtils.NonExistingIPv4AddressCount), - NetUtils.GetNonExistingIPv4((nextInvalidIp++) % NetUtils.NonExistingIPv4AddressCount), - ipV4[(nextValidIp++) % ipV4.Length], - NetUtils.GetNonExistingIPv4((nextInvalidIp++) % NetUtils.NonExistingIPv4AddressCount), - ipV4[(nextValidIp++) % ipV4.Length], - NetUtils.GetNonExistingIPv4((nextInvalidIp++) % NetUtils.NonExistingIPv4AddressCount) - ); - - // list of fake hosts is ready, initialize hosts file manager and update the file - _hostsFile = new HostsFileManager(); - _hostsFile.AddRange(allEntries); - } - - - private static void AddEntryHelper(List entries, List names, string msfHostName, params IPAddress[] addresses) - { - for (int i = 0; i < addresses.Length; i++) - entries.Add(new HostsFileManager.HostEntry(msfHostName, addresses[i])); - names.Add(msfHostName); - } - - internal void Terminate() - { - // revert hosts file - if (_hostsFile != null) - { - _hostsFile.Dispose(); - } - } - } -} diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.SqlClient.Stress.Tests/NetUtils.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.SqlClient.Stress.Tests/NetUtils.cs deleted file mode 100644 index a68d3a2ee..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.SqlClient.Stress.Tests/NetUtils.cs +++ /dev/null @@ -1,209 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - - -using System; -using System.Net; -using System.Diagnostics; -using System.Data.SqlClient; -using System.Collections.Generic; -using Microsoft.Win32; -using System.Threading; -using System.Threading.Tasks; - -namespace Microsoft.Test.Data.SqlClient -{ - public static class NetUtils - { - // according to RFC 5737 (http://tools.ietf.org/html/rfc5737): The blocks 192.0.2.0/24 (TEST-NET-1), 198.51.100.0/24 (TEST-NET-2), - // and 203.0.113.0/24 (TEST-NET-3) are provided for use in documentation and should not be in use by any public network - private static readonly IPAddress[] s_testNets = new IPAddress[] - { - IPAddress.Parse("192.0.2.0"), - IPAddress.Parse("198.51.100.0"), - IPAddress.Parse("203.0.113.0") - }; - - private const int TestNetAddressRangeLength = 256; - - public static readonly int NonExistingIPv4AddressCount = TestNetAddressRangeLength * s_testNets.Length; - - public static IPAddress GetNonExistingIPv4(int index) - { - if (index < 0 || index > NonExistingIPv4AddressCount) - { - throw new ArgumentOutOfRangeException("index"); - } - - byte[] address = s_testNets[index / TestNetAddressRangeLength].GetAddressBytes(); - - Debug.Assert(address[3] == 0, "address ranges above must end with .0"); - address[3] = checked((byte)(index % TestNetAddressRangeLength)); - - return new IPAddress(address); - } - - public static IEnumerable EnumerateIPv4Addresses(string hostName) - { - hostName = hostName.Trim(); - - if ((hostName == ".") || - (string.Compare("(local)", hostName, StringComparison.OrdinalIgnoreCase) == 0)) - { - hostName = Dns.GetHostName(); - } - - Task task = Dns.GetHostAddressesAsync(hostName); - IPAddress[] allAddresses = task.Result; - - foreach (var addr in allAddresses) - { - if (addr.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) - { - yield return addr; - } - } - } - - /// - /// Splits data source into protocol, host name, instance name and port. - /// - /// Note that this algorithm does not cover all valid combinations of data source; only those we actually use in tests are supported now. - /// Please update as needed. - /// - public static void ParseDataSource(string dataSource, out string protocol, out string hostName, out string instanceName, out int? port) - { - // check for protocol prefix - int i = dataSource.IndexOf(':'); - if (i >= 0) - { - protocol = dataSource.Substring(0, i); - - // remove the protocol - dataSource = dataSource.Substring(i + 1); - } - else - { - protocol = null; - } - - // check for server port - i = dataSource.IndexOf(','); - if (i >= 0) - { - // there is a port value in connection string - port = int.Parse(dataSource.Substring(i + 1)); - dataSource = dataSource.Substring(0, i); - } - else - { - port = null; - } - - // check for the instance name - i = dataSource.IndexOf('\\'); - if (i >= 0) - { - instanceName = dataSource.Substring(i + 1); - dataSource = dataSource.Substring(0, i); - } - else - { - instanceName = null; - } - - // trim redundant whitespace - dataSource = dataSource.Trim(); - hostName = dataSource; - } - - private static Dictionary s_dataSourceToPortCache = new Dictionary(); - - /// - /// the method converts the regular connection string to one supported by MultiSubnetFailover (connect to the port, bypassing the browser) - /// it does the following: - /// * removes Failover Partner, if presents - /// * removes the network library and protocol prefix (only TCP is supported) - /// * if instance name is specified without port value, data source is replaced with "server, port" format instead of "server\name" - /// - /// Note that this method can create a connection to the server in case TCP port is needed. The port value is cached per data source, to avoid round trip to the server on next use. - /// - /// original connection string, must be valid - /// optionally, replace the (network) server name with a different one - /// holds the original server name on return - /// MultiSubnetFailover-enabled connection string builder - public static SqlConnectionStringBuilder GetMultiSubnetFailoverConnectionString(string connectionString, string replaceServerName, out string originalServerName) - { - SqlConnectionStringBuilder sb = new SqlConnectionStringBuilder(connectionString); - - sb["Network Library"] = null; // MSF supports TCP only, no need to specify the protocol explicitly - sb["Failover Partner"] = null; // not supported, remove it if present - - string protocol, instance; - int? serverPort; - - ParseDataSource(sb.DataSource, out protocol, out originalServerName, out instance, out serverPort); - - // Note: protocol value is ignored, connection to the server will fail if TCP is not enabled on the server - - if (!serverPort.HasValue) - { - // to get server listener's TCP port, connect to it using the original string, with TCP protocol enforced - // to improve stress performance, cache the port value to avoid round trip every time new connection string is needed - lock (s_dataSourceToPortCache) - { - int cachedPort; - string cacheKey = sb.DataSource; - if (s_dataSourceToPortCache.TryGetValue(cacheKey, out cachedPort)) - { - serverPort = cachedPort; - } - else - { - string originalServerNameWithInstance = sb.DataSource; - int protocolEndIndex = originalServerNameWithInstance.IndexOf(':'); - if (protocolEndIndex >= 0) - { - originalServerNameWithInstance = originalServerNameWithInstance.Substring(protocolEndIndex + 1); - } - - sb.DataSource = "tcp:" + originalServerNameWithInstance; - string tcpConnectionString = sb.ConnectionString; - using (SqlConnection con = new SqlConnection(tcpConnectionString)) - { - con.Open(); - - SqlCommand cmd = con.CreateCommand(); - cmd.CommandText = "select [local_tcp_port] from sys.dm_exec_connections where [session_id] = @@SPID"; - serverPort = Convert.ToInt32(cmd.ExecuteScalar()); - } - - s_dataSourceToPortCache[cacheKey] = serverPort.Value; - } - } - } - - // override it with user-provided one - string retDataSource; - if (replaceServerName != null) - { - retDataSource = replaceServerName; - } - else - { - retDataSource = originalServerName; - } - - // reconstruct the connection string (with the new server name and port) - // also, no protocol is needed since TCP is enforced anyway if MultiSubnetFailover is set to true - Debug.Assert(serverPort.HasValue, "Server port must be initialized"); - retDataSource += ", " + serverPort.Value; - - sb.DataSource = retDataSource; - sb.MultiSubnetFailover = true; - - return sb; - } - } -} diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.SqlClient.Stress.Tests/SqlClientStressFactory.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.SqlClient.Stress.Tests/SqlClientStressFactory.cs deleted file mode 100644 index 75586f0b5..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.SqlClient.Stress.Tests/SqlClientStressFactory.cs +++ /dev/null @@ -1,223 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; -using System.Diagnostics; -using System.Data.SqlClient; -using Microsoft.Test.Data.SqlClient; - -namespace Stress.Data.SqlClient -{ - public class SqlClientStressFactory : DataStressFactory - { - // scenarios - internal enum SqlClientScenario - { - Sql - } - - private SqlServerDataSource _source; - private SqlClientScenario _scenario; - - private MultiSubnetFailoverSetup _multiSubnetSetupHelper; - - internal SqlClientStressFactory() - : base(SqlClientFactory.Instance) - { - } - - internal void Initialize(ref string scenario, ref DataSource source) - { - // Ignore all asserts from known issues - var defaultTraceListener = Trace.Listeners["Default"] as DefaultTraceListener; - if (defaultTraceListener != null) - { - var newTraceListener = new FilteredDefaultTraceListener(defaultTraceListener); - Trace.Listeners.Remove(defaultTraceListener); - Trace.Listeners.Add(newTraceListener); - } - - // scenario <=> SqlClientScenario - if (string.IsNullOrEmpty(scenario)) - { - _scenario = SqlClientScenario.Sql; - } - else - { - _scenario = (SqlClientScenario)Enum.Parse(typeof(SqlClientScenario), scenario, true); - } - scenario = _scenario.ToString(); - - // initialize the source information - // SNAC/WDAC is using SqlServer sources; JET is using Access - switch (_scenario) - { - case SqlClientScenario.Sql: - if (source == null) - source = DataStressSettings.Instance.GetDefaultSourceByType(DataSourceType.SqlServer); - else if (source.Type != DataSourceType.SqlServer) - throw new ArgumentException(string.Format("Given source type is wrong: required {0}, received {1}", DataSourceType.SqlServer, source.Type)); - break; - - default: - throw new ArgumentException("Wrong scenario \"" + scenario + "\""); - } - - _source = (SqlServerDataSource)source; - - // Only try to add Multisubnet Failover host entries when the settings allow it in the source. - if (!_source.DisableMultiSubnetFailoverSetup) - { - _multiSubnetSetupHelper = new MultiSubnetFailoverSetup(_source); - _multiSubnetSetupHelper.InitializeFakeHostsForMultiSubnetFailover(); - } - } - - - - internal void Terminate() - { - if (_multiSubnetSetupHelper != null) - { - _multiSubnetSetupHelper.Terminate(); - } - } - - public sealed override string GetParameterName(string pName) - { - return "@" + pName; - } - - public override bool PrimaryKeyValueIsRequired - { - get { return false; } - } - - - public override string CreateBaseConnectionString(Random rnd, ConnectionStringOptions options) - { - SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(); - - switch (_scenario) - { - case SqlClientScenario.Sql: - builder.DataSource = _source.DataSource; - builder.InitialCatalog = _source.Database; - break; - - default: - throw new InvalidOperationException("missing case for " + _scenario); - } - - // Randomize between Windows Authentication and SQL Authentication - // Note that having 2 options here doubles the number of connection pools - bool integratedSecurity = false; - if (_source.SupportsWindowsAuthentication) - { - if (string.IsNullOrEmpty(_source.User)) // if sql login is not provided - integratedSecurity = true; - else - integratedSecurity = (rnd != null) ? (rnd.Next(2) == 0) : true; - } - - if (integratedSecurity) - { - builder.IntegratedSecurity = true; - } - else - { - builder.UserID = _source.User; - builder.Password = _source.Password; - } - - if (CurrentPoolingStressMode == PoolingStressMode.RandomizeConnectionStrings && rnd != null) - { - // Randomize connection string - - // Randomize packetsize - // Note that having 2 options here doubles the number of connection pools - if (rnd.NextBool()) - { - builder.PacketSize = 8192; - } - else - { - builder.PacketSize = 512; - } - - // If test case allows randomization and doesn't disallow MultiSubnetFailover, then enable MultiSubnetFailover 20% of the time - // Note that having 2 options here doubles the number of connection pools - - if (!_source.DisableMultiSubnetFailoverSetup && - !options.HasFlag(ConnectionStringOptions.DisableMultiSubnetFailover) && - rnd != null && - rnd.Next(5) == 0) - { - string msfHostName; - if (integratedSecurity) - { - msfHostName = _multiSubnetSetupHelper.MultiSubnetFailoverHostNameForIntegratedSecurity; - } - else - { - msfHostName = _multiSubnetSetupHelper.GetMultiSubnetFailoverHostName(rnd); - } - string serverName; - - // replace with build which has host name with multiple IP addresses - builder = NetUtils.GetMultiSubnetFailoverConnectionString(builder.ConnectionString, msfHostName, out serverName); - } - - // Randomize between using Named Pipes and TCP providers - // Note that having 2 options here doubles the number of connection pools - if (rnd != null) - { - if (rnd.Next(2) == 0) - { - builder.DataSource = "tcp:" + builder.DataSource; - } - else if (!_source.DisableNamedPipes) - { - // Named Pipes - if (builder.DataSource.Equals("(local)")) - builder.DataSource = "np:" + builder.DataSource; - else - builder.DataSource = @"np:\\" + builder.DataSource.Split(',')[0] + @"\pipe\sql\query"; - } - } - - // Set MARS if it is requested by the test case - if (options.HasFlag(ConnectionStringOptions.EnableMars)) - { - builder.MultipleActiveResultSets = true; - } - - // Disable connection resiliency, which is on by default, 20% of the time. - if (rnd != null && rnd.NextBool(.2)) - { - builder.ConnectRetryCount = 0; - } - } - else - { - // Minimal randomization of connection string - - // Enable MARS for all scenarios - builder.MultipleActiveResultSets = true; - } - - builder.MaxPoolSize = 1000; - - return builder.ToString(); - } - - protected override int GetNumDifferentApplicationNames() - { - // Return only 1 because the randomization in the base connection string above will give us more pools, so we don't need - // to also have many different application names. Getting connections from many different pools is not interesting to test - // because it reduces the amount of multithreadedness within each pool. - return 1; - } - } -} diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.SqlClient.Stress.Tests/SqlClientTestGroup.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.SqlClient.Stress.Tests/SqlClientTestGroup.cs deleted file mode 100644 index 3ebc5aeae..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.SqlClient.Stress.Tests/SqlClientTestGroup.cs +++ /dev/null @@ -1,612 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; -using System.Threading; -using System.Threading.Tasks; -using System.Diagnostics; -using System.Data; -using System.Data.Common; -using System.Data.SqlClient; -using System.Xml; -using Stress.Data; - -using DPStressHarness; -using System.IO; - -namespace Stress.Data.SqlClient -{ - public class SqlClientTestGroup : DataTestGroup - { - /// - /// SqlNotificationRequest options string - /// - private static string s_notificationOptions; - - /// - /// Connection string for SqlDependency.Start()/Stop() - /// - /// The connection string used for SqlDependency.Start() must always be exactly the same every time - /// if you are connecting to the same database with the same user and same application domain, so - /// don't randomise the connection string for calling SqlDependency.Start() - /// - private static string s_sqlDependencyConnString; - - /// - /// A thread which randomly calls SqlConnection.ClearAllPools. - /// This significantly increases the probability of hitting some bugs, such as: - /// vstfdevdiv 674236 (SqlConnection.Open() throws InvalidOperationException for absolutely valid connection request) - /// sqlbuvsts 328845 (InvalidOperationException: The requested operation cannot be completed because the connection has been broken.) (this is LSE QFE) - /// However, calling ClearAllPools all the time might also significantly decrease the probability of hitting some other bug, - /// so this thread will alternate between hammering on ClearAllPools for several minutes, and then doing nothing for several minutes. - /// - private static Thread s_clearAllPoolsThread; - - /// - /// Call .Set() on this to cleanly stop the ClearAllPoolsThread. - /// - private static ManualResetEvent s_clearAllPoolsThreadStop = new ManualResetEvent(false); - - private static void ClearAllPoolsThreadFunc() - { - Random rnd = new TrackedRandom((int)Environment.TickCount); - - // Swap between calling ClearAllPools and doing nothing every 5 minutes. - TimeSpan halfCycleTime = TimeSpan.FromMinutes(5); - - int minWait = 10; // milliseconds - int maxWait = 1000; // milliseconds - - bool active = true; // Start active so we can hit vstfdevdiv 674236 asap - Stopwatch stopwatch = Stopwatch.StartNew(); - while (!s_clearAllPoolsThreadStop.WaitOne(rnd.Next(minWait, maxWait))) - { - if (stopwatch.Elapsed > halfCycleTime) - { - active = !active; - stopwatch.Reset(); - stopwatch.Start(); - } - - if (active) - { - SqlConnection.ClearAllPools(); - } - } - } - - public override void GlobalTestSetup() - { - base.GlobalTestSetup(); - - s_clearAllPoolsThread = new Thread(ClearAllPoolsThreadFunc); - s_clearAllPoolsThread.Start(); - - // set the notification options for SqlNotificationRequest tests - s_notificationOptions = "service=StressNotifications;local database=" + ((SqlServerDataSource)Source).Database; - - s_sqlDependencyConnString = Factory.CreateBaseConnectionString(null, DataStressFactory.ConnectionStringOptions.DisableMultiSubnetFailover); - } - - public override void GlobalTestCleanup() - { - s_clearAllPoolsThreadStop.Set(); - s_clearAllPoolsThread.Join(); - - SqlClientStressFactory factory = Factory as SqlClientStressFactory; - if (factory != null) - { - factory.Terminate(); - } - - base.GlobalTestCleanup(); - } - - public override void GlobalExceptionHandler(Exception e) - { - base.GlobalExceptionHandler(e); - } - - protected override DataStressFactory CreateFactory(ref string scenario, ref DataSource source) - { - SqlClientStressFactory factory = new SqlClientStressFactory(); - factory.Initialize(ref scenario, ref source); - return factory; - } - - protected override bool IsCommandCancelledException(Exception e) - { - return - base.IsCommandCancelledException(e) || - ((e is SqlException || e is InvalidOperationException) && e.Message.ToLower().Contains("operation cancelled")) || - (e is SqlException && e.Message.StartsWith("A severe error occurred on the current command.")) || - (e is AggregateException && e.InnerException != null && IsCommandCancelledException(e.InnerException)) || - (e is System.Reflection.TargetInvocationException && e.InnerException != null && IsCommandCancelledException(e.InnerException)); - } - - protected override bool IsReaderClosedException(Exception e) - { - return - e is TaskCanceledException - || - ( - e is InvalidOperationException - && - ( - (e.Message.StartsWith("Invalid attempt to call") && e.Message.EndsWith("when reader is closed.")) - || - e.Message.Equals("Invalid attempt to read when no data is present.") - || - e.Message.Equals("Invalid operation. The connection is closed.") - ) - ) - || - ( - e is ObjectDisposedException - && - ( - e.Message.Equals("Cannot access a disposed object.\r\nObject name: 'SqlSequentialStream'.") - || - e.Message.Equals("Cannot access a disposed object.\r\nObject name: 'SqlSequentialTextReader'.") - ) - ); - } - - protected override bool AllowReaderCloseDuringReadAsync() - { - return true; - } - - /// - /// Utility function used by async tests - /// - /// SqlCommand to be executed. - /// Indicates if data is being queried - /// Indicates if the query should be executed as an Xml - /// - /// The Cancellation Token Source - /// The result of beginning of Async execution. - private IAsyncResult SqlCommandBeginExecute(SqlCommand com, bool query, bool xml, bool useBeginAPI, CancellationTokenSource cts = null) - { - DataStressErrors.Assert(!(useBeginAPI && cts != null), "Cannot use begin api with CancellationTokenSource"); - - CancellationToken token = (cts != null) ? cts.Token : CancellationToken.None; - - if (xml) - { - com.CommandText = com.CommandText + " FOR XML AUTO"; - return useBeginAPI ? null : com.ExecuteXmlReaderAsync(token); - } - else if (query) - { - return useBeginAPI ? null : com.ExecuteReaderAsync(token); - } - else - { - return useBeginAPI ? null : com.ExecuteNonQueryAsync(token); - } - } - - /// - /// Utility function used by async tests - /// - /// Used to randomize reader.Read() call, whether it should continue or break, and is passed down to ConsumeReaderAsync - /// The Async result from Begin operation. - /// The Sql Command to Execute - /// Indicates if data is being queried and where ExecuteQuery or Non-query to be used with the reader - /// Indicates if the query should be executed as an Xml - /// Indicates if command was cancelled and is used to throw exception if a Command cancellation related exception is encountered - /// The Cancellation Token Source - private void SqlCommandEndExecute(Random rnd, IAsyncResult result, SqlCommand com, bool query, bool xml, bool cancelled, CancellationTokenSource cts = null) - { - try - { - bool closeReader = ShouldCloseDataReader(); - if (xml) - { - XmlReader reader = null; - if (result != null && result is Task) - { - reader = AsyncUtils.GetResult(result); - } - else - { - reader = AsyncUtils.ExecuteXmlReader(com); - } - - while (reader.Read()) - { - if (rnd.Next(10) == 0) break; - if (rnd.Next(2) == 0) continue; - reader.ReadElementContentAsString(); - } - if (closeReader) reader.Dispose(); - } - else if (query) - { - DataStressReader reader = null; - if (result != null && result is Task) - { - reader = new DataStressReader(AsyncUtils.GetResult(result)); - } - else - { - reader = new DataStressReader(AsyncUtils.ExecuteReader(com)); - } - - CancellationToken token = (cts != null) ? cts.Token : CancellationToken.None; - - AsyncUtils.WaitAndUnwrapException(ConsumeReaderAsync(reader, false, token, rnd)); - - if (closeReader) reader.Close(); - } - else - { - if (result != null && result is Task) - { - int temp = AsyncUtils.GetResult(result); - } - else - { - AsyncUtils.ExecuteNonQuery(com); - } - } - } - catch (Exception e) - { - if (cancelled && IsCommandCancelledException(e)) - { - // expected exception, ignore - } - else - { - throw; - } - } - } - - - /// - /// Utility function for tests - /// - /// - /// - /// - /// - /// - private void TestSqlAsync(Random rnd, bool read, bool poll, bool handle, bool xml) - { - using (DataStressConnection conn = Factory.CreateConnection(rnd)) - { - if (!OpenConnection(conn)) return; - DataStressFactory.TableMetadata table = Factory.GetRandomTable(rnd); - SqlCommand com = (SqlCommand)Factory.GetCommand(rnd, table, conn, read, xml); - bool useBeginAPI = rnd.NextBool(); - - IAsyncResult result = SqlCommandBeginExecute(com, read, xml, useBeginAPI); - // Cancel 1/10 commands - bool cancel = (rnd.Next(10) == 0); - if (cancel) - { - if (com.Connection.State != ConnectionState.Closed) com.Cancel(); - } - - if (result != null) - WaitForAsyncOpToComplete(rnd, result, poll, handle); - // At random end query or forget it - if (rnd.Next(2) == 0) - SqlCommandEndExecute(rnd, result, com, read, xml, cancel); - - // Randomly wait for the command to complete after closing the connection to verify devdiv bug 200550. - // This was fixed for .NET 4.5 Task-based API, but not for the older Begin/End IAsyncResult API. - conn.Close(); - if (!useBeginAPI && rnd.NextBool()) - result.AsyncWaitHandle.WaitOne(); - } - } - - private void WaitForAsyncOpToComplete(Random rnd, IAsyncResult result, bool poll, bool handle) - { - if (poll) - { - long ret = 0; - bool wait = !result.IsCompleted; - while (wait) - { - wait = !result.IsCompleted; - Thread.Sleep(100); - if (ret++ > 300) //30 second max wait time then exit - wait = false; - } - } - else if (handle) - { - WaitHandle wait = result.AsyncWaitHandle; - wait.WaitOne(rnd.Next(1000)); - } - } - - /// - /// SqlClient Async Non-blocking Read Test - /// - [StressTest("TestSqlAsyncNonBlockingRead", Weight = 10)] - public void TestSqlAsyncNonBlockingRead() - { - Random rnd = RandomInstance; - TestSqlAsync(rnd, read: true, poll: false, handle: false, xml: false); - } - - /// - /// SqlClient Async Non-blocking Write Test - /// - [StressTest("TestSqlAsyncNonBlockingWrite", Weight = 10)] - public void TestSqlAsyncNonBlockingWrite() - { - Random rnd = RandomInstance; - TestSqlAsync(rnd, read: false, poll: false, handle: false, xml: false); - } - - /// - /// SqlClient Async Polling Read Test - /// - [StressTest("TestSqlAsyncPollingRead", Weight = 10)] - public void TestSqlAsyncPollingRead() - { - Random rnd = RandomInstance; - TestSqlAsync(rnd, read: true, poll: true, handle: false, xml: false); - } - - /// - /// SqlClient Async Polling Write Test - /// - [StressTest("TestSqlAsyncPollingWrite", Weight = 10)] - public void TestSqlAsyncPollingWrite() - { - Random rnd = RandomInstance; - TestSqlAsync(rnd, read: false, poll: true, handle: false, xml: false); - } - - /// - /// SqlClient Async Event Read Test - /// - [StressTest("TestSqlAsyncEventRead", Weight = 10)] - public void TestSqlAsyncEventRead() - { - Random rnd = RandomInstance; - TestSqlAsync(rnd, read: true, poll: false, handle: true, xml: false); - } - - /// - /// SqlClient Async Event Write Test - /// - [StressTest("TestSqlAsyncEventWrite", Weight = 10)] - public void TestSqlAsyncEventWrite() - { - Random rnd = RandomInstance; - TestSqlAsync(rnd, read: false, poll: false, handle: true, xml: false); - } - - - /// - /// SqlClient Async Xml Non-blocking Read Test - /// - [StressTest("TestSqlXmlAsyncNonBlockingRead", Weight = 10)] - public void TestSqlXmlAsyncNonBlockingRead() - { - Random rnd = RandomInstance; - TestSqlAsync(rnd, read: true, poll: false, handle: false, xml: true); - } - - /// - /// SqlClient Async Xml Polling Read Test - /// - [StressTest("TestSqlXmlAsyncPollingRead", Weight = 10)] - public void TestSqlXmlAsyncPollingRead() - { - Random rnd = RandomInstance; - TestSqlAsync(rnd, read: true, poll: true, handle: false, xml: true); - } - - /// - /// SqlClient Async Xml Event Read Test - /// - [StressTest("TestSqlXmlAsyncEventRead", Weight = 10)] - public void TestSqlXmlAsyncEventRead() - { - Random rnd = RandomInstance; - TestSqlAsync(rnd, read: true, poll: false, handle: true, xml: true); - } - - - [StressTest("TestSqlXmlCommandReader", Weight = 10)] - public void TestSqlXmlCommandReader() - { - Random rnd = RandomInstance; - - using (DataStressConnection conn = Factory.CreateConnection(rnd)) - { - if (!OpenConnection(conn)) return; - DataStressFactory.TableMetadata table = Factory.GetRandomTable(rnd); - SqlCommand com = (SqlCommand)Factory.GetCommand(rnd, table, conn, query: true, isXml: true); - com.CommandText = com.CommandText + " FOR XML AUTO"; - - // Cancel 1/10 commands - bool cancel = rnd.Next(10) == 0; - if (cancel) - { - ThreadPool.QueueUserWorkItem(new WaitCallback(CommandCancel), com); - } - - try - { - XmlReader reader = com.ExecuteXmlReader(); - - while (reader.Read()) - { - if (rnd.Next(10) == 0) break; - if (rnd.Next(2) == 0) continue; - reader.ReadElementContentAsString(); - } - if (rnd.Next(10) != 0) reader.Dispose(); - } - catch (Exception ex) - { - if (cancel && IsCommandCancelledException(ex)) - { - // expected, ignore - } - else - { - throw; - } - } - } - } - - - /// - /// Utility function used for testing cancellation on Execute*Async APIs. - /// - private void TestSqlAsyncCancellation(Random rnd, bool read, bool xml) - { - using (DataStressConnection conn = Factory.CreateConnection(rnd)) - { - if (!OpenConnection(conn)) return; - DataStressFactory.TableMetadata table = Factory.GetRandomTable(rnd); - SqlCommand com = (SqlCommand)Factory.GetCommand(rnd, table, conn, read, xml); - - CancellationTokenSource cts = new CancellationTokenSource(); - Task t = (Task)SqlCommandBeginExecute(com, read, xml, false, cts); - - cts.CancelAfter(rnd.Next(2000)); - SqlCommandEndExecute(rnd, (IAsyncResult)t, com, read, xml, true, cts); - } - } - - /// - /// SqlClient Async Xml Event Read Test - /// - [StressTest("TestExecuteXmlReaderAsyncCancellation", Weight = 10)] - public void TestExecuteXmlReaderAsyncCancellation() - { - Random rnd = RandomInstance; - TestSqlAsyncCancellation(rnd, true, true); - } - - /// - /// SqlClient Async Xml Event Read Test - /// - [StressTest("TestExecuteReaderAsyncCancellation", Weight = 10)] - public void TestExecuteReaderAsyncCancellation() - { - Random rnd = RandomInstance; - TestSqlAsyncCancellation(rnd, true, false); - } - - /// - /// SqlClient Async Xml Event Read Test - /// - [StressTest("TestExecuteNonQueryAsyncCancellation", Weight = 10)] - public void TestExecuteNonQueryAsyncCancellation() - { - Random rnd = RandomInstance; - TestSqlAsyncCancellation(rnd, false, false); - } - - - private class MARSCommand - { - internal SqlCommand cmd; - internal IAsyncResult result; - internal bool query; - internal bool xml; - } - - [StressTest("TestSqlAsyncMARS", Weight = 10)] - public void TestSqlAsyncMARS() - { - const int MaxCmds = 11; - Random rnd = RandomInstance; - - using (DataStressConnection conn = Factory.CreateConnection(rnd, DataStressFactory.ConnectionStringOptions.EnableMars)) - { - if (!OpenConnection(conn)) return; - DataStressFactory.TableMetadata table = Factory.GetRandomTable(rnd); - - // MARS session cache is by default 10. - // This is documented here: https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/enabling-multiple-active-result-sets - // We want to stress test this by allowing 11 concurrent commands. Hence the max in rnd.Next below is 12. - MARSCommand[] cmds = new MARSCommand[rnd.Next(5, MaxCmds + 1)]; - - for (int i = 0; i < cmds.Length; i++) - { - cmds[i] = new MARSCommand(); - - // Make every 3rd query xml reader - if (i % 3 == 0) - { - cmds[i].query = true; - cmds[i].xml = true; - } - else - { - cmds[i].query = rnd.NextBool(); - cmds[i].xml = false; - } - - cmds[i].cmd = (SqlCommand)Factory.GetCommand(rnd, table, conn, cmds[i].query, cmds[i].xml); - cmds[i].result = SqlCommandBeginExecute(cmds[i].cmd, cmds[i].query, cmds[i].xml, rnd.NextBool()); - if (cmds[i].result != null) - WaitForAsyncOpToComplete(rnd, cmds[i].result, true, false); - } - - // After all commands have been launched, wait for them to complete now. - for (int i = 0; i < cmds.Length; i++) - { - SqlCommandEndExecute(rnd, cmds[i].result, cmds[i].cmd, cmds[i].query, cmds[i].xml, false); - } - } - } - - - [StressTest("TestStreamInputParameter", Weight = 10)] - public void TestStreamInputParameter() - { - Random rnd = RandomInstance; - int dataSize = 100000; - byte[] data = new byte[dataSize]; - rnd.NextBytes(data); - - using (DataStressConnection conn = Factory.CreateConnection(rnd)) - { - if (!OpenConnection(conn)) return; - SqlCommand cmd = (SqlCommand)conn.CreateCommand(); - cmd.CommandText = "SELECT @blob"; - SqlParameter param = cmd.Parameters.Add("@blob", SqlDbType.VarBinary, dataSize); - param.Direction = ParameterDirection.Input; - param.Value = new MemoryStream(data); - CommandExecute(rnd, cmd, true); - } - } - - [StressTest("TestTextReaderInputParameter", Weight = 10)] - public void TestTextReaderInputParameter() - { - Random rnd = RandomInstance; - int dataSize = 100000; - string data = new string('a', dataSize); - - using (DataStressConnection conn = Factory.CreateConnection(rnd)) - { - if (!OpenConnection(conn)) return; - SqlCommand cmd = (SqlCommand)conn.CreateCommand(); - cmd.CommandText = "SELECT @blob"; - SqlParameter param = cmd.Parameters.Add("@blob", SqlDbType.VarChar, dataSize); - param.Direction = ParameterDirection.Input; - param.Value = new StringReader(data); - CommandExecute(rnd, cmd, true); - } - } - } -} diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.SqlClient.Stress.Tests/System.Data.SqlClient.Stress.Tests.csproj b/src/System.Data.SqlClient/tests/StressTests/System.Data.SqlClient.Stress.Tests/System.Data.SqlClient.Stress.Tests.csproj deleted file mode 100644 index bfda18e76..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.SqlClient.Stress.Tests/System.Data.SqlClient.Stress.Tests.csproj +++ /dev/null @@ -1,22 +0,0 @@ - - - {B94B8E6D-3E41-4046-B758-4A2E281F74EE} - Stress.Data.SqlClient - System.Data.SqlClient.Stress.Tests - - false - netcoreapp-Unix-Debug;netcoreapp-Unix-Release;netcoreapp-Windows_NT-Debug;netcoreapp-Windows_NT-Release;netfx-Windows_NT-Debug;netfx-Windows_NT-Release;uap-Windows_NT-Debug;uap-Windows_NT-Release - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/AsyncUtils.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/AsyncUtils.cs deleted file mode 100644 index 5c66a98a0..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/AsyncUtils.cs +++ /dev/null @@ -1,186 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; -using System.Data.SqlClient; -using System.Linq; -using System.Runtime.ExceptionServices; -using System.Threading; -using System.Threading.Tasks; -using System.Xml; -using DPStressHarness; - -namespace Stress.Data -{ - public enum SyncAsyncMode - { - Sync, // call sync method, e.g. connection.Open(), and return completed task - SyncOverAsync, // call async method, e.g. connection.OpenAsync().Wait(), and return completed task - Async // call async method, e.g. connection.OpenAsync(), and return running task - } - - public static class AsyncUtils - { - public static Task SyncOrAsyncMethod(Func syncFunc, Func> asyncFunc, SyncAsyncMode mode) - { - switch (mode) - { - case SyncAsyncMode.Sync: - TResult result = syncFunc(); - return Task.FromResult(result); - - case SyncAsyncMode.SyncOverAsync: - Task t = asyncFunc(); - WaitAndUnwrapException(t); - return t; - - case SyncAsyncMode.Async: - return asyncFunc(); - - default: - throw new ArgumentException(mode.ToString()); - } - } - - public static Task SyncOrAsyncMethod(Action syncFunc, Func asyncFunc, SyncAsyncMode mode) - { - switch (mode) - { - case SyncAsyncMode.Sync: - syncFunc(); - return Task.CompletedTask; - - case SyncAsyncMode.SyncOverAsync: - Task t = asyncFunc(); - WaitAndUnwrapException(t); - return t; - - case SyncAsyncMode.Async: - return asyncFunc(); - - default: - throw new ArgumentException(mode.ToString()); - } - } - - public static void WaitAll(params Task[] ts) - { - DeadlockDetection.DisableThreadAbort(); - try - { - Task.WaitAll(ts); - } - finally - { - DeadlockDetection.EnableThreadAbort(); - } - } - - public static void WaitAllNullable(params Task[] ts) - { - DeadlockDetection.DisableThreadAbort(); - try - { - Task[] tasks = ts.Where(t => t != null).ToArray(); - Task.WaitAll(tasks); - } - finally - { - DeadlockDetection.EnableThreadAbort(); - } - } - - public static void WaitAndUnwrapException(Task t) - { - DeadlockDetection.DisableThreadAbort(); - try - { - t.Wait(); - } - catch (AggregateException ae) - { - // The callers of this API may not expect AggregateException, so throw the inner exception - // If AggregateException contains more than one InnerExceptions, throw it out as it is, - // because that is unexpected - if ((ae.InnerExceptions != null) && (ae.InnerExceptions.Count == 1)) - { - if (ae.InnerException != null) - { - ExceptionDispatchInfo info = ExceptionDispatchInfo.Capture(ae.InnerException); - info.Throw(); - } - } - - throw; - } - finally - { - DeadlockDetection.EnableThreadAbort(); - } - } - - public static T GetResult(IAsyncResult result) - { - return GetResult((Task)result); - } - - public static T GetResult(Task result) - { - DeadlockDetection.DisableThreadAbort(); - try - { - return result.Result; - } - finally - { - DeadlockDetection.EnableThreadAbort(); - } - } - - public static SqlDataReader ExecuteReader(SqlCommand command) - { - DeadlockDetection.DisableThreadAbort(); - try - { - return command.ExecuteReader(); - } - finally - { - DeadlockDetection.EnableThreadAbort(); - } - } - - public static int ExecuteNonQuery(SqlCommand command) - { - DeadlockDetection.DisableThreadAbort(); - try - { - return command.ExecuteNonQuery(); - } - finally - { - DeadlockDetection.DisableThreadAbort(); - } - } - - public static XmlReader ExecuteXmlReader(SqlCommand command) - { - DeadlockDetection.DisableThreadAbort(); - try - { - return command.ExecuteXmlReader(); - } - finally - { - DeadlockDetection.EnableThreadAbort(); - } - } - - public static SyncAsyncMode ChooseSyncAsyncMode(Random rnd) - { - // Any mode is allowed - return (SyncAsyncMode)rnd.Next(3); - } - } -} diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/Configurations.props b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/Configurations.props deleted file mode 100644 index 929ab11da..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/Configurations.props +++ /dev/null @@ -1,10 +0,0 @@ - - - - netcoreapp-Unix; - netcoreapp-Windows_NT; - uap-Windows_NT; - netfx-Windows_NT; - - - \ No newline at end of file diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/DataSource.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/DataSource.cs deleted file mode 100644 index 73c1d5dc9..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/DataSource.cs +++ /dev/null @@ -1,160 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -namespace Stress.Data -{ - /// - /// supported source types - values for 'type' attribute for 'source' node in App.config - /// - public enum DataSourceType - { - SqlServer - } - - /// - /// base class for database source information (SQL Server, Oracle Server, Access Database file, etc...). - /// Data sources are loaded from the app config file. - /// - public abstract class DataSource - { - /// - /// name of the source - can be used in command line: StressTest ... -override source "sourcename" - /// - public readonly string Name; - - /// - /// database type - /// - public readonly DataSourceType Type; - - /// - /// whether this source is the default one for the type specified - /// - public readonly bool IsDefault; - - /// - /// constructs new data source - called by derived class c-tors only (thus protected) - /// - protected DataSource(string name, DataSourceType type, bool isDefault) - { - this.Name = name; - this.Type = type; - this.IsDefault = isDefault; - } - - /// - /// this method is used to create the data source, based on its type - /// - public static DataSource Create(string name, DataSourceType sourceType, bool isDefault, IDictionary properties) - { - switch (sourceType) - { - case DataSourceType.SqlServer: - return new SqlServerDataSource(name, isDefault, properties); - default: - throw new ArgumentException("Wrong source type value: " + sourceType); - } - } - - /// - /// used by GetRequiredAttributeValue or derived classes to construct exception on missing required attribute - /// - /// name of the source (from XML) to include in exception message (for troubleshooting) - protected Exception MissingAttributeValueException(string sourceName, string attributeName) - { - return new ArgumentException(string.Format("Missing or empty value for {0} attribute in the config file for source: {1}", attributeName, sourceName)); - } - - /// - /// search for required attribute or fail if not found - /// - protected string GetRequiredAttributeValue(string sourceName, IDictionary properties, string valueName, bool allowEmpty) - { - string value; - if (!properties.TryGetValue(valueName, out value) || (value == null) || (!allowEmpty && value.Length == 0)) - { - throw MissingAttributeValueException(sourceName, valueName); - } - return value; - } - - /// - /// search for optional attribute or return default vale - /// - protected string GetOptionalAttributeValue(IDictionary properties, string valueName, string defaultValue) - { - string value; - if (!properties.TryGetValue(valueName, out value) || (value == null)) - { - value = defaultValue; - } - return value; - } - } - - /// - /// Represents SQL Server data source. This source is used by SqlClient as well as by ODBC and OLEDB when connecting to SQL with SNAC or MDAC/WDAC - /// - /// - /// - /// - /// - public class SqlServerDataSource : DataSource - { - public readonly string DataSource; - public readonly string Database; - public readonly bool IsLocal; - - // if user and password are set, test can create connection strings with SQL auth settings - public readonly string User; - public readonly string Password; - - // if true, test can create connnection strings with integrated security (trusted connection) set to true (or SSPI). - public readonly bool SupportsWindowsAuthentication; - - public bool DisableMultiSubnetFailoverSetup; - - public bool DisableNamedPipes; - - internal SqlServerDataSource(string name, bool isDefault, IDictionary properties) - : base(name, DataSourceType.SqlServer, isDefault) - { - this.DataSource = GetOptionalAttributeValue(properties, "dataSource", "localhost"); - this.Database = GetOptionalAttributeValue(properties, "database", "stress"); - - this.User = GetOptionalAttributeValue(properties, "user", string.Empty); - this.Password = GetOptionalAttributeValue(properties, "password", string.Empty); - - this.IsLocal = bool.Parse(GetOptionalAttributeValue(properties, "islocal", bool.FalseString)); - - this.DisableMultiSubnetFailoverSetup = bool.Parse(GetOptionalAttributeValue(properties, "DisableMultiSubnetFailoverSetup", bool.TrueString)); - - this.DisableNamedPipes = bool.Parse(GetOptionalAttributeValue(properties, "DisableNamedPipes", bool.TrueString)); - - string temp = GetOptionalAttributeValue(properties, "supportsWindowsAuthentication", "false"); - if (!string.IsNullOrEmpty(temp)) - SupportsWindowsAuthentication = Convert.ToBoolean(temp); - else - SupportsWindowsAuthentication = false; - - if (string.IsNullOrEmpty(User) && !SupportsWindowsAuthentication) - throw new ArgumentException("SQL Server settings should include either a valid User name or SupportsWindowsAuthentication=true"); - } - } - - -} diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/DataStressConnection.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/DataStressConnection.cs deleted file mode 100644 index e9157fbc7..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/DataStressConnection.cs +++ /dev/null @@ -1,236 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Data.Common; -using System.Data.SqlClient; -using System.Linq; -using System.Security.Principal; -using System.Text; -using System.Threading; -using System.Threading.Tasks; - -namespace Stress.Data -{ - public class DataStressConnection : IDisposable - { - public DbConnection DbConnection { get; private set; } - private readonly bool _clearPoolBeforeClose; - public DataStressConnection(DbConnection conn, bool clearPoolBeforeClose = false) - { - if (conn == null) - throw new ArgumentException("Cannot pass in null DbConnection to make new DataStressConnection!"); - this.DbConnection = conn; - _clearPoolBeforeClose = clearPoolBeforeClose; - } - - private short _spid = 0; - - [ThreadStatic] - private static TrackedRandom t_randomInstance; - private static TrackedRandom RandomInstance - { - get - { - if (t_randomInstance == null) - t_randomInstance = new TrackedRandom(); - return t_randomInstance; - } - } - - public void Open() - { - bool sync = RandomInstance.NextBool(); - - if (sync) - { - OpenSync(); - } - else - { - Task t = OpenAsync(); - AsyncUtils.WaitAndUnwrapException(t); - } - } - - public async Task OpenAsync() - { - int startMilliseconds = Environment.TickCount; - try - { - await DbConnection.OpenAsync(); - } - catch (ObjectDisposedException e) - { - HandleObjectDisposedException(e, true); - throw; - } - catch (InvalidOperationException e) - { - int endMilliseconds = Environment.TickCount; - - // we may be able to handle this exception - HandleInvalidOperationException(e, startMilliseconds, endMilliseconds, true); - throw; - } - - GetSpid(); - } - - private void OpenSync() - { - int startMilliseconds = Environment.TickCount; - try - { - DbConnection.Open(); - } - catch (ObjectDisposedException e) - { - HandleObjectDisposedException(e, false); - throw; - } - catch (InvalidOperationException e) - { - int endMilliseconds = Environment.TickCount; - - // we may be able to handle this exception - HandleInvalidOperationException(e, startMilliseconds, endMilliseconds, false); - throw; - } - - GetSpid(); - } - - private void HandleObjectDisposedException(ObjectDisposedException e, bool async) - { - // Race condition in DbConnectionFactory.TryGetConnection results in an ObjectDisposedException when calling OpenAsync on a non-pooled connection - string methodName = async ? "OpenAsync()" : "Open()"; - throw DataStressErrors.ProductError( - "Hit ObjectDisposedException in SqlConnection." + methodName, e); - } - - private static int s_fastTimeoutCountOpen; // number of times hit by SqlConnection.Open - private static int s_fastTimeoutCountOpenAsync; // number of times hit by SqlConnection.OpenAsync - private static readonly DateTime s_startTime = DateTime.Now; - - private const int MaxFastTimeoutCountPerDay = 200; - - /// - /// Handles InvalidOperationException generated from Open or OpenAsync calls. - /// For any other type of Exception, it simply returns - /// - private void HandleInvalidOperationException(InvalidOperationException e, int startMilliseconds, int endMilliseconds, bool async) - { - int elapsedMilliseconds = unchecked(endMilliseconds - startMilliseconds); // unchecked to handle overflow of Environment.TickCount - - // Since InvalidOperationExceptions due to timeout can be caused by issues - // (e.g. network hiccup, server unavailable, etc) we need a heuristic to guess whether or not this exception - // should have happened or not. - bool wasTimeoutFromPool = (e.GetType() == typeof(InvalidOperationException)) && - (e.Message.StartsWith("Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool")); - - bool wasTooEarly = (elapsedMilliseconds < ((DbConnection.ConnectionTimeout - 5) * 1000)); - - if (wasTimeoutFromPool && wasTooEarly) - { - if (async) - Interlocked.Increment(ref s_fastTimeoutCountOpenAsync); - else - Interlocked.Increment(ref s_fastTimeoutCountOpen); - } - } - - /// - /// Gets spid value. - /// - /// - /// If we want to kill the connection, we get its spid up front before the test case uses the connection. Otherwise if - /// we try to get the spid when KillConnection is called, then the connection could be in a bad state (e.g. enlisted in - /// aborted transaction, or has open datareader) and we will fail to get the spid. Also the randomization is put here - /// instead of in KillConnection because otherwise this method would execute a command for every single connection which - /// most of the time will not be used later. - /// - private void GetSpid() - { - if (DbConnection is System.Data.SqlClient.SqlConnection && RandomInstance.Next(0, 20) == 0) - { - using (var cmd = DbConnection.CreateCommand()) - { - cmd.CommandText = "select @@spid"; - _spid = (short)cmd.ExecuteScalar(); - } - } - else - { - _spid = 0; - } - } - - /// - /// Kills the given connection using "kill [spid]" if the parameter is nonzero - /// - private void KillConnection() - { - DataStressErrors.Assert(_spid != 0, "Called KillConnection with spid != 0"); - - using (var killerConn = DataTestGroup.Factory.CreateConnection()) - { - killerConn.Open(); - - using (var killerCmd = killerConn.CreateCommand()) - { - killerCmd.CommandText = "begin try kill " + _spid + " end try begin catch end catch"; - killerCmd.ExecuteNonQuery(); - } - } - } - - /// - /// Kills the given connection using "kill [spid]" if the parameter is nonzero - /// - /// a Task that is asynchronously killing the connection, or null if the connection is not being killed - public Task KillConnectionAsync() - { - if (_spid == 0) - return null; - else - return Task.Factory.StartNew(() => KillConnection()); - } - - public void Close() - { - if (_spid != 0) - { - KillConnection(); - - // Wait before putting the connection back in the pool, to ensure that - // the pool checks the connection the next time it is used. - Task.Delay(10).ContinueWith((t) => DbConnection.Close()); - } - else - { - // If this is a SqlConnection, and it is a connection with a unique connection string that we will never use again, - // then call SqlConnection.ClearPool() before closing so that it is fully closed and does not waste client & server resources. - if (_clearPoolBeforeClose) - { - SqlConnection sqlConn = DbConnection as SqlConnection; - if (sqlConn != null) SqlConnection.ClearPool(sqlConn); - } - - DbConnection.Close(); - } - } - - public void Dispose() - { - Close(); - } - - public DbCommand CreateCommand() - { - return DbConnection.CreateCommand(); - } - } -} diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/DataStressErrors.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/DataStressErrors.cs deleted file mode 100644 index bf20276c9..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/DataStressErrors.cs +++ /dev/null @@ -1,216 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; -using System.Diagnostics; -using System.Runtime.Serialization; - -namespace Stress.Data -{ - public enum ErrorHandlingAction - { - // If you add an item here, remember to add it to all of the methods below - DebugBreak, - ThrowException - } - - /// - /// Static class containing methods to report errors. - /// - /// The StressTest executor will eat exceptions that are thrown and write them out to the console. In theory these should all be - /// either harmless exceptions or product bugs, however at present there are a large number of test issues that will cause a flood - /// of exceptions. Therefore if something actually bad happens (e.g. a known product bug is hit due to regression, or a major test - /// programming error) this error would be easy to miss if it were reported just by throwing an exception. To solve this, we use - /// this class for structured & consistent handling of errors. - /// - public static class DataStressErrors - { - private static void DebugBreak(string message, Exception exception) - { - // Print out the error before breaking to make debugging easier - Console.WriteLine(message); - if (exception != null) - { - Console.WriteLine(exception); - } - - Debugger.Break(); - } - - /// - /// Reports that a product bug has been hit. The action that will be taken is configurable in the .config file. - /// This can be used to check for regressions of known product bugs. - /// - /// A description of the product bug hit (e.g. title, bug number & database, more information) - /// The exception that was thrown that indicates a product bug, or null if the product bug was detected without - /// having thrown an exception - /// An exception that the caller should throw. - public static Exception ProductError(string description, Exception exception = null) - { - switch (DataStressSettings.Instance.ActionOnProductError) - { - case ErrorHandlingAction.DebugBreak: - DebugBreak("Hit product error: " + description, exception); - return new ProductErrorException(description, exception); - - case ErrorHandlingAction.ThrowException: - return new ProductErrorException(description, exception); - - default: - throw UnhandledCaseError(DataStressSettings.Instance.ActionOnProductError); - } - } - - /// - /// Reports that a non-fatal test error has been hit. The action that will be taken is configurable in the .config file. - /// This should be used for test errors that do not prevent the test from running. - /// - /// A description of the error - /// The exception that was thrown that indicates an error, or null if the error was detected without - /// An exception that the caller should throw. - public static Exception TestError(string description, Exception exception = null) - { - switch (DataStressSettings.Instance.ActionOnTestError) - { - case ErrorHandlingAction.DebugBreak: - DebugBreak("Hit test error: " + description, exception); - return new TestErrorException(description, exception); - - case ErrorHandlingAction.ThrowException: - return new TestErrorException(description, exception); - - default: - throw UnhandledCaseError(DataStressSettings.Instance.ActionOnTestError); - } - } - - /// - /// Reports that a programming error in the test code has occurred. The action that will be taken is configurable in the .config file. - /// This must strictly be used to report programming errors. It should not be in any way possible to see one of these errors unless - /// you make an incorrect change to the code, for example having an unhandled case in a switch statement. - /// - /// A description of the error - /// The exception that was thrown that indicates an error, or null if the error was detected without - /// having thrown an exception - /// An exception that the caller should throw. - private static Exception ProgrammingError(string description, Exception exception = null) - { - switch (DataStressSettings.Instance.ActionOnProgrammingError) - { - case ErrorHandlingAction.DebugBreak: - DebugBreak("Hit programming error: " + description, exception); - return new ProgrammingErrorException(description, exception); - - case ErrorHandlingAction.ThrowException: - return new ProgrammingErrorException(description, exception); - - default: - // If we are here then it's a programming error, but calling UnhandledCaseError here would cause an inifite loop. - goto case ErrorHandlingAction.DebugBreak; - } - } - - /// - /// Reports that an unhandled case in a switch statement in the test code has occurred. The action that will be taken is configurable - /// as a programming error in the .config file. It should not be in any way possible to see one of these errors unless - /// you make an incorrect change to the test code, for example having an unhandled case in a switch statement. - /// - /// The value that was not handled in the switch statement - /// An exception that the caller should throw. - public static Exception UnhandledCaseError(T unhandledValue) - { - return ProgrammingError("Unhandled case in switch statement: " + unhandledValue); - } - - /// - /// Asserts that a condition is true. If the condition is false then throws a ProgrammingError. - /// This must strictly be used to report programming errors. It should not be in any way possible to see one of these errors unless - /// you make an incorrect change to the code, for example having an unhandled case in a switch statement. - /// - /// A condition to assert - /// A description of the error - /// if the condition is false - public static void Assert(bool condition, string description) - { - if (!condition) - { - throw ProgrammingError(description); - } - } - - /// - /// Reports that a fatal error has happened. This is an error that completely prevents the test from continuing, - /// for example a setup failure. Ordinary programming errors should not be handled by this method. - /// - /// A description of the error - /// An exception that the caller should throw. - public static Exception FatalError(string description) - { - Console.WriteLine("Fatal test error: {0}", description); - Debugger.Break(); // Give the user a chance to debug - Environment.FailFast("Fatal error. Exit."); - return new Exception(); // Caller should throw this to indicate to the compiler that any code after the call is unreachable - } - - #region Exception types - - // These exception types are provided so that they can be easily found in logs, i.e. just do a text search in the console - // output log for "ProductErrorException" - - private class ProductErrorException : Exception - { - public ProductErrorException() - : base() - { - } - - public ProductErrorException(string message) - : base(message) - { - } - - public ProductErrorException(string message, Exception innerException) - : base(message, innerException) - { - } - } - - private class ProgrammingErrorException : Exception - { - public ProgrammingErrorException() - : base() - { - } - - public ProgrammingErrorException(string message) - : base(message) - { - } - - public ProgrammingErrorException(string message, Exception innerException) - : base(message, innerException) - { - } - } - - private class TestErrorException : Exception - { - public TestErrorException() - : base() - { - } - - public TestErrorException(string message) - : base(message) - { - } - - public TestErrorException(string message, Exception innerException) - : base(message, innerException) - { - } - } - #endregion - } -} diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/DataStressFactory.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/DataStressFactory.cs deleted file mode 100644 index 7adc112db..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/DataStressFactory.cs +++ /dev/null @@ -1,952 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading; -using System.Data; -using System.Data.Common; -using System.Diagnostics; - -namespace Stress.Data -{ - /// - /// Base class to generate utility objects required for stress tests to run. For example: connection strings, command texts, - /// data tables and views, and other information - /// - public abstract class DataStressFactory : IDisposable - { - // This is the maximum number of rows, stress will operate on - public const int Depth = 100; - - // A string value to be used for scalar data retrieval while constructing - // a select statement that retrieves multiple result sets. - public static readonly string LargeStringParam = new string('p', 2000); - - // A temp table that when create puts the server session into a non-recoverable state until dropped. - private static readonly string s_tempTableName = string.Format("#stress_{0}", Guid.NewGuid().ToString("N")); - - // The languages used for "SET LANGUAGE [language]" statements that modify the server session state. Let's - // keep error message readable so we're only using english languages. - private static string[] s_languages = new string[] - { - "English", - "British English", - }; - - public DbProviderFactory DbFactory { get; private set; } - - protected DataStressFactory(DbProviderFactory factory) - { - DataStressErrors.Assert(factory != null, "Argument to DataStressFactory constructor is null"); - this.DbFactory = factory; - } - - - public void Dispose() - { - GC.SuppressFinalize(this); - } - - public abstract string GetParameterName(string pName); - - - public abstract bool PrimaryKeyValueIsRequired - { - get; - } - - [Flags] - public enum SelectStatementOptions - { - UseNOLOCK = 0x1, - - // keep last - Default = 0 - } - - #region PoolingStressMode - - public enum PoolingStressMode - { - RandomizeConnectionStrings, // Use many different connection strings with the same identity, which will result in many DbConnectionPoolGroups each containing one DbConnectionPool - } - - protected PoolingStressMode CurrentPoolingStressMode - { - get; - private set; - } - - #endregion - - - /// - /// Creates a new connection and initializes it with random connection string generated from the factory's source - /// Note: if rnd is null, create a connection with minimal string required to connect to the target database - /// - /// Randomizes Connection Pool enablement, the application Name to randomize connection pool - /// - /// - public DataStressConnection CreateConnection(Random rnd = null, ConnectionStringOptions options = ConnectionStringOptions.Default) - { - // Determine connection options (connection string, identity, etc) - string connectionString = CreateBaseConnectionString(rnd, options); - bool clearPoolBeforeClose = false; - - if (rnd != null) - { - // Connection string and/or identity are randomized - - // We implement this using the Application Name field in the connection string since this field - // should not affect behaviour other than connection pooling, since all connections in a pool - // must have the exact same connection string (including Application Name) - - if (rnd.NextBool(.1)) - { - // Disable pooling - connectionString = connectionString + ";Pooling=false;"; - } - else if (rnd.NextBool(0.001)) - { - // Use a unique Application Name to get a new connection from a new pool. We do this in order to - // stress the code that creates/deletes pools. - connectionString = string.Format("{0}; Pooling=true; Application Name=\"{1}\";", connectionString, GetRandomApplicationName()); - - // Tell DataStressConnection to call SqlConnection.ClearPool when closing the connection. This ensures - // we do not keep a large number of connections in the pool that we will never use again. - clearPoolBeforeClose = true; - } - else - { - switch (CurrentPoolingStressMode) - { - case PoolingStressMode.RandomizeConnectionStrings: - // Use one of the pre-generated Application Names in order to get a pooled connection with a randomized connection string - connectionString = string.Format("{0}; Pooling=true; Application Name=\"{1}\";", connectionString, _applicationNames[rnd.Next(_applicationNames.Count)]); - break; - default: - throw DataStressErrors.UnhandledCaseError(CurrentPoolingStressMode); - } - } - } - - // All options have been determined, now create - DbConnection con = DbFactory.CreateConnection(); - con.ConnectionString = connectionString; - return new DataStressConnection(con, clearPoolBeforeClose); - } - - [Flags] - public enum ConnectionStringOptions - { - Default = 0, - - // by default, MARS is disabled - EnableMars = 0x2, - - // by default, MultiSubnetFailover is enabled - DisableMultiSubnetFailover = 0x8 - } - - /// - /// Creates a new connection string. - /// Note: if rnd is null, create minimal connection string required to connect to the target database (used during setup) - /// Otherwise, string is randomized to enable multiple pools. - /// - public abstract string CreateBaseConnectionString(Random rnd, ConnectionStringOptions options); - - protected virtual int GetNumDifferentApplicationNames() - { - return DataStressSettings.Instance.NumberOfConnectionPools; - } - - private string GetRandomApplicationName() - { - return Guid.NewGuid().ToString(); - } - - - /// - /// Returns index of a random table - /// This will be used to narrow down memory leaks - /// related to specific tables. - /// - public TableMetadata GetRandomTable(Random rnd) - { - return TableMetadataList[rnd.Next(TableMetadataList.Count)]; - } - - /// - /// Returns a random command object - /// - public DbCommand GetCommand(Random rnd, TableMetadata table, DataStressConnection conn, bool query, bool isXml = false) - { - if (query) - { - return GetSelectCommand(rnd, table, conn, isXml); - } - else - { - // make sure arguments are correct - DataStressErrors.Assert(!isXml, "wrong usage of GetCommand: cannot create command with FOR XML that is not query"); - - int select = rnd.Next(4); - switch (select) - { - case 0: - return GetUpdateCommand(rnd, table, conn); - case 1: - return GetInsertCommand(rnd, table, conn); - case 2: - return GetDeleteCommand(rnd, table, conn); - default: - return GetSelectCommand(rnd, table, conn); - } - } - } - - private DbCommand CreateCommand(Random rnd, DataStressConnection conn) - { - DbCommand cmd; - if (conn == null) - { - cmd = DbFactory.CreateCommand(); - } - else - { - cmd = conn.CreateCommand(); - } - - if (rnd != null) - { - cmd.CommandTimeout = rnd.NextBool() ? 30 : 600; - } - - return cmd; - } - - /// - /// Returns a random SELECT command - /// - public DbCommand GetSelectCommand(Random rnd, TableMetadata tableMetadata, DataStressConnection conn, bool isXml = false) - { - DbCommand com = CreateCommand(rnd, conn); - StringBuilder cmdText = new StringBuilder(); - cmdText.Append(GetSelectCommandForMultipleRows(rnd, com, tableMetadata, isXml)); - - // 33% of the time, we also want to add another batch to the select command to allow for - // multiple result sets. - if ((!isXml) && (rnd.Next(0, 3) == 0)) - { - cmdText.Append(";").Append(GetSelectCommandForScalarValue(com)); - } - - if ((!isXml) && ShouldModifySession(rnd)) - { - cmdText.Append(";").Append(GetRandomSessionModificationStatement(rnd)); - } - - com.CommandText = cmdText.ToString(); - return com; - } - - /// - /// Returns a SELECT command that retrieves data from a table - /// - private string GetSelectCommandForMultipleRows(Random rnd, DbCommand com, TableMetadata inputTable, bool isXml) - { - int rowcount = rnd.Next(Depth); - - StringBuilder cmdText = new StringBuilder(); - cmdText.Append("SELECT TOP "); - cmdText.Append(rowcount); //Jonfo added this to prevent table scan of 75k row tables - cmdText.Append(" PrimaryKey"); - - List columns = inputTable.Columns; - int colindex = rnd.Next(0, columns.Count); - - for (int i = 0; i <= colindex; i++) - { - if (columns[i].ColumnName == "PrimaryKey") continue; - cmdText.Append(", "); - cmdText.Append(columns[i].ColumnName); - } - - cmdText.Append(" FROM \""); - cmdText.Append(inputTable.TableName); - cmdText.Append("\" WITH(NOLOCK) WHERE PrimaryKey "); - - // We randomly pick an operator from '>' or '=' to allow for randomization - // of possible rows returned by this query. This approach *may* help - // in reducing the likelihood of multiple threads accessing same rows. - // If multiple threads access same rows, there may be locking issues - // which may be avoided because of this randomization. - string op = rnd.NextBool() ? ">" : "="; - cmdText.Append(op).Append(" "); - - string pName = GetParameterName("P0"); - cmdText.Append(pName); - - DbParameter param = DbFactory.CreateParameter(); - param.ParameterName = pName; - param.Value = GetRandomPK(rnd, inputTable); - param.DbType = DbType.Int32; - com.Parameters.Add(param); - - return cmdText.ToString(); - } - - /// - /// Returns a SELECT command that returns a single string parameter value. - /// - private string GetSelectCommandForScalarValue(DbCommand com) - { - string pName = GetParameterName("P1"); - StringBuilder cmdText = new StringBuilder(); - - cmdText.Append("SELECT ").Append(pName); - - DbParameter param = DbFactory.CreateParameter(); - param.ParameterName = pName; - param.Value = LargeStringParam; - param.Size = LargeStringParam.Length; - param.DbType = DbType.String; - com.Parameters.Add(param); - - return cmdText.ToString(); - } - - /// - /// Returns a random existing Primary Key value - /// - private int GetRandomPK(Random rnd, TableMetadata table) - { - using (DataStressConnection conn = CreateConnection()) - { - conn.Open(); - - // This technique to get a random row comes from http://www.4guysfromrolla.com/webtech/042606-1.shtml - // When you set rowcount and then select into a scalar value, then the query is optimised so that - // just the last value is selected. So if n = ROWCOUNT then the query returns the n'th row. - - int rowNumber = rnd.Next(Depth); - - DbCommand com = conn.CreateCommand(); - string cmdText = string.Format( - @"SET ROWCOUNT {0}; - DECLARE @PK INT; - SELECT @PK = PrimaryKey FROM {1} WITH(NOLOCK) - SELECT @PK", rowNumber, table.TableName); - - com.CommandText = cmdText; - - object result = com.ExecuteScalarSyncOrAsync(CancellationToken.None, rnd).Result; - if (result == DBNull.Value) - { - throw DataStressErrors.TestError(string.Format("Table {0} returned DBNull for primary key", table.TableName)); - } - else - { - int primaryKey = (int)result; - return primaryKey; - } - } - } - - private DbParameter CreateRandomParameter(Random rnd, string prefix, TableColumn column) - { - DbParameter param = DbFactory.CreateParameter(); - - param.ParameterName = GetParameterName(prefix); - - param.Value = GetRandomData(rnd, column); - - return param; - } - - /// - /// Returns a random UPDATE command - /// - public DbCommand GetUpdateCommand(Random rnd, TableMetadata table, DataStressConnection conn) - { - DbCommand com = CreateCommand(rnd, conn); - - StringBuilder cmdText = new StringBuilder(); - cmdText.Append("UPDATE \""); - cmdText.Append(table.TableName); - cmdText.Append("\" SET "); - - List columns = table.Columns; - int numColumns = rnd.Next(2, columns.Count); - bool mostlyNull = rnd.NextBool(0.1); // 10% of rows have 90% chance of each column being null, in order to test nbcrow - - for (int i = 0; i < numColumns; i++) - { - if (columns[i].ColumnName == "PrimaryKey") continue; - if (columns[i].ColumnName.ToUpper() == "TIMESTAMP_FLD") continue; - - if (i > 1) cmdText.Append(", "); - cmdText.Append(columns[i].ColumnName); - cmdText.Append(" = "); - - if (mostlyNull && rnd.NextBool(0.9)) - { - cmdText.Append("NULL"); - } - else - { - DbParameter param = CreateRandomParameter(rnd, string.Format("P{0}", (i + 1)), columns[i]); - cmdText.Append(param.ParameterName); - com.Parameters.Add(param); - } - } - - cmdText.Append(" WHERE PrimaryKey = "); - string pName = GetParameterName("P0"); - cmdText.Append(pName); - DbParameter keyParam = DbFactory.CreateParameter(); - keyParam.ParameterName = pName; - keyParam.Value = GetRandomPK(rnd, table); - com.Parameters.Add(keyParam); - - if (ShouldModifySession(rnd)) - { - cmdText.Append(";").Append(GetRandomSessionModificationStatement(rnd)); - } - - com.CommandText = cmdText.ToString(); ; - return com; - } - - /// - /// Returns a random INSERT command - /// - public DbCommand GetInsertCommand(Random rnd, TableMetadata table, DataStressConnection conn) - { - DbCommand com = CreateCommand(rnd, conn); - - StringBuilder cmdText = new StringBuilder(); - cmdText.Append("INSERT INTO \""); - cmdText.Append(table.TableName); - cmdText.Append("\" ("); - - StringBuilder valuesText = new StringBuilder(); - valuesText.Append(") VALUES ("); - - List columns = table.Columns; - int numColumns = rnd.Next(2, columns.Count); - bool mostlyNull = rnd.NextBool(0.1); // 10% of rows have 90% chance of each column being null, in order to test nbcrow - - for (int i = 0; i < numColumns; i++) - { - if (columns[i].ColumnName.ToUpper() == "PRIMARYKEY") continue; - - if (i > 1) - { - cmdText.Append(", "); - valuesText.Append(", "); - } - - cmdText.Append(columns[i].ColumnName); - - if (columns[i].ColumnName.ToUpper() == "TIMESTAMP_FLD") - { - valuesText.Append("DEFAULT"); // Cannot insert an explicit value in a timestamp field - } - else if (mostlyNull && rnd.NextBool(0.9)) - { - valuesText.Append("NULL"); - } - else - { - DbParameter param = CreateRandomParameter(rnd, string.Format("P{0}", i + 1), columns[i]); - - valuesText.Append(param.ParameterName); - com.Parameters.Add(param); - } - } - - // To deal databases that do not support auto-incremented columns (Oracle?) - // if (!columns["PrimaryKey"].AutoIncrement) - if (PrimaryKeyValueIsRequired) - { - DbParameter param = CreateRandomParameter(rnd, "P0", table.GetColumn("PrimaryKey")); - cmdText.Append(", PrimaryKey"); - valuesText.Append(", "); - valuesText.Append(param.ParameterName); - com.Parameters.Add(param); - } - - valuesText.Append(")"); - cmdText.Append(valuesText); - - if (ShouldModifySession(rnd)) - { - cmdText.Append(";").Append(GetRandomSessionModificationStatement(rnd)); - } - - com.CommandText = cmdText.ToString(); - return com; - } - - /// - /// Returns a random DELETE command - /// - public DbCommand GetDeleteCommand(Random rnd, TableMetadata table, DataStressConnection conn) - { - DbCommand com = CreateCommand(rnd, conn); - - StringBuilder cmdText = new StringBuilder(); - cmdText.Append("DELETE FROM \""); - - List columns = table.Columns; - string pName = GetParameterName("P0"); - cmdText.Append(table.TableName); - cmdText.Append("\" WHERE PrimaryKey = "); - cmdText.Append(pName); - - DbParameter param = DbFactory.CreateParameter(); - param.ParameterName = pName; - param.Value = GetRandomPK(rnd, table); - com.Parameters.Add(param); - - if (ShouldModifySession(rnd)) - { - cmdText.Append(";").Append(GetRandomSessionModificationStatement(rnd)); - } - - com.CommandText = cmdText.ToString(); - return com; - } - - public bool ShouldModifySession(Random rnd) - { - // 33% of the time, we want to modify the user session on the server - return rnd.NextBool(.33); - } - - /// - /// Returns a random statement that will modify the session on the server. - /// - public string GetRandomSessionModificationStatement(Random rnd) - { - string sessionStmt = null; - int select = rnd.Next(3); - switch (select) - { - case 0: - // Create a SET CONTEXT_INFO statement using a hex string of random data - StringBuilder sb = new StringBuilder("0x"); - int count = rnd.Next(1, 129); - for (int i = 0; i < count; i++) - { - sb.AppendFormat("{0:x2}", (byte)rnd.Next(0, (int)(byte.MaxValue + 1))); - } - string contextInfoData = sb.ToString(); - sessionStmt = string.Format("SET CONTEXT_INFO {0}", contextInfoData); - break; - - case 1: - // Create or drop the temp table - sessionStmt = string.Format("IF OBJECT_ID('tempdb..{0}') IS NULL CREATE TABLE {0}(id INT) ELSE DROP TABLE {0}", s_tempTableName); - break; - - default: - // Create a SET LANGUAGE statement - sessionStmt = string.Format("SET LANGUAGE N'{0}'", s_languages[rnd.Next(s_languages.Length)]); - break; - } - return sessionStmt; - } - - /// - /// Returns random data - /// - public object GetRandomData(Random rnd, TableColumn column) - { - int length = column.MaxLength; - int maxTargetLength = (length > 255 || length == -1) ? 255 : length; - - DbType dbType = GetDbType(column); - return GetRandomData(rnd, dbType, maxTargetLength); - } - - private DbType GetDbType(TableColumn column) - { - switch (column.ColumnName) - { - case "bit_FLD": return DbType.Boolean; - case "tinyint_FLD": return DbType.Byte; - case "smallint_FLD": return DbType.Int16; - case "int_FLD": return DbType.Int32; - case "PrimaryKey": return DbType.Int32; - case "bigint_FLD": return DbType.Int64; - case "real_FLD": return DbType.Single; - case "float_FLD": return DbType.Double; - case "smallmoney_FLD": return DbType.Decimal; - case "money_FLD": return DbType.Decimal; - case "decimal_FLD": return DbType.Decimal; - case "numeric_FLD": return DbType.Decimal; - case "datetime_FLD": return DbType.DateTime; - case "smalldatetime_FLD": return DbType.DateTime; - case "datetime2_FLD": return DbType.DateTime2; - case "timestamp_FLD": return DbType.Binary; - case "date_FLD": return DbType.Date; - case "time_FLD": return DbType.Time; - case "datetimeoffset_FLD": return DbType.DateTimeOffset; - case "uniqueidentifier_FLD": return DbType.Guid; - case "sql_variant_FLD": return DbType.Object; - case "image_FLD": return DbType.Binary; - case "varbinary_FLD": return DbType.Binary; - case "binary_FLD": return DbType.Binary; - case "char_FLD": return DbType.String; - case "varchar_FLD": return DbType.String; - case "text_FLD": return DbType.String; - case "ntext_FLD": return DbType.String; - case "nvarchar_FLD": return DbType.String; - case "nchar_FLD": return DbType.String; - case "nvarcharmax_FLD": return DbType.String; - case "varbinarymax_FLD": return DbType.Binary; - case "varcharmax_FLD": return DbType.String; - case "xml_FLD": return DbType.Xml; - default: throw DataStressErrors.UnhandledCaseError(column.ColumnName); - } - } - - protected virtual object GetRandomData(Random rnd, DbType dbType, int maxLength) - { - byte[] buffer; - switch (dbType) - { - case DbType.Boolean: - return (rnd.Next(2) == 0 ? false : true); - case DbType.Byte: - return rnd.Next(byte.MinValue, byte.MaxValue + 1); - case DbType.Int16: - return rnd.Next(short.MinValue, short.MaxValue + 1); - case DbType.Int32: - return (rnd.Next(2) == 0 ? int.MaxValue / rnd.Next(1, 3) : int.MinValue / rnd.Next(1, 3)); - case DbType.Int64: - return (rnd.Next(2) == 0 ? long.MaxValue / rnd.Next(1, 3) : long.MinValue / rnd.Next(1, 3)); - case DbType.Single: - return rnd.NextDouble() * (rnd.Next(2) == 0 ? float.MaxValue : float.MinValue); - case DbType.Double: - return rnd.NextDouble() * (rnd.Next(2) == 0 ? double.MaxValue : double.MinValue); - case DbType.Decimal: - return rnd.Next(short.MinValue, short.MaxValue + 1); - case DbType.DateTime: - case DbType.DateTime2: - return DateTime.Now; - case DbType.Date: - return DateTime.Now.Date; - case DbType.Time: - return DateTime.Now.TimeOfDay.ToString("c"); - case DbType.DateTimeOffset: - return DateTimeOffset.Now; - case DbType.Guid: - buffer = new byte[16]; - rnd.NextBytes(buffer); - return (new Guid(buffer)); - case DbType.Object: - case DbType.Binary: - rnd.NextBytes(buffer = new byte[rnd.Next(1, maxLength)]); - return buffer; - case DbType.String: - case DbType.Xml: - string openTag = ""; - string closeTag = ""; - int tagLength = openTag.Length + closeTag.Length; - - if (tagLength > maxLength) - { - // Case (1): tagLength > maxTargetLength - return ""; - } - else - { - StringBuilder builder = new StringBuilder(maxLength); - - builder.Append(openTag); - - // The data is just a repeat of one character because to the managed provider - // it is only really the length that matters, not the content of the data - char characterToUse = (char)rnd.Next((int)'@', (int)'~'); // Choosing random characters in this range to avoid special - // xml chars like '<' or '&' - int numRepeats = rnd.Next(0, maxLength - tagLength); // Case (2): tagLength == maxTargetLength - // Case (3): tagLength < maxTargetLength <-- most common - builder.Append(characterToUse, numRepeats); - - builder.Append(closeTag); - - DataStressErrors.Assert(builder.Length <= maxLength, "Incorrect length of randomly generated string"); - - return builder.ToString(); - } - default: - throw DataStressErrors.UnhandledCaseError(dbType); - } - } - - #region Table information to be used by stress - - // method used to create stress tables in the database - protected void BuildUserTables(List TableMetadataList) - { - string CreateTable1 = - "CREATE TABLE stress_test_table_1 (PrimaryKey int identity(1,1) primary key, int_FLD int, smallint_FLD smallint, real_FLD real, float_FLD float, decimal_FLD decimal(28,4), " + - "smallmoney_FLD smallmoney, bit_FLD bit, tinyint_FLD tinyint, uniqueidentifier_FLD uniqueidentifier, varbinary_FLD varbinary(756), binary_FLD binary(756), " + - "image_FLD image, varbinarymax_FLD varbinary(max), timestamp_FLD timestamp, char_FLD char(756), text_FLD text, varcharmax_FLD varchar(max), " + - "varchar_FLD varchar(756), nchar_FLD nchar(756), ntext_FLD ntext, nvarcharmax_FLD nvarchar(max), nvarchar_FLD nvarchar(756), datetime_FLD datetime, " + - "smalldatetime_FLD smalldatetime);" + - "CREATE UNIQUE INDEX stress_test_table_1 on stress_test_table_1 ( PrimaryKey );" + - "insert into stress_test_table_1(int_FLD, smallint_FLD, real_FLD, float_FLD, decimal_FLD, " + - "smallmoney_FLD, bit_FLD, tinyint_FLD, uniqueidentifier_FLD, varbinary_FLD, binary_FLD, " + - "image_FLD, varbinarymax_FLD, char_FLD, text_FLD, varcharmax_FLD, " + - "varchar_FLD, nchar_FLD, ntext_FLD, nvarcharmax_FLD, nvarchar_FLD, datetime_FLD, " + - "smalldatetime_FLD) values ( 0, 0, 0, 0, 0, $0, 0, 0, '00000000-0000-0000-0000-000000000000', " + - "0x00, 0x00, 0x00, 0x00, '0', '0', '0', '0', N'0', N'0', N'0', N'0', '01/11/2000 12:54:01', '01/11/2000 12:54:00' );" - ; - - string CreateTable2 = - "CREATE TABLE stress_test_table_2 (PrimaryKey int identity(1,1) primary key, bigint_FLD bigint, money_FLD money, numeric_FLD numeric, " + - "time_FLD time, date_FLD date, datetimeoffset_FLD datetimeoffset, sql_variant_FLD sql_variant, " + - "datetime2_FLD datetime2, xml_FLD xml);" + - "CREATE UNIQUE INDEX stress_test_table_2 on stress_test_table_2 ( PrimaryKey );" + - "insert into stress_test_table_2(bigint_FLD, money_FLD, numeric_FLD, " + - "time_FLD, date_FLD, datetimeoffset_FLD, sql_variant_FLD, " + - "datetime2_FLD, xml_FLD) values ( 0, $0, 0, '01/11/2015 12:54:01', '01/11/2015 12:54:01', '01/11/2000 12:54:01 -08:00', 0, '01/11/2000 12:54:01', '0' );" - ; - - if (TableMetadataList == null) - { - TableMetadataList = new List(); - } - - List tableColumns1 = new List(); - tableColumns1.Add(new TableColumn("PrimaryKey", -1)); - tableColumns1.Add(new TableColumn("int_FLD", -1)); - tableColumns1.Add(new TableColumn("smallint_FLD", -1)); - tableColumns1.Add(new TableColumn("real_FLD", -1)); - tableColumns1.Add(new TableColumn("float_FLD", -1)); - tableColumns1.Add(new TableColumn("decimal_FLD", -1)); - tableColumns1.Add(new TableColumn("smallmoney_FLD", -1)); - tableColumns1.Add(new TableColumn("bit_FLD", -1)); - tableColumns1.Add(new TableColumn("tinyint_FLD", -1)); - tableColumns1.Add(new TableColumn("uniqueidentifier_FLD", -1)); - tableColumns1.Add(new TableColumn("varbinary_FLD", 756)); - tableColumns1.Add(new TableColumn("binary_FLD", 756)); - tableColumns1.Add(new TableColumn("image_FLD", -1)); - tableColumns1.Add(new TableColumn("varbinarymax_FLD", -1)); - tableColumns1.Add(new TableColumn("timestamp_FLD", -1)); - tableColumns1.Add(new TableColumn("char_FLD", -1)); - tableColumns1.Add(new TableColumn("text_FLD", -1)); - tableColumns1.Add(new TableColumn("varcharmax_FLD", -1)); - tableColumns1.Add(new TableColumn("varchar_FLD", 756)); - tableColumns1.Add(new TableColumn("nchar_FLD", 756)); - tableColumns1.Add(new TableColumn("ntext_FLD", -1)); - tableColumns1.Add(new TableColumn("nvarcharmax_FLD", -1)); - tableColumns1.Add(new TableColumn("nvarchar_FLD", 756)); - tableColumns1.Add(new TableColumn("datetime_FLD", -1)); - tableColumns1.Add(new TableColumn("smalldatetime_FLD", -1)); - TableMetadata tableMeta1 = new TableMetadata("stress_test_table_1", tableColumns1); - TableMetadataList.Add(tableMeta1); - - List tableColumns2 = new List(); - tableColumns2.Add(new TableColumn("PrimaryKey", -1)); - tableColumns2.Add(new TableColumn("bigint_FLD", -1)); - tableColumns2.Add(new TableColumn("money_FLD", -1)); - tableColumns2.Add(new TableColumn("numeric_FLD", -1)); - tableColumns2.Add(new TableColumn("time_FLD", -1)); - tableColumns2.Add(new TableColumn("date_FLD", -1)); - tableColumns2.Add(new TableColumn("datetimeoffset_FLD", -1)); - tableColumns2.Add(new TableColumn("sql_variant_FLD", -1)); - tableColumns2.Add(new TableColumn("datetime2_FLD", -1)); - tableColumns2.Add(new TableColumn("xml_FLD", -1)); - TableMetadata tableMeta2 = new TableMetadata("stress_test_table_2", tableColumns2); - TableMetadataList.Add(tableMeta2); - - using (DataStressConnection conn = CreateConnection(null)) - { - conn.Open(); - using (DbCommand com = conn.CreateCommand()) - { - try - { - com.CommandText = CreateTable1; - com.ExecuteNonQuery(); - } - catch (DbException de) - { - // This can be improved by doing a Drop Table if exists. - if (de.Message.Contains("There is already an object named \'" + tableMeta1.TableName + "\' in the database.")) - { - CleanupUserTables(tableMeta1); - com.ExecuteNonQuery(); - } - else - { - throw de; - } - } - - try - { - com.CommandText = CreateTable2; - com.ExecuteNonQuery(); - } - catch (DbException de) - { - // This can be improved by doing a Drop Table if exists in the query itself. - if (de.Message.Contains("There is already an object named \'" + tableMeta2.TableName + "\' in the database.")) - { - CleanupUserTables(tableMeta2); - com.ExecuteNonQuery(); - } - else - { - throw de; - } - } - - for (int i = 0; i < Depth; i++) - { - TrackedRandom randomInstance = new TrackedRandom(); - randomInstance.Mark(); - - DbCommand comInsert1 = GetInsertCommand(randomInstance, tableMeta1, conn); - comInsert1.ExecuteNonQuery(); - - DbCommand comInsert2 = GetInsertCommand(randomInstance, tableMeta2, conn); - comInsert2.ExecuteNonQuery(); - } - } - } - } - - // method used to delete stress tables in the database - protected void CleanupUserTables(TableMetadata tableMetadata) - { - string DropTable = "drop TABLE " + tableMetadata.TableName + ";"; - - using (DataStressConnection conn = CreateConnection(null)) - { - conn.Open(); - using (DbCommand com = conn.CreateCommand()) - { - try - { - com.CommandText = DropTable; - com.ExecuteNonQuery(); - } - catch (Exception) { } - } - } - } - - public List TableMetadataList - { - get; - private set; - } - - public class TableMetadata - { - private string _tableName; - private List _columns = new List(); - - public TableMetadata(string tbleName, List cols) - { - _tableName = tbleName; - _columns = cols; - } - - public string TableName - { - get { return _tableName; } - } - - public List Columns - { - get { return _columns; } - } - - public TableColumn GetColumn(string colName) - { - foreach (TableColumn column in _columns) - { - if (column.ColumnName.Equals(colName)) - { - return column; - } - } - return null; - } - } - - public class TableColumn - { - private string _columnName; - private int _maxLength; - - public TableColumn(string colName, int maxLen) - { - _columnName = colName; - _maxLength = maxLen; - } - - public string ColumnName - { - get { return _columnName; } - } - - public int MaxLength - { - get { return _maxLength; } - } - } - - private List _applicationNames; - - /// - /// Gets schema of all tables from the back-end database and fills - /// the m_Tables DataSet with this schema. This DataSet is used to - /// generate random command text for tests. - /// - public void InitializeSharedData(DataSource source) - { - Trace.WriteLine("Creating shared objects", this.ToString()); - - // Initialize m_sharedDataSet - TableMetadataList = new List(); - BuildUserTables(TableMetadataList); - - // Initialize m_applicationNames - _applicationNames = new List(); - for (int i = 0; i < GetNumDifferentApplicationNames(); i++) - { - _applicationNames.Add(GetRandomApplicationName()); - } - - // Initialize CurrentPoolingStressMode - CurrentPoolingStressMode = PoolingStressMode.RandomizeConnectionStrings; - - - Trace.WriteLine("Finished creating shared objects", this.ToString()); - } - - public void CleanupSharedData() - { - foreach (TableMetadata meta in TableMetadataList) - { - CleanupUserTables(meta); - } - TableMetadataList = null; - } - - #endregion - } -} \ No newline at end of file diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/DataStressReader.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/DataStressReader.cs deleted file mode 100644 index cb9074165..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/DataStressReader.cs +++ /dev/null @@ -1,350 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Xml; -using System.Data; -using System.Data.Common; -using System.Data.SqlClient; -using System.Data.SqlTypes; -using System.IO; -using System.Threading; -using System.Threading.Tasks; - -namespace Stress.Data -{ - public class DataStressReader : IDisposable - { - #region Type method mapping - - private static Dictionary>> s_sqlTypes; - private static Dictionary>> s_clrTypes; - - static DataStressReader() - { - InitSqlTypes(); - InitClrTypes(); - } - - private static void InitSqlTypes() - { - s_sqlTypes = new Dictionary>>(); - - s_sqlTypes.Add(typeof(SqlBinary), (reader, ordinal, token, rnd) => reader.GetFieldValueSyncOrAsync(ordinal, token, rnd)); - s_sqlTypes.Add(typeof(SqlBoolean), (reader, ordinal, token, rnd) => reader.GetFieldValueSyncOrAsync(ordinal, token, rnd)); - s_sqlTypes.Add(typeof(SqlByte), (reader, ordinal, token, rnd) => reader.GetFieldValueSyncOrAsync(ordinal, token, rnd)); - s_sqlTypes.Add(typeof(SqlBytes), (reader, ordinal, token, rnd) => reader.GetFieldValueSyncOrAsync(ordinal, token, rnd)); - s_sqlTypes.Add(typeof(SqlChars), (reader, ordinal, token, rnd) => reader.GetFieldValueSyncOrAsync(ordinal, token, rnd)); - s_sqlTypes.Add(typeof(SqlDateTime), (reader, ordinal, token, rnd) => reader.GetFieldValueSyncOrAsync(ordinal, token, rnd)); - s_sqlTypes.Add(typeof(SqlDecimal), (reader, ordinal, token, rnd) => reader.GetFieldValueSyncOrAsync(ordinal, token, rnd)); - s_sqlTypes.Add(typeof(SqlDouble), (reader, ordinal, token, rnd) => reader.GetFieldValueSyncOrAsync(ordinal, token, rnd)); - s_sqlTypes.Add(typeof(SqlGuid), (reader, ordinal, token, rnd) => reader.GetFieldValueSyncOrAsync(ordinal, token, rnd)); - s_sqlTypes.Add(typeof(SqlInt16), (reader, ordinal, token, rnd) => reader.GetFieldValueSyncOrAsync(ordinal, token, rnd)); - s_sqlTypes.Add(typeof(SqlInt32), (reader, ordinal, token, rnd) => reader.GetFieldValueSyncOrAsync(ordinal, token, rnd)); - s_sqlTypes.Add(typeof(SqlInt64), (reader, ordinal, token, rnd) => reader.GetFieldValueSyncOrAsync(ordinal, token, rnd)); - s_sqlTypes.Add(typeof(SqlMoney), (reader, ordinal, token, rnd) => reader.GetFieldValueSyncOrAsync(ordinal, token, rnd)); - s_sqlTypes.Add(typeof(SqlSingle), (reader, ordinal, token, rnd) => reader.GetFieldValueSyncOrAsync(ordinal, token, rnd)); - s_sqlTypes.Add(typeof(SqlString), (reader, ordinal, token, rnd) => reader.GetFieldValueSyncOrAsync(ordinal, token, rnd)); - s_sqlTypes.Add(typeof(SqlXml), (reader, ordinal, token, rnd) => reader.GetFieldValueSyncOrAsync(ordinal, token, rnd)); - } - - private static void InitClrTypes() - { - s_clrTypes = new Dictionary>>(); - - s_clrTypes.Add(typeof(bool), (reader, ordinal, token, rnd) => reader.GetFieldValueSyncOrAsync(ordinal, token, rnd)); - s_clrTypes.Add(typeof(byte), (reader, ordinal, token, rnd) => reader.GetFieldValueSyncOrAsync(ordinal, token, rnd)); - s_clrTypes.Add(typeof(short), (reader, ordinal, token, rnd) => reader.GetFieldValueSyncOrAsync(ordinal, token, rnd)); - s_clrTypes.Add(typeof(int), (reader, ordinal, token, rnd) => reader.GetFieldValueSyncOrAsync(ordinal, token, rnd)); - s_clrTypes.Add(typeof(long), (reader, ordinal, token, rnd) => reader.GetFieldValueSyncOrAsync(ordinal, token, rnd)); - s_clrTypes.Add(typeof(float), (reader, ordinal, token, rnd) => reader.GetFieldValueSyncOrAsync(ordinal, token, rnd)); - s_clrTypes.Add(typeof(double), (reader, ordinal, token, rnd) => reader.GetFieldValueSyncOrAsync(ordinal, token, rnd)); - s_clrTypes.Add(typeof(string), (reader, ordinal, token, rnd) => reader.GetFieldValueSyncOrAsync(ordinal, token, rnd)); - s_clrTypes.Add(typeof(char), (reader, ordinal, token, rnd) => reader.GetFieldValueSyncOrAsync(ordinal, token, rnd)); - s_clrTypes.Add(typeof(decimal), (reader, ordinal, token, rnd) => reader.GetFieldValueSyncOrAsync(ordinal, token, rnd)); - s_clrTypes.Add(typeof(Guid), (reader, ordinal, token, rnd) => reader.GetFieldValueSyncOrAsync(ordinal, token, rnd)); - s_clrTypes.Add(typeof(DateTime), (reader, ordinal, token, rnd) => reader.GetFieldValueSyncOrAsync(ordinal, token, rnd)); - s_clrTypes.Add(typeof(TimeSpan), (reader, ordinal, token, rnd) => reader.GetFieldValueSyncOrAsync(ordinal, token, rnd)); - s_clrTypes.Add(typeof(DateTimeOffset), (reader, ordinal, token, rnd) => reader.GetFieldValueSyncOrAsync(ordinal, token, rnd)); - } - - #endregion - - private readonly DbDataReader _reader; - private SemaphoreSlim _closeAsyncSemaphore; - - public DataStressReader(DbDataReader internalReader) - { - _reader = internalReader; - } - - public void Close() - { - _reader.Dispose(); - } - - public void Dispose() - { - _reader.Dispose(); - if (_closeAsyncSemaphore != null) _closeAsyncSemaphore.Dispose(); - } - - public Task CloseAsync() - { - _closeAsyncSemaphore = new SemaphoreSlim(1); - return Task.Run(() => ExecuteWithCloseAsyncSemaphore(Close)); - } - - /// - /// Executes the action while holding the CloseAsync Semaphore. - /// This MUST be used for reader.Close() and all methods that are not safe to call at the same time as reader.Close(), i.e. all sync methods. - /// Otherwise we will see AV's. - /// - public void ExecuteWithCloseAsyncSemaphore(Action a) - { - try - { - if (_closeAsyncSemaphore != null) _closeAsyncSemaphore.Wait(); - a(); - } - finally - { - if (_closeAsyncSemaphore != null) _closeAsyncSemaphore.Release(); - } - } - - /// - /// Executes the action while holding the CloseAsync Semaphore. - /// This MUST be used for reader.Close() and all methods that are not safe to call at the same time as reader.Close(), i.e. all sync methods. - /// Otherwise we will see AV's. - /// - public T ExecuteWithCloseAsyncSemaphore(Func f) - { - try - { - if (_closeAsyncSemaphore != null) _closeAsyncSemaphore.Wait(); - return f(); - } - finally - { - if (_closeAsyncSemaphore != null) _closeAsyncSemaphore.Release(); - } - } - - #region SyncOrAsync methods - - public Task ReadSyncOrAsync(CancellationToken token, Random rnd) - { - return AsyncUtils.SyncOrAsyncMethod( - () => ExecuteWithCloseAsyncSemaphore(() => _reader.Read()), - () => ExecuteWithCloseAsyncSemaphore(() => _reader.ReadAsync(token)), - AsyncUtils.ChooseSyncAsyncMode(rnd) - ); - } - - public Task NextResultSyncOrAsync(CancellationToken token, Random rnd) - { - return AsyncUtils.SyncOrAsyncMethod( - () => ExecuteWithCloseAsyncSemaphore(() => _reader.NextResult()), - () => ExecuteWithCloseAsyncSemaphore(() => _reader.NextResultAsync(token)), - AsyncUtils.ChooseSyncAsyncMode(rnd) - ); - } - - public Task IsDBNullSyncOrAsync(int ordinal, CancellationToken token, Random rnd) - { - return AsyncUtils.SyncOrAsyncMethod( - () => ExecuteWithCloseAsyncSemaphore(() => _reader.IsDBNull(ordinal)), - () => ExecuteWithCloseAsyncSemaphore(() => _reader.IsDBNullAsync(ordinal, token)), - AsyncUtils.ChooseSyncAsyncMode(rnd) - ); - } - - public Task GetValueSyncOrAsync(int ordinal, CancellationToken token, Random rnd) - { - if (rnd.NextBool(0.3)) - { - // Use sync-only GetValue - return Task.FromResult(GetValue(ordinal)); - } - else - { - // Use GetFieldValue or GetFieldValueAsync - Func> getFieldValueFunc = null; - - if (rnd.NextBool()) - { - // Choose provider-specific getter - Type sqlType = GetProviderSpecificFieldType(ordinal); - s_sqlTypes.TryGetValue(sqlType, out getFieldValueFunc); - } - else - { - // Choose clr type getter - Type clrType = GetFieldType(ordinal); - s_clrTypes.TryGetValue(clrType, out getFieldValueFunc); - } - - if (getFieldValueFunc != null) - { - // Execute the type-specific func, e.g. GetFieldValue or GetFieldValueAsync - return getFieldValueFunc(this, ordinal, token, rnd); - } - else - { - // Execute GetFieldValue or GetFieldValueAsync as a fallback - return GetFieldValueSyncOrAsync(ordinal, token, rnd); - } - } - } - - private Task GetFieldValueSyncOrAsync(int ordinal, CancellationToken token, Random rnd) - { - return AsyncUtils.SyncOrAsyncMethod( - () => ExecuteWithCloseAsyncSemaphore(() => _reader.GetFieldValue(ordinal)), - async () => ((object)(await ExecuteWithCloseAsyncSemaphore(() => _reader.GetFieldValueAsync(ordinal, token)))), - AsyncUtils.ChooseSyncAsyncMode(rnd) - ); - } - - #endregion - - #region Sync-only methods - - public long GetBytes(int ordinal, long dataOffset, byte[] buffer, int bufferOffset, int length) - { - return ExecuteWithCloseAsyncSemaphore(() => _reader.GetBytes(ordinal, dataOffset, buffer, bufferOffset, length)); - } - - public long GetChars(int ordinal, long dataOffset, char[] buffer, int bufferOffset, int length) - { - return ExecuteWithCloseAsyncSemaphore(() => _reader.GetChars(ordinal, dataOffset, buffer, bufferOffset, length)); - } - - public Type GetFieldType(int ordinal) - { - return ExecuteWithCloseAsyncSemaphore(() => _reader.GetFieldType(ordinal)); - } - - public string GetName(int ordinal) - { - return ExecuteWithCloseAsyncSemaphore(() => _reader.GetName(ordinal)); - } - - public Type GetProviderSpecificFieldType(int ordinal) - { - return ExecuteWithCloseAsyncSemaphore(() => _reader.GetProviderSpecificFieldType(ordinal)); - } - - - public DataStressStream GetStream(int ordinal) - { - Stream s = ExecuteWithCloseAsyncSemaphore(() => _reader.GetStream(ordinal)); - return new DataStressStream(s, this); - } - - public DataStressTextReader GetTextReader(int ordinal) - { - TextReader t = ExecuteWithCloseAsyncSemaphore(() => _reader.GetTextReader(ordinal)); - return new DataStressTextReader(t, this); - } - - public DataStressXmlReader GetXmlReader(int ordinal) - { - XmlReader x = ExecuteWithCloseAsyncSemaphore(() => ((SqlDataReader)_reader).GetXmlReader(ordinal)); - return new DataStressXmlReader(x, this); - } - - public object GetValue(int ordinal) - { - return ExecuteWithCloseAsyncSemaphore(() => _reader.GetValue(ordinal)); - } - - public int FieldCount - { - get { return ExecuteWithCloseAsyncSemaphore(() => _reader.FieldCount); } - } - - #endregion - } - - public class DataStressStream : IDisposable - { - private Stream _stream; - private DataStressReader _reader; - - public DataStressStream(Stream stream, DataStressReader reader) - { - _stream = stream; - _reader = reader; - } - - public void Dispose() - { - _stream.Dispose(); - } - - public Task ReadSyncOrAsync(byte[] buffer, int offset, int count, CancellationToken token, Random rnd) - { - return AsyncUtils.SyncOrAsyncMethod( - () => _reader.ExecuteWithCloseAsyncSemaphore(() => _stream.Read(buffer, offset, count)), - () => _reader.ExecuteWithCloseAsyncSemaphore(() => _stream.ReadAsync(buffer, offset, count)), - AsyncUtils.ChooseSyncAsyncMode(rnd) - ); - } - } - - public class DataStressTextReader : IDisposable - { - private TextReader _textReader; - private DataStressReader _reader; - - public DataStressTextReader(TextReader textReader, DataStressReader reader) - { - _textReader = textReader; - _reader = reader; - } - - public void Dispose() - { - _textReader.Dispose(); - } - - public int Peek() - { - return _reader.ExecuteWithCloseAsyncSemaphore(() => _textReader.Peek()); - } - - public Task ReadSyncOrAsync(char[] buffer, int index, int count, Random rnd) - { - return AsyncUtils.SyncOrAsyncMethod( - () => _reader.ExecuteWithCloseAsyncSemaphore(() => _textReader.Read(buffer, index, count)), - () => _reader.ExecuteWithCloseAsyncSemaphore(() => _textReader.ReadAsync(buffer, index, count)), - AsyncUtils.ChooseSyncAsyncMode(rnd)); - } - } - - public class DataStressXmlReader : IDisposable - { - private XmlReader _xmlReader; - private DataStressReader _reader; - - public DataStressXmlReader(XmlReader xmlReader, DataStressReader reader) - { - _xmlReader = xmlReader; - _reader = reader; - } - - public void Dispose() - { - _xmlReader.Dispose(); - } - - public void Read() - { - _reader.ExecuteWithCloseAsyncSemaphore(() => _xmlReader.Read()); - } - } -} diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/DataStressSettings.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/DataStressSettings.cs deleted file mode 100644 index ff77d1913..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/DataStressSettings.cs +++ /dev/null @@ -1,305 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Data.SqlClient; -using System.Diagnostics; -using System.Linq; -using System.Text; - -namespace Stress.Data -{ - /// - /// Loads dataStressSettings section from Stress.Data.Framework.dll.config (App.config in source tree) - /// - public class DataStressSettings - { - - internal static readonly string s_configFileName = "StressTest.config"; - - // use Instance to access the settings - private DataStressSettings() - { - } - - private bool Initialized { get; set; } - - private DataStressConfigurationSection _dataStressSettings = new DataStressConfigurationSection(); - - // list of sources read from the config file - private Dictionary _sources = new Dictionary(StringComparer.CurrentCultureIgnoreCase); - public ErrorHandlingAction ActionOnProductError - { - get; - private set; - } - public ErrorHandlingAction ActionOnTestError - { - get; - private set; - } - public ErrorHandlingAction ActionOnProgrammingError - { - get; - private set; - } - - public int NumberOfConnectionPools - { - get; - private set; - } - - // singleton instance, lazy evaluation - private static DataStressSettings s_instance = new DataStressSettings(); - public static DataStressSettings Instance - { - get - { - if (!s_instance.Initialized) - { - lock (s_instance) - { - if (!s_instance.Initialized) - { - s_instance.Load(); - } - } - } - return s_instance; - } - } - - #region Configuration file handlers - - private class DataStressConfigurationSection - { - private List _sources = new List(); - private ErrorHandlingPolicyElement _errorHandlingPolicy = new ErrorHandlingPolicyElement(); - private ConnectionPoolPolicyElement _connectionPoolPolicy = new ConnectionPoolPolicyElement(); - - StressConfigReader reader = new StressConfigReader(s_configFileName); - - public List Sources - { - get - { - if(_sources.Count == 0) - { - reader.Load(); - _sources = reader.Sources; - } - return _sources; - } - } - - public ErrorHandlingPolicyElement ErroHandlingPolicy - { - get - { - return _errorHandlingPolicy; - } - } - - public ConnectionPoolPolicyElement ConnectionPoolPolicy - { - get - { - return _connectionPoolPolicy; - } - } - } - - - internal class DataSourceElement - { - private string _name; - private string _type; - private bool _isDefault = false; - - public readonly Dictionary SourceProperties = new Dictionary(); - - - public DataSourceElement(string ds_name, - string ds_type, - string ds_server, - string ds_datasource, - string ds_database, - string ds_user, - string ds_password, - bool ds_isDefault = false, - bool ds_winAuth = false, - bool ds_isLocal = false, - string ds_dbFile = null, - bool disableMultiSubnetFailoverSetup = true, - bool disableNamedPipes = true) - { - _name = ds_name; - _type = ds_type; - _isDefault = ds_isDefault; - - if (ds_server != null) - { - SourceProperties.Add("server", ds_server); - } - if (ds_datasource != null) - { - SourceProperties.Add("dataSource", ds_datasource); - } - if (ds_database != null) - { - SourceProperties.Add("database", ds_database); - } - if (ds_user != null) - { - SourceProperties.Add("user", ds_user); - } - if (ds_password != null) - { - SourceProperties.Add("password", ds_password); - } - - SourceProperties.Add("supportsWindowsAuthentication", ds_winAuth.ToString()); - SourceProperties.Add("islocal", ds_isLocal.ToString()); - - SourceProperties.Add("DisableMultiSubnetFailoverSetup", disableMultiSubnetFailoverSetup.ToString()); - - SourceProperties.Add("DisableNamedPipes", disableNamedPipes.ToString()); - - - if (ds_dbFile != null) - { - SourceProperties.Add("databaseFile", ds_dbFile); - } - } - - public string Name - { - get { return _name; } - } - - public string Type - { - get { return _type; } - } - - public bool IsDefault - { - get { return _isDefault; } - } - } - - private class ErrorHandlingPolicyElement - { - private string _onProductError = "debugBreak"; - private string _onTestError = "throwException"; - private string _onProgrammingError = "debugBreak"; - - public string OnProductError - { - get - { - return _onProductError; - } - } - - public string OnTestError - { - get - { - return _onTestError; - } - } - - public string OnProgrammingError - { - get - { - return _onProgrammingError; - } - } - } - - private class ConnectionPoolPolicyElement - { - private int _numberOfPools = 10; - - public int NumberOfPools - { - get - { - return _numberOfPools; - } - } - } - - #endregion - - /// - /// loads the configuration data from the app config file (Stress.Data.Framework.dll.config) and initializes the Sources collection - /// - private void Load() - { - // Parse - foreach (DataSourceElement sourceElement in _dataStressSettings.Sources) - { - // if Parse raises exception, check that the type attribute is set to the relevant the SourceType enumeration value name - DataSourceType sourceType = (DataSourceType)Enum.Parse(typeof(DataSourceType), sourceElement.Type, true); - - DataSource newSource = DataSource.Create(sourceElement.Name, sourceType, sourceElement.IsDefault, sourceElement.SourceProperties); - _sources.Add(newSource.Name, newSource); - } - - // Parse - // if Parse raises exception, check that the action attribute is set to a valid ActionOnProductBugFound enumeration value name - this.ActionOnProductError = (ErrorHandlingAction)Enum.Parse(typeof(ErrorHandlingAction), _dataStressSettings.ErroHandlingPolicy.OnProductError, true); - this.ActionOnTestError = (ErrorHandlingAction)Enum.Parse(typeof(ErrorHandlingAction), _dataStressSettings.ErroHandlingPolicy.OnTestError, true); - this.ActionOnProgrammingError = (ErrorHandlingAction)Enum.Parse(typeof(ErrorHandlingAction), _dataStressSettings.ErroHandlingPolicy.OnProgrammingError, true); - - // Parse - this.NumberOfConnectionPools = _dataStressSettings.ConnectionPoolPolicy.NumberOfPools; - - this.Initialized = true; - } - - - /// - /// use this method to retrieve the source data by its name (represented with 'name' attribute in config file) - /// - /// case-sensitive name - public DataSource GetSourceByName(string name) - { - return _sources[name]; - } - - /// - /// Use this method to retrieve the default source associated with the type specified. - /// The type of the node is specified with 'type' attribute on the sources file - see DataSourceType enum for list of supported types. - /// If there is a source node with isDefault=true, this node is returned (first one found in config file). - /// Otherwise, first source node from type specified is returned. - /// - public DataSource GetDefaultSourceByType(DataSourceType type) - { - DataSource defaultSource = null; - foreach (DataSource source in _sources.Values) - { - if (source.Type == type) - { - if (defaultSource == null) - { - // use the first found source, if default is not set - defaultSource = source; - } - else if (source.IsDefault) - { - defaultSource = source; - break; - } - } - } - return defaultSource; - } - } -} \ No newline at end of file diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/DataTestGroup.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/DataTestGroup.cs deleted file mode 100644 index 0e98b878e..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/DataTestGroup.cs +++ /dev/null @@ -1,698 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Data; -using System.Data.Common; -using System.Data.SqlClient; -using System.Data.SqlTypes; -using System.Diagnostics; -using System.IO; -using System.Linq; -using System.Text; -using System.Threading; -using System.Threading.Tasks; -using System.Xml; - -using DPStressHarness; - -namespace Stress.Data -{ - /// - /// basic set of tests to run on each managed provider - /// - public abstract class DataTestGroup - { - // random is not thread-safe, create one per thread - use RandomInstance to access it. - // note that each thread and each test method has a different instance of this object, so it - // doesn't need to be synchronised or have [ThreadStatic], etc - private TrackedRandom _randomInstance = new TrackedRandom(); - protected Random RandomInstance - { - get - { - _randomInstance.Mark(); - return _randomInstance; - } - } - - /// - /// Test factory to use for generation of connection strings and other test objects. Factory is initialized during setup. - /// null is not returned - if setup was not called yet, exception is raised - /// This is static so that is shared across all threads (since stresstest will create a new DataTestGroup object for each thread) - /// - private static DataStressFactory s_factory; - public static DataStressFactory Factory - { - get - { - DataStressErrors.Assert(s_factory != null, "Tried to access DataTestGroup.Factory before Setup has been called"); - return s_factory; - } - } - - /// - /// This method is called to create the stress factory used to create connections, commands, etc... - /// Implementation should set the source and the scenario to valid values if inputs are null/empty. - /// - /// Scenario string specified by the user or empty to set default - /// DataSource string specified by the user or empty to use connection string as is, useful when developing new tests - protected abstract DataStressFactory CreateFactory(ref string scenario, ref DataSource source); - - /// - /// scenario to run, initialized in setup - /// null is not returned - if setup was not called yet, exception is raised - /// This is static so that is shared across all threads (since stresstest will create a new DataTestGroup object for each thread) - /// - private static string s_scenario; - protected static string Scenario - { - get - { - DataStressErrors.Assert(s_scenario != null, "Tried to access DataTestGroup.Scenario before Setup has been called"); - return s_scenario; - } - } - - /// - /// data source information used by stress, initialized in Setup - /// null is not returned - if setup was not called yet, exception is raised - /// This is static so that is shared across all threads (since stresstest will create a new DataTestGroup object for each thread) - /// - private static DataSource s_source; - protected static DataSource Source - { - get - { - DataStressErrors.Assert(s_source != null, "Tried to access DataTestGroup.Source before Setup has been called"); - return s_source; - } - } - - - /// - /// Does test setup that is shared across all threads. This method will be called only once, before - /// any [TestSetup] methods are called. - /// If you override this method you must call base.GlobalTestSetup() at the beginning. - /// - [GlobalTestSetup] - public virtual void GlobalTestSetup() - { - // Preconditions - ensure this setup is only called once - DataStressErrors.Assert(string.IsNullOrEmpty(s_scenario), "Scenario was already set"); - DataStressErrors.Assert(s_source == null, "Source was already set"); - DataStressErrors.Assert(s_factory == null, "Factory was already set"); - - // Set m_scenario - string userProvidedScenario; - TestMetrics.Overrides.TryGetValue("scenario", out userProvidedScenario); - // Empty means default scenario for the test group - s_scenario = (userProvidedScenario ?? string.Empty); - s_scenario = s_scenario.ToUpperInvariant(); - - // Set m_source - // Empty means that test group will peek the default data source from the config file based on the scenario - string userProvidedSourceName; - if (TestMetrics.Overrides.TryGetValue("source", out userProvidedSourceName)) - { - s_source = DataStressSettings.Instance.GetSourceByName(userProvidedSourceName); - } - - // Set m_factory - s_factory = CreateFactory(ref s_scenario, ref s_source); - s_factory.InitializeSharedData(s_source); - - // Postconditions - DataStressErrors.Assert(!string.IsNullOrEmpty(s_scenario), "Scenario was not set"); - DataStressErrors.Assert(s_source != null, "Source was not set"); - DataStressErrors.Assert(s_factory != null, "Factory was not set"); - } - - /// - /// Does test cleanup that is shared across all threads. This method will not be called until all - /// threads have finished executing [StressTest] methods. This method will be called only once. - /// If you override this method you must call base.GlobalTestSetup() at the beginning. - /// - [GlobalTestCleanup] - public virtual void GlobalTestCleanup() - { - s_factory.CleanupSharedData(); - s_source = null; - s_scenario = null; - s_factory.Dispose(); - s_factory = null; - } - - - protected bool OpenConnection(DataStressConnection conn) - { - try - { - conn.Open(); - return true; - } - catch (Exception e) - { - if (IsServerNotAccessibleException(e, conn.DbConnection.ConnectionString, conn.DbConnection.DataSource)) - { - // Ignore this exception. - // This exception will fire when using named pipes with MultiSubnetFailover option set to true. - // MultiSubnetFailover=true only works with TCP/IP protocol and will result in exception when using with named pipes. - return false; - } - else - { - throw e; - } - } - } - - - [GlobalExceptionHandler] - public virtual void GlobalExceptionHandler(Exception e) - { - } - - /// - /// Returns whether or not the datareader should be closed - /// - protected virtual bool ShouldCloseDataReader() - { - // Ignore commandCancelled, instead randomly close it 9/10 of the time - return RandomInstance.Next(10) != 0; - } - - - #region CommandExecute and Consume methods - - /// - /// Utility function used by command tests - /// - protected virtual void CommandExecute(Random rnd, DbCommand com, bool query) - { - AsyncUtils.WaitAndUnwrapException(CommandExecuteAsync(rnd, com, query)); - } - - protected async virtual Task CommandExecuteAsync(Random rnd, DbCommand com, bool query) - { - CancellationTokenSource cts = null; - - // Cancel 1/10 commands - Task cancelTask = null; - bool cancelCommand = rnd.NextBool(0.1); - if (cancelCommand) - { - if (rnd.NextBool()) - { - // Use DbCommand.Cancel - cancelTask = Task.Run(() => CommandCancel(com)); - } - else - { - // Use CancellationTokenSource - if (cts == null) cts = new CancellationTokenSource(); - cancelTask = Task.Run(() => cts.Cancel()); - } - } - - // Get the CancellationToken - CancellationToken token = (cts != null) ? cts.Token : CancellationToken.None; - - DataStressReader reader = null; - try - { - if (query) - { - CommandBehavior commandBehavior = CommandBehavior.Default; - if (rnd.NextBool(0.5)) commandBehavior |= CommandBehavior.SequentialAccess; - if (rnd.NextBool(0.25)) commandBehavior |= CommandBehavior.KeyInfo; - if (rnd.NextBool(0.1)) commandBehavior |= CommandBehavior.SchemaOnly; - - // Get the reader - reader = new DataStressReader(await com.ExecuteReaderSyncOrAsync(commandBehavior, token, rnd)); - - // Consume the reader's data - await ConsumeReaderAsync(reader, commandBehavior.HasFlag(CommandBehavior.SequentialAccess), token, rnd); - } - else - { - await com.ExecuteNonQuerySyncOrAsync(token, rnd); - } - } - catch (Exception e) - { - if (cancelCommand && IsCommandCancelledException(e)) - { - // Catch command canceled exception - } - else - { - throw; - } - } - finally - { - if (cancelTask != null) AsyncUtils.WaitAndUnwrapException(cancelTask); - if (reader != null && ShouldCloseDataReader()) reader.Close(); - } - } - - /// - /// Utility function to consume a reader in a random fashion - /// - protected virtual async Task ConsumeReaderAsync(DataStressReader reader, bool sequentialAccess, CancellationToken token, Random rnd) - { - // Close 1/10 of readers while they are reading - Task closeTask = null; - if (AllowReaderCloseDuringReadAsync() && rnd.NextBool(0.1)) - { - // Begin closing now on another thread - closeTask = reader.CloseAsync(); - } - - try - { - do - { - while (await reader.ReadSyncOrAsync(token, rnd)) - { - // Optionally stop reading the current result set - if (rnd.NextBool(0.1)) break; - - // Read the current row - await ConsumeRowAsync(reader, sequentialAccess, token, rnd); - } - - // Executing NextResult only 50% of the time - if (rnd.NextBool()) - break; - } while (await reader.NextResultSyncOrAsync(token, rnd)); - } - catch (Exception e) - { - if (closeTask != null && IsReaderClosedException(e)) - { - // Catch reader closed exception - } - else - { - throw; - } - } - finally - { - if (closeTask != null) AsyncUtils.WaitAndUnwrapException(closeTask); - } - } - - /// - /// Utility function to consume a single row of a reader in a random fashion after Read/ReadAsync has been invoked. - /// - protected virtual async Task ConsumeRowAsync(DataStressReader reader, bool sequentialAccess, CancellationToken token, Random rnd) - { - for (int i = 0; i < reader.FieldCount; i++) - { - if (rnd.Next(10) == 0) break; // stop reading from this row - if (rnd.Next(2) == 0) continue; // skip this field - bool hasBeenRead = false; - - // If the field is not null, we can optionally use streaming API - if ((!await reader.IsDBNullSyncOrAsync(i, token, rnd)) && (rnd.NextBool())) - { - Type t = reader.GetFieldType(i); - if (t == typeof(byte[])) - { - await ConsumeBytesAsync(reader, i, token, rnd); - hasBeenRead = true; - } - else if (t == typeof(string)) - { - await ConsumeCharsAsync(reader, i, token, rnd); - hasBeenRead = true; - } - } - - // If the field has not yet been read, or if it is non-sequential then we can re-read it - if ((!hasBeenRead) || (!sequentialAccess)) - { - if (!await reader.IsDBNullSyncOrAsync(i, token, rnd)) - { - // Field value is not null, we can use new GetFieldValue methods - await reader.GetValueSyncOrAsync(i, token, rnd); - } - else - { - // Field value is null, we have to use old GetValue method - reader.GetValue(i); - } - } - - // Do IsDBNull check again with 50% probability - if (rnd.NextBool()) await reader.IsDBNullSyncOrAsync(i, token, rnd); - } - } - - protected virtual async Task ConsumeBytesAsync(DataStressReader reader, int i, CancellationToken token, Random rnd) - { - byte[] buffer = new byte[255]; - - if (rnd.NextBool()) - { - // We can optionally use GetBytes - reader.GetBytes(i, rnd.Next(20), buffer, rnd.Next(20), rnd.Next(200)); - } - else if (reader.GetName(i) != "timestamp_FLD") - { - // Timestamp appears to be binary, but cannot be read by Stream - DataStressStream stream = reader.GetStream(i); - await stream.ReadSyncOrAsync(buffer, rnd.Next(20), rnd.Next(200), token, rnd); - } - else - { - // It is timestamp column, so read it later with GetValueSyncOrAsync - await reader.GetValueSyncOrAsync(i, token, rnd); - } - } - - protected virtual async Task ConsumeCharsAsync(DataStressReader reader, int i, CancellationToken token, Random rnd) - { - char[] buffer = new char[255]; - - if (rnd.NextBool()) - { - // Read with GetChars - reader.GetChars(i, rnd.Next(20), buffer, rnd.Next(20), rnd.Next(200)); - } - else if (reader.GetProviderSpecificFieldType(i) == typeof(SqlXml)) - { - // SqlClient only: Xml is read by XmlReader - DataStressXmlReader xmlReader = reader.GetXmlReader(i); - xmlReader.Read(); - } - else - { - // Read with TextReader - DataStressTextReader textReader = reader.GetTextReader(i); - if (rnd.NextBool()) - { - textReader.Peek(); - } - await textReader.ReadSyncOrAsync(buffer, rnd.Next(20), rnd.Next(200), rnd); - if (rnd.NextBool()) - { - textReader.Peek(); - } - } - } - - /// - /// Returns true if the given exception is expected for the current provider when a command is cancelled by another thread. - /// - /// - protected virtual bool IsCommandCancelledException(Exception e) - { - return e is TaskCanceledException; - } - - /// - /// Returns true if the given exception is expected for the current provider when trying to read from a reader that has been closed - /// - /// - protected virtual bool IsReaderClosedException(Exception e) - { - return false; - } - - /// - /// Returns true if the given exception is expected for the current provider when trying to connect to unavailable/non-existent server - /// - /// - protected bool IsServerNotAccessibleException(Exception e, string connString, string dataSource) - { - return - e is ArgumentException && - connString.Contains("MultiSubnetFailover=True") && - dataSource.Contains("np:") && - e.Message.Contains("Connecting to a SQL Server instance using the MultiSubnetFailover connection option is only supported when using the TCP protocol."); - } - - /// - /// Returns true if the backend provider supports closing a datareader while asynchronously reading from it - /// - /// - protected virtual bool AllowReaderCloseDuringReadAsync() - { - return false; - } - - /// - /// Thread Callback function which cancels queries using DbCommand.Cancel() - /// - /// - protected void CommandCancel(object o) - { - try - { - DbCommand cmd = (DbCommand)o; - cmd.Cancel(); - } - catch (Exception ex) - { - Trace.WriteLine(ex.ToString(), this.ToString()); - } - } - - #endregion - - #region Command and Parameter Tests - - /// - /// Command Reader Test: Executes a simple SELECT statement without parameters - /// - [StressTest("TestCommandReader", Weight = 10)] - public void TestCommandReader() - { - Random rnd = RandomInstance; - - using (DataStressConnection conn = Factory.CreateConnection(rnd)) - { - if (!OpenConnection(conn)) return; - DataStressFactory.TableMetadata table = Factory.GetRandomTable(rnd); - DbCommand com = Factory.GetCommand(rnd, table, conn, true); - CommandExecute(rnd, com, true); - } - } - - /// - /// Command Select Test: Executes a single SELECT statement with parameters - /// - [StressTest("TestCommandSelect", Weight = 10)] - public void TestCommandSelect() - { - Random rnd = RandomInstance; - - using (DataStressConnection conn = Factory.CreateConnection(rnd)) - { - if (!OpenConnection(conn)) return; - DataStressFactory.TableMetadata table = Factory.GetRandomTable(rnd); - DbCommand com = Factory.GetSelectCommand(rnd, table, conn); - CommandExecute(rnd, com, true); - } - } - - /// - /// Command Insert Test: Executes a single INSERT statement with parameters - /// - [StressTest("TestCommandInsert", Weight = 10)] - public void TestCommandInsert() - { - Random rnd = RandomInstance; - - using (DataStressConnection conn = Factory.CreateConnection(rnd)) - { - if (!OpenConnection(conn)) return; - DataStressFactory.TableMetadata table = Factory.GetRandomTable(rnd); - DbCommand com = Factory.GetInsertCommand(rnd, table, conn); - CommandExecute(rnd, com, false); - } - } - - /// - /// Command Update Test: Executes a single UPDATE statement with parameters - /// - [StressTest("TestCommandUpdate", Weight = 10)] - public void TestCommandUpdate() - { - Random rnd = RandomInstance; - - using (DataStressConnection conn = Factory.CreateConnection(rnd)) - { - if (!OpenConnection(conn)) return; - DataStressFactory.TableMetadata table = Factory.GetRandomTable(rnd); - DbCommand com = Factory.GetUpdateCommand(rnd, table, conn); - CommandExecute(rnd, com, false); - } - } - - /// - /// Command Update Test: Executes a single DELETE statement with parameters - /// - [StressTest("TestCommandDelete", Weight = 10)] - public void TestCommandDelete() - { - Random rnd = RandomInstance; - - using (DataStressConnection conn = Factory.CreateConnection(rnd)) - { - if (!OpenConnection(conn)) return; - DataStressFactory.TableMetadata table = Factory.GetRandomTable(rnd); - DbCommand com = Factory.GetDeleteCommand(rnd, table, conn); - CommandExecute(rnd, com, false); - } - } - - [StressTest("TestCommandTimeout", Weight = 10)] - public void TestCommandTimeout() - { - Random rnd = RandomInstance; - DataStressConnection conn = null; - try - { - // Use a transaction 50% of the time - if (rnd.NextBool()) - { - } - - // Create a select command - conn = Factory.CreateConnection(rnd); - if (!OpenConnection(conn)) return; - DataStressFactory.TableMetadata table = Factory.GetRandomTable(rnd); - DbCommand com = Factory.GetSelectCommand(rnd, table, conn); - - // Setup timeout. We want to see various possibilities of timeout happening before, after, or at the same time as when the result comes in. - int delay = rnd.Next(0, 10); // delay is from 0 to 9 seconds inclusive - int timeout = rnd.Next(1, 10); // timeout is from 1 to 9 seconds inclusive - com.CommandText += string.Format("; WAITFOR DELAY '00:00:0{0}'", delay); - com.CommandTimeout = timeout; - - // Execute command and catch timeout exception - try - { - CommandExecute(rnd, com, true); - } - catch (DbException e) - { - if (e is SqlException && ((SqlException)e).Number == 3989) - { - throw DataStressErrors.ProductError("Timing issue between OnTimeout and ReadAsyncCallback results in SqlClient's packet parsing going out of sync", e); - } - else if (!e.Message.ToLower().Contains("timeout")) - { - throw; - } - } - } - finally - { - if (conn != null) conn.Dispose(); - } - } - - [StressTest("TestCommandAndReaderAsync", Weight = 10)] - public void TestCommandAndReaderAsync() - { - // Since we're calling an "async" method, we need to do a Wait() here. - AsyncUtils.WaitAndUnwrapException(TestCommandAndReaderAsyncInternal()); - } - - /// - /// Utility method to test Async scenario using await keyword - /// - /// - protected virtual async Task TestCommandAndReaderAsyncInternal() - { - Random rnd = RandomInstance; - using (DataStressConnection conn = Factory.CreateConnection(rnd)) - { - if (!OpenConnection(conn)) return; - DataStressFactory.TableMetadata table = Factory.GetRandomTable(rnd); - DbCommand com; - - com = Factory.GetInsertCommand(rnd, table, conn); - await CommandExecuteAsync(rnd, com, false); - - com = Factory.GetDeleteCommand(rnd, table, conn); - await CommandExecuteAsync(rnd, com, false); - - com = Factory.GetSelectCommand(rnd, table, conn); - await com.ExecuteScalarAsync(); - - com = Factory.GetSelectCommand(rnd, table, conn); - await CommandExecuteAsync(rnd, com, true); - } - } - - /// - /// Utility function used by MARS tests - /// - private void TestCommandMARS(Random rnd, bool query) - { - if (Source.Type != DataSourceType.SqlServer) - return; // skip for non-SQL Server databases - - using (DataStressConnection conn = Factory.CreateConnection(rnd, DataStressFactory.ConnectionStringOptions.EnableMars)) - { - if (!OpenConnection(conn)) return; - DbCommand[] commands = new DbCommand[rnd.Next(5, 10)]; - List tasks = new List(); - // Create commands - for (int i = 0; i < commands.Length; i++) - { - DataStressFactory.TableMetadata table = Factory.GetRandomTable(rnd); - commands[i] = Factory.GetCommand(rnd, table, conn, query); - } - - try - { - // Execute commands - for (int i = 0; i < commands.Length; i++) - { - if (rnd.NextBool(0.7)) - tasks.Add(CommandExecuteAsync(rnd, commands[i], query)); - else - CommandExecute(rnd, commands[i], query); - } - } - finally - { - // All commands must be complete before closing the connection - AsyncUtils.WaitAll(tasks.ToArray()); - } - } - } - - /// - /// Command MARS Test: Tests MARS by executing multiple readers on same connection - /// - [StressTest("TestCommandMARSRead", Weight = 10)] - public void TestCommandMARSRead() - { - Random rnd = RandomInstance; - TestCommandMARS(rnd, true); - } - - /// - /// Command MARS Test: Tests MARS by getting multiple connection objects from same connection - /// - [StressTest("TestCommandMARSWrite", Weight = 10)] - public void TestCommandMARSWrite() - { - Random rnd = RandomInstance; - TestCommandMARS(rnd, false); - } - - #endregion - } -} diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/Extensions.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/Extensions.cs deleted file mode 100644 index a480fb489..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/Extensions.cs +++ /dev/null @@ -1,94 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; -using System.Data; -using System.Data.Common; -using System.Data.SqlClient; -using System.Threading; -using System.Threading.Tasks; -using System.Xml; - -namespace Stress.Data -{ - public static class Extensions - { - /// the probability that true will be returned - public static bool NextBool(this Random rnd, double probability) - { - return rnd.NextDouble() < probability; - } - - /// - /// Generate a true or false with equal probability. - /// - public static bool NextBool(this Random rnd) - { - return rnd.NextBool(0.5); - } - - public static Task ExecuteNonQuerySyncOrAsync(this DbCommand command, CancellationToken token, Random rnd) - { - return AsyncUtils.SyncOrAsyncMethod( - command.ExecuteNonQuery, - () => command.ExecuteNonQueryAsync(token), - AsyncUtils.ChooseSyncAsyncMode(rnd) - ); - } - - public static Task ExecuteScalarSyncOrAsync(this DbCommand command, CancellationToken token, Random rnd) - { - return AsyncUtils.SyncOrAsyncMethod( - command.ExecuteScalar, - () => command.ExecuteScalarAsync(token), - AsyncUtils.ChooseSyncAsyncMode(rnd) - ); - } - - public static Task ExecuteReaderSyncOrAsync(this DbCommand command, CancellationToken token, Random rnd) - { - return AsyncUtils.SyncOrAsyncMethod( - command.ExecuteReader, - () => command.ExecuteReaderAsync(token), - AsyncUtils.ChooseSyncAsyncMode(rnd) - ); - } - - public static Task ExecuteReaderSyncOrAsync(this DbCommand command, CommandBehavior cb, CancellationToken token, Random rnd) - { - return AsyncUtils.SyncOrAsyncMethod( - () => command.ExecuteReader(cb), - () => command.ExecuteReaderAsync(cb, token), - AsyncUtils.ChooseSyncAsyncMode(rnd) - ); - } - - public static Task ExecuteReaderSyncOrAsync(this SqlCommand command, CancellationToken token, Random rnd) - { - return AsyncUtils.SyncOrAsyncMethod( - command.ExecuteReader, - () => command.ExecuteReaderAsync(token), - AsyncUtils.ChooseSyncAsyncMode(rnd) - ); - } - - public static Task ExecuteReaderSyncOrAsync(this SqlCommand command, CommandBehavior cb, CancellationToken token, Random rnd) - { - return AsyncUtils.SyncOrAsyncMethod( - () => command.ExecuteReader(cb), - () => command.ExecuteReaderAsync(cb, token), - AsyncUtils.ChooseSyncAsyncMode(rnd) - ); - } - - public static Task ExecuteXmlReaderSyncOrAsync(this SqlCommand command, CancellationToken token, Random rnd) - { - return AsyncUtils.SyncOrAsyncMethod( - command.ExecuteXmlReader, - () => command.ExecuteXmlReaderAsync(token), - AsyncUtils.ChooseSyncAsyncMode(rnd) - ); - } - } -} diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/StressConfigReader.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/StressConfigReader.cs deleted file mode 100644 index 24894ca0b..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/StressConfigReader.cs +++ /dev/null @@ -1,83 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System.Collections.Generic; -using System.IO; -using System.Xml; -using System.Xml.XPath; -using static Stress.Data.DataStressSettings; - -namespace Stress.Data -{ - /// - /// Reads the configuration from a configuration file and provides the configuration - /// - internal class StressConfigReader - { - private string _configFilePath; - private const string dataStressSettings = "dataStressSettings"; - private const string sourcePath = "//dataStressSettings/sources/source"; - internal List Sources - { - get; private set; - } - - public StressConfigReader(string configFilePath) - { - this._configFilePath = configFilePath; - } - - internal void Load() - { - XmlReader reader = null; - try { - Sources = new List(); - reader = CreateReader(); - - XPathDocument xpathDocument = new XPathDocument(reader); - - XPathNavigator navigator = xpathDocument.CreateNavigator(); - - XPathNodeIterator sourceIterator = navigator.Select(sourcePath); - - foreach (XPathNavigator sourceNavigator in sourceIterator) - { - string nsUri = sourceNavigator.NamespaceURI; - string sourceName = sourceNavigator.GetAttribute("name", nsUri); - string sourceType = sourceNavigator.GetAttribute("type", nsUri); - bool isDefault; - isDefault = bool.TryParse(sourceNavigator.GetAttribute("isDefault", nsUri), out isDefault) ? isDefault : false; - string dataSource = sourceNavigator.GetAttribute("dataSource", nsUri); - string user = sourceNavigator.GetAttribute("user", nsUri); - string password = sourceNavigator.GetAttribute("password", nsUri); - string database = sourceNavigator.GetAttribute("database", nsUri); - bool supportsWindowsAuthentication; - supportsWindowsAuthentication = bool.TryParse(sourceNavigator.GetAttribute("supportsWindowsAuthentication", nsUri), out supportsWindowsAuthentication) ? supportsWindowsAuthentication : false; - bool isLocal; - isLocal = bool.TryParse(sourceNavigator.GetAttribute("isLocal", nsUri), out isLocal) ? isLocal : false; - bool disableMultiSubnetFailover; - disableMultiSubnetFailover = bool.TryParse(sourceNavigator.GetAttribute("disableMultiSubnetFailover", nsUri), out disableMultiSubnetFailover) ? disableMultiSubnetFailover : false; - bool disableNamedPipes; - disableMultiSubnetFailover = bool.TryParse(sourceNavigator.GetAttribute("disableNamedPipes", nsUri), out disableNamedPipes) ? disableNamedPipes : false; - - DataSourceElement element = new DataSourceElement(sourceName, sourceType, null, dataSource, database, user, password, ds_isDefault: isDefault, ds_isLocal: isLocal, disableMultiSubnetFailoverSetup: disableMultiSubnetFailover, disableNamedPipes: disableNamedPipes); - Sources.Add(element); - } - } - finally - { - reader.Dispose(); - } - } - - private XmlReader CreateReader() - { - FileStream configurationStream = new FileStream(this._configFilePath, FileMode.Open); - XmlReaderSettings settings = new XmlReaderSettings(); - settings.DtdProcessing = DtdProcessing.Prohibit; - XmlReader reader = XmlReader.Create(configurationStream, settings); - return reader; - } - } -} diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/StressTest.config b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/StressTest.config deleted file mode 100644 index c343a4a63..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/StressTest.config +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/System.Data.StressFramework.csproj b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/System.Data.StressFramework.csproj deleted file mode 100644 index f32aea576..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/System.Data.StressFramework.csproj +++ /dev/null @@ -1,30 +0,0 @@ - - - {518A4E22-0144-4699-80AE-757B744E8E38} - Stress.Data - netcoreapp-Unix-Debug;netcoreapp-Unix-Release;netcoreapp-Windows_NT-Debug;netcoreapp-Windows_NT-Release;netfx-Windows_NT-Debug;netfx-Windows_NT-Release;uap-Windows_NT-Debug;uap-Windows_NT-Release - - - - - - - - - - - - - - - - - - Always - - - - $(DefineConstants);PROJECTK - - - \ No newline at end of file diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/TrackedRandom.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/TrackedRandom.cs deleted file mode 100644 index b42128fff..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressFramework/TrackedRandom.cs +++ /dev/null @@ -1,184 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; - -namespace Stress.Data -{ - /// - /// Random number generator that tracks information necessary to reproduce a sequence of random numbers. - /// - /// - /// There are three items maintained by instances of this class - /// that are used to assist in the reproduction of a sequence of generated numbers: - /// - /// 1. The seed used for initialization. - /// 2. The count of numbers generated. - /// 3. Markers to indicate relevant points in the sequence. - /// - /// For tests that use random numbers to control execution, - /// these tracked items can be used to help determine the specific code path that was executed. - /// Here's an example: - /// - /// A test starts to execute, and retrieves an instance of this class. - /// If an instance of this class has not been created beforehand, it is constructed and the *seed* is stored. - /// The test inserts a *marker* to track the *count* of numbers generated before the test starts its work. - /// As the test executes, it asks for a sequence of random numbers. At some point, the test causes a crash. - /// Using the resulting dump (or live debugging session if available), it is possible to examine an instance - /// of this class to recreate the sequence of numbers used by the test. - /// You can create an instance of a Random offline using the tracked *seed*, - /// and generate numbers up to the *marked* count to determine the starting point for the sequence of numbers used by the test. - /// The length of the sequence is indicated by the last *count* of number generated. - /// So for a failed test, you can use the numbers from Mark+1 to Count to retrace the code path taken by the test. - /// - /// Instances of this class keep track of a finite number of multiple marks, - /// so it is possible to track the beginning and end of a series of tests, - /// assuming they all mark at least the start of their execution. - /// - public class TrackedRandom : Random - { - private readonly int _seed; - - /// - /// Number of random numbers generated. - /// - private long _count; - - /// - /// Circular buffer to track the most recent marks that indicate the count at the time a given mark was created. - /// - private readonly long[] _marks = new long[16]; - - /// - /// Index of where to place next mark in buffer. - /// This index is incremented after each mark, and wraps around as necessary. - /// - private int _nextMark; - - private const int EmptyMark = -1; - - public TrackedRandom() - : this(Environment.TickCount) - { - } - - public TrackedRandom(int seed) - : base(seed) - { - _seed = seed; - - for (int i = 0; i < _marks.Length; i++) - { - _marks[i] = EmptyMark; - } - } - - public int Seed - { - get - { - return _seed; - } - } - - public long Count - { - get - { - return _count; - } - } - - public void Mark() - { - long mark = _count; - - // marking forward - _marks[_nextMark++] = mark; - - // wrap when necessary - if (_nextMark == _marks.Length) - { - _nextMark = 0; - } - } - - /// - /// Return an enumerable that can be used to iterate over the most recent marks, - /// starting from the most recent, and ending with the earliest mark still being tracked. - /// - public IEnumerable Marks - { - get - { - // Iterate backwards through the mark array, - // starting just before the index of the next mark, - // and ending at the next mark. - // Iteration stops earlier if an empty mark is found. - int index; - long mark; - - for (int i = 1; i <= _marks.Length; i++) - { - // Index of current element determined by: - // ((L+n) - i) % L - // where - // L is the length of the array, - // n is the index of where to insert the next mark, 0 <= n < L, - // i is the current iteration variable value, 0 < i <= L. - index = (_marks.Length + _nextMark - i) % _marks.Length; - mark = _marks[index]; - - if (mark == EmptyMark) - { - break; - } - - yield return mark; - } - } - } - - private void IncrementCount() - { - if (_count == long.MaxValue) - { - _count = -1; - } - - ++_count; - } - - public override int Next() - { - IncrementCount(); - return base.Next(); - } - - public override int Next(int minValue, int maxValue) - { - IncrementCount(); - return base.Next(minValue, maxValue); - } - - public override int Next(int maxValue) - { - IncrementCount(); - return base.Next(maxValue); - } - - public override void NextBytes(byte[] buffer) - { - IncrementCount(); - base.NextBytes(buffer); - } - - public override double NextDouble() - { - IncrementCount(); - return base.NextDouble(); - } - } -} \ No newline at end of file diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/Configurations.props b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/Configurations.props deleted file mode 100644 index 929ab11da..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/Configurations.props +++ /dev/null @@ -1,10 +0,0 @@ - - - - netcoreapp-Unix; - netcoreapp-Windows_NT; - uap-Windows_NT; - netfx-Windows_NT; - - - \ No newline at end of file diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/Constants.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/Constants.cs deleted file mode 100644 index 10f0ecb41..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/Constants.cs +++ /dev/null @@ -1,53 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Text; - -namespace DPStressHarness -{ - public static class Constants - { - public const string XML_ELEM_RESULTS = "PerfResults"; - public const string XML_ELEM_RUN = "Run"; - public const string XML_ELEM_RUN_METRIC = "RunMetric"; - public const string XML_ELEM_TEST = "Test"; - public const string XML_ELEM_TEST_METRIC = "TestMetric"; - public const string XML_ELEM_EXCEPTION = "Exception"; - - public const string XML_ATTR_RUN_LABEL = "label"; - public const string XML_ATTR_RUN_START_TIME = "startTime"; - public const string XML_ATTR_RUN_OFFICIAL = "official"; - public const string XML_ATTR_RUN_MILESTONE = "milestone"; - public const string XML_ATTR_RUN_BRANCH = "branch"; - public const string XML_ATTR_RUN_UPLOADED = "uploaded"; - public const string XML_ATTR_RUN_METRIC_NAME = "name"; - public const string XML_ATTR_TEST_NAME = "name"; - public const string XML_ATTR_TEST_METRIC_NAME = "name"; - public const string XML_ATTR_TEST_METRIC_UNITS = "units"; - public const string XML_ATTR_TEST_METRIC_ISHIGHERBETTER = "isHigherBetter"; - - public const string XML_ATTR_VALUE_TRUE = "true"; - public const string XML_ATTR_VALUE_FALSE = "false"; - - public const string RUN_METRIC_PROCESSOR_COUNT = "Processor Count"; - public const string RUN_DNS_HOST_NAME = "DNS Host Name"; - public const string RUN_IDENTITY_NAME = "Identity Name"; - public const string RUN_PROCESS_MACHINE_NAME = "Process Machine Name"; - - public const string TEST_METRIC_TEST_ASSEMBLY = "Test Assembly"; - public const string TEST_METRIC_TEST_IMPROVEMENT = "Improvement"; - public const string TEST_METRIC_TEST_OWNER = "Owner"; - public const string TEST_METRIC_TEST_CATEGORY = "Category"; - public const string TEST_METRIC_TEST_PRIORITY = "Priority"; - public const string TEST_METRIC_APPLICATION_NAME = "Application Name"; - public const string TEST_METRIC_TARGET_ASSEMBLY_NAME = "Target Assembly Name"; - public const string TEST_METRIC_ELAPSED_SECONDS = "Elapsed Seconds"; - public const string TEST_METRIC_RPS = "Requests Per Second"; - public const string TEST_METRIC_PEAK_WORKING_SET = "Peak Working Set"; - public const string TEST_METRIC_WORKING_SET = "Working Set"; - public const string TEST_METRIC_PRIVATE_BYTES = "Private Bytes"; - } -} diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/DeadlockDetection.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/DeadlockDetection.cs deleted file mode 100644 index eba76414f..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/DeadlockDetection.cs +++ /dev/null @@ -1,192 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Concurrent; -using System.Diagnostics; -using System.Reflection; -using System.Threading; -using System.Threading.Tasks; - -namespace DPStressHarness -{ - public class DeadlockDetection - { - /// - /// Information for a thread relating to deadlock detection. All of its information is stored in a reference object to make updating it easier. - /// - private class ThreadInfo - { - public ThreadInfo(long dueTime) - { - this.DueTime = dueTime; - } - - /// - /// The time (in ticks) when the thread should be completed - /// - public long DueTime; - - /// - /// True if the thread should not be aborted - /// - public bool DisableAbort; - - /// - /// The time when DisableAbort was set to true - /// - public long DisableAbortTime; - } - - /// - /// Maximum time that a test thread (i.e. a thread that is directly executing a [StressTest] method) can - /// execute before it is considered to be deadlocked. This should be longer than the - /// TaskThreadDeadlockTimeoutTicks because if the test is waiting for a task then the test will always - /// take longer to execute than the task. - /// - public const long TestThreadDeadlockTimeoutTicks = 20 * 60 * TimeSpan.TicksPerSecond; - - /// - /// Maximum time that any Task can execute before it is considered to be deadlocked - /// - public const long TaskThreadDeadlockTimeoutTicks = 10 * 60 * TimeSpan.TicksPerSecond; - - /// - /// Dictionary that maps Threads to the time (in ticks) when they should be completed. If they are not completed by that time then - /// they are considered to be deadlocked. - /// - private static ConcurrentDictionary s_threadDueTimes = null; - - /// - /// Timer that scans through _threadDueTimes to find deadlocked threads - /// - private static Timer s_deadlockWatchdog = null; - - /// - /// Interval of _deadlockWatchdog, in milliseconds - /// - private const int _watchdogIntervalMs = 60 * 1000; - - /// - /// true if deadlock detection is enabled, otherwise false. Should be set only at process startup. - /// - private static bool s_isEnabled = false; - - /// - /// Enables deadlock detection. - /// - public static void Enable() - { - // Switch out the default TaskScheduler. We must use reflection because it is private. - FieldInfo defaultTaskScheduler = typeof(TaskScheduler).GetField("s_defaultTaskScheduler", BindingFlags.NonPublic | BindingFlags.Static); - DeadlockDetectionTaskScheduler newTaskScheduler = new DeadlockDetectionTaskScheduler(); - defaultTaskScheduler.SetValue(null, newTaskScheduler); - - s_threadDueTimes = new ConcurrentDictionary(); - s_deadlockWatchdog = new Timer(CheckForDeadlocks, null, _watchdogIntervalMs, _watchdogIntervalMs); - - s_isEnabled = true; - } - - /// - /// Adds the current Task execution thread to the tracked thread collection. - /// - public static void AddTaskThread() - { - if (s_isEnabled) - { - long dueTime = DateTime.UtcNow.Ticks + TaskThreadDeadlockTimeoutTicks; - AddThread(dueTime); - } - } - - /// - /// Adds the current Test execution thread (i.e. a thread that is directly executing a [StressTest] method) to the tracked thread collection. - /// - public static void AddTestThread() - { - if (s_isEnabled) - { - long dueTime = DateTime.UtcNow.Ticks + TestThreadDeadlockTimeoutTicks; - AddThread(dueTime); - } - } - - private static void AddThread(long dueTime) - { - s_threadDueTimes.TryAdd(Thread.CurrentThread, new ThreadInfo(dueTime)); - } - - /// - /// Removes the current thread from the tracked thread collection - /// - public static void RemoveThread() - { - if (s_isEnabled) - { - ThreadInfo unused; - s_threadDueTimes.TryRemove(Thread.CurrentThread, out unused); - } - } - - /// - /// Disables abort of current thread. Call this when the current thread is waiting on a task. - /// - public static void DisableThreadAbort() - { - if (s_isEnabled) - { - ThreadInfo threadInfo; - if (s_threadDueTimes.TryGetValue(Thread.CurrentThread, out threadInfo)) - { - threadInfo.DisableAbort = true; - threadInfo.DisableAbortTime = DateTime.UtcNow.Ticks; - } - } - } - - /// - /// Enables abort of current thread after calling DisableThreadAbort(). The elapsed time since calling DisableThreadAbort() is added to the due time. - /// - public static void EnableThreadAbort() - { - if (s_isEnabled) - { - ThreadInfo threadInfo; - if (s_threadDueTimes.TryGetValue(Thread.CurrentThread, out threadInfo)) - { - threadInfo.DueTime += DateTime.UtcNow.Ticks - threadInfo.DisableAbortTime; - threadInfo.DisableAbort = false; - } - } - } - - /// - /// Looks through the tracked thread collection and aborts any thread that is past its due time - /// - /// unused - private static void CheckForDeadlocks(object state) - { - if (s_isEnabled) - { - long now = DateTime.UtcNow.Ticks; - - // Find candidate threads - foreach (var threadDuePair in s_threadDueTimes) - { - if (!threadDuePair.Value.DisableAbort && now > threadDuePair.Value.DueTime) - { - // Abort the misbehaving thread and the return - // NOTE: We only want to abort a single thread at a time to allow the other thread in the deadlock pair to continue - Thread t = threadDuePair.Key; - Console.WriteLine("Deadlock detected on thread with managed thread id {0}", t.ManagedThreadId); - Debugger.Break(); - t.Join(); - return; - } - } - } - } - } -} diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/DeadlockDetectionTaskScheduler.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/DeadlockDetectionTaskScheduler.cs deleted file mode 100644 index a96ac4077..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/DeadlockDetectionTaskScheduler.cs +++ /dev/null @@ -1,94 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Concurrent; -using System.Collections.Generic; -using System.Threading; -using System.Threading.Tasks; - -namespace DPStressHarness -{ - public class DeadlockDetectionTaskScheduler : TaskScheduler - { - private readonly WaitCallback _runTaskCallback; - private readonly ParameterizedThreadStart _runTaskThreadStart; -#if DEBUG - private readonly ConcurrentDictionary _queuedItems = new ConcurrentDictionary(); -#endif - - public DeadlockDetectionTaskScheduler() - { - _runTaskCallback = new WaitCallback(RunTask); - _runTaskThreadStart = new ParameterizedThreadStart(RunTask); - } - - // This is only used for debugging, so for retail we'd prefer the perf - protected override IEnumerable GetScheduledTasks() - { -#if DEBUG - return _queuedItems.Keys; -#else - return new Task[0]; -#endif - } - - protected override void QueueTask(Task task) - { - if ((task.CreationOptions & TaskCreationOptions.LongRunning) == TaskCreationOptions.LongRunning) - { - // Create a new background thread for long running tasks - Thread thread = new Thread(_runTaskThreadStart) { IsBackground = true }; - thread.Start(task); - } - else - { - // Otherwise queue the work on the threadpool -#if DEBUG - _queuedItems.TryAdd(task, null); -#endif - - ThreadPool.QueueUserWorkItem(_runTaskCallback, task); - } - } - - protected override bool TryExecuteTaskInline(Task task, bool taskWasPreviouslyQueued) - { - if (!taskWasPreviouslyQueued) - { - // Run the task inline - RunTask(task); - return true; - } - - // Couldn't run the task - return false; - } - - private void RunTask(object state) - { - Task inTask = state as Task; - -#if DEBUG - // Remove from the dictionary of queued items - object ignored; - _queuedItems.TryRemove(inTask, out ignored); -#endif - - // Note when the thread started work - DeadlockDetection.AddTaskThread(); - - try - { - // Run the task - base.TryExecuteTask(inTask); - } - finally - { - // Remove the thread from the list when complete - DeadlockDetection.RemoveThread(); - } - } - } -} diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/FakeConsole.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/FakeConsole.cs deleted file mode 100644 index f13949ae8..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/FakeConsole.cs +++ /dev/null @@ -1,34 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Text; - -namespace DPStressHarness -{ - public static class FakeConsole - { - public static void Write(string value) - { -#if DEBUG - Console.Write(value); -#endif - } - - public static void WriteLine(string value) - { -#if DEBUG - Console.WriteLine(value); -#endif - } - - public static void WriteLine(string format, params object[] arg) - { -#if DEBUG - Console.WriteLine(format, arg); -#endif - } - } -} diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/GlobalExceptionHandlerAttribute.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/GlobalExceptionHandlerAttribute.cs deleted file mode 100644 index 810580d9f..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/GlobalExceptionHandlerAttribute.cs +++ /dev/null @@ -1,16 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; - -namespace DPStressHarness -{ - [AttributeUsage(AttributeTargets.Method, Inherited = true, AllowMultiple = false)] - public class GlobalExceptionHandlerAttribute : Attribute - { - public GlobalExceptionHandlerAttribute() - { - } - } -} diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/GlobalTestCleanupAttribute.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/GlobalTestCleanupAttribute.cs deleted file mode 100644 index 2159d2630..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/GlobalTestCleanupAttribute.cs +++ /dev/null @@ -1,16 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; - -namespace DPStressHarness -{ - [AttributeUsage(AttributeTargets.Method, Inherited = true, AllowMultiple = false)] - public class GlobalTestCleanupAttribute : Attribute - { - public GlobalTestCleanupAttribute() - { - } - } -} diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/GlobalTestSetupAttribute.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/GlobalTestSetupAttribute.cs deleted file mode 100644 index 00ed3d5b0..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/GlobalTestSetupAttribute.cs +++ /dev/null @@ -1,16 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; - -namespace DPStressHarness -{ - [AttributeUsage(AttributeTargets.Method, Inherited = true, AllowMultiple = false)] - public class GlobalTestSetupAttribute : Attribute - { - public GlobalTestSetupAttribute() - { - } - } -} diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/ITestAttributeFilter.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/ITestAttributeFilter.cs deleted file mode 100644 index c3afa9251..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/ITestAttributeFilter.cs +++ /dev/null @@ -1,11 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -namespace DPStressHarness -{ - public interface ITestAttributeFilter - { - bool MatchFilter(string filterString); - } -} diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/Logger.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/Logger.cs deleted file mode 100644 index 5c2fe8b52..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/Logger.cs +++ /dev/null @@ -1,227 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; -using System.IO; -using System.Xml; -using System.Diagnostics; - -namespace DPStressHarness -{ - public class Logger - { - private const string _resultDocumentName = "perfout.xml"; - - private XmlDocument _doc; - private XmlElement _runElem; - private XmlElement _testElem; - - public Logger(string runLabel, bool isOfficial, string milestone, string branch) - { - _doc = GetTestResultDocument(); - - _runElem = GetRunElement(_doc, runLabel, DateTime.Now.ToString(), isOfficial, milestone, branch); - - Process currentProcess = Process.GetCurrentProcess(); - AddRunMetric(Constants.RUN_PROCESS_MACHINE_NAME, currentProcess.MachineName); - AddRunMetric(Constants.RUN_DNS_HOST_NAME, System.Net.Dns.GetHostName()); - AddRunMetric(Constants.RUN_IDENTITY_NAME, System.Security.Principal.WindowsIdentity.GetCurrent().Name); - AddRunMetric(Constants.RUN_METRIC_PROCESSOR_COUNT, Environment.ProcessorCount.ToString()); - - } - - public void AddRunMetric(string metricName, string metricValue) - { - Debug.Assert(_runElem != null); - - if (metricValue.Equals(string.Empty)) - return; - - AddRunMetricElement(_runElem, metricName, metricValue); - } - - public void AddTest(string testName) - { - Debug.Assert(_runElem != null); - - _testElem = AddTestElement(_runElem, testName); - } - - public void AddTestMetric(string metricName, string metricValue, string metricUnits) - { - AddTestMetric(metricName, metricValue, metricUnits, null); - } - - public void AddTestMetric(string metricName, string metricValue, string metricUnits, bool? isHigherBetter) - { - Debug.Assert(_runElem != null); - Debug.Assert(_testElem != null); - - if (metricValue.Equals(string.Empty)) - return; - - AddTestMetricElement(_testElem, metricName, metricValue, metricUnits, isHigherBetter); - } - - public void AddTestException(string exceptionData) - { - Debug.Assert(_runElem != null); - Debug.Assert(_testElem != null); - - AddTestExceptionElement(_testElem, exceptionData); - } - - public void Save() - { - FileStream resultDocumentStream = new FileStream(_resultDocumentName, FileMode.Create); - _doc.Save(resultDocumentStream); - resultDocumentStream.Dispose(); - } - - private static XmlDocument GetTestResultDocument() - { - if (File.Exists(_resultDocumentName)) - { - XmlDocument doc = new XmlDocument(); - FileStream resultDocumentStream = new FileStream(_resultDocumentName, FileMode.Open, FileAccess.Read); - doc.Load(resultDocumentStream); - resultDocumentStream.Dispose(); - return doc; - } - else - { - XmlDocument doc = new XmlDocument(); - doc.LoadXml(""); - FileStream resultDocumentStream = new FileStream(_resultDocumentName, FileMode.CreateNew); - doc.Save(resultDocumentStream); - resultDocumentStream.Dispose(); - return doc; - } - } - - - private static XmlElement GetRunElement(XmlDocument doc, string label, string startTime, bool isOfficial, string milestone, string branch) - { - foreach (XmlNode node in doc.DocumentElement.ChildNodes) - { - if (node.NodeType == XmlNodeType.Element && - node.Name.Equals(Constants.XML_ELEM_RUN) && - ((XmlElement)node).GetAttribute(Constants.XML_ATTR_RUN_LABEL).Equals(label)) - { - return (XmlElement)node; - } - } - - XmlElement runElement = doc.CreateElement(Constants.XML_ELEM_RUN); - - XmlAttribute attrLabel = doc.CreateAttribute(Constants.XML_ATTR_RUN_LABEL); - attrLabel.Value = label; - runElement.Attributes.Append(attrLabel); - - XmlAttribute attrStartTime = doc.CreateAttribute(Constants.XML_ATTR_RUN_START_TIME); - attrStartTime.Value = startTime; - runElement.Attributes.Append(attrStartTime); - - XmlAttribute attrOfficial = doc.CreateAttribute(Constants.XML_ATTR_RUN_OFFICIAL); - attrOfficial.Value = isOfficial.ToString(); - runElement.Attributes.Append(attrOfficial); - - if (milestone != null) - { - XmlAttribute attrMilestone = doc.CreateAttribute(Constants.XML_ATTR_RUN_MILESTONE); - attrMilestone.Value = milestone; - runElement.Attributes.Append(attrMilestone); - } - - if (branch != null) - { - XmlAttribute attrBranch = doc.CreateAttribute(Constants.XML_ATTR_RUN_BRANCH); - attrBranch.Value = branch; - runElement.Attributes.Append(attrBranch); - } - - doc.DocumentElement.AppendChild(runElement); - - return runElement; - } - - - private static void AddRunMetricElement(XmlElement runElement, string name, string value) - { - // First check and make sure the metric hasn't already been added. - // If it has, it's from a previous test in the same run, so just return. - foreach (XmlNode node in runElement.ChildNodes) - { - if (node.NodeType == XmlNodeType.Element && node.Name.Equals(Constants.XML_ELEM_RUN_METRIC)) - { - if (node.Attributes[Constants.XML_ATTR_RUN_METRIC_NAME].Value.Equals(name)) - return; - } - } - - XmlElement runMetricElement = runElement.OwnerDocument.CreateElement(Constants.XML_ELEM_RUN_METRIC); - - XmlAttribute attrName = runElement.OwnerDocument.CreateAttribute(Constants.XML_ATTR_RUN_METRIC_NAME); - attrName.Value = name; - runMetricElement.Attributes.Append(attrName); - - XmlText nodeValue = runElement.OwnerDocument.CreateTextNode(value); - runMetricElement.AppendChild(nodeValue); - - runElement.AppendChild(runMetricElement); - } - - - private static XmlElement AddTestElement(XmlElement runElement, string name) - { - XmlElement testElement = runElement.OwnerDocument.CreateElement(Constants.XML_ELEM_TEST); - - XmlAttribute attrName = runElement.OwnerDocument.CreateAttribute(Constants.XML_ATTR_TEST_NAME); - attrName.Value = name; - testElement.Attributes.Append(attrName); - - runElement.AppendChild(testElement); - - return testElement; - } - - - private static void AddTestMetricElement(XmlElement testElement, string name, string value, string units, bool? isHigherBetter) - { - XmlElement testMetricElement = testElement.OwnerDocument.CreateElement(Constants.XML_ELEM_TEST_METRIC); - - XmlAttribute attrName = testElement.OwnerDocument.CreateAttribute(Constants.XML_ATTR_TEST_METRIC_NAME); - attrName.Value = name; - testMetricElement.Attributes.Append(attrName); - - if (units != null) - { - XmlAttribute attrUnits = testElement.OwnerDocument.CreateAttribute(Constants.XML_ATTR_TEST_METRIC_UNITS); - attrUnits.Value = units; - testMetricElement.Attributes.Append(attrUnits); - } - - if (isHigherBetter.HasValue) - { - XmlAttribute attrIsHigherBetter = testElement.OwnerDocument.CreateAttribute(Constants.XML_ATTR_TEST_METRIC_ISHIGHERBETTER); - attrIsHigherBetter.Value = isHigherBetter.ToString(); - testMetricElement.Attributes.Append(attrIsHigherBetter); - } - - XmlText nodeValue = testElement.OwnerDocument.CreateTextNode(value); - testMetricElement.AppendChild(nodeValue); - - testElement.AppendChild(testMetricElement); - } - - private static void AddTestExceptionElement(XmlElement testElement, string exceptionData) - { - XmlElement testFailureElement = testElement.OwnerDocument.CreateElement(Constants.XML_ELEM_EXCEPTION); - XmlText txtNode = testFailureElement.OwnerDocument.CreateTextNode(exceptionData); - testFailureElement.AppendChild(txtNode); - - testElement.AppendChild(testFailureElement); - } - } -} diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/MemApi.Unix.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/MemApi.Unix.cs deleted file mode 100644 index 6dfb335dd..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/MemApi.Unix.cs +++ /dev/null @@ -1,21 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; - -namespace DPStressHarness -{ - internal static class MemApi - { - public static IntPtr GetCurrentProcess() - { - return IntPtr.Zero; - } - - public static bool SetProcessWorkingSetSize(IntPtr hProcess, int dwMinimumWorkingSetSize, int dwMaximumWorkingSetSize) - { - return true; - } - } -} diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/MemApi.Windows.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/MemApi.Windows.cs deleted file mode 100644 index 053aea09a..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/MemApi.Windows.cs +++ /dev/null @@ -1,18 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; -using System.Runtime.InteropServices; - -namespace DPStressHarness -{ - static class MemApi - { - [DllImport("KERNEL32")] - public static extern IntPtr GetCurrentProcess(); - - [DllImport("KERNEL32")] - public static extern bool SetProcessWorkingSetSize(IntPtr hProcess, int dwMinimumWorkingSetSize, int dwMaximumWorkingSetSize); - } -} diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/MonitorLoadUtils.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/MonitorLoadUtils.cs deleted file mode 100644 index bfe2d8770..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/MonitorLoadUtils.cs +++ /dev/null @@ -1,49 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; -using Monitoring; -using System.Reflection; - -namespace DPStressHarness -{ - public static class MonitorLoader - { - public static IMonitorLoader LoadMonitorLoaderAssembly() - - { - IMonitorLoader monitorloader = null; - const string classname = "Monitoring.MonitorLoader"; - const string interfacename = "IMonitorLoader"; - Assembly mainAssembly = typeof(Monitoring.IMonitorLoader).GetTypeInfo().Assembly; - - Type t = mainAssembly.GetType(classname); - //make sure the type is derived from IMonitorLoader - Type[] interfaces = t.GetInterfaces(); - bool derivedFromIMonitorLoader = false; - if (interfaces != null) - { - foreach (Type intrface in interfaces) - { - if (intrface.Name == interfacename) - { - derivedFromIMonitorLoader = true; - } - } - } - if (derivedFromIMonitorLoader) - - { - monitorloader = (IMonitorLoader)Activator.CreateInstance(t); - - monitorloader.AssemblyPath = mainAssembly.FullName; - } - else - { - throw new Exception("The specified assembly does not implement " + interfacename + "!!"); - } - return monitorloader; - } - } -} diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/MultithreadedTest.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/MultithreadedTest.cs deleted file mode 100644 index 01ea96142..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/MultithreadedTest.cs +++ /dev/null @@ -1,170 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Reflection; -using System.Diagnostics; -using System.Threading; - -namespace DPStressHarness -{ - internal class MultiThreadedTest : TestBase - { - private MultiThreadedTestAttribute _attr; - public static bool _continue; - public static int _threadsRunning; - public static int _rps; - public static Exception _firstException = null; - - private struct TestInfo - { - public object _instance; - public TestMethodDelegate _delegateTest; - } - - public MultiThreadedTest(MultiThreadedTestAttribute attr, - MethodInfo testMethodInfo, - Type type, - List setupMethods, - List cleanupMethods) - : base(attr, testMethodInfo, type, setupMethods, cleanupMethods) - - { - _attr = attr; - } - - public override void Run() - { - try - { - Stopwatch timer = new Stopwatch(); - long warmupDuration = (long)_attr.WarmupDuration * Stopwatch.Frequency; - long testDuration = (long)_attr.TestDuration * Stopwatch.Frequency; - int threads = _attr.Threads; - - TestInfo[] info = new TestInfo[threads]; - ConstructorInfo targetConstructor = _type.GetConstructor(Type.EmptyTypes); - - for (int i = 0; i < threads; i++) - { - info[i] = new TestInfo(); - info[i]._instance = targetConstructor.Invoke(null); - info[i]._delegateTest = CreateTestMethodDelegate(); - - SetVariations(info[i]._instance); - ExecuteSetupPhase(info[i]._instance); - } - - _firstException = null; - _continue = true; - _rps = 0; - - for (int i = 0; i < threads; i++) - { - Interlocked.Increment(ref _threadsRunning); - Thread t = new Thread(new ParameterizedThreadStart(MultiThreadedTest.RunThread)); - t.Start(info[i]); - } - - timer.Reset(); - timer.Start(); - - while (timer.ElapsedTicks < warmupDuration) - { - Thread.Sleep(1000); - } - - int warmupRequests = Interlocked.Exchange(ref _rps, 0); - timer.Reset(); - timer.Start(); - TestMetrics.StartCollection(); - - while (timer.ElapsedTicks < testDuration) - { - Thread.Sleep(1000); - } - - int requests = Interlocked.Exchange(ref _rps, 0); - double elapsedSeconds = timer.ElapsedTicks / Stopwatch.Frequency; - TestMetrics.StopCollection(); - _continue = false; - - while (_threadsRunning > 0) - { - Thread.Sleep(1000); - } - - for (int i = 0; i < threads; i++) - { - ExecuteCleanupPhase(info[i]._instance); - } - - double rps = (double)requests / elapsedSeconds; - - if (_firstException == null) - { - LogTest(rps); - } - else - { - LogTestFailure(_firstException.ToString()); - } - } - catch (TargetInvocationException e) - { - LogTestFailure(e.InnerException.ToString()); - } - catch (Exception e) - { - LogTestFailure(e.ToString()); - } - } - - - public static void RunThread(object state) - { - try - { - while (_continue) - { - TestInfo info = (TestInfo)state; - info._delegateTest(info._instance); - Interlocked.Increment(ref _rps); - } - } - catch (Exception e) - { - if (_firstException == null) - { - _firstException = e; - } - _continue = false; - } - finally - { - Interlocked.Decrement(ref _threadsRunning); - } - } - - protected void LogTest(double rps) - { - Logger logger = new Logger(TestMetrics.RunLabel, TestMetrics.IsOfficial, TestMetrics.Milestone, TestMetrics.Branch); - logger.AddTest(this.Title); - - LogStandardMetrics(logger); - - logger.AddTestMetric(Constants.TEST_METRIC_RPS, string.Format("{0:F2}", rps), "rps", true); - - logger.Save(); - - Console.WriteLine("{0}: Requests per Second={1:F2}, Working Set={2}, Peak Working Set={3}, Private Bytes={4}", - this.Title, - rps, - TestMetrics.WorkingSet, - TestMetrics.PeakWorkingSet, - TestMetrics.PrivateBytes); - } - } -} \ No newline at end of file diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/PerfCounters.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/PerfCounters.cs deleted file mode 100644 index 3921ca140..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/PerfCounters.cs +++ /dev/null @@ -1,34 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Diagnostics; - -namespace DPStressHarness -{ - public class PerfCounters - { - private long _requestsCounter; - //private long rpsCounter; - - private long _exceptionsCounter; - //private long epsCounter; - - public PerfCounters() - { - - } - - public void IncrementRequestsCounter() - { - _requestsCounter++; - } - - public void IncrementExceptionsCounter() - { - _exceptionsCounter++; - } - } -} diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/Program.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/Program.cs deleted file mode 100644 index 6572836bc..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/Program.cs +++ /dev/null @@ -1,277 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; -using System.IO; -using System.Collections.Generic; -using System.Text; -using System.Reflection; - - -namespace DPStressHarness -{ - public class Program - { - public static void Main(string[] args) - { - Init(args); - Run(); - } - public enum RunMode - { - RunAll, - RunVerify, - Help, - ExitWithError - }; - - private static RunMode s_mode = RunMode.RunAll; - private static IEnumerable s_tests; - private static StressEngine s_eng; - private static string s_error; - - - public static void Init(string[] args) - { - for (int i = 0; i < args.Length; i++) - { - switch (args[i]) - { - case "-a": - string assemblyName = args[++i]; - TestFinder.AssemblyName = new AssemblyName(assemblyName); - break; - - case "-all": - s_mode = RunMode.RunAll; - break; - - case "-override": - TestMetrics.Overrides.Add(args[++i], args[++i]); - break; - - case "-variation": - TestMetrics.Variations.Add(args[++i]); - break; - - case "-test": - TestMetrics.SelectedTests.Add(args[++i]); - break; - - case "-duration": - TestMetrics.StressDuration = int.Parse(args[++i]); - break; - - case "-threads": - TestMetrics.StressThreads = int.Parse(args[++i]); - break; - - case "-verify": - s_mode = RunMode.RunVerify; - break; - - case "-debug": - if (System.Diagnostics.Debugger.IsAttached) - { - System.Diagnostics.Debugger.Break(); - } - else - { - Console.WriteLine("Current PID: {0}, attach the debugger and press Enter to continue the execution...", System.Diagnostics.Process.GetCurrentProcess().Id); - Console.ReadLine(); - } - break; - - case "-exceptionThreshold": - TestMetrics.ExceptionThreshold = int.Parse(args[++i]); - break; - - case "-monitorenabled": - TestMetrics.MonitorEnabled = bool.Parse(args[++i]); - break; - - case "-randomSeed": - TestMetrics.RandomSeed = int.Parse(args[++i]); - break; - - case "-filter": - TestMetrics.Filter = args[++i]; - break; - - case "-printMethodName": - TestMetrics.PrintMethodName = true; - break; - - case "-deadlockdetection": - if (bool.Parse(args[++i])) - { - DeadlockDetection.Enable(); - } - break; - - default: - s_mode = RunMode.Help; - break; - } - } - - if (TestFinder.AssemblyName != null) - { - Console.WriteLine("Assembly Found for the Assembly Name " + TestFinder.AssemblyName); - - if (TestFinder.AssemblyName != null) - { - // get and load all the tests - s_tests = TestFinder.GetTests(Assembly.Load(TestFinder.AssemblyName)); - - // instantiate the stress engine - s_eng = new StressEngine(TestMetrics.StressThreads, TestMetrics.StressDuration, s_tests, TestMetrics.RandomSeed); - } - else - { - Program.s_error = string.Format("Assembly {0} cannot be found.", TestFinder.AssemblyName); - s_mode = RunMode.ExitWithError; - } - } - } - - public static void TestCase(Assembly assembly, - RunMode mode, - int duration, - int threads, - int? exceptionThreshold = null, - bool printMethodName = false, - bool deadlockDetection = false, - int randomSeed = 0, - string[] selectedTests = null, - string[] overrides = null, - string[] variations = null, - string filter = null, - bool monitorEnabled = false, - string monitorMachineName = "localhost") - { - TestMetrics.Reset(); - TestFinder.AssemblyName = assembly.GetName(); - mode = RunMode.RunAll; - - for (int i = 0; overrides != null && i < overrides.Length; i++) - { - TestMetrics.Overrides.Add(overrides[i], overrides[++i]); - } - - for (int i = 0; variations != null && i < variations.Length; i++) - { - TestMetrics.Variations.Add(variations[i]); - } - - for (int i = 0; selectedTests != null && i < selectedTests.Length; i++) - { - TestMetrics.SelectedTests.Add(selectedTests[i]); - } - - TestMetrics.StressDuration = duration; - TestMetrics.StressThreads = threads; - TestMetrics.ExceptionThreshold = exceptionThreshold; - TestMetrics.MonitorEnabled = monitorEnabled; - TestMetrics.MonitorMachineName = monitorMachineName; - TestMetrics.RandomSeed = randomSeed; - TestMetrics.Filter = filter; - TestMetrics.PrintMethodName = printMethodName; - - if (deadlockDetection) - { - DeadlockDetection.Enable(); - } - - // get and load all the tests - s_tests = TestFinder.GetTests(assembly); - - // instantiate the stress engine - s_eng = new StressEngine(TestMetrics.StressThreads, TestMetrics.StressDuration, s_tests, TestMetrics.RandomSeed); - } - - public static void Run() - { - if (TestFinder.AssemblyName == null) - { - s_mode = RunMode.Help; - } - switch (s_mode) - { - case RunMode.RunAll: - RunStress(); - break; - - case RunMode.RunVerify: - RunVerify(); - break; - - case RunMode.ExitWithError: - ExitWithError(); - break; - - case RunMode.Help: - PrintHelp(); - break; - } - } - - private static void PrintHelp() - { - Console.WriteLine("stresstest.exe [-a ] "); - Console.WriteLine(); - Console.WriteLine(" -a should specify path to the assembly containing the tests."); - Console.WriteLine(); - Console.WriteLine("Supported options are:"); - Console.WriteLine(); - Console.WriteLine(" -all Run all tests - best for debugging, not perf measurements."); - Console.WriteLine(); - Console.WriteLine(" -verify Run in functional verification mode."); - Console.WriteLine(); - Console.WriteLine(" -duration Duration of the test in seconds."); - Console.WriteLine(); - Console.WriteLine(" -threads Number of threads to use."); - Console.WriteLine(); - Console.WriteLine(" -override Override the value of a test property."); - Console.WriteLine(); - Console.WriteLine(" -test Run specific test(s) using their name."); - Console.WriteLine(); - Console.WriteLine(" -debug Print process ID in the beginning and wait for Enter (to give your time to attach the debugger)."); - Console.WriteLine(); - Console.WriteLine(" -exceptionThreshold An optional limit on exceptions which will be caught. When reached, test will halt."); - Console.WriteLine(); - Console.WriteLine(" -monitorenabled True or False to enable monitoring. Default is false"); - Console.WriteLine(); - Console.WriteLine(" -randomSeed Enables setting of the random number generator used internally. This serves both the purpose"); - Console.WriteLine(" of helping to improve reproducibility and making it deterministic from Chess's perspective"); - Console.WriteLine(" for a given schedule. Default is " + TestMetrics.RandomSeed + "."); - Console.WriteLine(); - Console.WriteLine(" -filter Run tests whose stress test attributes match the given filter. Filter is not applied if attribute"); - Console.WriteLine(" does not implement ITestAttributeFilter. Example: -filter TestType=Query,Update;IsServerTest=True "); - Console.WriteLine(); - Console.WriteLine(" -printMethodName Print tests' title in console window"); - Console.WriteLine(); - Console.WriteLine(" -deadlockdetection True or False to enable deadlock detection. Default is false"); - Console.WriteLine(); - } - - private static int ExitWithError() - { - Environment.FailFast("Exit with error(s)."); - return 1; - } - - private static int RunVerify() - { - throw new NotImplementedException(); - } - - private static int RunStress() - { - return s_eng.Run(); - } - } - -} - diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/RecordedExceptions.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/RecordedExceptions.cs deleted file mode 100644 index a12e38f1a..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/RecordedExceptions.cs +++ /dev/null @@ -1,107 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; -using System.Text; -using System.Collections.Concurrent; -using System.Diagnostics; -using System.Threading; - -namespace DPStressHarness -{ - public class RecordedExceptions - { - // Reference wrapper around an integer which is used in order to make updating a little easier & more efficient - public class ExceptionCount - { - public int Count = 0; - } - - private ConcurrentDictionary> _exceptions = new ConcurrentDictionary>(); - - /// - /// Records an exception and returns true if the threshold is exceeded for that exception - /// - public bool Record(string testName, Exception ex) - { - // Converting from exception to string can be expensive so only do it once and cache the string - string exceptionString = ex.ToString(); - TraceException(testName, exceptionString); - - // Get the exceptions for the current test case - ConcurrentDictionary exceptionsForTest = _exceptions.GetOrAdd(testName, _ => new ConcurrentDictionary()); - - // Get the count for the current exception - ExceptionCount exCount = exceptionsForTest.GetOrAdd(exceptionString, _ => new ExceptionCount()); - - // Increment the count - Interlocked.Increment(ref exCount.Count); - - // If the count is over the threshold, return true - return TestMetrics.ExceptionThreshold.HasValue && (exCount.Count > TestMetrics.ExceptionThreshold); - } - - private void TraceException(string testName, string exceptionString) - { - StringBuilder status = new StringBuilder(); - status.AppendLine("========================================================================"); - status.AppendLine("Exception Report"); - status.AppendLine("========================================================================"); - - status.AppendLine(string.Format("Test: {0}", testName)); - status.AppendLine(exceptionString); - - status.AppendLine("========================================================================"); - status.AppendLine("End of Exception Report"); - status.AppendLine("========================================================================"); - Trace.WriteLine(status.ToString()); - } - - public void TraceAllExceptions() - { - StringBuilder status = new StringBuilder(); - status.AppendLine("========================================================================"); - status.AppendLine("All Exceptions Report"); - status.AppendLine("========================================================================"); - - foreach (string testName in _exceptions.Keys) - { - ConcurrentDictionary exceptionsForTest = _exceptions[testName]; - - status.AppendLine(string.Format("Test: {0}", testName)); - foreach (var exceptionString in exceptionsForTest.Keys) - { - status.AppendLine(string.Format("Count: {0}", exceptionsForTest[exceptionString].Count)); - status.AppendLine(string.Format("Exception: {0}", exceptionString)); - status.AppendLine(); - } - - status.AppendLine(); - status.AppendLine(); - } - - status.AppendLine("========================================================================"); - status.AppendLine("End of All Exceptions Report"); - status.AppendLine("========================================================================"); - Trace.WriteLine(status.ToString()); - } - - public int GetExceptionsCount() - { - int count = 0; - - foreach (string testName in _exceptions.Keys) - { - ConcurrentDictionary exceptionsForTest = _exceptions[testName]; - - foreach (var exceptionString in exceptionsForTest.Keys) - { - count += exceptionsForTest[exceptionString].Count; - } - } - - return count; - } - } -} diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/SqlScript.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/SqlScript.cs deleted file mode 100644 index f159a4725..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/SqlScript.cs +++ /dev/null @@ -1,64 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; -using System.Data; -using System.Data.SqlClient; -using System.Text.RegularExpressions; - -namespace DPStressHarness -{ - /// - /// Use SqlScript.Execute to run sql scripts prior to test execution. - /// Recommended practice is to store the sql scripts as a resource in your dll (if it's complicated), - /// or just as a string in your assembly. - /// - public static class SqlScript - { - public static void Execute(string script, string connectionString) - { - //script = Regex.Replace(script, @"/\*((?!\*/)(.|\n)*?)\*/", "", RegexOptions.Multiline | RegexOptions.IgnoreCase); - - //Regex re = new Regex(@"(?^GO)|(?((?!^GO)(.|\n))+)", RegexOptions.Multiline | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture); - - //MatchCollection matches = re.Matches(script); - - //foreach (Match m in matches) - //{ - // Console.WriteLine(m.Groups["GO"]); - // Console.WriteLine(m.Groups["COMMAND"]); - //} - - //Console.WriteLine(); - - - SqlConnection conn = new SqlConnection(connectionString); - conn.Open(); - - try - { - script = Regex.Replace(script, @"/\*((?!\*/)(.|\n)*?)\*/", "", RegexOptions.Multiline | RegexOptions.IgnoreCase); - - Regex re = new Regex(@"(?^GO)|(?((?!^GO)(.|\n))+)", RegexOptions.Multiline | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture); - MatchCollection matches = re.Matches(script); - - foreach (Match m in matches) - { - string cmdText = m.Groups["COMMAND"].Value.Trim(); - - if (cmdText == string.Empty) - continue; - - SqlCommand cmd = new SqlCommand(cmdText, conn); - cmd.CommandTimeout = 300; - cmd.ExecuteNonQuery(); - } - } - finally - { - conn.Close(); - } - } - } -} \ No newline at end of file diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/StressEngine.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/StressEngine.cs deleted file mode 100644 index 98974723b..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/StressEngine.cs +++ /dev/null @@ -1,209 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Threading; -using System.Diagnostics; -using Monitoring; - -namespace DPStressHarness -{ - public class StressEngine - { - private Random _rnd; - private int _threads; - private int _duration; - private int _threadsRunning; - private bool _continue; - private List _allTests; - private RecordedExceptions _exceptions = new RecordedExceptions(); - private PerfCounters _perfcounters = null; - private static long s_globalRequestsCounter = 0; - - public StressEngine(int threads, int duration, IEnumerable allTests, int seed) - { - if (seed != 0) - { - _rnd = new Random(seed); - } - else - { - Random rndBootstrap = new Random(); - - seed = rndBootstrap.Next(); - - _rnd = new Random(seed); - } - - Console.WriteLine("Seeding stress engine random number generator with {0}\n", seed); - - - _threads = threads; - _duration = duration; - _allTests = new List(); - - List tmpWeightedLookup = new List(); - - foreach (TestBase t in allTests) - { - if (t is StressTest) - { - _allTests.Add(t as StressTest); - } - } - - try - { - _perfcounters = new PerfCounters(); - } - catch (Exception e) - { - Console.WriteLine("Warning: An error occurred initializing performance counters. Performance counters can only be initialized when running with Administrator privileges. Error Message: " + e.Message); - } - } - - public int Run() - { - TraceListener listener = new TextWriterTraceListener(Console.Out); - Trace.Listeners.Add(listener); - Trace.UseGlobalLock = true; - - _threadsRunning = 0; - _continue = true; - - if (_allTests.Count == 0) - { - throw new ArgumentException("The specified assembly doesn't contain any tests to run. Test methods must be decorated with a Test, StressTest, MultiThreadedTest, or ThreadPoolTest attribute."); - } - - // Run any global setup - StressTest firstStressTest = _allTests.Find(t => t is StressTest); - if (null != firstStressTest) - { - firstStressTest.RunGlobalSetup(); - } - - //Monitoring Start - IMonitorLoader _monitorloader = null; - if (TestMetrics.MonitorEnabled) - { - _monitorloader = MonitorLoader.LoadMonitorLoaderAssembly(); - if (_monitorloader != null) - { - _monitorloader.Enabled = TestMetrics.MonitorEnabled; - _monitorloader.HostMachine = TestMetrics.MonitorMachineName; - _monitorloader.TestName = firstStressTest.Title; - _monitorloader.Action(MonitorLoaderUtils.MonitorAction.Start); - } - } - - for (int i = 0; i < _threads; i++) - { - Interlocked.Increment(ref _threadsRunning); - Thread t = new Thread(new ThreadStart(this.RunStressThread)); - t.Start(); - } - - while (_threadsRunning > 0) - { - Thread.Sleep(1000); - } - - //Monitoring Stop - if (TestMetrics.MonitorEnabled) - { - if (_monitorloader != null) - _monitorloader.Action(MonitorLoaderUtils.MonitorAction.Stop); - } - - // Run any global cleanup - if (null != firstStressTest) - { - firstStressTest.RunGlobalCleanup(); - } - - // Write out all exceptions - _exceptions.TraceAllExceptions(); - return _exceptions.GetExceptionsCount(); - } - - - public void RunStressThread() - { - try - { - StressTest[] tests = new StressTest[_allTests.Count]; - List tmpWeightedLookup = new List(); - - for (int i = 0; i < tests.Length; i++) - { - tests[i] = _allTests[i].Clone(); - tests[i].RunSetup(); - - for (int j = 0; j < tests[i].Weight; j++) - { - tmpWeightedLookup.Add(i); - } - } - - int[] weightedLookup = tmpWeightedLookup.ToArray(); - - Stopwatch timer = new Stopwatch(); - long testDuration = (long)_duration * Stopwatch.Frequency; - - timer.Reset(); - timer.Start(); - - while (_continue && timer.ElapsedTicks < testDuration) - { - int n = _rnd.Next(0, weightedLookup.Length); - StressTest t = tests[weightedLookup[n]]; - - if (TestMetrics.PrintMethodName) - { - FakeConsole.WriteLine("{0}: {1}", ++s_globalRequestsCounter, t.Title); - } - - try - { - DeadlockDetection.AddTestThread(); - t.Run(); - if (_perfcounters != null) - _perfcounters.IncrementRequestsCounter(); - } - catch (Exception e) - { - if (_perfcounters != null) - _perfcounters.IncrementExceptionsCounter(); - - t.HandleException(e); - - bool thresholdExceeded = _exceptions.Record(t.Title, e); - if (thresholdExceeded) - { - FakeConsole.WriteLine("Exception Threshold of {0} has been exceeded on {1} - Halting!\n", - TestMetrics.ExceptionThreshold, t.Title); - break; - } - } - finally - { - DeadlockDetection.RemoveThread(); - } - } - - foreach (StressTest t in tests) - { - t.RunCleanup(); - } - } - finally - { - _continue = false; - Interlocked.Decrement(ref _threadsRunning); - } - } - } -} diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/StressTest.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/StressTest.cs deleted file mode 100644 index c2637d5e5..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/StressTest.cs +++ /dev/null @@ -1,155 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Reflection; -using System.Reflection.Emit; -using System.Diagnostics; -using System.Runtime.InteropServices; - -namespace DPStressHarness -{ - internal class StressTest : TestBase - { - private StressTestAttribute _attr; - private object _targetInstance; - private TestMethodDelegate _tmd; - - // TODO: MethodInfo objects below can have associated delegates to improve - // runtime performance. - protected MethodInfo _globalSetupMethod; - protected MethodInfo _globalCleanupMethod; - - public delegate void ExceptionHandler(Exception e); - - /// - /// Cache the global exception handler method reference. It is - /// recommended not to actually use this reference to call the - /// method. Use the delegate instead. - /// - protected MethodInfo _globalExceptionHandlerMethod; - - /// - /// Create a delegate to call global exception handler method. - /// Use this delegate to call test assembly's exception handler. - /// - protected ExceptionHandler _globalExceptionHandlerDelegate; - - public StressTest(StressTestAttribute attr, - MethodInfo testMethodInfo, - MethodInfo globalSetupMethod, - MethodInfo globalCleanupMethod, - Type type, - List setupMethods, - List cleanupMethods, - MethodInfo globalExceptionHandlerMethod) - : base(attr, testMethodInfo, type, setupMethods, cleanupMethods) - { - _attr = attr; - _globalSetupMethod = globalSetupMethod; - _globalCleanupMethod = globalCleanupMethod; - _globalExceptionHandlerMethod = globalExceptionHandlerMethod; - } - - public StressTest Clone() - { - StressTest t = new StressTest(_attr, this._testMethod, this._globalSetupMethod, this._globalCleanupMethod, this._type, this._setupMethods, this._cleanupMethods, this._globalExceptionHandlerMethod); - return t; - } - - private void InitTargetInstance() - { - _targetInstance = _type.GetConstructor(Type.EmptyTypes).Invoke(null); - - // Create a delegate for exception handling on _targetInstance - if (_globalExceptionHandlerMethod != null) - { - _globalExceptionHandlerDelegate = (ExceptionHandler)_globalExceptionHandlerMethod.CreateDelegate( - typeof(ExceptionHandler), - _targetInstance - ); - } - } - - /// - /// Perform any global initialization for the test assembly. For example, make the connection to the database, load a workspace, etc. - /// - public void RunGlobalSetup() - { - if (null == _targetInstance) - { - InitTargetInstance(); - } - - if (null != _globalSetupMethod) - { - _globalSetupMethod.Invoke(_targetInstance, null); - } - } - - /// - /// Run any per-thread setup needed - /// - public void RunSetup() - { - // create an instance of the class that defines the test method. - if (null == _targetInstance) - { - InitTargetInstance(); - } - _tmd = CreateTestMethodDelegate(); - - // Set variation fields on the target instance - SetVariations(_targetInstance); - - // Execute the setup phase for this thread. - ExecuteSetupPhase(_targetInstance); - } - - /// - /// Execute the test method(s) - /// - public override void Run() - { - _tmd(_targetInstance); - } - - /// - /// Provide an opportunity to handle the exception - /// - /// - public void HandleException(Exception e) - { - if (null != _globalExceptionHandlerDelegate) - { - _globalExceptionHandlerDelegate(e); - } - } - - /// - /// Run any per-thread cleanup for the test - /// - public void RunCleanup() - { - ExecuteCleanupPhase(_targetInstance); - } - - /// - /// Run final global cleanup for the test assembly. Could be used to release resources or for reporting, etc. - /// - public void RunGlobalCleanup() - { - if (null != _globalCleanupMethod) - { - _globalCleanupMethod.Invoke(_targetInstance, null); - } - } - - public int Weight - { - get { return _attr.Weight; } - } - } -} diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/System.Data.StressRunner.csproj b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/System.Data.StressRunner.csproj deleted file mode 100644 index 574f39783..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/System.Data.StressRunner.csproj +++ /dev/null @@ -1,47 +0,0 @@ - - - {529B187A-DE4F-4F4D-9FBB-D3D416FDB683} - DPStressHarness - Exe - 3021 - netcoreapp-Unix-Debug;netcoreapp-Unix-Release;netcoreapp-Windows_NT-Debug;netcoreapp-Windows_NT-Release;netfx-Windows_NT-Debug;netfx-Windows_NT-Release;uap-Windows_NT-Debug;uap-Windows_NT-Release - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/Test.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/Test.cs deleted file mode 100644 index 63eb1149f..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/Test.cs +++ /dev/null @@ -1,119 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Reflection; -using System.Reflection.Emit; -using System.Diagnostics; -using System.Runtime.InteropServices; - - -namespace DPStressHarness -{ - internal class Test : TestBase - { - private TestAttribute _attr; - private int _overrideIterations = -1; - private int _overrideWarmup = -1; - - public Test(TestAttribute attr, - MethodInfo testMethodInfo, - Type type, - List setupMethods, - List cleanupMethods) - : base(attr, testMethodInfo, type, setupMethods, cleanupMethods) - { - _attr = attr; - } - - - public override void Run() - { - try - { - // create an instance of the class that defines the test method. - object targetInstance = _type.GetConstructor(Type.EmptyTypes).Invoke(null); - - SetVariations(targetInstance); - - ExecuteSetupPhase(targetInstance); - - TestMethodDelegate tmd = CreateTestMethodDelegate(); - - ExecuteTest(targetInstance, tmd); - - ExecuteCleanupPhase(targetInstance); - - LogTest(); - } - catch (TargetInvocationException e) - { - LogTestFailure(e.InnerException.ToString()); - } - catch (Exception e) - { - LogTestFailure(e.ToString()); - } - } - - protected void LogTest() - { - Logger logger = new Logger(TestMetrics.RunLabel, TestMetrics.IsOfficial, TestMetrics.Milestone, TestMetrics.Branch); - logger.AddTest(this.Title); - - LogStandardMetrics(logger); - - logger.AddTestMetric(Constants.TEST_METRIC_ELAPSED_SECONDS, string.Format("{0:F2}", TestMetrics.ElapsedSeconds), "sec", false); - - logger.Save(); - - Console.WriteLine("{0}: Elapsed Seconds={1:F2}, Working Set={2}, Peak Working Set={3}, Private Bytes={4}", - this.Title, - TestMetrics.ElapsedSeconds, - TestMetrics.WorkingSet, - TestMetrics.PeakWorkingSet, - TestMetrics.PrivateBytes); - } - - - private void ExecuteTest(object targetInstance, TestMethodDelegate tmd) - { - int warmupIterations = _attr.WarmupIterations; - int testIterations = _attr.TestIterations; - - if (_overrideIterations >= 0) - { - testIterations = _overrideIterations; - } - if (_overrideWarmup >= 0) - { - warmupIterations = _overrideWarmup; - } - - /** do some cleanup to make memory tests more accurate **/ - System.GC.Collect(); - System.GC.WaitForPendingFinalizers(); - System.GC.Collect(); - - IntPtr h = MemApi.GetCurrentProcess(); - bool fRes = MemApi.SetProcessWorkingSetSize(h, -1, -1); - /****/ - - System.Threading.Thread.Sleep(10000); - - for (int i = 0; i < warmupIterations; i++) - { - tmd(targetInstance); - } - - TestMetrics.StartCollection(); - for (int i = 0; i < testIterations; i++) - { - tmd(targetInstance); - } - TestMetrics.StopCollection(); - } - } -} diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/TestAttribute.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/TestAttribute.cs deleted file mode 100644 index 3146c2d80..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/TestAttribute.cs +++ /dev/null @@ -1,272 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; - -namespace DPStressHarness -{ - public enum TestPriority - { - BVT = 0, - High = 1, - Medium = 2, - Low = 3 - } - - public class TestAttributeBase : Attribute - { - private string _title; - private string _description = "none provided"; - private string _applicationName = "unknown"; - private string _improvement = "ADONETV3"; - private string _owner = "unknown"; - private string _category = "unknown"; - private TestPriority _priority = TestPriority.BVT; - - public TestAttributeBase(string title) - { - _title = title; - } - - public string Title - { - get { return _title; } - set { _title = value; } - } - - public string Description - { - get { return _description; } - set { _description = value; } - } - - public string Improvement - { - get { return _improvement; } - set { _improvement = value; } - } - - public string Owner - { - get { return _owner; } - set { _owner = value; } - } - - public string ApplicationName - { - get { return _applicationName; } - set { _applicationName = value; } - } - - public TestPriority Priority - { - get { return _priority; } - set { _priority = value; } - } - - public string Category - { - get { return _category; } - set { _category = value; } - } - } - - [AttributeUsage(AttributeTargets.Method, AllowMultiple = true)] - public class TestAttribute : TestAttributeBase - { - private int _warmupIterations = 0; - private int _testIterations = 1; - - public TestAttribute(string title) : base(title) - { - } - - public int WarmupIterations - { - get - { - string propName = "WarmupIterations"; - - if (TestMetrics.Overrides.ContainsKey(propName)) - { - return int.Parse(TestMetrics.Overrides[propName]); - } - else - { - return _warmupIterations; - } - } - set { _warmupIterations = value; } - } - - public int TestIterations - { - get - { - string propName = "TestIterations"; - - if (TestMetrics.Overrides.ContainsKey(propName)) - { - return int.Parse(TestMetrics.Overrides[propName]); - } - else - { - return _testIterations; - } - } - set { _testIterations = value; } - } - } - - [AttributeUsage(AttributeTargets.Method, AllowMultiple = true)] - public class StressTestAttribute : TestAttributeBase - { - private int _weight = 1; - - public StressTestAttribute(string title) - : base(title) - { - } - - public int Weight - { - get { return _weight; } - set { _weight = value; } - } - } - - [AttributeUsage(AttributeTargets.Method, AllowMultiple = true)] - public class MultiThreadedTestAttribute : TestAttributeBase - { - private int _warmupDuration = 60; - private int _testDuration = 60; - private int _threads = 16; - - public MultiThreadedTestAttribute(string title) - : base(title) - { - } - - public int WarmupDuration - { - get - { - string propName = "WarmupDuration"; - - if (TestMetrics.Overrides.ContainsKey(propName)) - { - return int.Parse(TestMetrics.Overrides[propName]); - } - else - { - return _warmupDuration; - } - } - set { _warmupDuration = value; } - } - - public int TestDuration - { - get - { - string propName = "TestDuration"; - - if (TestMetrics.Overrides.ContainsKey(propName)) - { - return int.Parse(TestMetrics.Overrides[propName]); - } - else - { - return _testDuration; - } - } - set { _testDuration = value; } - } - - public int Threads - { - get - { - string propName = "Threads"; - - if (TestMetrics.Overrides.ContainsKey(propName)) - { - return int.Parse(TestMetrics.Overrides[propName]); - } - else - { - return _threads; - } - } - set { _threads = value; } - } - } - - [AttributeUsage(AttributeTargets.Method, AllowMultiple = true)] - public class ThreadPoolTestAttribute : TestAttributeBase - { - private int _warmupDuration = 60; - private int _testDuration = 60; - private int _threads = 64; - - public ThreadPoolTestAttribute(string title) - : base(title) - { - } - - public int WarmupDuration - { - get - { - string propName = "WarmupDuration"; - - if (TestMetrics.Overrides.ContainsKey(propName)) - { - return int.Parse(TestMetrics.Overrides[propName]); - } - else - { - return _warmupDuration; - } - } - set { _warmupDuration = value; } - } - - public int TestDuration - { - get - { - string propName = "TestDuration"; - - if (TestMetrics.Overrides.ContainsKey(propName)) - { - return int.Parse(TestMetrics.Overrides[propName]); - } - else - { - return _testDuration; - } - } - set { _testDuration = value; } - } - - public int Threads - { - get - { - string propName = "Threads"; - - if (TestMetrics.Overrides.ContainsKey(propName)) - { - return int.Parse(TestMetrics.Overrides[propName]); - } - else - { - return _threads; - } - } - set { _threads = value; } - } - } -} diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/TestBase.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/TestBase.cs deleted file mode 100644 index 72eb00642..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/TestBase.cs +++ /dev/null @@ -1,173 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Reflection; -using System.Reflection.Emit; -using System.Diagnostics; -using System.Runtime.InteropServices; -using System.Threading; - -namespace DPStressHarness -{ - public abstract class TestBase - { - private TestAttributeBase _attr; - private string _variationSuffix = ""; - - [System.CLSCompliantAttribute(false)] - protected MethodInfo _testMethod; - [System.CLSCompliantAttribute(false)] - protected Type _type; - - [System.CLSCompliantAttribute(false)] - protected List _setupMethods; - - [System.CLSCompliantAttribute(false)] - protected List _cleanupMethods; - - protected delegate void TestMethodDelegate(object t); - - public TestBase(TestAttributeBase attr, - MethodInfo testMethodInfo, - Type type, - List setupMethods, - List cleanupMethods) - { - _attr = attr; - _testMethod = testMethodInfo; - _type = type; - _setupMethods = setupMethods; - _cleanupMethods = cleanupMethods; - } - - public string Title - { - get { return _attr.Title + _variationSuffix; } - } - - public string Description - { - get { return _attr.Description; } - } - - public string Category - { - get { return _attr.Category; } - } - - public TestPriority Priority - { - get { return _attr.Priority; } - } - - public List GetVariations() - { - FieldInfo[] fields = _type.GetFields(BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public); - - List variations = new List(10); - foreach (FieldInfo fi in fields) - { - TestVariationAttribute[] attrs = (TestVariationAttribute[])fi.GetCustomAttributes(typeof(TestVariationAttribute), false); - - foreach (TestVariationAttribute testVarAttr in attrs) - { - if (!variations.Contains(testVarAttr.VariationName)) - { - variations.Add(testVarAttr.VariationName); - } - } - } - - return variations; - } - - public abstract void Run(); - - - protected void ExecuteSetupPhase(object targetInstance) - { - if (_setupMethods != null) - { - foreach (MethodInfo setupMthd in _setupMethods) - { - setupMthd.Invoke(targetInstance, null); - } - } - } - - protected void ExecuteCleanupPhase(object targetInstance) - { - if (_cleanupMethods != null) - { - foreach (MethodInfo cleanupMethod in _cleanupMethods) - { - cleanupMethod.Invoke(targetInstance, null); - } - } - } - - protected void SetVariations(object targetInstance) - { - FieldInfo[] fields = targetInstance.GetType().GetFields(BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public); - - foreach (FieldInfo fi in fields) - { - TestVariationAttribute[] attrs = (TestVariationAttribute[])fi.GetCustomAttributes(typeof(TestVariationAttribute), false); - - foreach (TestVariationAttribute testVarAttr in attrs) - { - foreach (string specifiedVariation in TestMetrics.Variations) - { - if (specifiedVariation.Equals(testVarAttr.VariationName)) - { - fi.SetValue(targetInstance, testVarAttr.VariationValue); - _variationSuffix += "_" + testVarAttr.VariationName; - break; - } - } - } - } - } - - protected TestMethodDelegate CreateTestMethodDelegate() - { - Type[] args = { typeof(object) }; - return new TestMethodDelegate((instance) => _testMethod.Invoke(instance, null)); - } - - - protected void LogTestFailure(string exceptionData) - { - Console.WriteLine("{0}: Failed", this.Title); - Console.WriteLine(exceptionData); - - Logger logger = new Logger(TestMetrics.RunLabel, false, TestMetrics.Milestone, TestMetrics.Branch); - logger.AddTest(this.Title); - logger.AddTestMetric("Test Assembly", _testMethod.Module.FullyQualifiedName, null); - logger.AddTestException(exceptionData); - logger.Save(); - } - - protected void LogStandardMetrics(Logger logger) - { - logger.AddTestMetric(Constants.TEST_METRIC_TEST_ASSEMBLY, _testMethod.Module.FullyQualifiedName, null); - logger.AddTestMetric(Constants.TEST_METRIC_TEST_IMPROVEMENT, _attr.Improvement, null); - logger.AddTestMetric(Constants.TEST_METRIC_TEST_OWNER, _attr.Owner, null); - logger.AddTestMetric(Constants.TEST_METRIC_TEST_CATEGORY, _attr.Category, null); - logger.AddTestMetric(Constants.TEST_METRIC_TEST_PRIORITY, _attr.Priority.ToString(), null); - logger.AddTestMetric(Constants.TEST_METRIC_APPLICATION_NAME, _attr.Improvement, null); - - if (TestMetrics.TargetAssembly != null) - { - logger.AddTestMetric(Constants.TEST_METRIC_TARGET_ASSEMBLY_NAME, (new AssemblyName(TestMetrics.TargetAssembly.FullName)).Name, null); - } - - logger.AddTestMetric(Constants.TEST_METRIC_PEAK_WORKING_SET, string.Format("{0}", TestMetrics.PeakWorkingSet), "bytes"); - logger.AddTestMetric(Constants.TEST_METRIC_WORKING_SET, string.Format("{0}", TestMetrics.WorkingSet), "bytes"); - logger.AddTestMetric(Constants.TEST_METRIC_PRIVATE_BYTES, string.Format("{0}", TestMetrics.PrivateBytes), "bytes"); - } - } -} diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/TestCleanupAttribute.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/TestCleanupAttribute.cs deleted file mode 100644 index 32bc5ee6b..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/TestCleanupAttribute.cs +++ /dev/null @@ -1,16 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; - -namespace DPStressHarness -{ - [AttributeUsage(AttributeTargets.Method, Inherited = true, AllowMultiple = false)] - public class TestCleanupAttribute : Attribute - { - public TestCleanupAttribute() - { - } - } -} diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/TestFinder.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/TestFinder.cs deleted file mode 100644 index 07c9d1cf1..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/TestFinder.cs +++ /dev/null @@ -1,167 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Reflection; -using System.IO; - -namespace DPStressHarness -{ - internal class TestFinder - { - private static AssemblyName s_assemblyName; - - public static AssemblyName AssemblyName - { - get { return s_assemblyName; } - set { s_assemblyName = value; } - } - - public static IEnumerable GetTests(Assembly assembly) - { - List tests = new List(); - - - Type[] typesInModule = null; - try - { - typesInModule = assembly.GetTypes(); - } - catch (ReflectionTypeLoadException ex) - { - Console.WriteLine("ReflectionTypeLoadException Errors"); - foreach (Exception loadEx in ex.LoaderExceptions) - { - Console.WriteLine("\t" + loadEx.Message); - } - } - catch (Exception ex) - { - Console.WriteLine("Error." + ex.Message); - } - - foreach (Type t in typesInModule) - { - MethodInfo[] methods = t.GetMethods(BindingFlags.Instance | BindingFlags.Public); - List setupMethods = new List(); - List cleanupMethods = new List(); - - MethodInfo globalSetupMethod = null; - MethodInfo globalCleanupMethod = null; - MethodInfo globalExceptionHandlerMethod = null; - - foreach (MethodInfo m in methods) - { - GlobalTestSetupAttribute[] globalSetupAttributes = (GlobalTestSetupAttribute[])m.GetCustomAttributes(typeof(GlobalTestSetupAttribute), true); - if (globalSetupAttributes.Length > 0) - { - if (null == globalSetupMethod) - { - globalSetupMethod = m; - } - else - { - throw new NotSupportedException("Only one GlobalTestSetup method may be specified per type."); - } - } - - GlobalTestCleanupAttribute[] globalCleanupAttributes = (GlobalTestCleanupAttribute[])m.GetCustomAttributes(typeof(GlobalTestCleanupAttribute), true); - if (globalCleanupAttributes.Length > 0) - { - if (null == globalCleanupMethod) - { - globalCleanupMethod = m; - } - else - { - throw new NotSupportedException("Only one GlobalTestCleanup method may be specified per type."); - } - } - - GlobalExceptionHandlerAttribute[] globalExceptionHandlerAttributes = (GlobalExceptionHandlerAttribute[])m.GetCustomAttributes(typeof(GlobalExceptionHandlerAttribute), true); - if (globalExceptionHandlerAttributes.Length > 0) - { - if (null == globalExceptionHandlerMethod) - { - globalExceptionHandlerMethod = m; - } - else - { - throw new NotSupportedException("Only one GlobalExceptionHandler method may be specified."); - } - } - - TestSetupAttribute[] testSetupAttrs = (TestSetupAttribute[])m.GetCustomAttributes(typeof(TestSetupAttribute), true); - if (testSetupAttrs.Length > 0) - { - setupMethods.Add(m); ; - } - - TestCleanupAttribute[] testCleanupAttrs = (TestCleanupAttribute[])m.GetCustomAttributes(typeof(TestCleanupAttribute), true); - if (testCleanupAttrs.Length > 0) - { - cleanupMethods.Add(m); ; - } - } - - foreach (MethodInfo m in methods) - { - // add single-threaded tests to the list - TestAttribute[] testAttrs = (TestAttribute[])m.GetCustomAttributes(typeof(TestAttribute), true); - foreach (TestAttribute attr in testAttrs) - { - tests.Add(new Test(attr, m, t, setupMethods, cleanupMethods)); - } - - // add any declared stress tests. - StressTestAttribute[] stressTestAttrs = (StressTestAttribute[])m.GetCustomAttributes(typeof(StressTestAttribute), true); - foreach (StressTestAttribute attr in stressTestAttrs) - { - if (TestMetrics.IncludeTest(attr) && MatchFilter(attr)) - tests.Add(new StressTest(attr, m, globalSetupMethod, globalCleanupMethod, t, setupMethods, cleanupMethods, globalExceptionHandlerMethod)); - } - - // add multi-threaded (non thread pool) tests to the list - MultiThreadedTestAttribute[] multiThreadedTestAttrs = (MultiThreadedTestAttribute[])m.GetCustomAttributes(typeof(MultiThreadedTestAttribute), true); - foreach (MultiThreadedTestAttribute attr in multiThreadedTestAttrs) - { - if (TestMetrics.IncludeTest(attr)) - tests.Add(new MultiThreadedTest(attr, m, t, setupMethods, cleanupMethods)); - } - - // add multi-threaded (with thread pool) tests to the list - ThreadPoolTestAttribute[] threadPoolTestAttrs = (ThreadPoolTestAttribute[])m.GetCustomAttributes(typeof(ThreadPoolTestAttribute), true); - foreach (ThreadPoolTestAttribute attr in threadPoolTestAttrs) - { - if (TestMetrics.IncludeTest(attr)) - tests.Add(new ThreadPoolTest(attr, m, t, setupMethods, cleanupMethods)); - } - } - } - - return tests; - } - - private static bool MatchFilter(StressTestAttribute attr) - { - // This change should not have impacts on any existing tests. - // 1. If filter is not provided in command line, we do not apply filter and select all the tests. - // 2. If current test attribute (such as StressTestAttribute) does not implement ITestAttriuteFilter, it is not affected and still selected. - - if (string.IsNullOrEmpty(TestMetrics.Filter)) - { - return true; - } - - var filter = attr as ITestAttributeFilter; - if (filter == null) - { - return true; - } - - return filter.MatchFilter(TestMetrics.Filter); - } - } -} diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/TestMetrics.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/TestMetrics.cs deleted file mode 100644 index 9af4147ca..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/TestMetrics.cs +++ /dev/null @@ -1,362 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; -using System.Diagnostics; -using System.Collections.Generic; -using System.Reflection; -using System.Globalization; - -namespace DPStressHarness -{ - public static class TestMetrics - { - private const string _defaultValue = "unknown"; - - private static bool s_valid = false; - private static bool s_reset = true; - private static Stopwatch s_stopwatch = new Stopwatch(); - private static long s_workingSet; - private static long s_peakWorkingSet; - private static long s_privateBytes; - private static Assembly s_targetAssembly; - private static string s_fileVersion = _defaultValue; - private static string s_privateBuild = _defaultValue; - private static string s_runLabel = DateTime.Now.ToString(); - private static Dictionary s_overrides; - private static List s_variations = null; - private static List s_selectedTests = null; - private static bool s_isOfficial = false; - private static string s_milestone = _defaultValue; - private static string s_branch = _defaultValue; - private static List s_categories = null; - private static bool s_profileMeasuredCode = false; - private static int s_stressThreads = 16; - private static int s_stressDuration = -1; - private static int? s_exceptionThreshold = null; - private static bool s_monitorenabled = false; - private static string s_monitormachinename = "localhost"; - private static int s_randomSeed = 0; - private static string s_filter = null; - private static bool s_printMethodName = false; - - /// Starts the sample profiler. - /// - /// Do not inline to avoid errors when the functionality is not used - /// and the profiling DLL is not available. - /// - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - private static void InternalStartProfiling() - { - // Microsoft.VisualStudio.Profiler.DataCollection.StartProfile( - // Microsoft.VisualStudio.Profiler.ProfileLevel.Global, - // Microsoft.VisualStudio.Profiler.DataCollection.CurrentId); - } - - /// Stops the sample profiler. - /// - /// Do not inline to avoid errors when the functionality is not used - /// and the profiling DLL is not available. - /// - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - private static void InternalStopProfiling() - { - // Microsoft.VisualStudio.Profiler.DataCollection.StopProfile( - // Microsoft.VisualStudio.Profiler.ProfileLevel.Global, - // Microsoft.VisualStudio.Profiler.DataCollection.CurrentId); - } - - public static void StartCollection() - { - s_valid = false; - - s_stopwatch.Reset(); - s_stopwatch.Start(); - s_reset = true; - } - - public static void StartProfiling() - { - if (s_profileMeasuredCode) - { - InternalStartProfiling(); - } - } - - public static void StopProfiling() - { - if (s_profileMeasuredCode) - { - InternalStopProfiling(); - } - } - - public static void StopCollection() - { - s_stopwatch.Stop(); - - Process p = Process.GetCurrentProcess(); - s_workingSet = p.WorkingSet64; - s_peakWorkingSet = p.PeakWorkingSet64; - s_privateBytes = p.PrivateMemorySize64; - - s_valid = true; - } - - public static void PauseTimer() - { - s_stopwatch.Stop(); - } - - public static void UnPauseTimer() - { - if (s_reset) - { - s_stopwatch.Reset(); - s_reset = false; - } - - s_stopwatch.Start(); - } - - private static void ThrowIfInvalid() - { - if (!s_valid) throw new InvalidOperationException("Collection must be stopped before accessing this metric."); - } - - public static void Reset() - { - s_valid = false; - s_reset = true; - s_stopwatch = new Stopwatch(); - s_workingSet = new long(); - s_peakWorkingSet = new long(); - s_privateBytes = new long(); - s_targetAssembly = null; - s_fileVersion = _defaultValue; - s_privateBuild = _defaultValue; - s_runLabel = DateTime.Now.ToString(); - s_overrides = null; - s_variations = null; - s_selectedTests = null; - s_isOfficial = false; - s_milestone = _defaultValue; - s_branch = _defaultValue; - s_categories = null; - s_profileMeasuredCode = false; - s_stressThreads = 16; - s_stressDuration = -1; - s_exceptionThreshold = null; - s_monitorenabled = false; - s_monitormachinename = "localhost"; - s_randomSeed = 0; - s_filter = null; - s_printMethodName = false; - } - - public static string FileVersion - { - get { return s_fileVersion; } - set { s_fileVersion = value; } - } - - public static string PrivateBuild - { - get { return s_privateBuild; } - set { s_privateBuild = value; } - } - - public static Assembly TargetAssembly - { - get { return s_targetAssembly; } - - set - { - s_targetAssembly = value; - s_fileVersion = VersionUtil.GetFileVersion(s_targetAssembly.ManifestModule.FullyQualifiedName); - s_privateBuild = VersionUtil.GetPrivateBuild(s_targetAssembly.ManifestModule.FullyQualifiedName); - } - } - - public static string RunLabel - { - get { return s_runLabel; } - set { s_runLabel = value; } - } - - public static string Milestone - { - get { return s_milestone; } - set { s_milestone = value; } - } - - public static string Branch - { - get { return s_branch; } - set { s_branch = value; } - } - - public static bool IsOfficial - { - get { return s_isOfficial; } - set { s_isOfficial = value; } - } - - public static bool IsDefaultValue(string val) - { - return val.Equals(_defaultValue); - } - - public static double ElapsedSeconds - { - get - { - ThrowIfInvalid(); - return s_stopwatch.ElapsedMilliseconds / 1000.0; - } - } - - public static long WorkingSet - { - get - { - ThrowIfInvalid(); - return s_workingSet; - } - } - - public static long PeakWorkingSet - { - get - { - ThrowIfInvalid(); - return s_peakWorkingSet; - } - } - - public static long PrivateBytes - { - get - { - ThrowIfInvalid(); - return s_privateBytes; - } - } - - - public static Dictionary Overrides - { - get - { - if (s_overrides == null) - { - s_overrides = new Dictionary(8); - } - return s_overrides; - } - } - - public static List Variations - { - get - { - if (s_variations == null) - { - s_variations = new List(8); - } - - return s_variations; - } - } - - public static List SelectedTests - { - get - { - if (s_selectedTests == null) - { - s_selectedTests = new List(8); - } - - return s_selectedTests; - } - } - - public static bool IncludeTest(TestAttributeBase test) - { - if (s_selectedTests == null || s_selectedTests.Count == 0) - return true; // user has no selection - run all - else - return s_selectedTests.Contains(test.Title); - } - - public static List Categories - { - get - { - if (s_categories == null) - { - s_categories = new List(8); - } - - return s_categories; - } - } - - public static bool ProfileMeasuredCode - { - get { return s_profileMeasuredCode; } - set { s_profileMeasuredCode = value; } - } - - public static int StressDuration - { - get { return s_stressDuration; } - set { s_stressDuration = value; } - } - - public static int StressThreads - { - get { return s_stressThreads; } - set { s_stressThreads = value; } - } - - public static int? ExceptionThreshold - { - get { return s_exceptionThreshold; } - set { s_exceptionThreshold = value; } - } - - public static bool MonitorEnabled - { - get { return s_monitorenabled; } - set { s_monitorenabled = value; } - } - - - public static string MonitorMachineName - { - get { return s_monitormachinename; } - set { s_monitormachinename = value; } - } - - public static int RandomSeed - { - get { return s_randomSeed; } - set { s_randomSeed = value; } - } - - public static string Filter - { - get { return s_filter; } - set { s_filter = value; } - } - - public static bool PrintMethodName - { - get { return s_printMethodName; } - set { s_printMethodName = value; } - } - } -} diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/TestVariationAttribute.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/TestVariationAttribute.cs deleted file mode 100644 index e54acfa96..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/TestVariationAttribute.cs +++ /dev/null @@ -1,35 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Text; - -namespace DPStressHarness -{ - [AttributeUsage(AttributeTargets.Field, Inherited = true, AllowMultiple = true)] - public class TestVariationAttribute : Attribute - { - private string _variationName; - private object _variationValue; - - public TestVariationAttribute(string variationName, object variationValue) - { - _variationName = variationName; - _variationValue = variationValue; - } - - public string VariationName - { - get { return _variationName; } - set { _variationName = value; } - } - - public object VariationValue - { - get { return _variationValue; } - set { _variationValue = value; } - } - } -} diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/ThreadPoolTest.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/ThreadPoolTest.cs deleted file mode 100644 index f065c1531..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/ThreadPoolTest.cs +++ /dev/null @@ -1,174 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Reflection; -using System.Reflection.Emit; -using System.Diagnostics; -using System.Runtime.InteropServices; -using System.Threading; - -namespace DPStressHarness -{ - internal class ThreadPoolTest : TestBase - { - private ThreadPoolTestAttribute _attr; - public static bool _continue; - public static int _threadsRunning; - public static int _rps; - public static WaitCallback _waitCallback = new WaitCallback(RunThreadPool); - public static Exception _firstException = null; - - private struct TestInfo - { - public object _instance; - public TestMethodDelegate _delegateTest; - } - - public ThreadPoolTest(ThreadPoolTestAttribute attr, - MethodInfo testMethodInfo, - Type type, - List setupMethods, - List cleanupMethods) - : base(attr, testMethodInfo, type, setupMethods, cleanupMethods) - { - _attr = attr; - } - - public override void Run() - { - try - { - Stopwatch timer = new Stopwatch(); - long warmupDuration = (long)_attr.WarmupDuration * Stopwatch.Frequency; - long testDuration = (long)_attr.TestDuration * Stopwatch.Frequency; - int threads = _attr.Threads; - - TestInfo[] info = new TestInfo[threads]; - ConstructorInfo targetConstructor = _type.GetConstructor(Type.EmptyTypes); - - for (int i = 0; i < threads; i++) - { - info[i] = new TestInfo(); - info[i]._instance = targetConstructor.Invoke(null); - info[i]._delegateTest = CreateTestMethodDelegate(); - - ExecuteSetupPhase(info[i]._instance); - } - - _firstException = null; - _continue = true; - _rps = 0; - - for (int i = 0; i < threads; i++) - { - Interlocked.Increment(ref _threadsRunning); - ThreadPool.QueueUserWorkItem(_waitCallback, info[i]); - } - - timer.Reset(); - timer.Start(); - - while (timer.ElapsedTicks < warmupDuration) - { - Thread.Sleep(1000); - } - - int warmupRequests = Interlocked.Exchange(ref _rps, 0); - timer.Reset(); - timer.Start(); - TestMetrics.StartCollection(); - - while (timer.ElapsedTicks < testDuration) - { - Thread.Sleep(1000); - } - - int requests = Interlocked.Exchange(ref _rps, 0); - double elapsedSeconds = timer.ElapsedTicks / Stopwatch.Frequency; - TestMetrics.StopCollection(); - _continue = false; - - while (_threadsRunning > 0) - { - Thread.Sleep(1000); - } - - for (int i = 0; i < threads; i++) - { - ExecuteCleanupPhase(info[i]._instance); - } - - double rps = (double)requests / elapsedSeconds; - - if (_firstException == null) - { - LogTest(rps); - } - else - { - LogTestFailure(_firstException.ToString()); - } - } - catch (TargetInvocationException e) - { - LogTestFailure(e.InnerException.ToString()); - } - catch (Exception e) - { - LogTestFailure(e.ToString()); - } - } - - - public static void RunThreadPool(object state) - { - try - { - TestInfo info = (TestInfo)state; - info._delegateTest(info._instance); - Interlocked.Increment(ref _rps); - } - catch (Exception e) - { - if (_firstException == null) - { - _firstException = e; - } - _continue = false; - } - finally - { - if (_continue) - { - ThreadPool.QueueUserWorkItem(_waitCallback, state); - } - else - { - Interlocked.Decrement(ref _threadsRunning); - } - } - } - - protected void LogTest(double rps) - { - Logger logger = new Logger(TestMetrics.RunLabel, TestMetrics.IsOfficial, TestMetrics.Milestone, TestMetrics.Branch); - logger.AddTest(this.Title); - - LogStandardMetrics(logger); - - logger.AddTestMetric(Constants.TEST_METRIC_RPS, string.Format("{0:F2}", rps), "rps", true); - - logger.Save(); - - Console.WriteLine("{0}: Requests per Second={1:F2}, Working Set={2}, Peak Working Set={3}, Private Bytes={4}", - this.Title, - rps, - TestMetrics.WorkingSet, - TestMetrics.PeakWorkingSet, - TestMetrics.PrivateBytes); - } - } -} \ No newline at end of file diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/VersionUtil.cs b/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/VersionUtil.cs deleted file mode 100644 index dd4e76eda..000000000 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/VersionUtil.cs +++ /dev/null @@ -1,42 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; -using System.IO; -using System.Runtime.InteropServices; -using System.Diagnostics; -using System.Reflection; - -#pragma warning disable 618 - -namespace DPStressHarness -{ - public class VersionUtil - { - public static string GetFileVersion(string moduleName) - { - FileVersionInfo info = GetFileVersionInfo(moduleName); - return info.FileVersion; - } - - public static string GetPrivateBuild(string moduleName) - { - FileVersionInfo info = GetFileVersionInfo(moduleName); - return info.PrivateBuild; - } - - private static FileVersionInfo GetFileVersionInfo(string moduleName) - { - if (File.Exists(moduleName)) - { - return FileVersionInfo.GetVersionInfo(Path.GetFullPath(moduleName)); - } - else - { - string moduleInRuntimeDir = AppContext.BaseDirectory + moduleName; - return FileVersionInfo.GetVersionInfo(moduleInRuntimeDir); - } - } - } -} diff --git a/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/Configurations.props b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/Configurations.props deleted file mode 100644 index 24168e5ec..000000000 --- a/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/Configurations.props +++ /dev/null @@ -1,8 +0,0 @@ - - - - netstandard-Unix; - netstandard-Windows_NT; - - - \ No newline at end of file diff --git a/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj index d84d1b7d5..d83201d9e 100644 --- a/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj +++ b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj @@ -4,8 +4,11 @@ Microsoft.SqlServer.TDS.EndPoint Microsoft.SqlServer.TDS.EndPoint false - $(NetFrameworkMinimum) + $(NetMinimum) false + $(NoWarn);CA1001;CA1051;CA1068;CA1069;CA1309;CA1310;CA1419;CA1711;CA1805;CA1806;CA1816;CA1822;CA1830;CA1834;CA1835;CA1836;CA1840;CA1844;CA2016;CA2101;CA2200;CA2201;CA2208;CA2219;CA2249;CA2251;CA5359;CA5366; + $(NoWarn);CS0168;CS0649; + $(NoWarn);IDE0073;SYSLIB0004;nullable; diff --git a/src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/Configurations.props b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/Configurations.props deleted file mode 100644 index 24168e5ec..000000000 --- a/src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/Configurations.props +++ /dev/null @@ -1,8 +0,0 @@ - - - - netstandard-Unix; - netstandard-Windows_NT; - - - \ No newline at end of file diff --git a/src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/TDS.Servers.csproj b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/TDS.Servers.csproj index c50b98f99..a50d89aee 100644 --- a/src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/TDS.Servers.csproj +++ b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/TDS.Servers.csproj @@ -4,8 +4,11 @@ Microsoft.SqlServer.TDS.Servers Microsoft.SqlServer.TDS.Servers false - $(NetFrameworkMinimum) + $(NetMinimum) false + $(NoWarn);CA1001;CA1068;CA1069;CA1304;CA1309;CA1310;CA1419;CA1711;CA1805;CA1806;CA1816;CA1822;CA1830;CA1834;CA1835;CA1836;CA1840;CA1844;CA1847;CA2016;CA2101;CA2200;CA2201;CA2208;CA2219;CA2249;CA2251;CA5366; + $(NoWarn);CS0168;CS0649; + $(NoWarn);IDE0073;SYSLIB0004;SYSLIB0023;nullable; diff --git a/src/System.Data.SqlClient/tests/Tools/TDS/TDS/Configurations.props b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/Configurations.props deleted file mode 100644 index 24168e5ec..000000000 --- a/src/System.Data.SqlClient/tests/Tools/TDS/TDS/Configurations.props +++ /dev/null @@ -1,8 +0,0 @@ - - - - netstandard-Unix; - netstandard-Windows_NT; - - - \ No newline at end of file diff --git a/src/System.Data.SqlClient/tests/Tools/TDS/TDS/FeatureExtAck/TDSFeatureExtAckFederatedAuthenticationOption.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/FeatureExtAck/TDSFeatureExtAckFederatedAuthenticationOption.cs index f37ebb400..410f56eed 100644 --- a/src/System.Data.SqlClient/tests/Tools/TDS/TDS/FeatureExtAck/TDSFeatureExtAckFederatedAuthenticationOption.cs +++ b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/FeatureExtAck/TDSFeatureExtAckFederatedAuthenticationOption.cs @@ -52,7 +52,7 @@ public TDSFeatureExtAckFederatedAuthenticationOption(byte[] clientNonce, byte[] } else if (signature != null && signature.Length != s_signatureDataLength) { - throw new ArgumentOutOfRangeException("signature"); + throw new ArgumentOutOfRangeException(nameof(signature)); } // Save nonce diff --git a/src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDS.csproj b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDS.csproj index e23575bbc..51126db9f 100644 --- a/src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDS.csproj +++ b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDS.csproj @@ -4,6 +4,9 @@ Microsoft.SqlServer.TDS Microsoft.SqlServer.TDS false - $(NetFrameworkMinimum) + $(NetMinimum) + $(NoWarn);CA1001;CA1068;CA1069;CA1309;CA1310;CA1419;CA1507;CA1711;CA1716;CA1805;CA1806;CA1816;CA1822;CA1830;CA1834;CA1835;CA1836;CA1840;CA1844;CA2016;CA2101;CA2200;CA2201;CA2208;CA2211;CA2219;CA2249;CA2251;CA5366; + $(NoWarn);CS0168;CS0649; + $(NoWarn);IDE0073;SYSLIB0004;SYSLIB0023;nullable; From 14a92315223862b55903e19c9d99fc38f7b64a0b Mon Sep 17 00:00:00 2001 From: Cheena Malhotra Date: Thu, 5 Sep 2024 09:14:36 -0700 Subject: [PATCH 03/23] Include PackageVersion --- Directory.Packages.props | 1 + 1 file changed, 1 insertion(+) diff --git a/Directory.Packages.props b/Directory.Packages.props index bba042b30..0ece544ae 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -19,6 +19,7 @@ + From 69033dea47d4648aef9e024c01d8400af84bc6ba Mon Sep 17 00:00:00 2001 From: Cheena Malhotra Date: Mon, 23 Sep 2024 17:36:50 -0700 Subject: [PATCH 04/23] Remove Stress tests + fix building System.Data.SqlClient --- Directory.Build.props | 4 ---- Directory.Packages.props | 2 +- .../Windows/Kernel32/Interop.CloseHandle.cs | 0 .../Interop/Windows/SspiCli/GlobalSSPI.cs | 0 .../Interop/Windows/SspiCli/SSPIInterface.cs | 0 .../SspiCli/SecurityPackageInfoClass.cs | 0 .../src/System.Data.SqlClient.csproj | 20 +++++-------------- .../System.Data.SqlClient.Tests.csproj | 3 --- .../SQL/LocalDBTest/LocalDBTest.cs | 3 --- .../ManualTests/SQL/ParameterTest/TvpTest.cs | 2 +- ....Data.SqlClient.ManualTesting.Tests.csproj | 4 +--- .../TDS/TDS.EndPoint/TDS.EndPoint.csproj | 14 ++++++------- .../Tools/TDS/TDS.Servers/TDS.Servers.csproj | 7 ++----- .../tests/Tools/TDS/TDS/TDS.csproj | 7 ++----- 14 files changed, 19 insertions(+), 47 deletions(-) rename src/{Common/src/CoreLib => System.Data.SqlClient/src/Common}/Interop/Windows/Kernel32/Interop.CloseHandle.cs (100%) rename src/{Common/src => System.Data.SqlClient/src/Common}/Interop/Windows/SspiCli/GlobalSSPI.cs (100%) rename src/{Common/src => System.Data.SqlClient/src/Common}/Interop/Windows/SspiCli/SSPIInterface.cs (100%) rename src/{Common/src => System.Data.SqlClient/src/Common}/Interop/Windows/SspiCli/SecurityPackageInfoClass.cs (100%) diff --git a/Directory.Build.props b/Directory.Build.props index 2f70d46a6..3b037bf93 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -21,8 +21,4 @@ $(RepositoryEngineeringDir)BeforeTargetFrameworkInference.targets - - - - diff --git a/Directory.Packages.props b/Directory.Packages.props index b1e2508fa..2773ae6c2 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -15,7 +15,7 @@ - + diff --git a/src/Common/src/CoreLib/Interop/Windows/Kernel32/Interop.CloseHandle.cs b/src/System.Data.SqlClient/src/Common/Interop/Windows/Kernel32/Interop.CloseHandle.cs similarity index 100% rename from src/Common/src/CoreLib/Interop/Windows/Kernel32/Interop.CloseHandle.cs rename to src/System.Data.SqlClient/src/Common/Interop/Windows/Kernel32/Interop.CloseHandle.cs diff --git a/src/Common/src/Interop/Windows/SspiCli/GlobalSSPI.cs b/src/System.Data.SqlClient/src/Common/Interop/Windows/SspiCli/GlobalSSPI.cs similarity index 100% rename from src/Common/src/Interop/Windows/SspiCli/GlobalSSPI.cs rename to src/System.Data.SqlClient/src/Common/Interop/Windows/SspiCli/GlobalSSPI.cs diff --git a/src/Common/src/Interop/Windows/SspiCli/SSPIInterface.cs b/src/System.Data.SqlClient/src/Common/Interop/Windows/SspiCli/SSPIInterface.cs similarity index 100% rename from src/Common/src/Interop/Windows/SspiCli/SSPIInterface.cs rename to src/System.Data.SqlClient/src/Common/Interop/Windows/SspiCli/SSPIInterface.cs diff --git a/src/Common/src/Interop/Windows/SspiCli/SecurityPackageInfoClass.cs b/src/System.Data.SqlClient/src/Common/Interop/Windows/SspiCli/SecurityPackageInfoClass.cs similarity index 100% rename from src/Common/src/Interop/Windows/SspiCli/SecurityPackageInfoClass.cs rename to src/System.Data.SqlClient/src/Common/Interop/Windows/SspiCli/SecurityPackageInfoClass.cs diff --git a/src/System.Data.SqlClient/src/System.Data.SqlClient.csproj b/src/System.Data.SqlClient/src/System.Data.SqlClient.csproj index c2801998f..2587998f2 100644 --- a/src/System.Data.SqlClient/src/System.Data.SqlClient.csproj +++ b/src/System.Data.SqlClient/src/System.Data.SqlClient.csproj @@ -11,9 +11,7 @@ netcoreapp netstandard true - $(NoWarn);CA1001;CA1068;CA1069;CA1309;CA1310;CA1419;CA1711;CA1805;CA1806;CA1816;CA1822;CA1830;CA1834;CA1835;CA1836;CA1840;CA1844;CA2016;CA2101;CA2200;CA2201;CA2208;CA2219;CA2249;CA2251;CA5366; - $(NoWarn);CS0168;CS0649; - $(NoWarn);IDE0073;SYSLIB0004;nullable; + $(NoWarn);CA1001;CA1068;CA1069;CA1309;CA1310;CA1419;CA1711;CA1805;CA1806;CA1816;CA1822;CA1830;CA1834;CA1835;CA1836;CA1840;CA1844;CA2016;CA2101;CA2200;CA2201;CA2208;CA2219;CA2249;CA2251;CA5366;CS0168;CS0649;IDE0073;SYSLIB0004;nullable; false $(DefineConstants);netstandard $(DefineConstants);netcoreapp @@ -417,18 +415,10 @@ Common\System\Net\Security\NetEventSource.Security.Windows.cs - - Common\CoreLib\Interop\Windows\Kernel32\Interop.CloseHandle.cs - - - Common\Interop\Windows\SspiCli\GlobalSSPI.cs - - - Common\Interop\Windows\SspiCli\SSPIInterface.cs - - - Common\Interop\Windows\SspiCli\SecurityPackageInfoClass.cs - + + + + Common\Interop\Windows\SspiCli\SecurityPackageInfo.cs diff --git a/src/System.Data.SqlClient/tests/FunctionalTests/System.Data.SqlClient.Tests.csproj b/src/System.Data.SqlClient/tests/FunctionalTests/System.Data.SqlClient.Tests.csproj index cb5c4100d..16d03933c 100644 --- a/src/System.Data.SqlClient/tests/FunctionalTests/System.Data.SqlClient.Tests.csproj +++ b/src/System.Data.SqlClient/tests/FunctionalTests/System.Data.SqlClient.Tests.csproj @@ -30,14 +30,11 @@ - - - {d1392b54-998a-4f27-bc17-4ce149117bcc} Address diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/LocalDBTest/LocalDBTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/LocalDBTest/LocalDBTest.cs index 9df411365..9f05b3d65 100644 --- a/src/System.Data.SqlClient/tests/ManualTests/SQL/LocalDBTest/LocalDBTest.cs +++ b/src/System.Data.SqlClient/tests/ManualTests/SQL/LocalDBTest/LocalDBTest.cs @@ -10,7 +10,6 @@ public static class LocalDBTest { private static bool IsLocalDBEnvironmentSet() => DataTestUtility.IsLocalDBInstalled(); - [SkipOnTargetFramework(TargetFrameworkMonikers.Uap)] // No Registry support on UAP [ConditionalFact(nameof(IsLocalDBEnvironmentSet))] public static void LocalDBConnectionTest() { @@ -20,7 +19,6 @@ public static void LocalDBConnectionTest() OpenConnection(builder.ConnectionString); } - [SkipOnTargetFramework(TargetFrameworkMonikers.Uap)] // No Registry support on UAP [ConditionalFact(nameof(IsLocalDBEnvironmentSet))] public static void LocalDBMarsTest() { @@ -31,7 +29,6 @@ public static void LocalDBMarsTest() OpenConnection(builder.ConnectionString); } - [SkipOnTargetFramework(TargetFrameworkMonikers.Uap)] // No Registry support on UAP [ConditionalFact(nameof(IsLocalDBEnvironmentSet))] public static void InvalidDBTest() { diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpTest.cs index a46588d8c..bd179f6b9 100644 --- a/src/System.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpTest.cs +++ b/src/System.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpTest.cs @@ -43,7 +43,7 @@ public class TvpTest // data value and server consts private string _connStr; - [ActiveIssue(27858, TestPlatforms.AnyUnix)] + [ActiveIssue("27858", TestPlatforms.AnyUnix)] [ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup))] public void TestMain() { diff --git a/src/System.Data.SqlClient/tests/ManualTests/System.Data.SqlClient.ManualTesting.Tests.csproj b/src/System.Data.SqlClient/tests/ManualTests/System.Data.SqlClient.ManualTesting.Tests.csproj index 952214f2f..296cfef3a 100644 --- a/src/System.Data.SqlClient/tests/ManualTests/System.Data.SqlClient.ManualTesting.Tests.csproj +++ b/src/System.Data.SqlClient/tests/ManualTests/System.Data.SqlClient.ManualTesting.Tests.csproj @@ -2,9 +2,7 @@ $(NetMinimum)-windows false - $(NoWarn);CA1001;CA1068;CA1069;CA1309;CA1310;CA1419;CA1711;CA1805;CA1806;CA1816;CA1822;CA1830;CA1834;CA1835;CA1836;CA1840;CA1844;CA2016;CA2101;CA2200;CA2201;CA2208;CA2219;CA2249;CA2251;CA5366; - $(NoWarn);CS0168;CS0649; - $(NoWarn);IDE0073;SYSLIB0004;nullable; + $(NoWarn);CA1001;CA1068;CA1069;CA1309;CA1310;CA1419;CA1507;CA1711;CA1716;CA1805;CA1806;CA1816;CA1822;CA1830;CA1834;CA1835;CA1836;CA1840;CA1844;CA2016;CA2101;CA2200;CA2201;CA2208;CA2211;CA2219;CA2249;CA2251;CA5366;CS0168;CS0649;IDE0073;SYSLIB0004;SYSLIB0023;nullable; diff --git a/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj index 39a0004d9..ebadbec56 100644 --- a/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj +++ b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj @@ -1,14 +1,14 @@ - {1FF891B4-D3DE-4CCE-887C-CB48F5351A45} Microsoft.SqlServer.TDS.EndPoint Microsoft.SqlServer.TDS.EndPoint false - $(NetMinimum)-windows + netstandard2.0 false - $(NoWarn);CA1001;CA1051;CA1068;CA1069;CA1309;CA1310;CA1419;CA1711;CA1805;CA1806;CA1816;CA1822;CA1830;CA1834;CA1835;CA1836;CA1840;CA1844;CA2016;CA2101;CA2200;CA2201;CA2208;CA2219;CA2249;CA2251;CA5359;CA5366; - $(NoWarn);CS0168;CS0649; - $(NoWarn);IDE0073;SYSLIB0004;nullable; + $(NoWarn);CA1001;CA1068;CA1069;CA1309;CA1310;CA1419;CA1507;CA1711;CA1716;CA1805;CA1806;CA1816;CA1822;CA1830;CA1834;CA1835;CA1836;CA1840;CA1844;CA2016;CA2101;CA2200;CA2201;CA2208;CA2211;CA2219;CA2249;CA2251;CA5366;CS0168;CS0649;IDE0073;SYSLIB0004;SYSLIB0023;nullable; + + + $([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) @@ -42,14 +42,14 @@ - + Common\Interop\Windows\Interop.Libraries.cs - + diff --git a/src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/TDS.Servers.csproj b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/TDS.Servers.csproj index 6989f69a8..96c9c71f7 100644 --- a/src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/TDS.Servers.csproj +++ b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/TDS.Servers.csproj @@ -1,14 +1,11 @@ - {978063D3-FBB5-4E10-8C45-67C90BE1B931} Microsoft.SqlServer.TDS.Servers Microsoft.SqlServer.TDS.Servers false - $(NetMinimum)-windows + netstandard2.0 false - $(NoWarn);CA1001;CA1068;CA1069;CA1304;CA1309;CA1310;CA1419;CA1711;CA1805;CA1806;CA1816;CA1822;CA1830;CA1834;CA1835;CA1836;CA1840;CA1844;CA1847;CA2016;CA2101;CA2200;CA2201;CA2208;CA2219;CA2249;CA2251;CA5366; - $(NoWarn);CS0168;CS0649; - $(NoWarn);IDE0073;SYSLIB0004;SYSLIB0023;nullable; + $(NoWarn);CA1001;CA1068;CA1069;CA1309;CA1310;CA1419;CA1507;CA1711;CA1716;CA1805;CA1806;CA1816;CA1822;CA1830;CA1834;CA1835;CA1836;CA1840;CA1844;CA2016;CA2101;CA2200;CA2201;CA2208;CA2211;CA2219;CA2249;CA2251;CA5366;CS0168;CS0649;IDE0073;SYSLIB0004;SYSLIB0023;nullable; diff --git a/src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDS.csproj b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDS.csproj index cab3c33c4..98324e4f3 100644 --- a/src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDS.csproj +++ b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDS.csproj @@ -1,12 +1,9 @@ - {8DC9D1A0-351B-47BC-A90F-B9DA542550E9} Microsoft.SqlServer.TDS Microsoft.SqlServer.TDS false - $(NetMinimum)-windows - $(NoWarn);CA1001;CA1068;CA1069;CA1309;CA1310;CA1419;CA1507;CA1711;CA1716;CA1805;CA1806;CA1816;CA1822;CA1830;CA1834;CA1835;CA1836;CA1840;CA1844;CA2016;CA2101;CA2200;CA2201;CA2208;CA2211;CA2219;CA2249;CA2251;CA5366; - $(NoWarn);CS0168;CS0649; - $(NoWarn);IDE0073;SYSLIB0004;SYSLIB0023;nullable; + netstandard2.0 + $(NoWarn);CA1001;CA1068;CA1069;CA1309;CA1310;CA1419;CA1507;CA1711;CA1716;CA1805;CA1806;CA1816;CA1822;CA1830;CA1834;CA1835;CA1836;CA1840;CA1844;CA2016;CA2101;CA2200;CA2201;CA2208;CA2211;CA2219;CA2249;CA2251;CA5366;CS0168;CS0649;IDE0073;SYSLIB0004;SYSLIB0023;nullable; From c89a4f461f5233e261767b8ecf4638d706b3f0ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20S=C3=A1nchez=20L=C3=B3pez?= <1175054+carlossanlop@users.noreply.github.com> Date: Mon, 23 Sep 2024 18:16:54 -0700 Subject: [PATCH 05/23] Fix license headers. --- .../tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.cs | 7 +++---- .../tests/ManualTests/SQL/UdtTest/UDTs/Circle/Circle.cs | 7 +++---- .../tests/ManualTests/SQL/UdtTest/UDTs/Circle/Point1.cs | 7 +++---- .../tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Line.cs | 7 +++---- .../tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Point.cs | 7 +++---- .../ManualTests/SQL/UdtTest/UDTs/Utf8String/Utf8String.cs | 7 +++---- .../tests/Tools/TDS/TDS.EndPoint/ITDSServerSession.cs | 3 --- .../tests/Tools/TDS/TDS.EndPoint/SSPI/SSPIContext.Unix.cs | 1 - .../Tools/TDS/TDS.EndPoint/SSPI/SSPIContext.Windows.cs | 1 - 9 files changed, 18 insertions(+), 29 deletions(-) diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.cs index a7a25b541..da25fc329 100644 --- a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.cs +++ b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.cs @@ -1,7 +1,6 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + using System; using System.IO; using System.Data.SqlTypes; diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Circle.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Circle.cs index 9bd80d116..d5ba7352c 100644 --- a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Circle.cs +++ b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Circle.cs @@ -1,7 +1,6 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + using System; using System.Text; using System.Data.SqlTypes; diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Point1.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Point1.cs index 1ace33c40..77f658b52 100644 --- a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Point1.cs +++ b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Point1.cs @@ -1,7 +1,6 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + using System; using System.IO; using System.Data.SqlTypes; diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Line.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Line.cs index d4df14a63..950301124 100644 --- a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Line.cs +++ b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Line.cs @@ -1,7 +1,6 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + using System; using System.Text; using System.Data.SqlTypes; diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Point.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Point.cs index dfea2d7e5..6c6fe860d 100644 --- a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Point.cs +++ b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Point.cs @@ -1,7 +1,6 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + using System; using System.IO; using System.Data.SqlTypes; diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Utf8String.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Utf8String.cs index 1c875f7e2..c9bf66ce0 100644 --- a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Utf8String.cs +++ b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Utf8String.cs @@ -1,7 +1,6 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + using System; using System.Data.SqlTypes; using System.Globalization; diff --git a/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/ITDSServerSession.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/ITDSServerSession.cs index ca2373f1f..2e96abaf0 100644 --- a/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/ITDSServerSession.cs +++ b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/ITDSServerSession.cs @@ -1,12 +1,9 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. using System; using System.Security.Cryptography.X509Certificates; - using Microsoft.SqlServer.TDS.EndPoint.SSPI; - namespace Microsoft.SqlServer.TDS.EndPoint { /// diff --git a/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/SSPI/SSPIContext.Unix.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/SSPI/SSPIContext.Unix.cs index 3221d9cbc..2ff6f61e5 100644 --- a/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/SSPI/SSPIContext.Unix.cs +++ b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/SSPI/SSPIContext.Unix.cs @@ -1,6 +1,5 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. using System; using System.Collections.Generic; diff --git a/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/SSPI/SSPIContext.Windows.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/SSPI/SSPIContext.Windows.cs index 37f93d9f4..13317ac81 100644 --- a/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/SSPI/SSPIContext.Windows.cs +++ b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/SSPI/SSPIContext.Windows.cs @@ -1,6 +1,5 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. using System; using System.Collections.Generic; From 5ed8a6197bdfa9bcee28167884a0e98145f11842 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20S=C3=A1nchez=20L=C3=B3pez?= <1175054+carlossanlop@users.noreply.github.com> Date: Mon, 23 Sep 2024 18:22:23 -0700 Subject: [PATCH 06/23] Add missing Microsoft.Samples.SqlServer using directive in tests. --- .../tests/ManualTests/SQL/UdtTest/UdtTest2.cs | 1 + .../tests/ManualTests/SQL/UdtTest/UdtTestHelpers.cs | 1 + 2 files changed, 2 insertions(+) diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UdtTest2.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UdtTest2.cs index cd9392c91..7928c195f 100644 --- a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UdtTest2.cs +++ b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UdtTest2.cs @@ -7,6 +7,7 @@ using System.Text; using Microsoft.SqlServer.Server; using Xunit; +using Microsoft.Samples.SqlServer; namespace System.Data.SqlClient.ManualTesting.Tests { diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UdtTestHelpers.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UdtTestHelpers.cs index 635106591..0b5c955d5 100644 --- a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UdtTestHelpers.cs +++ b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UdtTestHelpers.cs @@ -6,6 +6,7 @@ using System.IO; using System.Reflection; using System.Text; +using Microsoft.Samples.SqlServer; namespace System.Data.SqlClient.ManualTesting.Tests { From 0d81963897f93dd754251338b70a8c6a7ea485aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20S=C3=A1nchez=20L=C3=B3pez?= <1175054+carlossanlop@users.noreply.github.com> Date: Mon, 23 Sep 2024 18:17:39 -0700 Subject: [PATCH 07/23] Compare $(TargetPlatformIdentifier) with "!= windows" instead of "== unix". --- .../tests/Tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj index ebadbec56..98b9f08c2 100644 --- a/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj +++ b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj @@ -49,7 +49,7 @@ - + From c0a052214f5153f152306b564d2e157867cb7ec0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20S=C3=A1nchez=20L=C3=B3pez?= <1175054+carlossanlop@users.noreply.github.com> Date: Mon, 23 Sep 2024 19:03:50 -0700 Subject: [PATCH 08/23] Use OS == Windows_NT instead --- .../tests/Tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj index 98b9f08c2..a183e420b 100644 --- a/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj +++ b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj @@ -42,14 +42,14 @@ - + Common\Interop\Windows\Interop.Libraries.cs - + From c5a1a3c4785c58536148c07e4e6c108bfdd070ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20S=C3=A1nchez=20L=C3=B3pez?= <1175054+carlossanlop@users.noreply.github.com> Date: Mon, 23 Sep 2024 18:23:11 -0700 Subject: [PATCH 09/23] xUnit2000: The literal or constant value 0 should be passed as the 'expected' argument in the call to 'Assert.Equal(expected, actual)' in method 'RollbackTransactionTest' on type 'TransactionTestWorker'. Swap the parameter values. xUnit2004: Do not use Assert.Equal() to check for boolean conditions. Use Assert.True or Assert.False instead. xUnit2009: Do not use Assert.True() to check for substrings. Use Assert.StartsWith instead. xUnit2013: Do not use Assert.Equal() to check for collection size. Use Assert.Single instead. xUnit2017: Do not use Assert.True() to check if a value exists in a collection. Use Assert.Contains instead. In manual tests project, suppress CA1051: Do not declare visible instance fields. CS1069: The type name 'WindowsIdentity' could not be found in the namespace 'System.Security.Principal'. This type has been forwarded to assembly 'System.Security.Principal.Windows, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' Consider adding a reference to that assembly. CA1715: Prefix generic type parameter name RandomizerType with T. CA1825: Avoid unnecessary zero-length array allocations. Use Array.Empty() instead or collection expression. CA1837: Use Environment.ProcessId instead of Process.GetCurrentProcess().Id CA1847: Use 'string.Contains(char)' instead of 'string.Contains(string)' when searching for a single character CA2215: Ensure that method calls 'base.Dispose(bool)' in all possible control flow paths --- Directory.Packages.props | 61 ++++++++++--------- .../tests/FunctionalTests/CloneTests.cs | 2 +- .../SqlBulkCopyColumnMappingCollectionTest.cs | 12 ++-- .../SqlConnectionTest.RetrieveStatistics.cs | 6 +- .../FunctionalTests/SqlErrorCollectionTest.cs | 2 +- .../FunctionalTests/SqlFacetAttributeTest.cs | 4 +- .../MultipleResultsTest.cs | 1 + .../SQL/AdapterTest/AdapterTest.cs | 2 +- .../CommandCancelTest/CommandCancelTest.cs | 2 +- .../SQL/ConnectivityTests/ConnectivityTest.cs | 2 +- .../SQL/DataReaderTest/DataReaderTest.cs | 6 +- .../SQL/InstanceNameTest/InstanceNameTest.cs | 2 +- .../SQL/ParameterTest/ParametersTest.cs | 8 +-- .../ManualTests/SQL/ParameterTest/TvpTest.cs | 1 + .../SQL/RandomStressTest/Randomizer.cs | 20 +++--- .../SQL/RandomStressTest/RandomizerPool.cs | 30 ++++----- .../SQL/TransactionTest/TransactionTest.cs | 6 +- .../SQL/UdtTest/SqlServerTypesTest.cs | 12 ++-- .../ManualTests/SQL/UdtTest/UdtTestHelpers.cs | 4 +- .../SQL/WeakRefTest/WeakRefTest.cs | 10 +-- ....Data.SqlClient.ManualTesting.Tests.csproj | 2 +- .../TDS/TDS.EndPoint/TDS.EndPoint.csproj | 11 ++++ 22 files changed, 110 insertions(+), 96 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 2773ae6c2..9c40d43d9 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -1,30 +1,31 @@ - - - - true - true - - $(NoWarn);NU1507 - - - - - - - - - - - - - - - - - - - - - - - + + + + true + true + + $(NoWarn);NU1507 + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/System.Data.SqlClient/tests/FunctionalTests/CloneTests.cs b/src/System.Data.SqlClient/tests/FunctionalTests/CloneTests.cs index 8c3fafb15..a726dedd5 100644 --- a/src/System.Data.SqlClient/tests/FunctionalTests/CloneTests.cs +++ b/src/System.Data.SqlClient/tests/FunctionalTests/CloneTests.cs @@ -32,7 +32,7 @@ public void CloneSqlCommand() command.CommandText = "select 1"; command.CommandTimeout = 45; command.ResetCommandTimeout(); - Assert.Equal(command.CommandTimeout, 30); + Assert.Equal(30, command.CommandTimeout); command.CommandType = CommandType.Text; SqlParameter parameter = command.CreateParameter(); diff --git a/src/System.Data.SqlClient/tests/FunctionalTests/SqlBulkCopyColumnMappingCollectionTest.cs b/src/System.Data.SqlClient/tests/FunctionalTests/SqlBulkCopyColumnMappingCollectionTest.cs index 932313985..4e2f07cb1 100644 --- a/src/System.Data.SqlClient/tests/FunctionalTests/SqlBulkCopyColumnMappingCollectionTest.cs +++ b/src/System.Data.SqlClient/tests/FunctionalTests/SqlBulkCopyColumnMappingCollectionTest.cs @@ -392,7 +392,7 @@ public void InsertAndClear_BehavesAsExpected() Assert.Same(item3, collection[2]); collection.Clear(); - Assert.Equal(0, collection.Count); + Assert.Empty(collection); collection.Add(item1); collection.Add(item3); @@ -407,7 +407,7 @@ public void InsertAndClear_BehavesAsExpected() Assert.Same(item3, collection[2]); collection.Clear(); - Assert.Equal(0, collection.Count); + Assert.Empty(collection); IList list = collection; list.Insert(0, item1); @@ -446,11 +446,11 @@ public void Remove_BehavesAsExpected() SqlBulkCopyColumnMappingCollection collection = CreateCollection(item1, item2); collection.Remove(item1); - Assert.Equal(1, collection.Count); + Assert.Single(collection); Assert.Same(item2, collection[0]); collection.Remove(item2); - Assert.Equal(0, collection.Count); + Assert.Empty(collection); // The explicit implementation of IList.Remove throws ArgumentException if // the item isn't in the collection, but the public Remove method does not @@ -488,11 +488,11 @@ public void RemoveAt_BehavesAsExpected() Assert.Same(item3, collection[1]); collection.RemoveAt(1); - Assert.Equal(1, collection.Count); + Assert.Single(collection); Assert.Same(item2, collection[0]); collection.RemoveAt(0); - Assert.Equal(0, collection.Count); + Assert.Empty(collection); IList list = CreateCollection(item1, item2, item3); diff --git a/src/System.Data.SqlClient/tests/FunctionalTests/SqlConnectionTest.RetrieveStatistics.cs b/src/System.Data.SqlClient/tests/FunctionalTests/SqlConnectionTest.RetrieveStatistics.cs index 97b0120a2..fef9f9e56 100644 --- a/src/System.Data.SqlClient/tests/FunctionalTests/SqlConnectionTest.RetrieveStatistics.cs +++ b/src/System.Data.SqlClient/tests/FunctionalTests/SqlConnectionTest.RetrieveStatistics.cs @@ -307,7 +307,7 @@ public void RetrieveStatistics_IDictionary_GetEnumerator_Success() Assert.Same(e.Key, e.Entry.Key); Assert.Same(e.Value, e.Entry.Value); - Assert.True(s_retrieveStatisticsKeys.Contains(e.Entry.Key)); + Assert.Contains(e.Entry.Key, s_retrieveStatisticsKeys); } Assert.False(e.MoveNext()); @@ -352,7 +352,7 @@ public void RetrieveStatistics_IEnumerable_GetEnumerator_Success() Assert.NotNull(entry.Value); Assert.IsType(entry.Value); - Assert.True(s_retrieveStatisticsKeys.Contains(entry.Key)); + Assert.Contains(entry.Key, s_retrieveStatisticsKeys); } Assert.False(e.MoveNext()); @@ -461,7 +461,7 @@ public void RetrieveStatistics_Keys_GetEnumerator_Success() { Assert.True(e.MoveNext()); Assert.NotNull(e.Current); - Assert.True(s_retrieveStatisticsKeys.Contains(e.Current)); + Assert.Contains(e.Current, s_retrieveStatisticsKeys); } Assert.False(e.MoveNext()); diff --git a/src/System.Data.SqlClient/tests/FunctionalTests/SqlErrorCollectionTest.cs b/src/System.Data.SqlClient/tests/FunctionalTests/SqlErrorCollectionTest.cs index e7ef7233a..409c1781c 100644 --- a/src/System.Data.SqlClient/tests/FunctionalTests/SqlErrorCollectionTest.cs +++ b/src/System.Data.SqlClient/tests/FunctionalTests/SqlErrorCollectionTest.cs @@ -145,7 +145,7 @@ private static SqlErrorCollection CreateCollection() catch (SqlException ex) { Assert.NotNull(ex.Errors); - Assert.Equal(1, ex.Errors.Count); + Assert.Single(ex.Errors); return ex.Errors; } diff --git a/src/System.Data.SqlClient/tests/FunctionalTests/SqlFacetAttributeTest.cs b/src/System.Data.SqlClient/tests/FunctionalTests/SqlFacetAttributeTest.cs index 3e61aec3c..8b0ee1787 100644 --- a/src/System.Data.SqlClient/tests/FunctionalTests/SqlFacetAttributeTest.cs +++ b/src/System.Data.SqlClient/tests/FunctionalTests/SqlFacetAttributeTest.cs @@ -20,8 +20,8 @@ public void Basic() attrib.Precision = 234; attrib.Scale = 345; - Assert.Equal(true, attrib.IsFixedLength); - Assert.Equal(false, attrib.IsNullable); + Assert.True(attrib.IsFixedLength); + Assert.False(attrib.IsNullable); Assert.Equal(123, attrib.MaxSize); Assert.Equal(234, attrib.Precision); Assert.Equal(345, attrib.Scale); diff --git a/src/System.Data.SqlClient/tests/ManualTests/ProviderAgnostic/MultipleResultsTest/MultipleResultsTest.cs b/src/System.Data.SqlClient/tests/ManualTests/ProviderAgnostic/MultipleResultsTest/MultipleResultsTest.cs index bb4e2b3f1..eb82126e5 100644 --- a/src/System.Data.SqlClient/tests/ManualTests/ProviderAgnostic/MultipleResultsTest/MultipleResultsTest.cs +++ b/src/System.Data.SqlClient/tests/ManualTests/ProviderAgnostic/MultipleResultsTest/MultipleResultsTest.cs @@ -340,6 +340,7 @@ protected override void Dispose(bool disposing) ((IDisposable)_output).Dispose(); } _output = null; + base.Dispose(disposing); } public override void Flush() diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/AdapterTest/AdapterTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/AdapterTest/AdapterTest.cs index b820a3009..4fbbdd553 100644 --- a/src/System.Data.SqlClient/tests/ManualTests/SQL/AdapterTest/AdapterTest.cs +++ b/src/System.Data.SqlClient/tests/ManualTests/SQL/AdapterTest/AdapterTest.cs @@ -14,7 +14,7 @@ namespace System.Data.SqlClient.ManualTesting.Tests { public class AdapterTest { - private char[] _appendNewLineIndentBuffer = new char[0]; + private char[] _appendNewLineIndentBuffer = Array.Empty(); // data value and server consts private const string MagicName = "Magic"; diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/CommandCancelTest/CommandCancelTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/CommandCancelTest/CommandCancelTest.cs index 698052cd8..1fa20f255 100644 --- a/src/System.Data.SqlClient/tests/ManualTests/SQL/CommandCancelTest/CommandCancelTest.cs +++ b/src/System.Data.SqlClient/tests/ManualTests/SQL/CommandCancelTest/CommandCancelTest.cs @@ -260,7 +260,7 @@ private static void TimeOutDuringRead(string constr) proxy.PauseCopying(); string errorMessage = SystemDataResourceManager.Instance.SQL_Timeout; Exception exception = Assert.Throws(() => reader.GetValue(0)); - Assert.True(exception.Message.Contains(errorMessage)); + Assert.Contains(errorMessage, exception.Message); // Return everything to normal and close proxy.ResumeCopying(); diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/ConnectivityTests/ConnectivityTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/ConnectivityTests/ConnectivityTest.cs index ce4739275..6f1276dd0 100644 --- a/src/System.Data.SqlClient/tests/ManualTests/SQL/ConnectivityTests/ConnectivityTest.cs +++ b/src/System.Data.SqlClient/tests/ManualTests/SQL/ConnectivityTests/ConnectivityTest.cs @@ -98,7 +98,7 @@ public static void ProcessIdTest() { SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(DataTestUtility.TcpConnStr); string sqlProviderName = builder.ApplicationName; - string sqlProviderProcessID = System.Diagnostics.Process.GetCurrentProcess().Id.ToString(); + string sqlProviderProcessID = Environment.ProcessId.ToString(); using (SqlConnection sqlConnection = new SqlConnection(builder.ConnectionString)) { diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/DataReaderTest/DataReaderTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/DataReaderTest/DataReaderTest.cs index e1d0e0a44..478f2250a 100644 --- a/src/System.Data.SqlClient/tests/ManualTests/SQL/DataReaderTest/DataReaderTest.cs +++ b/src/System.Data.SqlClient/tests/ManualTests/SQL/DataReaderTest/DataReaderTest.cs @@ -57,8 +57,8 @@ public static void MultiQuerySchema() } while (reader.NextResult()); - Assert.True(columnNames.Contains("ColInteger")); - Assert.True(columnNames.Contains("ColString")); + Assert.Contains("ColInteger", columnNames); + Assert.Contains("ColString", columnNames); } } } @@ -148,4 +148,4 @@ private static bool IsColumnBitSet(SqlConnection con, string selectQuery, int in return columnSetPresent; } } -} \ No newline at end of file +} diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/InstanceNameTest/InstanceNameTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/InstanceNameTest/InstanceNameTest.cs index 962b34787..4e1290faa 100644 --- a/src/System.Data.SqlClient/tests/ManualTests/SQL/InstanceNameTest/InstanceNameTest.cs +++ b/src/System.Data.SqlClient/tests/ManualTests/SQL/InstanceNameTest/InstanceNameTest.cs @@ -23,7 +23,7 @@ public static void ConnectToSQLWithInstanceNameTest() bool proceed = true; string dataSourceStr = builder.DataSource.Replace("tcp:", ""); string[] serverNamePartsByBackSlash = dataSourceStr.Split('\\'); - if (!dataSourceStr.Contains(",") && serverNamePartsByBackSlash.Length == 2) + if (!dataSourceStr.Contains(',') && serverNamePartsByBackSlash.Length == 2) { string hostname = serverNamePartsByBackSlash[0]; proceed = !string.IsNullOrWhiteSpace(hostname) && IsBrowserAlive(hostname); diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/ParametersTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/ParametersTest.cs index 1b4abb4dc..3d88a9a17 100644 --- a/src/System.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/ParametersTest.cs +++ b/src/System.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/ParametersTest.cs @@ -85,7 +85,7 @@ public static void CodeCoverageSqlClient() opc.RemoveAt(0); new SqlCommand().Parameters.Clear(); - new SqlCommand().Parameters.CopyTo(new object[0], 0); + new SqlCommand().Parameters.CopyTo(Array.Empty(), 0); Assert.False(new SqlCommand().Parameters.GetEnumerator().MoveNext(), "FAILED: Expected MoveNext to be false"); DataTestUtility.AssertThrowsWrapper(() => new SqlCommand().Parameters.Add(0), "The SqlParameterCollection only accepts non-null SqlParameter type objects, not Int32 objects."); @@ -138,7 +138,7 @@ public static void Test_WithEnumValue_ShouldInferToUnderlyingType() var cmd = new SqlCommand("select @input", conn); cmd.Parameters.AddWithValue("@input", MyEnum.B); object value = cmd.ExecuteScalar(); - Assert.Equal((MyEnum)value, MyEnum.B); + Assert.Equal(MyEnum.B, (MyEnum)value); } } @@ -159,7 +159,7 @@ public static void Test_WithOutputEnumParameter_ShouldReturnEnum() cmd.ExecuteNonQuery(); - Assert.Equal((MyEnum)outputParam.Value, MyEnum.B); + Assert.Equal(MyEnum.B, (MyEnum)outputParam.Value); } } @@ -172,7 +172,7 @@ public static void Test_WithDecimalValue_ShouldReturnDecimal() var cmd = new SqlCommand("select @foo", conn); cmd.Parameters.AddWithValue("@foo", new SqlDecimal(0.5)); var result = (decimal)cmd.ExecuteScalar(); - Assert.Equal(result, (decimal)0.5); + Assert.Equal((decimal)0.5, result); } } diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpTest.cs index bd179f6b9..adc761382 100644 --- a/src/System.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpTest.cs +++ b/src/System.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/TvpTest.cs @@ -227,6 +227,7 @@ protected override void Dispose(bool disposing) ((IDisposable)_output).Dispose(); } _output = null; + base.Dispose(disposing); } public override void Flush() diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/RandomStressTest/Randomizer.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/RandomStressTest/Randomizer.cs index 8381b1143..0d62930e0 100644 --- a/src/System.Data.SqlClient/tests/ManualTests/SQL/RandomStressTest/Randomizer.cs +++ b/src/System.Data.SqlClient/tests/ManualTests/SQL/RandomStressTest/Randomizer.cs @@ -96,17 +96,17 @@ public static State Parse(string strState) /// creates a new randomizer from seed /// Target Randomizer implementation must have an explicit c-tor that accepts seed only! /// - public static RandomizerType Create(int seed) - where RandomizerType : Randomizer, new() + public static TRandomizerType Create(int seed) + where TRandomizerType : Randomizer, new() { - if (typeof(RandomizerType) == typeof(Randomizer)) + if (typeof(TRandomizerType) == typeof(Randomizer)) { // optimization for Randomizer itself to avoid reflection call - return (RandomizerType)new Randomizer(seed); + return (TRandomizerType)new Randomizer(seed); } else { - return (RandomizerType)Activator.CreateInstance(typeof(RandomizerType), new object[] { seed }); + return (TRandomizerType)Activator.CreateInstance(typeof(TRandomizerType), new object[] { seed }); } } @@ -114,17 +114,17 @@ public static RandomizerType Create(int seed) /// Recreates randomizer from the state, state must not be empty! /// Target Randomizer implementation must have an explicit c-tor that accepts state only and calls into base c-tor(state)! /// - public static RandomizerType Create(State state) - where RandomizerType : Randomizer, new() + public static TRandomizerType Create(State state) + where TRandomizerType : Randomizer, new() { - if (typeof(RandomizerType) == typeof(Randomizer)) + if (typeof(TRandomizerType) == typeof(Randomizer)) { // optimization for Randomizer itself to avoid redundant construction - return (RandomizerType)new Randomizer(state); + return (TRandomizerType)new Randomizer(state); } else { - return (RandomizerType)Activator.CreateInstance(typeof(RandomizerType), new object[] { state }); + return (TRandomizerType)Activator.CreateInstance(typeof(TRandomizerType), new object[] { state }); } } diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/RandomStressTest/RandomizerPool.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/RandomStressTest/RandomizerPool.cs index bd193fab4..88b67551e 100644 --- a/src/System.Data.SqlClient/tests/ManualTests/SQL/RandomStressTest/RandomizerPool.cs +++ b/src/System.Data.SqlClient/tests/ManualTests/SQL/RandomStressTest/RandomizerPool.cs @@ -152,10 +152,10 @@ public bool ReproMode /// Create the root scope of the randomizer, this method is thread safe! /// Note that scopes themselves are NOT thread-safe, while the pool is. /// - public Scope RootScope() - where RandomizerType : Randomizer, new() + public Scope RootScope() + where TRandomizerType : Randomizer, new() { - return new Scope(this, null); + return new Scope(this, null); } /// @@ -227,15 +227,15 @@ internal interface IScope /// /// represents a randomizer scope, that makes use of Randomizer or derived types /// - public class Scope : IScope, IDisposable - where RandomizerType : Randomizer, new() + public class Scope : IScope, IDisposable + where TRandomizerType : Randomizer, new() { private readonly RandomizerPool _pool; - private RandomizerType _current; + private TRandomizerType _current; internal Randomizer.State[] _scopeStates; private IScope _previousScope; - public RandomizerType Current + public TRandomizerType Current { get { @@ -256,7 +256,7 @@ internal Scope(RandomizerPool pool, IScope parent) t_currentScope = this; _pool = pool; - RandomizerType current; + TRandomizerType current; _pool.CreateScopeRandomizer(parent, out _scopeStates, out current); // mark the scope as constructed @@ -296,17 +296,17 @@ public void Dispose() /// creates a new scope with Randomizer type or derived /// /// - public Scope NewScope() - where NestedRandomizerType : Randomizer, new() + public Scope NewScope() + where TNestedRandomizerType : Randomizer, new() { IScope newScope; - if (typeof(NestedRandomizerType) == typeof(Randomizer)) + if (typeof(TNestedRandomizerType) == typeof(Randomizer)) newScope = new Scope(_pool, this); // to ensure later casting works fine else - newScope = new Scope(_pool, this); + newScope = new Scope(_pool, this); - return (Scope)newScope; + return (Scope)newScope; } /// @@ -348,8 +348,8 @@ private void SaveReproInternal(string reproFile, IScope scope) /// /// saves the repro data for specific scope /// - public void SaveRepro(string reproFile, Scope scope) - where RandomizerType : Randomizer, new() + public void SaveRepro(string reproFile, Scope scope) + where TRandomizerType : Randomizer, new() { SaveReproInternal(reproFile, scope); } diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/TransactionTest/TransactionTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/TransactionTest/TransactionTest.cs index 2fec91e52..9d270685d 100644 --- a/src/System.Data.SqlClient/tests/ManualTests/SQL/TransactionTest/TransactionTest.cs +++ b/src/System.Data.SqlClient/tests/ManualTests/SQL/TransactionTest/TransactionTest.cs @@ -217,7 +217,7 @@ private void CommitTransactionTest() int count = 0; while (reader.Read()) { count++; } Assert.True(count == 1, "Error: incorrect number of rows in table after update."); - Assert.Equal(count, 1); + Assert.Equal(1, count); } } } @@ -253,7 +253,7 @@ private void RollbackTransactionTest() Assert.False(reader.HasRows, "Error Rollback Test : incorrect number of rows in table after rollback."); int count = 0; while (reader.Read()) count++; - Assert.Equal(count, 0); + Assert.Equal(0, count); } connection.Close(); @@ -302,7 +302,7 @@ private void ScopedTransactionTest() Assert.True(reader.HasRows, "Error Scoped Transaction Test : incorrect number of rows in table after rollback to save state one."); int count = 0; while (reader.Read()) count++; - Assert.Equal(count, 1); + Assert.Equal(1, count); } tx.Rollback(); diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/SqlServerTypesTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/SqlServerTypesTest.cs index 3307bce38..f57126ecb 100644 --- a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/SqlServerTypesTest.cs +++ b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/SqlServerTypesTest.cs @@ -255,21 +255,21 @@ public static void TestUdtSchemaMetadata() // Validate Microsoft.SqlServer.Types.SqlHierarchyId, Microsoft.SqlServer.Types, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91 column = columns[0]; - Assert.Equal(column.ColumnName, "col0"); + Assert.Equal("col0", column.ColumnName); Assert.True(column.DataTypeName.EndsWith(".hierarchyid"), $"Unexpected DataTypeName \"{column.DataTypeName}\""); Assert.NotNull(column.UdtAssemblyQualifiedName); AssertSqlUdtAssemblyQualifiedName(column.UdtAssemblyQualifiedName, "Microsoft.SqlServer.Types.SqlHierarchyId"); // Validate Microsoft.SqlServer.Types.SqlGeometry, Microsoft.SqlServer.Types, Version = 11.0.0.0, Culture = neutral, PublicKeyToken = 89845dcd8080cc91 column = columns[1]; - Assert.Equal(column.ColumnName, "col1"); + Assert.Equal("col1", column.ColumnName); Assert.True(column.DataTypeName.EndsWith(".geometry"), $"Unexpected DataTypeName \"{column.DataTypeName}\""); Assert.NotNull(column.UdtAssemblyQualifiedName); AssertSqlUdtAssemblyQualifiedName(column.UdtAssemblyQualifiedName, "Microsoft.SqlServer.Types.SqlGeometry"); // Validate Microsoft.SqlServer.Types.SqlGeography, Microsoft.SqlServer.Types, Version = 11.0.0.0, Culture = neutral, PublicKeyToken = 89845dcd8080cc91 column = columns[2]; - Assert.Equal(column.ColumnName, "col2"); + Assert.Equal("col2", column.ColumnName); Assert.True(column.DataTypeName.EndsWith(".geography"), $"Unexpected DataTypeName \"{column.DataTypeName}\""); Assert.NotNull(column.UdtAssemblyQualifiedName); AssertSqlUdtAssemblyQualifiedName(column.UdtAssemblyQualifiedName, "Microsoft.SqlServer.Types.SqlGeography"); @@ -357,9 +357,9 @@ private static void AssertSqlUdtAssemblyQualifiedName(string assemblyQualifiedNa Assert.Equal(expectedType, type); Assert.Equal("Microsoft.SqlServer.Types", assembly); - Assert.True(version.StartsWith("Version")); - Assert.True(culture.StartsWith("Culture")); - Assert.True(token.StartsWith("PublicKeyToken")); + Assert.StartsWith("Version", version); + Assert.StartsWith("Culture", culture); + Assert.StartsWith("PublicKeyToken", token); } private static string ToHexString(byte[] bytes) diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UdtTestHelpers.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UdtTestHelpers.cs index 0b5c955d5..219299ab9 100644 --- a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UdtTestHelpers.cs +++ b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UdtTestHelpers.cs @@ -54,7 +54,7 @@ internal static string DumpReaderString(SqlDataReader reader, bool showMetaData) { x = (int)fieldValue.GetType().InvokeMember("X", BindingFlags.GetProperty, null, fieldValue, null); y = (int)fieldValue.GetType().InvokeMember("X", BindingFlags.GetProperty, null, fieldValue, null); - d = (double)fieldValue.GetType().InvokeMember("Distance", BindingFlags.Public | BindingFlags.Default | BindingFlags.Instance | BindingFlags.InvokeMethod, null, fieldValue, new object[] { }); + d = (double)fieldValue.GetType().InvokeMember("Distance", BindingFlags.Public | BindingFlags.Default | BindingFlags.Instance | BindingFlags.InvokeMethod, null, fieldValue, Array.Empty()); builder.Append(string.Format("p.X = {0,3}, p.Y = {1,3}, p.Distance() = {2}", x, y, d)); } else @@ -67,7 +67,7 @@ internal static string DumpReaderString(SqlDataReader reader, bool showMetaData) fNull = (bool)fieldValue.GetType().InvokeMember("IsNull", BindingFlags.GetProperty, null, fieldValue, null); if (!fNull) { - o = fieldValue.GetType().InvokeMember("Center", BindingFlags.Public | BindingFlags.Default | BindingFlags.Instance | BindingFlags.GetProperty, null, fieldValue, new object[] { }); + o = fieldValue.GetType().InvokeMember("Center", BindingFlags.Public | BindingFlags.Default | BindingFlags.Instance | BindingFlags.GetProperty, null, fieldValue, Array.Empty()); builder.Append("Center = " + o); } } diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/WeakRefTest/WeakRefTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/WeakRefTest/WeakRefTest.cs index a717acb20..6bd8dafdd 100644 --- a/src/System.Data.SqlClient/tests/ManualTests/SQL/WeakRefTest/WeakRefTest.cs +++ b/src/System.Data.SqlClient/tests/ManualTests/SQL/WeakRefTest/WeakRefTest.cs @@ -141,21 +141,21 @@ private static void TestReaderNonMarsCase(string caseName, string connectionStri using (SqlDataReader rdr = cmd.ExecuteReader()) { rdr.Read(); - Assert.Equal(rdr.FieldCount, 1); - Assert.Equal(rdr.GetName(0), COLUMN_NAME_2); + Assert.Equal(1, rdr.FieldCount); + Assert.Equal(COLUMN_NAME_2, rdr.GetName(0)); } break; case ReaderVerificationType.ChangeDatabase: con.ChangeDatabase(CHANGE_DATABASE_NAME); - Assert.Equal(con.Database, CHANGE_DATABASE_NAME); + Assert.Equal(CHANGE_DATABASE_NAME, con.Database); break; case ReaderVerificationType.BeginTransaction: cmd.Transaction = con.BeginTransaction(); cmd.CommandText = "select @@trancount"; int tranCount = (int)cmd.ExecuteScalar(); - Assert.Equal(tranCount, 1); + Assert.Equal(1, tranCount); break; } } @@ -221,7 +221,7 @@ private static void TestTransactionSingleCase(string caseName, string connection { cmd.CommandText = "select @@trancount"; int tranCount = (int)cmd.ExecuteScalar(); - Assert.Equal(tranCount, 0); + Assert.Equal(0, tranCount); } } } diff --git a/src/System.Data.SqlClient/tests/ManualTests/System.Data.SqlClient.ManualTesting.Tests.csproj b/src/System.Data.SqlClient/tests/ManualTests/System.Data.SqlClient.ManualTesting.Tests.csproj index 296cfef3a..902da9665 100644 --- a/src/System.Data.SqlClient/tests/ManualTests/System.Data.SqlClient.ManualTesting.Tests.csproj +++ b/src/System.Data.SqlClient/tests/ManualTests/System.Data.SqlClient.ManualTesting.Tests.csproj @@ -2,7 +2,7 @@ $(NetMinimum)-windows false - $(NoWarn);CA1001;CA1068;CA1069;CA1309;CA1310;CA1419;CA1507;CA1711;CA1716;CA1805;CA1806;CA1816;CA1822;CA1830;CA1834;CA1835;CA1836;CA1840;CA1844;CA2016;CA2101;CA2200;CA2201;CA2208;CA2211;CA2219;CA2249;CA2251;CA5366;CS0168;CS0649;IDE0073;SYSLIB0004;SYSLIB0023;nullable; + $(NoWarn);CA1001;CA1051;CA1068;CA1069;CA1309;CA1310;CA1419;CA1507;CA1711;CA1716;CA1805;CA1806;CA1816;CA1822;CA1830;CA1834;CA1835;CA1836;CA1840;CA1844;CA2016;CA2101;CA2200;CA2201;CA2208;CA2211;CA2219;CA2249;CA2251;CA5366;CS0168;CS0649;IDE0073;SYSLIB0004;SYSLIB0023;nullable; diff --git a/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj index a183e420b..7c9939a3c 100644 --- a/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj +++ b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj @@ -1,4 +1,5 @@ + Microsoft.SqlServer.TDS.EndPoint Microsoft.SqlServer.TDS.EndPoint @@ -7,9 +8,11 @@ false $(NoWarn);CA1001;CA1068;CA1069;CA1309;CA1310;CA1419;CA1507;CA1711;CA1716;CA1805;CA1806;CA1816;CA1822;CA1830;CA1834;CA1835;CA1836;CA1840;CA1844;CA2016;CA2101;CA2200;CA2201;CA2208;CA2211;CA2219;CA2249;CA2251;CA5366;CS0168;CS0649;IDE0073;SYSLIB0004;SYSLIB0023;nullable; + $([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) + @@ -42,6 +45,7 @@ + Common\Interop\Windows\Interop.Libraries.cs @@ -49,12 +53,19 @@ + + TDS + + + + + From 654d8577e4b1da67698d2e900502740311e087b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20S=C3=A1nchez=20L=C3=B3pez?= <1175054+carlossanlop@users.noreply.github.com> Date: Tue, 24 Sep 2024 11:52:19 -0700 Subject: [PATCH 10/23] Fix TargetPlatformIdentifier by adding the correct suffixed target frameworks to test projects. --- .../System.Data.SqlClient.Tests.csproj | 7 ++++++- ...iodTest.netcoreapp.cs => PoolBlockPeriodTest.cs} | 0 .../SQL/UdtTest/UDTs/Address/Address.csproj | 2 +- .../SQL/UdtTest/UDTs/Circle/Circle.csproj | 2 +- .../SQL/UdtTest/UDTs/Shapes/Shapes.csproj | 2 +- .../SQL/UdtTest/UDTs/Utf8String/Utf8String.csproj | 2 +- ...System.Data.SqlClient.ManualTesting.Tests.csproj | 13 ++++++++----- .../tests/System.Data.SqlClient.Tests.csproj | 2 +- .../Tools/TDS/TDS.EndPoint/SSPI/SSPIContext.Unix.cs | 2 +- .../TDS/TDS.EndPoint/SSPI/SSPIContext.Windows.cs | 2 +- .../Tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj | 10 +++++----- .../tests/Tools/TDS/TDS.Servers/TDS.Servers.csproj | 6 +++++- .../tests/Tools/TDS/TDS/TDS.csproj | 4 +++- 13 files changed, 34 insertions(+), 20 deletions(-) rename src/System.Data.SqlClient/tests/ManualTests/SQL/ConnectionPoolTest/{PoolBlockPeriodTest.netcoreapp.cs => PoolBlockPeriodTest.cs} (100%) diff --git a/src/System.Data.SqlClient/tests/FunctionalTests/System.Data.SqlClient.Tests.csproj b/src/System.Data.SqlClient/tests/FunctionalTests/System.Data.SqlClient.Tests.csproj index 16d03933c..cee767077 100644 --- a/src/System.Data.SqlClient/tests/FunctionalTests/System.Data.SqlClient.Tests.csproj +++ b/src/System.Data.SqlClient/tests/FunctionalTests/System.Data.SqlClient.Tests.csproj @@ -1,12 +1,14 @@ + true - $(NetMinimum)-windows + $(NetMinimum)-unix;$(NetMinimum)-windows false $(NoWarn);CA1001;CA1068;CA1069;CA1309;CA1310;CA1419;CA1711;CA1805;CA1806;CA1816;CA1822;CA1830;CA1834;CA1835;CA1836;CA1840;CA1844;CA2016;CA2101;CA2200;CA2201;CA2208;CA2219;CA2249;CA2251;CA5366; $(NoWarn);CS0168;CS0649; $(NoWarn);IDE0073;SYSLIB0004;nullable; + @@ -32,6 +34,7 @@ + @@ -47,7 +50,9 @@ TDS + + diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/ConnectionPoolTest/PoolBlockPeriodTest.netcoreapp.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/ConnectionPoolTest/PoolBlockPeriodTest.cs similarity index 100% rename from src/System.Data.SqlClient/tests/ManualTests/SQL/ConnectionPoolTest/PoolBlockPeriodTest.netcoreapp.cs rename to src/System.Data.SqlClient/tests/ManualTests/SQL/ConnectionPoolTest/PoolBlockPeriodTest.cs diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.csproj b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.csproj index 354414ca3..c85d77d08 100644 --- a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.csproj +++ b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.csproj @@ -1,7 +1,7 @@ - $(NetMinimum) + $(NetMinimum)-unix;$(NetMinimum)-windows diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Circle.csproj b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Circle.csproj index 445b73e38..3cfb0d99d 100644 --- a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Circle.csproj +++ b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Circle.csproj @@ -1,7 +1,7 @@ - $(NetMinimum) + $(NetMinimum)-unix;$(NetMinimum)-windows $(NoWarn);CA2208; diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Shapes.csproj b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Shapes.csproj index 354414ca3..c85d77d08 100644 --- a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Shapes.csproj +++ b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Shapes.csproj @@ -1,7 +1,7 @@ - $(NetMinimum) + $(NetMinimum)-unix;$(NetMinimum)-windows diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Utf8String.csproj b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Utf8String.csproj index 354414ca3..c85d77d08 100644 --- a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Utf8String.csproj +++ b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Utf8String.csproj @@ -1,7 +1,7 @@ - $(NetMinimum) + $(NetMinimum)-unix;$(NetMinimum)-windows diff --git a/src/System.Data.SqlClient/tests/ManualTests/System.Data.SqlClient.ManualTesting.Tests.csproj b/src/System.Data.SqlClient/tests/ManualTests/System.Data.SqlClient.ManualTesting.Tests.csproj index 902da9665..3b8fde0f2 100644 --- a/src/System.Data.SqlClient/tests/ManualTests/System.Data.SqlClient.ManualTesting.Tests.csproj +++ b/src/System.Data.SqlClient/tests/ManualTests/System.Data.SqlClient.ManualTesting.Tests.csproj @@ -1,9 +1,11 @@ + - $(NetMinimum)-windows + $(NetMinimum)-unix;$(NetMinimum)-windows false $(NoWarn);CA1001;CA1051;CA1068;CA1069;CA1309;CA1310;CA1419;CA1507;CA1711;CA1716;CA1805;CA1806;CA1816;CA1822;CA1830;CA1834;CA1835;CA1836;CA1840;CA1844;CA2016;CA2101;CA2200;CA2201;CA2208;CA2211;CA2219;CA2249;CA2251;CA5366;CS0168;CS0649;IDE0073;SYSLIB0004;SYSLIB0023;nullable; + Common\System\Collections\DictionaryExtensions.cs @@ -50,6 +52,7 @@ + @@ -103,6 +106,7 @@ + @@ -144,15 +148,13 @@ SqlParameterTest_ReleaseMode.bsl + - - - - + @@ -168,4 +170,5 @@ Utf8String + diff --git a/src/System.Data.SqlClient/tests/System.Data.SqlClient.Tests.csproj b/src/System.Data.SqlClient/tests/System.Data.SqlClient.Tests.csproj index f148a3aee..3aeed9146 100644 --- a/src/System.Data.SqlClient/tests/System.Data.SqlClient.Tests.csproj +++ b/src/System.Data.SqlClient/tests/System.Data.SqlClient.Tests.csproj @@ -1,7 +1,7 @@ - $(NetMinimum);$(NetMinimum)-unix;$(NetMinimum)-windows + $(NetMinimum)-unix;$(NetMinimum)-windows diff --git a/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/SSPI/SSPIContext.Unix.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/SSPI/SSPIContext.Unix.cs index 2ff6f61e5..9e0f1ca35 100644 --- a/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/SSPI/SSPIContext.Unix.cs +++ b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/SSPI/SSPIContext.Unix.cs @@ -12,7 +12,7 @@ namespace Microsoft.SqlServer.TDS.EndPoint.SSPI /// /// SSPI context /// - public class SSPIContext : IDisposable + public partial class SSPIContext : IDisposable { /// /// FInalizer diff --git a/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/SSPI/SSPIContext.Windows.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/SSPI/SSPIContext.Windows.cs index 13317ac81..9fd7fd737 100644 --- a/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/SSPI/SSPIContext.Windows.cs +++ b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/SSPI/SSPIContext.Windows.cs @@ -12,7 +12,7 @@ namespace Microsoft.SqlServer.TDS.EndPoint.SSPI /// /// SSPI context /// - public class SSPIContext : IDisposable + public partial class SSPIContext : IDisposable { /// /// Security credential for server operation diff --git a/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj index 7c9939a3c..f28191caf 100644 --- a/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj +++ b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj @@ -4,7 +4,7 @@ Microsoft.SqlServer.TDS.EndPoint Microsoft.SqlServer.TDS.EndPoint false - netstandard2.0 + $(NetMinimum)-unix;$(NetMinimum)-windows false $(NoWarn);CA1001;CA1068;CA1069;CA1309;CA1310;CA1419;CA1507;CA1711;CA1716;CA1805;CA1806;CA1816;CA1822;CA1830;CA1834;CA1835;CA1836;CA1840;CA1844;CA2016;CA2101;CA2200;CA2201;CA2208;CA2211;CA2219;CA2249;CA2251;CA5366;CS0168;CS0649;IDE0073;SYSLIB0004;SYSLIB0023;nullable; @@ -46,7 +46,7 @@ - + Common\Interop\Windows\Interop.Libraries.cs @@ -54,7 +54,7 @@ - + @@ -64,8 +64,8 @@ - + - + diff --git a/src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/TDS.Servers.csproj b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/TDS.Servers.csproj index 96c9c71f7..67103ac2c 100644 --- a/src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/TDS.Servers.csproj +++ b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/TDS.Servers.csproj @@ -1,12 +1,14 @@ + Microsoft.SqlServer.TDS.Servers Microsoft.SqlServer.TDS.Servers false - netstandard2.0 + $(NetMinimum)-unix;$(NetMinimum)-windows false $(NoWarn);CA1001;CA1068;CA1069;CA1309;CA1310;CA1419;CA1507;CA1711;CA1716;CA1805;CA1806;CA1816;CA1822;CA1830;CA1834;CA1835;CA1836;CA1840;CA1844;CA2016;CA2101;CA2200;CA2201;CA2208;CA2211;CA2219;CA2249;CA2251;CA5366;CS0168;CS0649;IDE0073;SYSLIB0004;SYSLIB0023;nullable; + @@ -26,6 +28,7 @@ Always + TDS.EndPoint @@ -34,4 +37,5 @@ TDS + diff --git a/src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDS.csproj b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDS.csproj index 98324e4f3..433f2ada9 100644 --- a/src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDS.csproj +++ b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDS.csproj @@ -1,9 +1,11 @@ + Microsoft.SqlServer.TDS Microsoft.SqlServer.TDS false - netstandard2.0 + $(NetMinimum)-unix;$(NetMinimum)-windows $(NoWarn);CA1001;CA1068;CA1069;CA1309;CA1310;CA1419;CA1507;CA1711;CA1716;CA1805;CA1806;CA1816;CA1822;CA1830;CA1834;CA1835;CA1836;CA1840;CA1844;CA2016;CA2101;CA2200;CA2201;CA2208;CA2211;CA2219;CA2249;CA2251;CA5366;CS0168;CS0649;IDE0073;SYSLIB0004;SYSLIB0023;nullable; + From 9d17d737c4788d61623194ae9f320100833a77cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20S=C3=A1nchez=20L=C3=B3pez?= <1175054+carlossanlop@users.noreply.github.com> Date: Tue, 24 Sep 2024 12:03:44 -0700 Subject: [PATCH 11/23] Fix some of the conditions in the src csproj --- .../src/System.Data.SqlClient.csproj | 37 +++++-------------- 1 file changed, 9 insertions(+), 28 deletions(-) diff --git a/src/System.Data.SqlClient/src/System.Data.SqlClient.csproj b/src/System.Data.SqlClient/src/System.Data.SqlClient.csproj index 2587998f2..c447ad83b 100644 --- a/src/System.Data.SqlClient/src/System.Data.SqlClient.csproj +++ b/src/System.Data.SqlClient/src/System.Data.SqlClient.csproj @@ -21,7 +21,6 @@ - $([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) SR.PlatformNotSupported_System_Data_SqlClient @@ -249,12 +248,12 @@ - + - + Common\CoreLib\Interop\Windows\Kernel32\Interop.FileTypes.cs @@ -309,7 +308,7 @@ - + @@ -318,13 +317,13 @@ - + - + @@ -332,20 +331,9 @@ - - + @@ -356,9 +344,6 @@ Common\Interop\Windows\Kernel32\Interop.LoadLibraryEx.cs - - - Common\Interop\Windows\Kernel32\Interop.FreeLibrary.cs @@ -369,10 +354,6 @@ Common\CoreLib\Microsoft\Win32\SafeHandles\SafeLibraryHandle.cs - - - - Common\System\Net\Security\SecurityBufferType.Windows.cs @@ -467,7 +448,7 @@ - + Common\System\Net\ContextFlagsPal.cs @@ -495,7 +476,7 @@ - + @@ -559,7 +540,7 @@ - + From b6f38a2970adc156ea77b9385461c007ac558f48 Mon Sep 17 00:00:00 2001 From: Cheena Malhotra Date: Thu, 26 Sep 2024 17:03:23 -0700 Subject: [PATCH 12/23] Address build failure warnings --- .../src/System.Data.SqlClient.csproj | 8 ++++---- .../tests/FunctionalTests/AADAccessTokenTest.cs | 2 ++ .../FunctionalTests/System.Data.SqlClient.Tests.csproj | 2 +- .../SQL/CommandCancelTest/CommandCancelTest.cs | 6 +++--- .../SQL/ConnectionPoolTest/PoolBlockPeriodTest.cs | 6 ++++++ .../tests/ManualTests/SQL/UdtTest/SqlServerTypesTest.cs | 6 +++--- .../System.Data.SqlClient.ManualTesting.Tests.csproj | 2 +- .../tests/Tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj | 2 +- .../tests/Tools/TDS/TDS.Servers/TDS.Servers.csproj | 2 +- 9 files changed, 22 insertions(+), 14 deletions(-) diff --git a/src/System.Data.SqlClient/src/System.Data.SqlClient.csproj b/src/System.Data.SqlClient/src/System.Data.SqlClient.csproj index c447ad83b..2b3069b3f 100644 --- a/src/System.Data.SqlClient/src/System.Data.SqlClient.csproj +++ b/src/System.Data.SqlClient/src/System.Data.SqlClient.csproj @@ -396,10 +396,10 @@ Common\System\Net\Security\NetEventSource.Security.Windows.cs - - - - + + + + Common\Interop\Windows\SspiCli\SecurityPackageInfo.cs diff --git a/src/System.Data.SqlClient/tests/FunctionalTests/AADAccessTokenTest.cs b/src/System.Data.SqlClient/tests/FunctionalTests/AADAccessTokenTest.cs index 2a4316a0b..c07c61831 100644 --- a/src/System.Data.SqlClient/tests/FunctionalTests/AADAccessTokenTest.cs +++ b/src/System.Data.SqlClient/tests/FunctionalTests/AADAccessTokenTest.cs @@ -15,7 +15,9 @@ public class AADAccessTokenTest [InlineData("Test combination of Access Token and User Id", new object[] { "UID", "sampleUserId" })] [InlineData("Test combination of Access Token and Password", new object[] { "PWD", "samplePassword" })] [InlineData("Test combination of Access Token and Credentials", new object[] { "sampleUserId" })] +#pragma warning disable xUnit1026 // Theory methods should use all of their parameters public void InvalidCombinationOfAccessToken(string description, object[] Params) +#pragma warning restore xUnit1026 // Theory methods should use all of their parameters { _builder = new SqlConnectionStringBuilder { diff --git a/src/System.Data.SqlClient/tests/FunctionalTests/System.Data.SqlClient.Tests.csproj b/src/System.Data.SqlClient/tests/FunctionalTests/System.Data.SqlClient.Tests.csproj index cee767077..ab0918070 100644 --- a/src/System.Data.SqlClient/tests/FunctionalTests/System.Data.SqlClient.Tests.csproj +++ b/src/System.Data.SqlClient/tests/FunctionalTests/System.Data.SqlClient.Tests.csproj @@ -4,7 +4,7 @@ true $(NetMinimum)-unix;$(NetMinimum)-windows false - $(NoWarn);CA1001;CA1068;CA1069;CA1309;CA1310;CA1419;CA1711;CA1805;CA1806;CA1816;CA1822;CA1830;CA1834;CA1835;CA1836;CA1840;CA1844;CA2016;CA2101;CA2200;CA2201;CA2208;CA2219;CA2249;CA2251;CA5366; + $(NoWarn);CA1001;CA1068;CA1069;CA1309;CA1310;CA1419;CA1711;CA1805;CA1806;CA1816;CA1822;CA1830;CA1834;CA1835;CA1836;CA1840;CA1844;CA2016;CA2101;CA2200;CA2201;CA2208;CA2219;CA2241;CA2249;CA2251;CA5366; $(NoWarn);CS0168;CS0649; $(NoWarn);IDE0073;SYSLIB0004;nullable; diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/CommandCancelTest/CommandCancelTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/CommandCancelTest/CommandCancelTest.cs index 1fa20f255..17f013eaa 100644 --- a/src/System.Data.SqlClient/tests/ManualTests/SQL/CommandCancelTest/CommandCancelTest.cs +++ b/src/System.Data.SqlClient/tests/ManualTests/SQL/CommandCancelTest/CommandCancelTest.cs @@ -100,19 +100,19 @@ public static void MultiThreadedCancel_Async() } [ConditionalFact(typeof(DataTestUtility),nameof(DataTestUtility.AreConnStringsSetup))] - public static void TimeoutCancel() + public static void TimeoutCancel1() { TimeoutCancel(s_connStr); } [ConditionalFact(typeof(DataTestUtility),nameof(DataTestUtility.AreConnStringsSetup))] - public static void CancelAndDisposePreparedCommand() + public static void CancelAndDisposePreparedCommand1() { CancelAndDisposePreparedCommand(s_connStr); } [ConditionalFact(typeof(DataTestUtility),nameof(DataTestUtility.AreConnStringsSetup))] - public static void TimeOutDuringRead() + public static void TimeOutDuringRead1() { TimeOutDuringRead(s_connStr); } diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/ConnectionPoolTest/PoolBlockPeriodTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/ConnectionPoolTest/PoolBlockPeriodTest.cs index f7f270122..999a03186 100644 --- a/src/System.Data.SqlClient/tests/ManualTests/SQL/ConnectionPoolTest/PoolBlockPeriodTest.cs +++ b/src/System.Data.SqlClient/tests/ManualTests/SQL/ConnectionPoolTest/PoolBlockPeriodTest.cs @@ -32,7 +32,9 @@ public class PoolBlockPeriodTest [InlineData("Azure with Auto Policy must Disable Blocking", new object[] { AzureEndpointSample, PoolBlockingPeriod.Auto })] [InlineData("Azure with Always Policy must Enable Blocking", new object[] { AzureEndpointSample, PoolBlockingPeriod.AlwaysBlock })] [InlineData("Azure with Never Policy must Disable Blocking", new object[] { AzureEndpointSample, PoolBlockingPeriod.NeverBlock })] +#pragma warning disable xUnit1026 // Theory methods should use all of their parameters public void TestAzureBlockingPeriod(string description, object[] Params) +#pragma warning restore xUnit1026 // Theory methods should use all of their parameters { string serverName = Params[0] as string; PoolBlockingPeriod? policy = null; @@ -52,7 +54,9 @@ public void TestAzureBlockingPeriod(string description, object[] Params) [InlineData("NonAzure with Never Policy must Disable Blocking", new object[] { NonExistentServer, PoolBlockingPeriod.NeverBlock })] [InlineData("NonAzure (which contains azure endpoint - nonexistent.WINDOWS.net) with Default Policy must Enable Blocking", new object[] { "nonexistent.windows.net" })] [InlineData("NonAzure (which contains azure endpoint - nonexistent.database.windows.net.else) with Default Policy must Enable Blocking", new object[] { "nonexistent.database.windows.net.else" })] +#pragma warning disable xUnit1026 // Theory methods should use all of their parameters public void TestNonAzureBlockingPeriod(string description, object[] Params) +#pragma warning restore xUnit1026 // Theory methods should use all of their parameters { string serverName = Params[0] as string; PoolBlockingPeriod? policy = null; @@ -73,7 +77,9 @@ public void TestNonAzureBlockingPeriod(string description, object[] Params) [InlineData("Test policy with Always (PascalCase)", "AlwaysBlock")] [InlineData("Test policy with Never (lowercase)", "neverblock")] [InlineData("Test policy with Never (PascalCase)", "NeverBlock")] +#pragma warning disable xUnit1026 // Theory methods should use all of their parameters public void TestSetPolicyWithVariations(string description, string policyString) +#pragma warning restore xUnit1026 // Theory methods should use all of their parameters { PoolBlockingPeriod? policy = null; if (policyString.ToLower().Contains("auto")) diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/SqlServerTypesTest.cs b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/SqlServerTypesTest.cs index f57126ecb..d818b5d9d 100644 --- a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/SqlServerTypesTest.cs +++ b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/SqlServerTypesTest.cs @@ -83,7 +83,7 @@ public static void TestUdtSqlDataReaderGetSqlBytesSequentialAccess() } [ConditionalFact(typeof(DataTestUtility),nameof(DataTestUtility.AreConnStringsSetup))] - public static void TestUdtSqlDataReaderGetSqlBytes() + public static void TestUdtSqlDataReaderGetSqlBytes1() { TestUdtSqlDataReaderGetSqlBytes(CommandBehavior.Default); } @@ -126,7 +126,7 @@ public static void TestUdtSqlDataReaderGetBytesSequentialAccess() } [ConditionalFact(typeof(DataTestUtility),nameof(DataTestUtility.AreConnStringsSetup))] - public static void TestUdtSqlDataReaderGetBytes() + public static void TestUdtSqlDataReaderGetBytes1() { TestUdtSqlDataReaderGetBytes(CommandBehavior.Default); } @@ -182,7 +182,7 @@ public static void TestUdtSqlDataReaderGetStreamSequentialAccess() } [ConditionalFact(typeof(DataTestUtility),nameof(DataTestUtility.AreConnStringsSetup))] - public static void TestUdtSqlDataReaderGetStream() + public static void TestUdtSqlDataReaderGetStream2() { TestUdtSqlDataReaderGetStream(CommandBehavior.Default); } diff --git a/src/System.Data.SqlClient/tests/ManualTests/System.Data.SqlClient.ManualTesting.Tests.csproj b/src/System.Data.SqlClient/tests/ManualTests/System.Data.SqlClient.ManualTesting.Tests.csproj index 3b8fde0f2..aea63f60f 100644 --- a/src/System.Data.SqlClient/tests/ManualTests/System.Data.SqlClient.ManualTesting.Tests.csproj +++ b/src/System.Data.SqlClient/tests/ManualTests/System.Data.SqlClient.ManualTesting.Tests.csproj @@ -3,7 +3,7 @@ $(NetMinimum)-unix;$(NetMinimum)-windows false - $(NoWarn);CA1001;CA1051;CA1068;CA1069;CA1309;CA1310;CA1419;CA1507;CA1711;CA1716;CA1805;CA1806;CA1816;CA1822;CA1830;CA1834;CA1835;CA1836;CA1840;CA1844;CA2016;CA2101;CA2200;CA2201;CA2208;CA2211;CA2219;CA2249;CA2251;CA5366;CS0168;CS0649;IDE0073;SYSLIB0004;SYSLIB0023;nullable; + $(NoWarn);CA1001;CA1051;CA1068;CA1069;CA1304;CA1309;CA1310;CA1419;CA1507;CA1711;CA1716;CA1805;CA1806;CA1816;CA1822;CA1830;CA1834;CA1835;CA1836;CA1840;CA1844;CA2016;CA2101;CA2200;CA2201;CA2208;CA2211;CA2219;CA2241;CA2249;CA2251;CA5366;CS0168;CS0649;IDE0073;SYSLIB0004;SYSLIB0023;nullable; diff --git a/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj index f28191caf..711735d25 100644 --- a/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj +++ b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj @@ -6,7 +6,7 @@ false $(NetMinimum)-unix;$(NetMinimum)-windows false - $(NoWarn);CA1001;CA1068;CA1069;CA1309;CA1310;CA1419;CA1507;CA1711;CA1716;CA1805;CA1806;CA1816;CA1822;CA1830;CA1834;CA1835;CA1836;CA1840;CA1844;CA2016;CA2101;CA2200;CA2201;CA2208;CA2211;CA2219;CA2249;CA2251;CA5366;CS0168;CS0649;IDE0073;SYSLIB0004;SYSLIB0023;nullable; + $(NoWarn);CA1001;CA1051;CA1068;CA1069;CA1309;CA1310;CA1419;CA1507;CA1711;CA1716;CA1805;CA1806;CA1816;CA1822;CA1830;CA1834;CA1835;CA1836;CA1840;CA1844;CA2016;CA2101;CA2200;CA2201;CA2208;CA2211;CA2219;CA2249;CA2251;CA5359;CA5366;CS0168;CS0649;IDE0073;SYSLIB0004;SYSLIB0023;nullable; diff --git a/src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/TDS.Servers.csproj b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/TDS.Servers.csproj index 67103ac2c..4fa33e105 100644 --- a/src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/TDS.Servers.csproj +++ b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/TDS.Servers.csproj @@ -6,7 +6,7 @@ false $(NetMinimum)-unix;$(NetMinimum)-windows false - $(NoWarn);CA1001;CA1068;CA1069;CA1309;CA1310;CA1419;CA1507;CA1711;CA1716;CA1805;CA1806;CA1816;CA1822;CA1830;CA1834;CA1835;CA1836;CA1840;CA1844;CA2016;CA2101;CA2200;CA2201;CA2208;CA2211;CA2219;CA2249;CA2251;CA5366;CS0168;CS0649;IDE0073;SYSLIB0004;SYSLIB0023;nullable; + $(NoWarn);CA1001;CA1068;CA1069;CA1304;CA1309;CA1310;CA1419;CA1507;CA1711;CA1716;CA1805;CA1806;CA1816;CA1822;CA1830;CA1834;CA1835;CA1836;CA1840;CA1844;CA1847;CA2016;CA2101;CA2200;CA2201;CA2208;CA2211;CA2219;CA2249;CA2251;CA5366;CS0168;CS0649;IDE0073;SYSLIB0004;SYSLIB0023;nullable; From 5739914e03b92b3c47e6e7aaaf208962fffeaba5 Mon Sep 17 00:00:00 2001 From: Cheena Malhotra Date: Wed, 2 Oct 2024 16:47:56 -0700 Subject: [PATCH 13/23] Rename functional test project + fix testing --- MaintenancePackages.sln | 16 ++++++++-------- .../tests/FunctionalTests/ExceptionTest.cs | 19 ------------------- ....SqlClient.FunctionalTesting.Tests.csproj} | 0 .../tests/System.Data.SqlClient.Tests.csproj | 3 ++- 4 files changed, 10 insertions(+), 28 deletions(-) rename src/System.Data.SqlClient/tests/FunctionalTests/{System.Data.SqlClient.Tests.csproj => System.Data.SqlClient.FunctionalTesting.Tests.csproj} (100%) diff --git a/MaintenancePackages.sln b/MaintenancePackages.sln index fe924e5b7..608de3eb1 100644 --- a/MaintenancePackages.sln +++ b/MaintenancePackages.sln @@ -1,4 +1,4 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 +Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.0.31903.59 MinimumVisualStudioVersion = 10.0.40219.1 @@ -122,8 +122,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TDS.EndPoint", "TDS.EndPoin EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TDS.Servers", "TDS.Servers", "{17991DFF-526A-4A5E-9B6A-FBF6FC15E621}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Data.SqlClient.Tests", "src\System.Data.SqlClient\tests\FunctionalTests\System.Data.SqlClient.Tests.csproj", "{F3E72F35-0351-4D67-9388-725BCAD807BA}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Data.SqlClient.ManualTesting.Tests", "src\System.Data.SqlClient\tests\ManualTests\System.Data.SqlClient.ManualTesting.Tests.csproj", "{45DB5F86-7AE3-45C6-870D-F9357B66BDB5}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Address", "Address", "{206C7C67-377B-475D-9A6D-B13E0FF4FECB}" @@ -154,6 +152,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{0E5B076B-896 EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.IO.Redist", "src\Microsoft.IO.Redist\src\Microsoft.IO.Redist.csproj", "{C45866E3-904C-4707-985A-ED3A3E650FF2}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Data.SqlClient.FunctionalTesting.Tests", "src\System.Data.SqlClient\tests\FunctionalTests\System.Data.SqlClient.FunctionalTesting.Tests.csproj", "{42DA88FE-3071-4DA1-AD2B-CD1F99DC9FEF}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -244,10 +244,6 @@ Global {CF99D9B6-B784-4FF5-AE08-19662FAE7D91}.Debug|Any CPU.Build.0 = Debug|Any CPU {CF99D9B6-B784-4FF5-AE08-19662FAE7D91}.Release|Any CPU.ActiveCfg = Release|Any CPU {CF99D9B6-B784-4FF5-AE08-19662FAE7D91}.Release|Any CPU.Build.0 = Release|Any CPU - {F3E72F35-0351-4D67-9388-725BCAD807BA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F3E72F35-0351-4D67-9388-725BCAD807BA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F3E72F35-0351-4D67-9388-725BCAD807BA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F3E72F35-0351-4D67-9388-725BCAD807BA}.Release|Any CPU.Build.0 = Release|Any CPU {45DB5F86-7AE3-45C6-870D-F9357B66BDB5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {45DB5F86-7AE3-45C6-870D-F9357B66BDB5}.Debug|Any CPU.Build.0 = Debug|Any CPU {45DB5F86-7AE3-45C6-870D-F9357B66BDB5}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -284,6 +280,10 @@ Global {C45866E3-904C-4707-985A-ED3A3E650FF2}.Debug|Any CPU.Build.0 = Debug|Any CPU {C45866E3-904C-4707-985A-ED3A3E650FF2}.Release|Any CPU.ActiveCfg = Release|Any CPU {C45866E3-904C-4707-985A-ED3A3E650FF2}.Release|Any CPU.Build.0 = Release|Any CPU + {42DA88FE-3071-4DA1-AD2B-CD1F99DC9FEF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {42DA88FE-3071-4DA1-AD2B-CD1F99DC9FEF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {42DA88FE-3071-4DA1-AD2B-CD1F99DC9FEF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {42DA88FE-3071-4DA1-AD2B-CD1F99DC9FEF}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -338,7 +338,6 @@ Global {60604421-DA9B-4573-947F-375E2BEE85FD} = {CD601656-2933-4096-98D9-F82D41A85DD1} {344BA1A5-BAC4-4D80-A070-DB2CEEEF2FBF} = {CD601656-2933-4096-98D9-F82D41A85DD1} {17991DFF-526A-4A5E-9B6A-FBF6FC15E621} = {CD601656-2933-4096-98D9-F82D41A85DD1} - {F3E72F35-0351-4D67-9388-725BCAD807BA} = {581FAEF2-301E-41F9-B46B-6B51EA2B927E} {45DB5F86-7AE3-45C6-870D-F9357B66BDB5} = {695749E8-3339-48D0-9650-34C72CCEEBFF} {206C7C67-377B-475D-9A6D-B13E0FF4FECB} = {695749E8-3339-48D0-9650-34C72CCEEBFF} {9F564E0C-4486-4B03-A263-ACF04A17013D} = {695749E8-3339-48D0-9650-34C72CCEEBFF} @@ -353,6 +352,7 @@ Global {D1392B54-998A-4F27-BC17-4CE149117BCC} = {206C7C67-377B-475D-9A6D-B13E0FF4FECB} {0E5B076B-8969-4738-9E5A-0D83061570DD} = {A376FF60-3E89-40F1-BD79-652C4DD6EE89} {C45866E3-904C-4707-985A-ED3A3E650FF2} = {0E5B076B-8969-4738-9E5A-0D83061570DD} + {42DA88FE-3071-4DA1-AD2B-CD1F99DC9FEF} = {581FAEF2-301E-41F9-B46B-6B51EA2B927E} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {588483EB-F59C-4D9E-A1C7-C85D719CA1B0} diff --git a/src/System.Data.SqlClient/tests/FunctionalTests/ExceptionTest.cs b/src/System.Data.SqlClient/tests/FunctionalTests/ExceptionTest.cs index 60103171b..4283cc783 100644 --- a/src/System.Data.SqlClient/tests/FunctionalTests/ExceptionTest.cs +++ b/src/System.Data.SqlClient/tests/FunctionalTests/ExceptionTest.cs @@ -138,25 +138,6 @@ public void NamedPipeInvalidConnStringTest_ManagedSNI() builder.DataSource = @"np:\\\\\"; OpenBadConnection(builder.ConnectionString, invalidConnStringError); } - - [Fact] - public static void LocalDBNotSupportedOnUapTest() - { - SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(@"server=(localdb)\MSSQLLocalDB") - { - IntegratedSecurity = true, - ConnectTimeout = 2 - }; - - Assert.Throws(() => - { - using (SqlConnection conn = new SqlConnection(builder.ConnectionString)) - { - conn.Open(); - } - }); - } - private void GenerateConnectionException(string connectionString) { using (SqlConnection sqlConnection = new SqlConnection(connectionString)) diff --git a/src/System.Data.SqlClient/tests/FunctionalTests/System.Data.SqlClient.Tests.csproj b/src/System.Data.SqlClient/tests/FunctionalTests/System.Data.SqlClient.FunctionalTesting.Tests.csproj similarity index 100% rename from src/System.Data.SqlClient/tests/FunctionalTests/System.Data.SqlClient.Tests.csproj rename to src/System.Data.SqlClient/tests/FunctionalTests/System.Data.SqlClient.FunctionalTesting.Tests.csproj diff --git a/src/System.Data.SqlClient/tests/System.Data.SqlClient.Tests.csproj b/src/System.Data.SqlClient/tests/System.Data.SqlClient.Tests.csproj index 3aeed9146..4e55824d9 100644 --- a/src/System.Data.SqlClient/tests/System.Data.SqlClient.Tests.csproj +++ b/src/System.Data.SqlClient/tests/System.Data.SqlClient.Tests.csproj @@ -2,10 +2,11 @@ $(NetMinimum)-unix;$(NetMinimum)-windows + false - + From 21010f127dd921b141411aa45372f0c271a11421 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20S=C3=A1nchez=20L=C3=B3pez?= <1175054+carlossanlop@users.noreply.github.com> Date: Wed, 2 Oct 2024 17:51:31 -0700 Subject: [PATCH 14/23] Try using a Directory.Build.props to get all the tests subprojects built and tested, without having a root tests project. --- MaintenancePackages.sln | 720 +++++++++--------- .../tests/Directory.Build.props | 7 + .../tests/System.Data.SqlClient.Tests.csproj | 13 - 3 files changed, 367 insertions(+), 373 deletions(-) create mode 100644 src/System.Data.SqlClient/tests/Directory.Build.props delete mode 100644 src/System.Data.SqlClient/tests/System.Data.SqlClient.Tests.csproj diff --git a/MaintenancePackages.sln b/MaintenancePackages.sln index 608de3eb1..5cbac28a7 100644 --- a/MaintenancePackages.sln +++ b/MaintenancePackages.sln @@ -1,360 +1,360 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.0.31903.59 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "System.Buffers", "System.Buffers", "{2C54303C-7D38-4CAA-AA02-BD3A3AAC8A57}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{C49A5915-FC2A-446B-916A-8428FDB53894}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Buffers", "src\System.Buffers\src\System.Buffers.csproj", "{0616E313-AAB2-447D-B85C-846E99E82B2F}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{098C3481-D67D-4808-9417-BDB03A2EBDA5}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Buffers.Tests", "src\System.Buffers\tests\System.Buffers.Tests.csproj", "{D62C613F-3EE0-45E9-83C1-5F00D4979E55}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Microsoft.Bcl.HashCode", "Microsoft.Bcl.HashCode", "{E8080F67-E0C1-45FE-88A1-B075D7478B39}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{C4349F63-7703-4B32-A4ED-1E574E463C69}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{5D534C7F-F3F1-4F7F-A88B-6C8107C4C757}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bcl.HashCode", "src\Microsoft.Bcl.HashCode\src\Microsoft.Bcl.HashCode.csproj", "{72A3385C-6B43-4D0C-AC5C-AF7EBF320D62}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bcl.HashCode.Tests", "src\Microsoft.Bcl.HashCode\tests\Microsoft.Bcl.HashCode.Tests.csproj", "{023DAED8-926C-40B5-982B-34ABD650AE6E}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "System.Memory", "System.Memory", "{FC90D945-40A0-4CB4-BC71-EC17C9E8F419}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E5362B5B-2BDD-459E-ADA8-4B43AD26BB51}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{F2034F32-7729-463B-8A35-76F0BF07A160}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Memory", "src\System.Memory\src\System.Memory.csproj", "{6C0E5509-10FA-489D-B8B9-83364783BBB2}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Memory.Tests", "src\System.Memory\tests\System.Memory.Tests.csproj", "{B4DF94FE-F10D-4519-B162-ED57FE9503A3}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "System.Json", "System.Json", "{49C98554-4981-4F3A-A98E-5C729BE0D7A5}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{AFEBA492-710F-49C1-A722-F54F9B45DD04}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{285CA270-F914-4E93-857D-69F563775BD8}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Json", "src\System.Json\src\System.Json.csproj", "{8AECDA21-1239-4192-ADAC-A2395592BA6C}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Json.Tests", "src\System.Json\tests\System.Json.Tests.csproj", "{80B8A19E-CE02-4602-AF3B-BB25777FC906}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "System.Reflection.DispatchProxy", "System.Reflection.DispatchProxy", "{E7FB03F7-C286-4618-BB7D-C4DD705A8A73}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{021CD24C-D12E-4435-8FEE-802A4D0AA30B}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{82498727-8CFD-4E60-8E9D-32FBEB594063}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.DispatchProxy", "src\System.Reflection.DispatchProxy\src\System.Reflection.DispatchProxy.csproj", "{EC28E44A-4515-4208-9D37-D8398F989FE6}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.DispatchProxy.Tests", "src\System.Reflection.DispatchProxy\tests\System.Reflection.DispatchProxy.Tests.csproj", "{7635F09C-8CBB-41D5-A0E6-CC0B3FEC989F}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "System.Threading.Tasks.Extensions", "System.Threading.Tasks.Extensions", "{FBAAF48E-58AD-4870-9692-9AB7C407B695}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{6DCA2B87-5722-45FC-9BEC-701910A3D006}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{7F8F2EEC-AF2B-4535-8F71-DF869571CF75}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Threading.Tasks.Extensions", "src\System.Threading.Tasks.Extensions\src\System.Threading.Tasks.Extensions.csproj", "{8DE7D7DC-DBB5-4C5E-BE40-0F2AA2C1724C}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Threading.Tasks.Extensions.Tests", "src\System.Threading.Tasks.Extensions\tests\System.Threading.Tasks.Extensions.Tests.csproj", "{2A931B71-5532-470C-B867-1F100A375FD2}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "System.Net.WebSockets.WebSocketProtocol", "System.Net.WebSockets.WebSocketProtocol", "{5B4ABFB2-D3F1-4244-A0DE-62FF7C96FE6B}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{CDAA4F6A-2DA3-4856-8B2F-1C774938386F}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{0C59C632-1793-4B41-965F-0FB276A68E03}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.WebSockets.WebSocketProtocol", "src\System.Net.WebSockets.WebSocketProtocol\src\System.Net.WebSockets.WebSocketProtocol.csproj", "{E875A089-9A2C-44D5-A635-126E24FB862D}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.WebSockets.WebSocketProtocol.Tests", "src\System.Net.WebSockets.WebSocketProtocol\tests\System.Net.WebSockets.WebSocketProtocol.Tests.csproj", "{19343810-5098-4307-BB8C-50AD95892719}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "System.Xml.XPath.XmlDocument", "System.Xml.XPath.XmlDocument", "{9B53BEF6-8264-475D-8177-2351FB4C043A}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{3DDCF8CC-558A-488C-A6B1-13909A87EC81}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1AB00F17-A78F-480F-96B7-C5DFEE6BFF30}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.XPath.XmlDocument.Tests", "src\System.Xml.XPath.XmlDocument\tests\System.Xml.XPath.XmlDocument.Tests.csproj", "{88B2A601-B65D-47A4-A706-54899EDC796D}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.XPath.XmlDocument", "src\System.Xml.XPath.XmlDocument\src\System.Xml.XPath.XmlDocument.csproj", "{93C24867-4767-4704-8B76-68268E6362E4}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "System.Numerics.Vectors", "System.Numerics.Vectors", "{9D4B84F0-D89D-4355-95CF-1E4318A9B9AD}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{DC91D1C2-4425-4E17-861A-2B09EBC1B6CC}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{CF118142-2853-4B0A-93CE-74DE8737B634}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Numerics.Vectors", "src\System.Numerics.Vectors\src\System.Numerics.Vectors.csproj", "{10D6C9CB-D22A-412F-BA1A-B54D529B4A7D}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Numerics.Vectors.Tests", "src\System.Numerics.Vectors\tests\System.Numerics.Vectors.Tests.csproj", "{17DE4110-606F-49B9-8B9B-66AE8BA261C0}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "System.Data.SqlClient", "System.Data.SqlClient", "{0CBCFB7A-1844-40A8-86F3-5FDA33E8077B}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{C5E54919-D128-450F-9BC5-5DCC53E30BB7}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{4361DC59-9F75-487B-841B-A067B0E5B9D4}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Data.SqlClient", "src\System.Data.SqlClient\src\System.Data.SqlClient.csproj", "{9F2F4AE9-0194-4DB8-8BD2-F7ABE009CCFD}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "System.Runtime.CompilerServices.Unsafe", "System.Runtime.CompilerServices.Unsafe", "{C8D70D0B-A9D9-4386-A9A2-CFC3C2FDEBDF}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{18188B46-A3A3-4026-8D4C-59BF50EC1BB2}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{981189F1-3DF3-44ED-BB11-20822008F85D}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe.Tests", "src\System.Runtime.CompilerServices.Unsafe\tests\System.Runtime.CompilerServices.Unsafe.Tests.csproj", "{968B2C10-1F18-4A12-8E22-833E4195C2D1}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Runtime.CompilerServices.Unsafe", "src\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{CF99D9B6-B784-4FF5-AE08-19662FAE7D91}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "FunctionalTests", "FunctionalTests", "{581FAEF2-301E-41F9-B46B-6B51EA2B927E}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ManualTests", "ManualTests", "{695749E8-3339-48D0-9650-34C72CCEEBFF}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TDS", "TDS", "{CD601656-2933-4096-98D9-F82D41A85DD1}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TDS", "TDS", "{60604421-DA9B-4573-947F-375E2BEE85FD}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TDS.EndPoint", "TDS.EndPoint", "{344BA1A5-BAC4-4D80-A070-DB2CEEEF2FBF}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TDS.Servers", "TDS.Servers", "{17991DFF-526A-4A5E-9B6A-FBF6FC15E621}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Data.SqlClient.ManualTesting.Tests", "src\System.Data.SqlClient\tests\ManualTests\System.Data.SqlClient.ManualTesting.Tests.csproj", "{45DB5F86-7AE3-45C6-870D-F9357B66BDB5}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Address", "Address", "{206C7C67-377B-475D-9A6D-B13E0FF4FECB}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Circle", "Circle", "{9F564E0C-4486-4B03-A263-ACF04A17013D}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Shapes", "Shapes", "{8D538D30-A55E-4F96-AA6D-0C4F7483E698}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Utf8String", "Utf8String", "{57D149AF-87A0-4E04-82AE-5E6BEB80D610}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Circle", "src\System.Data.SqlClient\tests\ManualTests\SQL\UdtTest\UDTs\Circle\Circle.csproj", "{6C88F00F-9597-43AD-9E5F-9B344DA3B16F}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Shapes", "src\System.Data.SqlClient\tests\ManualTests\SQL\UdtTest\UDTs\Shapes\Shapes.csproj", "{B73A7063-37C3-415D-AD53-BB3DA20ABD6E}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Utf8String", "src\System.Data.SqlClient\tests\ManualTests\SQL\UdtTest\UDTs\Utf8String\Utf8String.csproj", "{E0A6BB21-574B-43D9-890D-6E1144F2EE9E}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TDS", "src\System.Data.SqlClient\tests\Tools\TDS\TDS\TDS.csproj", "{8DC9D1A0-351B-47BC-A90F-B9DA542550E9}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TDS.EndPoint", "src\System.Data.SqlClient\tests\Tools\TDS\TDS.EndPoint\TDS.EndPoint.csproj", "{1FF891B4-D3DE-4CCE-887C-CB48F5351A45}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TDS.Servers", "src\System.Data.SqlClient\tests\Tools\TDS\TDS.Servers\TDS.Servers.csproj", "{978063D3-FBB5-4E10-8C45-67C90BE1B931}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Address", "src\System.Data.SqlClient\tests\ManualTests\SQL\UdtTest\UDTs\Address\Address.csproj", "{D1392B54-998A-4F27-BC17-4CE149117BCC}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Microsoft.IO.Redist", "Microsoft.IO.Redist", "{A376FF60-3E89-40F1-BD79-652C4DD6EE89}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{0E5B076B-8969-4738-9E5A-0D83061570DD}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.IO.Redist", "src\Microsoft.IO.Redist\src\Microsoft.IO.Redist.csproj", "{C45866E3-904C-4707-985A-ED3A3E650FF2}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Data.SqlClient.FunctionalTesting.Tests", "src\System.Data.SqlClient\tests\FunctionalTests\System.Data.SqlClient.FunctionalTesting.Tests.csproj", "{42DA88FE-3071-4DA1-AD2B-CD1F99DC9FEF}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {0616E313-AAB2-447D-B85C-846E99E82B2F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0616E313-AAB2-447D-B85C-846E99E82B2F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0616E313-AAB2-447D-B85C-846E99E82B2F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0616E313-AAB2-447D-B85C-846E99E82B2F}.Release|Any CPU.Build.0 = Release|Any CPU - {D62C613F-3EE0-45E9-83C1-5F00D4979E55}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D62C613F-3EE0-45E9-83C1-5F00D4979E55}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D62C613F-3EE0-45E9-83C1-5F00D4979E55}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D62C613F-3EE0-45E9-83C1-5F00D4979E55}.Release|Any CPU.Build.0 = Release|Any CPU - {72A3385C-6B43-4D0C-AC5C-AF7EBF320D62}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {72A3385C-6B43-4D0C-AC5C-AF7EBF320D62}.Debug|Any CPU.Build.0 = Debug|Any CPU - {72A3385C-6B43-4D0C-AC5C-AF7EBF320D62}.Release|Any CPU.ActiveCfg = Release|Any CPU - {72A3385C-6B43-4D0C-AC5C-AF7EBF320D62}.Release|Any CPU.Build.0 = Release|Any CPU - {023DAED8-926C-40B5-982B-34ABD650AE6E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {023DAED8-926C-40B5-982B-34ABD650AE6E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {023DAED8-926C-40B5-982B-34ABD650AE6E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {023DAED8-926C-40B5-982B-34ABD650AE6E}.Release|Any CPU.Build.0 = Release|Any CPU - {6C0E5509-10FA-489D-B8B9-83364783BBB2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6C0E5509-10FA-489D-B8B9-83364783BBB2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6C0E5509-10FA-489D-B8B9-83364783BBB2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6C0E5509-10FA-489D-B8B9-83364783BBB2}.Release|Any CPU.Build.0 = Release|Any CPU - {B4DF94FE-F10D-4519-B162-ED57FE9503A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B4DF94FE-F10D-4519-B162-ED57FE9503A3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B4DF94FE-F10D-4519-B162-ED57FE9503A3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B4DF94FE-F10D-4519-B162-ED57FE9503A3}.Release|Any CPU.Build.0 = Release|Any CPU - {8AECDA21-1239-4192-ADAC-A2395592BA6C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8AECDA21-1239-4192-ADAC-A2395592BA6C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8AECDA21-1239-4192-ADAC-A2395592BA6C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8AECDA21-1239-4192-ADAC-A2395592BA6C}.Release|Any CPU.Build.0 = Release|Any CPU - {80B8A19E-CE02-4602-AF3B-BB25777FC906}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {80B8A19E-CE02-4602-AF3B-BB25777FC906}.Debug|Any CPU.Build.0 = Debug|Any CPU - {80B8A19E-CE02-4602-AF3B-BB25777FC906}.Release|Any CPU.ActiveCfg = Release|Any CPU - {80B8A19E-CE02-4602-AF3B-BB25777FC906}.Release|Any CPU.Build.0 = Release|Any CPU - {EC28E44A-4515-4208-9D37-D8398F989FE6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EC28E44A-4515-4208-9D37-D8398F989FE6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EC28E44A-4515-4208-9D37-D8398F989FE6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EC28E44A-4515-4208-9D37-D8398F989FE6}.Release|Any CPU.Build.0 = Release|Any CPU - {7635F09C-8CBB-41D5-A0E6-CC0B3FEC989F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7635F09C-8CBB-41D5-A0E6-CC0B3FEC989F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7635F09C-8CBB-41D5-A0E6-CC0B3FEC989F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7635F09C-8CBB-41D5-A0E6-CC0B3FEC989F}.Release|Any CPU.Build.0 = Release|Any CPU - {8DE7D7DC-DBB5-4C5E-BE40-0F2AA2C1724C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8DE7D7DC-DBB5-4C5E-BE40-0F2AA2C1724C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8DE7D7DC-DBB5-4C5E-BE40-0F2AA2C1724C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8DE7D7DC-DBB5-4C5E-BE40-0F2AA2C1724C}.Release|Any CPU.Build.0 = Release|Any CPU - {2A931B71-5532-470C-B867-1F100A375FD2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2A931B71-5532-470C-B867-1F100A375FD2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2A931B71-5532-470C-B867-1F100A375FD2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2A931B71-5532-470C-B867-1F100A375FD2}.Release|Any CPU.Build.0 = Release|Any CPU - {E875A089-9A2C-44D5-A635-126E24FB862D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E875A089-9A2C-44D5-A635-126E24FB862D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E875A089-9A2C-44D5-A635-126E24FB862D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E875A089-9A2C-44D5-A635-126E24FB862D}.Release|Any CPU.Build.0 = Release|Any CPU - {19343810-5098-4307-BB8C-50AD95892719}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {19343810-5098-4307-BB8C-50AD95892719}.Debug|Any CPU.Build.0 = Debug|Any CPU - {19343810-5098-4307-BB8C-50AD95892719}.Release|Any CPU.ActiveCfg = Release|Any CPU - {19343810-5098-4307-BB8C-50AD95892719}.Release|Any CPU.Build.0 = Release|Any CPU - {88B2A601-B65D-47A4-A706-54899EDC796D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {88B2A601-B65D-47A4-A706-54899EDC796D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {88B2A601-B65D-47A4-A706-54899EDC796D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {88B2A601-B65D-47A4-A706-54899EDC796D}.Release|Any CPU.Build.0 = Release|Any CPU - {93C24867-4767-4704-8B76-68268E6362E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {93C24867-4767-4704-8B76-68268E6362E4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {93C24867-4767-4704-8B76-68268E6362E4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {93C24867-4767-4704-8B76-68268E6362E4}.Release|Any CPU.Build.0 = Release|Any CPU - {10D6C9CB-D22A-412F-BA1A-B54D529B4A7D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {10D6C9CB-D22A-412F-BA1A-B54D529B4A7D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {10D6C9CB-D22A-412F-BA1A-B54D529B4A7D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {10D6C9CB-D22A-412F-BA1A-B54D529B4A7D}.Release|Any CPU.Build.0 = Release|Any CPU - {17DE4110-606F-49B9-8B9B-66AE8BA261C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {17DE4110-606F-49B9-8B9B-66AE8BA261C0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {17DE4110-606F-49B9-8B9B-66AE8BA261C0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {17DE4110-606F-49B9-8B9B-66AE8BA261C0}.Release|Any CPU.Build.0 = Release|Any CPU - {9F2F4AE9-0194-4DB8-8BD2-F7ABE009CCFD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9F2F4AE9-0194-4DB8-8BD2-F7ABE009CCFD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9F2F4AE9-0194-4DB8-8BD2-F7ABE009CCFD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9F2F4AE9-0194-4DB8-8BD2-F7ABE009CCFD}.Release|Any CPU.Build.0 = Release|Any CPU - {968B2C10-1F18-4A12-8E22-833E4195C2D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {968B2C10-1F18-4A12-8E22-833E4195C2D1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {968B2C10-1F18-4A12-8E22-833E4195C2D1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {968B2C10-1F18-4A12-8E22-833E4195C2D1}.Release|Any CPU.Build.0 = Release|Any CPU - {CF99D9B6-B784-4FF5-AE08-19662FAE7D91}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CF99D9B6-B784-4FF5-AE08-19662FAE7D91}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CF99D9B6-B784-4FF5-AE08-19662FAE7D91}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CF99D9B6-B784-4FF5-AE08-19662FAE7D91}.Release|Any CPU.Build.0 = Release|Any CPU - {45DB5F86-7AE3-45C6-870D-F9357B66BDB5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {45DB5F86-7AE3-45C6-870D-F9357B66BDB5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {45DB5F86-7AE3-45C6-870D-F9357B66BDB5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {45DB5F86-7AE3-45C6-870D-F9357B66BDB5}.Release|Any CPU.Build.0 = Release|Any CPU - {6C88F00F-9597-43AD-9E5F-9B344DA3B16F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6C88F00F-9597-43AD-9E5F-9B344DA3B16F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6C88F00F-9597-43AD-9E5F-9B344DA3B16F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6C88F00F-9597-43AD-9E5F-9B344DA3B16F}.Release|Any CPU.Build.0 = Release|Any CPU - {B73A7063-37C3-415D-AD53-BB3DA20ABD6E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B73A7063-37C3-415D-AD53-BB3DA20ABD6E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B73A7063-37C3-415D-AD53-BB3DA20ABD6E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B73A7063-37C3-415D-AD53-BB3DA20ABD6E}.Release|Any CPU.Build.0 = Release|Any CPU - {E0A6BB21-574B-43D9-890D-6E1144F2EE9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E0A6BB21-574B-43D9-890D-6E1144F2EE9E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E0A6BB21-574B-43D9-890D-6E1144F2EE9E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E0A6BB21-574B-43D9-890D-6E1144F2EE9E}.Release|Any CPU.Build.0 = Release|Any CPU - {8DC9D1A0-351B-47BC-A90F-B9DA542550E9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8DC9D1A0-351B-47BC-A90F-B9DA542550E9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8DC9D1A0-351B-47BC-A90F-B9DA542550E9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8DC9D1A0-351B-47BC-A90F-B9DA542550E9}.Release|Any CPU.Build.0 = Release|Any CPU - {1FF891B4-D3DE-4CCE-887C-CB48F5351A45}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1FF891B4-D3DE-4CCE-887C-CB48F5351A45}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1FF891B4-D3DE-4CCE-887C-CB48F5351A45}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1FF891B4-D3DE-4CCE-887C-CB48F5351A45}.Release|Any CPU.Build.0 = Release|Any CPU - {978063D3-FBB5-4E10-8C45-67C90BE1B931}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {978063D3-FBB5-4E10-8C45-67C90BE1B931}.Debug|Any CPU.Build.0 = Debug|Any CPU - {978063D3-FBB5-4E10-8C45-67C90BE1B931}.Release|Any CPU.ActiveCfg = Release|Any CPU - {978063D3-FBB5-4E10-8C45-67C90BE1B931}.Release|Any CPU.Build.0 = Release|Any CPU - {D1392B54-998A-4F27-BC17-4CE149117BCC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D1392B54-998A-4F27-BC17-4CE149117BCC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D1392B54-998A-4F27-BC17-4CE149117BCC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D1392B54-998A-4F27-BC17-4CE149117BCC}.Release|Any CPU.Build.0 = Release|Any CPU - {C45866E3-904C-4707-985A-ED3A3E650FF2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C45866E3-904C-4707-985A-ED3A3E650FF2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C45866E3-904C-4707-985A-ED3A3E650FF2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C45866E3-904C-4707-985A-ED3A3E650FF2}.Release|Any CPU.Build.0 = Release|Any CPU - {42DA88FE-3071-4DA1-AD2B-CD1F99DC9FEF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {42DA88FE-3071-4DA1-AD2B-CD1F99DC9FEF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {42DA88FE-3071-4DA1-AD2B-CD1F99DC9FEF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {42DA88FE-3071-4DA1-AD2B-CD1F99DC9FEF}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {C49A5915-FC2A-446B-916A-8428FDB53894} = {2C54303C-7D38-4CAA-AA02-BD3A3AAC8A57} - {0616E313-AAB2-447D-B85C-846E99E82B2F} = {C49A5915-FC2A-446B-916A-8428FDB53894} - {098C3481-D67D-4808-9417-BDB03A2EBDA5} = {2C54303C-7D38-4CAA-AA02-BD3A3AAC8A57} - {D62C613F-3EE0-45E9-83C1-5F00D4979E55} = {098C3481-D67D-4808-9417-BDB03A2EBDA5} - {C4349F63-7703-4B32-A4ED-1E574E463C69} = {E8080F67-E0C1-45FE-88A1-B075D7478B39} - {5D534C7F-F3F1-4F7F-A88B-6C8107C4C757} = {E8080F67-E0C1-45FE-88A1-B075D7478B39} - {72A3385C-6B43-4D0C-AC5C-AF7EBF320D62} = {C4349F63-7703-4B32-A4ED-1E574E463C69} - {023DAED8-926C-40B5-982B-34ABD650AE6E} = {5D534C7F-F3F1-4F7F-A88B-6C8107C4C757} - {E5362B5B-2BDD-459E-ADA8-4B43AD26BB51} = {FC90D945-40A0-4CB4-BC71-EC17C9E8F419} - {F2034F32-7729-463B-8A35-76F0BF07A160} = {FC90D945-40A0-4CB4-BC71-EC17C9E8F419} - {6C0E5509-10FA-489D-B8B9-83364783BBB2} = {E5362B5B-2BDD-459E-ADA8-4B43AD26BB51} - {B4DF94FE-F10D-4519-B162-ED57FE9503A3} = {F2034F32-7729-463B-8A35-76F0BF07A160} - {AFEBA492-710F-49C1-A722-F54F9B45DD04} = {49C98554-4981-4F3A-A98E-5C729BE0D7A5} - {285CA270-F914-4E93-857D-69F563775BD8} = {49C98554-4981-4F3A-A98E-5C729BE0D7A5} - {8AECDA21-1239-4192-ADAC-A2395592BA6C} = {AFEBA492-710F-49C1-A722-F54F9B45DD04} - {80B8A19E-CE02-4602-AF3B-BB25777FC906} = {285CA270-F914-4E93-857D-69F563775BD8} - {021CD24C-D12E-4435-8FEE-802A4D0AA30B} = {E7FB03F7-C286-4618-BB7D-C4DD705A8A73} - {82498727-8CFD-4E60-8E9D-32FBEB594063} = {E7FB03F7-C286-4618-BB7D-C4DD705A8A73} - {EC28E44A-4515-4208-9D37-D8398F989FE6} = {021CD24C-D12E-4435-8FEE-802A4D0AA30B} - {7635F09C-8CBB-41D5-A0E6-CC0B3FEC989F} = {82498727-8CFD-4E60-8E9D-32FBEB594063} - {6DCA2B87-5722-45FC-9BEC-701910A3D006} = {FBAAF48E-58AD-4870-9692-9AB7C407B695} - {7F8F2EEC-AF2B-4535-8F71-DF869571CF75} = {FBAAF48E-58AD-4870-9692-9AB7C407B695} - {8DE7D7DC-DBB5-4C5E-BE40-0F2AA2C1724C} = {6DCA2B87-5722-45FC-9BEC-701910A3D006} - {2A931B71-5532-470C-B867-1F100A375FD2} = {7F8F2EEC-AF2B-4535-8F71-DF869571CF75} - {CDAA4F6A-2DA3-4856-8B2F-1C774938386F} = {5B4ABFB2-D3F1-4244-A0DE-62FF7C96FE6B} - {0C59C632-1793-4B41-965F-0FB276A68E03} = {5B4ABFB2-D3F1-4244-A0DE-62FF7C96FE6B} - {E875A089-9A2C-44D5-A635-126E24FB862D} = {CDAA4F6A-2DA3-4856-8B2F-1C774938386F} - {19343810-5098-4307-BB8C-50AD95892719} = {0C59C632-1793-4B41-965F-0FB276A68E03} - {3DDCF8CC-558A-488C-A6B1-13909A87EC81} = {9B53BEF6-8264-475D-8177-2351FB4C043A} - {1AB00F17-A78F-480F-96B7-C5DFEE6BFF30} = {9B53BEF6-8264-475D-8177-2351FB4C043A} - {88B2A601-B65D-47A4-A706-54899EDC796D} = {1AB00F17-A78F-480F-96B7-C5DFEE6BFF30} - {93C24867-4767-4704-8B76-68268E6362E4} = {3DDCF8CC-558A-488C-A6B1-13909A87EC81} - {DC91D1C2-4425-4E17-861A-2B09EBC1B6CC} = {9D4B84F0-D89D-4355-95CF-1E4318A9B9AD} - {CF118142-2853-4B0A-93CE-74DE8737B634} = {9D4B84F0-D89D-4355-95CF-1E4318A9B9AD} - {10D6C9CB-D22A-412F-BA1A-B54D529B4A7D} = {DC91D1C2-4425-4E17-861A-2B09EBC1B6CC} - {17DE4110-606F-49B9-8B9B-66AE8BA261C0} = {CF118142-2853-4B0A-93CE-74DE8737B634} - {C5E54919-D128-450F-9BC5-5DCC53E30BB7} = {0CBCFB7A-1844-40A8-86F3-5FDA33E8077B} - {4361DC59-9F75-487B-841B-A067B0E5B9D4} = {0CBCFB7A-1844-40A8-86F3-5FDA33E8077B} - {9F2F4AE9-0194-4DB8-8BD2-F7ABE009CCFD} = {C5E54919-D128-450F-9BC5-5DCC53E30BB7} - {18188B46-A3A3-4026-8D4C-59BF50EC1BB2} = {C8D70D0B-A9D9-4386-A9A2-CFC3C2FDEBDF} - {981189F1-3DF3-44ED-BB11-20822008F85D} = {C8D70D0B-A9D9-4386-A9A2-CFC3C2FDEBDF} - {968B2C10-1F18-4A12-8E22-833E4195C2D1} = {981189F1-3DF3-44ED-BB11-20822008F85D} - {CF99D9B6-B784-4FF5-AE08-19662FAE7D91} = {18188B46-A3A3-4026-8D4C-59BF50EC1BB2} - {581FAEF2-301E-41F9-B46B-6B51EA2B927E} = {4361DC59-9F75-487B-841B-A067B0E5B9D4} - {695749E8-3339-48D0-9650-34C72CCEEBFF} = {4361DC59-9F75-487B-841B-A067B0E5B9D4} - {CD601656-2933-4096-98D9-F82D41A85DD1} = {4361DC59-9F75-487B-841B-A067B0E5B9D4} - {60604421-DA9B-4573-947F-375E2BEE85FD} = {CD601656-2933-4096-98D9-F82D41A85DD1} - {344BA1A5-BAC4-4D80-A070-DB2CEEEF2FBF} = {CD601656-2933-4096-98D9-F82D41A85DD1} - {17991DFF-526A-4A5E-9B6A-FBF6FC15E621} = {CD601656-2933-4096-98D9-F82D41A85DD1} - {45DB5F86-7AE3-45C6-870D-F9357B66BDB5} = {695749E8-3339-48D0-9650-34C72CCEEBFF} - {206C7C67-377B-475D-9A6D-B13E0FF4FECB} = {695749E8-3339-48D0-9650-34C72CCEEBFF} - {9F564E0C-4486-4B03-A263-ACF04A17013D} = {695749E8-3339-48D0-9650-34C72CCEEBFF} - {8D538D30-A55E-4F96-AA6D-0C4F7483E698} = {695749E8-3339-48D0-9650-34C72CCEEBFF} - {57D149AF-87A0-4E04-82AE-5E6BEB80D610} = {695749E8-3339-48D0-9650-34C72CCEEBFF} - {6C88F00F-9597-43AD-9E5F-9B344DA3B16F} = {9F564E0C-4486-4B03-A263-ACF04A17013D} - {B73A7063-37C3-415D-AD53-BB3DA20ABD6E} = {8D538D30-A55E-4F96-AA6D-0C4F7483E698} - {E0A6BB21-574B-43D9-890D-6E1144F2EE9E} = {57D149AF-87A0-4E04-82AE-5E6BEB80D610} - {8DC9D1A0-351B-47BC-A90F-B9DA542550E9} = {60604421-DA9B-4573-947F-375E2BEE85FD} - {1FF891B4-D3DE-4CCE-887C-CB48F5351A45} = {344BA1A5-BAC4-4D80-A070-DB2CEEEF2FBF} - {978063D3-FBB5-4E10-8C45-67C90BE1B931} = {17991DFF-526A-4A5E-9B6A-FBF6FC15E621} - {D1392B54-998A-4F27-BC17-4CE149117BCC} = {206C7C67-377B-475D-9A6D-B13E0FF4FECB} - {0E5B076B-8969-4738-9E5A-0D83061570DD} = {A376FF60-3E89-40F1-BD79-652C4DD6EE89} - {C45866E3-904C-4707-985A-ED3A3E650FF2} = {0E5B076B-8969-4738-9E5A-0D83061570DD} - {42DA88FE-3071-4DA1-AD2B-CD1F99DC9FEF} = {581FAEF2-301E-41F9-B46B-6B51EA2B927E} - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {588483EB-F59C-4D9E-A1C7-C85D719CA1B0} - EndGlobalSection -EndGlobal +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.0.31903.59 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "System.Buffers", "System.Buffers", "{2C54303C-7D38-4CAA-AA02-BD3A3AAC8A57}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{C49A5915-FC2A-446B-916A-8428FDB53894}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Buffers", "src\System.Buffers\src\System.Buffers.csproj", "{0616E313-AAB2-447D-B85C-846E99E82B2F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{098C3481-D67D-4808-9417-BDB03A2EBDA5}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Buffers.Tests", "src\System.Buffers\tests\System.Buffers.Tests.csproj", "{D62C613F-3EE0-45E9-83C1-5F00D4979E55}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Microsoft.Bcl.HashCode", "Microsoft.Bcl.HashCode", "{E8080F67-E0C1-45FE-88A1-B075D7478B39}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{C4349F63-7703-4B32-A4ED-1E574E463C69}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{5D534C7F-F3F1-4F7F-A88B-6C8107C4C757}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bcl.HashCode", "src\Microsoft.Bcl.HashCode\src\Microsoft.Bcl.HashCode.csproj", "{72A3385C-6B43-4D0C-AC5C-AF7EBF320D62}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bcl.HashCode.Tests", "src\Microsoft.Bcl.HashCode\tests\Microsoft.Bcl.HashCode.Tests.csproj", "{023DAED8-926C-40B5-982B-34ABD650AE6E}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "System.Memory", "System.Memory", "{FC90D945-40A0-4CB4-BC71-EC17C9E8F419}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E5362B5B-2BDD-459E-ADA8-4B43AD26BB51}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{F2034F32-7729-463B-8A35-76F0BF07A160}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Memory", "src\System.Memory\src\System.Memory.csproj", "{6C0E5509-10FA-489D-B8B9-83364783BBB2}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Memory.Tests", "src\System.Memory\tests\System.Memory.Tests.csproj", "{B4DF94FE-F10D-4519-B162-ED57FE9503A3}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "System.Json", "System.Json", "{49C98554-4981-4F3A-A98E-5C729BE0D7A5}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{AFEBA492-710F-49C1-A722-F54F9B45DD04}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{285CA270-F914-4E93-857D-69F563775BD8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Json", "src\System.Json\src\System.Json.csproj", "{8AECDA21-1239-4192-ADAC-A2395592BA6C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Json.Tests", "src\System.Json\tests\System.Json.Tests.csproj", "{80B8A19E-CE02-4602-AF3B-BB25777FC906}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "System.Reflection.DispatchProxy", "System.Reflection.DispatchProxy", "{E7FB03F7-C286-4618-BB7D-C4DD705A8A73}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{021CD24C-D12E-4435-8FEE-802A4D0AA30B}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{82498727-8CFD-4E60-8E9D-32FBEB594063}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.DispatchProxy", "src\System.Reflection.DispatchProxy\src\System.Reflection.DispatchProxy.csproj", "{EC28E44A-4515-4208-9D37-D8398F989FE6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.DispatchProxy.Tests", "src\System.Reflection.DispatchProxy\tests\System.Reflection.DispatchProxy.Tests.csproj", "{7635F09C-8CBB-41D5-A0E6-CC0B3FEC989F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "System.Threading.Tasks.Extensions", "System.Threading.Tasks.Extensions", "{FBAAF48E-58AD-4870-9692-9AB7C407B695}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{6DCA2B87-5722-45FC-9BEC-701910A3D006}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{7F8F2EEC-AF2B-4535-8F71-DF869571CF75}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Threading.Tasks.Extensions", "src\System.Threading.Tasks.Extensions\src\System.Threading.Tasks.Extensions.csproj", "{8DE7D7DC-DBB5-4C5E-BE40-0F2AA2C1724C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Threading.Tasks.Extensions.Tests", "src\System.Threading.Tasks.Extensions\tests\System.Threading.Tasks.Extensions.Tests.csproj", "{2A931B71-5532-470C-B867-1F100A375FD2}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "System.Net.WebSockets.WebSocketProtocol", "System.Net.WebSockets.WebSocketProtocol", "{5B4ABFB2-D3F1-4244-A0DE-62FF7C96FE6B}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{CDAA4F6A-2DA3-4856-8B2F-1C774938386F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{0C59C632-1793-4B41-965F-0FB276A68E03}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.WebSockets.WebSocketProtocol", "src\System.Net.WebSockets.WebSocketProtocol\src\System.Net.WebSockets.WebSocketProtocol.csproj", "{E875A089-9A2C-44D5-A635-126E24FB862D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.WebSockets.WebSocketProtocol.Tests", "src\System.Net.WebSockets.WebSocketProtocol\tests\System.Net.WebSockets.WebSocketProtocol.Tests.csproj", "{19343810-5098-4307-BB8C-50AD95892719}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "System.Xml.XPath.XmlDocument", "System.Xml.XPath.XmlDocument", "{9B53BEF6-8264-475D-8177-2351FB4C043A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{3DDCF8CC-558A-488C-A6B1-13909A87EC81}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1AB00F17-A78F-480F-96B7-C5DFEE6BFF30}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.XPath.XmlDocument.Tests", "src\System.Xml.XPath.XmlDocument\tests\System.Xml.XPath.XmlDocument.Tests.csproj", "{88B2A601-B65D-47A4-A706-54899EDC796D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Xml.XPath.XmlDocument", "src\System.Xml.XPath.XmlDocument\src\System.Xml.XPath.XmlDocument.csproj", "{93C24867-4767-4704-8B76-68268E6362E4}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "System.Numerics.Vectors", "System.Numerics.Vectors", "{9D4B84F0-D89D-4355-95CF-1E4318A9B9AD}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{DC91D1C2-4425-4E17-861A-2B09EBC1B6CC}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{CF118142-2853-4B0A-93CE-74DE8737B634}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Numerics.Vectors", "src\System.Numerics.Vectors\src\System.Numerics.Vectors.csproj", "{10D6C9CB-D22A-412F-BA1A-B54D529B4A7D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Numerics.Vectors.Tests", "src\System.Numerics.Vectors\tests\System.Numerics.Vectors.Tests.csproj", "{17DE4110-606F-49B9-8B9B-66AE8BA261C0}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "System.Data.SqlClient", "System.Data.SqlClient", "{0CBCFB7A-1844-40A8-86F3-5FDA33E8077B}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{C5E54919-D128-450F-9BC5-5DCC53E30BB7}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{4361DC59-9F75-487B-841B-A067B0E5B9D4}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Data.SqlClient", "src\System.Data.SqlClient\src\System.Data.SqlClient.csproj", "{9F2F4AE9-0194-4DB8-8BD2-F7ABE009CCFD}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "System.Runtime.CompilerServices.Unsafe", "System.Runtime.CompilerServices.Unsafe", "{C8D70D0B-A9D9-4386-A9A2-CFC3C2FDEBDF}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{18188B46-A3A3-4026-8D4C-59BF50EC1BB2}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{981189F1-3DF3-44ED-BB11-20822008F85D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServices.Unsafe.Tests", "src\System.Runtime.CompilerServices.Unsafe\tests\System.Runtime.CompilerServices.Unsafe.Tests.csproj", "{968B2C10-1F18-4A12-8E22-833E4195C2D1}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Runtime.CompilerServices.Unsafe", "src\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{CF99D9B6-B784-4FF5-AE08-19662FAE7D91}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "FunctionalTests", "FunctionalTests", "{581FAEF2-301E-41F9-B46B-6B51EA2B927E}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ManualTests", "ManualTests", "{695749E8-3339-48D0-9650-34C72CCEEBFF}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TDS", "TDS", "{CD601656-2933-4096-98D9-F82D41A85DD1}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TDS", "TDS", "{60604421-DA9B-4573-947F-375E2BEE85FD}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TDS.EndPoint", "TDS.EndPoint", "{344BA1A5-BAC4-4D80-A070-DB2CEEEF2FBF}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TDS.Servers", "TDS.Servers", "{17991DFF-526A-4A5E-9B6A-FBF6FC15E621}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Data.SqlClient.ManualTesting.Tests", "src\System.Data.SqlClient\tests\ManualTests\System.Data.SqlClient.ManualTesting.Tests.csproj", "{45DB5F86-7AE3-45C6-870D-F9357B66BDB5}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Address", "Address", "{206C7C67-377B-475D-9A6D-B13E0FF4FECB}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Circle", "Circle", "{9F564E0C-4486-4B03-A263-ACF04A17013D}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Shapes", "Shapes", "{8D538D30-A55E-4F96-AA6D-0C4F7483E698}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Utf8String", "Utf8String", "{57D149AF-87A0-4E04-82AE-5E6BEB80D610}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Circle", "src\System.Data.SqlClient\tests\ManualTests\SQL\UdtTest\UDTs\Circle\Circle.csproj", "{6C88F00F-9597-43AD-9E5F-9B344DA3B16F}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Shapes", "src\System.Data.SqlClient\tests\ManualTests\SQL\UdtTest\UDTs\Shapes\Shapes.csproj", "{B73A7063-37C3-415D-AD53-BB3DA20ABD6E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Utf8String", "src\System.Data.SqlClient\tests\ManualTests\SQL\UdtTest\UDTs\Utf8String\Utf8String.csproj", "{E0A6BB21-574B-43D9-890D-6E1144F2EE9E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TDS", "src\System.Data.SqlClient\tests\Tools\TDS\TDS\TDS.csproj", "{8DC9D1A0-351B-47BC-A90F-B9DA542550E9}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TDS.EndPoint", "src\System.Data.SqlClient\tests\Tools\TDS\TDS.EndPoint\TDS.EndPoint.csproj", "{1FF891B4-D3DE-4CCE-887C-CB48F5351A45}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TDS.Servers", "src\System.Data.SqlClient\tests\Tools\TDS\TDS.Servers\TDS.Servers.csproj", "{978063D3-FBB5-4E10-8C45-67C90BE1B931}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Address", "src\System.Data.SqlClient\tests\ManualTests\SQL\UdtTest\UDTs\Address\Address.csproj", "{D1392B54-998A-4F27-BC17-4CE149117BCC}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Microsoft.IO.Redist", "Microsoft.IO.Redist", "{A376FF60-3E89-40F1-BD79-652C4DD6EE89}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{0E5B076B-8969-4738-9E5A-0D83061570DD}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.IO.Redist", "src\Microsoft.IO.Redist\src\Microsoft.IO.Redist.csproj", "{C45866E3-904C-4707-985A-ED3A3E650FF2}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Data.SqlClient.FunctionalTesting.Tests", "src\System.Data.SqlClient\tests\FunctionalTests\System.Data.SqlClient.FunctionalTesting.Tests.csproj", "{42DA88FE-3071-4DA1-AD2B-CD1F99DC9FEF}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {0616E313-AAB2-447D-B85C-846E99E82B2F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0616E313-AAB2-447D-B85C-846E99E82B2F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0616E313-AAB2-447D-B85C-846E99E82B2F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0616E313-AAB2-447D-B85C-846E99E82B2F}.Release|Any CPU.Build.0 = Release|Any CPU + {D62C613F-3EE0-45E9-83C1-5F00D4979E55}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D62C613F-3EE0-45E9-83C1-5F00D4979E55}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D62C613F-3EE0-45E9-83C1-5F00D4979E55}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D62C613F-3EE0-45E9-83C1-5F00D4979E55}.Release|Any CPU.Build.0 = Release|Any CPU + {72A3385C-6B43-4D0C-AC5C-AF7EBF320D62}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {72A3385C-6B43-4D0C-AC5C-AF7EBF320D62}.Debug|Any CPU.Build.0 = Debug|Any CPU + {72A3385C-6B43-4D0C-AC5C-AF7EBF320D62}.Release|Any CPU.ActiveCfg = Release|Any CPU + {72A3385C-6B43-4D0C-AC5C-AF7EBF320D62}.Release|Any CPU.Build.0 = Release|Any CPU + {023DAED8-926C-40B5-982B-34ABD650AE6E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {023DAED8-926C-40B5-982B-34ABD650AE6E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {023DAED8-926C-40B5-982B-34ABD650AE6E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {023DAED8-926C-40B5-982B-34ABD650AE6E}.Release|Any CPU.Build.0 = Release|Any CPU + {6C0E5509-10FA-489D-B8B9-83364783BBB2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6C0E5509-10FA-489D-B8B9-83364783BBB2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6C0E5509-10FA-489D-B8B9-83364783BBB2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6C0E5509-10FA-489D-B8B9-83364783BBB2}.Release|Any CPU.Build.0 = Release|Any CPU + {B4DF94FE-F10D-4519-B162-ED57FE9503A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B4DF94FE-F10D-4519-B162-ED57FE9503A3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B4DF94FE-F10D-4519-B162-ED57FE9503A3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B4DF94FE-F10D-4519-B162-ED57FE9503A3}.Release|Any CPU.Build.0 = Release|Any CPU + {8AECDA21-1239-4192-ADAC-A2395592BA6C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8AECDA21-1239-4192-ADAC-A2395592BA6C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8AECDA21-1239-4192-ADAC-A2395592BA6C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8AECDA21-1239-4192-ADAC-A2395592BA6C}.Release|Any CPU.Build.0 = Release|Any CPU + {80B8A19E-CE02-4602-AF3B-BB25777FC906}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {80B8A19E-CE02-4602-AF3B-BB25777FC906}.Debug|Any CPU.Build.0 = Debug|Any CPU + {80B8A19E-CE02-4602-AF3B-BB25777FC906}.Release|Any CPU.ActiveCfg = Release|Any CPU + {80B8A19E-CE02-4602-AF3B-BB25777FC906}.Release|Any CPU.Build.0 = Release|Any CPU + {EC28E44A-4515-4208-9D37-D8398F989FE6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EC28E44A-4515-4208-9D37-D8398F989FE6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EC28E44A-4515-4208-9D37-D8398F989FE6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EC28E44A-4515-4208-9D37-D8398F989FE6}.Release|Any CPU.Build.0 = Release|Any CPU + {7635F09C-8CBB-41D5-A0E6-CC0B3FEC989F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7635F09C-8CBB-41D5-A0E6-CC0B3FEC989F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7635F09C-8CBB-41D5-A0E6-CC0B3FEC989F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7635F09C-8CBB-41D5-A0E6-CC0B3FEC989F}.Release|Any CPU.Build.0 = Release|Any CPU + {8DE7D7DC-DBB5-4C5E-BE40-0F2AA2C1724C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8DE7D7DC-DBB5-4C5E-BE40-0F2AA2C1724C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8DE7D7DC-DBB5-4C5E-BE40-0F2AA2C1724C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8DE7D7DC-DBB5-4C5E-BE40-0F2AA2C1724C}.Release|Any CPU.Build.0 = Release|Any CPU + {2A931B71-5532-470C-B867-1F100A375FD2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2A931B71-5532-470C-B867-1F100A375FD2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2A931B71-5532-470C-B867-1F100A375FD2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2A931B71-5532-470C-B867-1F100A375FD2}.Release|Any CPU.Build.0 = Release|Any CPU + {E875A089-9A2C-44D5-A635-126E24FB862D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E875A089-9A2C-44D5-A635-126E24FB862D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E875A089-9A2C-44D5-A635-126E24FB862D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E875A089-9A2C-44D5-A635-126E24FB862D}.Release|Any CPU.Build.0 = Release|Any CPU + {19343810-5098-4307-BB8C-50AD95892719}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {19343810-5098-4307-BB8C-50AD95892719}.Debug|Any CPU.Build.0 = Debug|Any CPU + {19343810-5098-4307-BB8C-50AD95892719}.Release|Any CPU.ActiveCfg = Release|Any CPU + {19343810-5098-4307-BB8C-50AD95892719}.Release|Any CPU.Build.0 = Release|Any CPU + {88B2A601-B65D-47A4-A706-54899EDC796D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {88B2A601-B65D-47A4-A706-54899EDC796D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {88B2A601-B65D-47A4-A706-54899EDC796D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {88B2A601-B65D-47A4-A706-54899EDC796D}.Release|Any CPU.Build.0 = Release|Any CPU + {93C24867-4767-4704-8B76-68268E6362E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {93C24867-4767-4704-8B76-68268E6362E4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {93C24867-4767-4704-8B76-68268E6362E4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {93C24867-4767-4704-8B76-68268E6362E4}.Release|Any CPU.Build.0 = Release|Any CPU + {10D6C9CB-D22A-412F-BA1A-B54D529B4A7D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {10D6C9CB-D22A-412F-BA1A-B54D529B4A7D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {10D6C9CB-D22A-412F-BA1A-B54D529B4A7D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {10D6C9CB-D22A-412F-BA1A-B54D529B4A7D}.Release|Any CPU.Build.0 = Release|Any CPU + {17DE4110-606F-49B9-8B9B-66AE8BA261C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {17DE4110-606F-49B9-8B9B-66AE8BA261C0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {17DE4110-606F-49B9-8B9B-66AE8BA261C0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {17DE4110-606F-49B9-8B9B-66AE8BA261C0}.Release|Any CPU.Build.0 = Release|Any CPU + {9F2F4AE9-0194-4DB8-8BD2-F7ABE009CCFD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9F2F4AE9-0194-4DB8-8BD2-F7ABE009CCFD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9F2F4AE9-0194-4DB8-8BD2-F7ABE009CCFD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9F2F4AE9-0194-4DB8-8BD2-F7ABE009CCFD}.Release|Any CPU.Build.0 = Release|Any CPU + {968B2C10-1F18-4A12-8E22-833E4195C2D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {968B2C10-1F18-4A12-8E22-833E4195C2D1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {968B2C10-1F18-4A12-8E22-833E4195C2D1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {968B2C10-1F18-4A12-8E22-833E4195C2D1}.Release|Any CPU.Build.0 = Release|Any CPU + {CF99D9B6-B784-4FF5-AE08-19662FAE7D91}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CF99D9B6-B784-4FF5-AE08-19662FAE7D91}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CF99D9B6-B784-4FF5-AE08-19662FAE7D91}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CF99D9B6-B784-4FF5-AE08-19662FAE7D91}.Release|Any CPU.Build.0 = Release|Any CPU + {45DB5F86-7AE3-45C6-870D-F9357B66BDB5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {45DB5F86-7AE3-45C6-870D-F9357B66BDB5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {45DB5F86-7AE3-45C6-870D-F9357B66BDB5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {45DB5F86-7AE3-45C6-870D-F9357B66BDB5}.Release|Any CPU.Build.0 = Release|Any CPU + {6C88F00F-9597-43AD-9E5F-9B344DA3B16F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6C88F00F-9597-43AD-9E5F-9B344DA3B16F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6C88F00F-9597-43AD-9E5F-9B344DA3B16F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6C88F00F-9597-43AD-9E5F-9B344DA3B16F}.Release|Any CPU.Build.0 = Release|Any CPU + {B73A7063-37C3-415D-AD53-BB3DA20ABD6E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B73A7063-37C3-415D-AD53-BB3DA20ABD6E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B73A7063-37C3-415D-AD53-BB3DA20ABD6E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B73A7063-37C3-415D-AD53-BB3DA20ABD6E}.Release|Any CPU.Build.0 = Release|Any CPU + {E0A6BB21-574B-43D9-890D-6E1144F2EE9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E0A6BB21-574B-43D9-890D-6E1144F2EE9E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E0A6BB21-574B-43D9-890D-6E1144F2EE9E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E0A6BB21-574B-43D9-890D-6E1144F2EE9E}.Release|Any CPU.Build.0 = Release|Any CPU + {8DC9D1A0-351B-47BC-A90F-B9DA542550E9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8DC9D1A0-351B-47BC-A90F-B9DA542550E9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8DC9D1A0-351B-47BC-A90F-B9DA542550E9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8DC9D1A0-351B-47BC-A90F-B9DA542550E9}.Release|Any CPU.Build.0 = Release|Any CPU + {1FF891B4-D3DE-4CCE-887C-CB48F5351A45}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1FF891B4-D3DE-4CCE-887C-CB48F5351A45}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1FF891B4-D3DE-4CCE-887C-CB48F5351A45}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1FF891B4-D3DE-4CCE-887C-CB48F5351A45}.Release|Any CPU.Build.0 = Release|Any CPU + {978063D3-FBB5-4E10-8C45-67C90BE1B931}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {978063D3-FBB5-4E10-8C45-67C90BE1B931}.Debug|Any CPU.Build.0 = Debug|Any CPU + {978063D3-FBB5-4E10-8C45-67C90BE1B931}.Release|Any CPU.ActiveCfg = Release|Any CPU + {978063D3-FBB5-4E10-8C45-67C90BE1B931}.Release|Any CPU.Build.0 = Release|Any CPU + {D1392B54-998A-4F27-BC17-4CE149117BCC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D1392B54-998A-4F27-BC17-4CE149117BCC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D1392B54-998A-4F27-BC17-4CE149117BCC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D1392B54-998A-4F27-BC17-4CE149117BCC}.Release|Any CPU.Build.0 = Release|Any CPU + {C45866E3-904C-4707-985A-ED3A3E650FF2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C45866E3-904C-4707-985A-ED3A3E650FF2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C45866E3-904C-4707-985A-ED3A3E650FF2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C45866E3-904C-4707-985A-ED3A3E650FF2}.Release|Any CPU.Build.0 = Release|Any CPU + {42DA88FE-3071-4DA1-AD2B-CD1F99DC9FEF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {42DA88FE-3071-4DA1-AD2B-CD1F99DC9FEF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {42DA88FE-3071-4DA1-AD2B-CD1F99DC9FEF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {42DA88FE-3071-4DA1-AD2B-CD1F99DC9FEF}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {C49A5915-FC2A-446B-916A-8428FDB53894} = {2C54303C-7D38-4CAA-AA02-BD3A3AAC8A57} + {0616E313-AAB2-447D-B85C-846E99E82B2F} = {C49A5915-FC2A-446B-916A-8428FDB53894} + {098C3481-D67D-4808-9417-BDB03A2EBDA5} = {2C54303C-7D38-4CAA-AA02-BD3A3AAC8A57} + {D62C613F-3EE0-45E9-83C1-5F00D4979E55} = {098C3481-D67D-4808-9417-BDB03A2EBDA5} + {C4349F63-7703-4B32-A4ED-1E574E463C69} = {E8080F67-E0C1-45FE-88A1-B075D7478B39} + {5D534C7F-F3F1-4F7F-A88B-6C8107C4C757} = {E8080F67-E0C1-45FE-88A1-B075D7478B39} + {72A3385C-6B43-4D0C-AC5C-AF7EBF320D62} = {C4349F63-7703-4B32-A4ED-1E574E463C69} + {023DAED8-926C-40B5-982B-34ABD650AE6E} = {5D534C7F-F3F1-4F7F-A88B-6C8107C4C757} + {E5362B5B-2BDD-459E-ADA8-4B43AD26BB51} = {FC90D945-40A0-4CB4-BC71-EC17C9E8F419} + {F2034F32-7729-463B-8A35-76F0BF07A160} = {FC90D945-40A0-4CB4-BC71-EC17C9E8F419} + {6C0E5509-10FA-489D-B8B9-83364783BBB2} = {E5362B5B-2BDD-459E-ADA8-4B43AD26BB51} + {B4DF94FE-F10D-4519-B162-ED57FE9503A3} = {F2034F32-7729-463B-8A35-76F0BF07A160} + {AFEBA492-710F-49C1-A722-F54F9B45DD04} = {49C98554-4981-4F3A-A98E-5C729BE0D7A5} + {285CA270-F914-4E93-857D-69F563775BD8} = {49C98554-4981-4F3A-A98E-5C729BE0D7A5} + {8AECDA21-1239-4192-ADAC-A2395592BA6C} = {AFEBA492-710F-49C1-A722-F54F9B45DD04} + {80B8A19E-CE02-4602-AF3B-BB25777FC906} = {285CA270-F914-4E93-857D-69F563775BD8} + {021CD24C-D12E-4435-8FEE-802A4D0AA30B} = {E7FB03F7-C286-4618-BB7D-C4DD705A8A73} + {82498727-8CFD-4E60-8E9D-32FBEB594063} = {E7FB03F7-C286-4618-BB7D-C4DD705A8A73} + {EC28E44A-4515-4208-9D37-D8398F989FE6} = {021CD24C-D12E-4435-8FEE-802A4D0AA30B} + {7635F09C-8CBB-41D5-A0E6-CC0B3FEC989F} = {82498727-8CFD-4E60-8E9D-32FBEB594063} + {6DCA2B87-5722-45FC-9BEC-701910A3D006} = {FBAAF48E-58AD-4870-9692-9AB7C407B695} + {7F8F2EEC-AF2B-4535-8F71-DF869571CF75} = {FBAAF48E-58AD-4870-9692-9AB7C407B695} + {8DE7D7DC-DBB5-4C5E-BE40-0F2AA2C1724C} = {6DCA2B87-5722-45FC-9BEC-701910A3D006} + {2A931B71-5532-470C-B867-1F100A375FD2} = {7F8F2EEC-AF2B-4535-8F71-DF869571CF75} + {CDAA4F6A-2DA3-4856-8B2F-1C774938386F} = {5B4ABFB2-D3F1-4244-A0DE-62FF7C96FE6B} + {0C59C632-1793-4B41-965F-0FB276A68E03} = {5B4ABFB2-D3F1-4244-A0DE-62FF7C96FE6B} + {E875A089-9A2C-44D5-A635-126E24FB862D} = {CDAA4F6A-2DA3-4856-8B2F-1C774938386F} + {19343810-5098-4307-BB8C-50AD95892719} = {0C59C632-1793-4B41-965F-0FB276A68E03} + {3DDCF8CC-558A-488C-A6B1-13909A87EC81} = {9B53BEF6-8264-475D-8177-2351FB4C043A} + {1AB00F17-A78F-480F-96B7-C5DFEE6BFF30} = {9B53BEF6-8264-475D-8177-2351FB4C043A} + {88B2A601-B65D-47A4-A706-54899EDC796D} = {1AB00F17-A78F-480F-96B7-C5DFEE6BFF30} + {93C24867-4767-4704-8B76-68268E6362E4} = {3DDCF8CC-558A-488C-A6B1-13909A87EC81} + {DC91D1C2-4425-4E17-861A-2B09EBC1B6CC} = {9D4B84F0-D89D-4355-95CF-1E4318A9B9AD} + {CF118142-2853-4B0A-93CE-74DE8737B634} = {9D4B84F0-D89D-4355-95CF-1E4318A9B9AD} + {10D6C9CB-D22A-412F-BA1A-B54D529B4A7D} = {DC91D1C2-4425-4E17-861A-2B09EBC1B6CC} + {17DE4110-606F-49B9-8B9B-66AE8BA261C0} = {CF118142-2853-4B0A-93CE-74DE8737B634} + {C5E54919-D128-450F-9BC5-5DCC53E30BB7} = {0CBCFB7A-1844-40A8-86F3-5FDA33E8077B} + {4361DC59-9F75-487B-841B-A067B0E5B9D4} = {0CBCFB7A-1844-40A8-86F3-5FDA33E8077B} + {9F2F4AE9-0194-4DB8-8BD2-F7ABE009CCFD} = {C5E54919-D128-450F-9BC5-5DCC53E30BB7} + {18188B46-A3A3-4026-8D4C-59BF50EC1BB2} = {C8D70D0B-A9D9-4386-A9A2-CFC3C2FDEBDF} + {981189F1-3DF3-44ED-BB11-20822008F85D} = {C8D70D0B-A9D9-4386-A9A2-CFC3C2FDEBDF} + {968B2C10-1F18-4A12-8E22-833E4195C2D1} = {981189F1-3DF3-44ED-BB11-20822008F85D} + {CF99D9B6-B784-4FF5-AE08-19662FAE7D91} = {18188B46-A3A3-4026-8D4C-59BF50EC1BB2} + {581FAEF2-301E-41F9-B46B-6B51EA2B927E} = {4361DC59-9F75-487B-841B-A067B0E5B9D4} + {695749E8-3339-48D0-9650-34C72CCEEBFF} = {4361DC59-9F75-487B-841B-A067B0E5B9D4} + {CD601656-2933-4096-98D9-F82D41A85DD1} = {4361DC59-9F75-487B-841B-A067B0E5B9D4} + {60604421-DA9B-4573-947F-375E2BEE85FD} = {CD601656-2933-4096-98D9-F82D41A85DD1} + {344BA1A5-BAC4-4D80-A070-DB2CEEEF2FBF} = {CD601656-2933-4096-98D9-F82D41A85DD1} + {17991DFF-526A-4A5E-9B6A-FBF6FC15E621} = {CD601656-2933-4096-98D9-F82D41A85DD1} + {45DB5F86-7AE3-45C6-870D-F9357B66BDB5} = {695749E8-3339-48D0-9650-34C72CCEEBFF} + {206C7C67-377B-475D-9A6D-B13E0FF4FECB} = {695749E8-3339-48D0-9650-34C72CCEEBFF} + {9F564E0C-4486-4B03-A263-ACF04A17013D} = {695749E8-3339-48D0-9650-34C72CCEEBFF} + {8D538D30-A55E-4F96-AA6D-0C4F7483E698} = {695749E8-3339-48D0-9650-34C72CCEEBFF} + {57D149AF-87A0-4E04-82AE-5E6BEB80D610} = {695749E8-3339-48D0-9650-34C72CCEEBFF} + {6C88F00F-9597-43AD-9E5F-9B344DA3B16F} = {9F564E0C-4486-4B03-A263-ACF04A17013D} + {B73A7063-37C3-415D-AD53-BB3DA20ABD6E} = {8D538D30-A55E-4F96-AA6D-0C4F7483E698} + {E0A6BB21-574B-43D9-890D-6E1144F2EE9E} = {57D149AF-87A0-4E04-82AE-5E6BEB80D610} + {8DC9D1A0-351B-47BC-A90F-B9DA542550E9} = {60604421-DA9B-4573-947F-375E2BEE85FD} + {1FF891B4-D3DE-4CCE-887C-CB48F5351A45} = {344BA1A5-BAC4-4D80-A070-DB2CEEEF2FBF} + {978063D3-FBB5-4E10-8C45-67C90BE1B931} = {17991DFF-526A-4A5E-9B6A-FBF6FC15E621} + {D1392B54-998A-4F27-BC17-4CE149117BCC} = {206C7C67-377B-475D-9A6D-B13E0FF4FECB} + {0E5B076B-8969-4738-9E5A-0D83061570DD} = {A376FF60-3E89-40F1-BD79-652C4DD6EE89} + {C45866E3-904C-4707-985A-ED3A3E650FF2} = {0E5B076B-8969-4738-9E5A-0D83061570DD} + {42DA88FE-3071-4DA1-AD2B-CD1F99DC9FEF} = {581FAEF2-301E-41F9-B46B-6B51EA2B927E} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {588483EB-F59C-4D9E-A1C7-C85D719CA1B0} + EndGlobalSection +EndGlobal diff --git a/src/System.Data.SqlClient/tests/Directory.Build.props b/src/System.Data.SqlClient/tests/Directory.Build.props new file mode 100644 index 000000000..3576fcc92 --- /dev/null +++ b/src/System.Data.SqlClient/tests/Directory.Build.props @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/System.Data.SqlClient/tests/System.Data.SqlClient.Tests.csproj b/src/System.Data.SqlClient/tests/System.Data.SqlClient.Tests.csproj deleted file mode 100644 index 4e55824d9..000000000 --- a/src/System.Data.SqlClient/tests/System.Data.SqlClient.Tests.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - - $(NetMinimum)-unix;$(NetMinimum)-windows - false - - - - - - - - \ No newline at end of file From 482871e60d1f36f18ecbfbb28e93b5b927396ebd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20S=C3=A1nchez=20L=C3=B3pez?= <1175054+carlossanlop@users.noreply.github.com> Date: Thu, 3 Oct 2024 09:00:48 -0700 Subject: [PATCH 15/23] Move the Functional tests csproj to the root tests folder and rename it, delete the Directory.Build.props --- .../tests/Directory.Build.props | 7 --- ...a.SqlClient.FunctionalTesting.Tests.csproj | 58 ------------------- .../tests/System.Data.SqlClient.Tests.csproj | 58 +++++++++++++++++++ 3 files changed, 58 insertions(+), 65 deletions(-) delete mode 100644 src/System.Data.SqlClient/tests/Directory.Build.props delete mode 100644 src/System.Data.SqlClient/tests/FunctionalTests/System.Data.SqlClient.FunctionalTesting.Tests.csproj create mode 100644 src/System.Data.SqlClient/tests/System.Data.SqlClient.Tests.csproj diff --git a/src/System.Data.SqlClient/tests/Directory.Build.props b/src/System.Data.SqlClient/tests/Directory.Build.props deleted file mode 100644 index 3576fcc92..000000000 --- a/src/System.Data.SqlClient/tests/Directory.Build.props +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/src/System.Data.SqlClient/tests/FunctionalTests/System.Data.SqlClient.FunctionalTesting.Tests.csproj b/src/System.Data.SqlClient/tests/FunctionalTests/System.Data.SqlClient.FunctionalTesting.Tests.csproj deleted file mode 100644 index ab0918070..000000000 --- a/src/System.Data.SqlClient/tests/FunctionalTests/System.Data.SqlClient.FunctionalTesting.Tests.csproj +++ /dev/null @@ -1,58 +0,0 @@ - - - - true - $(NetMinimum)-unix;$(NetMinimum)-windows - false - $(NoWarn);CA1001;CA1068;CA1069;CA1309;CA1310;CA1419;CA1711;CA1805;CA1806;CA1816;CA1822;CA1830;CA1834;CA1835;CA1836;CA1840;CA1844;CA2016;CA2101;CA2200;CA2201;CA2208;CA2219;CA2241;CA2249;CA2251;CA5366; - $(NoWarn);CS0168;CS0649; - $(NoWarn);IDE0073;SYSLIB0004;nullable; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Address - - - TDS.Servers - - - TDS.EndPoint - - - TDS - - - - - - - - diff --git a/src/System.Data.SqlClient/tests/System.Data.SqlClient.Tests.csproj b/src/System.Data.SqlClient/tests/System.Data.SqlClient.Tests.csproj new file mode 100644 index 000000000..d41ccb72a --- /dev/null +++ b/src/System.Data.SqlClient/tests/System.Data.SqlClient.Tests.csproj @@ -0,0 +1,58 @@ + + + + true + $(NetMinimum)-unix;$(NetMinimum)-windows + false + $(NoWarn);CA1001;CA1068;CA1069;CA1309;CA1310;CA1419;CA1711;CA1805;CA1806;CA1816;CA1822;CA1830;CA1834;CA1835;CA1836;CA1840;CA1844;CA2016;CA2101;CA2200;CA2201;CA2208;CA2219;CA2241;CA2249;CA2251;CA5366; + $(NoWarn);CS0168;CS0649; + $(NoWarn);IDE0073;SYSLIB0004;nullable; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Address + + + TDS.Servers + + + TDS.EndPoint + + + TDS + + + + + + + + From 61d024ef5220632f5d7c496a38e30a9c5b9287d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20S=C3=A1nchez=20L=C3=B3pez?= <1175054+carlossanlop@users.noreply.github.com> Date: Thu, 3 Oct 2024 09:42:17 -0700 Subject: [PATCH 16/23] Choose the correct platform --- .../tests/System.Data.SqlClient.Tests.csproj | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/System.Data.SqlClient/tests/System.Data.SqlClient.Tests.csproj b/src/System.Data.SqlClient/tests/System.Data.SqlClient.Tests.csproj index d41ccb72a..a5fd79392 100644 --- a/src/System.Data.SqlClient/tests/System.Data.SqlClient.Tests.csproj +++ b/src/System.Data.SqlClient/tests/System.Data.SqlClient.Tests.csproj @@ -1,8 +1,19 @@ + + $(NetMinimum)-windows;$(NetMinimum)-unix + + + + $(NetMinimum)-windows + + + + $(NetMinimum)-unix + + true - $(NetMinimum)-unix;$(NetMinimum)-windows false $(NoWarn);CA1001;CA1068;CA1069;CA1309;CA1310;CA1419;CA1711;CA1805;CA1806;CA1816;CA1822;CA1830;CA1834;CA1835;CA1836;CA1840;CA1844;CA2016;CA2101;CA2200;CA2201;CA2208;CA2219;CA2241;CA2249;CA2251;CA5366; $(NoWarn);CS0168;CS0649; From 60bb8e9b37183416135c58d4d1989a8eed94bbef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20S=C3=A1nchez=20L=C3=B3pez?= <1175054+carlossanlop@users.noreply.github.com> Date: Thu, 3 Oct 2024 13:33:08 -0700 Subject: [PATCH 17/23] Update sln --- MaintenancePackages.sln | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/MaintenancePackages.sln b/MaintenancePackages.sln index 5cbac28a7..d01db9ad1 100644 --- a/MaintenancePackages.sln +++ b/MaintenancePackages.sln @@ -1,4 +1,5 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 + +Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.0.31903.59 MinimumVisualStudioVersion = 10.0.40219.1 @@ -110,8 +111,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.CompilerServ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Runtime.CompilerServices.Unsafe", "src\System.Runtime.CompilerServices.Unsafe\src\System.Runtime.CompilerServices.Unsafe.ilproj", "{CF99D9B6-B784-4FF5-AE08-19662FAE7D91}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "FunctionalTests", "FunctionalTests", "{581FAEF2-301E-41F9-B46B-6B51EA2B927E}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ManualTests", "ManualTests", "{695749E8-3339-48D0-9650-34C72CCEEBFF}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TDS", "TDS", "{CD601656-2933-4096-98D9-F82D41A85DD1}" @@ -152,7 +151,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{0E5B076B-896 EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.IO.Redist", "src\Microsoft.IO.Redist\src\Microsoft.IO.Redist.csproj", "{C45866E3-904C-4707-985A-ED3A3E650FF2}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Data.SqlClient.FunctionalTesting.Tests", "src\System.Data.SqlClient\tests\FunctionalTests\System.Data.SqlClient.FunctionalTesting.Tests.csproj", "{42DA88FE-3071-4DA1-AD2B-CD1F99DC9FEF}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Data.SqlClient.Tests", "src\System.Data.SqlClient\tests\System.Data.SqlClient.Tests.csproj", "{926C8D67-FD0F-4348-866E-3400EAC75FE8}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -280,10 +279,10 @@ Global {C45866E3-904C-4707-985A-ED3A3E650FF2}.Debug|Any CPU.Build.0 = Debug|Any CPU {C45866E3-904C-4707-985A-ED3A3E650FF2}.Release|Any CPU.ActiveCfg = Release|Any CPU {C45866E3-904C-4707-985A-ED3A3E650FF2}.Release|Any CPU.Build.0 = Release|Any CPU - {42DA88FE-3071-4DA1-AD2B-CD1F99DC9FEF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {42DA88FE-3071-4DA1-AD2B-CD1F99DC9FEF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {42DA88FE-3071-4DA1-AD2B-CD1F99DC9FEF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {42DA88FE-3071-4DA1-AD2B-CD1F99DC9FEF}.Release|Any CPU.Build.0 = Release|Any CPU + {926C8D67-FD0F-4348-866E-3400EAC75FE8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {926C8D67-FD0F-4348-866E-3400EAC75FE8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {926C8D67-FD0F-4348-866E-3400EAC75FE8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {926C8D67-FD0F-4348-866E-3400EAC75FE8}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -332,7 +331,6 @@ Global {981189F1-3DF3-44ED-BB11-20822008F85D} = {C8D70D0B-A9D9-4386-A9A2-CFC3C2FDEBDF} {968B2C10-1F18-4A12-8E22-833E4195C2D1} = {981189F1-3DF3-44ED-BB11-20822008F85D} {CF99D9B6-B784-4FF5-AE08-19662FAE7D91} = {18188B46-A3A3-4026-8D4C-59BF50EC1BB2} - {581FAEF2-301E-41F9-B46B-6B51EA2B927E} = {4361DC59-9F75-487B-841B-A067B0E5B9D4} {695749E8-3339-48D0-9650-34C72CCEEBFF} = {4361DC59-9F75-487B-841B-A067B0E5B9D4} {CD601656-2933-4096-98D9-F82D41A85DD1} = {4361DC59-9F75-487B-841B-A067B0E5B9D4} {60604421-DA9B-4573-947F-375E2BEE85FD} = {CD601656-2933-4096-98D9-F82D41A85DD1} @@ -352,7 +350,7 @@ Global {D1392B54-998A-4F27-BC17-4CE149117BCC} = {206C7C67-377B-475D-9A6D-B13E0FF4FECB} {0E5B076B-8969-4738-9E5A-0D83061570DD} = {A376FF60-3E89-40F1-BD79-652C4DD6EE89} {C45866E3-904C-4707-985A-ED3A3E650FF2} = {0E5B076B-8969-4738-9E5A-0D83061570DD} - {42DA88FE-3071-4DA1-AD2B-CD1F99DC9FEF} = {581FAEF2-301E-41F9-B46B-6B51EA2B927E} + {926C8D67-FD0F-4348-866E-3400EAC75FE8} = {4361DC59-9F75-487B-841B-A067B0E5B9D4} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {588483EB-F59C-4D9E-A1C7-C85D719CA1B0} From 4308184ad51f56b0aacba075854cff42cae23b4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20S=C3=A1nchez=20L=C3=B3pez?= <1175054+carlossanlop@users.noreply.github.com> Date: Fri, 4 Oct 2024 15:23:57 -0700 Subject: [PATCH 18/23] Skip tests if target platform does not match OS. --- Directory.Build.targets | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Directory.Build.targets b/Directory.Build.targets index 595f6eab6..874f82e80 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -15,6 +15,9 @@ true + + true + true true From 1da5be0195ea91c2c8ddf6887ff6c4cce1d3f5b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20S=C3=A1nchez=20L=C3=B3pez?= <1175054+carlossanlop@users.noreply.github.com> Date: Fri, 4 Oct 2024 15:47:54 -0700 Subject: [PATCH 19/23] Remove workaround --- .../tests/System.Data.SqlClient.Tests.csproj | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/System.Data.SqlClient/tests/System.Data.SqlClient.Tests.csproj b/src/System.Data.SqlClient/tests/System.Data.SqlClient.Tests.csproj index a5fd79392..5278cbc8d 100644 --- a/src/System.Data.SqlClient/tests/System.Data.SqlClient.Tests.csproj +++ b/src/System.Data.SqlClient/tests/System.Data.SqlClient.Tests.csproj @@ -3,14 +3,6 @@ $(NetMinimum)-windows;$(NetMinimum)-unix - - - $(NetMinimum)-windows - - - - $(NetMinimum)-unix - true From 9f1e0d677a843248ee5c173061593559d563ee3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20S=C3=A1nchez=20L=C3=B3pez?= <1175054+carlossanlop@users.noreply.github.com> Date: Thu, 17 Oct 2024 16:43:41 -0700 Subject: [PATCH 20/23] Delete unnecessary .editorconfig --- src/System.Data.SqlClient/.editorconfig | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 src/System.Data.SqlClient/.editorconfig diff --git a/src/System.Data.SqlClient/.editorconfig b/src/System.Data.SqlClient/.editorconfig deleted file mode 100644 index 7a1183d15..000000000 --- a/src/System.Data.SqlClient/.editorconfig +++ /dev/null @@ -1,4 +0,0 @@ -# Override .NET Diagnostic rules for System.Data.SqlClient library, as its in security maintenance mode. - -# IDE0073: The file header is missing or not located at the top of the file -dotnet_diagnostic.IDE0073.severity = none From e53aae80818b90bacc0ea289caab367a1fc9fd73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20S=C3=A1nchez=20L=C3=B3pez?= <1175054+carlossanlop@users.noreply.github.com> Date: Thu, 17 Oct 2024 17:07:34 -0700 Subject: [PATCH 21/23] Build the SqlFileStream.Unsupported.cs file for all except windows, instead of only unix. This fixes the ApiCompat error telling that the lib/ folder does not contain SqlFileStream, while the runtimes/win and runtimes/unix folders do have it. Also add some minor fixes. --- .../src/System.Data.SqlClient.csproj | 21 ++++++++----------- 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/src/System.Data.SqlClient/src/System.Data.SqlClient.csproj b/src/System.Data.SqlClient/src/System.Data.SqlClient.csproj index 2b3069b3f..94b406027 100644 --- a/src/System.Data.SqlClient/src/System.Data.SqlClient.csproj +++ b/src/System.Data.SqlClient/src/System.Data.SqlClient.csproj @@ -4,8 +4,7 @@ $(NetMinimum);$(NetMinimum)-unix;$(NetMinimum)-windows;netstandard2.0;$(NetFrameworkMinimum) true Microsoft - 4.6.1.6 - + 4.6.1.6 true netfx netcoreapp @@ -29,8 +28,8 @@ false 4.8.6 4.9.0 - 4.6.1.6 - 4.6.2.0 + 4.6.1.6 + 4.6.2.0 4.8.6 @@ -44,11 +43,11 @@ - + - + @@ -247,13 +246,12 @@ - - + - - + + Common\CoreLib\Interop\Windows\Kernel32\Interop.FileTypes.cs @@ -305,7 +303,6 @@ Common\Interop\Windows\Interop.RtlNtStatusToDosError.cs - @@ -323,7 +320,7 @@ - + From 96e7802c308155299a587f27b05128aae4fc5fbe Mon Sep 17 00:00:00 2001 From: Cheena Malhotra Date: Wed, 23 Oct 2024 10:46:34 -0700 Subject: [PATCH 22/23] Updating runsettings for validation --- eng/testing/.runsettings | 2 ++ 1 file changed, 2 insertions(+) diff --git a/eng/testing/.runsettings b/eng/testing/.runsettings index 4e8b05919..382bbf302 100644 --- a/eng/testing/.runsettings +++ b/eng/testing/.runsettings @@ -10,6 +10,8 @@ $$TARGETPLATFORM$$ $$DOTNETHOSTPATH$$ + + category!=failing From d149b98940f1800f2c006ac91753ee94edd6aa5b Mon Sep 17 00:00:00 2001 From: Cheena Malhotra Date: Wed, 23 Oct 2024 11:40:12 -0700 Subject: [PATCH 23/23] Update XML docs --- .../src/System.Data.SqlClient.xml | 7754 ++++++++--------- .../System/Data/SqlClient/SNI/SNIHandle.cs | 1 + .../Data/SqlClient/SNI/SNIMarsHandle.cs | 1 + .../System/Data/SqlClient/SNI/SNIPacket.cs | 1 + .../src/System/Data/SqlClient/SNI/SNIProxy.cs | 2 + .../System/Data/SqlClient/SNI/SNITcpHandle.cs | 2 + .../src/System/Data/SqlClient/SqlEnums.cs | 1 + .../SQL/UdtTest/UDTs/Address/Address.xml | 8 + .../SQL/UdtTest/UDTs/Circle/Circle.xml | 8 + .../SQL/UdtTest/UDTs/Shapes/Shapes.xml | 8 + .../UdtTest/UDTs/Utf8String/Utf8String.xml | 30 + .../Tools/TDS/TDS.EndPoint/ITDSClient.cs | 6 +- .../Tools/TDS/TDS.EndPoint/ITDSServer.cs | 16 +- .../Microsoft.SqlServer.TDS.EndPoint.xml | 1220 +++ .../Tools/TDS/TDS.Servers/GenericTDSServer.cs | 1 + .../Microsoft.SqlServer.TDS.Servers.xml | 901 ++ .../Tools/TDS/TDS.Servers/RoutingTDSServer.cs | 3 +- .../TDSFeatureExtAckGenericOption.cs | 1 + .../FeatureExtAck/TDSFeatureExtAckToken.cs | 2 +- .../FedAuthMessage/TDSFedAuthMessageToken.cs | 3 +- .../tests/Tools/TDS/TDS/IInflatable.cs | 2 +- .../Tools/TDS/TDS/Microsoft.SqlServer.TDS.xml | 4009 +++++++++ .../tests/Tools/TDS/TDS/TDSStream.cs | 1 - .../src/System.Reflection.DispatchProxy.xml | 26 - 24 files changed, 9788 insertions(+), 4219 deletions(-) create mode 100644 src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.xml create mode 100644 src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Circle.xml create mode 100644 src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Shapes.xml create mode 100644 src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Utf8String.xml create mode 100644 src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/Microsoft.SqlServer.TDS.EndPoint.xml create mode 100644 src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/Microsoft.SqlServer.TDS.Servers.xml create mode 100644 src/System.Data.SqlClient/tests/Tools/TDS/TDS/Microsoft.SqlServer.TDS.xml diff --git a/src/System.Data.SqlClient/src/System.Data.SqlClient.xml b/src/System.Data.SqlClient/src/System.Data.SqlClient.xml index 6c05dbd16..c452f19e9 100644 --- a/src/System.Data.SqlClient/src/System.Data.SqlClient.xml +++ b/src/System.Data.SqlClient/src/System.Data.SqlClient.xml @@ -1,4181 +1,3575 @@ - + - - System.Data.SqlClient - - - - Describes the type of access to user data for a user-defined method or function. - - - The method or function does not access user data. - - - The method or function reads user data. - - - Used by and to indicate the serialization format of a user-defined type (UDT) or aggregate. - - - This serialization format uses a very simple algorithm that enables SQL Server to store an efficient representation of the UDT on disk. Types marked for serialization can only have value types (structs in Microsoft Visual C# and structures in Microsoft Visual Basic .NET) as members. Members of reference types (such as classes in Visual C# and Visual Basic), either user-defined or those existing in .NET class libraries (such as ), are not supported. - - - The serialization format is unknown. - - - This serialization format gives the developer full control over the binary format through the and methods. - - - Provides custom implementation for user-defined type (UDT) and user-defined aggregate serialization and deserialization. - - - Generates a user-defined type (UDT) or user-defined aggregate from its binary form. - The stream from which the object is deserialized. - - - Converts a user-defined type (UDT) or user-defined aggregate into its binary format so that it may be persisted. - The stream to which the UDT or user-defined aggregate is serialized. - - - Thrown when SQL Server or the ADO.NET provider detects an invalid user-defined type (UDT). - - - Represents a single row of data and its metadata. This class cannot be inherited. - - - Inititializes a new instance with the schema based on the array of objects passed as an argument. - An array of objects that describe each column in the . - The is . - - - Gets the number of columns in the data row. This property is read-only. - The number of columns in the data row as an integer. - - - Gets the value for the column specified by the ordinal as a . - The zero-based ordinal of the column. - The column value as a . - The is less than 0 or greater than the number of columns (that is, ). - The column specified by is null. - There is a type mismatch. - - - Gets the value for the column specified by the ordinal as a . - The zero-based ordinal of the column. - The column value as a . - The is less than 0 or greater than the number of columns (that is, ). - The column specified by is null. - There is a type mismatch. - - - Gets the value for the column specified by the ordinal as an array of objects. - The zero-based ordinal of the column. - The offset into the field value to start retrieving bytes. - The target buffer to which to copy bytes. - The offset into the buffer to which to start copying bytes. - The number of bytes to copy to the buffer. - The number of bytes copied. - The is less than 0 or greater than the number of columns (that is, ). - The column specified by is null. - There is a type mismatch. - - - Gets the value for the column specified by the ordinal as a . - The zero-based ordinal of the column. - The column value as a . - The is less than 0 or greater than the number of columns (that is, ). - The column specified by is null. - There is a type mismatch. - - - Gets the value for the column specified by the ordinal as an array of objects. - The zero-based ordinal of the column. - The offset into the field value to start retrieving characters. - The target buffer to copy chars to. - The offset into the buffer to start copying chars to. - The number of chars to copy to the buffer. - The number of characters copied. - The is less than 0 or greater than the number of columns (that is, ). - The column specified by is null. - There is a type mismatch. - - - Returns the name of the data type for the column specified by the ordinal argument. - The zero-based ordinal of the column. - A that contains the data type of the column. - The is less than 0 or greater than the number of columns (that is, ). - There is a type mismatch. - - - Gets the value for the column specified by the ordinal as a . - The zero-based ordinal of the column. - The column value as a . - The is less than 0 or greater than the number of columns (that is, ). - The column specified by is null. - There is a type mismatch. - - - Returns the specified column's data as a . - The zero-based column ordinal. - The value of the specified column as a . - - - Gets the value for the column specified by the ordinal as a . - The zero-based ordinal of the column. - The column value as a . - The is less than 0 or greater than the number of columns (that is, ). - The column specified by is null. - There is a type mismatch. - - - Gets the value for the column specified by the ordinal as a . - The zero-based ordinal of the column. - The column value as a . - The is less than 0 or greater than the number of columns (that is, ). - The column specified by is null. - There is a type mismatch. - - - Returns a object representing the common language runtime (CLR) type that maps to the SQL Server type of the column specified by the argument. - The zero-based ordinal of the column. - The column type as a object. - The is less than 0 or greater than the number of columns (that is, ). - The column is of a user-defined type that is not available to the calling application domain. - The column is of a user-defined type that is not available to the calling application domain. - There is a type mismatch. - - - Gets the value for the column specified by the ordinal as a . - The zero-based ordinal of the column. - The column value as a . - The is less than 0 or greater than the number of columns (that is, ). - The column specified by is null. - There is a type mismatch. - - - Gets the value for the column specified by the ordinal as a . - The zero-based ordinal of the column. - The column value as a . - The is less than 0 or greater than the number of columns (that is, ). - The column specified by is null. - There is a type mismatch. - - - Gets the value for the column specified by the ordinal as a . - The zero-based ordinal of the column. - The column value as a . - The is less than 0 or greater than the number of columns (that is, ). - The column specified by is null. - There is a type mismatch. - - - Gets the value for the column specified by the ordinal as a . - The zero-based ordinal of the column. - The column value as a . - The is less than 0 or greater than the number of columns (that is, ). - The column specified by is null. - There is a type mismatch. - - - Gets the value for the column specified by the ordinal as a . - The zero-based ordinal of the column. - The column value as a . - The is less than 0 or greater than the number of columns (that is, ). - The column specified by is null. - There is a type mismatch. - - - Returns the name of the column specified by the ordinal argument. - The zero-based ordinal of the column. - A containing the column name. - The is less than 0 or greater than the number of columns (that is, ). - There is a type mismatch. - - - Returns the column ordinal specified by the column name. - The name of the column to look up. - The zero-based ordinal of the column as an integer. - - is . - The column name could not be found. - There is a type mismatch. - - - Gets the value for the column specified by the ordinal as a . - The zero-based ordinal of the column. - The column value as a . - The is less than 0 or greater than the number of columns (that is, ). - There is a type mismatch. - - - Gets the value for the column specified by the ordinal as a . - The zero-based ordinal of the column. - The column value as a . - The is less than 0 or greater than the number of columns (that is, ). - There is a type mismatch. - - - Gets the value for the column specified by the ordinal as a . - The zero-based ordinal of the column. - The column value as a . - The is less than 0 or greater than the number of columns (that is, ). - There is a type mismatch. - - - Gets the value for the column specified by the ordinal as a . - The zero-based ordinal of the column. - The column value as a . - The is less than 0 or greater than the number of columns (that is, ). - There is a type mismatch. - - - Gets the value for the column specified by the ordinal as a . - The zero-based ordinal of the column. - The column value as a . - The is less than 0 or greater than the number of columns (that is, ). - There is a type mismatch. - - - Gets the value for the column specified by the ordinal as a . - The zero-based ordinal of the column. - The column value as a . - The is less than 0 or greater than the number of columns (that is, ). - There is a type mismatch. - - - Gets the value for the column specified by the ordinal as a . - The zero-based ordinal of the column. - The column value as a . - The is less than 0 or greater than the number of columns (that is, ). - There is a type mismatch. - - - Gets the value for the column specified by the ordinal as a . - The zero-based ordinal of the column. - The column value as a . - The is less than 0 or greater than the number of columns (that is, ). - There is a type mismatch. - - - Returns a object that represents the type (as a SQL Server type, defined in ) that maps to the SQL Server type of the column. - The zero-based ordinal of the column. - The column type as a object. - The is less than 0 or greater than the number of columns (that is, ). - The column is of a user-defined type that is not available to the calling application domain. - The column is of a user-defined type that is not available to the calling application domain. - There is a type mismatch. - - - Gets the value for the column specified by the ordinal as a . - The zero-based ordinal of the column. - The column value as a . - The is less than 0 or greater than the number of columns (that is, ). - There is a type mismatch. - - - Gets the value for the column specified by the ordinal as a . - The zero-based ordinal of the column. - The column value as a . - The is less than 0 or greater than the number of columns (that is, ). - There is a type mismatch. - - - Gets the value for the column specified by the ordinal as a . - The zero-based ordinal of the column. - The column value as a . - The is less than 0 or greater than the number of columns (that is, ). - There is a type mismatch. - - - Gets the value for the column specified by the ordinal as a . - The zero-based ordinal of the column. - The column value as a . - The is less than 0 or greater than the number of columns (that is, ). - There is a type mismatch. - - - Returns a object, describing the metadata of the column specified by the column ordinal. - The zero-based ordinal of the column. - The column metadata as a object. - The is less than 0 or greater than the number of columns (that is, ). - There is a type mismatch. - - - Gets the value for the column specified by the ordinal as a . - The zero-based ordinal of the column. - The column value as a . - The is less than 0 or greater than the number of columns (that is, ). - There is a type mismatch. - - - Gets the value for the column specified by the ordinal as a . - The zero-based ordinal of the column. - The column value as a . - The is less than 0 or greater than the number of columns (that is, ). - There is a type mismatch. - - - Gets the value for the column specified by the ordinal as a . - The zero-based ordinal of the column. - The column value as a . - The is less than 0 or greater than the number of columns (that is, ). - There is a type mismatch. - - - Returns the data value stored in the column, expressed as a SQL Server type, specified by the column ordinal. - The zero-based ordinal of the column. - The value of the column, expressed as a SQL Server type, as a . - The is less than 0 or greater than the number of columns (that is, ). - There is a type mismatch. - - - Returns the values for all the columns in the record, expressed as SQL Server types, in an array. - The array into which to copy the values column values. - An that indicates the number of columns copied. - - is . - There is a type mismatch. - - - Gets the value for the column specified by the ordinal as a . - The zero-based ordinal of the column. - The column value as a . - The is less than 0 or greater than the number of columns (that is, ). - There is a type mismatch. - - - Gets the value for the column specified by the ordinal as a . - The zero-based ordinal of the column. - The column value as a . - The is less than 0 or greater than the number of columns (that is, ). - There is a type mismatch. - - - Returns the specified column's data as a . - The zero-based column ordinal. - The value of the specified column as a . - - - Returns the common language runtime (CLR) type value for the column specified by the ordinal argument. - The zero-based ordinal of the column. - The CLR type value of the column specified by the ordinal. - The is less than 0 or greater than the number of columns (that is, ). - There is a type mismatch. - - - Returns the values for all the columns in the record, expressed as common language runtime (CLR) types, in an array. - The array into which to copy the values column values. - An that indicates the number of columns copied. - - is . - There is a type mismatch. - - - Returns true if the column specified by the column ordinal parameter is null. - The zero-based ordinal of the column. - - if the column is null; otherwise. - The is less than 0 or greater than the number of columns (that is, ). - - - Gets the common language runtime (CLR) type value for the column specified by the column argument. - The zero-based ordinal of the column. - The CLR type value of the column specified by the . - The is less than 0 or greater than the number of columns (that is, ). - - - Gets the common language runtime (CLR) type value for the column specified by the column argument. - The name of the column. - The CLR type value of the column specified by the . - - - Sets the data stored in the column to the specified value. - The zero-based ordinal of the column. - The new value of the column. - - - Sets the data stored in the column to the specified value. - The zero-based ordinal of the column. - The new value of the column. - The is less than 0 or greater than the number of columns (that is, ). - - - Sets the data stored in the column to the specified array of values. - The zero-based ordinal of the column. - The offset into the field value to start copying bytes. - The target buffer from which to copy bytes. - The offset into the buffer from which to start copying bytes. - The number of bytes to copy from the buffer. - The is less than 0 or greater than the number of columns (that is, ). - - - Sets the data stored in the column to the specified value. - The zero-based ordinal of the column. - The new value of the column. - The is less than 0 or greater than the number of columns (that is, ). - - - Sets the data stored in the column to the specified array of values. - The zero-based ordinal of the column. - The offset into the field value to start copying characters. - The target buffer from which to copy chars. - The offset into the buffer from which to start copying chars. - The number of chars to copy from the buffer. - The is less than 0 or greater than the number of columns (that is, ). - - - Sets the data stored in the column to the specified value. - The zero-based ordinal of the column. - The new value of the column. - The is less than 0 or greater than the number of columns (that is, ). - - - Sets the value of the column specified to the value. - The zero-based ordinal of the column. - The new value of the column. - - - Sets the value in the specified column to . - The zero-based ordinal of the column. - - - Sets the data stored in the column to the specified value. - The zero-based ordinal of the column. - The new value of the column. - The is less than 0 or greater than the number of columns (that is, ). - - - Sets the data stored in the column to the specified value. - The zero-based ordinal of the column. - The new value of the column. - The is less than 0 or greater than the number of columns (that is, ). - - - Sets the data stored in the column to the specified value. - The zero-based ordinal of the column. - The new value of the column. - The is less than 0 or greater than the number of columns (that is, ). - - - Sets the data stored in the column to the specified value. - The zero-based ordinal of the column. - The new value of the column. - The is less than 0 or greater than the number of columns (that is, ). - - - Sets the data stored in the column to the specified value. - The zero-based ordinal of the column. - The new value of the column. - The is less than 0 or greater than the number of columns (that is, ). - - - Sets the data stored in the column to the specified value. - The zero-based ordinal of the column. - The new value of the column. - The is less than 0 or greater than the number of columns (that is, ). - - - Sets the data stored in the column to the specified value. - The zero-based ordinal of the column. - The new value of the column. - The is less than 0 or greater than the number of columns (that is, ). - - - Sets the data stored in the column to the specified value. - The zero-based ordinal of the column. - The new value of the column. - The is less than 0 or greater than the number of columns (that is, ). - - - Sets the data stored in the column to the specified value. - The zero-based ordinal of the column. - The new value of the column. - The is less than 0 or greater than the number of columns (that is, ). - - - Sets the data stored in the column to the specified value. - The zero-based ordinal of the column. - The new value of the column. - The is less than 0 or greater than the number of columns (that is, ). - - - Sets the data stored in the column to the specified value. - The zero-based ordinal of the column. - The new value of the column. - The is less than 0 or greater than the number of columns (that is, ). - - - Sets the data stored in the column to the specified value. - The zero-based ordinal of the column. - The new value of the column. - The is less than 0 or greater than the number of columns (that is, ). - - - Sets the data stored in the column to the specified value. - The zero-based ordinal of the column. - The new value of the column. - The is less than 0 or greater than the number of columns (that is, ). - - - Sets the data stored in the column to the specified value. - The zero-based ordinal of the column. - The new value of the column. - The is less than 0 or greater than the number of columns (that is, ). - - - Sets the data stored in the column to the specified value. - The zero-based ordinal of the column. - The new value of the column. - The is less than 0 or greater than the number of columns (that is, ). - - - Sets the data stored in the column to the specified value. - The zero-based ordinal of the column. - The new value of the column. - The is less than 0 or greater than the number of columns (that is, ). - - - Sets the data stored in the column to the specified value. - The zero-based ordinal of the column. - The new value of the column. - The is less than 0 or greater than the number of columns (that is, ). - - - Sets the data stored in the column to the specified value. - The zero-based ordinal of the column. - The new value of the column. - The is less than 0 or greater than the number of columns (that is, ). - - - Sets the data stored in the column to the specified value. - The zero-based ordinal of the column. - The new value of the column. - The is less than 0 or greater than the number of columns (that is, ). - - - Sets the data stored in the column to the specified value. - The zero-based ordinal of the column. - The new value of the column. - The is less than 0 or greater than the number of columns (that is, ). - - - Sets the data stored in the column to the specified value. - The zero-based ordinal of the column. - The new value of the column. - The is less than 0 or greater than the number of columns (that is, ). - - - Sets the data stored in the column to the specified value. - The zero-based ordinal of the column. - The new value of the column. - The is less than 0 or greater than the number of columns (that is, ). - - - Sets the data stored in the column to the specified value. - The zero-based ordinal of the column. - The new value of the column. - The is less than 0 or greater than the number of columns (that is, ). - - - Sets the data stored in the column to the specified value. - The zero-based ordinal of the column. - The new value of the column. - The is less than 0 or greater than the number of columns (that is, ). - - - Sets the value of the column specified to the . - The zero-based ordinal of the column. - The new value of the column. - The passed in is a negative number. - The value passed in is greater than 24 hours in length. - - - Sets a new value, expressed as a common language runtime (CLR) type, for the column specified by the column ordinal. - The zero-based ordinal of the column. - The new value for the specified column. - The is less than 0 or greater than the number of columns (that is, ). - - - Sets new values for all of the columns in the . These values are expressed as common language runtime (CLR) types. - The array of new values, expressed as CLR types boxed as references, for the instance. - The number of column values set as an integer. - - is . - The size of values does not match the number of columns in the instance. - - - Not supported in this release. - The zero-based ordinal of the column. - - -Always throws an exception. - The is less than 0 or greater than the number of columns (that is, ). - - - Annotates the returned result of a user-defined type (UDT) with additional information that can be used in Transact-SQL. - - - An optional attribute on a user-defined type (UDT) return type, used to annotate the returned result with additional information that can be used in Transact-SQL. - - - Indicates whether the return type of the user-defined type is of a fixed length. - - if the return type is of a fixed length; otherwise . - - - Indicates whether the return type of the user-defined type can be . - - if the return type of the user-defined type can be ; otherwise . - - - The maximum size, in logical units, of the underlying field type of the user-defined type. - An representing the maximum size, in logical units, of the underlying field type. - - - The precision of the return type of the user-defined type. - An representing the precision of the return type. - - - The scale of the return type of the user-defined type. - An representing the scale of the return type. - - - Used to mark a method definition of a user-defined aggregate as a function in SQL Server. The properties on the attribute reflect the physical characteristics used when the type is registered with SQL Server. - - - An optional attribute on a user-defined aggregate, used to indicate that the method should be registered in SQL Server as a function. Also used to set the , , , , , , and properties of the function attribute. - - - Indicates whether the function involves access to user data stored in the local instance of SQL Server. - - .: Does not access data. .: Only reads user data. - - - The name of a method in the same class which is used to fill a row of data in the table returned by the table-valued function. - A value representing the name of a method in the same class which is used to fill a row of data in the table returned by the table-valued function. - - - Indicates whether the user-defined function is deterministic. - - if the function is deterministic; otherwise . - - - Indicates whether the function involves imprecise computations, such as floating point operations. - - if the function involves precise computations; otherwise . - - - The name under which the function should be registered in SQL Server. - A value representing the name under which the function should be registered. - - - Indicates whether the function requires access to data stored in the system catalogs or virtual system tables of SQL Server. - - .: Does not access system data. .: Only reads system data. - - - A string that represents the table definition of the results, if the method is used as a table-valued function (TVF). - A value representing the table definition of the results. - - - Specifies and retrieves metadata information from parameters and columns of objects. This class cannot be inherited. - - - Initializes a new instance of the class with the specified column name and type. - The name of the column. - The SQL Server type of the parameter or column. - The is . - A that is not allowed was passed to the constructor as . - - - Initializes a new instance of the class with the specified column name, and default server. This form of the constructor supports table-valued parameters by allowing you to specify if the column is unique in the table-valued parameter, the sort order for the column, and the ordinal of the sort column. - The name of the column. - The SQL Server type of the parameter or column. - Specifies whether this column should use the default server value. - Specifies if the column in the table-valued parameter is unique. - Specifies the sort order for a column. - Specifies the ordinal of the sort column. - - - Initializes a new instance of the class with the specified column name, type, precision, and scale. - The name of the parameter or column. - The SQL Server type of the parameter or column. - The precision of the parameter or column. - The scale of the parameter or column. - The is . - A that is not allowed was passed to the constructor as , or was greater than . - - - Initializes a new instance of the class with the specified column name, type, precision, scale, and server default. This form of the constructor supports table-valued parameters by allowing you to specify if the column is unique in the table-valued parameter, the sort order for the column, and the ordinal of the sort column. - The name of the column. - The SQL Server type of the parameter or column. - The precision of the parameter or column. - The scale of the parameter or column. - Specifies whether this column should use the default server value. - Specifies if the column in the table-valued parameter is unique. - Specifies the sort order for a column. - Specifies the ordinal of the sort column. - - - Initializes a new instance of the class with the specified column name, type, and maximum length. - The name of the column. - The SQL Server type of the parameter or column. - The maximum length of the specified type. - The is . - A SqlDbType that is not allowed was passed to the constructor as . - - - Initializes a new instance of the class with the specified column name, type, maximum length, and server default. This form of the constructor supports table-valued parameters by allowing you to specify if the column is unique in the table-valued parameter, the sort order for the column, and the ordinal of the sort column. - The name of the column. - The SQL Server type of the parameter or column. - The maximum length of the specified type. - Specifies whether this column should use the default server value. - Specifies if the column in the table-valued parameter is unique. - Specifies the sort order for a column. - Specifies the ordinal of the sort column. - - - Initializes a new instance of the class with the specified column name, type, maximum length, precision, scale, locale ID, compare options, and user-defined type (UDT). - The name of the column. - The SQL Server type of the parameter or column. - The maximum length of the specified type. - The precision of the parameter or column. - The scale of the parameter or column. - The locale ID of the parameter or column. - The comparison rules of the parameter or column. - A instance that points to the UDT. - The is . - A that is not allowed was passed to the constructor as , or points to a type that does not have declared. - - - Initializes a new instance of the class with the specified column name, type, maximum length, precision, scale, locale ID, compare options, and user-defined type (UDT). This form of the constructor supports table-valued parameters by allowing you to specify if the column is unique in the table-valued parameter, the sort order for the column, and the ordinal of the sort column. - The name of the column. - The SQL Server type of the parameter or column. - The maximum length of the specified type. - The precision of the parameter or column. - The scale of the parameter or column. - The locale ID of the parameter or column. - The comparison rules of the parameter or column. - A instance that points to the UDT. - Specifies whether this column should use the default server value. - Specifies if the column in the table-valued parameter is unique. - Specifies the sort order for a column. - Specifies the ordinal of the sort column. - - - Initializes a new instance of the class with the specified column name, type, maximum length, locale, and compare options. - The name of the parameter or column. - The SQL Server type of the parameter or column. - The maximum length of the specified type. - The locale ID of the parameter or column. - The comparison rules of the parameter or column. - The is . - A SqlDbType that is not allowed was passed to the constructor as . - - - Initializes a new instance of the class with the specified column name, type, maximum length, locale, compare options, and server default. This form of the constructor supports table-valued parameters by allowing you to specify if the column is unique in the table-valued parameter, the sort order for the column, and the ordinal of the sort column. - The name of the column. - The SQL Server type of the parameter or column. - The maximum length of the specified type. - The locale ID of the parameter or column. - The comparison rules of the parameter or column. - Specifies whether this column should use the default server value. - Specifies if the column in the table-valued parameter is unique. - Specifies the sort order for a column. - Specifies the ordinal of the sort column. - - - Initializes a new instance of the class with the specified column name, type, database name, owning schema, and object name. - The name of the column. - The SQL Server type of the parameter or column. - The database name of the XML schema collection of a typed XML instance. - The relational schema name of the XML schema collection of a typed XML instance. - The name of the XML schema collection of a typed XML instance. - The is , or is when and are non-. - A SqlDbType that is not allowed was passed to the constructor as . - - - Initializes a new instance of the class with the specified column name, database name, owning schema, object name, and default server. This form of the constructor supports table-valued parameters by allowing you to specify if the column is unique in the table-valued parameter, the sort order for the column, and the ordinal of the sort column. - The name of the column. - The SQL Server type of the parameter or column. - The database name of the XML schema collection of a typed XML instance. - The relational schema name of the XML schema collection of a typed XML instance. - The name of the XML schema collection of a typed XML instance. - Specifies whether this column should use the default server value. - Specifies if the column in the table-valued parameter is unique. - Specifies the sort order for a column. - Specifies the ordinal of the sort column. - - - Initializes a new instance of the class with the specified column name, type, and user-defined type (UDT). - The name of the column. - The SQL Server type of the parameter or column. - A instance that points to the UDT. - The is . - A SqlDbType that is not allowed was passed to the constructor as , or points to a type that does not have declared. - - - Initializes a new instance of the class with the specified column name, user-defined type (UDT), and SQLServer type. - The name of the column. - The SQL Server type of the parameter or column. - A instance that points to the UDT. - The SQL Server type name for . - - - Initializes a new instance of the class with the specified column name, type, user-defined type, SQL Server type, and server default. This form of the constructor supports table-valued parameters by allowing you to specify if the column is unique in the table-valued parameter, the sort order for the column, and the ordinal of the sort column. - The name of the column. - The SQL Server type of the parameter or column. - A instance that points to the UDT. - The SQL Server type name for . - Specifies whether this column should use the default server value. - Specifies if the column in the table-valued parameter is unique. - Specifies the sort order for a column. - Specifies the ordinal of the sort column. - - - Validates the specified value against the metadata, and adjusts the value if necessary. - The value to validate against the instance. - The adjusted value as a . - - does not match the type, or could not be adjusted. - - - Validates the specified value against the metadata, and adjusts the value if necessary. - The value to validate against the instance. - The adjusted value as a . - - does not match the type, or could not be adjusted. - - - Validates the specified array of values against the metadata, and adjusts the value if necessary. - The value to validate against the instance. - The adjusted value as an array of values. - - does not match the type, or could not be adjusted. - - - Validates the specified value against the metadata, and adjusts the value if necessary. - The value to validate against the instance. - The adjusted value as a . - - does not match the type, or could not be adjusted. - - - Validates the specified array of values against the metadata, and adjusts the value if necessary. - The value to validate against the instance. - The adjusted value as an array values. - - does not match the type, or could not be adjusted. - - - Validates the specified value against the metadata, and adjusts the value if necessary. - The value to validate against the instance. - The adjusted value as a . - - does not match the type, or could not be adjusted. - - - Validates the specified value against the metadata, and adjusts the value if necessary. - The value to validate against the instance. - The adjusted value as a . - - does not match the type, or could not be adjusted. - - - Validates the specified value against the metadata, and adjusts the value if necessary. - The value to validate against the instance. - The adjusted value as a . - - does not match the type, or could not be adjusted. - - - Validates the specified value against the metadata, and adjusts the value if necessary. - The value to validate against the instance. - The adjusted value as a . - - does not match the type, or could not be adjusted. - - - Validates the specified value against the metadata, and adjusts the value if necessary. - The value to validate against the instance. - The adjusted value as a . - - does not match the type, or could not be adjusted. - - - Validates the specified value against the metadata, and adjusts the value if necessary. - The value to validate against the instance. - The adjusted value as a . - - does not match the type, or could not be adjusted. - - - Validates the specified value against the metadata, and adjusts the value if necessary. - The value to validate against the instance. - The adjusted value as a . - - does not match the type, or could not be adjusted. - - - Validates the specified value against the metadata, and adjusts the value if necessary. - The value to validate against the instance. - The adjusted value as a . - - does not match the type, or could not be adjusted. - - - Validates the specified value against the metadata, and adjusts the value if necessary. - The value to validate against the instance. - The adjusted value as a . - - does not match the type, or could not be adjusted. - - - Validates the specified value against the metadata, and adjusts the value if necessary. - The value to validate against the instance. - The adjusted value as a . - - does not match the type, or could not be adjusted. - - - Validates the specified value against the metadata, and adjusts the value if necessary. - The value to validate against the instance. - The adjusted value as a . - - does not match the type, or could not be adjusted. - - - Validates the specified value against the metadata, and adjusts the value if necessary. - The value to validate against the instance. - The adjusted value as a . - - does not match the type, or could not be adjusted. - - - Validates the specified value against the metadata, and adjusts the value if necessary. - The value to validate against the instance. - The adjusted value as a . - - does not match the type, or could not be adjusted. - - - Validates the specified value against the metadata, and adjusts the value if necessary. - The value to validate against the instance. - The adjusted value as a . - - does not match the type, or could not be adjusted. - - - Validates the specified value against the metadata, and adjusts the value if necessary. - The value to validate against the instance. - The adjusted value as a . - - does not match the type, or could not be adjusted. - - - Validates the specified value against the metadata, and adjusts the value if necessary. - The value to validate against the instance. - The adjusted value as a . - - does not match the type, or could not be adjusted. - - - Validates the specified value against the metadata, and adjusts the value if necessary. - The value to validate against the instance. - The adjusted value as a . - - does not match the type, or could not be adjusted. - - - Validates the specified value against the metadata, and adjusts the value if necessary. - The value to validate against the instance. - The adjusted value as an array of values. - - does not match the type, or could not be adjusted. - - - Validates the specified value against the metadata, and adjusts the value if necessary. - The value to validate against the instance. - The adjusted value as a . - - does not match the type, or could not be adjusted. - - - Validates the specified value against the metadata, and adjusts the value if necessary. - The value to validate against the instance. - The adjusted value as a . - - does not match the type, or could not be adjusted. - - - Validates the specified value against the metadata, and adjusts the value if necessary. - The value to validate against the instance. - The adjusted value as a . - - does not match the type, or could not be adjusted. - - - Validates the specified value against the metadata, and adjusts the value if necessary. - The value to validate against the instance. - The adjusted value as a . - - does not match the type, or could not be adjusted. - - - Validates the specified value against the metadata, and adjusts the value if necessary. - The value to validate against the instance. - The adjusted value as a . - - does not match the type, or could not be adjusted. - - - Validates the specified value against the metadata, and adjusts the value if necessary. - The value to validate against the instance. - The adjusted value as a . - - does not match the type, or could not be adjusted. - - - Validates the specified value against the metadata, and adjusts the value if necessary. - The value to validate against the instance. - The adjusted value as a . - - does not match the type, or could not be adjusted. - - - Validates the specified value against the metadata, and adjusts the value if necessary. - The value to validate against the instance. - The adjusted value as a . - - does not match the type, or could not be adjusted. - - - Validates the specified value against the metadata, and adjusts the value if necessary. - The value to validate against the instance. - The adjusted value as a . - - does not match the type, or could not be adjusted. - - - Validates the specified value against the metadata, and adjusts the value if necessary. - The value to validate against the instance. - The adjusted value as an array of values. - - does not match the type, or could not be adjusted. - - - Gets the comparison rules used for the column or parameter. - The comparison rules used for the column or parameter as a . - - - Gets the data type of the column or parameter. - The data type of the column or parameter as a . - - - Infers the metadata from the specified object and returns it as a instance. - The object used from which the metadata is inferred. - The name assigned to the returned instance. - The inferred metadata as a instance. - The is . - - - Indicates if the column in the table-valued parameter is unique. - A value. - - - Gets the locale ID of the column or parameter. - The locale ID of the column or parameter as a . - - - Gets the length of , , and data types. - The length of , , and data types. - - - Gets the maximum length of the column or parameter. - The maximum length of the column or parameter as a . - - - Gets the name of the column or parameter. - The name of the column or parameter as a . - The specified in the constructor is longer than 128 characters. - - - Gets the precision of the column or parameter. - The precision of the column or parameter as a . - - - Gets the scale of the column or parameter. - The scale of the column or parameter. - - - Returns the sort order for a column. - A object. - - - Returns the ordinal of the sort column. - The ordinal of the sort column. - - - Gets the data type of the column or parameter. - The data type of the column or parameter as a . - - - Gets the common language runtime (CLR) type of a user-defined type (UDT). - The CLR type name of a user-defined type as a . - - - Gets the three-part name of the user-defined type (UDT) or the SQL Server type represented by the instance. - The name of the UDT or SQL Server type as a . - - - Reports whether this column should use the default server value. - A value. - - - Gets the name of the database where the schema collection for this XML instance is located. - The name of the database where the schema collection for this XML instance is located as a . - - - Gets the name of the schema collection for this XML instance. - The name of the schema collection for this XML instance as a . - - - Gets the owning relational schema where the schema collection for this XML instance is located. - The owning relational schema where the schema collection for this XML instance is located as a . - - - Indicates the determinism and data access properties of a method or property on a user-defined type (UDT). The properties on the attribute reflect the physical characteristics that are used when the type is registered with SQL Server. - - - An attribute on a user-defined type (UDT), used to indicate the determinism and data access properties of a method or a property on a UDT. - - - Indicates whether SQL Server should invoke the method on null instances. - - if SQL Server should invoke the method on null instances; otherwise, . If the method cannot be invoked (because of an attribute on the method), the SQL Server is returned. - - - Indicates whether a method on a user-defined type (UDT) is a mutator. - - if the method is a mutator; otherwise . - - - Indicates whether the method on a user-defined type (UDT) is called when input arguments are specified in the method invocation. - - if the method is called when input arguments are specified in the method invocation; if the method returns a value when any of its input parameters are . If the method cannot be invoked (because of an attribute on the method), the SQL Server is returned. - - - Indicates that the type should be registered as a user-defined aggregate. The properties on the attribute reflect the physical attributes used when the type is registered with SQL Server. This class cannot be inherited. - - - A required attribute on a user-defined aggregate, used to indicate that the given type is a user-defined aggregate and the storage format of the user-defined aggregate. - One of the values representing the serialization format of the aggregate. - - - The serialization format as a . - A representing the serialization format. - - - Indicates whether the aggregate is invariant to duplicates. - - if the aggregate is invariant to duplicates; otherwise . - - - Indicates whether the aggregate is invariant to nulls. - - if the aggregate is invariant to nulls; otherwise . - - - Indicates whether the aggregate is invariant to order. - - if the aggregate is invariant to order; otherwise . - - - Indicates whether the aggregate returns if no values have been accumulated. - - if the aggregate returns if no values have been accumulated; otherwise . - - - The maximum size, in bytes, of the aggregate instance. - An value representing the maximum size of the aggregate instance. - - - The maximum size, in bytes, required to store the state of this aggregate instance during computation. - - - The name of the aggregate. - A value representing the name of the aggregate. - - - Used to mark a type definition in an assembly as a user-defined type (UDT) in SQL Server. The properties on the attribute reflect the physical characteristics used when the type is registered with SQL Server. This class cannot be inherited. - - - A required attribute on a user-defined type (UDT), used to confirm that the given type is a UDT and to indicate the storage format of the UDT. - One of the values representing the serialization format of the type. - - - The serialization format as a . - A value representing the serialization format. - - - Indicates whether the user-defined type is byte ordered. - - if the user-defined type is byte ordered; otherwise . - - - Indicates whether all instances of this user-defined type are the same length. - - if all instances of this type are the same length; otherwise . - - - The maximum size of the instance, in bytes. - An value representing the maximum size of the instance. - - - The SQL Server name of the user-defined type. - A value representing the SQL Server name of the user-defined type. - - - The name of the method used to validate instances of the user-defined type. - A representing the name of the method used to validate instances of the user-defined type. - - - Describes the type of access to system data for a user-defined method or function. - - - The method or function does not access system data. - - - The method or function reads system data. - - - This exception is thrown when an ongoing operation is aborted by the user. - - - Represents a request for notification for a given command. - - - Creates a new instance of the class with default values. - - - Creates a new instance of the class with a user-defined string that identifies a particular notification request, the name of a predefined SQL Server 2005 Service Broker service name, and the time-out period, measured in seconds. - A string that contains an application-specific identifier for this notification. It is not used by the notifications infrastructure, but it allows you to associate notifications with the application state. The value indicated in this parameter is included in the Service Broker queue message. - A string that contains the Service Broker service name where notification messages are posted, and it must include a database name or a Service Broker instance GUID that restricts the scope of the service name lookup to a particular database. -For more information about the format of the parameter, see . - The time, in seconds, to wait for a notification message. - The value of the parameter is NULL. - The or parameter is longer than or the value in the parameter is less than zero. - - - Gets or sets the SQL Server Service Broker service name where notification messages are posted. - - that contains the SQL Server 2005 Service Broker service name where notification messages are posted and the database or service broker instance GUID to scope the server name lookup. - The value is NULL. - The value is longer than . - - - Gets or sets a value that specifies how long SQL Server waits for a change to occur before the operation times out. - A signed integer value that specifies, in seconds, how long SQL Server waits for a change to occur before the operation times out. - The value is less than zero. - - - Gets or sets an application-specific identifier for this notification. - A value of the application-specific identifier for this notification. - The value is longer than . - - - Specifies a value for . Possible values are and . - - - The application workload type when connecting to a server is read only. - - - The application workload type when connecting to a server is read write. - - - Handles the event that is fired when a notification is received for any of the commands associated with a object. - The source of the event. - A object that contains the event data. - - - Specifies a value for the property. - - - Blocking period ON for all SQL servers including Azure SQL servers. - - - Blocking period OFF for Azure SQL servers, but ON for all other SQL servers. - - - Blocking period OFF for all SQL servers including Azure SQL servers. - - - Specifies how rows of data are sorted. - - - Rows are sorted in ascending order. - - - Rows are sorted in descending order. - - - The default. No sort order is specified. - - - Lets you efficiently bulk load a SQL Server table with data from another source. - - - Initializes a new instance of the class using the specified open instance of . - The already open instance that will be used to perform the bulk copy operation. If your connection string does not use , you can use to pass the user ID and password more securely than by specifying the user ID and password as text in the connection string. - - - Initializes a new instance of the class using the supplied existing open instance of . The instance behaves according to options supplied in the parameter. If a non-null is supplied, the copy operations will be performed within that transaction. - The already open instance that will be used to perform the bulk copy. If your connection string does not use , you can use to pass the user ID and password more securely than by specifying the user ID and password as text in the connection string. - A combination of values from the enumeration that determines which data source rows are copied to the destination table. - An existing instance under which the bulk copy will occur. - - - Initializes and opens a new instance of based on the supplied . The constructor uses the to initialize a new instance of the class. - The string defining the connection that will be opened for use by the instance. If your connection string does not use , you can use or and to pass the user ID and password more securely than by specifying the user ID and password as text in the connection string. - - - Initializes and opens a new instance of based on the supplied . The constructor uses that to initialize a new instance of the class. The instance behaves according to options supplied in the parameter. - The string defining the connection that will be opened for use by the instance. If your connection string does not use , you can use or and to pass the user ID and password more securely than by specifying the user ID and password as text in the connection string. - A combination of values from the enumeration that determines which data source rows are copied to the destination table. - - - Number of rows in each batch. At the end of each batch, the rows in the batch are sent to the server. - The integer value of the property, or zero if no value has been set. - - - Number of seconds for the operation to complete before it times out. - The integer value of the property. The default is 30 seconds. A value of 0 indicates no limit; the bulk copy will wait indefinitely. - - - Closes the instance. - - - Returns a collection of items. Column mappings define the relationships between columns in the data source and columns in the destination. - A collection of column mappings. By default, it is an empty collection. - - - Name of the destination table on the server. - The string value of the property, or null if none as been supplied. - - - Enables or disables a object to stream data from an object. - - if a object can stream data from an object; otherwise, false. The default is . - - - Defines the number of rows to be processed before generating a notification event. - The integer value of the property, or zero if the property has not been set. - - - Occurs every time that the number of rows specified by the property have been processed. - - - Releases all resources used by the current instance of the class. - - - Copies all rows from the supplied array to a destination table specified by the property of the object. - A whose rows will be copied to the destination table. - - - Copies all rows from the supplied array to a destination table specified by the property of the object. - An array of objects that will be copied to the destination table. - - - Copies all rows in the supplied to a destination table specified by the property of the object. - A whose rows will be copied to the destination table. - - - Copies only rows that match the supplied row state in the supplied to a destination table specified by the property of the object. - A whose rows will be copied to the destination table. - A value from the enumeration. Only rows matching the row state are copied to the destination. - - - Copies all rows in the supplied to a destination table specified by the property of the object. - A whose rows will be copied to the destination table. - - - The asynchronous version of , which copies all rows from the supplied array to a destination table specified by the property of the object. - A whose rows will be copied to the destination table. - A task representing the asynchronous operation. - - - The asynchronous version of , which copies all rows from the supplied array to a destination table specified by the property of the object. - A whose rows will be copied to the destination table. - The cancellation instruction. A value in this parameter makes this method equivalent to . - Returns . - - - The asynchronous version of , which copies all rows from the supplied array to a destination table specified by the property of the object. - An array of objects that will be copied to the destination table. - A task representing the asynchronous operation. - Calling multiple times for the same instance before task completion. -Calling and for the same instance before task completion. -The connection drops or is closed during execution. -Returned in the task object, the object was closed during the method execution. -Returned in the task object, there was a connection pool timeout. -Returned in the task object, the object is closed before method execution. - is specified in the connection string. - Returned in the task object, any error returned by SQL Server that occurred while opening the connection. - - - The asynchronous version of , which copies all rows from the supplied array to a destination table specified by the property of the object. -The cancellation token can be used to request that the operation be abandoned before the command timeout elapses. Exceptions will be reported via the returned Task object. - An array of objects that will be copied to the destination table. - The cancellation instruction. A value in this parameter makes this method equivalent to . - A task representing the asynchronous operation. - Calling multiple times for the same instance before task completion. -Calling and for the same instance before task completion. -The connection drops or is closed during execution. -Returned in the task object, the object was closed during the method execution. -Returned in the task object, there was a connection pool timeout. -Returned in the task object, the object is closed before method execution. - is specified in the connection string. - Returned in the task object, any error returned by SQL Server that occurred while opening the connection. - - - The asynchronous version of , which copies all rows in the supplied to a destination table specified by the property of the object. - A whose rows will be copied to the destination table. - A task representing the asynchronous operation. - Calling multiple times for the same instance before task completion. -Calling and for the same instance before task completion. -The connection drops or is closed during execution. -Returned in the task object, the object was closed during the method execution. -Returned in the task object, there was a connection pool timeout. -Returned in the task object, the object is closed before method execution. - is specified in the connection string. - Returned in the task object, any error returned by SQL Server that occurred while opening the connection. - - - The asynchronous version of , which copies only rows that match the supplied row state in the supplied to a destination table specified by the property of the object. - A whose rows will be copied to the destination table. - A value from the enumeration. Only rows matching the row state are copied to the destination. - A task representing the asynchronous operation. - Calling multiple times for the same instance before task completion. -Calling and for the same instance before task completion. -The connection drops or is closed during execution. -Returned in the task object, the object was closed during the method execution. -Returned in the task object, there was a connection pool timeout. -Returned in the task object, the object is closed before method execution. - is specified in the connection string. - Returned in the task object, any error returned by SQL Server that occurred while opening the connection. - - - The asynchronous version of , which copies only rows that match the supplied row state in the supplied to a destination table specified by the property of the object. -The cancellation token can be used to request that the operation be abandoned before the command timeout elapses. Exceptions will be reported via the returned Task object. - A whose rows will be copied to the destination table. - A value from the enumeration. Only rows matching the row state are copied to the destination. - The cancellation instruction. A value in this parameter makes this method equivalent to . - A task representing the asynchronous operation. - Calling multiple times for the same instance before task completion. -Calling and for the same instance before task completion. -The connection drops or is closed during execution. -Returned in the task object, the object was closed during the method execution. -Returned in the task object, there was a connection pool timeout. -Returned in the task object, the object is closed before method execution. - is specified in the connection string. - Returned in the task object, any error returned by SQL Server that occurred while opening the connection. - - - The asynchronous version of , which copies all rows in the supplied to a destination table specified by the property of the object. -The cancellation token can be used to request that the operation be abandoned before the command timeout elapses. Exceptions will be reported via the returned Task object. - A whose rows will be copied to the destination table. - The cancellation instruction. A value in this parameter makes this method equivalent to . - A task representing the asynchronous operation. - Calling multiple times for the same instance before task completion. -Calling and for the same instance before task completion. -The connection drops or is closed during execution. -Returned in the task object, the object was closed during the method execution. -Returned in the task object, there was a connection pool timeout. -Returned in the task object, the object is closed before method execution. - is specified in the connection string. - Returned in the task object, any error returned by SQL Server that occurred while opening the connection. - - - The asynchronous version of , which copies all rows in the supplied to a destination table specified by the property of the object. - A whose rows will be copied to the destination table. - A task representing the asynchronous operation. - Calling multiple times for the same instance before task completion. -Calling and for the same instance before task completion. -The connection drops or is closed during execution. -Returned in the task object, the object was closed during the method execution. -Returned in the task object, there was a connection pool timeout. -Returned in the task object, the object is closed before method execution. -The was closed before the completed returned. -The 's associated connection was closed before the completed returned. - is specified in the connection string. - Returned in the task object, any error returned by SQL Server that occurred while opening the connection. - - - The asynchronous version of , which copies all rows in the supplied to a destination table specified by the property of the object. -The cancellation token can be used to request that the operation be abandoned before the command timeout elapses. Exceptions will be reported via the returned Task object. - A whose rows will be copied to the destination table. - The cancellation instruction. A value in this parameter makes this method equivalent to . - A task representing the asynchronous operation. - Calling multiple times for the same instance before task completion. -Calling and for the same instance before task completion. -The connection drops or is closed during execution. -Returned in the task object, the object was closed during the method execution. -Returned in the task object, there was a connection pool timeout. -Returned in the task object, the object is closed before method execution. -The was closed before the completed returned. -The 's associated connection was closed before the completed returned. - is specified in the connection string. - Returned in the task object, any error returned by SQL Server that occurred while opening the connection. - - - Defines the mapping between a column in a instance's data source and a column in the instance's destination table. - - - Parameterless constructor that initializes a new object. - - - Creates a new column mapping, using column ordinals to refer to source and destination columns. - The ordinal position of the source column within the data source. - The ordinal position of the destination column within the destination table. - - - Creates a new column mapping, using a column ordinal to refer to the source column and a column name for the target column. - The ordinal position of the source column within the data source. - The name of the destination column within the destination table. - - - Creates a new column mapping, using a column name to refer to the source column and a column ordinal for the target column. - The name of the source column within the data source. - The ordinal position of the destination column within the destination table. - - - Creates a new column mapping, using column names to refer to source and destination columns. - The name of the source column within the data source. - The name of the destination column within the destination table. - - - Name of the column being mapped in the destination database table. - The string value of the property. - - - Ordinal value of the destination column within the destination table. - The integer value of the property, or -1 if the property has not been set. - - - Name of the column being mapped in the data source. - The string value of the property. - - - The ordinal position of the source column within the data source. - The integer value of the property. - - - Collection of objects that inherits from . - - - Adds the specified mapping to the . - The object that describes the mapping to be added to the collection. - A object. - - - Creates a new and adds it to the collection, using ordinals to specify both source and destination columns. - The ordinal position of the source column within the data source. - The ordinal position of the destination column within the destination table. - A column mapping. - - - Creates a new and adds it to the collection, using an ordinal for the source column and a string for the destination column. - The ordinal position of the source column within the data source. - The name of the destination column within the destination table. - A column mapping. - - - Creates a new and adds it to the collection, using a column name to describe the source column and an ordinal to specify the destination column. - The name of the source column within the data source. - The ordinal position of the destination column within the destination table. - A column mapping. - - - Creates a new and adds it to the collection, using column names to specify both source and destination columns. - The name of the source column within the data source. - The name of the destination column within the destination table. - A column mapping. - - - Clears the contents of the collection. - - - Gets a value indicating whether a specified object exists in the collection. - A valid object. - - if the specified mapping exists in the collection; otherwise . - - - Copies the elements of the to an array of items, starting at a particular index. - The one-dimensional array that is the destination of the elements copied from . The array must have zero-based indexing. - The zero-based index in at which copying begins. - - - Gets the index of the specified object. - The object for which to search. - The zero-based index of the column mapping, or -1 if the column mapping is not found in the collection. - - - Insert a new at the index specified. - Integer value of the location within the at which to insert the new . - - object to be inserted in the collection. - - - Gets the object at the specified index. - The zero-based index of the to find. - A object. - - - Removes the specified element from the . - - object to be removed from the collection. - - - Removes the mapping at the specified index from the collection. - The zero-based index of the object to be removed from the collection. - - - Bitwise flag that specifies one or more options to use with an instance of . - - - Check constraints while data is being inserted. By default, constraints are not checked. - - - Use the default values for all options. - - - When specified, cause the server to fire the insert triggers for the rows being inserted into the database. - - - Preserve source identity values. When not specified, identity values are assigned by the destination. - - - Preserve null values in the destination table regardless of the settings for default values. When not specified, null values are replaced by default values where applicable. - - - Obtain a bulk update lock for the duration of the bulk copy operation. When not specified, row locks are used. - - - When specified, each batch of the bulk-copy operation will occur within a transaction. If you indicate this option and also provide a object to the constructor, an occurs. - - - Represents a set of methods for creating instances of the provider's implementation of the data source classes. - - - Returns a strongly typed instance. - A new strongly typed instance of . - - - Returns a strongly typed instance. - A new strongly typed instance of . - - - Returns a strongly typed instance. - A new strongly typed instance of . - - - Returns a strongly typed instance. - A new strongly typed instance of . - - - Returns a strongly typed instance. - A new strongly typed instance of . - - - Returns a strongly typed instance. - A new strongly typed instance of . - - - Gets an instance of the . This can be used to retrieve strongly typed data objects. - - - Provides a list of constants for use with the GetSchema method to retrieve metadata collections. - - - A constant for use with the GetSchema method that represents the Columns collection. - - - A constant for use with the GetSchema method that represents the Databases collection. - - - A constant for use with the GetSchema method that represents the ForeignKeys collection. - - - A constant for use with the GetSchema method that represents the IndexColumns collection. - - - A constant for use with the GetSchema method that represents the Indexes collection. - - - A constant for use with the GetSchema method that represents the Parameters collection. - - - A constant for use with the GetSchema method that represents the ProcedureColumns collection. - - - A constant for use with the GetSchema method that represents the Procedures collection. - - - A constant for use with the GetSchema method that represents the Tables collection. - - - A constant for use with the GetSchema method that represents the UserDefinedTypes collection. - - - A constant for use with the GetSchema method that represents the Users collection. - - - A constant for use with the GetSchema method that represents the ViewColumns collection. - - - A constant for use with the GetSchema method that represents the Views collection. - - - Represents a Transact-SQL statement or stored procedure to execute against a SQL Server database. This class cannot be inherited. - - - Initializes a new instance of the class. - - - Initializes a new instance of the class with the text of the query. - The text of the query. - - - Initializes a new instance of the class with the text of the query and a . - The text of the query. - A that represents the connection to an instance of SQL Server. - - - Initializes a new instance of the class with the text of the query, a , and the . - The text of the query. - A that represents the connection to an instance of SQL Server. - The in which the executes. - - - Initiates the asynchronous execution of the Transact-SQL statement or stored procedure that is described by this . - An that can be used to poll or wait for results, or both; this value is also needed when invoking , which returns the number of affected rows. - A other than Binary or VarBinary was used when was set to . For more information about streaming, see SqlClient Streaming Support. --or- -A other than Char, NChar, NVarChar, VarChar, or Xml was used when was set to . --or- -A other than Xml was used when was set to . - Any error that occurred while executing the command text. --or- -A timeout occurred during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - The name/value pair "Asynchronous Processing=true" was not included within the connection string defining the connection for this . --or- -The closed or dropped during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - An error occurred in a , or object during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - The , or object was closed during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - - - Initiates the asynchronous execution of the Transact-SQL statement or stored procedure that is described by this , given a callback procedure and state information. - An delegate that is invoked when the command's execution has completed. Pass ( in Microsoft Visual Basic) to indicate that no callback is required. - A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback procedure using the property. - An that can be used to poll or wait for results, or both; this value is also needed when invoking , which returns the number of affected rows. - A other than Binary or VarBinary was used when was set to . For more information about streaming, see SqlClient Streaming Support. --or- -A other than Char, NChar, NVarChar, VarChar, or Xml was used when was set to . --or- -A other than Xml was used when was set to . - Any error that occurred while executing the command text. --or- -A timeout occurred during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - The name/value pair "Asynchronous Processing=true" was not included within the connection string defining the connection for this . --or- -The closed or dropped during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - An error occurred in a , or object during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - The , or object was closed during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - - - Initiates the asynchronous execution of the Transact-SQL statement or stored procedure that is described by this , and retrieves one or more result sets from the server. - An that can be used to poll or wait for results, or both; this value is also needed when invoking , which returns a instance that can be used to retrieve the returned rows. - A other than Binary or VarBinary was used when was set to . For more information about streaming, see SqlClient Streaming Support. --or- -A other than Char, NChar, NVarChar, VarChar, or Xml was used when was set to . --or- -A other than Xml was used when was set to . - Any error that occurred while executing the command text. --or- -A timeout occurred during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - The name/value pair "Asynchronous Processing=true" was not included within the connection string defining the connection for this . --or- -The closed or dropped during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - An error occurred in a , or object during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - The , or object was closed during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - - - Initiates the asynchronous execution of the Transact-SQL statement or stored procedure that is described by this and retrieves one or more result sets from the server, given a callback procedure and state information. - An delegate that is invoked when the command's execution has completed. Pass ( in Microsoft Visual Basic) to indicate that no callback is required. - A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback procedure using the property. - An that can be used to poll, wait for results, or both; this value is also needed when invoking , which returns a instance which can be used to retrieve the returned rows. - A other than Binary or VarBinary was used when was set to . For more information about streaming, see SqlClient Streaming Support. --or- -A other than Char, NChar, NVarChar, VarChar, or Xml was used when was set to . --or- -A other than Xml was used when was set to . - Any error that occurred while executing the command text. --or- -A timeout occurred during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - The name/value pair "Asynchronous Processing=true" was not included within the connection string defining the connection for this . --or- -The closed or dropped during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - An error occurred in a , or object during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - The , or object was closed during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - - - Initiates the asynchronous execution of the Transact-SQL statement or stored procedure that is described by this , using one of the values, and retrieving one or more result sets from the server, given a callback procedure and state information. - An delegate that is invoked when the command's execution has completed. Pass ( in Microsoft Visual Basic) to indicate that no callback is required. - A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback procedure using the property. - One of the values, indicating options for statement execution and data retrieval. - An that can be used to poll or wait for results, or both; this value is also needed when invoking , which returns a instance which can be used to retrieve the returned rows. - A other than Binary or VarBinary was used when was set to . For more information about streaming, see SqlClient Streaming Support. --or- -A other than Char, NChar, NVarChar, VarChar, or Xml was used when was set to . --or- -A other than Xml was used when was set to . - Any error that occurred while executing the command text. --or- -A timeout occurred during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - The name/value pair "Asynchronous Processing=true" was not included within the connection string defining the connection for this . --or- -The closed or dropped during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - An error occurred in a , or object during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - The , or object was closed during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - - - Initiates the asynchronous execution of the Transact-SQL statement or stored procedure that is described by this using one of the values. - One of the values, indicating options for statement execution and data retrieval. - An that can be used to poll, wait for results, or both; this value is also needed when invoking , which returns a instance that can be used to retrieve the returned rows. - A other than Binary or VarBinary was used when was set to . For more information about streaming, see SqlClient Streaming Support. --or- -A other than Char, NChar, NVarChar, VarChar, or Xml was used when was set to . --or- -A other than Xml was used when was set to . - Any error that occurred while executing the command text. --or- -A timeout occurred during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - The name/value pair "Asynchronous Processing=true" was not included within the connection string defining the connection for this . --or- -The closed or dropped during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - An error occurred in a , or object during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - The , or object was closed during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - - - Initiates the asynchronous execution of the Transact-SQL statement or stored procedure that is described by this and returns results as an object. - An that can be used to poll or wait for results, or both; this value is also needed when invoking , which returns a single XML value. - A other than Binary or VarBinary was used when was set to . For more information about streaming, see SqlClient Streaming Support. --or- -A other than Char, NChar, NVarChar, VarChar, or Xml was used when was set to . --or- -A other than Xml was used when was set to . - Any error that occurred while executing the command text. --or- -A timeout occurred during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - The name/value pair "Asynchronous Processing=true" was not included within the connection string defining the connection for this . --or- -The closed or dropped during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - An error occurred in a , or object during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - The , or object was closed during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - - - Initiates the asynchronous execution of the Transact-SQL statement or stored procedure that is described by this and returns results as an object, using a callback procedure. - An delegate that is invoked when the command's execution has completed. Pass ( in Microsoft Visual Basic) to indicate that no callback is required. - A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback procedure using the property. - An that can be used to poll, wait for results, or both; this value is also needed when the is called, which returns the results of the command as XML. - A other than Binary or VarBinary was used when was set to . For more information about streaming, see SqlClient Streaming Support. --or- -A other than Char, NChar, NVarChar, VarChar, or Xml was used when was set to . --or- -A other than Xml was used when was set to . - Any error that occurred while executing the command text. --or- -A timeout occurred during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - The name/value pair "Asynchronous Processing=true" was not included within the connection string defining the connection for this . --or- -The closed or dropped during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - An error occurred in a , or object during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - The , or object was closed during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - - - Tries to cancel the execution of a . - - - Creates a new object that is a copy of the current instance. - A new object that is a copy of this instance. - - - Gets or sets the Transact-SQL statement, table name or stored procedure to execute at the data source. - The Transact-SQL statement or stored procedure to execute. The default is an empty string. - - - Gets or sets the wait time before terminating the attempt to execute a command and generating an error. - The time in seconds to wait for the command to execute. The default is 30 seconds. - - - Gets or sets a value indicating how the property is to be interpreted. - One of the values. The default is . - The value was not a valid . - - - Gets or sets the used by this instance of the . - The connection to a data source. The default value is . - The property was changed while the command was enlisted in a transaction. - - - Creates a new instance of a object. - A object. - - - Gets or sets a value indicating whether the command object should be visible in a Windows Form Designer control. - A value indicating whether the command object should be visible in a control. The default is . - - - Finishes asynchronous execution of a Transact-SQL statement. - The returned by the call to . - The number of rows affected (the same behavior as ). - - parameter is null ( in Microsoft Visual Basic) - - was called more than once for a single command execution, or the method was mismatched against its execution method (for example, the code called to complete execution of a call to . - The amount of time specified in elapsed and the asynchronous operation specified with is not complete. --or- -In some situations, can be set to incorrectly. If this occurs and is called, EndExecuteNonQuery could raise a SqlException error if the amount of time specified in elapsed and the asynchronous operation specified with is not complete. To correct this situation, you should either increase the value of CommandTimeout or reduce the work being done by the asynchronous operation. - - - Finishes asynchronous execution of a Transact-SQL statement, returning the requested . - The returned by the call to . - A object that can be used to retrieve the requested rows. - - parameter is null ( in Microsoft Visual Basic) - - was called more than once for a single command execution, or the method was mismatched against its execution method (for example, the code called to complete execution of a call to . - - - Finishes asynchronous execution of a Transact-SQL statement, returning the requested data as XML. - The returned by the call to . - An object that can be used to fetch the resulting XML data. - - parameter is null ( in Microsoft Visual Basic) - - was called more than once for a single command execution, or the method was mismatched against its execution method (for example, the code called to complete execution of a call to . - - - Executes a Transact-SQL statement against the connection and returns the number of rows affected. - The number of rows affected. - A other than Binary or VarBinary was used when was set to . For more information about streaming, see SqlClient Streaming Support. --or- -A other than Char, NChar, NVarChar, VarChar, or Xml was used when was set to . --or- -A other than Xml was used when was set to . - An exception occurred while executing the command against a locked row. This exception is not generated when you are using Microsoft .NET Framework version 1.0. --or- -A timeout occurred during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - An error occurred in a , or object during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - The closed or dropped during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - The , or object was closed during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - - - An asynchronous version of , which executes a Transact-SQL statement against the connection and returns the number of rows affected. The cancellation token can be used to request that the operation be abandoned before the command timeout elapses. Exceptions will be reported via the returned Task object. - The cancellation instruction. - A task representing the asynchronous operation. - A other than Binary or VarBinary was used when was set to . For more information about streaming, see SqlClient Streaming Support. --or- -A other than Char, NChar, NVarChar, VarChar, or Xml was used when was set to . --or- -A other than Xml was used when was set to . - Calling more than once for the same instance before task completion. --or- -The closed or dropped during a streaming operation. For more information about streaming, see SqlClient Streaming Support. --or- - is specified in the connection string. - SQL Server returned an error while executing the command text. --or- -A timeout occurred during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - An error occurred in a , or object during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - The , or object was closed during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - - - Sends the to the and builds a . - A object. - A other than Binary or VarBinary was used when was set to . For more information about streaming, see SqlClient Streaming Support. --or- -A other than Char, NChar, NVarChar, VarChar, or Xml was used when was set to . --or- -A other than Xml was used when was set to . - An exception occurred while executing the command against a locked row. This exception is not generated when you are using Microsoft .NET Framework version 1.0. --or- -A timeout occurred during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - The current state of the connection is closed. requires an open . --or- -The closed or dropped during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - An error occurred in a , or object during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - The , or object was closed during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - - - Sends the to the , and builds a using one of the values. - One of the values. - A object. - A other than Binary or VarBinary was used when was set to . For more information about streaming, see SqlClient Streaming Support. --or- -A other than Char, NChar, NVarChar, VarChar, or Xml was used when was set to . --or- -A other than Xml was used when was set to . - A timeout occurred during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - An error occurred in a , or object during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - The closed or dropped during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - The , or object was closed during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - - - An asynchronous version of , which sends the to the and builds a . Exceptions will be reported via the returned Task object. - A task representing the asynchronous operation. - A other than Binary or VarBinary was used when was set to . For more information about streaming, see SqlClient Streaming Support. --or- -A other than Char, NChar, NVarChar, VarChar, or Xml was used when was set to . --or- -A other than Xml was used when was set to . - An invalid value. - Calling more than once for the same instance before task completion. --or- -The closed or dropped during a streaming operation. For more information about streaming, see SqlClient Streaming Support. --or- - is specified in the connection string. - SQL Server returned an error while executing the command text. --or- -A timeout occurred during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - An error occurred in a , or object during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - The , or object was closed during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - - - An asynchronous version of , which sends the to the , and builds a . Exceptions will be reported via the returned Task object. - Options for statement execution and data retrieval. When is set to , reads the entire row before returning a complete Task. - A task representing the asynchronous operation. - A other than Binary or VarBinary was used when was set to . For more information about streaming, see SqlClient Streaming Support. --or- -A other than Char, NChar, NVarChar, VarChar, or Xml was used when was set to . --or- -A other than Xml was used when was set to . - An invalid value. - Calling more than once for the same instance before task completion. --or- -The closed or dropped during a streaming operation. For more information about streaming, see SqlClient Streaming Support. --or- - is specified in the connection string. - SQL Server returned an error while executing the command text. --or- -A timeout occurred during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - An error occurred in a , or object during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - The , or object was closed during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - - - An asynchronous version of , which sends the to the , and builds a -The cancellation token can be used to request that the operation be abandoned before the command timeout elapses. Exceptions will be reported via the returned Task object. - Options for statement execution and data retrieval. When is set to , reads the entire row before returning a complete Task. - The cancellation instruction. - A task representing the asynchronous operation. - A other than Binary or VarBinary was used when was set to . For more information about streaming, see SqlClient Streaming Support. --or- -A other than Char, NChar, NVarChar, VarChar, or Xml was used when was set to . --or- -A other than Xml was used when was set to . - An invalid value. - Calling more than once for the same instance before task completion. --or- -The closed or dropped during a streaming operation. For more information about streaming, see SqlClient Streaming Support. --or- - is specified in the connection string. - SQL Server returned an error while executing the command text. --or- -A timeout occurred during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - An error occurred in a , or object during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - The , or object was closed during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - - - An asynchronous version of , which sends the to the and builds a . -The cancellation token can be used to request that the operation be abandoned before the command timeout elapses. Exceptions will be reported via the returned Task object. - The cancellation instruction. - A task representing the asynchronous operation. - A other than Binary or VarBinary was used when was set to . For more information about streaming, see SqlClient Streaming Support. --or- -A other than Char, NChar, NVarChar, VarChar, or Xml was used when was set to . --or- -A other than Xml was used when was set to . - An invalid value. - Calling more than once for the same instance before task completion. --or- -The closed or dropped during a streaming operation. For more information about streaming, see SqlClient Streaming Support. --or- - is specified in the connection string. - SQL Server returned an error while executing the command text. --or- -A timeout occurred during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - An error occurred in a , or object during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - The , or object was closed during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - - - Executes the query, and returns the first column of the first row in the result set returned by the query. Additional columns or rows are ignored. - The first column of the first row in the result set, or a null reference ( in Visual Basic) if the result set is empty. Returns a maximum of 2033 characters. - A other than Binary or VarBinary was used when was set to . For more information about streaming, see SqlClient Streaming Support. --or- -A other than Char, NChar, NVarChar, VarChar, or Xml was used when was set to . --or- -A other than Xml was used when was set to . - An exception occurred while executing the command against a locked row. This exception is not generated when you are using Microsoft .NET Framework version 1.0. --or- -A timeout occurred during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - The closed or dropped during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - An error occurred in a , or object during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - The , or object was closed during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - - - An asynchronous version of , which executes the query asynchronously and returns the first column of the first row in the result set returned by the query. Additional columns or rows are ignored. -The cancellation token can be used to request that the operation be abandoned before the command timeout elapses. Exceptions will be reported via the returned Task object. - The cancellation instruction. - A task representing the asynchronous operation. - A other than Binary or VarBinary was used when was set to . For more information about streaming, see SqlClient Streaming Support. --or- -A other than Char, NChar, NVarChar, VarChar, or Xml was used when was set to . --or- -A other than Xml was used when was set to . - Calling more than once for the same instance before task completion. --or- -The closed or dropped during a streaming operation. For more information about streaming, see SqlClient Streaming Support. --or- - is specified in the connection string. - SQL Server returned an error while executing the command text. --or- -A timeout occurred during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - An error occurred in a , or object during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - The , or object was closed during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - - - Sends the to the and builds an object. - An object. - A other than Binary or VarBinary was used when was set to . For more information about streaming, see SqlClient Streaming Support. --or- -A other than Char, NChar, NVarChar, VarChar, or Xml was used when was set to . --or- -A other than Xml was used when was set to . - An exception occurred while executing the command against a locked row. This exception is not generated when you are using Microsoft .NET Framework version 1.0. --or- -A timeout occurred during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - The closed or dropped during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - An error occurred in a , or object during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - The , or object was closed during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - - - An asynchronous version of , which sends the to the and builds an object. -Exceptions will be reported via the returned Task object. - A task representing the asynchronous operation. - A other than Binary or VarBinary was used when was set to . For more information about streaming, see SqlClient Streaming Support. --or- -A other than Char, NChar, NVarChar, VarChar, or Xml was used when was set to . --or- -A other than Xml was used when was set to . - Calling more than once for the same instance before task completion. --or- -The closed or dropped during a streaming operation. For more information about streaming, see SqlClient Streaming Support. --or- - is specified in the connection string. - SQL Server returned an error while executing the command text. --or- -A timeout occurred during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - An error occurred in a , or object during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - The , or object was closed during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - - - An asynchronous version of , which sends the to the and builds an object. -The cancellation token can be used to request that the operation be abandoned before the command timeout elapses. Exceptions will be reported via the returned Task object. - The cancellation instruction. - A task representing the asynchronous operation. - A other than Binary or VarBinary was used when was set to . For more information about streaming, see SqlClient Streaming Support. --or- -A other than Char, NChar, NVarChar, VarChar, or Xml was used when was set to . --or- -A other than Xml was used when was set to . - Calling more than once for the same instance before task completion. --or- -The closed or dropped during a streaming operation. For more information about streaming, see SqlClient Streaming Support. --or- - is specified in the connection string. - SQL Server returned an error while executing the command text. --or- -A timeout occurred during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - An error occurred in a , or object during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - The , or object was closed during a streaming operation. For more information about streaming, see SqlClient Streaming Support. - - - Gets or sets a value that specifies the object bound to this command. - When set to null (default), no notification should be requested. - - - Gets the . - The parameters of the Transact-SQL statement or stored procedure. The default is an empty collection. - - - Creates a prepared version of the command on an instance of SQL Server. - - - Resets the property to its default value. - - - Occurs when the execution of a Transact-SQL statement completes. - - - Creates a new object that is a copy of the current instance. - A new object that is a copy of this instance. - - - Gets or sets the within which the executes. - The . The default value is . - - - Gets or sets how command results are applied to the when used by the Update method of the . - One of the values. - - - Automatically generates single-table commands that are used to reconcile changes made to a with the associated SQL Server database. This class cannot be inherited. - - - Initializes a new instance of the class. - - - Initializes a new instance of the class with the associated object. - The name of the . - - - Sets or gets the for an instance of the class. - A object. - - - Sets or gets a string used as the catalog separator for an instance of the class. - A string that indicates the catalog separator for use with an instance of the class. - - - Gets or sets a object for which Transact-SQL statements are automatically generated. - A object. - - - Retrieves parameter information from the stored procedure specified in the and populates the collection of the specified object. - The referencing the stored procedure from which the parameter information is to be derived. The derived parameters are added to the collection of the . - The command text is not a valid stored procedure name. - - - Gets the automatically generated object required to perform deletions on the database. - The automatically generated object required to perform deletions. - - - Gets the automatically generated object that is required to perform deletions on the database. - If , generate parameter names matching column names if possible. If , generate @p1, @p2, and so on. - The automatically generated object that is required to perform deletions. - - - Gets the automatically generated object required to perform insertions on the database. - The automatically generated object required to perform insertions. - - - Gets the automatically generated object that is required to perform insertions on the database. - If , generate parameter names matching column names if possible. If , generate @p1, @p2, and so on. - The automatically generated object that is required to perform insertions. - - - Gets the automatically generated object required to perform updates on the database. - The automatically generated object that is required to perform updates. - - - Gets the automatically generated object required to perform updates on the database. - If , generate parameter names matching column names if possible. If , generate @p1, @p2, and so on. - The automatically generated object required to perform updates. - - - Given an unquoted identifier in the correct catalog case, returns the correct quoted form of that identifier. This includes correctly escaping any embedded quotes in the identifier. - The original unquoted identifier. - The quoted version of the identifier. Embedded quotes within the identifier are correctly escaped. - - - Gets or sets the starting character or characters to use when specifying SQL Server database objects, such as tables or columns, whose names contain characters such as spaces or reserved tokens. - The starting character or characters to use. The default is an empty string. - This property cannot be changed after an INSERT, UPDATE, or DELETE command has been generated. - - - Gets or sets the ending character or characters to use when specifying SQL Server database objects, such as tables or columns, whose names contain characters such as spaces or reserved tokens. - The ending character or characters to use. The default is an empty string. - This property cannot be changed after an insert, update, or delete command has been generated. - - - Gets or sets the character to be used for the separator between the schema identifier and any other identifiers. - The character to be used as the schema separator. - - - Given a quoted identifier, returns the correct unquoted form of that identifier. This includes correctly unescaping any embedded quotes in the identifier. - The identifier that will have its embedded quotes removed. - The unquoted identifier, with embedded quotes properly unescaped. - - - Represents a connection to a SQL Server database. This class cannot be inherited. - - - Initializes a new instance of the class. - - - Initializes a new instance of the class when given a string that contains the connection string. - The connection used to open the SQL Server database. - - - Initializes a new instance of the class given a connection string, that does not use and a object that contains the user ID and password. - A connection string that does not use any of the following connection string keywords: , , or ; or that does not use . - A object. If is null, is functionally equivalent to . - - - Gets or sets the access token for the connection. - The access token for the connection. - - - Starts a database transaction. - An object representing the new transaction. - Parallel transactions are not allowed when using Multiple Active Result Sets (MARS). - Parallel transactions are not supported. - - - Starts a database transaction with the specified isolation level. - The isolation level under which the transaction should run. - An object representing the new transaction. - Parallel transactions are not allowed when using Multiple Active Result Sets (MARS). - Parallel transactions are not supported. - - - Starts a database transaction with the specified isolation level and transaction name. - The isolation level under which the transaction should run. - The name of the transaction. - An object representing the new transaction. - Parallel transactions are not allowed when using Multiple Active Result Sets (MARS). - Parallel transactions are not supported. - - - Starts a database transaction with the specified transaction name. - The name of the transaction. - An object representing the new transaction. - Parallel transactions are not allowed when using Multiple Active Result Sets (MARS). - Parallel transactions are not supported. - - - Changes the current database for an open . - The name of the database to use instead of the current database. - The database name is not valid. - The connection is not open. - Cannot change the database. - - - Changes the SQL Server password for the user indicated in the object. - The connection string that contains enough information to connect to a server. The connection string should not use any of the following connection string keywords: , , or ; or . - A object. - The new password. must be read only. The password must also comply with any password security policy set on the server (for example, minimum length and requirements for specific characters). - The connection string contains any combination of , , or . --or- -The connection string contains . --or- - (or ) is greater than 128 characters. --or- - (or ) is not read only. --or- - (or ) is an empty string. - One of the parameters (, , or ) is null. - - - Changes the SQL Server password for the user indicated in the connection string to the supplied new password. - The connection string that contains enough information to connect to the server that you want. The connection string must contain the user ID and the current password. - The new password to set. This password must comply with any password security policy set on the server, including minimum length, requirements for specific characters, and so on. - The connection string includes the option to use integrated security. -Or -The exceeds 128 characters. - Either the or the parameter is null. - - - Empties the connection pool. - - - Empties the connection pool associated with the specified connection. - The to be cleared from the pool. - - - The connection ID of the most recent connection attempt, regardless of whether the attempt succeeded or failed. - The connection ID of the most recent connection attempt. - - - Closes the connection to the database. This is the preferred method of closing any open connection. - The connection-level error that occurred while opening the connection. - - - Gets or sets the string used to open a SQL Server database. - The connection string that includes the source database name, and other parameters needed to establish the initial connection. The default value is an empty string. - An invalid connection string argument has been supplied, or a required connection string argument has not been supplied. - - - Gets the time to wait while trying to establish a connection before terminating the attempt and generating an error. - The time (in seconds) to wait for a connection to open. The default value is 15 seconds. - The value set is less than 0. - - - Creates and returns a object associated with the . - A object. - - - Gets or sets the object for this connection. - The object for this connection. - - - Gets the name of the current database or the database to be used after a connection is opened. - The name of the current database or the name of the database to be used after a connection is opened. The default value is an empty string. - - - Gets the name of the instance of SQL Server to which to connect. - The name of the instance of SQL Server to which to connect. The default value is an empty string. - - - Gets or sets the property. - - if the property has been set; otherwise . - - - Returns schema information for the data source of this . For more information about scheme, see SQL Server Schema Collections. - A that contains schema information. - - - Returns schema information for the data source of this using the specified string for the schema name. - Specifies the name of the schema to return. - A that contains schema information. - - is specified as null. - - - Returns schema information for the data source of this using the specified string for the schema name and the specified string array for the restriction values. - Specifies the name of the schema to return. - A set of restriction values for the requested schema. - A that contains schema information. - - is specified as null. - - - Occurs when SQL Server returns a warning or informational message. - - - Opens a database connection with the property settings specified by the . - Cannot open a connection without specifying a data source or server. -or -The connection is already open. - A connection-level error occurred while opening the connection. If the property contains the value 18487 or 18488, this indicates that the specified password has expired or must be reset. See the method for more information. -The tag in the app.config file has invalid or unknown elements. - There are two entries with the same name in the section. - - - An asynchronous version of , which opens a database connection with the property settings specified by the . The cancellation token can be used to request that the operation be abandoned before the connection timeout elapses. Exceptions will be propagated via the returned Task. If the connection timeout time elapses without successfully connecting, the returned Task will be marked as faulted with an Exception. The implementation returns a Task without blocking the calling thread for both pooled and non-pooled connections. - The cancellation instruction. - A task representing the asynchronous operation. - Calling more than once for the same instance before task completion. - is specified in the connection string. -A connection was not available from the connection pool before the connection time out elapsed. - Any error returned by SQL Server that occurred while opening the connection. - - - Gets the size (in bytes) of network packets used to communicate with an instance of SQL Server. - The size (in bytes) of network packets. The default value is 8000. - - - If statistics gathering is enabled, all values are reset to zero. - - - Returns a name value pair collection of statistics at the point in time the method is called. - Returns a reference of type of items. - - - Gets a string that contains the version of the instance of SQL Server to which the client is connected. - The version of the instance of SQL Server. - The connection is closed. - was called while the returned Task was not completed and the connection was not opened after a call to . - - - Indicates the state of the during the most recent network operation performed on the connection. - An enumeration. - - - When set to , enables statistics gathering for the current connection. - Returns if statistics gathering is enabled; otherwise . is the default. - - - Creates a new object that is a copy of the current instance. - A new object that is a copy of this instance. - - - Gets a string that identifies the database client. - A string that identifies the database client. If not specified, the name of the client computer. If neither is specified, the value is an empty string. - - - Provides a simple way to create and manage the contents of connection strings used by the class. - - - Initializes a new instance of the class. - - - Initializes a new instance of the class. The provided connection string provides the data for the instance's internal connection information. - The basis for the object's internal connection information. Parsed into name/value pairs. Invalid key names raise . - Invalid key name within the connection string. - Invalid value within the connection string (specifically, when a Boolean or numeric value was expected but not supplied). - The supplied is not valid. - - - Declares the application workload type when connecting to a database in an SQL Server Availability Group. You can set the value of this property with . For more information about SqlClient support for Always On Availability Groups, see SqlClient Support for High Availability, Disaster Recovery. - Returns the current value of the property (a value of type ). - - - Gets or sets the name of the application associated with the connection string. - The name of the application, or ".NET SqlClient Data Provider" if no name has been supplied. - To set the value to null, use . - - - Gets or sets a string that contains the name of the primary data file. This includes the full path name of an attachable database. - The value of the property, or if no value has been supplied. - To set the value to null, use . - - - Clears the contents of the instance. - - - The number of reconnections attempted after identifying that there was an idle connection failure. This must be an integer between 0 and 255. Default is 1. Set to 0 to disable reconnecting on idle connection failures. An will be thrown if set to a value outside of the allowed range. - The number of reconnections attempted after identifying that there was an idle connection failure. - - - Amount of time (in seconds) between each reconnection attempt after identifying that there was an idle connection failure. This must be an integer between 1 and 60. The default is 10 seconds. An will be thrown if set to a value outside of the allowed range. - Amount of time (in seconds) between each reconnection attempt after identifying that there was an idle connection failure. - - - Gets or sets the length of time (in seconds) to wait for a connection to the server before terminating the attempt and generating an error. - The value of the property, or 15 seconds if no value has been supplied. - - - Determines whether the contains a specific key. - The key to locate in the . - - if the contains an element that has the specified key; otherwise, . - - is null ( in Visual Basic) - - - Gets or sets the SQL Server Language record name. - The value of the property, or if no value has been supplied. - To set the value to null, use . - - - Gets or sets the name or network address of the instance of SQL Server to connect to. - The value of the property, or if none has been supplied. - To set the value to null, use . - - - Gets or sets a Boolean value that indicates whether SQL Server uses SSL encryption for all data sent between the client and server if the server has a certificate installed. - The value of the property, or if none has been supplied. - - - Gets or sets a Boolean value that indicates whether the SQL Server connection pooler automatically enlists the connection in the creation thread's current transaction context. - The value of the property, or if none has been supplied. - - - Gets or sets the name or address of the partner server to connect to if the primary server is down. - The value of the property, or if none has been supplied. - To set the value to null, use . - - - Gets or sets the name of the database associated with the connection. - The value of the property, or if none has been supplied. - To set the value to null, use . - - - Gets or sets a Boolean value that indicates whether User ID and Password are specified in the connection (when ) or whether the current Windows account credentials are used for authentication (when ). - The value of the property, or if none has been supplied. - - - Gets or sets the value associated with the specified key. In C#, this property is the indexer. - The key of the item to get or set. - The value associated with the specified key. - - is a null reference ( in Visual Basic). - Tried to add a key that does not exist within the available keys. - Invalid value within the connection string (specifically, a Boolean or numeric value was expected but not supplied). - - - Gets an that contains the keys in the . - An that contains the keys in the . - - - Gets or sets the minimum time, in seconds, for the connection to live in the connection pool before being destroyed. - The value of the property, or 0 if none has been supplied. - - - Gets or sets the maximum number of connections allowed in the connection pool for this specific connection string. - The value of the property, or 100 if none has been supplied. - - - Gets or sets the minimum number of connections allowed in the connection pool for this specific connection string. - The value of the property, or 0 if none has been supplied. - - - When true, an application can maintain multiple active result sets (MARS). When false, an application must process or cancel all result sets from one batch before it can execute any other batch on that connection. -For more information, see Multiple Active Result Sets (MARS). - The value of the property, or if none has been supplied. - - - If your application is connecting to an AlwaysOn availability group (AG) on different subnets, setting MultiSubnetFailover=true provides faster detection of and connection to the (currently) active server. For more information about SqlClient support for Always On Availability Groups, see SqlClient Support for High Availability, Disaster Recovery. - Returns indicating the current value of the property. - - - Gets or sets the size in bytes of the network packets used to communicate with an instance of SQL Server. - The value of the property, or 8000 if none has been supplied. - - - Gets or sets the password for the SQL Server account. - The value of the property, or if none has been supplied. - The password was incorrectly set to null. See code sample below. - - - Gets or sets a Boolean value that indicates if security-sensitive information, such as the password, is not returned as part of the connection if the connection is open or has ever been in an open state. - The value of the property, or if none has been supplied. - - - The blocking period behavior for a connection pool. - The available blocking period settings. - - - Gets or sets a Boolean value that indicates whether the connection will be pooled or explicitly opened every time that the connection is requested. - The value of the property, or if none has been supplied. - - - Removes the entry with the specified key from the instance. - The key of the key/value pair to be removed from the connection string in this . - - if the key existed within the connection string and was removed; if the key did not exist. - - is null ( in Visual Basic) - - - Gets or sets a Boolean value that indicates whether replication is supported using the connection. - The value of the property, or false if none has been supplied. - - - Indicates whether the specified key exists in this instance. - The key to locate in the . - - if the contains an entry with the specified key; otherwise, . - - - Gets or sets a string value that indicates how the connection maintains its association with an enlisted transaction. - The value of the property, or if none has been supplied. - - - Gets or sets a value that indicates whether the channel will be encrypted while bypassing walking the certificate chain to validate trust. - A . Recognized values are , , , and . - - - Retrieves a value corresponding to the supplied key from this . - The key of the item to retrieve. - The value corresponding to . - - if was found within the connection string; otherwise, . - - contains a null value ( in Visual Basic). - - - Gets or sets a string value that indicates the type system the application expects. - The following table shows the possible values for the property: - Value - - Description - - SQL Server 2005 - - Uses the SQL Server 2005 type system. No conversions are made for the current version of ADO.NET. - - SQL Server 2008 - - Uses the SQL Server 2008 type system. - - Latest - - Use the latest version than this client-server pair can handle. This will automatically move forward as the client and server components are upgraded. - - - Gets or sets the user ID to be used when connecting to SQL Server. - The value of the property, or if none has been supplied. - To set the value to null, use . - - - Gets or sets a value that indicates whether to redirect the connection from the default SQL Server Express instance to a runtime-initiated instance running under the account of the caller. - The value of the property, or if none has been supplied. - To set the value to null, use . - - - Gets an that contains the values in the . - An that contains the values in the . - - - Gets or sets the name of the workstation connecting to SQL Server. - The value of the property, or if none has been supplied. - To set the value to null, use . - - - - provides a more secure way to specify the password for a login attempt using SQL Server Authentication. - is comprised of a user id and a password that will be used for SQL Server Authentication. The password in a object is of type . - cannot be inherited. -Windows Authentication () remains the most secure way to log in to a SQL Server database. - - - Creates an object of type . - The user id. - The password; a value marked as read-only. Passing a read/write parameter will raise an . - - - Gets the password component of the object. - The password component of the object. - - - Gets the user ID component of the object. - The user ID component of the object. - - - Represents a set of data commands and a database connection that are used to fill the and update a SQL Server database. This class cannot be inherited. - - - Initializes a new instance of the class. - - - Initializes a new instance of the class with the specified as the property. - A that is a Transact-SQL SELECT statement or stored procedure and is set as the property of the . - - - Initializes a new instance of the class with a and a object. - A that is a Transact-SQL SELECT statement or stored procedure to be used by the property of the . - A that represents the connection. If your connection string does not use , you can use to pass the user ID and password more securely than by specifying the user ID and password as text in the connection string. - - - Initializes a new instance of the class with a and a connection string. - A that is a Transact-SQL SELECT statement or stored procedure to be used by the property of the . - The connection string. If your connection string does not use , you can use and to pass the user ID and password more securely than by specifying the user ID and password as text in the connection string. - - - Gets or sets a Transact-SQL statement or stored procedure to delete records from the data set. - A used during to delete records in the database that correspond to deleted rows in the . - - - Gets or sets a Transact-SQL statement or stored procedure to insert new records into the data source. - A used during to insert records into the database that correspond to new rows in the . - - - Occurs during after a command is executed against the data source. The attempt to update is made, so the event fires. - - - Occurs during before a command is executed against the data source. The attempt to update is made, so the event fires. - - - Gets or sets a Transact-SQL statement or stored procedure used to select records in the data source. - A used during to select records from the database for placement in the . - - - For a description of this member, see . - An that is used during to delete records in the data source for deleted rows in the data set. - - - For a description of this member, see . - An that is used during to insert records in the data source for new rows in the data set. - - - For a description of this member, see . - An that is used during to select records from data source for placement in the data set. - - - For a description of this member, see . - An that is used during to update records in the data source for modified rows in the data set. - - - For a description of this member, see . - A new object that is a copy of the current instance. - - - Gets or sets the number of rows that are processed in each round-trip to the server. - The number of rows to process per-batch. - Value is - - Effect - - 0 - - There is no limit on the batch size. - - 1 - - Disables batch updating. - - >1 - - Changes are sent using batches of operations at a time. - - -When setting this to a value other than 1, all the commands associated with the have to have their UpdatedRowSource property set to or . An exception is thrown otherwise. - - - Gets or sets a Transact-SQL statement or stored procedure used to update records in the data source. - A used during to update records in the database that correspond to modified rows in the . - - - Provides a way of reading a forward-only stream of rows from a SQL Server database. This class cannot be inherited. - - - Gets the associated with the . - The associated with the . - - - Gets a value that indicates the depth of nesting for the current row. - The depth of nesting for the current row. - - - Gets the number of columns in the current row. - When not positioned in a valid recordset, 0; otherwise the number of columns in the current row. The default is -1. - There is no current connection to an instance of SQL Server. - - - Gets the value of the specified column as a Boolean. - The zero-based column ordinal. - The value of the column. - The specified cast is not valid. - - - Gets the value of the specified column as a byte. - The zero-based column ordinal. - The value of the specified column as a byte. - The specified cast is not valid. - - - Reads a stream of bytes from the specified column offset into the buffer an array starting at the given buffer offset. - The zero-based column ordinal. - The index within the field from which to begin the read operation. - The buffer into which to read the stream of bytes. - The index within the where the write operation is to start. - The maximum length to copy into the buffer. - The actual number of bytes read. - - - Gets the value of the specified column as a single character. - The zero-based column ordinal. - The value of the specified column. - The specified cast is not valid. - - - Reads a stream of characters from the specified column offset into the buffer as an array starting at the given buffer offset. - The zero-based column ordinal. - The index within the field from which to begin the read operation. - The buffer into which to read the stream of bytes. - The index within the where the write operation is to start. - The maximum length to copy into the buffer. - The actual number of characters read. - - - - Gets a string representing the data type of the specified column. - The zero-based ordinal position of the column to find. - The string representing the data type of the specified column. - - - Gets the value of the specified column as a object. - The zero-based column ordinal. - The value of the specified column. - The specified cast is not valid. - - - Retrieves the value of the specified column as a object. - The zero-based column ordinal. - The value of the specified column. - The specified cast is not valid. - - - Gets the value of the specified column as a object. - The zero-based column ordinal. - The value of the specified column. - The specified cast is not valid. - - - Gets the value of the specified column as a double-precision floating point number. - The zero-based column ordinal. - The value of the specified column. - The specified cast is not valid. - - - Returns an that iterates through the . - An for the . - - - Gets the that is the data type of the object. - The zero-based column ordinal. - The that is the data type of the object. If the type does not exist on the client, in the case of a User-Defined Type (UDT) returned from the database, GetFieldType returns null. - - - Synchronously gets the value of the specified column as a type. is the asynchronous version of this method. - The column to be retrieved. - The type of the value to be returned. - The returned type object. - The connection drops or is closed during the data retrieval. -The is closed during the data retrieval. -There is no data ready to be read (for example, the first hasn't been called, or returned false). -Tried to read a previously-read column in sequential mode. -There was an asynchronous operation in progress. This applies to all Get* methods when running in sequential mode, as they could be called while reading a stream. - Trying to read a column that does not exist. - The value of the column was null ( == ), retrieving a non-SQL type. - - doesn't match the type returned by SQL Server or cannot be cast. - - - Asynchronously gets the value of the specified column as a type. is the synchronous version of this method. - The column to be retrieved. - The cancellation instruction, which propagates a notification that operations should be canceled. This does not guarantee the cancellation. A setting of makes this method equivalent to . The returned task must be marked as cancelled. - The type of the value to be returned. - The returned type object. - The connection drops or is closed during the data retrieval. -The is closed during the data retrieval. -There is no data ready to be read (for example, the first hasn't been called, or returned false). -Tried to read a previously-read column in sequential mode. -There was an asynchronous operation in progress. This applies to all Get* methods when running in sequential mode, as they could be called while reading a stream. - is specified in the connection string. - Trying to read a column that does not exist. - The value of the column was null ( == ), retrieving a non-SQL type. - - doesn't match the type returned by SQL Server or cannot be cast. - - - Gets the value of the specified column as a single-precision floating point number. - The zero-based column ordinal. - The value of the specified column. - The specified cast is not valid. - - - Gets the value of the specified column as a globally unique identifier (GUID). - The zero-based column ordinal. - The value of the specified column. - The specified cast is not valid. - - - Gets the value of the specified column as a 16-bit signed integer. - The zero-based column ordinal. - The value of the specified column. - The specified cast is not valid. - - - Gets the value of the specified column as a 32-bit signed integer. - The zero-based column ordinal. - The value of the specified column. - The specified cast is not valid. - - - Gets the value of the specified column as a 64-bit signed integer. - The zero-based column ordinal. - The value of the specified column. - The specified cast is not valid. - - - Gets the name of the specified column. - The zero-based column ordinal. - The name of the specified column. - - - Gets the column ordinal, given the name of the column. - The name of the column. - The zero-based column ordinal. - The name specified is not a valid column name. - - - Gets an that is a representation of the underlying provider-specific field type. - An representing the column ordinal. - Gets an that is a representation of the underlying provider-specific field type. - - - Gets an that is a representation of the underlying provider specific value. - An representing the column ordinal. - An that is a representation of the underlying provider specific value. - - - Gets an array of objects that are a representation of the underlying provider specific values. - An array of into which to copy the column values. - The array of objects that are a representation of the underlying provider specific values. - - - Returns a that describes the column metadata of the . - A that describes the column metadata. - The is closed. - - - Gets the value of the specified column as a . - The zero-based column ordinal. - The value of the column expressed as a . - - - Gets the value of the specified column as a . - The zero-based column ordinal. - The value of the column. - - - Gets the value of the specified column as a . - The zero-based column ordinal. - The value of the column expressed as a . - - - Gets the value of the specified column as . - The zero-based column ordinal. - The value of the column expressed as a . - - - Gets the value of the specified column as . - The zero-based column ordinal. - The value of the column expressed as a . - - - Gets the value of the specified column as a . - The zero-based column ordinal. - The value of the column expressed as a . - - - Gets the value of the specified column as a . - The zero-based column ordinal. - The value of the column expressed as a . - - - Gets the value of the specified column as a . - The zero-based column ordinal. - The value of the column expressed as a . - - - Gets the value of the specified column as a . - The zero-based column ordinal. - The value of the column expressed as a . - - - Gets the value of the specified column as a . - The zero-based column ordinal. - The value of the column expressed as a . - - - Gets the value of the specified column as a . - The zero-based column ordinal. - The value of the column expressed as a . - - - Gets the value of the specified column as a . - The zero-based column ordinal. - The value of the column expressed as a . - - - Gets the value of the specified column as a . - The zero-based column ordinal. - The value of the column expressed as a . - - - Gets the value of the specified column as a . - The zero-based column ordinal. - The value of the column expressed as a . - - - Gets the value of the specified column as a . - The zero-based column ordinal. - The value of the column expressed as a . - - - Returns the data value in the specified column as a SQL Server type. - The zero-based column ordinal. - The value of the column expressed as a . - - - Fills an array of that contains the values for all the columns in the record, expressed as SQL Server types. - An array of into which to copy the values. The column values are expressed as SQL Server types. - An integer indicating the number of columns copied. - - is null. - - - Gets the value of the specified column as an XML value. - The zero-based column ordinal. - A value that contains the XML stored within the corresponding field. - The index passed was outside the range of 0 to - 1 - An attempt was made to read or access columns in a closed . - The retrieved data is not compatible with the type. - - - Retrieves binary, image, varbinary, UDT, and variant data types as a . - The zero-based column ordinal. - A stream object. - The connection drops or is closed during the data retrieval. -The is closed during the data retrieval. -There is no data ready to be read (for example, the first hasn't been called, or returned false). -Tried to read a previously-read column in sequential mode. -There was an asynchronous operation in progress. This applies to all Get* methods when running in sequential mode, as they could be called while reading a stream. - Trying to read a column that does not exist. - The returned type was not one of the types below: - -binary - -image - -varbinary - -udt - - - Gets the value of the specified column as a string. - The zero-based column ordinal. - The value of the specified column. - The specified cast is not valid. - - - Retrieves Char, NChar, NText, NVarChar, text, varChar, and Variant data types as a . - The column to be retrieved. - The returned object. - The connection drops or is closed during the data retrieval. -The is closed during the data retrieval. -There is no data ready to be read (for example, the first hasn't been called, or returned false). -Tried to read a previously-read column in sequential mode. -There was an asynchronous operation in progress. This applies to all Get* methods when running in sequential mode, as they could be called while reading a stream. - Trying to read a column that does not exist. - The returned type was not one of the types below: - -char - -nchar - -ntext - -nvarchar - -text - -varchar - - - Retrieves the value of the specified column as a object. - The zero-based column ordinal. - The value of the specified column. - The specified cast is not valid. - - - Gets the value of the specified column in its native format. - The zero-based column ordinal. - This method returns for null database columns. - - - Populates an array of objects with the column values of the current row. - An array of into which to copy the attribute columns. - The number of instances of in the array. - - - Retrieves data of type XML as an . - The value of the specified column. - The returned object. - The connection drops or is closed during the data retrieval. -The is closed during the data retrieval. -There is no data ready to be read (for example, the first hasn't been called, or returned false). -Trying to read a previously read column in sequential mode. -There was an asynchronous operation in progress. This applies to all Get* methods when running in sequential mode, as they could be called while reading a stream. - Trying to read a column that does not exist. - The returned type was not xml. - - - Gets a value that indicates whether the contains one or more rows. - - if the contains one or more rows; otherwise . - - - Retrieves a Boolean value that indicates whether the specified instance has been closed. - - if the specified instance is closed; otherwise . - - - Determines whether the specified matches that of the . - A enumeration. - - if the specified is true, otherwise. - - - Gets a value that indicates whether the column contains non-existent or missing values. - The zero-based column ordinal. - - if the specified column value is equivalent to ; otherwise . - - - An asynchronous version of , which gets a value that indicates whether the column contains non-existent or missing values. -The cancellation token can be used to request that the operation be abandoned before the command timeout elapses. Exceptions will be reported via the returned Task object. - The zero-based column to be retrieved. - The cancellation instruction, which propagates a notification that operations should be canceled. This does not guarantee the cancellation. A setting of makes this method equivalent to . The returned task must be marked as cancelled. - - if the specified column value is equivalent to otherwise . - The connection drops or is closed during the data retrieval. -The is closed during the data retrieval. -There is no data ready to be read (for example, the first hasn't been called, or returned false). -Trying to read a previously read column in sequential mode. -There was an asynchronous operation in progress. This applies to all Get* methods when running in sequential mode, as they could be called while reading a stream. - is specified in the connection string. - Trying to read a column that does not exist. - - - Gets the value of the specified column in its native format given the column ordinal. - The zero-based column ordinal. - The value of the specified column in its native format. - The index passed was outside the range of 0 through . - - - Gets the value of the specified column in its native format given the column name. - The column name. - The value of the specified column in its native format. - No column with the specified name was found. - - - Advances the data reader to the next result, when reading the results of batch Transact-SQL statements. - - if there are more result sets; otherwise . - - - An asynchronous version of , which advances the data reader to the next result, when reading the results of batch Transact-SQL statements. -The cancellation token can be used to request that the operation be abandoned before the command timeout elapses. Exceptions will be reported via the returned Task object. - The cancellation instruction. - A task representing the asynchronous operation. - Calling more than once for the same instance before task completion. - is specified in the connection string. - SQL Server returned an error while executing the command text. - - - Advances the to the next record. - - if there are more rows; otherwise . - SQL Server returned an error while executing the command text. - - - An asynchronous version of , which advances the to the next record. -The cancellation token can be used to request that the operation be abandoned before the command timeout elapses. Exceptions will be reported via the returned Task object. - The cancellation instruction. - A task representing the asynchronous operation. - Calling more than once for the same instance before task completion. - is specified in the connection string. - SQL Server returned an error while executing the command text. - - - Gets the number of rows changed, inserted, or deleted by execution of the Transact-SQL statement. - The number of rows changed, inserted, or deleted; 0 if no rows were affected or the statement failed; and -1 for SELECT statements. - - - Gets the number of fields in the that are not hidden. - The number of fields that are not hidden. - - - The object represents a query notification dependency between an application and an instance of SQL Server. An application can create a object and register to receive notifications via the event handler. - - - Creates a new instance of the class with the default settings. - - - Creates a new instance of the class and associates it with the parameter. - The object to associate with this object. The constructor will set up a object and bind it to the command. - The parameter is NULL. - The object already has a object assigned to its property, and that is not associated with this dependency. - - - Creates a new instance of the class, associates it with the parameter, and specifies notification options and a time-out value. - The object to associate with this object. The constructor sets up a object and bind it to the command. - The notification request options to be used by this dependency. to use the default service. - The time-out for this notification in seconds. The default is 0, indicating that the server's time-out should be used. - The parameter is NULL. - The time-out value is less than zero. - The object already has a object assigned to its property and that is not associated with this dependency. -An attempt was made to create a SqlDependency instance from within SQLCLR. - - - Associates a object with this instance. - A object containing a statement that is valid for notifications. - The parameter is null. - The object already has a object assigned to its property, and that is not associated with this dependency. - - - Gets a value that indicates whether one of the result sets associated with the dependency has changed. - A Boolean value indicating whether one of the result sets has changed. - - - Gets a value that uniquely identifies this instance of the class. - A string representation of a GUID that is generated for each instance of the class. - - - Occurs when a notification is received for any of the commands associated with this object. - - - Starts the listener for receiving dependency change notifications from the instance of SQL Server specified by the connection string. - The connection string for the instance of SQL Server from which to obtain change notifications. - - if the listener initialized successfully; if a compatible listener already exists. - The parameter is NULL. - The parameter is the same as a previous call to this method, but the parameters are different. -The method was called from within the CLR. - The caller does not have the required code access security (CAS) permission. - A subsequent call to the method has been made with an equivalent parameter with a different user, or a user that does not default to the same schema. -Also, any underlying SqlClient exceptions. - - - Starts the listener for receiving dependency change notifications from the instance of SQL Server specified by the connection string using the specified SQL Server Service Broker queue. - The connection string for the instance of SQL Server from which to obtain change notifications. - An existing SQL Server Service Broker queue to be used. If , the default queue is used. - - if the listener initialized successfully; if a compatible listener already exists. - The parameter is NULL. - The parameter is the same as a previous call to this method, but the parameters are different. -The method was called from within the CLR. - The caller does not have the required code access security (CAS) permission. - A subsequent call to the method has been made with an equivalent parameter but a different user, or a user that does not default to the same schema. -Also, any underlying SqlClient exceptions. - - - Stops a listener for a connection specified in a previous call. - Connection string for the instance of SQL Server that was used in a previous call. - - if the listener was completely stopped; if the was unbound from the listener, but there are is at least one other using the same listener. - The parameter is NULL. - The method was called from within SQLCLR. - The caller does not have the required code access security (CAS) permission. - An underlying SqlClient exception occurred. - - - Stops a listener for a connection specified in a previous call. - Connection string for the instance of SQL Server that was used in a previous call. - The SQL Server Service Broker queue that was used in a previous call. - - if the listener was completely stopped; if the was unbound from the listener, but there is at least one other using the same listener. - The parameter is NULL. - The method was called from within SQLCLR. - The caller does not have the required code access security (CAS) permission. - And underlying SqlClient exception occurred. - - - Collects information relevant to a warning or error returned by SQL Server. - - - Gets the severity level of the error returned from SQL Server. - A value from 1 to 25 that indicates the severity level of the error. The default is 0. - - - Gets the line number within the Transact-SQL command batch or stored procedure that contains the error. - The line number within the Transact-SQL command batch or stored procedure that contains the error. - - - Gets the text describing the error. - The text describing the error. For more information on errors generated by SQL Server, see Database Engine Events and Errors. - - - Gets a number that identifies the type of error. - The number that identifies the type of error. - - - Gets the name of the stored procedure or remote procedure call (RPC) that generated the error. - The name of the stored procedure or RPC. For more information on errors generated by SQL Server, see Database Engine Events and Errors. - - - Gets the name of the instance of SQL Server that generated the error. - The name of the instance of SQL Server. - - - Gets the name of the provider that generated the error. - The name of the provider that generated the error. - - - Some error messages can be raised at multiple points in the code for the Database Engine. For example, an 1105 error can be raised for several different conditions. Each specific condition that raises an error assigns a unique state code. - The state code. - - - Gets the complete text of the error message. - The complete text of the error. - - - Collects all errors generated by the .NET Framework Data Provider for SQL Server. This class cannot be inherited. - - - Copies the elements of the collection into an , starting at the specified index. - The to copy elements into. - The index from which to start copying into the parameter. - The sum of and the number of elements in the collection is greater than the of the . - The is . - The is not valid for . - - - Copies the elements of the collection into a , starting at the specified index. - The to copy the elements into. - The index from which to start copying into the parameter. - The sum of and the number of elements in the collection is greater than the length of the . - The is . - The is not valid for . - - - Gets the number of errors in the collection. - The total number of errors in the collection. - - - Returns an enumerator that iterates through the . - An for the . - - - Gets the error at the specified index. - The zero-based index of the error to retrieve. - A that contains the error at the specified index. - Index parameter is outside array bounds. - - - For a description of this member, see . - - if access to the is synchronized (thread safe); otherwise, . - - - For a description of this member, see . - An object that can be used to synchronize access to the . - - - The exception that is thrown when SQL Server returns a warning or error. This class cannot be inherited. - - - Gets the severity level of the error returned from the .NET Framework Data Provider for SQL Server. - A value from 1 to 25 that indicates the severity level of the error. - - - Represents the client connection ID. For more information, see Data Tracing in ADO.NET. - The client connection ID. - - - Gets a collection of one or more objects that give detailed information about exceptions generated by the .NET Framework Data Provider for SQL Server. - The collected instances of the class. - - - Sets the with information about the exception. - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - The parameter is a null reference ( in Visual Basic). - - - Gets the line number within the Transact-SQL command batch or stored procedure that generated the error. - The line number within the Transact-SQL command batch or stored procedure that generated the error. - - - Gets a number that identifies the type of error. - The number that identifies the type of error. - - - Gets the name of the stored procedure or remote procedure call (RPC) that generated the error. - The name of the stored procedure or RPC. - - - Gets the name of the computer that is running an instance of SQL Server that generated the error. - The name of the computer running an instance of SQL Server. - - - Gets the name of the provider that generated the error. - The name of the provider that generated the error. - - - Gets a numeric error code from SQL Server that represents an error, warning or "no data found" message. For more information about how to decode these values, see Database Engine Events and Errors. - The number representing the error code. - - - Returns a string that represents the current object, and includes the client connection ID (for more information, see ). - A string that represents the current object.. - - - Provides data for the event. - - - Gets the collection of warnings sent from the server. - The collection of warnings sent from the server. - - - Gets the full text of the error sent from the database. - The full text of the error. - - - Gets the name of the object that generated the error. - The name of the object that generated the error. - - - Retrieves a string representation of the event. - A string representing the event. - - - Represents the method that will handle the event of a . - The source of the event. - A object that contains the event data. - - - Represents the set of arguments passed to the notification event handler. - - - Creates a new instance of the object. - - value that indicates whether this notification is generated because of an actual change, or by the subscription. - - value that indicates the reason for the notification event. This may occur because the data in the store actually changed, or the notification became invalid (for example, it timed out). - - value that indicates the source that generated the notification. - - - Gets a value that indicates the reason for the notification event, such as a row in the database being modified or a table being truncated. - The notification event reason. - - - Gets a value that indicates the source that generated the notification, such as a change to the query data or the database's state. - The source of the notification. - - - Gets a value that indicates whether this notification is generated because of an actual change, or by the subscription. - A value indicating whether the notification was generated by a change or a subscription. - - - This enumeration provides additional information about the different notifications that can be received by the dependency event handler. - - - The object already fired, and new commands cannot be added to it. - - - An underlying server object related to the query was modified. - - - Data was changed by a DELETE statement. - - - An underlying object related to the query was dropped. - - - An internal server error occurred. - - - The object has expired. - - - Data was changed by an INSERT statement. - - - A statement was provided that cannot be notified (for example, an UPDATE statement). - - - The statement was executed under an isolation mode that was not valid (for example, Snapshot). - - - Used to distinguish the server-side cause for a query notification firing. - - - The SET options were not set appropriately at subscription time. - - - A previous statement has caused query notifications to fire under the current transaction. - - - A SELECT statement that cannot be notified or was provided. - - - Fires as a result of server resource pressure. - - - The server was restarted (notifications are sent during restart.). - - - The subscribing query causes the number of templates on one of the target tables to exceed the maximum allowable limit. - - - One or more tables were truncated. - - - Used when the info option sent by the server was not recognized by the client. - - - Data was changed by an UPDATE statement. - - - Indicates the source of the notification received by the dependency event handler. - - - A client-initiated notification occurred, such as a client-side time-out or as a result of attempting to add a command to a dependency that has already fired. - - - Data has changed; for example, an insert, update, delete, or truncate operation occurred. - - - The database state changed; for example, the database related to the query was dropped or detached. - - - The run-time environment was not compatible with notifications; for example, the isolation level was set to snapshot, or one or more SET options are not compatible. - - - A run-time error occurred during execution. - - - A database object changed; for example, an underlying object related to the query was dropped or modified. - - - Internal only; not intended to be used in your code. - - - The Transact-SQL statement is not valid for notifications; for example, a SELECT statement that could not be notified or a non-SELECT statement was executed. - - - A system-related event occurred. For example, there was an internal error, the server was restarted, or resource pressure caused the invalidation. - - - The subscription time-out expired. - - - Used when the source option sent by the server was not recognized by the client. - - - Describes the different notification types that can be received by an event handler through the parameter. - - - Data on the server being monitored changed. Use the item to determine the details of the change. - - - There was a failure to create a notification subscription. Use the object's item to determine the cause of the failure. - - - Used when the type option sent by the server was not recognized by the client. - - - Represents a parameter to a and optionally its mapping to columns. This class cannot be inherited. For more information on parameters, see Configuring Parameters and Parameter Data Types. - - - Initializes a new instance of the class. - - - Initializes a new instance of the class that uses the parameter name and the data type. - The name of the parameter to map. - One of the values. - The value supplied in the parameter is an invalid back-end data type. - - - Initializes a new instance of the class that uses the parameter name, the , and the size. - The name of the parameter to map. - One of the values. - The length of the parameter. - The value supplied in the parameter is an invalid back-end data type. - - - Initializes a new instance of the class that uses the parameter name, the type of the parameter, the size of the parameter, a , the precision of the parameter, the scale of the parameter, the source column, a to use, and the value of the parameter. - The name of the parameter to map. - One of the values. - The length of the parameter. - One of the values. - - if the value of the field can be null; otherwise, . - The total number of digits to the left and right of the decimal point to which is resolved. - The total number of decimal places to which is resolved. - The name of the source column () if this is used in a call to . - One of the values. - An that is the value of the . - The value supplied in the parameter is an invalid back-end data type. - - - Initializes a new instance of the class that uses the parameter name, the , the size, and the source column name. - The name of the parameter to map. - One of the values. - The length of the parameter. - The name of the source column () if this is used in a call to . - The value supplied in the parameter is an invalid back-end data type. - - - Initializes a new instance of the class that uses the parameter name, the type of the parameter, the length of the parameter the direction, the precision, the scale, the name of the source column, one of the values, a Boolean for source column mapping, the value of the , the name of the database where the schema collection for this XML instance is located, the owning relational schema where the schema collection for this XML instance is located, and the name of the schema collection for this parameter. - The name of the parameter to map. - One of the values. - The name of the database where the schema collection for this XML instance is located. - The owning relational schema where the schema collection for this XML instance is located. - The name of the schema collection for this parameter. - The length of the parameter. - One of the values. - The total number of digits to the left and right of the decimal point to which is resolved. - The total number of decimal places to which is resolved. - The name of the source column () if this is used in a call to . - One of the values. - - if the source column is nullable; if it is not. - An that is the value of the . - - - Initializes a new instance of the class that uses the parameter name and a value of the new . - The name of the parameter to map. - An that is the value of the . - - - Gets or sets the object that defines how string comparisons should be performed for this parameter. - A object that defines string comparison for this parameter. - - - Gets or sets the of the parameter. - One of the values. The default is . - - - Gets or sets a value that indicates whether the parameter is input-only, output-only, bidirectional, or a stored procedure return value parameter. - One of the values. The default is . - The property was not set to one of the valid values. - - - Gets or sets a value that indicates whether the parameter accepts null values. is not used to validate the parameter's value and will not prevent sending or receiving a null value when executing a command. - - if null values are accepted; otherwise, . The default is . - - - Gets or sets the locale identifier that determines conventions and language for a particular region. - The locale identifier associated with the parameter. - - - Gets or sets the offset to the property. - The offset to the . The default is 0. - - - Gets or sets the name of the . - The name of the . The default is an empty string. - - - Gets or sets the maximum number of digits used to represent the property. - The maximum number of digits used to represent the property. The default value is 0. This indicates that the data provider sets the precision for . - - - Resets the type associated with this . - - - Resets the type associated with this . - - - Gets or sets the number of decimal places to which is resolved. - The number of decimal places to which is resolved. The default is 0. - - - Gets or sets the maximum size, in bytes, of the data within the column. - The maximum size, in bytes, of the data within the column. The default value is inferred from the parameter value. - - - Gets or sets the name of the source column mapped to the and used for loading or returning the - The name of the source column mapped to the . The default is an empty string. - - - Sets or gets a value which indicates whether the source column is nullable. This allows to correctly generate Update statements for nullable columns. - - if the source column is nullable; if it is not. - - - Gets or sets the to use when you load - One of the values. The default is . - - - Gets or sets the of the parameter. - One of the values. The default is . - - - Gets or sets the value of the parameter as an SQL type. - An that is the value of the parameter, using SQL types. The default value is null. - - - For a description of this member, see . - A new that is a copy of this instance. - - - Gets a string that contains the . - A string that contains the . - - - Gets or sets the type name for a table-valued parameter. - The type name of the specified table-valued parameter. - - - Gets or sets a that represents a user-defined type as a parameter. - A that represents the fully qualified name of a user-defined type in the database. - - - Gets or sets the value of the parameter. - An that is the value of the parameter. The default value is null. - - - Gets the name of the database where the schema collection for this XML instance is located. - The name of the database where the schema collection for this XML instance is located. - - - Gets the name of the schema collection for this XML instance. - The name of the schema collection for this XML instance. - - - The owning relational schema where the schema collection for this XML instance is located. - The owning relational schema for this XML instance. - - - Represents a collection of parameters associated with a and their respective mappings to columns in a . This class cannot be inherited. - - - Adds the specified object to the . - The to add to the collection. - A new object. - The specified in the parameter is already added to this or another . - The parameter passed was not a . - The parameter is null. - - - Adds the specified object to the . - An . - The index of the new object. - - - Adds a to the given the parameter name and the data type. - The name of the parameter. - One of the values. - A new object. - - - Adds a to the , given the specified parameter name, and size. - The name of the parameter. - The of the to add to the collection. - The size as an . - A new object. - - - Adds a to the with the parameter name, the data type, and the column length. - The name of the parameter. - One of the values. - The column length. - The name of the source column () if this is used in a call to . - A new object. - - - Adds an array of values to the end of the . - The values to add. - - - Adds an array of values to the end of the . - The values to add. - - - Adds a value to the end of the . - The name of the parameter. - The value to be added. Use instead of null, to indicate a null value. - A object. - - - Removes all the objects from the . - - - Determines whether the specified is in this . - The value. - - if the contains the value; otherwise, . - - - Determines whether the specified is in this . - The value. - - if the contains the value; otherwise, . - - - Determines whether the specified parameter name is in this . - The value. - - if the contains the value; otherwise, . - - - Copies all the elements of the current to the specified one-dimensional starting at the specified destination index. - The one-dimensional that is the destination of the elements copied from the current . - A 32-bit integer that represents the index in the at which copying starts. - - - Copies all the elements of the current to the specified starting at the specified destination index. - The that is the destination of the elements copied from the current . - A 32-bit integer that represents the index in the at which copying starts. - - - Returns an Integer that contains the number of elements in the . Read-only. - The number of elements in the as an Integer. - - - Returns an enumerator that iterates through the . - An for the . - - - Gets the location of the specified within the collection. - The to find. - The zero-based location of the specified that is a within the collection. Returns -1 when the object does not exist in the . - - - Gets the location of the specified within the collection. - The to find. - The zero-based location of the specified that is a within the collection. Returns -1 when the object does not exist in the . - - - Gets the location of the specified with the specified name. - The case-sensitive name of the to find. - The zero-based location of the specified with the specified case-sensitive name. Returns -1 when the object does not exist in the . - - - Inserts a object into the at the specified index. - The zero-based index at which value should be inserted. - A object to be inserted in the . - - - Inserts an into the at the specified index. - The zero-based index at which value should be inserted. - An to be inserted in the . - - - Gets a value that indicates whether the has a fixed size. - - if the has a fixed size; otherwise, . - - - Gets a value that indicates whether the is read-only. - - if the is read-only; otherwise, . - - - Gets the at the specified index. - The zero-based index of the parameter to retrieve. - The at the specified index. - The specified index does not exist. - - - Gets the with the specified name. - The name of the parameter to retrieve. - The with the specified name. - The specified is not valid. - - - Removes the specified from the collection. - A object to remove from the collection. - The parameter is not a . - The parameter does not exist in the collection. - - - Removes the specified from the collection. - The object to remove from the collection. - - - Removes the from the at the specified index. - The zero-based index of the object to remove. - - - Removes the from the at the specified parameter name. - The name of the to remove. - - - Gets an object that can be used to synchronize access to the . - An object that can be used to synchronize access to the . - - - Represents the set of arguments passed to the . - - - Creates a new instance of the object. - An that indicates the number of rows copied during the current bulk copy operation. - - - Gets or sets a value that indicates whether the bulk copy operation should be aborted. - - if the bulk copy operation should be aborted; otherwise . - - - Gets a value that returns the number of rows copied during the current bulk copy operation. - - that returns the number of rows copied. - - - Represents the method that handles the event of a . - The source of the event. - A object that contains the event data. - - - Provides data for the event. - - - Initializes a new instance of the class. - The sent through an . - The executed when is called. - One of the values that specifies the type of query executed. - The sent through an . - - - Gets or sets the executed when is called. - The executed when is called. - - - Represents the method that will handle the event of a . - The source of the event. - The that contains the event data. - - - Provides data for the event. - - - Initializes a new instance of the class. - The to . - The to execute during . - One of the values that specifies the type of query executed. - The sent through an . - - - Gets or sets the to execute when performing the . - The to execute when performing the . - - - Represents the method that will handle the event of a . - The source of the event. - The that contains the event data. - - - Represents a Transact-SQL transaction to be made in a SQL Server database. This class cannot be inherited. - - - Commits the database transaction. - An error occurred while trying to commit the transaction. - The transaction has already been committed or rolled back. --or- -The connection is broken. - - - Gets the object associated with the transaction, or if the transaction is no longer valid. - The object associated with the transaction. - - - Specifies the for this transaction. - The for this transaction. The default is . - - - Rolls back a transaction from a pending state. - An error occurred while trying to commit the transaction. - The transaction has already been committed or rolled back. --or- -The connection is broken. - - - Rolls back a transaction from a pending state, and specifies the transaction or savepoint name. - The name of the transaction to roll back, or the savepoint to which to roll back. - No transaction name was specified. - The transaction has already been committed or rolled back. --or- -The connection is broken. - - - Creates a savepoint in the transaction that can be used to roll back a part of the transaction, and specifies the savepoint name. - The name of the savepoint. - An error occurred while trying to commit the transaction. - The transaction has already been committed or rolled back. --or- -The connection is broken. - - - Exposes SQL Server data that is stored with the FILESTREAM column attribute as a sequence of bytes. - - - Initializes a new instance of the class. - The logical path to the file. The path can be retrieved by using the Transact-SQL Pathname function on the underlying FILESTREAM column in the table. - The transaction context for the object. Applications should return the byte array returned by calling the GET_FILESTREAM_TRANSACTION_CONTEXT method. - The access mode to use when opening the file. Supported enumeration values are , , and . -When using , the object can be used to read all of the existing data. -When using , points to a zero byte file. Existing data will be overwritten when the object is closed and the transaction is committed. -When using , the points to a file which has all the existing data in it. The handle is positioned at the beginning of the file. You can use one of the methods to move the handle position within the file to write or append new data. - - is a null reference, or is null. - - is an empty string (""), contains only white space, or contains one or more invalid characters. - begins with "\\.\", for example "\\.\PHYSICALDRIVE0 ". -The handle returned by the call to NTCreateFile is not of type FILE_TYPE_DISK. - contains an unsupported value. - The file cannot be found. - An I/O error occurred. - The caller does not have the required permission. - The specified is invalid, such as being on an unmapped drive. - The access requested is not permitted by the operating system for the specified path. This occurs when Write or ReadWrite access is specified, and the file or directory is set for read-only access. - NtCreateFile fails with error code set to ERROR_SHARING_VIOLATION. - - - Initializes a new instance of the class. - The logical path to the file. The path can be retrieved by using the Transact-SQL Pathname function on the underlying FILESTREAM column in the table. - The transaction context for the object. When set to null, an implicit transaction will be used for the object. Applications should return the byte array returned by calling the GET_FILESTREAM_TRANSACTION_CONTEXT method. - The access mode to use when opening the file. Supported enumeration values are , , and . -When using , the object can be used to read all of the existing data. -When using , points to a zero byte file. Existing data will be overwritten when the object is closed and the transaction is committed. -When using , the points to a file which has all the existing data in it. The handle is positioned at the beginning of the file. You can use one of the methods to move the handle position within the file to write or append new data. - Specifies the option to use while opening the file. Supported values are , , , and . - The allocation size to use while creating a file. If set to 0, the default value is used. - - is a null reference, or is null. - - is an empty string (""), contains only white space, or contains one or more invalid characters. - begins with "\\.\", for example "\\.\PHYSICALDRIVE0 ". -The handle returned by call to NTCreateFile is not of type FILE_TYPE_DISK. - contains an unsupported value. - The file cannot be found. - An I/O error occurred. - The caller does not have the required permission. - The specified is invalid, such as being on an unmapped drive. - The access requested is not permitted by the operating system for the specified path. This occurs when Write or ReadWrite access is specified, and the file or directory is set for read-only access. - NtCreateFile fails with error code set to ERROR_SHARING_VIOLATION. - - - Gets a value indicating whether the current stream supports reading. - - if the current stream supports reading; otherwise, . - - - Gets a value indicating whether the current stream supports seeking. - - if the current stream supports seeking; otherwise, . - - - Gets a value indicating whether the current stream supports writing. - - if the current stream supports writing; otherwise, . - - - clears all buffers for this stream and causes any buffered data to be written to the underlying device. - - - Gets a value indicating the length of the current stream in bytes. - An indicating the length of the current stream in bytes. - - - Gets the logical path of the passed to the constructor. - A string value indicating the name of the . - - - Gets or sets the position within the current stream. - The current position within the . - - - Reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read. - An array of bytes. When this method returns, the buffer contains the specified byte array with the values between offset and (offset + count - 1) replaced by the bytes read from the current source. - The zero-based byte offset in buffer at which to begin storing the data read from the current stream. - The maximum number of bytes to be read from the current stream. - The total number of bytes read into the buffer. This can be less than the number of bytes requested if that many bytes are not currently available, or zero (0) if the end of the stream has been reached. - The object does not support reading of data. - - - Sets the position within the current stream. - A byte offset relative to the parameter - A value of type indicating the reference point used to obtain the new position - The new position within the current stream. - - - Sets the length of the current stream. - The desired length of the current stream in bytes. - The object does not support reading of data. - - - Gets or sets the transaction context for this object. - The array that was passed to the constructor for this object. - - - Writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written. - An array of bytes. This method copies bytes from to the current stream. - The zero-based byte offset in at which to begin copying bytes to the current stream. - The number of bytes to be written to the current stream. - The object does not support writing of data. - - - \ No newline at end of file + + System.Data.SqlClient + + + + + represents the application workload type when connecting to a server + + + + + Extension methods on the DiagnosticListener class to log SqlCommand data + + + + SqlServer only supports CatalogLocation.Start + + + SqlServer only supports '.' + + + SqlServer only supports '.' + + + + Assert that the supplied object is an instance of a SQL User-Defined Type (UDT). + + Object instance to be tested. + Failed assert message + + This method is only compiled with debug builds, and it a helper method for the GetComValueFromSqlVariant method defined in this class. + + The presence of the SqlUserDefinedTypeAttribute on the object's type + is used to determine if the object is a UDT instance (if present it is a UDT, else it is not). + + + If sqlValue is null. Callers must ensure the object is non-null. + + + + + + Represents the method that will handle the event of a . + + + + + + Validate the enlisted transaction state, taking into consideration the ambient transaction and transaction unbinding mode. + If there is no enlisted transaction, this method is a nop. + + + + This method must be called while holding a lock on the SqlInternalConnection instance, + to ensure we don't accidentally execute after the transaction has completed on a different thread, + causing us to unwittingly execute in auto-commit mode. + + + + When using Explicit transaction unbinding, + verify that the enlisted transaction is active and equal to the current ambient transaction. + + + + When using Implicit transaction unbinding, + verify that the enlisted transaction is active. + If it is not active, and the transaction object has been disposed, unbind from the transaction. + If it is not active and not disposed, throw an exception. + + + + + + Forces the stream to act as if it was closed (i.e. CanRead=false and Read() throws) + This does not actually close the stream, read off the rest of the data or dispose this + + + + + Checks the parameters passed into a Read() method are valid + + + + + + + + Forces the TextReader to act as if it was closed + This does not actually close the stream, read off the rest of the data or dispose this + + + + + Performs the actual reading and converting + NOTE: This assumes that buffer, index and count are all valid, we're not closed (!IsClosed) and that there is data left (IsDataLeft()) + + + + + + + + + Creates a byte array large enough to store all bytes for the characters in the current encoding, then fills it with any leftover bytes + + Number of characters that are to be read + Number of bytes pre-filled by the leftover bytes + A byte array of the correct size, pre-filled with leftover bytes + + + + Decodes the given bytes into characters, and stores the leftover bytes for later use + + Buffer of bytes to decode + Number of bytes to decode from the inBuffer + Buffer to write the characters to + Offset to start writing to outBuffer at + Maximum number of characters to decode + The actual number of characters decoded + + + + True if this TextReader is supposed to be closed + + + + + True if there is a peeked character available + + + + + Checks the parameters passed into a Read() method are valid + + + + + + + + used to block two scenarios if MultiSubnetFailover is true: + * server-provided failover partner - raising SqlException in this case + * connection string with failover partner and MultiSubnetFailover=true - raising argument one in this case with the same message + + + + + gets a message for SNI error (sniError must be valid, non-zero error code) + + + + + This class holds helper methods to escape Microsoft SQL Server identifiers, such as table, schema, database or other names + + + + + Escapes the identifier with square brackets. The input has to be in unescaped form, like the parts received from MultipartIdentifier.ParseMultipartIdentifier. + + name of the identifier, in unescaped form + escapes the name with [], also escapes the last close bracket with double-bracket + + + + Same as above EscapeIdentifier, except that output is written into StringBuilder + + + + + Escape a string to be used inside TSQL literal, such as N'somename' or 'somename' + + + + + Escape a string as a TSQL literal, wrapping it around with single quotes. + Use this method to escape input strings to prevent SQL injection + and to get correct behavior for embedded quotes. + + unescaped string + escaped and quoted literal string + + + + This class holds methods invoked on System.Transactions through reflection for Global Transactions + + + + + Enlists the given IPromotableSinglePhaseNotification and Non-MSDTC Promoter type into a transaction + + The MethodInfo instance to be invoked. Null if the method doesn't exist + + + + Sets the given DistributedTransactionIdentifier for a Transaction instance. + Needs to be invoked when using a Non-MSDTC Promoter type + + The MethodInfo instance to be invoked. Null if the method doesn't exist + + + + Gets the Promoted Token for a Transaction + + The MethodInfo instance to be invoked. Null if the method doesn't exist + + + Class of variables for the Tds connection. + + + + + Checks if the given token is a valid TDS token + + Token to check + True if the token is a valid TDS token, otherwise false + + + + This method skips bytes of a single column value from the media. It supports NBCROW and handles all types of values, including PLP and long + + + + + Struct encapsulating the data to be sent to the server as part of Federated Authentication Feature Extension. + + + + + contains binary data, before using this field check newBinRented to see if you can take the field array or whether you should allocate and copy + + + + + contains binary data, before using this field check newBinRented to see if you can take the field array or whether you should allocate and copy + + + + + If this method returns true, the value is guaranteed to be null. This is not true vice versa: + if the bitmap value is false (if this method returns false), the value can be either null or non-null - no guarantee in this case. + To determine whether it is null or not, read it from the TDS (per NBCROW design spec, for IMAGE/TEXT/NTEXT columns server might send + bitmap = 0, when the actual value is null). + + + + + attempts to change the timout state from the expected state to the target state and if it succeeds + will setup the the stateobject into the timeout expired state + + the state that is the expected current state, state will change only if this is correct + the state that will be changed to if the expected state is correct + any close action to be taken by an async task to avoid deadlock. + boolean value indicating whether the call changed the timeout state + + + + Checks to see if the underlying connection is still alive (used by connection pool resiliency) + NOTE: This is not safe to do on a connection that is currently in use + NOTE: This will mark the connection as broken if it is found to be dead + + If true then an exception will be thrown if the connection is found to be dead, otherwise no exception will be thrown + True if the connection is still alive, otherwise false + + + + Checks to see if the underlying connection is still valid (used by idle connection resiliency - for active connections) + NOTE: This is not safe to do on a connection that is currently in use + NOTE: This will mark the connection as broken if it is found to be dead + + True if the connection is still alive, otherwise false + + + + True if there is at least one error or warning (not counting the pre-attention errors\warnings) + + + + + Adds an error to the error collection + + + + + + Gets the number of errors currently in the error collection + + + + + Adds an warning to the warning collection + + + + + + Gets the number of warnings currently in the warning collection + + + + + Gets the full list of errors and warnings (including the pre-attention ones), then wipes all error and warning lists + + If true, the connection should be broken + An array containing all of the errors and warnings + + + + Stores away current errors and warnings so that an attention can be processed + + + + + Restores errors and warnings that were stored in order to process an attention + + + + + Checks if an error is stored in _error and, if so, throws an error + + + + + Debug Only: Ensures that the TdsParserStateObject has no lingering state and can safely be re-used + + + + + SNI error + + + + + SNI connection handle + + + + + Dispose class + + + + + Set async callbacks + + Receive callback + Send callback + + + + Set buffer size + + Buffer size + + + + Send a packet synchronously + + SNI packet + SNI error code + + + + Send a packet asynchronously + + SNI packet + Whether to dispose package after sending async + Completion callback + SNI error code + + + + Receive a packet synchronously + + SNI packet + Timeout in Milliseconds + SNI error code + + + + Receive a packet asynchronously + + SNI packet + SNI error code + + + + Enable SSL + + + + + Disable SSL + + + + + Check connection status + + SNI error code + + + + Last handle status + + + + + Connection ID + + + + + Test handle for killing underlying connection + + + + + Global SNI settings and status + + + + + Last SNI error + + + + + SNI library status + + + + + Encryption options setting + + + + + SNI MARS connection. Multiple MARS streams will be overlaid on this connection. + + + + + Connection ID + + + + + Constructor + + Lower handle + + + + Start receiving + + + + + + Send a packet synchronously + + SNI packet + SNI error code + + + + Send a packet asynchronously + + SNI packet + Completion callback + SNI error code + + + + Receive a packet asynchronously + + SNI packet + SNI error code + + + + Check SNI handle connection + + SNI error status + + + + Process a receive error + + + + + Process a send completion + + SNI packet + SNI error code + + + + Process a receive completion + + SNI packet + SNI error code + + + + Enable SSL + + + + + Disable SSL + + + + + Test handle for killing underlying connection + + + + + MARS handle + + + + + Dispose object + + + + + Constructor + + MARS connection + MARS session ID + Callback object + true if connection is asynchronous + + + + Send control packet + + SMUX header flags + + + + Generate a packet with SMUX header + + SNI packet + The packet with the SMUx header set. + + + + Send a packet synchronously + + SNI packet + SNI error code + + + + Send packet asynchronously + + SNI packet + Completion callback + SNI error code + + + + Send pending packets + + SNI error code + + + + Send a packet asynchronously + + SNI packet + Whether to dispose packet after sending async + Completion callback + SNI error code + + + + Receive a packet asynchronously + + SNI packet + SNI error code + + + + Handle receive error + + + + + Handle send completion + + SNI packet + SNI error code + + + + Handle SMUX acknowledgement + + Send highwater mark + + + + Handle receive completion + + SNI packet + SMUX header + + + + Send ACK if we've hit highwater threshold + + + + + Receive a packet synchronously + + SNI packet + Timeout in Milliseconds + SNI error code + + + + Check SNI handle connection + + SNI error status + + + + Set async callbacks + + Receive callback + Send callback + + + + Set buffer size + + Buffer size + + + + Enable SSL + + + + + Disable SSL + + + + + Test handle for killing underlying connection + + + + + Mars queued packet + + + + + Constructor + + SNI packet + Completion callback + + + + SNI packet + + + + + Completion callback + + + + + Named Pipe connection handle + + + + + Validate server certificate + + Sender object + X.509 certificate + X.509 chain + Policy errors + true if valid + + + + Set buffer size + + Buffer size + + + + Test handle for killing underlying connection + + + + + Dispose Packet data + + + + + Length of data left to process + + + + + Length of data + + + + + Packet validity + + + + + Set async completion callback + + Completion callback + + + + Invoke the completion callback + + SNI error + + + + Allocate space for data + + Length of header + Length of byte array to be allocated + + + + Read packet data into a buffer without removing it from the packet + + Buffer + Number of bytes read from the packet into the buffer + + + + Take data from another packet + + Packet + Data to take + Amount of data taken + + + + Append data + + Data + Size + + + + Read data from the packet into the buffer at dataOffset for zize and then remove that data from the packet + + Buffer + Data offset to write data at + Number of bytes to read from the packet into the buffer + + + + + Release packet + + + + + Read data from a stream asynchronously + + Stream to read from + Completion callback + + + + Read data from a stream synchronously + + Stream to read from + + + + Write data to a stream asynchronously + + Stream to write to + SNI Asynchronous Callback + SNI provider identifier + Bool flag to decide whether or not to dispose after Write Async operation + + + + Write data to a stream synchronously + + Stream to write to + + + + Managed SNI proxy implementation. Contains many SNI entry points used by SqlClient. + + + + + Terminate SNI + + + + + Enable SSL on a connection + + Connection handle + SSL options + SNI error code + + + + Disable SSL on a connection + + Connection handle + SNI error code + + + + Generate SSPI context + + SSPI client context status + Receive buffer + Send buffer + Service Principal Name buffer + SNI error code + + + + Initialize SSPI + + Max length of SSPI packet + SNI error code + + + + Set connection buffer size + + SNI handle + Buffer size + SNI error code + + + + Copies data in SNIPacket to given byte array parameter + + SNIPacket object containing data packets + Destination byte array where data packets are copied to + Length of data packets + SNI error status + + + + Read synchronously + + SNI handle + SNI packet + Timeout + SNI error status + + + + Get SNI connection ID + + SNI handle + Client connection ID + SNI error status + + + + Send a packet + + SNI handle + SNI packet + true if synchronous, false if asynchronous + SNI error status + + + + Create a SNI connection handle + + Asynchronous I/O callback object + Full server name from connection string + Ignore open timeout + Timer expiration + Instance name + SPN + Flush packet cache + Asynchronous connection + Attempt parallel connects + Whether integrated security is enabled + SNI handle + + + + Creates an SNITCPHandle object + + Data source + Timer expiration + Asynchronous I/O callback object + Should MultiSubnetFailover be used + SNITCPHandle + + + + Creates an SNINpHandle object + + Data source + Timer expiration + Asynchronous I/O callback object + Should MultiSubnetFailover be used. Only returns an error for named pipes. + SNINpHandle + + + + Read packet asynchronously + + SNI handle + Packet + SNI error status + + + + Set packet data + + SNI packet + Data + Length + + + + Release packet + + SNI packet + + + + Check SNI handle connection + + + SNI error status + + + + Get last SNI error on this thread + + + + + + Gets the Local db Named pipe data source if the input is a localDB server. + + The data source + Set true when an error occurred while getting LocalDB up + + + + + Provides the HostName of the server to connect to for TCP protocol. + This information is also used for finding the SPN of SqlServer + + + + + Provides the port on which the TCP connection should be made if one was specified in Data Source + + + + + Provides the inferred Instance Name from Server Data Source + + + + + Provides the pipe name in case of Named Pipes + + + + + Provides the HostName to connect to in case of Named pipes Data Source + + + + + TCP connection handle + + + + + Dispose object + + + + + Connection ID + + + + + Connection status + + + + + Constructor + + Server name + TCP port number + Connection timer expiration + Callback object + Open in parallel + + + + Enable SSL + + + + + Disable SSL + + + + + Validate server certificate callback + + Sender object + X.509 certificate + X.509 chain + Policy errors + True if certificate is valid + + + + Set buffer size + + Buffer size + + + + Send a packet synchronously + + SNI packet + SNI error code + + + + Receive a packet synchronously + + SNI packet + Timeout in Milliseconds + SNI error code + + + + Set async callbacks + + Receive callback + Send callback + + + + Send a packet asynchronously + + SNI packet + Whether to dispose packet after sending async + Completion callback + SNI error code + + + + Receive a packet asynchronously + + SNI packet + SNI error code + + + + Check SNI handle connection + + SNI error status + + + + Test handle for killing underlying connection + + + + + SSL encapsulated over TDS transport. During SSL handshake, SSL packets are + transported in TDS packet type 0x12. Once SSL handshake has completed, SSL + packets are sent transparently. + + + + + Constructor + + Underlying stream + + + + Finish SSL handshake. Stop encapsulating in TDS. + + + + + Read buffer + + Buffer + Offset + Byte count + Bytes read + + + + Write Buffer + + + + + + + + Write Buffer Asynchronosly + + + + + + + + + + Read Buffer Asynchronosly + + + + + + + + + + Read Internal is called synchronosly when async is false + + + + + The internal write method calls Sync APIs when Async flag is false + + + + + Set stream length. + + Length + + + + Flush stream + + + + + Get/set stream position + + + + + Seek in stream + + Offset + Origin + Position + + + + Check if stream can be read from + + + + + Check if stream can be written to + + + + + Check if stream can be seeked + + + + + Get stream length + + + + + SNI Asynchronous callback + + SNI packet + SNI error code + + + + SNI provider identifiers + + + + + SMUX packet header + + + + + SMUX packet flags + + + + + Validate server certificate callback for SSL + + Server that client is expecting to connect to + Sender object + X.509 certificate + X.509 chain + Policy errors + True if certificate is valid + + + + Sets last error encountered for SNI + + SNI provider + Native error code + SNI error code + Error message + + + + + Sets last error encountered for SNI + + SNI provider + SNI error code + SNI Exception + + + + + Sets last error encountered for SNI + + SNI error + + + + + Finds instance port number for given instance name. + + SQL Sever Browser hostname + instance name to find port number + port number for given instance name + + + + Creates instance port lookup request (CLNT_UCAST_INST) for given instance name. + + instance name to lookup port + Byte array of instance port lookup request (CLNT_UCAST_INST) + + + + Finds DAC port for given instance name. + + SQL Sever Browser hostname + instance name to lookup DAC port + DAC port for given instance name + + + + Creates DAC port lookup request (CLNT_UCAST_DAC) for given instance name. + + instance name to lookup DAC port + Byte array of DAC port lookup request (CLNT_UCAST_DAC) + + + + Sends request to server, and receives response from server by UDP. + + UDP server hostname + UDP server port + request packet + response packet from UDP server + + + + Loads the User Instance dll. + + + + + Retrieves the part of the sqlUserInstance.dll from the registry + + In case the dll path is not found, the error is set here. + + + + + This class defines the data structure for ActivityId used for correlated tracing between client (bid trace event) and server (XEvent). + It also includes all the APIs used to access the ActivityId. Note: ActivityId is thread based which is stored in TLS. + + + + + Get the current ActivityId + + + + + Increment the sequence number and generate the new ActivityId + + ActivityId + + + + This method attempts to convert the given value tp ApplicationIntent enum. The algorithm is: + * if the value is from type string, it will be matched against ApplicationIntent enum names only, using ordinal, case-insensitive comparer + * if the value is from type ApplicationIntent, it will be used as is + * if the value is from integral type (SByte, Int16, Int32, Int64, Byte, UInt16, UInt32, or UInt64), it will be converted to enum + * if the value is another enum or any other type, it will be blocked with an appropriate ArgumentException + + in any case above, if the converted value is out of valid range, the method raises ArgumentOutOfRangeException. + + application intent value in the valid range + + + + This method attempts to convert the given value to a PoolBlockingPeriod enum. The algorithm is: + * if the value is from type string, it will be matched against PoolBlockingPeriod enum names only, using ordinal, case-insensitive comparer + * if the value is from type PoolBlockingPeriod, it will be used as is + * if the value is from integral type (SByte, Int16, Int32, Int64, Byte, UInt16, UInt32, or UInt64), it will be converted to enum + * if the value is another enum or any other type, it will be blocked with an appropriate ArgumentException + + in any case above, if the conerted value is out of valid range, the method raises ArgumentOutOfRangeException. + + PoolBlockingPeriod value in the valid range + + + Ensure that this connection cannot be put back into the pool. + + + The default implementation is for the open connection objects, and + it simply throws. Our private closed-state connection objects + override this and do the correct thing. + + + + When overridden in a derived class, will check if the underlying connection is still actually alive + + If true an exception will be thrown if the connection is dead instead of returning true\false + (this allows the caller to have the real reason that the connection is not alive (e.g. network error, etc)) + True if the connection is still alive, otherwise false (If not overridden, then always true) + + + + Get boolean value that indicates whether the enlisted transaction has been disposed. + + + True if there is an enlisted transaction, and it has been disposed. + False if there is an enlisted transaction that has not been disposed, or if the transaction reference is null. + + + This method must be called while holding a lock on the DbConnectionInternal instance. + + + + + Creates a new connection to replace an existing connection + + Outer connection that currently owns + Options used to create the new connection + Inner connection that will be replaced + A new inner connection that is attached to the + + + + This type provides workarounds for the separation between System.Data.Common + and System.Data.SqlClient. The latter wants to access internal members of the former, and + this class provides ways to do that. We must review and update this implementation any time the + implementation of the corresponding types in System.Data.Common change. + + + + + Constructs a SqlMoney from a long value without scaling. The ignored parameter exists + only to distinguish this constructor from the constructor that takes a long. + Used only internally. + + + + Invalid index {0} for this {1} with Count={2}. + + + An {0} with {1} '{2}' is not contained by this {3}. + + + The {0} only accepts non-null {1} type objects, not {2} objects. + + + The {0} is already contained by another {1}. + + + The {0} only accepts non-null {1} type objects. + + + Attempted to remove an {0} that is not contained by this {1}. + + + The connection was not closed. {0} + + + The connection's current state is closed. + + + The connection's current state is connecting. + + + The connection's current state is open. + + + The connection's current state is executing. + + + The connection's current state is fetching. + + + The connection's current state: {0}. + + + Format of the initialization string does not conform to specification starting at index {0}. + + + Invalid attempt to call {0} when reader is closed. + + + Internal DbConnection Error: {0} + + + The {0} enumeration value, {1}, is invalid. + + + The {0} enumeration value, {1}, is not supported by the {2} method. + + + Invalid parameter Offset value '{0}'. The value must be greater than or equal to 0. + + + Connection currently has transaction enlisted. Finish current transaction and retry. + + + Cannot enlist in the transaction because a local transaction is in progress on the connection. Finish local transaction and retry. + + + The ConnectionString property has not been initialized. + + + Not allowed to change the '{0}' property. {1} + + + Can not start another operation while there is an asynchronous operation pending. + + + Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached. + + + Timeout attempting to open the connection. The time period elapsed prior to attempting to open the connection has been exceeded. This may have occurred because of too many simultaneous non-pooled connection attempts. + + + The only acceptable value for the property '{0}' is '{1}'. + + + The acceptable values for the property '{0}' are '{1}' or '{2}'. + + + Specified QuotePrefix and QuoteSuffix values do not match. + + + Destination array is not long enough to copy all the items in the collection. Check array index and length. + + + Only single dimensional arrays are supported for the requested action. + + + Cannot remove the specified item because it was not found in the specified Collection. + + + Non-negative number required. + + + Offset and length were out of bounds for the array or count is greater than the number of elements from index to the end of the source collection. + + + Cannot convert object of type '{0}' to object of type '{1}'. + + + Expecting argument of type {1}, but received type {0}. + + + {0} DeriveParameters only supports CommandType.StoredProcedure, not CommandType. {1}. + + + The stored procedure '{0}' doesn't exist. + + + Invalid value for key '{0}'. + + + Use of key '{0}' requires the key '{1}' to be present. + + + The value's length for key '{0}' exceeds it's limit of '{1}'. + + + Keyword not supported: '{0}'. + + + Internal .NET Framework Data Provider error {0}. + + + {0} '{1}'. + + + {0} '{1}', incorrect usage of quotes. + + + {0} '{1}', the current limit of '{2}' is insufficient. + + + SqlCommand.DeriveParameters failed because the SqlCommand.CommandText property value is an invalid multipart name + + + Batching updates is not supported on the context connection. + + + SqlBulkCopy.WriteToServer failed because the SqlBulkCopy.DestinationTableName is an invalid multipart name + + + Processing of results from SQL Server failed because of an invalid multipart name + + + SqlParameter.TypeName is an invalid multipart name + + + Connecting to a mirrored SQL Server instance using the MultiSubnetFailover connection option is not supported. + + + The {0} enumeration value, {1}, is not supported by the .NET Framework SqlClient Data Provider. + + + {0}: CommandText property has not been initialized + + + {0}: Connection property has not been initialized. + + + {0} requires an open and available Connection. {1} + + + The transaction is either not associated with the current connection or has been completed. + + + {0} requires the command to have a transaction when the connection assigned to the command is in a pending local transaction. The Transaction property of the command has not been initialized. + + + There is already an open DataReader associated with this Command which must be closed first. + + + The method '{0}' cannot be called more than once for the same execution. + + + Invalid CommandTimeout value {0}; the value must be >= 0. + + + {1}[{0}]: the Size property has an invalid size of 0. + + + {0}.Prepare method requires all parameters to have an explicitly set type. + + + {0}.Prepare method requires all variable length parameters to have an explicitly set non-zero Size. + + + {0}.Prepare method requires parameters of type '{1}' have an explicitly set Precision and Scale. + + + Mismatched end method call for asyncResult. Expected call to {0} but {1} was called instead. + + + Invalid operation. The connection is closed. + + + The connection has been disabled. + + + Database cannot be null, the empty string, or string of only whitespace. + + + Invalid source buffer (size of {0}) offset: {1} + + + Invalid destination buffer (size of {0}) offset: {1} + + + Invalid attempt to {0} when stream is closed. + + + Specified SeekOrigin value is invalid. + + + Invalid attempt to read from column ordinal '{0}'. With CommandBehavior.SequentialAccess, you may only read from column ordinal '{1}' or greater. + + + The parameter data type of {0} is invalid. + + + No mapping exists from object type {0} to a known managed provider native type. + + + Unable to handle an unknown TypeCode {0} returned by Type {1}. + + + No mapping exists from DbType {0} to a known {1}. + + + The version of SQL Server in use does not support datatype '{0}'. + + + Parameter value '{0}' is out of range. + + + Specified parameter name '{0}' is not valid. + + + Invalid parameter Size value '{0}'. The value must be greater than or equal to 0. + + + Invalid value for argument '{0}'. The value must be greater than or equal to 0. + + + Invalid value for this metadata. + + + Failed to convert parameter value from a {0} to a {1}. + + + {0} does not support parallel transactions. + + + This {0} has completed; it is no longer usable. + + + Specified length '{0}' is out of range. + + + Invalid {2} attempt at dataIndex '{0}'. With CommandBehavior.SequentialAccess, you may only read from dataIndex '{1}' or greater. + + + Invalid min or max pool size values, min pool size cannot be greater than the max pool size. + + + Invalid 'Packet Size'. The value must be an integer >= 512 and <= 32768. + + + Invalid transaction or invalid name for a point at which to save within the transaction. + + + User Instance and Failover are not compatible options. Please choose only one of the two in the connection string. + + + The instance of SQL Server you attempted to connect to requires encryption but this machine does not support it. + + + The instance of SQL Server you attempted to connect to does not support encryption. + + + Unsupported SQL Server version. The .NET Framework SqlClient Data Provider can only be used with SQL Server versions 7.0 and later. + + + Cannot create normalizer for '{0}'. + + + {0} cannot be changed while async operation is in progress. + + + Instance failure. + + + Server {0}, database {1} is not configured for database mirroring. + + + The connection does not support MultipleActiveResultSets. + + + SSE Instance re-direction is not supported for non-local user instances. + + + The command execution cannot proceed due to a pending asynchronous operation already in progress. + + + Invalid command sent to ExecuteXmlReader. The command must return an Xml result. + + + Invalid 3 part name format for TypeName. + + + The length of the parameter '{0}' exceeds the limit of 128 characters. + + + Precision value '{0}' is either less than 0 or greater than the maximum allowed precision of 38. + + + Scale value '{0}' is either less than 0 or greater than the maximum allowed scale of 38. + + + Scale value '{0}' is either less than 0 or greater than the maximum allowed scale of 7. + + + Parameter '{0}' exceeds the size limit for the sql_variant datatype. + + + The {0} type parameter '{1}' must have a valid type name. + + + Invalid internal packet size: + + + The SQL Server instance returned an invalid or unsupported protocol version during login negotiation. + + + Invalid Packet Size. + + + Internal connection fatal error. + + + The connection cannot be used because there is an ongoing operation that must be finished. + + + Memory allocation for internal connection failed. + + + SqlDbType.SmallDateTime overflow. Value '{0}' is out of range. Must be between 1/1/1900 12:00:00 AM and 6/6/2079 11:59:59 PM. + + + SqlDbType.Time overflow. Value '{0}' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999. + + + SqlDbType.SmallMoney overflow. Value '{0}' is out of range. Must be between -214,748.3648 and 214,748.3647. + + + The Collation specified by SQL Server is not supported. + + + Operation cancelled by user. + + + A severe error occurred on the current command. The results, if any, should be discarded. + + + Failed to generate SSPI context. + + + Cannot authenticate using Kerberos. Ensure Kerberos has been initialized on the client with 'kinit' and a Service Principal Name has been registered for the SQL Server to allow Kerberos authentication. + + + Cannot connect to SQL Server Browser. Ensure SQL Server Browser has been started. + + + Invalid SSPI packet size. + + + Cannot initialize SSPI package. + + + Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding. + + + Connection Timeout Expired. The timeout period elapsed at the start of the pre-login phase. This could be because of insufficient time provided for connection timeout. + + + Connection Timeout Expired. The timeout period elapsed while attempting to create and initialize a socket to the server. This could be either because the server was unreachable or unable to respond back in time. + + + Connection Timeout Expired. The timeout period elapsed while making a pre-login handshake request. This could be because the server was unable to respond back in time. + + + Connection Timeout Expired. The timeout period elapsed while attempting to consume the pre-login handshake acknowledgement. This could be because the pre-login handshake failed or the server was unable to respond back in time. + + + Connection Timeout Expired. The timeout period elapsed at the start of the login phase. This could be because of insufficient time provided for connection timeout. + + + Connection Timeout Expired. The timeout period elapsed while attempting to authenticate the login. This could be because the server failed to authenticate the user or the server was unable to respond back in time. + + + Connection Timeout Expired. The timeout period elapsed during the post-login phase. The connection could have timed out while waiting for server to complete the login process and respond; Or it could have timed out while attempting to create multiple act ... + + + This failure occurred while attempting to connect to the {0} server. + + + This failure occurred while attempting to connect to the routing destination. The duration spent while attempting to connect to the original server was - [Pre-Login] initialization={0}; handshake={1}; [Login] initialization={2}; authentication={3}; [Post-L ... + + + The duration spent while attempting to connect to this server was - [Pre-Login] initialization={0}; + + + The duration spent while attempting to connect to this server was - [Pre-Login] initialization={0}; handshake={1}; + + + The duration spent while attempting to connect to this server was - [Pre-Login] initialization={0}; handshake={1}; [Login] initialization={2}; + + + The duration spent while attempting to connect to this server was - [Pre-Login] initialization={0}; handshake={1}; [Login] initialization={2}; authentication={3}; + + + The duration spent while attempting to connect to this server was - [Pre-Login] initialization={0}; handshake={1}; [Login] initialization={2}; authentication={3}; [Post-Login] complete={4}; + + + A user instance was requested in the connection string but the server specified does not support this option. + + + Invalid attempt to read when no data is present. + + + Invalid attempt to GetBytes on column '{0}'. The GetBytes function can only be used on columns of type Text, NText, or Image. + + + Invalid attempt to GetChars on column '{0}'. The GetChars function can only be used on columns of type Text, NText, Xml, VarChar or NVarChar. + + + Invalid attempt to GetStream on column '{0}'. The GetStream function can only be used on columns of type Binary, Image, Udt or VarBinary. + + + Invalid attempt to GetTextReader on column '{0}'. The GetTextReader function can only be used on columns of type Char, NChar, NText, NVarChar, Text or VarChar. + + + Invalid attempt to GetXmlReader on column '{0}'. The GetXmlReader function can only be used on columns of type Xml. + + + Failure while attempting to promote transaction. + + + Buffer offset '{1}' plus the bytes available '{0}' is greater than the length of the passed in buffer. + + + Data length '{0}' is less than 0. + + + The mapped collection is in use and cannot be accessed at this time; + + + Mappings must be either all name or all ordinal based. + + + The given value of type {0} from the data source cannot be converted to type {1} of the specified target column. + + + The given ColumnMapping does not match up with any column in the source or destination. + + + The given ColumnName '{0}' does not match up with any column in data source. + + + String or binary data would be truncated. + + + Timeout Value '{0}' is less than 0. + + + Value cannot be converted to SqlVariant. + + + Unexpected existing transaction. + + + Failed to obtain column collation information for the destination table. If the table is not in the current database the name must be qualified using the database name (e.g. [mydb]..[mytable](e.g. [mydb]..[mytable]); this also applies to temporary-tables ( ... + + + Must not specify SqlBulkCopyOption.UseInternalTransaction and pass an external Transaction at the same time. + + + Function must not be called during event. + + + The DestinationTableName property must be set before calling this method. + + + Cannot access destination table '{0}'. + + + Column '{0}' does not allow DBNull.Value. + + + The locale id '{0}' of the source column '{1}' and the locale id '{2}' of the destination column '{3}' do not match. + + + Attempt to invoke bulk copy on an object that has a pending operation. + + + Unable to get the address of the distributed transaction coordinator for the server, from the server. Is DTC enabled on the server? + + + The requested operation cannot be completed because the connection has been broken. + + + Open result count exceeded. + + + The Stream does not support writing. + + + The Stream does not support reading. + + + The Stream does not support seeking. + + + ClientConnectionId:{0} + + + Error Number:{0},State:{1},Class:{2} + + + ClientConnectionId before routing:{0} + + + Routing Destination:{0} + + + The currently loaded System.Transactions.dll does not support Global Transactions. + + + Null + + + Message + + + Arithmetic Overflow. + + + Divide by zero error encountered. + + + Data is Null. This method or property cannot be called on Null values. + + + Numeric arithmetic causes truncation. + + + SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. + + + Two strings to be concatenated have different collation. + + + Two strings to be compared have different collation. + + + Invalid flag value. + + + Conversion from SqlDecimal to Decimal overflows. + + + Conversion overflows. + + + Invalid SqlDateTime. + + + A time zone was specified. SqlDateTime does not support time zones. + + + Invalid array size. + + + Invalid numeric precision/scale. + + + The input wasn't in a correct format. + + + An error occurred while reading. + + + Data returned is larger than 2Gb in size. Use SequentialAccess command behavior in order to get all of the data. + + + SQL Type has not been loaded with data. + + + SQL Type has already been loaded with data. + + + Invalid attempt to access a closed XmlReader. + + + Invalid attempt to call {0} when the stream is closed. + + + Invalid attempt to call {0} when the stream non-writable. + + + Invalid attempt to call {0} when the stream non-readable. + + + Invalid attempt to call {0} when the stream is non-seekable. + + + Subclass did not override a required method. + + + no UDT attribute + + + Specified type is not registered on the target server. {0}. + + + Internal Error + + + Operation aborted. + + + Operation aborted due to an exception (see InnerException for details). + + + The transaction associated with the current connection has completed but has not been disposed. The transaction must be disposed before the connection can be used to execute SQL statements. + + + ParameterDirection '{0}' specified for parameter '{1}' is not supported. Table-valued parameters only support ParameterDirection.Input. + + + DBNull value for parameter '{0}' is not supported. Table-valued parameters cannot be DBNull. + + + TypeName specified for parameter '{0}'. TypeName must only be set for Structured parameters. + + + DateType column for field '{0}' in schema table is null. DataType must be non-null. + + + Invalid column ordinals in schema table. ColumnOrdinals, if present, must not have duplicates or gaps. + + + Metadata for field '{0}' of record '{1}' did not match the original record's metadata. + + + Number of fields in record '{0}' does not match the number in the original record. + + + Global Transactions are not enabled for this Azure SQL Database. Please contact Azure SQL Database support for assistance. + + + Unrecognized System.Transactions.IsolationLevel enumeration value: {0}. + + + This SqlCommand object is already associated with another SqlDependency object. + + + The SQL Server Service Broker for the current database is not enabled, and as a result query notifications are not supported. Please enable the Service Broker for this database if you wish to use notifications. + + + When using SqlDependency without providing an options value, SqlDependency.Start() must be called prior to execution of a command added to the SqlDependency instance. + + + When using SqlDependency without providing an options value, SqlDependency.Start() must be called for each server that is being executed against. + + + SqlDependency.Start has been called for the server the command is executing against more than once, but there is no matching server/user/database Start() call for current command. + + + SqlDependency.OnChange does not support multiple event registrations for the same delegate. + + + No SqlDependency exists for the key. + + + Timeout specified is invalid. Timeout cannot be < 0. + + + SqlDependency does not support calling Start() with different connection strings having the same server, user, and database in the same app domain. + + + The dbType {0} is invalid for this constructor. + + + The name is too long. + + + The sort order and ordinal must either both be specified, or neither should be specified (SortOrder.Unspecified and -1). The values given were: order = {0}, ordinal = {1}. + + + The type of column '{0}' is not supported. The type is '{1}' + + + There are not enough fields in the Structured type. Structured types must have at least one field. + + + The sort ordinal {0} was specified twice. + + + The sort ordinal {0} was not specified. + + + The sort ordinal {0} on field {1} exceeds the total number of fields. + + + range: 0-8000 + + + unexpected error encountered in SqlClient data provider. {0} + + + UdtTypeName property must be set only for UDT parameters. + + + UdtTypeName property must be set for UDT parameters. + + + '{0}' is an invalid user defined type, reason: {1}. + + + SqlParameter.UdtTypeName is an invalid multipart name + + + Invalid 3 part name format for UdtTypeName. + + + There are no records in the SqlDataRecord enumeration. To send a table-valued parameter with no rows, use a null reference for the value instead. + + + I/O Error detected in read/write operation + + + Connection was terminated + + + Asynchronous operations not supported + + + Invalid parameter(s) found + + + Unsupported protocol specified + + + Invalid connection found when setting up new session protocol + + + Protocol not supported + + + Associating port with I/O completion mechanism failed + + + Timeout error + + + No server name supplied + + + TerminateListener() has been called + + + Win9x not supported + + + Function not supported + + + Shared-Memory heap error + + + Cannot find an ip/ipv6 type address to connect + + + Connection has been closed by peer + + + Physical connection is not usable + + + Connection has been closed + + + Encryption is enforced but there is no valid certificate + + + Couldn't load library + + + Cannot open a new thread in server process + + + Cannot post event to completion port + + + Connection string is not valid + + + Error Locating Server/Instance Specified + + + Error getting enabled protocols list from registry + + + Server doesn't support requested protocol + + + Shared Memory is not supported for clustered server connectivity + + + Invalid attempt bind to shared memory segment + + + Encryption(ssl/tls) handshake failed + + + Packet size too large for SSL Encrypt/Decrypt operations + + + SSRP error + + + Could not connect to the Shared Memory pipe + + + An internal exception was caught + + + The Shared Memory dll used to connect to SQL Server 2000 was not found + + + The SQL Server 2000 Shared Memory client dll appears to be invalid/corrupted + + + Cannot open a Shared Memory connection to SQL Server 2000 + + + Shared memory connectivity to SQL Server 2000 is either disabled or not available on this machine + + + Could not open a connection to SQL Server + + + Cannot open a Shared Memory connection to a remote SQL server + + + Could not establish dedicated administrator connection (DAC) on default port. Make sure that DAC is enabled + + + An error occurred while obtaining the dedicated administrator connection (DAC) port. Make sure that SQL Browser is running, or check the error log for the port number + + + Could not compose Service Principal Name (SPN) for Windows Integrated Authentication. Possible causes are server(s) incorrectly specified to connection API calls, Domain Name System (DNS) lookup failure or memory shortage + + + Connecting with the MultiSubnetFailover connection option to a SQL Server instance configured with more than 64 IP addresses is not supported. + + + Connecting to a named SQL Server instance using the MultiSubnetFailover connection option is not supported. + + + Connecting to a SQL Server instance using the MultiSubnetFailover connection option is only supported when using the TCP protocol. + + + Local Database Runtime error occurred. + + + An instance name was not specified while connecting to a Local Database Runtime. Specify an instance name in the format (localdb)\instance_name. + + + Unable to locate a Local Database Runtime installation. Verify that SQL Server Express is properly installed and that the Local Database Runtime feature is enabled. + + + Invalid Local Database Runtime registry configuration found. Verify that SQL Server Express is properly installed. + + + Unable to locate the registry entry for SQLUserInstance.dll file path. Verify that the Local Database Runtime feature of SQL Server Express is properly installed. + + + Registry value contains an invalid SQLUserInstance.dll file path. Verify that the Local Database Runtime feature of SQL Server Express is properly installed. + + + Unable to load the SQLUserInstance.dll from the location specified in the registry. Verify that the Local Database Runtime feature of SQL Server Express is properly installed. + + + Invalid SQLUserInstance.dll found at the location specified in the registry. Verify that the Local Database Runtime feature of SQL Server Express is properly installed. + + + A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. + + + The client was unable to establish a connection because of an error during connection initialization process before login. Possible causes include the following: the client tried to connect to an unsupported version of SQL Server; the server was too busy ... + + + A connection was successfully established with the server, but then an error occurred during the pre-login handshake. + + + A connection was successfully established with the server, but then an error occurred when obtaining the security/SSPI context information for integrated security login. + + + A connection was successfully established with the server, but then an error occurred during the login process. + + + Connection open and login was successful, but then an error occurred while enabling MARS for this connection. + + + Connection open and login was successful, but then an error occurred while enlisting the connection into the current distributed transaction. + + + Failed to establish a MARS session in preparation to send the request to the server. + + + A transport-level error has occurred when sending the request to the server. + + + A transport-level error has occurred when receiving results from the server. + + + A transport-level error has occurred during connection clean-up. + + + A transport-level error has occurred while sending information to the server. + + + A transport-level error has occurred during SSPI handshake. + + + Local Database Runtime: Cannot load SQLUserInstance.dll. + + + Invalid SQLUserInstance.dll found at the location specified in the registry. Verify that the Local Database Runtime feature of SQL Server Express is properly installed. + + + Cannot obtain Local Database Runtime error message + + + Two or more redirections have occurred. Only one redirection per login is allowed. + + + Connecting to a mirrored SQL Server instance using the ApplicationIntent ReadOnly connection option is not supported. + + + Unexpected routing information received. + + + Invalid routing information received. + + + Server provided routing information, but timeout already expired. + + + Invalid ConnectRetryCount value (should be 0-255). + + + Invalid ConnectRetryInterval value (should be 1-60). + + + Next reconnection attempt will exceed query timeout. Reconnection was terminated. + + + The server did not preserve SSL encryption during a recovery attempt, connection recovery is not possible. + + + The server did not preserve the exact client TDS version requested during a recovery attempt, connection recovery is not possible. + + + The connection is broken and recovery is not possible. The client driver attempted to recover the connection one or more times and all attempts failed. Increase the value of ConnectRetryCount to increase the number of recovery attempts. + + + The connection is broken and recovery is not possible. The connection is marked by the server as unrecoverable. No attempt was made to restore the connection. + + + The connection is broken and recovery is not possible. The connection is marked by the client driver as unrecoverable. No attempt was made to restore the connection. + + + The server did not acknowledge a recovery attempt, connection recovery is not possible. + + + The keyword '{0}' is not supported on this platform. + + + The server is attempting to use a feature that is not supported on this platform. + + + Received an unsupported token '{0}' while reading data from the server. + + + Type {0} is not supported on this platform. + + + The keyword 'Network Library' is not supported on this platform, prefix the 'Data Source' with the protocol desired instead ('tcp:' for a TCP connection, or 'np:' for a Named Pipe connection). + + + HTTP Provider + + + Named Pipes Provider + + + Session Provider + + + Sign Provider + + + Shared Memory Provider + + + SMux Provider + + + SSL Provider + + + TCP Provider + + + + + + SQL Network Interfaces + + + .database.windows.net + + + .database.cloudapi.de + + + .database.usgovcloudapi.net + + + .database.chinacloudapi.cn + + + GSSAPI operation failed with error - {0} ({1}). + + + GSSAPI operation failed with status: {0} (Minor status: {1}). + + + GSSAPI operation failed with error - {0}. + + + GSSAPI operation failed with status: {0}. + + + NTLM authentication requires the GSSAPI plugin 'gss-ntlmssp'. + + + NTLM authentication is not possible with default credentials on this platform. + + + Target name should be non empty if default credentials are passed. + + + Server implementation is not supported + + + Requested protection level is not supported with the GSSAPI implementation currently installed. + + + Insufficient buffer space. Required: {0} Actual: {1}. + + + Protocol error: A received message contains a valid signature but it was not encrypted as required by the effective Protection Level. + + + The requested security package is not supported. + + + {0} failed with error {1}. + + + This method is not implemented by this class. + + + {0} returned {1}. + + + The specified value is not valid in the '{0}' enumeration. + + + '{0}' is not a supported handle type. + + + LocalDB is not supported on this platform. + + + System.Data.SqlClient is not supported on this platform. + + + Precision '{0}' required to send all values in column '{1}' exceeds the maximum supported precision '{2}'. The values must all fit in a single precision. + + + The size of column '{0}' is not supported. The size is {1}. + + + The metadata XML is invalid. The {1} column of the {0} collection must contain a non-empty string. + + + There are multiple collections named '{0}'. + + + The metadata XML is invalid. The {0} collection must contain a {1} column and it must be a string column. + + + The metadata XML is invalid. + + + The schema table contains no columns. + + + Unable to build the '{0}' collection because execution of the SQL query failed. See the inner exception for details. + + + More restrictions were provided than the requested schema ('{0}') supports. + + + The collection '{0}' is missing from the metadata XML. + + + The requested collection ({0}) is not defined. + + + The requested collection ({0}) is not supported by this version of the provider. + + + One or more of the required columns of the restrictions collection is missing. + + + A restriction exists for which there is no matching row in the restrictions collection. + + + The DataSourceInformation table must contain exactly one row. + + + One of the required DataSourceInformation tables columns is missing. + + + The collection name '{0}' matches at least two collections with the same name but with different case, but does not match any of them exactly. + + + Unable to build schema collection '{0}'; + + + The length of argument '{0}' exceeds its limit of '{1}'. + + + {0} must be marked as read only. + + + Cannot use Credential with UserID, UID, Password, or PWD connection string keywords. + + + Cannot use Credential with Integrated Security connection string keyword. + + + The '{0}' argument must not be null or empty. + + + ChangePassword can only be used with SQL authentication, not with integrated security. + + + ChangePassword requires SQL Server 9.0 or later. + + + The keyword '{0}' must not be specified in the connectionString argument to ChangePassword. + + + Internal connection fatal error. Error state: {0}. + + + Internal connection fatal error. Error state: {0}, Value: {1}. + + + Cannot set the AccessToken property if the 'Integrated Security' connection string keyword has been set to 'true' or 'SSPI'. + + + Cannot set the AccessToken property if 'UserID', 'UID', 'Password', or 'PWD' has been specified in connection string. + + + Cannot set the Credential property if the AccessToken property is already set. + + + Internal connection fatal error. Error state: {0}, Feature Id: {1}. + + + Internal connection fatal error. Error state: {0}, Authentication Library Type: {1}. + + + The path name is not valid. + + + The path name is invalid or does not point to a disk file. + + + The process cannot access the file specified because it has been opened in another transaction. + + + An invalid parameter was passed to the function. + + + SqlFileStream is not supported on this platform. + + + + Provides support for efficiently using Tasks to implement the APM (Begin/End) pattern. + + + + + Marshals the Task as an IAsyncResult, using the supplied callback and state + to implement the APM pattern. + + The Task to be marshaled. + The callback to be invoked upon completion. + The state to be stored in the IAsyncResult. + An IAsyncResult to represent the task's asynchronous operation. + + + Processes an IAsyncResult returned by Begin. + The IAsyncResult to unwrap. + + + Processes an IAsyncResult returned by Begin. + The IAsyncResult to unwrap. + + + Invokes the callback asynchronously when the task has completed. + The Task to await. + The callback to invoke when the Task completes. + The Task used as the IAsyncResult. + + + + Provides a simple IAsyncResult that wraps a Task. This, in effect, allows + for overriding what's seen for the CompletedSynchronously and AsyncState values. + + + + The wrapped Task. + + + The new AsyncState value. + + + The new CompletedSynchronously value. + + + Initializes the IAsyncResult with the Task to wrap and the overriding AsyncState and CompletedSynchronously values. + The Task to wrap. + The new AsyncState value + The new CompletedSynchronously value. + + + Contains internal path helpers that are shared between many projects. + + + + Returns true if the given character is a valid drive letter + + + + + Adds the extended path prefix (\\?\) if not already a device path, IF the path is not relative, + AND the path is more than 259 characters. (> MAX_PATH + null). This will also insert the extended + prefix if the path ends with a period or a space. Trailing periods and spaces are normally eaten + away from paths during normalization, but if we see such a path at this point it should be + normalized and has retained the final characters. (Typically from one of the *Info classes) + + + + + Adds the extended path prefix (\\?\) if not relative or already a device path. + + + + + Returns true if the path uses any of the DOS device path syntaxes. ("\\.\", "\\?\", or "\??\") + + + + + Returns true if the path is a device UNC (\\?\UNC\, \\.\UNC\) + + + + + Returns true if the path uses the canonical form of extended syntax ("\\?\" or "\??\"). If the + path matches exactly (cannot use alternate directory separators) Windows will skip normalization + and path length checks. + + + + + Check for known wildcard characters. '*' and '?' are the most common ones. + + + + + Gets the length of the root of the path (drive, share, etc.). + + + + + Returns true if the path specified is relative to the current drive or working directory. + Returns false if the path is fixed to a specific drive or UNC path. This method does no + validation of the path (URIs will be returned as relative as a result). + + + Handles paths that use the alternate directory separator. It is a frequent mistake to + assume that rooted paths (Path.IsPathRooted) are not relative. This isn't the case. + "C:a" is drive relative- meaning that it will be resolved against the current directory + for C: (rooted, but relative). "C:\a" is rooted and not relative (the current directory + will not be used to modify the path). + + + + + True if the given character is a directory separator. + + + + + Normalize separators in the given path. Converts forward slashes into back slashes and compresses slash runs, keeping initial 2 if present. + Also trims initial whitespace in front of "rooted" paths (see PathStartSkip). + + This effectively replicates the behavior of the legacy NormalizePath when it was called with fullCheck=false and expandShortpaths=false. + The current NormalizePath gets directory separator normalization from Win32's GetFullPathName(), which will resolve relative paths and as + such can't be used here (and is overkill for our uses). + + Like the current NormalizePath this will not try and analyze periods/spaces within directory segments. + + + The only callers that used to use Path.Normalize(fullCheck=false) were Path.GetDirectoryName() and Path.GetPathRoot(). Both usages do + not need trimming of trailing whitespace here. + + GetPathRoot() could technically skip normalizing separators after the second segment- consider as a future optimization. + + For legacy desktop behavior with ExpandShortPaths: + - It has no impact on GetPathRoot() so doesn't need consideration. + - It could impact GetDirectoryName(), but only if the path isn't relative (C:\ or \\Server\Share). + + In the case of GetDirectoryName() the ExpandShortPaths behavior was undocumented and provided inconsistent results if the path was + fixed/relative. For example: "C:\PROGRA~1\A.TXT" would return "C:\Program Files" while ".\PROGRA~1\A.TXT" would return ".\PROGRA~1". If you + ultimately call GetFullPath() this doesn't matter, but if you don't or have any intermediate string handling could easily be tripped up by + this undocumented behavior. + + We won't match this old behavior because: + + 1. It was undocumented + 2. It was costly (extremely so if it actually contained '~') + 3. Doesn't play nice with string logic + 4. Isn't a cross-plat friendly concept/behavior + + + + + Returns true if the path is effectively empty for the current OS. + For unix, this is empty or null. For Windows, this is empty, null, or + just spaces ((char)32). + + + + + Get a pinnable reference to the builder. + Does not ensure there is a null char after + This overload is pattern matched in the C# 7.3+ compiler so you can omit + the explicit method call, and write eg "fixed (char* c = builder)" + + + + + Get a pinnable reference to the builder. + + Ensures that the builder has a null char after + + + Returns the underlying storage of the builder. + + + + Returns a span around the contents of the builder. + + Ensures that the builder has a null char after + + + + Resize the internal buffer either by doubling current buffer size or + by adding to + whichever is greater. + + + Number of chars requested beyond current position. + + + + Provides logging facilities for System.Net libraries. + + + The single event source instance to use for all logging. + + + Logs entrance to a method. + `this`, or another object that serves to provide context for the operation. + A description of the entrance, including any arguments to the call. + The calling member. + + + Logs entrance to a method. + `this`, or another object that serves to provide context for the operation. + The object to log. + The calling member. + + + Logs entrance to a method. + `this`, or another object that serves to provide context for the operation. + The first object to log. + The second object to log. + The calling member. + + + Logs entrance to a method. + `this`, or another object that serves to provide context for the operation. + The first object to log. + The second object to log. + The third object to log. + The calling member. + + + Logs exit from a method. + `this`, or another object that serves to provide context for the operation. + A description of the exit operation, including any return values. + The calling member. + + + Logs exit from a method. + `this`, or another object that serves to provide context for the operation. + A return value from the member. + The calling member. + + + Logs exit from a method. + `this`, or another object that serves to provide context for the operation. + A return value from the member. + A second return value from the member. + The calling member. + + + Logs an information message. + `this`, or another object that serves to provide context for the operation. + The message to be logged. + The calling member. + + + Logs an information message. + `this`, or another object that serves to provide context for the operation. + The message to be logged. + The calling member. + + + Logs an error message. + `this`, or another object that serves to provide context for the operation. + The message to be logged. + The calling member. + + + Logs an error message. + `this`, or another object that serves to provide context for the operation. + The message to be logged. + The calling member. + + + Logs a fatal error and raises an assert. + `this`, or another object that serves to provide context for the operation. + The message to be logged. + The calling member. + + + Logs a fatal error and raises an assert. + `this`, or another object that serves to provide context for the operation. + The message to be logged. + The calling member. + + + Logs the contents of a buffer. + `this`, or another object that serves to provide context for the operation. + The buffer to be logged. + The calling member. + + + Logs the contents of a buffer. + `this`, or another object that serves to provide context for the operation. + The buffer to be logged. + The starting offset from which to log. + The number of bytes to log. + The calling member. + + + Logs the contents of a buffer. + `this`, or another object that serves to provide context for the operation. + The starting location of the buffer to be logged. + The number of bytes to log. + The calling member. + + + Logs a relationship between two objects. + The first object. + The second object. + The calling member. + + + Logs a relationship between two objects. + `this`, or another object that serves to provide context for the operation. + The first object. + The second object. + The calling member. + + + + Is this a fixed size field? + + + + + The maximum size of the field (in bytes or characters depending on the field type) + or -1 if the size can be unlimited. + + + + + Precision, only valid for numeric types. + + + + + Scale, only valid for numeric types. + + + + + Is this field nullable? + + + + + RequiredAccess. + Indicates the type of access that a caller must request when opening the file object that represents the device (see IRP_MJ_CREATE). + + + + + The I/O manager sends the IRP for any caller that has a handle to the file object that represents the target device object. + + + + + The I/O manager sends the IRP only for a caller with read access rights, allowing the underlying device driver to transfer + data from the device to system memory. + + + + + The I/O manager sends the IRP only for a caller with write access rights, allowing the underlying device driver to transfer + data from system memory to its device. + + + + CTL_CODE method. + Identifies the device type. This value must match the value that is set in the DeviceType member of the driver's DEVICE_OBJECT structure. + Identifies the function to be performed by the driver. Values of less than 0x800 are reserved for Microsoft. Values of 0x800 and higher can be used by vendors. + Indicates how the system will pass data between the caller of DeviceIoControl (or IoBuildDeviceIoControlRequest) and the driver that handles the IRP. + Indicates the type of access that a caller must request when opening the file object that represents the device (see IRP_MJ_CREATE). + + + + TransferType. + Indicates how the system will pass data between the caller of DeviceIoControl (or IoBuildDeviceIoControlRequest) and the driver that handles the IRP. + + + + + Specifies the buffered I/O method, which is typically used for transferring small amounts of data per request. + Most I/O control codes for device and intermediate drivers use this TransferType value. + + + + + Specifies the direct I/O method, which is typically used for reading or writing large amounts of data, using DMA or PIO, that must be transferred quickly. + Specify METHOD_IN_DIRECT if the caller of DeviceIoControl or IoBuildDeviceIoControlRequest will pass data to the driver. + + + + + Specifies the direct I/O method, which is typically used for reading or writing large amounts of data, using DMA or PIO, that must be transferred quickly. + Specify METHOD_OUT_DIRECT if the caller of DeviceIoControl or IoBuildDeviceIoControlRequest will receive data from the driver. + + + + + Specifies neither buffered nor direct I/O. The I/O manager does not provide any system buffers or MDLs. The IRP supplies the user-mode virtual addresses + of the input and output buffers that were specified to DeviceIoControl or IoBuildDeviceIoControlRequest, without validating or mapping them. + + + + + Length in bytes, not including the null terminator, if any. + + + + + Max size of the buffer in bytes + + + + + OBJECT_ATTRIBUTES structure. + The OBJECT_ATTRIBUTES structure specifies attributes that can be applied to objects or object handles by routines + that create objects and/or return handles to objects. + + + + + Optional handle to root object directory for the given ObjectName. + Can be a file system directory or object manager directory. + + + + + Name of the object. Must be fully qualified if RootDirectory isn't set. + Otherwise is relative to RootDirectory. + + + + + If null, object will receive default security settings. + + + + + Optional quality of service to be applied to the object. Used to indicate + security impersonation level and context tracking mode (dynamic or static). + + + + + Equivalent of InitializeObjectAttributes macro with the exception that you can directly set SQOS. + + + + + This handle can be inherited by child processes of the current process. + + + + + This flag only applies to objects that are named within the object manager. + By default, such objects are deleted when all open handles to them are closed. + If this flag is specified, the object is not deleted when all open handles are closed. + + + + + Only a single handle can be open for this object. + + + + + Lookups for this object should be case insensitive. + + + + + Create on existing object should open, not fail with STATUS_OBJECT_NAME_COLLISION. + + + + + Open the symbolic link, not its target. + + + + + FILE_FULL_EA_INFORMATION structure. + Provides extended attribute (EA) information. This structure is used primarily by network drivers. + + + + + The offset of the next FILE_FULL_EA_INFORMATION-type entry. This member is zero if no other entries follow this one. + + + + + Can be zero or can be set with FILE_NEED_EA, indicating that the file to which the EA belongs cannot be interpreted without understanding the associated extended attributes. + + + + + The length in bytes of the EaName array. This value does not include a null-terminator to EaName. + + + + + The length in bytes of each EA value in the array. + + + + + Status + + + + + Request dependent value. + + + + + The completion status, either STATUS_SUCCESS if the operation was completed successfully or + some other informational, warning, or error status. + + + + + Reserved for internal use. + + + + + File creation disposition when calling directly to NT APIs. + + + + + Default. Replace or create. Deletes existing file instead of overwriting. + + + As this potentially deletes it requires that DesiredAccess must include Delete. + This has no equivalent in CreateFile. + + + + + Open if exists or fail if doesn't exist. Equivalent to OPEN_EXISTING or + . + + + TruncateExisting also uses Open and then manually truncates the file + by calling NtSetInformationFile with FileAllocationInformation and an + allocation size of 0. + + + + + Create if doesn't exist or fail if does exist. Equivalent to CREATE_NEW + or . + + + + + Open if exists or create if doesn't exist. Equivalent to OPEN_ALWAYS or + . + + + + + Open and overwrite if exists or fail if doesn't exist. Equivalent to + TRUNCATE_EXISTING or . + + + + + Open and overwrite if exists or create if doesn't exist. Equivalent to + CREATE_ALWAYS or . + + + + + Options for creating/opening files with NtCreateFile. + + + + + File being created or opened must be a directory file. Disposition must be FILE_CREATE, FILE_OPEN, + or FILE_OPEN_IF. + + + Can only be used with FILE_SYNCHRONOUS_IO_ALERT/NONALERT, FILE_WRITE_THROUGH, FILE_OPEN_FOR_BACKUP_INTENT, + and FILE_OPEN_BY_FILE_ID flags. + + + + + Applications that write data to the file must actually transfer the data into + the file before any requested write operation is considered complete. This flag + is set automatically if FILE_NO_INTERMEDIATE_BUFFERING is set. + + + + + All accesses to the file are sequential. + + + + + File cannot be cached in driver buffers. Cannot use with AppendData desired access. + + + + + All operations are performed synchronously. Any wait on behalf of the caller is + subject to premature termination from alerts. + + + Cannot be used with FILE_SYNCHRONOUS_IO_NONALERT. + Synchronous DesiredAccess flag is required. I/O system will maintain file position context. + + + + + All operations are performed synchronously. Waits in the system to synchronize I/O queuing + and completion are not subject to alerts. + + + Cannot be used with FILE_SYNCHRONOUS_IO_ALERT. + Synchronous DesiredAccess flag is required. I/O system will maintain file position context. + + + + + File being created or opened must not be a directory file. Can be a data file, device, + or volume. + + + + + Create a tree connection for this file in order to open it over the network. + + + Not used by device and intermediate drivers. + + + + + Complete the operation immediately with a success code of STATUS_OPLOCK_BREAK_IN_PROGRESS if + the target file is oplocked. + + + Not compatible with ReserveOpfilter or OpenRequiringOplock. + Not used by device and intermediate drivers. + + + + + If the extended attributes on an existing file being opened indicate that the caller must + understand extended attributes to properly interpret the file, fail the request. + + + Not used by device and intermediate drivers. + + + + + Accesses to the file can be random, so no sequential read-ahead operations should be performed + on the file by FSDs or the system. + + + + + Delete the file when the last handle to it is passed to NtClose. Requires Delete flag in + DesiredAccess parameter. + + + + + Open the file by reference number or object ID. The file name that is specified by the ObjectAttributes + name parameter includes the 8 or 16 byte file reference number or ID for the file in the ObjectAttributes + name field. The device name can optionally be prefixed. + + + NTFS supports both reference numbers and object IDs. 16 byte reference numbers are 8 byte numbers padded + with zeros. ReFS only supports reference numbers (not object IDs). 8 byte and 16 byte reference numbers + are not related. Note that as the UNICODE_STRING will contain raw byte data, it may not be a "valid" string. + Not used by device and intermediate drivers. + + + \??\C:\{8 bytes of binary FileID} + \device\HardDiskVolume1\{16 bytes of binary ObjectID} + {8 bytes of binary FileID} + + + + + The file is being opened for backup intent. Therefore, the system should check for certain access rights + and grant the caller the appropriate access to the file before checking the DesiredAccess parameter + against the file's security descriptor. + + + Not used by device and intermediate drivers. + + + + + When creating a file, specifies that it should not inherit the compression bit from the parent directory. + + + + + The file is being opened and an opportunistic lock (oplock) on the file is being requested as a single atomic + operation. + + + The file system checks for oplocks before it performs the create operation and will fail the create with a + return code of STATUS_CANNOT_BREAK_OPLOCK if the result would be to break an existing oplock. + Not compatible with CompleteIfOplocked or ReserveOpFilter. Windows 7 and up. + + + + + CreateFile2 uses this flag to prevent opening a file that you don't have access to without specifying + FILE_SHARE_READ. (Preventing users that can only read a file from denying access to other readers.) + + + Windows 7 and up. + + + + + The client opening the file or device is session aware and per session access is validated if necessary. + + + Windows 8 and up. + + + + + This flag allows an application to request a filter opportunistic lock (oplock) to prevent other applications + from getting share violations. + + + Not compatible with CompleteIfOplocked or OpenRequiringOplock. + If there are already open handles, the create request will fail with STATUS_OPLOCK_NOT_GRANTED. + + + + + Open a file with a reparse point attribute, bypassing the normal reparse point processing. + + + + + Causes files that are marked with the Offline attribute not to be recalled from remote storage. + + + More details can be found in Remote Storage documentation (see Basic Concepts). + https://technet.microsoft.com/en-us/library/cc938459.aspx + + + + + System.IO.FileAccess looks up these values when creating handles + + + File Security and Access Rights + https://msdn.microsoft.com/en-us/library/windows/desktop/aa364399.aspx + + + + + For a file, the right to read data from the file. + + + Directory version of this flag is . + + + + + For a directory, the right to list the contents. + + + File version of this flag is . + + + + + For a file, the right to write data to the file. + + + Directory version of this flag is . + + + + + For a directory, the right to create a file in a directory. + + + File version of this flag is . + + + + + For a file, the right to append data to a file. is needed + to overwrite existing data. + + + Directory version of this flag is . + + + + + For a directory, the right to create a subdirectory. + + + File version of this flag is . + + + + + For a named pipe, the right to create a pipe instance. + + + + + The right to read extended attributes. + + + + + The right to write extended attributes. + + + + + The right to execute the file. + + + Directory version of this flag is . + + + + + For a directory, the right to traverse the directory. + + + File version of this flag is . + + + + + For a directory, the right to delete a directory and all + the files it contains, including read-only files. + + + + + The right to read attributes. + + + + + The right to write attributes. + + + + + All standard and specific rights. [FILE_ALL_ACCESS] + + + + + The right to delete the object. + + + + + The right to read the information in the object's security descriptor. + Doesn't include system access control list info (SACL). + + + + + The right to modify the discretionary access control list (DACL) in the + object's security descriptor. + + + + + The right to change the owner in the object's security descriptor. + + + + + The right to use the object for synchronization. Enables a thread to wait until the object + is in the signaled state. This is required if opening a synchronous handle. + + + + + Same as READ_CONTROL. + + + + + Same as READ_CONTROL. + + + + + Same as READ_CONTROL. + + + + + Maps internally to | | + | | . + (For directories, | | + | | .) + + + + + Maps internally to | | + | | | . + (For directories, | | AddFile + | | | .) + + + + + Maps internally to | | + | . + (For directories, | | + | .) + + + + diff --git a/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNIHandle.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNIHandle.cs index 00af92b6d..63972fccc 100644 --- a/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNIHandle.cs +++ b/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNIHandle.cs @@ -39,6 +39,7 @@ internal abstract class SNIHandle /// Send a packet asynchronously /// /// SNI packet + /// Whether to dispose package after sending async /// Completion callback /// SNI error code public abstract uint SendAsync(SNIPacket packet, bool disposePacketAfterSendAsync, SNIAsyncCallback callback = null); diff --git a/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNIMarsHandle.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNIMarsHandle.cs index 17ac984d1..f54f21e5a 100644 --- a/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNIMarsHandle.cs +++ b/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNIMarsHandle.cs @@ -214,6 +214,7 @@ private uint SendPendingPackets() /// Send a packet asynchronously /// /// SNI packet + /// Whether to dispose packet after sending async /// Completion callback /// SNI error code public override uint SendAsync(SNIPacket packet, bool disposePacketAfterSendAsync, SNIAsyncCallback callback = null) diff --git a/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNIPacket.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNIPacket.cs index f86207096..146612b46 100644 --- a/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNIPacket.cs +++ b/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNIPacket.cs @@ -68,6 +68,7 @@ public void InvokeCompletionCallback(uint sniErrorCode) /// /// Allocate space for data /// + /// Length of header /// Length of byte array to be allocated private void Allocate(int headerLength, int dataLength) { diff --git a/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNIProxy.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNIProxy.cs index e99cb24dd..b30736d46 100644 --- a/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNIProxy.cs +++ b/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNIProxy.cs @@ -37,6 +37,7 @@ public void Terminate() /// Enable SSL on a connection /// /// Connection handle + /// SSL options /// SNI error code public uint EnableSsl(SNIHandle handle, uint options) { @@ -246,6 +247,7 @@ public uint WritePacket(SNIHandle handle, SNIPacket packet, bool sync) /// Flush packet cache /// Asynchronous connection /// Attempt parallel connects + /// Whether integrated security is enabled /// SNI handle public SNIHandle CreateConnectionHandle(object callbackObject, string fullServerName, bool ignoreSniOpenTimeout, long timerExpire, out byte[] instanceName, ref byte[] spnBuffer, bool flushCache, bool async, bool parallel, bool isIntegratedSecurity) { diff --git a/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNITcpHandle.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNITcpHandle.cs index 805c98b86..dcfddf937 100644 --- a/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNITcpHandle.cs +++ b/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNITcpHandle.cs @@ -98,6 +98,7 @@ public override uint Status /// TCP port number /// Connection timer expiration /// Callback object + /// Open in parallel public SNITCPHandle(string serverName, int port, long timerExpire, object callbackObject, bool parallel) { _callbackObject = callbackObject; @@ -521,6 +522,7 @@ public override void SetAsyncCallbacks(SNIAsyncCallback receiveCallback, SNIAsyn /// Send a packet asynchronously /// /// SNI packet + /// Whether to dispose packet after sending async /// Completion callback /// SNI error code public override uint SendAsync(SNIPacket packet, bool disposePacketAfterSendAsync, SNIAsyncCallback callback = null) diff --git a/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlEnums.cs b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlEnums.cs index 2c57b2642..c3e8414df 100644 --- a/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlEnums.cs +++ b/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlEnums.cs @@ -525,6 +525,7 @@ internal static object GetComValueFromSqlVariant(object sqlVal) /// Assert that the supplied object is an instance of a SQL User-Defined Type (UDT). /// /// Object instance to be tested. + /// Failed assert message /// /// This method is only compiled with debug builds, and it a helper method for the GetComValueFromSqlVariant method defined in this class. /// diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.xml b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.xml new file mode 100644 index 000000000..012ce4841 --- /dev/null +++ b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.xml @@ -0,0 +1,8 @@ + + + + Address + + + + diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Circle.xml b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Circle.xml new file mode 100644 index 000000000..ce5405a45 --- /dev/null +++ b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Circle.xml @@ -0,0 +1,8 @@ + + + + Circle + + + + diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Shapes.xml b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Shapes.xml new file mode 100644 index 000000000..3b2feb4ef --- /dev/null +++ b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Shapes.xml @@ -0,0 +1,8 @@ + + + + Shapes + + + + diff --git a/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Utf8String.xml b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Utf8String.xml new file mode 100644 index 000000000..16d2aaf48 --- /dev/null +++ b/src/System.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Utf8String.xml @@ -0,0 +1,30 @@ + + + + Utf8String + + + + + Parse the given string and return a utf8 representation for it. + + + + + + + Get/Set the utf8 bytes for this string. + + + + + Return a unicode string for this type. + + + + + Return a SqlStr + + + + diff --git a/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/ITDSClient.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/ITDSClient.cs index 413076a6a..f1a580fa0 100644 --- a/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/ITDSClient.cs +++ b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/ITDSClient.cs @@ -40,19 +40,19 @@ public interface ITDSClient /// /// It is called when SPNEGO response arrives /// - /// TDS message received + /// TDS message received TDSMessage OnSSPIResponse(TDSMessage message); /// /// It is called when FedAuthInfoToken response arrives /// - /// TDS message received + /// TDS message received TDSMessage OnFedAuthInfoTokenResponse(TDSMessage message); /// /// It is called when login acknowledgement arrives. /// - /// TDS message received + /// TDS message received void OnLoginResponse(TDSMessage message); /// diff --git a/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/ITDSServer.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/ITDSServer.cs index 96c222e37..fac8c3326 100644 --- a/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/ITDSServer.cs +++ b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/ITDSServer.cs @@ -24,14 +24,16 @@ public interface ITDSServer /// /// It is called when pre-login request arrives /// - /// TDS message recieved + /// + /// TDS message received /// TDS messages to be respond with TDSMessageCollection OnPreLoginRequest(ITDSServerSession session, TDSMessage message); /// /// It is called when login request arrives /// - /// TDS message recieved + /// + /// TDS message received /// TDS message to respond with TDSMessageCollection OnLogin7Request(ITDSServerSession session, TDSMessage message); @@ -40,6 +42,7 @@ public interface ITDSServer /// such a message arrives in response to federated authentication info, not when the /// token is part of a login request. /// + /// /// TDS message received /// TDS message to respond with TDSMessageCollection OnFederatedAuthenticationTokenMessage(ITDSServerSession session, TDSMessage message); @@ -47,21 +50,24 @@ public interface ITDSServer /// /// It is called when SSPI payload arrives /// - /// TDS message recieved + /// + /// TDS message received /// TDS message to respond with TDSMessageCollection OnSSPIRequest(ITDSServerSession session, TDSMessage message); /// /// It is called when SQL batch request arrives /// - /// TDS message recieved + /// + /// TDS message received /// TDS message to respond with TDSMessageCollection OnSQLBatchRequest(ITDSServerSession session, TDSMessage message); /// /// It is called when attention arrives /// - /// TDS message recieved + /// + /// TDS message received /// TDS message to respond with TDSMessageCollection OnAttention(ITDSServerSession session, TDSMessage message); } diff --git a/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/Microsoft.SqlServer.TDS.EndPoint.xml b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/Microsoft.SqlServer.TDS.EndPoint.xml new file mode 100644 index 000000000..af9aa2a36 --- /dev/null +++ b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.EndPoint/Microsoft.SqlServer.TDS.EndPoint.xml @@ -0,0 +1,1220 @@ + + + + Microsoft.SqlServer.TDS.EndPoint + + + + + Point of entry for the Federated Authentication Ticket Service + + + + + Given a Federated Authentication ticket, returns the Session Key from the authentication service + + + + + Interface for federated authentication ticket + + + + + Computes and returns the signature of the provided buffer using the internal session Key associated with the auth + ticket. + + + + + Wrapper for dynamic loading of RPS dll + + + + + Instance of the dynamically loaded RPS assembly from Microsoft.Passport.RPS + + + + + Type of Microsoft.Passport.RPS.RPS + + + + + Type of Microsoft.Passport.RPS.RPSTicket + + + + + Type of Microsoft.Passport.RPS.RPSPropBag + + + + + Type of Microsoft.Passport.RPS.RPSAuth + + + + + Type of Microsoft.Passport.RPS.RPSTicket.RPSTicketProperty + + + + + Instance of the Microsoft.Passport.RPS.RPS object + + + + + RPS Wrapper constructor + + + + + Calling Initialize in the RPS real object created from the dynamically loaded RPS assembly + + + + + Given an encrypted ticket, calls RPS Authenticate and returns the decrypted ticket + + + + + Given an rps decrypted ticket, get the session key + + + + + Convert a "string" that is actually a byte array into an actual byte array - needed for interop + with COM methods that are returning binary data as a BSTR. + + + + + RPS implementation of federated authentication ticket + + + + + Singleton instance of an RPS class, which drives authentication at the RPS level. + + + + + Singleton instance of an RPS class, which drives authentication at the RPS level. + + + + + The short-lived session key associated with this authentication ticket + + + + + The RPS representation of the ticket + + + + + Constructor that takes the RPS representation of the ticket as an argument + + + + + Static constructor for the RpsTicket class. + + + + + Computes and returns the HMACSHA256 of the provided buffer using the Session Key associated with the auth + ticket. + + + + + Takes the encrypted wire format of the ticket and, on successful authentication, returns + the resulting ticket. + + + + + JWT implementation of federated authentication ticket + Move this class to a different file once msbuild conversion is completed. + + + + + the ticket + + + + + Computes and returns the HMACSHA256 of the provided buffer using the Session Key associated with the auth + ticket. + + + + + Constructor that takes the RPS representation of the ticket as an argument + + + + + Takes the encrypted wire format of the ticket and, on successful authentication, returns + the resulting ticket. + + + + + Run time context of the TDS client + + + + + Host or IP address on which SQL Server is running + + + + + Port number of the SQL Server + + + + + Pipe at which SQL Server is listening + + + + + Name of the server client connected to. + Information is coming from INFO and ERROR tokens + + + + + Description of the server the client connected to. + Information originates in LOGINACK token + + + + + Server build version + + + + + TDS version of the conversation + + + + + Current database + + + + + Current language + + + + + Database collation + + + + + Size of the TDS packet + + + + + Failover partner for connected SQL Server + + + + + Encryption used on the session + + + + + Query text to be sent to the TDS server + + + + + Response to the query + + + + + Connection identifier + + + + + State of the virtual session + + + + + Session of the TDS Server + + + + + Server that created the session + + + + + Session identifier + + + + + Size of the TDS packet + + + + + User name if SQL authentication is used + + + + + Context that indicates the stage of SSPI authentication + + + + + Database to which connection is established + + + + + TDS version of the communication + + + + + Local connection end-point information + + + + + Remote connection end-point information + + + + + Transport encryption + + + + + Certificate to use for encryption + + + + + Counter of connection reset requests for this session + + + + + Indicates whether this session supports transport-level recovery + + + + + Security buffer + + + + + Initialization constructor that allocates a new security buffer + + Size of the buffer to allocate + + + + Initialization constructor for existing buffer + + Data + + + + Extract raw byte data from the security buffer + + + + + Dispose security buffer + + + + + Type of security buffer descriptor + + + + + Constants that are used across security API + + + + + Security packages used for SSPI authentication + + + + + Security buffer descriptor + + + + + Initialization constructor + + Size of the buffer to allocate + + + + Initialization constructor for byte array + + Data + + + + Dispose security buffer descriptor + + + + + Convert to byte array + + + + + Type of security buffer + + + + + Security context requirements + + + + + Data representation requirements + + + + + Security package credentials enumeration + + + + + Security package info + + + + + Set of bit flags that describes the capabilities of the security package + + + + + Specifies the version of the package protocol. Must be 1. + + + + + Specifies a DCE RPC identifier, if appropriate + + + + + Specifies the maximum size, in bytes, of the token. + + + + + Pointer to a null-terminated string that contains the name of the security package. + + + + + Pointer to a null-terminated string. This can be any additional string passed back by the package. + + + + + Result of security operation + + + + + Security handle + + + + + Check if instance of the security handle is valid + + + + + Security integer + + + + + Container for the SSPI handshake response to be sent to the other party + + + + + Payload to proceed to the next step of authentication + + + + + Indicates whether this is the last payload and no further processing is needed + + + + + Default constructor + + + + + Initialization constructor + + + + + Initialization constructor + + + + + SSPI context + + + + + FInalizer + + + + + Create SSPI context for server + + + + + Create SSPI context for client + + + + + Initialize authentication sequence for the server + + Token received from the client + Token to be sent to the client in response + + + + Continue authentication sequence for the server + + Token received from the client + Token to be sent to the client in response + + + + Initialize authentication sequence for the client + + Token to be sent to the server + + + + Initialize authentication sequence for the client + + Payload received from the server + Token to be sent to the server + + + + Return identity of the party on the other end + + + + + + Dispose + + + + + Dispose the instance + + + + + + A simple pass-through implementation of stream that allows dynamically switching the underlying stream + + + + + Indicates whether inner stream should be closed when TDS stream is closed + + + + + Transport stream used to deliver TDS protocol + + + + + Indicates whether stream can be read + + + + + Indicates whether the stream can be positioned + + + + + Indicates whether the stream can be written + + + + + Return the length of the stream + + + + + Return position in the stream + + + + + Initialization constructor + + + + + Initialization constructor + + + + + Close the stream + + + + + Flush the data into the underlying stream + + + + + Read the data from the stream + + + + + Seek position in the stream + + + + + Set stream length + + + + + Write data into the stream + + + + + Client that talks TDS + + + + + Gets/Sets the event log for the proxy server + + + + + Client + + + + + Socket that talks to TDS server + + + + + TDS parser + + + + + TDSStream Prewrite call back + + + + + PostConnect call back for socket attributes setting + + + + + PostConnect call back for socket attributes setting + + + + + Initialization constructor + + TDS client instance that will drive the communication with the TDS server + + + + Initialization constructor + + + + + Establish connection and log into the SQL Server + + + + + Dispatch a request to the server + + + + + Log out and disconnect from SQL Server + + + + + Write a string to the log + + + + + Interface that TDS parser calls into to process TDS stream + + + + + Indicates the state of the TDS client + + + + + Run time context of the client + + + + + Notification that is fired before the parser establishes a connection to the server. This method should be used to initialize context. + + + + + It is called when transport was established with TDS server and client parser is ready to start conversation + + TDS message to initiate conversation with TDS Server + + + + It is called when pre-login response arrives + + TDS message received + TDS message to send to the server + + + + It is called when SPNEGO response arrives + + TDS message received + + + + It is called when FedAuthInfoToken response arrives + + TDS message received + + + + It is called when login acknowledgement arrives. + + TDS message received + + + + Create a request to SQL Server after authentication + + TDS message to send to the server + + + + Process response to the request + + TDS message received + + + + Create a request to SQL Server to logout + + TDS message to send to the server + + + + Process response to the logout request + + TDS message received + + + + Interface that TDS parser calls into to process TDS stream + + + + + Create a new TDS server session + + A new instance of the TDS server session + + + + Close TDS server session + + An instance of the TDS server session to close + + + + It is called when pre-login request arrives + + + TDS message received + TDS messages to be respond with + + + + It is called when login request arrives + + + TDS message received + TDS message to respond with + + + + It is called when federated authentication token message arrives. Called only when + such a message arrives in response to federated authentication info, not when the + token is part of a login request. + + + TDS message received + TDS message to respond with + + + + It is called when SSPI payload arrives + + + TDS message received + TDS message to respond with + + + + It is called when SQL batch request arrives + + + TDS message received + TDS message to respond with + + + + It is called when attention arrives + + + TDS message received + TDS message to respond with + + + + Parser of the TDS packets on the client + + + + + TDS client that generates data + + + + + Client TDS parser initialization constructor + + + + + Authenticate against TDS Server + + + + + Dispatch a request to the server and process the response + + + + + Complete + + + + + Read data from TDS server + + + + + + Send a request to the TDS server + + + + + Container of the connection end-point information + + + + + IP address to/from which connection is established + + + + + Port number + + + + + Transport protocol for the end-point + + + + + Default constructor + + + + + Initialization constructor + + + + + Initialization constructor + + + + + Initialization constructor + + + + + Transport of the connection end-point + + + + + TCP protocol + + + + + Generic TDS parser + + + + + Transport stream that was assigned to this parser prior to connection encryption + + + + + Writer to log events to + + + + + Encryption protocol for server to use with AuthenticateAsServer + + + + + Protocol stream between the client and the server + + + + + Initialization constructor + + + + + Set PreWriteCallback func in Transport (TDSStream) + + + + + Resets the targeted encryption protocol for the server. + + + + + Enable transport encryption + + + + + Enable transport encryption + + + + + Disable transport encryption + + + + + Validate server certificate + + + + + Write a string to the log + + + + + Server that talks TDS + + + + + General server handler + + + + + Gets/Sets the event log for the proxy server + + + + + Server + + + + + The list of connections spawned by the server + + + + + End-point which TDS server is listening on + + + + + Gets/Sets the listener + + + + + Gets/Sets the listener thread + + + + + Gets/Sets the flag whether the stop is requested + + + + + Identifier to recognize the client of the Endpoint. + + + + + Initialization constructor + + TDS server instance that will process requests + + + + Start the listener thread + + + + + Stop the listener thread + + + + + Processes all incoming requests + + + + + Creates a new connection handler for the given TCP connection + + + + + Event handler for client connection termination + + + + + Write a string to the log + + + + + A delegate for client connection termination + + + + + Connection to a single client that handles TDS data + + + + + Connection to a single client + + + + + Worker thread + + + + + Gets/Sets the event log for the proxy server + + + + + TDS Server to which this connection is established + + + + + TDS Server session that is assigned to this physical connection + + + + + Event that is fired when connection is closed + + + + + Connection itself + + + + + The flag indicates whether server is being stopped + + + + + Initialization constructor + + + + + Start the connection + + + + + Stop the connection + + + + + Called when the data processing thread is first started + + + + + Called every time there is new data available + + + + + Worker thread + + + + + Write a string to the log + + + + + Parser of the TDS packets on the client + + + + + Implementation that provides data to be delivered over the protocol + + + + + TDS server session + + + + + Communication from the client being received incrementally + + + + + Server TDS parser initialization constructor + + + + + Run one cycle of the parser to process incoming stream of data or dispatch outgoing data + + + + diff --git a/src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/GenericTDSServer.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/GenericTDSServer.cs index fb9724377..d12cf4001 100644 --- a/src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/GenericTDSServer.cs +++ b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/GenericTDSServer.cs @@ -562,6 +562,7 @@ protected virtual TDSMessageCollection OnAuthenticationCompleted(ITDSServerSessi /// Complete the Federated Login /// /// Server session + /// /// Federated Login message collection protected virtual TDSMessageCollection OnFederatedAuthenticationCompleted(ITDSServerSession session, byte[] ticket) { diff --git a/src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/Microsoft.SqlServer.TDS.Servers.xml b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/Microsoft.SqlServer.TDS.Servers.xml new file mode 100644 index 000000000..36ada6363 --- /dev/null +++ b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/Microsoft.SqlServer.TDS.Servers.xml @@ -0,0 +1,901 @@ + + + + Microsoft.SqlServer.TDS.Servers + + + + + Type of application intent filter + + + + + Filter out all requests and don't let anyone connect + + + + + Allow read connections only + + + + + Don't filter anything and let everyone connect + + + + + TDS Server that authenticates clients according to the requested parameters + + + + + Initialization constructor + + + + + Initialization constructor + + + + + Handler for login request + + + + + Arguments for authenticating TDS Server + + + + + Type of the application intent filter + + + + + Filter for server name + + + + + Type of the filtering algorithm to use + + + + + TDS packet size filtering + + + + + Filter for application name + + + + + Initialization constructor + + + + + Class that converts date format from string to enumeration + + + + + Convert a language to enumeration + + + + + Convert enumeration to string + + + + + TDS Server that generates invalid TDS scenarios according to the requested parameters + + + + + Initialization constructor + + + + + Initialization constructor + + + + + Handler for login request + + + + + Handler for login request + + + + + Arguments for Fed Auth Negative TDS Server + + + + + Type of the Fed Auth Negative TDS Server + + + + + Initialization constructor + + + + + Valid Scenario. Do not perform negative activity. + + + + + Nonce is missing from LOGIN7 response in FedAuth's FEATUREEXTACK + + + + + Nonce is missing from PRELOGIN response in FedAuth + + + + + FedAuth is missing from FEATUREEXTACK Login response when it is expected + + + + + Invalid B_FEDAUTHREQUIRED response + + + + + Signature is missing from LOGIN7 response in FedAuth's FEATUREEXTACK + + + + + Generic TDS server without specialization + + + + + Session counter + + + + + Server configuration + + + + + Query engine instance + + + + + Default constructor + + + + + Initialization constructor + + + + + Initialization constructor + + + + + Create a new session on the server + + A new instance of the session + + + + Notify server of the session termination + + + + + Handler for pre-login request + + + + + Handler for login request + + + + + Handler for SSPI request + + + + + It is called when SQL batch request arrives + + + + + It is called when attention arrives + + + + + Advances one step in SSPI authentication sequence + + + + + Called by OnLogin7Request when client is using SQL auth. Overridden by subclasses to easily detect when SQL auth is used. + + + + + Complete the Federated Login + + Server session + + Federated Login message collection + + + + Ensure that federated authentication option is valid + + + + + Checks the TDS version + + Server session + Null if the TDS version is supported, errorToken message otherwise + + + + Generates random bytes + + The number of bytes to be generated. + Generated random bytes. + + + + Check if two byte arrays are equal + + + + + + + + Generic session for TDS Server + + + + + Server that created the session + + + + + Session identifier + + + + + Size of the TDS packet + + + + + User name if SQL authentication is used + + + + + Context that indicates the stage of SSPI authentication + + + + + Database to which connection is established + + + + + Collation + + + + + TDS version of the communication + + + + + Local connection end-point information + + + + + Remote connection end-point information + + + + + Transport encryption + + + + + Certificate to use for encryption + + + + + Nonce option sent by client + + + + + Nonce option sent by server + + + + + FedAuthRequired Response sent by server + + + + + Federated authentication set of libraries to be used + + + + + Counter of connection reset requests for this session + + + + + Indicates whether this session supports transport-level recovery + + + + + Controls a group of SQL Server settings that collectively specify ISO standard behavior + + + + + Affects the nullability of new columns when the nullability of the column is not specified in the CREATE TABLE and ALTER TABLE statements. + + + + + Controls null behavior in T-SQL + + + + + Impacts character column behavior (char, varchar, binary, and varbinary) + + + + + Controls certain warning messages required for ansi compliance + + + + + Terminates a query when an overflow or divide-by-zero error occurs during query execution + + + + + Controls whether error messages are returned from overflow or divide-by-zero errors during a query + + + + + Controls whether concatenation results are treated as null or empty string values + + + + + Associates up to 128 bytes of binary information with the current session or connection + + + + + Controls whether the server will close cursors when you commit a transaction + + + + + Sets the first day of the week to a number from 1 through 7 + + + + + Sets the order of the month, day, and year date parts for interpreting date character strings + + + + + Specifies the relative importance that the current session continue processing if it is deadlocked with another session. + + + + + Sets implicit transaction mode for the connection + + + + + Specifies the language environment for the session (language name from sys.syslanguages). The session language determines the datetime formats and system messages. + + + + + Specifies the number of milliseconds a statement waits for a lock to be released + + + + + Controls the emitting of Done w/count tokens from Transact-SQL. + + + + + Generates an error when a loss of precision occurs in an expression + + + + + Causes SQL Server to follow the ISO rules regarding quotation mark delimiting identifiers and literal strings + + + + + Specifies the size of varchar(max), nvarchar(max), varbinary(max), text, ntext, and image data returned by a SELECT statement + + + + + Controls the locking and row versioning behavior of Transact-SQL statements issued by a connection to SQL Server. + + + + + Specifies whether SQL Server automatically rolls back the current transaction when a Transact-SQL statement raises a run-time error + + + + + Initialization constructor + + + + + Initialization constructor + + + + + Inflate the session state using options + + + + + Serialize session state into a collection of options + + + + + + Inflate recovery data + + + + + Class that pretends to be a full featured relational engine and returns predefined responses to well-known queries that Topology framework issues + + + + + Log to which send TDS conversation + + + + + Server configuration + + + + + Initialization constructor + + + + + Execute the query and produce a response + + + + + Create a response for the query + + + + + + + + Handle attention from the client + + + + + Prepare response for server name query + + + + + Prepare response for machine name query + + + + + Prepare response for server instance name query + + + + + Prepare response for user nane query that OLE DB stack dispatches upon connection + + + + + Prepare response for query whether this is a HADRon instance + + + + + Prepare response for query whether this is a SQL Azure instance + + + + + Prepare response for query whether this is a Local DB instance + + + + + Prepare response for query whether this is a test SQL Server instance + + + + + Prepare response for query of class of the SQL Server instance + + + + + Prepare response for session user name query + + + + + Prepare response to the query about connection end-point + + + + + Prepare response to the query about connection encryption + + + + + Prepare response to server ping + + + + + Prepare current database response + + + + + Prepare configuration response + + + + + Prepare response to connection reset request count + + + + + Prepare response to connection reset request count + + + + + Prepare response to connection reset request count + + + + + Prepare response for ANSI defaults + + + + + Prepare response for ANSI null default on + + + + + Prepare response for ANSI nulls + + + + + Prepare response for ANSI padding + + + + + Prepare response for ANSI warnings + + + + + Prepare response for arithmetic abort + + + + + Prepare response for concatenation of nulls yields null + + + + + Prepare response for date first + + + + + Prepare response for date format + + + + + Prepare response for deadlock priority + + + + + Prepare response for language + + + + + Prepare response for lock timeout + + + + + Prepare response for quoted identifier + + + + + Prepare response for text size + + + + + Prepare response for transaction isolation level + + + + + Prepare response for options + + + + + Prepare response for context info + + + + + TDS Server that routes clients to the configured destination + + + + + Initialization constructor + + + + + Initialization constructor + + + + + Handler for pre-login request + + + + + Handler for login request + + + + + It is called when SQL batch request arrives + + TDS message received + + TDS message to respond with + + + + Complete login sequence + + + + + Create a new instance of the routing token that instructs client according to the routing destination URL + + + + + Arguments for routing TDS Server + + + + + Routing destination protocol + + + + + Routing TCP port + + + + + Routing TCP host name + + + + + Packet on which routing should occur + + + + + Indicates that routing should only occur on read-only connections + + + + + Initialization constructor + + + + + Type of the filter to apply to server name + + + + + Do not perform any filtering + + + + + Values must strictly match + + + + + Value in the login packet starts with the filtering value + + + + + Value in the login packet ends with the filtering value + + + + + Value in the login packet contains filtering value + + + + + Common arguments for TDS Server + + + + + Service Principal Name, representing Azure SQL Database in Azure Active Directory. + + + + + The Azure Active Directory production token endpoint to re-direct the client to fetch a token from. + + + + + Log to which send TDS conversation + + + + + Server name + + + + + Server version + + + + + Server principal name + + + + + Sts Url + + + + + Size of the TDS packet server should operate with + + + + + Transport encryption + + + + + Specifies the FedAuthRequired option + + + + + Certificate to use for transport encryption + + + + + Initialization constructor + + + + diff --git a/src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/RoutingTDSServer.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/RoutingTDSServer.cs index 7ede3dd1b..b400aa30a 100644 --- a/src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/RoutingTDSServer.cs +++ b/src/System.Data.SqlClient/tests/Tools/TDS/TDS.Servers/RoutingTDSServer.cs @@ -129,7 +129,8 @@ public override TDSMessageCollection OnLogin7Request(ITDSServerSession session, /// /// It is called when SQL batch request arrives /// - /// TDS message recieved + /// TDS message received + /// /// TDS message to respond with public override TDSMessageCollection OnSQLBatchRequest(ITDSServerSession session, TDSMessage request) { diff --git a/src/System.Data.SqlClient/tests/Tools/TDS/TDS/FeatureExtAck/TDSFeatureExtAckGenericOption.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/FeatureExtAck/TDSFeatureExtAckGenericOption.cs index 5613031fb..f850da160 100644 --- a/src/System.Data.SqlClient/tests/Tools/TDS/TDS/FeatureExtAck/TDSFeatureExtAckGenericOption.cs +++ b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/FeatureExtAck/TDSFeatureExtAckGenericOption.cs @@ -72,6 +72,7 @@ public TDSFeatureExtAckGenericOption(Stream source) /// /// Inflating constructor /// + /// /// public TDSFeatureExtAckGenericOption(TDSFeatureID featureID, Stream source) : this(source) diff --git a/src/System.Data.SqlClient/tests/Tools/TDS/TDS/FeatureExtAck/TDSFeatureExtAckToken.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/FeatureExtAck/TDSFeatureExtAckToken.cs index c0816b903..4245e7b21 100644 --- a/src/System.Data.SqlClient/tests/Tools/TDS/TDS/FeatureExtAck/TDSFeatureExtAckToken.cs +++ b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/FeatureExtAck/TDSFeatureExtAckToken.cs @@ -29,7 +29,7 @@ public TDSFeatureExtAckToken() /// /// Initialization constructor. /// - /// + /// public TDSFeatureExtAckToken(params TDSFeatureExtAckOption[] options) : this() { diff --git a/src/System.Data.SqlClient/tests/Tools/TDS/TDS/FedAuthMessage/TDSFedAuthMessageToken.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/FedAuthMessage/TDSFedAuthMessageToken.cs index b862eb87b..f4e5a5c01 100644 --- a/src/System.Data.SqlClient/tests/Tools/TDS/TDS/FedAuthMessage/TDSFedAuthMessageToken.cs +++ b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/FedAuthMessage/TDSFedAuthMessageToken.cs @@ -36,6 +36,7 @@ public TDSFedAuthToken() /// Initialization constructor. /// /// Token + /// public TDSFedAuthToken(byte[] token, byte[] nonce) : this() { @@ -115,4 +116,4 @@ public override void Deflate(Stream destination) } } } -} \ No newline at end of file +} diff --git a/src/System.Data.SqlClient/tests/Tools/TDS/TDS/IInflatable.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/IInflatable.cs index bce4795c5..eaacee297 100644 --- a/src/System.Data.SqlClient/tests/Tools/TDS/TDS/IInflatable.cs +++ b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/IInflatable.cs @@ -14,7 +14,7 @@ public interface IInflatable /// /// Inflate the object using the next available chunk of byte stream /// - /// Next chunk of data, not necessarily sufficient to inflate the object + /// /// TRUE if object is completely inflated, FALSE otherwise bool Inflate(Stream source); } diff --git a/src/System.Data.SqlClient/tests/Tools/TDS/TDS/Microsoft.SqlServer.TDS.xml b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/Microsoft.SqlServer.TDS.xml new file mode 100644 index 000000000..0495110b4 --- /dev/null +++ b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/Microsoft.SqlServer.TDS.xml @@ -0,0 +1,4009 @@ + + + + Microsoft.SqlServer.TDS + + + + + Token that handles ALL_HEADERS rule + + + + + Collection of individual headers + + + + + Default constructor + + + + + Inflate the token + NOTE: This operation is not continuable and assumes that the entire token is available in the stream + + Stream to inflate the token from + + + + Deflate the token + + Stream to deflate token to + + + + Type of the individual header + + + + + Represents Query Notifications header of ALL_HEADERS token + + + + + User specified value when subscribing to the query notification + + + + + Service Broker Deployment + + + + + Notification timeout + + + + + Default constructor + + + + + Inflate the token + NOTE: This operation is not continuable and assumes that the entire token is available in the stream + + Stream to inflate the token from + + + + Deflate the token + + Stream to deflate token to + + + + Represents correlate activity ID trace header of ALL_HEADERS token + + + + + Identifier of the client activity + + + + + Sequential number of the operation + + + + + Default constructor + + + + + Inflate the token + NOTE: This operation is not continuable and assumes that the entire token is available in the stream + + Stream to inflate the token from + + + + Deflate the token + + Stream to deflate token to + + + + Represents Transaction Descriptor header of ALL_HEADERS token + + + + + Identifier of the transaction + + + + + Outstanding request count + + + + + Default constructor + + + + + Initialization constructor + + + + + Initialization constructor + + + + + Inflate the token + NOTE: This operation is not continuable and assumes that the entire token is available in the stream + + Stream to inflate the token from + + + + Deflate the token + + Stream to deflate token to + + + + Stream that wraps TDS stream with automatic dispatch + + + + + Indicates whether inner stream should be closed when TDS stream is closed + + + + + Inner TDS stream + + + + + Type of the message being sent to the other party + + + + + Indicates whether stream can be read + + + + + Indicates whether the stream can be positioned + + + + + Indicates whether the stream can be written + + + + + Return the length of the stream + + + + + Return position in the stream + + + + + Initialization constructor + + + + + Initialization constructor + + + + + Close the stream + + + + + Flush the data into the underlying stream + + + + + Read the data from the stream + + + + + Seek position in the stream + + + + + Set stream length + + + + + Write data into the stream + + + + + Result set metadata description "COLINFO" token + + + + + A collection of columns for which metadata is available + + + + + Default constructor + + + + + Inflate the token + NOTE: This operation is not continuable and assumes that the entire token is available in the stream + + Stream to inflate the token from + TRUE if inflation is complete + + + + Deflate the token + + Stream to deflate token to + + + + Information about a single column + + + + + Number of bytes processed from the stream during inflation + + + + + Number of the column in the result + + + + + Number of the table + + + + + Status + + + + + Name of the column + + + + + Inflate the token + NOTE: This operation is not continuable and assumes that the entire token is available in the stream + + Stream to inflate the token from + TRUE if inflation is complete + + + + Deflate the token + + Stream to deflate token to + + + + Status of the column + + + + + The column was the result of an expression + + + + + The column is part of a key for the associated table + + + + + The column was not requested, but was added because it was part of a key for the associated table + + + + + the column name is different than the requested column name in the case of a column alias + + + + + Result set metadata description "COLMETADATA" token + + + + + A collection of columns for which metadata is available + + + + + Default constructor + + + + + Inflate the token + NOTE: This operation is not continuable and assumes that the entire token is available in the stream + + Stream to inflate the token from + TRUE if inflation is complete + + + + Deflate the token + + Stream to deflate token to + + + + Class that describes metadata of a single column + + + + + User type ID of the data type of the column + + + + + Type of the data + + + + + Information specific to the data type + + + + + Column metadata flags + + + + + Fully qualified base table name for the column + + + + + Name of the column + + + + + Default constructor + + + + + Inflate the token + + Stream to inflate the token from + TRUE if inflation is complete + + + + Deflate the token + + Stream to deflate token to + + + + Collation associated with TDS column + + + + + I have no clue what this stands for + + + + + Sort identifier + + + + + Default constructor + + + + + Initialization constructor + + + + + Initialization constructor + + + + + Column data flags + + + + + Indicates that the column is case-sensitive + + + + + Indicates that the column is nullable + + + + + Indicates that the column updatability + + + + + Indicates that the column is identity + + + + + Indicates that the column is computed + + + + + Reserved by ODS gateway supporting ODBC + + + + + Indicates that the column is a fixed length CLR type + + + + + Indicates that all values in the column are default used for TVP + + + + + Indicates that the column sparse + + + + + Indicates that the column is part of the hidden key + + + + + Indicates that the column is part of the primary key + + + + + Indicates that the column nullability is unknown + + + + + Default constructor + + + + + Initialization constructor + + Flags to parse + + + + Serialize flags back into a value + + + + + Indicates type of updatability of the column + + + + + Metadata associated with decimal/numeric column + + + + + Length of the data + + + + + Precision of the data + + + + + Scale of the data + + + + + Default constructor + + + + + Initialization constructor + + + + + Initialization constructor + + + + + Initialization constructor + + + + + Metadata associated with Shiloh variable character column + + + + + Length of the data + + + + + Collation + + + + + Default constructor + + + + + Initialization constructor + + + + + Initialization constructor + + + + + Format of the date + + + + + y/m/d + + + + + y/d/m + + + + + m/d/y + + + + + m/y/d + + + + + d/m/y + + + + + d/y/m + + + + + Completion packet "DONEINPROC" token + + + + + Status of the completion + + + + + Token for which completion is indicated + + + + + Amount of rows returned + + + + + Default constructor + + + + + Initialization constructor + + + + + Initialization constructor + + + + + Initialization constructor + + + + + Inflate the token + NOTE: This operation is not continuable and assumes that the entire token is available in the stream + + Stream to inflate the token from + TRUE if inflation is complete + + + + Deflate the token + + Stream to deflate token to + + + + Completion packet "DONEPROC" token + + + + + Status of the completion + + + + + Token for which completion is indicated + + + + + Amount of rows returned + + + + + Default constructor + + + + + Initialization constructor + + + + + Initialization constructor + + + + + Initialization constructor + + + + + Inflate the token + NOTE: This operation is not continuable and assumes that the entire token is available in the stream + + Stream to inflate the token from + TRUE if inflation is complete + + + + Deflate the token + + Stream to deflate token to + + + + Completion packet "DONE" token + + + + + Status of the completion + + + + + Token for which completion is indicated + + + + + Amount of rows returned + + + + + Default constructor + + + + + Initialization constructor + + + + + Initialization constructor + + + + + Initialization constructor + + + + + Inflate the token + NOTE: This operation is not continuable and assumes that the entire token is available in the stream + + Stream to inflate the token from + TRUE if inflation is complete + + + + Deflate the token + + Stream to deflate token to + + + + Command completion of which a DONE token reports + + + + + Status of the token + + + + + Environment change token "ENVCHANGE" + + + + + Type of the token + + + + + Old value of the token (optional) + + + + + New value of the token + + + + + Default constructor + + + + + Initialization constructor + + + + + Initialization constructor + + + + + Initialization constructor + + + + + Inflate the token + NOTE: This operation is not continuable and assumes that the entire token is available in the stream + + Stream to inflate the token from + TRUE if inflation is complete + + + + Deflate the token + + Stream to deflate token to + + + + Type of TDS EnvChagne token + + + + + Token value that represents routing information + + + + + Protocol to use when connecting to the target server + + + + + Protocol details + + + + + Location of the target server + + + + + Default constructor + + + + + Initialization constructor + + + + + Initialization constructor + + + + + Initialization constructor + + + + + Inflate the token + + Stream to inflate the token from + TRUE if inflation is complete + + + + Deflate the token + + Stream to deflate token to + + + + Override string representation method + + + + + Routing protocol + + + + + Environment change token "ERROR" + + + + + Error number + + + + + Error state + + + + + Error class + + + + + Description of the error + + + + + Name of the server generated an error + + + + + Procedure that produced an error + + + + + Line number at which an error occurred + + + + + Default constructor + + + + + Initialization constructor + + + + + Initialization constructor + + + + + Initialization constructor + + + + + Initialization constructor + + + + + Initialization constructor + + + + + Initialization constructor + + + + + Initialization constructor + + + + + Inflating constructor + + + + + Inflate the token + NOTE: This operation is not continuable and assumes that the entire token is available in the stream + + Stream to inflate the token from + TRUE if inflation is complete + + + + Deflate the token + + Stream to deflate token to + + + + Acknowledgement for federated authentication + + + + + Fixed Length of Nonce + + + + + Fixed Length of Signature + + + + + Signed nonce + + + + + The HMAC-SHA-256 [RFC6234] of the server-specified nonce + + + + + Initialization constructor + + + + + Inflation constructor + + + + + Default constructor + + + + + Deflate state into the stream + + + + + Inflate from stream + + + + + A single option of the feature extension acknowledgement block + + + + + FeatureAck data length. + + + + + FeatureAck Data. + + + + + Initialization Constructor. + + + + + Initialization constructor + + type of the FeatureExtAckToken. + + + + Initialization constructor + + type of the FeatureExtAckToken. + Length of the data. + + + + Initialization constructor + + type of the FeatureExtAckToken. + Length of the data. + Data of the FeatureAck token. + + + + Inflating constructor. + + + + + + Inflating constructor + + + + + + + Inflate the token + NOTE: This operation is not continuable and assumes that the entire token is available in the stream + + Stream to inflate the token from. + True in case of success, false otherwise. + + + + Deflate the token. + + Stream the token to deflate to. + + + + A single option of the feature extension acknowledgement block + + + + + Feature identifier + + + + + Initialization Constructor. + + + + + Inflate the token + + + + + Deflate the token. + + + + + Acknowledgement for session state recovery + + + + + Options that carry session state + + + + + Default constructor + + + + + Initialization constructor + + + + + Inflation constructor + + + + + Deflate state into the stream + + + + + Inflate from stream + + + + + FeatureAck token definition. + + + + + Collection of feature extension acknowledged options + + + + + Default Constructor. + + + + + Initialization constructor. + + + + + + Inflating constructor. + + + + + + Inflate the token + NOTE: This operation is not continuable and assumes that the entire token is available in the stream + + Stream to inflate the token from. + True in case of success, false otherwise. + + + + Deflate the token. + + Stream the token to deflate to. + + + + STS URL as Token Endpoint + + + + + Service Principal Name + + + + + Invalid InfoId + + + + + A single option of the feature extension acknowledgement block + + + + + FedAuth Info Identifier. + + + + + Initialization Constructor. + + + + + Inflate the token + + + + + Deflate the token. + + + + + TDS FedAuth Info Option for SPN + + + + + FedAuth Information ID + + + + + Information Data Length + + + + + STS URL + + + + + Return the SPN as a unicode string. + + + + + Return the FedAuthInfo Id. + + + + + Default public constructor + + + + + Constructor + + Info Data Length + + + + Constructor + + SPN string + + + + Inflate the data from the stream, when receiving this token. + + + + + Deflate the data to the stream, when writing this token. + + + + + + TDS FedAuth Info Option for STS URL + + + + + FedAuth Information ID + + + + + Information Data Length + + + + + STS URL + + + + + Return the FedAuthInfo Id. + + + + + Return the STSURL as a unicode string. + + + + + Default public constructor + + + + + Constructor + + Info Data Length + + + + Constructor + + STSURL string + + + + Inflate the data from the stream, when receiving this token. + + + + + Deflate the data to the stream, when writing this token. + + + + + + FeatureAck token definition. + + + + + Collection of fedauth info options + + + + + Default Constructor. + + + + + Inflating constructor. + + + + + + Inflate the token + NOTE: This operation is not continuable and assumes that the entire token is available in the stream + + Stream to inflate the token from. + True in case of success, false otherwise. + + + + Deflate the token. + + Stream the token to deflate to. + + + + FedAuthToken Message definition. + + + + + Federated Authentication Token + + + + + Nonce + + + + + Default Constructor. + + + + + Initialization constructor. + + Token + + + + + Inflating constructor. + + + + + + Inflate the token + NOTE: This operation is not continuable and assumes that the entire token is available in the stream + + Stream to inflate the token from. + True in case of success, false otherwise. + + + + Deflate the token. + + Stream the token to deflate to. + + + + Interface that enables object deflation + + + + + Deflate the object into a byte stream + + + + + Interface that enables partial, sequential and continuable object inflation + + + + + Inflate the object using the next available chunk of byte stream + + + TRUE if object is completely inflated, FALSE otherwise + + + + Environment change token "INFO" + + + + + Number + + + + + State + + + + + Class + + + + + Description + + + + + Name of the server generated the message + + + + + Procedure that produced the message + + + + + Line number at which the message was produced + + + + + Default constructor + + + + + Initialization constructor + + + + + Initialization constructor + + + + + Initialization constructor + + + + + Initialization constructor + + + + + Initialization constructor + + + + + Initialization constructor + + + + + Initialization constructor + + + + + Inflating constructor + + + + + Inflate the token + NOTE: This operation is not continuable and assumes that the entire token is available in the stream + + Stream to inflate the token from + TRUE if inflation is complete + + + + Deflate the token + + Stream to deflate token to + + + + Class that contains language names and can convert between enumeration and strings + + + + + Convert a language to enumeration + + + + + Convert enumeration to string + + + + + Language of the server + + + + + Feature extension data delivered in the login packet + + + + + Property used internally by inflation/deflation routine to tell caller how much data was read/written to the stream + + + + + Default constructor + + + + + Inflate an object instance from the stream + + + + + Serialize object into the stream + + + + + + Class that defines a feature option which is delivered in the login packet FeatureExt block + + + + + Size of the data read during inflation operation. It is needed to properly parse the option stream. + + + + + Feature type + + + + + Inflate the Feature option + + + + + Deflate the token + + + + + The Federated authentication library type. + + + + + Feature option token definition. + + + + + Nonce's length + + + + + Signature's length + + + + + Feature type + + + + + Federated Authentication option length + + + + + Federated authentication library. + + + + + FedAuthEcho: The intention of this flag is for the client to echo the server’s FEDAUTHREQUIRED prelogin option. + + + + + Whether this protocol is requesting further information from server to perform authentication. + + + + + Federated authentication token generated by the specified federated authentication library. + + + + + The nonce provided by the server during prelogin exchange + + + + + Channel binding token associated with the underlying SSL stream. + + + + + The HMAC-SHA-256 [RFC6234] of the server-specified nonce + + + + + Default constructor + + + + + Initialization Constructor. + + + + + Inflating constructor + + + + + Inflate the token + + Stream to inflate the token from + TRUE if inflation is complete + + + + Deflate the token + + Stream to deflate token to + + + + Read the stream for IDCRL based login + + source + option data length + + + + + Read the stream for SecurityToken based login + + source + option data length + + + + + Generates random bytes + + The number of bytes to be generated. + Generated random bytes. + + + + Option token that can contain any data and doesn't have specialized inflation/deflation logic + + + + + Data that the token is carrying + + + + + Default constructor + + + + + Initialization constructor + + + + + Initialization constructor + + + + + Inflating constructor + + + + + Inflate the Feature option + + Stream to inflate the token from + TRUE if inflation is complete + + + + Deflate the token + + Stream the token to deflate to. + + + + Token that is sent in the login packet for session recovery + + + + + Feature type + + + + + Initial state + + + + + Current state + + + + + Initialization Constructor. + + + + + Inflating constructor + + + + + Inflate the token + + Stream to inflate the token from + TRUE if inflation is complete + + + + Deflate the token + + Stream to deflate token to + + + + Login 7 request packet + + + + + Length of the fixed portion of the packet + + + + + Version of the TDS protocol + + + + + Size of the TDS packet requested by the client + + + + + Version of the client application + + + + + Client application process identifier + + + + + Connection identifier + + + + + First byte of optional flags + + + + + Second byte of optional flags + + + + + Third byte of optional flags + + + + + Type flags + + + + + Time zone of the client + + + + + Client locale identifier + + + + + Client host name + + + + + User ID + + + + + Password + + + + + Application name + + + + + Server name + + + + + Client library name + + + + + User language + + + + + User database + + + + + Unique client identifier + + + + + Attach database file + + + + + Change password + + + + + SSPI authentication blob + + + + + Feature extension in the login7. + + + + + Default constructor + + + + + Inflating constructor + + + + + Inflate the token + NOTE: This operation is not continuable and assumes that the entire token is available in the stream + + Stream to inflate the token from + TRUE if inflation is complete + + + + Deflate the token + + Stream to deflate token to + + + + Helper class that takes care of setting property value + + + + + Property which value is being set + + + + + Position of the value in the data stream + + + + + Length of the property value in the data stream + + + + + This property is used to distinguish between "value" position in the stream and "offset of the value" position + + + + + Initialization constructor + + + + + Initialization constructor + + + + + Flags that indicate fByteOrder bit of LOGIN 7 options + + + + + Flags that indicate fChar bit of LOGIN 7 options + + + + + Flags that indicate fFloat bit of LOGIN 7 options + + + + + Flags that indicate fDumpLoad bit of LOGIN 7 options + + + + + Flags that indicate fUseDB bit of LOGIN 7 options + + + + + Flags that indicate fDatabase bit of LOGIN 7 options + + + + + Flags that indicate fSetLang bit of LOGIN 7 options + + + + + Structure of the optional flags 1 + + + + + Order + + + + + Character set + + + + + Floating point standard + + + + + Dump load + + + + + Use database notifications + + + + + Database + + + + + Language + + + + + Default constructor + + + + + Initialization constructor + + + + + Assemble bits into a byte + + + + + Flags that indicate fLanguage bit of LOGIN 7 options + + + + + Flags that indicate fODBC bit of LOGIN 7 options + + + + + Flags that indicate fUserType bit of LOGIN 7 options + + + + + Flags that indicate fIntSecurity bit of LOGIN 7 options + + + + + Structure of the optional flags 1 + + + + + Set if the change to initial language must succeed if the connect is to succeed + + + + + Set if the client is the ODBC driver. + + + + + The type of user connecting to the server + + + + + The type of security required by the client + + + + + Default constructor + + + + + Initialization constructor + + + + + Assemble bits into a byte + + + + + Flags that indicate fChangePassword bit of LOGIN 7 options + + + + + Flags that indicate fUnknownCollationHandling bit of LOGIN 7 options + + + + + Structure of the optional flags 1 + + + + + Password change request + + + + + Client is requesting separate process to be spawned as user instance + + + + + Send Yukon binary XML. + + + + + Unknown collection handling + + + + + Feature extension flag. + + + + + Default constructor + + + + + Initialization constructor + + + + + Assemble bits into a byte + + + + + Flags that indicate fSQLType bit of LOGIN 7 options + + + + + Flags that indicate fOLEDB bit of LOGIN 7 options + + + + + Flags that indicate fReadOnlyIntent bit of LOGIN 7 options + + + + + Structure of the flags 3 + + + + + The type of SQL the client sends to the server + + + + + Set if the client is the OLEDB driver + + + + + Application intent + + + + + Default constructor + + + + + Initialization constructor + + + + + Assemble bits into a byte + + + + + Login acknowledgement packet + + + + + TDS Version used by the server + + + + + The type of interface with which the server will accept client requests + + + + + Name of the server (e.g. "Microsoft SQL Server") + + + + + Server version + + + + + Default constructor + + + + + Initialization constructor + + + + + Initialization constructor + + + + + Initialization constructor + + + + + Initialization constructor + + + + + Inflate the token + NOTE: This operation is not continuable and assumes that the entire token is available in the stream + + Stream to inflate the token from + + + + Deflate the token + + Stream to deflate token to + + + + Completion packet "ORDER" token + + + + + Column number + + + + + Default constructor + + + + + Initialization constructor + + + + + Inflate the token + NOTE: This operation is not continuable and assumes that the entire token is available in the stream + + Stream to inflate the token from + TRUE if inflation is complete + + + + Deflate the token + + Stream to deflate token to + + + + FedAuthRequired option in the prelogin packet. + + + + + Pre-login packet + + + + + Version of the sender + Version: 4 bytes unsigned + Build: 2 bytes unsigned + + + + + Sub-build number of the sender. + + + + + Type of encryption + 1 byte + + + + + Thread identifier of the sender + 4 bytes unsigned + + + + + Indicates whether MARS is enabled on connection + 1 byte + + + + + Client Application trace ID + + + + + Client application activity ID, used for debugging purposes. + + + + + Nonce to be encrypted using session key from federated authentication key + from federated handshake. + + + + + Federated Authentication required for the pre-login. + + + + + Default constructor + + + + + Initialization constructor + + + + + Initialization constructor + + + + + Initialization constructor + + + + + Initialization constructor + + + + + Initialization constructor + + + + + Inflating constructor + + + + + Inflate the token + NOTE: This operation is not continuable and assumes that the entire token is available in the stream + + Stream to inflate the token from + TRUE if inflation is complete + + + + Deflate the token + + Stream to deflate token to + + + + Type of encryption specified in the pre-login packet + + + + + Token of the pre-login packet + + + + + Token type + + + + + The size of the token declaration + + + + + Position of the token in the data buffer + + + + + Token data + + + + + Default + + + + + Initialization constructor + + + + + Initialization constructor + + + + + Inflate the option + + + + + Deflate the option + + + + + Types of the tokens in TDS prelogin packet + + + + + Completion packet "RETURNSTATUS" token + + + + + Value of the status + + + + + Default constructor + + + + + Initialization constructor + + + + + Inflate the token + NOTE: This operation is not continuable and assumes that the entire token is available in the stream + + Stream to inflate the token from + TRUE if inflation is complete + + + + Deflate the token + + Stream to deflate token to + + + + Token that corresponds to the row of data with null-byte compression + + + + + Initialization constructor + + + + + Inflate the token + NOTE: This operation is not continuable and assumes that the entire token is available in the stream + + Stream to inflate the token from + TRUE if inflation is complete + + + + Deflate the token + + Stream to deflate token to + + + + Token that corresponds to the row of data + + + + + Initialization constructor + + + + + Inflate the token + NOTE: This operation is not continuable and assumes that the entire token is available in the stream + + Stream to inflate the token from + TRUE if inflation is complete + + + + Deflate the token + + Stream to deflate token to + + + + Base class for token that corresponds to the row of data + + + + + Metadata associated with the row + + + + + Values + + + + + Initialization constructor + + + + + Inflate a particular column from the stream + + Stream to inflate the column from + Metadata about the column + TRUE if inflation is complete + + + + Deflate the column into the stream + + Stream to deflate token to + Column metadata + Column value + + + + Container for session recovery data + + + + + Size of the data read during inflation operation. It is needed to properly parse the option stream. + + + + + Database into which the user is logged in + + + + + Collation of the database + + + + + Language of the session + + + + + Options that carry session state + + + + + Default constructor + + + + + Inflation constructor + + + + + Deflate state into the stream + + + + + Inflate from stream + + + + + Session state for the context information + + + + + Identifier of the session state option + + + + + Context information + + + + + Default constructor + + + + + Deflate state into the stream + + + + + Inflate from stream + + + + + Session state for the first date of the week + + + + + Identifier of the session state option + + + + + First day of the week + + + + + First day of the week + + + + + Default constructor + + + + + Deflate state into the stream + + + + + Inflate from stream + + + + + Convert a wire representation to enum + + + + + Convert enum to wire format + + + + + Session state for the deadlock priority + + + + + Identifier of the session state option + + + + + Deadlock priority value + + + + + Default constructor + + + + + Deflate state into the stream + + + + + Inflate from stream + + + + + Generic session state option + + + + + State option value + + + + + Initialization constructor + + + + + Initialization constructor + + + + + Deflate state into the stream + + + + + Inflate from stream + + + + + Session state for the transaction isolation level and FIPS 127-2 compliance flags + + + + + Identifier of the session state option + + + + + Transaction isolation level + + + + + Default constructor + + + + + Deflate state into the stream + + + + + Inflate from stream + + + + + Session state for the lock timeout + + + + + Identifier of the session state option + + + + + Lock timeout value + + + + + Default constructor + + + + + Deflate state into the stream + + + + + Inflate from stream + + + + + A single option of the session state + + + + + Property that tells the caller how much of the data from the stream was read by inflation logic + + + + + Identifier of the state option + + + + + Initialization constructor + + + + + Deflate state into the stream + + + + + Inflate from stream + + + + + Read the raw data but don't interpret it + + + + + Write raw data + + + + + Session state for the text size + + + + + Identifier of the session state option + + + + + Text size value + + + + + Default constructor + + + + + Deflate state into the stream + + + + + Inflate from stream + + + + + Token that contains session state + + + + + Indicates that session is recoverable + + + + + Sequential number of the state + + + + + State options + + + + + Default constructor + + + + + Inflate the token + + Stream to inflate the token from + + + + Deflate the token + + Stream to deflate token to + + + + Session state of the user options + + + + + Bit that corresponds to ansi warnings flag + + + + + Bit that corresponds to ansi nulls flag + + + + + Bit that corresponds to cursor close on commit flag + + + + + Bit that corresponds to quoted identifier flag + + + + + Bit that corresponds to concatenation of nulls flag + + + + + Bit that corresponds to default position of ansi nulls flag + + + + + Bit that corresponds to ansi padding flag + + + + + Bit that corresponds to arithmetic abort flag + + + + + Bit that corresponds to abort truncation of numeric scale + + + + + Bit that corresponds to transaction abort flag + + + + + Bit that corresponds to no count flag + + + + + Bit that corresponds to arithmetic ignore flag + + + + + Bit that corresponds to implicit transactions flag + + + + + Identifier of the session state option + + + + + Affects the nullability of new columns when the nullability of the column is not specified in the CREATE TABLE and ALTER TABLE statements. + + + + + Controls null behavior in T-SQL + + + + + Impacts character column behavior (char, varchar, binary, and varbinary) + + + + + Controls certain warning messages required for ansi compliance + + + + + Terminates a query when an overflow or divide-by-zero error occurs during query execution + + + + + Controls whether error messages are returned from overflow or divide-by-zero errors during a query + + + + + Controls whether concatenation results are treated as null or empty string values + + + + + Controls whether the server will close cursors when you commit a transaction + + + + + Sets implicit transaction mode for the connection + + + + + Controls the emitting of Done w/count tokens from Transact-SQL. + + + + + Generates an error when a loss of precision occurs in an expression + + + + + Causes SQL Server to follow the ISO rules regarding quotation mark delimiting identifiers and literal strings + + + + + Specifies whether SQL Server automatically rolls back the current transaction when a Transact-SQL statement raises a run-time error + + + + + Default constructor + + + + + Deflate state into the stream + + + + + Inflate from stream + + + + + Login acknowledgement packet + + + + + All headers definition + + + + + Query text + + + + + Default constructor + + + + + Inflating constructor + + + + + Inflate the token + NOTE: This operation is not continuable and assumes that the entire token is available in the stream + + Stream to inflate the token from + + + + Deflate the token + + Stream to deflate token to + + + + Token that carries client's SSPI payload during login sequence + + + + + Data length + + + + + Current offset at which inflation occurs + + + + + SSPI payload + + + + + Default constructor + + + + + Initialization constructor + + + + + Inflate the token + + Stream to inflate the token from + TRUE if inflation is complete + + + + Deflate the token + + Stream to deflate token to + + + + Token that carries SSPI payload during login sequence + + + + + SSPI payload + + + + + Default constructor + + + + + Initialization constructor + + + + + Inflate the token + + Stream to inflate the token from + TRUE if inflation is complete + + + + Deflate the token + + Stream to deflate token to + + + + State of the client TDS parser + + + + + Sent Initial PRELOGIN Packet State + + + + + Sent TLS/SSL Negotiation Packet State + + + + + Sent LOGIN7 Record with Complete Authentication Token state + + + + + Sent LOGIN7 Record with SPNEGO Packet State + + + + + Sent LOGIN7 Record with Authentication information request. + + + + + Logged In State + + + + + Sent Client Request State + + + + + Sent Attention State + + + + + Indicates that a connection was re-routed to a different SQL Server and transport needs to be re-established + + + + + Sent a final notification to the TDS Server + + + + + Final State + + + + + Data types used by TDS server + + + + + Types of encryption TDS clients and servers supports + + + + + No transport encryption + + + + + Encryption of the login packet only + + + + + Encryption of the entire session + + + + + TDS feature identifier + + + + + Session recovery (connection resiliency) + + + + + Federated authentication + + + + + End of the list + + + + + A single message that consists of a collection of TDS packets and represents a semantically complete and indivisible unit of information + + + + + Internal stream that contains the data + + + + + Type of the content being delivered + + + + + Collection of packet statuses + + + + + Check if we have seen Reset Connection request + + + + + Check if we have seen Reset Connection Skip Transaction request + + + + + Default constructor + + + + + Initialization constructor + + + + + Initialization constructor + + + + + Inflate the message from protocol-aware stream on the server + + Source to inflate the message + + + + Inflate the message from protocol-aware stream on the client side + + State of the client parser + Source to inflate the message + + + + Protocol-aware deflation routine + + Destination to deflate the message + + + + Inflates the stream of data in this message + + + + + + Traverse the input stream and inflate tokens that server sends to the client + + + + + Traverse the input stream and inflate tokens that client sends to the server + + + + + Collection of TDS messages + + + + + Default constructor + + + + + Initialization constructor + + + + + Protocol-aware deflation routine + + Destination to deflate the message + + + + Type of TDS packet + + + + + TDS packet header + + + + + Size of the packet header in bytes + + + + + Packet header data + + + + + The last offset where inflation operation was interrupted + + + + + Type of the packet + 1 byte unsigned + + + + + Status of the packet + 1 byte unsigned + + + + + Size of the packet including header + 2 byte unsigned short + + + + + Process ID that sent this packet + 2 byte big-endian + + + + + Identifier of the packet + 1 byte unsigned char + Incremented by 1 modulo 256 + + + + + Window (not used) + 1 byte + Should always be set to 0x00 + + + + + Initialization constructor + + Buffer which contains or will contain a packet header + + + + Initialization constructor + + + + + Initialization constructor + + + + + Inflate TDS packet from the stream + + Source of data + + + + Bitmask of the packet status + + + + + Container for the packet data + + + + + Inflate the token + + Stream to inflate the token from + TRUE if inflation is complete + + + + Deflate the token + + Stream to deflate token to + + + + Stream that wraps the data with TDS protocol + + + + + Indicates whether inner stream should be closed when TDS stream is closed + + + + + Size of the packet + + + + + Header of the packet being processed + + + + + Cache of packet header and data + + + + + Header of the packet being read + + + + + Indicates the position inside the request packet data section + + + + + Transport stream used to deliver TDS protocol + + + + + Size of the TDS packet + + + + + Identifier of the session + + + + + Indicates whether stream can be read + + + + + Indicates whether the stream can be positioned + + + + + Indicates whether the stream can be written + + + + + Return the length of the stream + + + + + Return position in the stream + + + + + Call back function before calling InnerStream.Write + the func should return actual packet length to send + + + + + Initialization constructor + + + + + Initialization constructor + + + + + Close the stream + + + + + Flush the data into the underlying stream + + + + + Start a new message + + Type of the message to start + + + + Send the last packet of the message and complete the request/response + + + + + Read packet header + + + + + Read the data from the stream + + + + + Seek position in the stream + + + + + Set stream length + + + + + Write data into the stream + + + + + Skip current packet if it is pending and move to the next packet, reading only the header + + + + + This routine checks whether current packet still has data to read and moves to the next if it doesn't + + + + + Ensures that the current packet has at least a single spare byte + + + + + Create a new TDS packet in the message + + + + + Serialize current packet into the underlying stream + + + + + Allocate or reallocate a packet + + + + + Prepare to read and inflate incoming packet + + + + + Constructor for TDS tokens + + + + + Reconstruct token sequence from the stream + + Token collection + + + + Types of the tokens in data buffer of the packet + + + + + Internal utilities + + + + + Object lock for log writer + + + + + Read unsigned long from the stream + + + + + Write unsigned long into the stream + + + + + Read unsigned integer from the stream + + + + + Write unsigned integer into the stream + + + + + Read signed integer from the packet + + + + + Write signed integer into the stream + + + + + Read unsigned short from the packet + + + + + Write unsigned short into the stream + + + + + Write unsigned short into the stream in network byte order (big-endian) + + + + + Read string from the packet + + + + + Write string from into the packet + + + + + Read a password string and decrypt it + + + + + Write password string encrypted into the packet + + + + + Generate an encryption response based on the client request and server setting + + A value received from the client + Configuration of the server + + + + Convert indications of encryption support by client and server into expected behavior + + + + + Log object content into destination + + Destination + Prefix the output with + Object to log + + + + Serialized write line to destination + + Destination + Text to log + + + + TDS version routines + + + + + Yukon TDS version + + + + + Katmai TDS version + + + + + Denali TDS version + + + + + Map SQL Server build version to TDS version + + Build version to analyze + TDS version that corresponding build version supports + + + + Resolve conflicts between client and server TDS version + + Version of the server + Version of the client + Resulting version that both parties can talk + + + + Check whether TDS version is supported by server + + + + + Transaction isolation level + + + + + Specifies that statements can read rows that have been modified by other transactions but not yet committed + + + + + Specifies that statements cannot read data that has been modified but not committed by other transactions + + + + + Specifies that statements cannot read data that has been modified but not yet committed by other transactions and that no other transactions can modify data that has been read by the current transaction until the current transaction completes. + + + + + Specifies that data read by any statement in a transaction will be the transactionally consistent version of the data that existed at the start of the transaction + + + + + Statements cannot read data that has been modified but not yet committed by other transactions + + + + diff --git a/src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDSStream.cs b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDSStream.cs index 90a295bbc..3f03c80cf 100644 --- a/src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDSStream.cs +++ b/src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDSStream.cs @@ -427,7 +427,6 @@ private bool _EnsureIncomingPacketHasData() /// /// Ensures that the current packet has at least a single spare byte /// - /// Type of the packet to look for private void _EnsureOutgoingPacketHasSpace() { // Check if we have a packet diff --git a/src/System.Reflection.DispatchProxy/src/System.Reflection.DispatchProxy.xml b/src/System.Reflection.DispatchProxy/src/System.Reflection.DispatchProxy.xml index 844201a4f..993598957 100644 --- a/src/System.Reflection.DispatchProxy/src/System.Reflection.DispatchProxy.xml +++ b/src/System.Reflection.DispatchProxy/src/System.Reflection.DispatchProxy.xml @@ -4,32 +4,6 @@ System.Reflection.DispatchProxy - - - DispatchProxy provides a mechanism for the instantiation of proxy objects and handling of - their method dispatch. - - - - - Whenever any method on the generated proxy type is called, this method - will be invoked to dispatch control. - - The method the caller invoked - The arguments the caller passed to the method - The object to return to the caller, or null for void methods - - - - Creates an object instance that derives from class - and implements interface . - - The interface the proxy should implement. - The base class to use for the proxy class. - An object instance that implements . - is a class, - or is sealed or does not have a parameterless constructor - The base type '{0}' cannot be sealed.

    V3Qs()!!|I!NorENH(Dz!NdS4)}yzHO~5-muL|Rj_Tdi41SwDicxGj+N=)v=HD1 z^jn*@V9F^Krh@%Axv&^@DAAxn*qH@ODSq7HX(hl-Q97lp&m@qNQ9XuK6J9Q298r10 zN?wF?a^4#1K!QQNAR!Z`V$6tR!$yFcf>cV$vrzygom%XNCX8&@C_KWBwTv+F*lY;& zz9@}afn^3v*|>okr=7hBJGYo}vb`;$Dy5JGZ7A`eQTUnTU!+Zk|3OM>`VVPA4>b_w zu=#p~BjAzZ8cq8dwQ>|Km?l^!BFh=(%WSo(UXadY7`C0SSNRK9tJulcs71)>c7#H& z<7ag(-SvpmMw+&-DBJ0G=FC}*PNlw4R_FBLiF%>E4fOQoMQZ=Fv89uO`zl{cthi?o z?k-HFDVx}B#=@^Hf8uPeTPqGaUoCCN@hQQn!@TIX_oMkN`NCLo&1Wl7_QB23)j+0^ z-9S|sl{;OW9M&E4l!q4KCJ9lr{6Ia0qp`;t^8x!)J3~hH(JWNjU>)1=pzujqOz+KZ zJe|2v*-5v)?bOfOM6`ylm;1+3<8EIg8o8&?!em3I*b1`iO4rHH5O>M>canCle%I7o zx!7Nel{Z(~!#w7?TU)s~PhCXw^x^VV=?ta5l5SPI=IGne2l|flI8AV$)BR_g`nMJ! z)gfHgLA##gEG2H3DC>ZC_mN>O&c9p~(MFN|MPK{A>x<^vMSeCL2* zSB}4}%KM+JF0nP!5VavpzzzNRPrUj=5M$b|2kL3?_ZL{}FuoQ^!U;R@l}sUgeS~RQ zGj1jpl=qQ=OrXp`3Q=(X?m!{slxb}oS0QO?12GX;@2B;@T@)eLA+Zpc8?Dexh<&{n zBAnP$YXTNVkZenW?jRN{+I|+AOIi?BayRH#E1tn0%KoqenbaXpfj{ihU@!JBjeZE` zfff<4Nb6je6WHm7_{^6^B{pfML<%5aTV#|QMY06dZBGcw-s8Prp2YJuQ4FOhafTm~51C`1 zp)z>WGJGA9Bd%zt&A<I{YLT|-O~o@_`2#Tki1a@d zAtu22W31A@^&QtvjSoB-pZwaD_i1x{1pKqFpE{1wi+h>O*zzo9hHvZ{Nrr~sr`Mrg zI(AUCZI&)^yNb|NK|7D_@_-jwnCZ3^hk!2q8(HBI7z=nwYpv3asZf`Ue zk^gSBIQK$1E+9h_8@~$D9Rlb#HjY8ZlXEB5fybDY1aJlS9z4*ImXOJc_NJ>qRDR3j zM)6&TWQt5+%5Xexh$X;XU#e-q4T!B)prtV&DQ-+spdv1`}4zj1;g{yR3vbj#Mj5dI9luu+KTXBv=<$b&sw8j%bN+=x_iKb(_ig zkU$A{(9f?BPTd%KJ|xgb#wEl70Ik+_Zo1$roL>nIxO?fQgcS{77}NUgN1k?|0Tt)9 z`^fxnf6A$POV+^@>t25p!Oj8;N`QdYV=335G!@s_eod=TBI_Nl4ie4At4U8l6R(Le zUXj_ey*rUMyB&uJ5KyWEI{-98#1m~bTjNw>Q>k@ElMS-MrmJUYnF#3tjp0K6~Q%B2Kis_3@14eFzr{-SGOJIPQA+ z&`hXwwD6Ser~B%;2{`q}u)poadtu}yLht)hzr$+fyRR|Vb*H&Z$qWR6$b8;nWw(X* zK=oGYFAtV$fhec>aMI|F9bKi>!is$cWjtlQI*lH^yVKwF<%XT!6Z@G={e?iZMjAL^ zTYnna?)l@+TlvF^+xucer}l6IlWq#{$&EXMFg)UR)k}$jOSs`B!-Ok`aLbApx5GCt z+q{wQpPCgd3VdLC4YS0OCpF58*b&mv0$ygWrE~;8?rklQ&W4+d>@uxgR1HBbCSguW2Vw1%|zOjmC&WnLT;^W6!&|_fVBUqR`MUF+K#P zlu;D&g?mT4JUT|HvK_*&{nMReZ%Us5u~yyLQ5z%-U*=7`bl90W7MXxAInz?!Q5i;0 z8J+YWF@Ji|2isN@3B=d%5Y<251=XOpnSCEf1>DgCWln7!O-RG^6}Ew-HjCHt7N70R zDVFYJRy*Xp6K)vJ+FaGFEnQdIxhoZ=@wJ(@qKap7ZiU2c9$OF1Li+Drv>FM96jTY2 zqYCqIon)wao7eq7L+p!8U*jyumT)h;56zSPI&g^Rh=0y=mz%zl{XFYdgT7hJJHHmBNG` zF$x5j60Ex3e~H0c=xH{F!});iEe}FuQJ$1N|Gq8)I0Kjwqu+7|dq=jgaL?i@>sl9m zqlQkZYlon0w)H7sX#&xCc-g5DxXSqG{}jvSii?0>)o|}$ghQjqzbsF|QlNHvVm8Y{ zP ziu`#iQ~&dkm8c<)MpwG)AkV>JR{65Ktc)aikgG8Iv0$yJ3!h|AOI6Y;`CP5&U8(fr zOSvr1dgm(P^L>2l`(I8}taaWZK;QuY67m25EdCn{&Hr*F^}nk(Isa8}{#ugrTxRWR z3Z6+eAptX+w9+M)-#9M7fRrSpy|%|r{44n>e`UKbt(2rXY4<%{~qGy_3;w_ z^Kr^2S=>!BP*Py&`S(%@Y!*~XnCTef{($b$kDW-{4fJeX8-FdQ4=;KKA9#HF^^DE&M?LX*PS<8{og~~6kT1KQfB_U=j+v#FIDhA6Dl;uXUHl|>Q2V}j8)3D zd^Vf#Ciht7GXf0zxP;Xs)uy=*PaS5vE6}2w=t_->pOqJ|EZ+}Ms|H)x zJruL6L!bhRh!DUPQzkZmP2Zoe`la|n@+E%Zwy;R4*Aa?1EuLxwNf`%-bWsMHBE*n) zkP!i!GcFK=z8i!%;X>p{8B5#pLD{OKN#h~fsm1K2tULo7bl*LS1St!v;bH2xFJ8^9 zB(>tq>I5l^s3`|2<1uaPpvbJ~PKz=eMu66+?eQA<6ZvkLiwSCn@dFch$VP7FaG=Rm z2>;sJc4D*X{emxpOycH@pwUQnp9k%7f$*^$k;i z8F~CVIeDRyW=)GZw4(;Gh1#m{8twO5d|ajP8!Kpl3Dzu=J|JcmwT6M7>r%3l3_XAD zgKpPV3+HNJj9$08J_l`MoVYOuqB1CEXhummDiR7<0KhJFo_%}2fV$)1q(fl$3JaLg zn%BD?g$E|HR%_{LOp6S#3pBN(i@plb7b)YPmGBa=nW5wf1I1lbf~F>Pf!^!~F70W-xOBa%R#rZ2Dp| zw~_3;n{9%-BW#s<1}>4ma8o&BqrJxH_Clt3 zpES+IOZ3}xQ^L-=pu>FsMAMugJ20qRlXSkh#q!evF!6dC^f9UqMhfp>0fR0?x9PZ1 z%Wy|9G1R!VnjI29G1D@Mp3wzsie9;XkoxRz*u1$W{b9)1BWiKRiQr;kbj%b3zcjUo z0RuybW2O{DeKWNPKm!8`$jInoikW|(ARz&#-1a|DAY(xL_cu&={@p+#H2rT&7>#p& zt;~j&Arn*97}T$wMT8g{LT|RuC4&nMDnr8~DJZB_QFD;pnP4dWG`L>Drdw)Zfl%d& z6Cs3zyrbijo)p%trTOOK>4a(U=38>2!stqvNf!+RJ@;y(7L~ym1EqerA;Yl%YYplG2(Tz5aA*va!}Td=VeKs6pot=85%H(C9`5AC60SJ zZAQ6COP`b-kp?<2rpLBqBE*J|V=wO*$;*;H&igVQFfgPS5@tb9j2rP{+KY0Nk~%6y zCknWyPf3Z*z>bfY)=W51(vnran@#^EeVbD7mi-s$HT%CvE5`ptT1L0%$7r9?dXNRk zf#%`}%jt+x*w}y4Pb&o75%TSLN=DAXtKXmcXD5SMw)(TDhwq&CrFZt@+tJISuyuKF ze_&v8q{+&>a&z)TLNn{>?UIlAm09zY%)#YuKVIK^o^REq{@C01b`$HE1)X6V_f zI~vW|+hm>7o{|||6(;7}l;e-Ub<6FZR;)#HLzh==?Ce+3?0unb4Uqyb8`jv2(&&+P zZuwiv)bDv^OE-m`Tby&2Vjkq&*I&tt3f8^jT~>f-h~{1Oi*7H^V)V)Bq#CS%)*#wD zb~SqKWCoVb)tZnHST3uWtA^iBzI?3#y@)~ddHRdszUR?& zu8hMlsnWB5?qHCRPJHFq@P47al`kgb%D;Z!yFAoT`+9x)v{b!XY&@uWR8&K^YgS^n z+PYl;f!msKea#!t@;H~X^U2T>i!Pbs-Vc{lzMxU zVUFKoR?QfK8fDOPi3_3E+&`g1Xn{WgEo2L2mlAOfYuHZ<-&83C7=&%(+k=AxgppPTlf1L&{`LT!IAm?hZBSy!{NW*#<%{gdPB{eJWH~xYvL(A_c z;MOUpKdjDHSWHR%*@AS%%GDew~Vl)NpS<44sZBZ?=pD(qPG!;2hae<_sDrkxx9 zoP9qCy64m3pv421faSOd?502fA)psN2pp6eW5cE>t*N9r<;Tso7U;($nQpxNuhQK= zF-In~>ylfC6*dDU)E%=1Fb_0_`_N_7I|`hchOTeS5RH{QryUal-I=;CWGF(=vXv)H zUIetr#KrSRK=gO^xt((kmfj?@gW!c(0&OD*iM?F8KCU1GnG{(v9nIWkQaNG2i9axE zMu|iOLB$pP%r6joUM&3>GKW>;Fp@IBFq_71UF;n$@FAmZF(yqEhFM%A_R#Bu#Q-dL zC1q2%QNV+oFveSR7k~DvY`HA}9{D9V{=QFrSWgQn=yAQgbw(J_F_VV*IaYMmL~5k- z9dB5=W*qgIG}hXoIT&FKLw=yXR(!;u&=y(&=E1se`zlX6!gMIG#ACtZO85L42&1Fi z6;j9dV2IOAyQa+T0bkN7qo&Wo1!&WEgwweIM_3%+5Ip09?Co3J`Oln9sB&GSAIYP? zrMn1LrDN6RO=oyRcb=sqV$RFh?m};G3L_6*Dk(y!pC~bAhnla6`}BON)ekE5fqd>- zn>z&8wiA;#uVpSF)}<%Iz>h*9aBS+&)b)#;3)}6nw5q=S)9mfa?csek#OjElIYEUZ zj%?7Vp&g$5wA)qs-_QDLGKZ+$9HeHb$T$Zq`S;~@)1OVZE_2Uu6d6h2$rKcCZrmx6 zsH6KeiHApr%2qfGI1ggo%NASsEv}HRxsUv)l%mw=5P9w2Ex+O!vaCRM`Wr(!7Ln%+ z!>O;06vSSdL9v4G-?Zv!ug2ZF;8Eb2nH3V}_FG;_Q}WrFDSDlb|DfZHugJP zbsAS-BAOu4$Rgj#%zH!AwhF@L8-wSpC+i%~5RFzSekXL%<6b6~uI&V`W2;e}F3WlD z(1W}q3B<%7$w4Lp&4R)emkSl(HvQKA5$(e%Dyh^;7%MM~2gc$sT7_KW$nRBXL|j5Q z$rv4MqsnRxN!*3z$LSZyyT5-Xq^Ed~lb4vgyHW^gJ{#M-)2VVgx3ZhAmlch!!9CGV zQtP|-0BwAxAMKkYJ6m~UIc33PLFe7{PDe+yrIgpHIXUX2ysjBBg9_$%MNW_hktn6m zve8Jon|0M`Hts3hn|# zHZtS~b^}9uWsVXiS9MnpSGkI;7v2BG&Rf7n8YBt2ZZk8p-DYNHW@ct)X1mSI%*@Pg zGcz+YGqZg?vwOF@qq+B<-p%gaNmJ6F%J`L4@hdAcGAiPW(%yK3tl`!XmbZJ%JuDX7 z8gjD*#5zWq0Z6z|rUxU{(1)rA644gHwcZy@;cX$U+Skuij1N5fAQrym*jlf%cv!=R z*tI5))MhvJMAMdRw-8|@My%@v2qu|}fv&#^bAGY#gcs)*t+D%(hR zea8U?flS{4W3@46Wwb+=891=Fu5kmX$m&g%5yANymY-62(g82DjRej8^RpScHL zpN_O!NkyuiU)&qp+BL3?b0S9#MOYt;!y6lu7Fdy721hM1k>K4nd;-?XZ z2=dozSA8$|!}H)d2|q1;KziRt>B#W!?%kw{?VA*Wq)m*Rdv!Zr`zi}h*bOhV0ttlC z5wjbG(d+kh!s!aZ1^=}n;(-pEpRcbl7p7AH{`sddBMc&`cL@z5`D;(0EG$rFWo~*o ze54?h>#q%u?7{76((%fN|HUdu&@y!gO~&%3_!oFd`L}e)y9|rhf_oSE@j^yG#U6V1 z%rw;JhvCEhbgPVqyWs)c$NhQte~d-2Cl@jNcPJ+Ee*+Yw>}0~G=;UB-WBTv9{|Gpy z8Z_EOMn)v~ckvO4%patPCiypNGAPY&lj`7L5)vDc>gwcw035?P@y_!32ign#1IKv& z=S-iHt*zCcR!H$L7mcE^gUeqO{JZ|Y&Q_L^q-_Qte3$B(Z*3*+T0n2|eZ5euRZlWp zUfFKyI4J1v$$H7>IAr0^Yi+#*KSiiDr16XAN!FMwdmHxmA7Pn7r~Qu)prn})$>NmI z29g=YSHo}#VFmoecIuaGipGW(QOu4dc4s^_G&M(PlD_QgHY~>t4SMuB+U};u4H1&I z%-g^blNN0+mn+)Q_Ktc|!KDE5`M?`3;Q2X3fM4Jn;h!TGF@1IKcKe3Zz{t;q<+Q=t z4>LmnqJhKV@p?i<83cqqb)GB%024s$zYz%2{5EaHJoH~XK5y7AKDKm&K@?qVPxMnW zK;c&qFR=u|Mwi$~E0Sab5l7~H^Wg8^q?vEOm(c|?F3bg#AeZNz%M!$52O_V^fGJv1 z#dhqK{gXmZ2Y4ox?%Ib~jndC4(mlS=EGHe6&Dzm(-^KcpZvjWe94_?$x`L2fiwm{Y zMFdA4pAm*YxtAtas6<{Q{RpF1LwPRz0Eb6cw4!$r!1J2G)V7gtD01101$VJi-%_6K zpz$>OP_<)DPrx_}5g68lOY((1J&NsATEHtA-WRL63*=Pj-^-243S-)IbRt!+(z)^^ zYT~=MF{#^886DU0=AIcXQTKl^?C>SXL?%0{+Sd3Lw?HedzR$KLrLRD=teR_wM&~yi z>7d?JOsRc}JQc2?$N9kM@V|Y4{l`_g^S$bB{s-Bz`-4$i{{sVz5`RL7|Gxh}L8zzy zf>00rD?&Z`s|iA0$Q(LfP7YQGL7ZJZy!nYp-N3VQlRnn;JTGQJ^@PJkfiw87L|Img zo3Y#WXnj@M$LD*Nvnxix1xi9PQrj|y6E$FEm~V)2S;G9cryjjDA*@g+eXC03((UZK zYiC{`)=gLxf}nS2*|iZsKxC8UWLUi5`qCFRVV*mYcMxXDfOq5tfDOR_a3apBZ5cFB z`z70ZGCyN-uXJEC8svOnmI1by#;v+x$?M@3+&n-v9})#Rq%VQVObnt@p(e~zuQ7}Q zIg=VJV=JL^;v0`y=VXNlOfPd_rH2(6cRS{mfXO^>-?#wr3VtWR+D!cprZSs*K65Nj z3V{`nB?R$>%)P?{dxI@kO2tZ=5((O3ebRxkR^{1C)KIJGvf4R~$|s764#AuY()z6g zoGvq&V75u8JC}?ppHBR-MUAQLGEbpRiEO>Fg!t>j%y?nbu_$5YPjY$1ZzBgO zOGaYC)*fJDTP7k?JBD;SrHUP{htzEi&+q`s!*Kxkh;$!WL(t@weMWL0jhzj+Ya^7waiGR=1E-F8R|GItu3w!8XWeiXuO%SCht*eb14EzE7^A=#+iB^{@LT9cF#>Ye=5DF{lT-ZdQY|oPBjCira^&-;k-6PzS zFF-)5x!kt>O6$J7-&cG$OE$HF9HLl2unqNNoPj8oi212AH#voCnp`Mj9E?d=9fyZw zW78M{dW}!OA~12Wc;{saYbR#?(??PX`=v|Th9E`dfP&uaHdx5NEvFBefvV@Ft&>JM z`Ar|5sZEe^iDw*&$;qOYN)64q{3L0r<8nmNib@K`7-g*JWi= zd~?#XPDg%tZXmG-`2oFbTPS|xIukgN`W&d+!V1-*GjYQ_bD2SRsE?T#{S~$dmua zD(XT40C@jboYlfMMsl`)KIK0M|D&X9)@F?k**mAvcO+k82JBA^JW8BE0V_9RK?Ono z42ssqArCh?Yi&wH>2li@2qLH+wqy+mp>CS}`RGk+U598;R;&@FWc-)6AQE|Es^zf@ zle68(6R&SQ6&ydiSm*Ef{E=nBjNW*6<(UOvcC489?J1h}tld|;g;UVp()nv&7>-`! z7T&9@=P8=so!i;%<7Gx90w3HZ1)`8cU(grghXp_6&%pIC zONSQwPj6x5%o#!aroxf#5l^&kiz@2(weXd5im!-aj3NvQ(SmRc;KiXn(fyo!wifTf41n_rwA&IPJn7-zd(b~PkqZz zcj2cdiJvA9?zKaDaFT3DZmn6cB_8ED+8QRs7#gZXa>Ah)@VLP*OT4RwPzEy*#WZik zl4GXU0mS73H{5XF`rI-R(81;UUFycoPNgJkPR>(XwIuH8=uyTwrg&Q@qq(G~*VIUr zYrJ|5%45DSN8%>*&|elmTG>dAtJ)w@?BiN}+DR1O_nUx{9l4{}>(rJgvNXHhMCr6u znP>P?=lUYaB|)SkfoS?$Rk|B};Q{{?FOvr=$k$Oe1HfjfCjrNLI4w_g3=i@Md|f@_ zaS_~<%k?>4Nq48&z;{$1s_*-6bC&+Mmld9}+HU0kZG zXDv>0w~{l?Y*E0?dN8L}+z@)ecVE&xq*_BO7-hLrGBeKI}t>jnldBH$V?Tr2_vl z<%%NXbF+yKbXZ>6PUx8Nn)@C!|G`UYR=M1*wq8w5>nxg&$r?HpJT@U-z!p`V>_$+=%9n1CA>q*4R&A);rK=! zUJ-!6ZFCVjfKw~+o-_v~KmfXX~ z2+96Diuviu5M{s#-4TQXB7P#PC5keim^kQn?Q!BZtP!vgD%s#x?NYiF85EsF1!77n=qhD~Z$oO?mbr^N0ciOsxf=(oJJ)VMD66I7 zAhaQRrJ;GhDP!9Lcy|9c2lCBXFi zKd-gRZr}Imt*tLeeND!wPu?dP*iNYE$m5Z^-M;OEZ9CyJ*I{dgb}i zW(cM;b4V6z$0ISE`O}}G7U~-7S{n5~qm19{?)b|knk*hi`pk;*Oi$G~c&e0t6k!Gt zJnL$L(_CuS-;qtve(4{ylvSKsba=Zp#TWP?pDy!i-uk-icvfGT8P?R9Oq{YtwCr{| zznI>LmWB^Mn^MuvHiY4|MCM4qoW5k;$Fps7J%7%wxy&eF{thmnjuYZz!r4XWqm<@v zb~0SKgI31W>!E7qfXdMuZ=Q81w+tn_H=RgLZZ7J)uCjS)oaWG{>XG&5mqgjkrY9y>K zUXA3eJelu50#d+!o47i@ zK4stHa`TsZ0l~LkL#x49vdu`fM5iL@y2xb|IQ8Ri7m$h0UVOig>26XCxE(2j zt>!{?-))_dM@)5?E4<82r`cb|E}Smi^Rb={wj!5Zx4RA-B5o&M-Iltn?YixqAtk#P z?hBc&S2^VsYd4;q_Y6&VT`uV{o#WXa-$nMCtm`)W>vso_&Ga5$FZSu7``s2McYhQFg5n@!?PsIIAxW{vd?DZ6!4ilj? zDD$yYY8|4qI@-I(s5x$=rJJ9ZAkGiGu4W`1XF1a@9<1W|p>y2t~b5(g8pi zpl-m)c_sF}ayh?jtxv%-)l0s6AV3wO>5s~aeR};z@Tae)USLXs? zAUI{*?ex6jlQ|9(i4<8Y3RxDNCeoi}Vd#SK>4 zq(8e5y3>{!zys?uKxaox)gniushg|{lD9nqk7r3tkU}m~5x%_eBaI5?VaW_Pa!@mG{7jDzU!^ZKLq{*T%tT{Ka&dU=_X^q9duRa8tg z^D;lei6o@bL&G{oRfCaa$dSQ~;-$VEKqLQHWLkH^@Wk}LR1l=IPyohdm>K~i6ce+$ zj{^3IOW!(?a7F|056%}xvT-rd6UnH{yOA4+4Kw5+=a$&{vk)qfDYmb7$&Im)s}Q+n zB$CGtNQWbj9@!X=jV7QD7^a>%Ah;K|Tgmm3*JNs0@N?0SNKRCn1VA#V%XBs2!y!9?n5v=#HX_3(|ojhve zn6oWc?O)gN^pa;s&rBWGFs0(fjVw2983v=ig1O?07f5VD9J{wwO|i1J8HtwU%eeg< z-46<0{1utyyzSJ1W)i=?{K-AU`=JW6bmI$>&9Y{md`BG}OyJd8n7F%R>d1^2N3=N&jxv*=fAMaW{ z*4lW~ylu~%sdAnh-xZy<-xYWI#PwzsQdey5{M+ z@P;Rk_8eB&F&l&TZACxN=^HUG8})rqXjIV))CV*-%!fwlFEAF9(+jG|ct}xxmddtJ zLDhG{df2B5uNPPM%P3Eu{s3KQqh}bk&hQ4Eog`WT)@(0bnM=29vyQr5OXYvco zE+gFhE~%1FIEj?oMEQ6XZ;o55Uk)aOB-NvXD5Q^6aeJW*#0eDcT^Y>7%>N0?K0$ME zIV@9Fh#YT>I(N{fzee}deSf^S9`JomSdPQ&Y$^zzCqNVCj5cLx0=W-U59vsw4)+(H zGVTClK%BpD4>Y1bM!D7Bp3VadBH{ z3phdQ;ZiX4?bK0{iOQ?vW@bD@4_wxIeY6;*COm0@+BE0@g}3`dw@)_^_m1rw|jDd(8K;mfc*TOqAJ$4}b*7;L1376x{F4>R*U zXW3?|LPX=%R&+DeoSmq;M3@<^$3=8@^ieIT+HfuNA*9IZ8A59w05#w-_^(s1IbH3* z<-0^fHut?s0U~L;T{hGdJv;_@!4a|(niRo1{8&K;bfcYk)gw23P_Fv`(h=T`uorml zwh@6ajpyE3_65%C|s1*Tj z(LTncSRS(vs9$<*ci7HH*x-gGA4K=wD`}^RJVE`cl)Ir4IZ@5Z<3%tq?3(zA-1{zvQVBn)ZA! zFSO8|wVBx&a4(N4f41nhebPC^)u!D+-lC!~!fXPl6%s>kFwqgJKv0mBXCvGjlhJ zHog$@BL$$TF20qBoTWDufXdp|3>MJHh0LRSg$KH4trzDZ)PpnRy51!Xj0>N@A=GvT zNul;E5UjLjy6#j1q&u!54fk&9Yx8}3xHB@q!8^4Z(ucUXvfXAiS`!9gz3DM)NjzJy z&Z1c@`WT<=%SwuX_;MWTkWpZjTGS{3>uZa_US9BdzhHU`Vnu%4=9@lk!|%P36v>$U z917{_U5aFfkAN*z3XuL~mJ{Qhju03K2~lvIyJn^Rc{`yo&#>bft9vxf`zC&{-!8o90=gf8f!5i zX_Dh~$6XoHgrdscM!k_>|LEpUuwy{)n;d^#gJSJY;3ryR+e0%&@?jVwPkr$~?--)iSGw3kGt);JY?cn~WV~_|jLP5e*e%SEGkcC<-cjo5IWq zKObP#@N*B?XKf~)C-R3`2mEO`h$ae*O!tf!nDkqc=-~hy>`F6%{ky~h^K*%g8Hv1M z!MhnycuflueIm|RrIw+Q2^B{|e)nrJ8f~)nU*@5NmF!f7xTsubJZe*0Ys((-k7)l+oSSO|;zvP)k6^O>?SOz9Qcr;)Gy4-j-l@1n846{Te?hsOm&(nRX`R0)I zIwMYv_+so2EXbzZPAsU}mVVnT+zu93JPJ3(NZ5fhfQV2UcRkVx6~6i)aT&idfM%5z z2{rOcEu5Va6@F)J@@Ps!2l&kJsM3&qpCX$jZAE~oMo8IkB8#KXpY~I~*WF#MIcYgB zJ$D~_0Lg%IQhiJY?hSvnyG9x%#<_YV_|WX-?cB)OJ@mfl??e?cwj>i7jNipgywuQ9 z#|dAZ$;5BogP0Q&{V5rng&OC4k#o8l(%-o~PZW?849i*B={@yp5c#(8VGssvTB`hd z&pige^pw;<5AGwfkS4lVPK%&4>bH{yfD`z*0GP9`9w&IDj!&lN2r}Dx6n4-rvJ7VZ zq2_apBNw90H_Ie6e!i@)8M~h>u_S&fWImKg=b^2eyt8_ow=6 zHi&HaVK_zy3+L~uXA3i!P8rvlG}6Zttg+aCMS)22hDQ)b$2qW7)jE;V4(2y(^RT$se|Mec7Xf*DSDc9I8 zOA_OQdpEL=d0^4wrAk*boHrRwpJ23Wd4!2SouX8@{HaV(-Qy|FH%0fA1Gp%ho5W;M-)F}QT-Jl zU)5HrDalG(n%<9zMin{-FVnKsDJnm)>Q{OT2BI*^=}Up&vV15Xh^a7jkR>YpE7bg2 z{YQdEE7pjW0?aM3aY936IVgXHx!vnd`s;}bEGn~CAwlRTWmRs>lM|K1 z1JAP$phU950N#BgrLezf-ayyH&5@Ua&ZONc%!C#fa6@75+|L5sD(Ba|K+jLpsRc|_ zV%Vg(4cwP)JTLJ9$V0pUC+3oNEcBVEHt1kM8d*OBz$H>0_F83>~p1eNGq^hb|-M$Y$98j}zoc$9YlU9Ow~2xaWA^V)BF^`GoMOCX%w#sn7d z3V{Lu5Or(&KrN7<@sJ{do;zUUnD|UjCIigNtl(HRah+L?RI1kJAJ$oYrsR;f0cf+z z-rRl{iUXfO*Cs|CgQ#n-&B18}!4ABp^xZod`;nDhkrB)Y$Qy{z3Fx6-c*K{VCh}LH+u^9A|4F zEhyJ8tW!_H9H^C$y^ErDPmT_8#dbwz5#5%CiH?TxSaZ{?*LxHQ(H%!nnL-o4Y5RuW z=Qvn=mCW%6Z8-I-33M|$1u&ZMvg3Y-2^4j*4i2ji6LO$9!}cpB78M&kl`BY~hqPF8 zN(zw+)v8Xr9$bf>dg4l*)12Ad;V4sgpO0)2COEj4mJ{1?zL^WbdmQ9V=|l{?zIiqF ziigKx^(u^Syf-0<*~(l1_)nV?z9n%{Qm_y((&(A~&Q3$tlakKQ{ur?6m4q15Zg#$Q zL-5*QToL%OM5nwRc}&KvczT_IFoLw^f)lM9w)@+RotIV!M5H}d{=}e%$=S&d71ljO zAJl8+bME|O^$;JQuK5p}rz9zF+yLAn*a3-S3f94fXbX^44HnLyyRy~Jh9WQ_orDnWM zu*~yp+Jaj1;SSH=p%|cw!)Z&GmJLtpz-t`nMIvv(MY+EAB_wp>C z6l$5EQo{_!2rZ-FaEzYWqa|`cQjL#S4I@L2EBWl{x%(f0d8WAgP`C(Wy5GAWY6fkg zAn%G~K_~v0r6u-GZ(84IT*|ldvZV-HVJQFZi3G2lkehiW_s;Q2OQ(QULMhGfZVqJ* zZ{Z3R$6LpY!y4Oaw)KJWh$ZhXUNmt_tRYOH#mA8{m1#ks63Rjj)GQn8ZqJ-eb*b@? z%b`fT@vtHjdtGne3Dz5(~DJ7^_s9kuG*D=5e|4MIi@jLw_A8g z(0T82P`pi}GOpJLY$83Zlqjmv`#<1V_SG7rS95AV{^svd$Cy_6U;d;3NB{rl(ElGo z_WyD^{=IvDmo#cpnY3B^EAhr@RVCI#V7VX5ByFFc7)ur+B%jN!E}-e@2lG_j)LuNJ z`Y)u>8<-&-IRUTg^u#kG=l*7Q_jlv8iN0SkKGER>efkOmJYCFtVifjImHtmdAaUVT zS-`0tdUVz)8D1Z=ZHO=MYys~npjWwt7DND;(L%$>q;MH2MGr&pumOTc;1sXY+F`-@ z5OQEHK>gr5Q7NG9M(XpPnHg~69gh4XRsUgxGrJ?jq`iVQolees|CJEW*l?)UpId>E zI~R`-brubTt2ia*Q>h4w~eM)|CA=zF<|c-UKz`i#8|CPqa086 zZdZZtn!S2-qw28AuU6N%K>vdp0i|ie>v)!e2(MFJ99=2$+8*#i<$nm_81|D)8i=5v z(i`I6Frm;eZnD_y0W%~Z;1f=uo>0Y@;GepVJDj6bQiz5(LsMXu5F1} z`H*RNDogQD^|M{bbNzDPCw}dol-Bv3;&+i`=fwD>cgpaYxqMxoO&$tg4=5eE1bKP3vzEX0{l!kPrm<0G_x67{nH(3lewtXdcy3`S{Q? z)ojpyiGViU+MtZ&COn8#g_kgEtCsZSs_vq$W;6G_d-waLUktc+pN>U3qON+fF*F6JO6Eu^K~2r!g-=ii zjbfGC18Jr9`&|Q#BC_Cw``K)WM0XsLdQ+{El0~?H$@-Lv4Qm2ZeE|}62b_B2&>^cv z&vgq1=!wSo$0{aZv*4wEC1d7YLvKgdkF!E3AxxI0*(z!%bt*&zQ%%v;JSwslO8nuN z%L&ZO5g31-9=#Fu7r>Gb0tzA^qC1Iqdlh!~d`(k4VWJ^%v8s?JUA`l@j6+a04b;&~Z| zH$I)R+f!CsU$9qh1evODhFGlu(Wv8wBDH4G?lN42lhxX18a1*w0L<7XU+j9xoK7<* zxWtycb~d!pZibc>NYkv^XV{MVn0_si-P!S#u0DO%oC?$bIYL_W4_s9;f7Xhsv4Ntk zq2*tavj3wi=V0q(YiMir|8?9y(bIpTr~fCSrzQUv?3I5atN*tktN-5JcK-)M&HwRa z|F=8;bhZEKYX8&K{=2R=4oJ|>J&vU>9_4#Hh1Um} zS$a;Q=PFL+KSc?UW-+0qdMd5n8VuYB)#h5F% zSHlM6pX2j}L)T77eBd^scVq>^j5?wG!!rOsso?{~fe`lp$cX8ve4R6a&u6#DEO2#_ zW5&;w0VEJIs@OJoOj*nosx%dBGp*-H(X;GtAK@ zZp80h_5|6Ss5LQ6KRQ7*ZvM;@Ce(~jxyCGpUTWODz!Rq&`jpuz+n%cg2Y)s^PdS>R zhYi1ji>|bRf<6ebQ5UT&Z0h|*8Q6svx}cO^j@e?Mx&TZ#HF}t56$^K`G9>dfXJI;3 zC>TF*KzORU))5^S4rIhns!5a7K}fjds5a~jx;S47x5Q3I-~7ynslrM?h{(=VST8*M77KvtBPyt&E`96F8tr)!8`{xePVY z74DSI?CbLgO7orZpBf56CiHZ4uo|r&`U?-H3q|Adk@%V1Eeu31O(-1(x#1Pj-RNHw zD>Xl>XE$A@^=Vk*0*JH#Q5>H@L$G+L_|2&jrRXr+aZuhseLC!Q1 z4s5ktwWJ}oZ2~aE`0|>EXo4&*6wtL%iCMrkBXcwk<<%EZt_pZ^3d+!gqgFXlt>oV- zw2JF}-YDiE>C#<+&1X;><%10Q7}5R5xhDOJ1{(OpIZ=pV;0p@g9G8Bniyi98seGu6 z+1*8|L`)Fnx65)TY-wu)K#s+A^HUc!n2~5P88OGiP9Td5k?zfFlH5XM`02%>G9&sZ*HKZm?)7?bdNKQ0H&e%N!pda#)>S*31S{L(jn zZHslMzQ-?Y9lY+&NqctPxIwcH%LXSM#3*IkSNPEKfo-2|TIebg($=9R`*9^$+bF{6 zk*UxYBxcDGjyztzFArtYD#sAXcFEh-SpIlb`h`Ty*VH+GG$bjb|K6C7^E=)oQq2`& z`qN5OmaVz53MU60+{~0b{RNAf#_1)OxK9oVGq)5&Jhh9Ez#=K<{T(q)r?Dp)(!Pn2 zU%;6PW$y&M3MyJD^w$s;gkNqwb{4gf7y$B*f?p!!eI%GDsnSgPVo8y+67T527y>9? zMTos*e!EF#VCwlQze2~3!G#KL_s`CLx9$jyFwqutKS5x5n;F|(u{HNAHv=^m4Jec+ zN>OJU@8x0@yEA}K3oPA)%~AtSik-1OjE`sFh<=mIStV)D zCT2AeS&zNj32qHD8nUH?ECG~wR$_X|94g0z;V1y4XwcW~=pboP_sl>${)XVH5u@;) zpcaXBov<`a1q5bBA5|gFW=#f7jfxXuBL@uLFXQ2ipkho+ZNgNCtl-i=m?%XcQ}ClW zh3p$r2m@K}5BAJg?a!uM?mucg*RMJGa}}NIkAI-lHMI}#KJK7=daSIWOx{?!KMVC= z?oz78M%E={w>cqmOaM2&B0qQ_33@`OpmrX(#<~lo0wdC(ff9Ed{%@ zW-l2uX)m4KKy^CryiBOtFyrl{H`8XbwmEGStoH zy>zZtR|pTP{Af+i>6OCj;(<-s-?fV;oo26Nc|-|$Qyt~%>>-y^>fID8Fuf@a%Ae$x zhCC+Y4a=OE3O$(FiVn$i6++_I_X21+`o$eOCCpbbTHD+ZSLhRCuL(j!!K4 zn7&q(bTaiJI3XheS7nbvCU|+@xkkAR_Bdt1n0YO7C~RFnYSqv`ZD7r-s2ZT*zG?2f zBHsR>l34C>DmdcXnIyt_hd^LnYf7eZgx;X6AyzS^C#iuWi5N2k8F}&J6&zAx<_$Qu z_1ZuvKCmR8trVLr=TX3u6;O$Wo=r`KJ4;avx|uQzc!ccHJ2+}ap=3usr_0>>3p}u9 z{sr2Yw!P@%5_O#0%|HXTk0zg>K@^v|5y4JTp-6>-D@Bm(`mXRL-Ucn4_SEH@Eq?eO zf#?m_Se%JxOl02O3El+p+C!c&*o|qDcHk$OEewO@g!`d9A%v*hhr){PCC!R?t-jdr zD$ui)#f+T;&%TH}rTpqZ<_#+EH8K^!h;(Z~AI8eUrekcag|#PZbg&%d^8E1Co4KEE zprZW6TFS8XB-F?nI=H1@n86f<_2GrR$}oDfh@=1mao)Es5MSejQmOlFQ9qpMt;FhR zs4>7s<3tHf$>B*LC3*OSsND7A>JCOi;~J2`k%EZv@ClPUYDd%@4xUETAp^tu;^E*C zBz4q`sMzZh52!%;g!D(jLPLpZsTh*6UsW8E0rm514}gRQ;?YnsB%>$j*(HC`$*bM{ zAT$_-iiji@h0V+?;!7o?dIdnJI|vdUiKooK3n+yz6w`V&h?_lx5gkf34Dipa{xe4F z&lrTmAmOpOL(k-AI%Q1LUpp&Z1g1QH9`*juqfU70$I<(?AqdMTv#B6=`Ok!k-GfB- zYcc%NU{i5ALWExR`Vp4OnPo{T`$NS4h9gAS?;wM&FXToVYnLzZ2;-;!Kru0sI|fK# zEar!kiBl#z@NS9t&%M|gWCD9kl%T|X@Y5ABGV}*MQZs8pwY0VIJ2i667Ic}bCF+2< z0q2MvBgbim(F1Y%TS6)4yilTfZ920Fa@sU43KCp|1PBw=0DeP;G^s8Wq?piAV8+_s zT>3OA64Hn;(E%fW^)&AtUBAEyh1;b0AD|{zdH- z`d`&HjQ&+ET{kvJV(5G!;}rTxSZ#*gOqv-3CL9Zd3xt8(MZ$F)kAf}dEsuLa$^?lj zfUtXQGRxt{x#5{1_Y_JtC|;1r)ve|16?F24$8fb}=Vt*Ki>NN8enL%5FIGG4^ssC~ zO3E-lkM20t=_03Dw(o|sr=glfpy$cvam2OD zXsB)tDca+hzXmw*@jGrd_!d}E0YGc87_hwM{-Tv%4dS!CroHS|`1?y0I0nGNAwZ~| z(N+-3V^+G^Gt7#XWQJ-4xBc@VQ?f*jT~ul`3*G;2uBQoiaJ)#Ub%@zDMyw{hv< z2yq)SSO?k*Z$SxfGrc*o3s9$aZS0bkvZ-3liYdG;%Ln{wOZqNeFu;s^sMq9DG{~Lq zm7ov=5nZlvrvUv7lM!ujmY-HlP_4D0T0I(~~Mv9tG9CaU_&mjNs_ zG?IrkxY~yiHSRi!56c`QsGL|b`XL#`_=SUmRv;&=Glhq<$Jrk^q6-!<RIqAW!l#2r=a zee093b+Poa9$7(?AcbwJGt-tC7i5h3?b>Dc%9T83?J03{;xRc2864k@*&XwrRa=+l zWg#IZZ7a%K44v}TUG8gWu30wf$p6C0BI%FLc4$riNo+I|+z`!5C+k1#^Q+|7b5 zE&J=-fXvyEg2yDT82y05kXpKI>I>+RX_RH48cm#N846Q&w|feCMuL`QobfQM};$=-GAR4Yebc~*?cSp>m?JS& zeyqIBfIJ^762Lc(Tw=148fz?z$c*BRcO0s0?kaHuL6Z7CqezB8vdJkUusGV(@cPk% z00Wv5z}jra8N@|R)zE953a)Ch^A1&u(}$Q~ z$_&o(68F;Eo~mQbO^z2^&hoyKY^XGohL@F1Q!zy*b=0w~;>OaY4=X18?Uw*YrMw%D1f2#1J`uMM&b>;F3(__=o1uP1t2F6%d)&; z%G8;FX_=ihrt)_V2yXHy2=P$Eua!wcA%elhS52jK-J z$m-RfDd3-JOzGHJ;u^zg?eA_(m}X=fiH|o!;&pO=cUeq^Q|h;D!v1ckyGuJ>4_G*B zYO|@{I)63poE^Ox6qfb!!Yj(Y!$P@`e71-?MRAN!%BxMv&>as?rZ{MBKQ0xg*3GJ6 z;0@Zk3DIU7@FYx$&=n3v4laq-QH8Cci6IpEep&Af5fW2E@j%MoG{cIBD@|@D*YLTv z&OVLi+8?8xWO#ORD}@-ZG1#TE;Egb_@#$8e9Fs%wOmHujw0#QEvWUaj@NFD>KlJFr zOX1lnj8V!Pg~kjNIahdr)SZH&JItX&gL3WM0Tj~^b6wr|#5vGZGCq+Kx+E0$Tw0V8 z%x&S(s%oV}$4+B!dFJlw3!7PT%Z^{H999HBxZltY>9r~C%nIMf$e8v{bCFzc(Jat0 zBt9b9r%ypi)o|wiP#TI_6_mw-tytq}`Lc4t8njBl@kb*buV5GEx@bv~&)XbF8Jl+h zT`~E3SOsf%f|g@bk(s#7qxiBWl=g;YN~=_Oj0{(wJXFoa()| zO<=)9`g&E=oWaJqVR25w2g})|ZBGI32eqmeosI;uf+o&`fv?Pws2B4$h}HOaxqPL;%-E$Zt~J_)|$1Hm{AT9V|>b+jEx_Vm>Eu z*}9zCX;dyyD&MNuuv;muBFGThO-8iBla4AYEFJ`5hBc-HfCb!8hUzp+#7!&}+P*%~ zf!Q}&ZP(m)Ni3bS??`ol2)`H4~|xE4=o5o(+?oHOd^iluqYs zswU5AsLxh1v8bJ^PxiAu)vzh@4Xyg+x}+KB4Z^4P7`8iO^WS$mAh{oL2u+@xGQP9$ zF<7U4dVu^+FW~Xyf`^~yJVnd(ab~~a?+wN&fE7*S?5!3C`Rr%(qn#Pie;SZT9J4V7 ze<5dOD$a_=0pMeaiuasw`bO6c8V5y?;HF5I48CXg4hZ{I_0+;DFtKtDF+q8|?J%9g z*}g2+hK)$V+d?6npV@zBB*-EG2^a0+p_P`?U2%3{py;mv059gY+Y*R|+}WT_J?^+o z)-PIZDnu=V>ayDg6>OT|G>Ov8Sg&boVc|5zi1kn-S}n_JQk(a*=DBnje9kBlX*cVN z;kYrkP_Kcv%N-u&bZ_fz@*v)EK=(m-T@zk#2Y~}TCCrFj?9FucZ^(s7-glFEZJ}^N zt{`ZOOBbl9#;<0-2uyEErrgKRewT%ObD&OX7T=X@DowmJ>Tmeiv_zlT&Yw~$31!J( z{5ncOd}x~|cM7r_N|m9ef0=1T`3#XB;Xv^XsFdw|?f&#W#hX73d&Rn+tHiorsytoT zpvaJks^L_>=Ek&eTWOHyw7iCn!b=o)fxRkVfxOTgNiwX}l$)_*;W!c4XH}`owiagf zkS>vy@tiZAFXJm{AR(k?*ty#9VB^xqx@cy|%Ey4_ap0gbvckRUQ8+FQ4Vf_B?K({Q z3eeCL>rHoC8N(2mV^){VCBJbaVGY@3{U~A5bU(W;UEZ@R#BmF-A3q2Nm?q*qBCGHm?a9%m)?CAA z8d^M`*Y#Of-3719(*a$S65Nt0yU*c@1eZpCY%=T^2I$yUsDhCF*G;N?m4)B=J?N{K z#_}-|rLm4)y*ceQs|LjvXMIi>;q9syx z&-jA)fi#+b4umtR>sjVmn{<)sLw$bT=(>EgzJ}x!GV|VpIa2UW4ZsRIrSp&U4FiJ|32*&^?k3WZeBV{pO#d_d^#JoHY9Va`--T_sB@D_6k5KU7wor$mNN{> z03LiQx@A4JsjNwu$Dv;T=45^rBlj{CyfcES3qpK)o%NI#rBf97Z|uEulxR`2C)T!Y z+qiApxNY0E`?hV{wr$(CZM!@7d*4h}-nV8l$;-=RB`g1(Q?*akUTfFcsQT@ybT7KQ zNQuQ>1xnS+mkalB}N2a!L(eQs~d==zbe zYAYh526H8SzZchAm?Vgm`Eu<+rfT{#QA{qUNEWW=2sq)2*}*~@kz_18`+xr1K?)DSDw0P+U_#DqI-G` zbhvz?EcpT?A>_P9ZMSDLStA4zw?v;6?DrTGXwER}nN@aiDZCw*^lIabe^( z<4^bPZs$jsJA^XmauUbGJ_II(VMnC7N&wFU&f<&3x8jIotp@f9sH?F)CVD#^G)ZMl z?w1OI*iPx`pC@@uq@0+8cQ4tG2cT7IGhS8-&c~QzTBvW7Ubg@r7t-Cs&v7GPqDG`) zs}JpuYNjuse@TnM6L$0TcYrwl!l2^*FAvcFF!cU^qV4~hpHJI1g8{|6X7PvrcTpof zSpX40?!QK32~r{1IoYou5sCD!+x>ph2Lmf7>-FQE8^KKYd138{ScH+0lkI^vvdr9X z=(H!3H;dgEk>K^y{`y1xX^8uRiHHg48R#$-!1X8iMQ4#*F;(`HR*(-|cSw3HRkHSO ziQecSBxCLEZOYnVha|_zp89X?j#gq@b^Tk>p|TyRGF`l+Jy4jUX|p~9Sp8cxS8Nls zCJnN}2jpdYysvWppgzX)Q3+a7pLhg63q1W=U>rhL&|E|f83d?1 zEN?^aW%vL(xA3#5#_^z{7r&j3?zM~U=gz*~3l?5a-ZO8Gij`}%et)UB2T}7;Sn<5x zx|XTV3Cji8=mYDyRlzkNu`fK(9CKf!){n%MC&3GE;#X%Zp* z3bL!uCTb>L^lrA)tB-8lQxqOpwN8_$n3Jxf0~Mf4YRs2<0Pu;Fqg8eAoKcSQDkwm) z+`4fm$ElIO`n{E}a66D$f`AZ|z;r5^)K83j>k_Y{U|GpjTV-KQv;#S-#P@c&K1+5# z;elp?H0n9ns0W_$_iIPpmrJ1GFZ?00sNmik4_&xd{YTp?ygOa;M@>%UQ0$Qw(j930 z+8_rocN<1~Yo~0FHVYe13e9u2zXAWH0__XB%l=;*O$7k}Q2dYCsIiTymYtQpp|P2* zm65T-Kk5ItSn^*$9Z^afHW~Z~-Z6tG@qZ($IoB{2XX<+IoULz1ERa+AFNsZ>-*pq@Stf4 zi=MaOf!eXMbEaA3jrta{1O?V6zw+6` zc{odHmOhbKzDYfuU}(5ofk90Q#s;d3jzgrA=fkr4J6R>s=4;+BRV!!n>1Lfft08do zDV_5K-6>%}Z3Pd)o1?#C74Z@nsBV!0PLkxKB_iFxa(hCf5nv#0`>*GKBX*E_(Imrw z;0q-ileURtY?Y!RjEscpe{m#$`qqARjBiAHgeB5G8#{6mMN?9vqfzE2xs&NC@@y?qL zIx0VtzQ^1TTC4WV*+h6x=0w=aq{+iMq^_@Z=VBAQ0!zfYQn2dUhKm{#t_E2B=*($9 z^^+;uq&|!}bf*iie&rXXz`PHI3JMo>yh&}rE=#l?p zt^eDYJ+*%YaU)17iYLbB93un*O^qouHlf?qb}e70^XpcH@G9u$bu=@AaX}&=i&)3F znRMHlJZJP>?C|-p$Q4%ulch3cxX~6tv4HB$kR)HhYD)Hkf53t=L~}!P3=Yr^5s#1E zeYj51k-n@R=E{W**d)BBgCNA>SyB>De-SGiA47D63aqeF>KpauNoXzgBVQumD=r!D z0B_VOX)nN`0K)o$pri426q4KuWVj_y33ar`9QV8dva}L4sgzp;O2>uXO@ZR``I(r7P%V?IJyZ$Y7nw z+mp*-4rFSt!s&ocvKQ*TjIVUj*L#1(;jT|xQF%dTDSuMHze#pT3Y3vhTc~b6p@=7rlUN5jw38f({CTe zM3ns<{MB%aSO!b!;8&UAci;HC24lsM#a}Z6bQF*WPmPt)gIKuExX^vg0n{FALPXg5 z>Q4Rnl?kp4=vbx?SbAs`vdy?N#jVh0Uw@)VVoj08dDT|~ChI=bL`EB{`E(6+#73ZD zg&2^9SVY@h-%d*XU=<~oH{f<&NQNTaLcvDMTTRa9%Uf6^9o-+D4}nwG!)u*mqnalU zaS(i4!2!$~%dL4c4F#LCQeX>W<;Z#0j!ROk(!y{LWN7n4TEg@XZxg2Jk;3oYBFS^N zWq z_B_86eJJuh?piaPLkWCgTm~bukoLRM2UZ8FU`NHIBdNCCF$z1hK`AuWFt;b9Vp8St zZ{ZrP#rdIuAes%LLfjB5E|{R%Ydzq=^3sbMmiLQURNe>Y(yq9)6d=*=nt}6*nD6&R zpAWFu{zu$F@WA%H7({*Ug85cm@O)k9I>|hjlf3&8RmAqI*h{jQpNzWRsnm_nEc#Iv z^_`XG?{IR~KfaucmdY}f zXQkDq4(^{!ZCL<1&#G^7P9LyPJk-922@7}sa__^s%2lHL@6HPGFDc+ZHqFo(**e)6 zJ83x@S!%JW9SI@+2z(aDM^(fuW9{g<`uUpT7fHb%Ctj{kL~ zn^Lv5#S%mKwi)};7gPj{@@}mvmrSk`j6BF+9|l6ID5tV)!`?mb*qXS;3-sAp>*_*> zu$9I^|bW?=7C0)?uQ^eLZkwfiUUf3n9-skf+-#yek8_@P#V~} zmBA7PWWei`H-D90#iQXDZsfF#6TdQ`R`wt&Oxd*wpMlkAfk zhoA$f3Y2|BoPP<4ZfwA| zA_$0hoo#V}vK}OEh$%l8*mHX9EqP4Dr+pHrFZrG%n&F_>86$jB2YlrQIQn(@6{aB% zWl(HhQBNaBqay9pbI?&|cF5oHWvppTl->CZToMkULn%=^S*<_pd_FM>h_BccW*kIo z&qq%oi6Z59^>>ZOYq)=4o+2d=y&pi%`P@yPOdcHf-9l5zo)6^u?aoSl!Wcs)?LTJf zYuAv6zQ5K?L42fO35^w<5F}c`!6ao!C4rqTV^t(1GmMSJD>Kd+TIk_AUCjgC<~Sc4 zt9+LwA(h4vJ&@f>s8sMsriHXp=b8V=N;})@{U$*}*+HtWh7BV|KgR4JZ%+P^PHN7Q zu`9m@AYZ%$!l1wUk)FG*63@3q#u-VX?enjRGRHHy0s$6V$QJTk#Z)Ne^EB;Egw-!# z+(<*SDaA$E%dU55KL3CsSA@STJcysQCDd2F^a1wXMhX9giH9E*%5)a!mHu*vEH8C! zxN6Da#DXvR1qqL?XsTK$S#&xyKQqKr=7G z;7Xtt<@3>3pTD9`g~&#)u>or(YwYfBN=C&?#qN@;y&_`XJCrMgazjwk z(bZF1E!^5UGVGy7Hvl(RK&x!ODJW?gc>+uCSKf?hj++*SM=j1a&Cow#v!{I0p&ckAbLlEJMxEq6$9 zF8szYIhzS7Wff=&sxIgLqrEOF$YfZLRwz-*tbiR1BZ6a_QPwkjZs_kgdSuu^Wpr;j zw-mY;{MyXcZQI9K%NAR}-QFFfyA-cz2QQf!hHbCkD0lt( zOWM_0AIJ0GPhVg^~7RHk{+na6ox6 zPll_)>2jTJ`^>Z6)m7y9%tgr(<&?aKy;$9cXn-}`7PJ2~5!XEjfyS*dFN3}lzGdZ1 z^EtoJJbP9OVCcOdd(Mo-!F#|!wscqlUX^;<;Du2&55{OAN^gEVjJT#&6e|x8I%`*9 zv1-*$RfKMK+y$UR=cb9ZF&(LJ!La-ST|ar=J@ca;_raTin&Fz6=A z*PcoMuau)Yjkl?(Iy`;RnRI!n_?Ef3V+75&6zmcU%_hM56bRMf0?Ft!yW{gOhak*U zBPo=>UX(>x0Dy-7m+e^pD{@|0#`f=?wM+HfXSJFL6RwhPU;b~r4l(aHya1vI&s%*R zxlzPboy$nz&$5t@!jIqzKVVsz67RY&>dMokr>*G@x6jXel_%o_Gb^Yy3L4@|&UA^Z; zzSNV^bEjARK|C)*7-kmLA~1>0CIR z+}cOGcq?os$RYg zWMj0~jNAWEsyS18VUubjhOV)uKjH&NkGJVf-)l=hrN7~6vB9yn8U$jEu_0IYqmmhx zv#4@S6zGh#I?xoKZGA?o>4HD%7wX#M{)J=oBAn`UAK_bzYlQ&+PRv*?#aHC1rYG0m zOlToeh+J<<-_rG%~&-4Ew;Qs%AA@Bc77xGN?BhX&{ zzD4}Cs~cEPgx{ft(|?kDV4`;#m*cHH z0ygk0f)M|Re8F5C!srXcOGP}t67Vu$4>1E0@~JOE*7sub zf^$fSP>7eKXBEN39|lWY7xD-5KklTRLC(!FUyn9QCy(ZFKM_$P_YY(RnoQ3=<+wdZ zpe+;!FoI{&=-8P>lGYTdGEL-T6ap1&mDIKxM(d8Lv3$LM)2QGZ0oq*j`oL-`Gk+bozpWuRSHR*Yk^tFkIV^6 z&`&FUDm%Isl%27edV<7A?&m|N9(Hv%gXATX_mGrO^djNW-Q4^v;qvqA#wSSk*lOgnF`eiYo8P@A2myni$>Mrt_DVMlfJQGtCJq_6Xeuw z-|y3ounKIA#?N;Pjsif*Qd_>3W4@Q&8m)kH;+k5U>3!;mWW*|uFUHqeoA8mhSRzFs z;SB{HMIz}gL^^@j-!KvU9uq`rXV{^#wDor5%0=b3ZY5B(v#^~fOu@XA8MB$Y$v|dr z9rrv_h+&or-h|;O3sbRTl)8_Q0!GSUAqukW?Irry8Ca~!xFJNstT8Y%B}{oOJ@*{G6I}a%b>FO=5z!@=DRPXC0Il?hBeWF0c*;P~q*C0CE@ z&Q2^}CMq`~9SWe2FP;r+~0jF>n%{S?RPetY(-%V+l!u^f)}QShQM7Zag)a{PlQI zhR1F-N!I{jK%T#Bfq$Tf3E_*+I9XMQ$r9UmB5u>Ne9vZorMKx$Su4? zabR`ZW^P{M{VAShH2GSSur{3O>djb9(4NdZXHGG4-lXqRkL64g`RcA~O;cu4Gb=*J zt;PvQA15ERM08FpHdJYlg0DMAIv%I3uPi{>D`C`qp&f7y?s(Bsi-PG7f)b6KH@ap|y35E|TK87nxpu@0Y;aNM_- zc1{Z=TF~Y!Jxo-MOio9Z3mpSmT5^(?Ad8sOblitzRL=#ExeEqyMQiJ@X$*{oa}2OA$&$ zsHZt%q4isK3mfDaIq|I!FQE=|EmwP7@Yr@ePD!15zs{QGZ#I`A-(r?vW;%?k{@grj z>gsMpoi#FcyhYm3zqe$~d3R|HiFeqglTST}9tdJ%u_e(5Y*Z|t)_bk;)meCW24=&B zBt2}b>npzca>W+b4{vZqq4QN&v%gOYFB<1YoxUB;X_0H-BetKbE1AOF;OV~1VEDY? zv#9miqF%FZQzzfjNVbYgqUQzZ#hr{kbem7wpXeFR^NnO4(zW5?LA8bbg=cwBxMS$V zkH|`S4sNZ4)Fh~Szg-=i$W3_kn9#{BjjWF^w>OQOf4tkh%`!|ww71UR$lZM{oirr$ zJ+^ak(QuVqO>BfTEM#jQI42+sg(I3j(%Z*8F~b&o{9d%C>j-$Z@8Q7k=DOC7$z8Oo zfq79BNgD={6PnwXWs|e8Gf~n#Rni?E%oL8)^JzEV$bDA$6l{~xOxEv}P^Lcx1iN%Z zwi@qyqUWKx zd;&DU7fz(N6?6vkyArlcWK}T@2tn0NKW+)N-nz1G7{Y#T#hP&d+tE+jtnHZ1P#jWJ zQ2I9AYi>-(mg6w+D@X3)@T(N)Bqsde-8?j z1RhASSijb90xu0Y=qzFqK0EK#&h!}gb6^M#m3bTI0+p$Gk(`3S$TNgIg`iijUb`f8 zzcOQv$tlix11>z2qa~_C&r;}nyqY|wH))l~(6_`gpY-?#Av|y=SpHRJ<$kaC0iP1! zXCVpw+&K0#GXtMs6iOWmND&9qp#IURLvzbMZVm}7v8@jfWV9`Pw6df5#ven7#&e-) zw_Q3>#vg465ii&hz|4<)=5^~Xr!}}36%@mhT>(bYq;eQ&n?BM%R`|EuRkK_zhB$bc z`X=uui1b3Lx}CEQhTcRSwBUJac~KY%sRaBZbca0m?w9(JHuNK_cX>svTC8tSaay?z zu@FxGhcDp_I`L$L@OLLn8weY~f_3wY6p@FRUtlG;+c8$?Xr+LtqZ*w%Z7Z0-((SSx z5`opvBBJiXC6L6bXHFsDdv58NFaIMk((`6A$n%sy1F8e)>Z|kJXcH(}0ueCebKI|s zw4O98PGpTvCLumV)JZ^0-_5{LgzJrDsI|!6`;mt0foLN_48de*q3YwHIx_iKADxWN zBXqb++ks`9KM}XtwXt*84{RLI_lD1TsJ8f=?(lrmB&!`eTlw%^`?F+dnmtS$HC=xc zPtN_-s;BOFccx_BmNyWke!k=--IH?RA5^p1*3p!YTr~MiE;85NJASxmH#*%LcC$ll zBYi~o5{&r?pm!pcKki7}1*S`uy5UEo&k**a|Ok8THAx$8J%aRQv*i{_CMDB3vIZ&XU~ebFk{fgLxxJiq*3v0 zJ#P?D-*-pAn$0$P@=M_=n7tqdZTs8r<=4IhX&S%rH89jlR`3p>H6bR7nlo5>R8-2&&GIlh1&18mpl<#kw#@OrkzUngxD<(laf4b5rYDL&vF`idri6i8c_{j zm0n^@opJ#QhW|ui$z{#sSd_a#lmHvQR?r$U z_#5>GFflp~4GBEpy0q$Z1PShz2+ikLdcaiR1r7A6Q{uZ&fUep1 z;AC+^u8A`o1wYa&&KSMjvin#)o7VP)+->Y;`>E$3)R#1AP?2`_(`b9(z2dOyV!xR% zPCX;E4F(9;SvzA~(nw@!Ejg~V>Of|vRQtZ((SCkb`oY;_{Ful7K01=XWU~F-&zXmo z0jpOA(fwT4*e2Z{=`8VbJatYPo#MvzCT#H`sy06z^_+VB&e|BRlF5|(LI?2UGFoXk z_yzP7h)dPcZD&61Vd(ZpG*Cnu!^4hx(3}%jkcQq$w4drCa0p5S9A%=% zrrb1XSeDw8&2(v8{S@_fqYk-|yp#g28n0>7iDJ}$Wlg;EW$<0L`Q*@h$J;8tRTGbf zUxZm}DuV+!>8bQFj+Qf8k|#7?>UDw3$lQan(^1Jn@K&R*oZ4Y~A;3XvV_swAp_4B`alK$3Un03L(5m-0kgX8kZJga+As|8yFvRWT(xW%`4I0S) z(zMc^Ukz?Ls7&VKlYJRkujq>8V%D#ov5^DidXuvx0i%`^S82Le97r$ll04axsY%dO76 zK@d{6a!6|vR&l$D{X#VJ$$hiQLLpWtI>3C_P#_ouSxKEDvJGZD!(2_=QmjCs@TP+h zJbJ`k%jT>6Y;{+4droB(DlMQ84AiB<@~I&H=c7h`B%h5~Zs|fy=6mG{tlSuzOK!3L zs6wu_Eu)Q`6P`Ts1_6^%F$mUl%ijlhmxDbcIspsu8t>ctWN(M}n54SlzNUWLK%SA& z%v7SaW?@7+xW}OGz#4S$2~?oFJFRyonb~$Ct>tL4Mt%A-x}DpFgx6Xbr5x=zXXVSA$voQwnObvHQhZ({6eO3#FEF0F_+do^9AjeBm)4{ zJkHWTyF=$A^_WsLZ!3RiESVDZ=pcX~h1D-o}#vo13O6}F#A6IgA zT^r&K6*6Q*Yy~tbm|(>`LYVUQVqSqYQSZ?HWkQ}`F*R}Wn0n?=kpdf*rYlu(+6!YZ z#hq3$<4XIeNpw3WI$_mDD6Ugg+RghLz69T5uC}3R$wQ*B@gj9M+y|>T$2J6?S9#SW z9@iF|rk%XRdDaCbDwx;5XCzaQbGvLxhThT1=^M@*Sk+m49Q~aDofhPl7>CPpGvXK; zhAV38_GjqEYfdmTgmsM>t(>uYy`U)(kxTohqlp|0IST%Xr@trzpG+ou|B`&+!|BR-4{yMXWSp&PM|$ASsBHM71FB@xf z-eZb};hOI_N)N+d?Hcqws zffNG|#hE{j=#M^?F$zw<4+7=f7qw2@j?V;6cG6=MSR{=og8K69Cy1@(;!q`c;Uksl z3SlO0HBh_0+)}JCr-;O8MI@HkHKLyB!6HcW@64zM8D)mJb6lCLQ7z%{Cls+PHJ)-x zCntYY9|>-M)HZUXKgdfDtQ{mQ8#I2AJAw|_C8Cj1IwMbDiOLNg^cV$g*yBH2;7^s_rxSXbB%1GxBpW>!GqsptJ_-55F_-@2QeC*4{z3u!^dO@Ztiosc(b zUKB7KUQDd4J30ceSnv3li%o@n%yYqg;wH<56|6F?q5qpZ9I(-JrnrOm5C|%+2VN9* z=_Y`$-|;nyfl9Kz91WKN`!yHBZm*8><00J99j?9ThwFU@5cZ6?kDRU^K4>ZU`z{vz zS&=&}qIo;eJ+(1t0)Z00!G)rH(LW0DxE!!AXNcB+ri_Yu@(nubdtn({fQ77y(E+Xf z6CFhxiIL$7aKEIMsBLC`%!lMFWoOm+3Kmb9`m#SAo+MvR^j4MZ6e-Cprqd{| zQVdgN`y9y|ve0e{+J+IpU2TH!>SQ=4Lw@%#ZZ(H z$6bWJs|hJtR`ZRm+LLl2iJKXx(e}hVJWZ4+U&YrCw{QzyWbSqQFVz#1Z$}SN+Oq>h+U)wB=2BtPpD*fV=BsCsV!4 zv_ChsI9~VXS2j7ZA&A!k_`n`-d(XQ*k>V4lU#d6{48(Sl$qAzUKN2N8I=6#4Lihm6 zq#yREhX-i-$!R)O@dNK~j;{xrIN$u#Bp8;pH*p}o7BJKmb4^rXKNHgFGF@~fq|-gn zhVPvb={{d$(Jh>@d-Z1B`+B0YVqI5&Q9d2N*q+X?6bCj>xPA&OXlT%I)FKPy3@ZQNL*BJ58ZI_T2XLmOu7cW@8e9W6!t4ynV>yS(g)*R_q+Dkd@GMHt z7&`44nt!vU*KWXbghaVRq&06&Ti5EuDg8m7s4Xv~{uOF&hC0c~7H2cU;1*UqP4g9^ z(j~j~Y6h_UwL&>itDg~|4{V0e%%PXWC@U6Z1!ssVvO-|x*h|$Q-_JTC2$?IedhDwl zywJ}IUIIG%Pfqb)PCC>-IVQwG*3nTY`~kI7fEAIGA=Yqd@c+h95&cNI39&&`G-Kcq zY=Q2S499EMM&a=V)7J!1!K8I6sh|Y>1+jrsJD#c1Q=a&HA7+hAwNAhpa)T3a5sHVs zEgZId!czJ%7fm7WQ02%=9dfyLp`p9#nX(9~uB#q|8s-9si4bihPdEPk zckD~l7`E)xoc+^R;eNph)yEO&?8W&DOVf<+08%Lg)_iSeDFQSPjsCJ8Fq~AbftC2c zeZD`#V{M>1G#opPUwA(u>_i0A!t4N&i45m%EeMrt$S)dts#qa-snn*se+UuB`-c#D z_6ppI~dx9l2of z)XIa=*qy4D2fqr^v<(e7?!G{K1nE8)#_2D6W+W%8GgI9I2>|3Oa0BvOz};QmUO0Pu z(Aj#kYTLj@gD0Qc0(fo-io4nMZcn4fbZk+0U1`9`!qvjZwRUg}Qix`J*mT{e4c@Q& zai!*p7LiScjxVhPpDNK8*slTK{u0*Ez~YN&tfr`B?E2&%-o7>F^=Pc`MpZL9c}L3U zp_J%^TG(C{=<00S4=TN#&)jcII9ckEwJrcPd}EY2EK#gF*x3Et?yB3>?hypoX6HOO zyf+Si^PN;l@#$*>J<(44nXyCIRdNaIOE@kS__f18)rK3s>+#`yj;B`@5@Tk9yB&E(9IYaHR!8*Kj^0#5+!AV5z^a zRMj}rk;X9^sUS@k9H?i@5&<pRin)w=n`!*7@lJxqzbe6{;48q0-CYH3SFf>7(bmL}TorRJgE)|L(XIr0d8 zG|ruU6|d8QO($`D$v@l^JNN7O89v!l+V{WIkJs!%_MY7&c!ZIUL(X%(ht(+$=g&8) z+4eZaa~UD9tlEz(^M@ijp%;C>?>v?4vT-bS?W?CUl^MYB)I6tadK1o#q$Q%H+ODNvt4yBPP385 zUgFSXx@QGddGx8hRH`I$q~pIso9I-425=M!vB!+J}vl4m3Dq)B1y-^r1mKP}3_1p4dNiuj`B!70N^T zjjHSRC=Wb&ovf(kBUp6T0EfkyY45qj7LzqI*JXs}i+>I61VsOc?2KSqvVAVCxO+fK zPk5hYq+4eISPsJJIz1xsvzj#VGE0uZs6DM3G@9LzrrQj{TgB>g>DxVx%CmOrD0*;k z(&x_MP22)RcrO8I4{lI3;VS;*jar<7q^Br&1K^tjRdrA^u}DNB>?AFKs!UtO~c_Uc2xgw$nQPp>X?MXzw#ZhaS4KJ| zVCfpVl9bRQM3tlN`9J&;sZzh!H@mUo0y`OC0m&a&FkZEw>F(|2WRMoRZP5D<=DqAOWg z*J`1M$i`E9gIG_<9Ij{&d3SqDR!U@#}MB z2Cv%)@{L(16yAG#+v>dt+t+5?cW&V3ay3N^e^zsrujaY?bfYBa;Z7kJ*d4ID{XrD` zkT*K-O{Tw=ySC5+HyC({$QPO!1>nA&cjTE@U_lSC-_#-;4UL^z#Vx>c@K5p`-)XMv ztTE3k5|j%Z>8XJJ%Gv$3lngsnaQkqn?E^3T;9FgbjK%J`4x!5L@9rUpMm3amRCD@n z#9`-e@3;IXN~+*Cv#rtllcIrX)n;&?nK#p+kNe4IXIm?GIsX>-80yq++lI}cQqxq+ zZK>|v55;NE6o>5{mGl@R76IdGF;}lRUnPX)$LPv z%N`=V`}SsQGnM}Un}5Z>pzx|JkGMY1L3Nvrd*41zoNOeJ@g`j9EqXUnu&A;GwMz$Kphbx#)U>6XyqW7d;>(?S zv}&ppz8-`rFaABaJ+M}EU=%PFn+?zI{-&u^o(&ZMSIxi}={bff!lAdPK$Pi~g%3d| zs|xoSYJ^Y*Uh!kRfZT(d5TWx_XF0*KMN^zAN$vlB_$>VKP`k)Pxa^}C-1h2)JvNwc zo4%V&z&qK|u{Pu7qr%SHP~Qp}zf}~v(s^*f9%3#odcblW^QEJ13jlg%?LBWD&`NZ~ z-97Pp9aKO4HNC7nVdbt~J&;~witW8;1-tj=EA+-F)a}OIW$K}J@IJReL2ND>QG;_3 z>uir}E5tZA%IT6>uGm?A21A}Tf<@MPr-5D7vcCO(d@DU637Yt-#YbjQ$X#Z(k3Mjn zkC8220{h-tS|xrQG|SqA4nVt7OSDds$=0D=8|KCG?5N&<%E}M7Tv{ussUG$!GYZ*ilbwj$GOdI zACa7_>{@{+ruL#GOS4?1iB#IkzB*w)?au+$iC?H^gMj{&IWxX zAT!rzPBLIOg^S4&?` zsY@+$q?SF@LJ`WInbiRN~|&!pD%<$xo0AfFn-`m*F=M=VnFcu1$}ge(^yQCZ^1;EdY3cZZ zc2-VVynw+Xxn>eyg}>YQCS2uH3+6}?PuSt52;SZ|LjxY=n9`5*=?m+>DD@TJcI6I* z7_hLrH(wxwJHS2s9gWOC4>T+VP;YZp_|=D>Bjd0!^3t%xXGu3iMRvvm5Zp3!nR`aY z(W1nk+uJC#U3k8RB=YxA)YA_Nv`yfm&agSMprU{*VlX%sr~<!XmT z=@Yu-b;vUobjUqrx@4b4J+iFQeDbWWRJ(sT@4~-1*VduU-88<+6+~H1hu|SXE?1yf zWc5zX!@nL(Bnl8BX~x^4k-8RtR|mygo`D09otIC}<10V>w4>#He<@klL|f;suCumWXC>WxAjdoeKYLn#(jO0gy}dM(414VKItmBTVT=2E3N4clg(tB7KAt3 z6)I63o9n4kz3&;BLZ2fBfl3HxheeGll$AC|fGlZ94-E#6E{_6L zJT|Sh&Pt?s6fJvf=w5=K8Qa%K-5`Cbm%F7_T<9=%nJ;Nf7Rp8{C&{|m{#iQJV2NHP*vD5)Q->#*=+NrhU zgpcmm+Q(--1nS-U<>N0z;ge;w!f~P`<_9E1@eSjm+A(#_Qea5dUhQ$dx=ejJvVO2L zNke*`EH~`YM7Q%Cro2;}(!Hg#eQ)8uW%z94u?0Yv({r6G>R6t7YkPHH{B!JK%m=l+ z+Qe3mmCUG!15em|9`O*rn~eq--Zr%W;GbO#TV82O79d`~6gOLSNC`G9N#`G1c}N01 zCD|N~(VoOT)T=fof)JmSX_Tivrm`W_5?_LWLEQ!+SRbE2^NV_|Jn>ZJ9tGHt6kR}E z#UVb(gjBN&^)K?%K(F$U2x3f9wtlwKr~;=zb4(E?GD!=BP<>1SEj`JK#m0J@ zK7xRRnqy3`abAdp&o|GDL||=P87;jnb0|-JvRS~-hE9%=q1gd3(1?Ouy;Q}cn}yQx zrnzyfY2N=m7=8>^MV$2*#T9KNov)-B2pLx5oCaMrUO%ud-->b z6~s9xO#CS_`y~Zf5QRC=B%yrWeW4rCAmodl+j!*1o)N(mI=lw~Q0(yu36?gw$TB%8 zbGac@PpA=xw%nm%Pw)H7ih#z2>WxB|lx_0>X)$HHQ04LBNrftVJ)mLD#_TNWeeYvw zFb$HHHO=^?f)!gp6GM!~5UAU>1%Wk~GS}&Hxk;pg)vlhnvB$(jqKvgo?)8mFR9sbl?TdLfd8sC4P7$*r|K(=f2t<) z{D*3UiwOq7I4dldAxwS;ie*@iQMVMr_(Zj1FZ=0D z_E~GZdQyeon@58mM#5F6w80IOZ7p%l=2odO(rhHbs-B9Skw<^gRTVA!Y@Q~HmpJ$N zYM7bJ{jBOlYlx2G^rPp6Ym+bWV+LL#RU=mJwX)hAU_@jawBSKI8yDSKmJnaa+dCCF*?IXW zx`@+^N3ZUbG+pMI4H!)@H7-|1aoNu3$<=f(^<~HulZh0gvJ&sSW6D<)jjYhkpEid2 ziMZ$#x^kr^-dxz08@Oy6o84p{Lj3%^>Y$~AbKd+JAAVynuuP?BiK{H-1DhOp*QiuQ zHw4gCJ)eBI+YDE$gsC*w8Lb2uYRNI(c}K4;#;oVp63v&uDeo!{kknAV*A9{?RMD0& zd|8Vi80?do&-Fnnri^3F8VP#<@B!1>fuJgxSpO(EE_ZRjyLZhzY+ zpG36MKKyYEca<`X)U}S0a#4<892CAn^C&U!s1v6Takfx8i`qDzof zO$FqOWcw&k@v9sr+A0jR7l~gN2D_Vth&c40{Fu-lfgkTNy8h68v{(1}`EYRGn|r-^ zQ#NC}aqM|zxt0O*M2~_a^M$+vaCWP?d6vE9a04otcpBi&Hp=5{&|>1#$*lhx)8I9? zZ_=%4S>{NZh7B@O&cEGbZ^>Qz?IJDBE>d z&D!2uBG2+vy`e32`&d?q(^at6WuJ!#W<+h-#K*B8j-|oDu$%n~X~tvMmhTX+2Yiou z_|H=)Gp1ZluAN7mipf z_$4-4dw?s?A83^GORhgB1W=vX_b3yPT5C25Bt5oLP{+nMYtQCNdTh3$N{@wj5A}L@ zY;U8AD{oY5%k%J5140)TS_{#X#^b$&fhyd)J5rVw|7l4G%C$+2DB00A9X;n&X~LvBWtXkkTH3s3PB5O8~a~~c<10szV3ZH&WUZ?wr$&) z*tRFOZB6V<%!zH=ww=kFc|N~yy;Z07eckJ<-Q9oe>fW_hSHu1|oDpW`$k?sK)%HIk zXYol9fmz-#39WUq=*{}hR)eQYc20T)NfCj);2j99^{_C^{V#mtoP^aqwj1i78~CI6 z0|xy(Z7^gitNSK^$R9U-1o2?Yb!2AdvEq(U1kB^hld>O0+XdiJ??ovchE4#owSpfx zS0EPduhAP;=wiV{yn}aNK#8ZF4Dj&u{g*-kvK2}2FD24{`7-R6OL#r;i`w6UGJNeu zz)Ot3Vlq6PKG?^L;CC(#Q=iWoq3Gj}dXF#y*0*a?k?bo+G+>{(;U&;}0yU|{PL2Z# ztiU~XZ?5s3AmSW`s;AN|m!awryW*mz^gZ&#ML;&101!a$zmrcp9z{z+Y!8R?9Os+{ zi6&Q^Z8$#5!3nU!UY8jp&%vFqrASC4k^Ns|)6-t>iy;voxRF2HJ~*U3#&$;%Eq3aj z#J?DN9)nWV1w&gwc?D_@!S6U-u7BE0x$eOPI$osk|G7jGHsmjQ`}-Q{b^oKKcE)#A zJU|XxdwOG8B#lP7+iSls0eOT6GZ*wd&^Mt{secU_$_5r;7dRR?U6};4pC$wT|7^uS zD~0g?tR{#cW2nX*!3rjRA1EehU8BDNY;B>ifw2bw!2q@=5j>EoGZHNzW|xT9p9x5Y z2rzU*9SFuA8g>IT1Vme(kJ;bRioAiJdl!@r*6I~xfL7ZsXOQ%7GD1%UVj$C1TiP;B zeXPHrcTxb{<@Z4ffN8VQILo0C6oTum z|KGn`f2%q^%HH4qB$@h=@=`EI4lqR=Yy7sOlawmep#Ld=(P?zme=>3mN~Q=+;gonr z{J18VZ!ysj(0q?lU&`urxH97VQh2-zy8D4LcbdZDwrhN>1H-|S^)syb9?j+FA^j`& z!+z5syoHW0n3#Wci9c~qYS=G8-C+$Sh|Md0B#=&QFmVq$YaxKqXL{@^ZMIl2Yu)+vZ69nm#;pu~J2D zs`;w+53?w*n!M}g`iYNpE?bPKf$ps=0Ol+n9E)5~=e$`rKX%Ez_HClOHFNSzW zZ+={VJKeaZsAtyP^<^#YLu~G&+mEswLVn=U{>QWW;8UoLA(hk)Q!a&T_~>>_X``&I z#gU=rQHtaBeh+=x39Hh*Rxj;w*_t&51~Z$^)@k(+U0$a`Q+qWg}Vt*+wnwDBY=#SC~lJ(Im2FYZQ{B&e!V z5t+Q&=B(OrQ0V8t7k)CRuViyT55@^m-X55z&saZcxITHn@|c1BHDZgN`Nr^4+j->e z&1#S)b*94~*}&q~QL|S1olE+zMVft;nz_uX$NrkO(g>;I*~F&adX>|96Q9J`&Yr|epR|c-sG4kCGK1PKf*~?5EDQu}0T7?g^~*Py&>ZJv%*hXCX~mZHx^uTj9x+crhzv>y&;yEB_r_~ldje3@l9WG_=R>? zeY;#ICRjf_Bp)?g4`(9K?gu}ZhSB6N`80^F69#}V+GT~}+)Fqc%q(i+@ypN1r;Jy+ zCD5|Q4j5NQ5==<>2ztds1ob}8$pv?|0;l|U5biQT*iRX9L0@E!fO4{%DBM!4@B2*HO?1w7)G+0e>_c0sWoh^8e!izp`>QdA#CQWhfVGJ8gA7&`un?W;I&Y zYcNU`q6ErZtDr4rl)PnvV;r)B0@h~wv_4Y7pD%OQx-ea$GWygSuVorR&t|2dB1f(# zao8|9@Dq#!@ArJ^UKYtupmGaHV2IwQrkW)tj&T#?(uq#nr6gE3lIO$$p^9ZXy1_=t z(`ZXi6Ylp@Z9Pds&LlI^k>B43MoUw@M6TJ(wOsW@1XMY2ED$S0wBsjFJ<`SrlEB>8C?~b81{!4PYHaFde-)CqUii^Bm^5!*QiZML>Y9YE z#B$quk2;`Zn-9xtwLhfYjr`iTShz#RBwiORe0m~eiZ0rB1h!9pU-Xmib60NW+>r`k zV0}o>HEUFs##5JQvg3D(rwFsOZ<%0l9_UszhM_QON8E2fMVB$&FPD}MQEs89E)eDV zDddCCyiXY98eF##=X!k9KCAL;CANz+Dx1R8c2OT6-n1R_bnf;xpA>BmDL|?@w(_rk zJ~UY>n){{l?}-bPMPt5%jOw>Tr7pjU`cF-Y=2V2uw&dvn6*Ve(@-QE-JfZ5M7q{nH zL#r}A2r>&!g!?hdyxg0@s=IwIPIS3W6Mfc|BdA*Rmmy-}R7guM@#Hp5LvI^-^$bz1 zBWeom8ORKykny|zOTla;GBlZ?RGumnDOvH95N3NAo|nXFFPOLot4b@3P&pN{wE zsVG9e&|HiFdCJbi`V|zr_f!c9Hxt_ZQXlDKahhKGg1Jcg zc%L$R$MJ8_yf7gALrGuitBe~0^UPzoa5`P_AB6CRi8V}>+V@2}pHso3fF@Bt&66gG zMIrm?I}!dr^b}_jzm+r<%H+ic&^qw_5(68*mVvABC5#-_^R)eIl{^%)Bgu8ad~U_pfXjX(RoN-RZ)oDmAP_*sxtU+lx*t*R=rClbhcsesCUVn6XZ^5Mh8#5ue-TEtcrCrrC#(XL zv$3DUqF4&v-~n&~_DqaprCOB4)1#d8SQ>W6A*WKboEs>As3BD5w2ZG!)@9RrHLKO> z$oDxelL`49zmJ=XJYX&tfk6iK%O?`u_;kv$m6OSc=$EZ?lX~2dxSU;7{cr!Kl$pFj9p^%W0iGzTYg%{1b!7^xcCpRcMOGy=SolCZD%d9B-bUFWD4hw)RX97=Iu?T|Y_a#0PkI{G7k+U2+f158)2# z(Wepb!?MOiwkycr<%EN4DVcG=fr2YNv1ncQ?gj3VL=QCR-~jAMS?H1=wuuuu#Rwi? z2aK?RBv^wHFNYKAb_58~J(${O^N8yu7Y!P0?y2bRVTka9`osq5x>8E=PV3XVJVq}i zih1Qo4UX`#BxaRoAZw*czZU45F~wem%SB>HS6)~N*(2*Yapw^XzuC0)VFdc)Eea>8 zHcxKl&Lkcr@-C75D#1OSB#~QT5nq;{Q{euY=0JD&f}y3%YBkmHXG)IPTYf_H>G$iG zD*0|WV;1L^&=jY@rry#I^zh=1zeaf-sh;~sZ5zP!Fk5I2?wUL49StDE8+d4(M^{BX zOzx22v28pQ4ilS90mk^*$h3$<*h?tEJEV6)z`QV#^6G@BrB#BIMp^-i7r#LYD9yly zZzrIGiL=lE)2-&LnHhsRpu(D^P zW+oiam#2gxb-P7RxSxxAQ%e3$UukfP?)wepxnNtAA(Bfp@}PO(z24mz%?L%^j9oU~ zO`SZb-7VynRmU?8k5@vl__Y<#Wsc}cU={!Fw*$_pU=$p^N8u=lDU3-g%?%9e?l#=x zU|tIQ4U^vh3HJ^2-(U_0`|Pk9&x{!3@k0RF;sP84C?A+Qu9{hK)Fvfh%%T!jRa?h2 z-)Ws1G-XE}tBkf~3?TYwE)-A=bIwozPDr8Xz#MqLNmm`1gp_@4H;SGez2oC9)4O95 zJm5Y(Fd>2H;c=Xl_i1Ul!Z$29GD2%Gb0Diq_U9d>Laf+rr#WkYIu|v3vVsZUFew^$ z-u===T?@XMd6)z0lN2Us(2z+sVtgX}%F5WM5`9s>ek_5fa0$;;svzBJ(2cBn-L5b9 z=Ix|PZTmXW&)0_TN7%Ve4yWUJLz;?+nBW_qLHyz@a8Ok)9Hxn@X%AuLH3)=O4jSXg zS&qMu!W94+$|Ujm4ibY;2(PD@Z6)%@L0K_n`OsL2c+`dN53e7Lth#VK6YBZY^b4?YmoV1*nb=gEt(Xfg zitaHd@SVxQz!5a4M-g_NO1oN8r8{zr+Kh>-$Q(T z1&QwYEL1nrK@up&??J-K*;$S2wiaLs2o71Rln5lLoAcbphl=e{IOg*qMd~QA!FVJ2Z_2yj+LFNas03L`q2@ zfH3tV^I<}*k+?o#Aw%+rI$F7KZ_Oq@Ev|hf)4E>OSR1u6dSszAK45*!`>gKh-gJw_2GQwUrgAoKW6QPSR*65wp#_SL56*x)VGRN5sCm6Rp^4 z*uT$&4~)lEPci$j3$<8(eueCpZrwgF@k}`by0;ty3Kn<-Z?z(C zh(0eaGXOB9`h7X*Ydi`foU0pg}*su5es_ql%^uLvCwHWc=7+4f|*xxvUIMbfRl>|@hz%QM8xNQ97vsQy$U#3mm{#r5bJMadE_dj??a-iIJFp4}4+IfbI67r6 zo5b|{f|2RSF`7Jq@^b+x^W($98QFt~bx;p9Ns@l5}`hS}^k75ko<6tEc>Th#&Pk#1VqLcdCIzN|f=EGiE?v$(gv_@k@!< z;4~l0y2-O6rWA&@78_)qLVHtMlwZ=@=*R3@8xxC8u~_+1LWWV~#&aUL78jj$@c?gL z8YfYA)-y`N08Bu$zlJ7Wt#==zZ>DM*9~8xK5PdI(rkyN_K9tMGSd>R*WCJ9G-KBwDcgN{74mc^*vc z-s($9F>}xf#p*U@cc+*N1<53|aCfUGnY#@F>HOIg`>f&DY+cdL^UyBlIg_yjeO@41 z5!fhqDq5RM^Bl(JG@8id)3%w6;%vo70JtA86W~mC%Fs@sEW9#*N*DZHlv(a+8 z`Qx3vi^p`k#C`gF{h_xDq#5!gzuzqR9l*m8x>f^XjljG!g`;9{DHOWp2?Jfl2Y|}v z$m&@Go$oc)fdWeo-VJVIQndqG!jDB+@*t?u@~#LFJ?8oLpVazBd9^(SIZ!RqUPn;@dySM#U7sPAP|nZLTbjDDaI zVIqM;`s8*%zl|LNuGzic4r3MySlFr$5$D7aa)+)c&N50@Nduj^pw+@ zKAE%_jZ~Q7-wy{J3tr`Q@>U2aDq1YbdGJ>u0Vt(N>Ywb>qjs8-wi?D0Es}K-3F<_jo@b|B6x< z2{;=k8dX(ZLzBQi^3c3~^hK_mauqM_xDbdS}~=Ng0B4{k0@t?;BV&{y9nOX~Qai zdzG4%sv~T?V$0^BxJ(YQzPAH zD|9SvP$AZKV8k-MA{@L2MA?G2itvU~_){$W zijDe8$io3u6%zs8=VoT72T}s=8iJ-4;e4GT0x4Jl$%i}C&^m?Ng(3y zryQ8{oSi+fAjBd4D3k1F4>V{cQKJ@}_9E+QgIm6QTEcI2Ypc&(emn##uC7fgwr3LG zB7E^-FVhVkH&K3f?UJ6GDM95b zb85H_aSiv7?LTIWw>&_^m~F&|ZKdYTGc(T*MhM2ATi14we1LsR`-Xs)E_*uGhl|bS ztt&b`bc>C%=zq(E;d_}>f?N1JR{_Ob$D)3(CHsGCNy>i+K_3Ydcth=7_?qK_zFMe~ z&L7ADnpaH&2zW=;qoM=|q=)KOl@Az9P`STNdoRq%19B^lL?6+=)W2cyRm~FfW6bJO?`u>wnH@?(XZMg{&6zvA{VQqjtAU99EqcXsvE9%}1M zn#D`MY{T&5qPighv{rdtx{af%nA3-R>L_EszLbN;slM-0dNVVXYLP>hSb#gG$c|Yl z7i9$-V>t~ETH4QS4&B}QI#HJ`n~-5*r8(nYXzGF> zDQR|sCkq(xQB&i?teF3kj9Ef)!Caem~sQ$jn?JB=O=%jhFj52A6CHXLf$urHWPRQvc8o#bjF-+T}%9C1M zjBV>l2UV}yQDqw(IhI9G4N{w2--IVv=iRDnGfBtWSf*tqvis533Fxj&)PRnVD zfY^#om?@?#>*S1@VOXX|J9lM(0A@WOC<36X=boooK-~Y%N-8Eo_r5cW7^r0wFJL=;XuxKso1Ds#1_FaPM z4KTjyhQoDsxBjluNPrG+(V`qS^)N8vxhd>Q5fCIx^O!}V03nNK z)XMjQpB1w3NK6JL24eoE(7tZHIEa7Z^4PR>YiMKUtHrv6O$UwI>@>oVYDO@uCtXwX5mCSol@9Im zC^Y%$eF&!WEWXBLRs3VZjEe~J`7DfpVB2_93`RC%Kt!(KQ8As|b9&-C=D|WYHpv(d zdXRUz*vmtwS^DU1OzL$l3;p@{dDw_%Cw$-o0(p9i5N}rml zo}gb$J25nBTRKfj-SNSm8euFdfnT~8(HjvhCE+>!=#jmVkda9Iw5nF+n`!na8L$E= z&-&{^?>fySYf`&l0YAC$Ah_{bUCsJ)uhyu{CPWvbSe|c zkpt4XLpZV`JJ6luQipwl5dZvz;)x`IZM{Vu#^P7#CkqBW7j7FEE}jGFf|fp5oiQOW zv|BW}U~eoDIOPgc4G=gF1V+BWFaQ+w0^h7hN{|h200boV!S{&3mnfz-C!dUWZG81u zVw#_ToRs@ljblPnan0`_wBkD11h#%4bt=iiA^gTtXEGjjuAeS5AAGt7Xw_^qRYVzg zbjPK?we=63vuwCCY!oub>S`|58|Eyx#%8_Dk_K+4R3k4if@U417|gZ&GR&!)RM^O= z$4#8uGiNT8c&{Y6e-#_05N{ptF(KUsZc3~>e%#fgYpjM^=q zne1(IYu?s0yscv^!CC=hNF{m?fY6Nc`2?gK;E(r6J0aK@khMv0)g^9-;A=|p-y&pk zx~zlJ(wMOfn;t3v40We~yI7CqPsq zd`|wT2l$+V&`xnUgy3yqaPfgYg%G5cBW7O_SonN+Mk59(Km<&TF-l#fPE zNwvjyr(oibuAP(!R=Q2KRHAV|CLs7+@qfrwO4l=pTohni?&u-QG!M6ff~~a$&_f$A(=>e&J^C zj$Q~CC5iu%Hcm-bSs+)7cl*7CBVWPQjo!)m;oMY1P&_$_(a2EVYV!*5H87UfjdhXP z)Vo!84l5@4f_SwqCd4B?257l1%*Wd|4({+!nu%3nI-Be~A)dK7&Z#5PTaNnh5xsjO z_bGFKA&wF}_-)@8=2g$|8z5>GMCKD<_YR(RpLF9XE`9?=@Q{+4T2CB93GaYHRE@&D zU1Wa0Pn1_-vu|WQKhK&uniQs*nU(j1)VY+AjQ$zUo$*w3X2&PbHhNTFZNiPoUe%O* z=^|fy*40i~&PgLRKi`PYTf)k;?MAY@zb3Iv z=qHE-acfEE&aH3le5 zK?|)%N+mr7W94<5%^zA@^{Le#%D1|9KwX6c$? zSzvGqj_V+}$**srK8?iU-SV?iDnvS`&aHR9D4N-vG@F#!IaXYN;rD)OgyJ_Y@gX)vNkf^wv+mBV;dnH-fF?$ z@I$uYd!es?o+iqDEl7NuUtg&AgOReQ#EN&_0Wt!q+pNaN6_f?q>R1c`4ToX`-8kz99stXM$#pft z)Dmbi+Af3Pv~%qT9jZ=K++dNeK99o3*mm{46%m`5E%hVLz)4N>x#i5X@-U{!MQ+0y zWHT$5ELL9`GLBGZBX=>fsnK6F5_Zkztj2lePTGoQG|I=tByZV66bNvU!}BwmJ9fGr zWM*ucANm4haTHq&V6<3<)os zpJ@99j~gsqeB8yQXab!ntpI4%`#u9miVcs&4j~xz>UZ-+2%!4=(kCEDvHYR4@-QHH z!b~=NAJ}?&+mKDn15}z_f?D;~srdQMDW#hh@9QVRL0K z)P|$n7A5E<*s`T~iArt6>itO2a&W}TL}#xuYc&1r>cLGS%A_I1rJ_1|F9%qCO&y`! zw=yS{%(Ff9G+ML9 zl_w9@r?nT&W~UIlm^NkYJ4>Exg7&gU^g}uF zo%Uy2h1vG4_AABGd#=p4d+B9!o3H+uD05dvfBT+tSkjVHU6M(v*pH(aN75pNFD+Wl3w&gz}g63r&*^Vs<2s59P0X5Dx76 zX`x{3>M8GNDRP^OrF8veYAer$3}$YQRfEbKr4(uR#e_OYTTO&VNj+|vw@uKkN=X|j z&gC0FdnFwNnct6#xKv=2zbSIp*NK-X+q>+^$MSE(dK%ayqBb0)%B>K~?E4gPbq>9Ghjf?20^>v!UqFU1X-3jV9HdGREf{*)4-RIGSqB z#vGVk)|hy{*Q`U?0u@+Y`cy8ZgIor|P9-kcl`m=gTdSt7VWgGtK*y!qgLE8DO2G}P zU17nPFJ%q=@S!l!3u#;J=T+fX_1fP_9~fD(SHq%B_wGbW$>UbUUH$rNKVQtg5nsXr ziK&JITx!f_3%IbKZVL`C=0EUx|1?WrP;Ut578zPZ6aCxQnibhGMtPB?ISRs<;k__jj?u5t0Nf zxN|SX5R!tO@!-9SBO-%5=ER1O0HC7YYKDgj$O<475Rv20&;Y{1`Q0j?Ape_CVNM8u z3V4%$gaacoRN8LZ0;Z!vOMmM|j(00Y3=S6bE&ZedBO+4Vwk(DI--NXWVMJu~M?Lpi zLDGOUY9INNFDb}df-{r&ra=jpeC++pXEsM7s=%+7^V3(Tyd|A=zxuq?Oq)sp^OBB6 zM!wkuN#e;C4bXPR2!>*K_5>PZv$XkekAk__Wf8ySDM#B9G^yG} z`MTwgJXohszUPJFYn6y#e3x|lSTGc;cMl0crDH9E*s4F3MOasLpHl815GRLnt@KV| zSr74Wp5DPsP)3GR>J+`ZI77s|x*dWHC%}3oL4uqNYfIqjyB61U?Z%bZmUQVVuD-0g zBukWV1N0h0>7VR!;_z~gilxboV+348Em$>1GRjyc#{K#d>%|Dkg?49}Hp;k-?onpN zN!PB+lP+l$5F3RkmytgS;!f@`j-{M%^wY2Fg9LxF9|^Ce2jQ|aqFyv(65epZK!EX^ zcl-Ao+h8ERWbcB2GU%OH4XS39Y15XtLVaS=>L# z(c3j(*ZB_FD~v0wB(jhpWI4F(qZ_o{XD&=;J*vto(iF!L9^^9EGFEwZ#&n+XI25fa zr5o3jkB5dmEdwU~OpuImZJ+&Z4 z0xap?HMKDqW+DRAiO8K#GK^ZVNH?M`Dt>O6fteqS!i`c6GR`MDhEX9L(;VPaKoHJHzbki89DRzHFlAMH0X=0duw0^!m z+nx>J?HA-Vff>+*qOoB7FHi*=WPF$tQN98Ibx^w;0&U$Nu*BVc$^eu66~_4En`FQ) zbI)NuEL&s}5E`ltP|ynmMSx$FCZWB-9%vh|+LH??if&8_OxB#@g~oudfD|11ueDI~ zyFm7f7IhHs5w`UMeSQ0vc|%@Vg5_$tc4b?3ZkFF&T9L-}sM{qZuYJVpLz%z+zVuvC z4Jb&qY3_Vq+%*J0**a_J14XZMBS>SML&B}TWmH3w;3@X^MI<}Jt?2RWwyqFA^xBsL znpd!22%~JJipWCmp*m3p=REkbZii_H&0tP1YC5--a~49+ZkiU@6Qhfj=cHGL=Aw0Z z(J@>?^M0S6o+uJbDOWpHRZnt!K6Y=UA-~jzxJxTHlcFL`OL1idG`a7auQtJ5O|PBX zL9c*w`UokSKL?Gs+h>8Nxo(TX(4Th~qw6mD2GO-vy}Ri+XgyE1?EJ=W-s?lgG(r6v zNI2l@MIuV9*cVs{I3NNQ!yyn3495NM{Z%Z-svBX;Rjn)K&7m^f%B%9T@~vZW=kkbz zMN6T%hSMb4s-^Koq9(RX)kY0s z!8me5rLM}9rjh%KGMjhC5?eo^eWc6x`FjwL=@LYJYd0McjC;hl_zSm)BZ0HM1D05# z(g|hONYSRzHO2PPapf%eVX{IK0_A1vo7IP1h_;q3d>7@W)7{<~sp!H$)Xj@^X}7j+ zt6l9DDZ{Hpy^$4?#P}n2TNx9Rx`<{kQq@g&q{f6mUNU&Emba@d%7(?HiC> zBY;4?>C0r-N(pi>3xNaIrq^O%3L}AumHc4(Hz@rZ9RCdo|AzX1!z`E>x#BIDp2Nwn zkT5=h+Z#66pMHA`>3J_OM-+bpUnBk){QtJ%)e{AG$f8Ru6R|3B?~e^3Dj!k^1iU3; zoCz@${B)mUxn#c0wG^i2ltgA;4Cor!lyj455mO1opnME({XqL1Ph=QbK$L1tr7g|k zM|T-(dEgM9Dm9zE!zV0>JI|u7*C;v6tykA@&RKDI`${&l_pjs>>w^-OfrYD&`VRYc zs*4Y=o9X8b{x3EC^$lR}xMg@?-v|r{SA=o{#piseZ;1Ma9>{O7{e~TIh)2ZS9+BM( zCwC5qg}XsuUW7ywbxP9tDn-e5t%CUM24SKI^AO?R)6gMB`Dl@S{pP$Cy@}x_F1$^Hbts$@^Wozk>5+cv(Y+UxvX_l97z|P#8E9vxa6dg`9+h6{1#6 z?5bTA8}6(yrf2W8d*M&z;OQ^eFpW-xcQ|tmR_#6i8$NSUU^{xW-Sw$(kc|zRKKEQC z@YXi%1$%zT#6TPQZCub(ni-)+L30ktyTCWS6GG*gQTW8od_OAga8#Eo&{BbbZoC-! zF|szHw^$cMy1sPqD=n0>wBjI1C}Z^2Qnj+}On73lXsw+jcks72*5tB0n+b+dLFtM7 zKZoA2hoL#$I}~kE;{$kxg0`in~vfO5m05%@nb}#6zT&kX5XHMZZWtw!M#u{d|)8y6%c_ z-lA&i2s=)2<4HV@=k^c6bK^B6{kY)w6}O7$fqQObwqaD2hK~6OP|d$ZAcAK7OT-y4 zBoItC^AhF{hW&*YDY%~#h$u=VL~HpaPeK~Ec{h_L>91fi8%(GG8^?++2e?DMl{ETi z(c@6j=}xoVjdvqP1IuHkCZU;twPsO=^l_ujiVr_y0yCa%$awi zTO$_yUY2|=K7HbT7a|4ZQ1eTTW;T*%H(JJUg>P))`{8YS%GtnrkcacI+MY}|Q8G@# zVug+gauPF-L1;u|4~K?x6=BQ)_8IzH(9m`_@qPT?tqIWEw-%10Qnx$s^}8C9y?NZ$ zG2rkzPA9?OL2FQAT6%0m!`oqhK-4|Bs3tER;ofYuaBq+8PV&L~>>vuL2DE>GP~9-u zW>|pG%?MfXw=j;8*@gx5I*rq?K@Nj>01#ny``|!Dh|}rHLj#DACQ>>3d*T6RGO>mR zCt%+4{(SWUjsiVt8k@)K#;CBFWIl~y6EKCO#de+U_F4D61xiNT{fps~2dgUlsf#=* zk+jxGj?IKC17$uNC>Q2$lbY3#fJiwJG{fDXR*Mm@D z?cVPNEoQUt-p2p|;13Omo8wndoS`3rH@&=osZsO5o$PG#Z?OJ`jelVO4Y(A5sYU0& zAVazXtSN6~c%X=Mc%Yzy*W)zoZ^<}GBmWkz(==wFpxG6uWPTuNNn(`+w1{*?pde7i z1+F$A2*~_0=R#mu`0wpx5hx~Zav?rcct>y^>j0Tas5~V-06WCmA$0q>1++RwQnWEIWW&3w zV;AWq&$6kXplF#!Nz~oo3NeRuWe1y9(@V<4;O%YBSE4b#;1Y`{j8YIQ}PWp2r$0DM22QP2nO5oL@5~Lga8Ju)+sL3uQJ=_6BGEoRdxo(0f$piI7ViN z#!e{17qj{9rphCLK&uUl3qcxIHYLUc!uP3L)8T-BcT<sd;Csg2aB%YjznR z2Ka!xV!eHO&(a!{MPSboFWT`_-2g-F#Q*a}EO(v4cnn zoQ%p&Mb$US$^Bz z;i1hj(ntr=w7WS^CcvSgM_He<{|VQ#%|GFP<^_k2>=Vg@1qVSm@fCEOiGV`=es?R5 z>OUC;{7);`_PGS|rYk?5>zd~ZVi^r71#xYc$`vY1!+mvex`N0EQJ zFFrRUfN#8D)YE4p$4w1mVGyO+kLHd=BG zGUWPFJy}{B**;NS#pQ`i^{>4)G8>E7adGhjO@OH%))Tr~hVn#;FnU_^lDi(mdlHj& zSIpl_28CeYUfR~6{+52$hI=M?*4CkWB`rD5k440TyXRr^?CSIJmbfDW6BRY}+2~@3 zI3qh*o(1b5c~3ecl*9vM5ItI(HTgQ2$UGr?(KlhJ-3-BxRr-S8!{txvCp)&uqXPcsl&Kq{df4U zV!D}?EUw(+5stf;dS%YWmZsT+&8oA>h$YPAX3^Zt=mX8JB-Eo6C8~OE+(WEY+WJ#9 zQL^K2hF_owriAB^WY6Vk{{s&gn2 zaXeWqF6$Sh3F@#@*Ki}WYdCCVc=$XkT&OQsylAJ=KqGk3QM;Rw$%9OFD@z9Eh#TZ; z6LVZU*0cy7Row%cV_U8MLTtQoP6cX7EM1aZDO49?8-L*ESIaQE+83V`S}eRw-+ko$ zw5_(r$kP7{(GBF~I#=9uZ}iIBXwc~1LnI6G)H4?fMLO$Dj%wDIXlL_ur!D_z54SA%@$(;`e8GAn!i#GaBn2E|k!;eJX_PoE6ZTtQFK|9j}1rvjf~WYw;g z$)?G)ab;5H(>)uWfLk0(ebXZGVtUd%+VC#b?Ayy zt<*zp9!s7Zp+hILGh-4$Si<6fIfpl|QbnhW2kHFLjAniNxz2?x$3CVxO5Is9N%u+d zaKN#6Du#nPg?8^U(Jk`Yoawg5Ah7Xb!u{2>OX;N6faCZ>^(T~Z7QHzJ1OJvd+w{bI z!DkZ%v~_COlv2li-zof~mg8oC`gt1!W4B-oTiLYY?|H5`1f=DtpY`6IFeW7w=}Ap? zY0$&Fhnlh&f{~NBX>EQ`L-DkrES%h?)VOiv0NSia#@XS$WGAHok@!Jz!|>VXD|U#` zacD?L1S>h7{Y?;011NC@pp^jX%UN!74(qDjT)QQ`4^O>EXHj{jQk zT67x8vD=MmRn5)zvBol|S2&l_4=^tGa$7JaV>kZzlbGJG_qZVy)`-*>%`pROUQKg4 z>Q_Gax@7>eUc3DTA0=+JxJ0PKsr0JRSd*i`nLS_MesG2sZWCcMMiTG zYy3QfY!@xL5zbWA^h&|yYYa8BGRGAWkE$Yn#G7|4-e?0&7`^-0rw|%S(TW2m>_7WR zY3WgS;?H%SCz-`EK8Nb?H*@8f?S%fQK-kZ3p+7dHDbniiClf;VGQq~z*$%9IOp=D* z$Fi+9mLZzs*8VHj&L3<4YM36fEIOG^N2ew3W0irZX5z-}KQTR{ z;S4{&y8EI9GUMYyR=}{HG_kD*|4guneJ+1-nuLE{KVQeaKGe=?)&GQ>%KZGxr-{Wx zaR2VEQ;S*BDa|+T^W9EgyQH^{Z&N1Uu(8XwQH&W3Y@&PAP#SWoTU>3fFUqmjkM*UK zgnfT^51Frc`*^kw*qazbB%8aa^}dcdTs{F^fxdZf!GgjeRE)Ey=YgNvTMNm$Q=H2k zbg9L^LTKoHJl$I3se7aso@3KOD0ojUbcFe(Yw$rixg5{eVCjOF5a4z&P2!yc@4FO! z0{6#;jw_=<>T|`+bFGhES~&FYhg#2~VI`gMt=8`&qLf67?)*vKU1)Y(%OjKQq01F| z3T&QU8IF~{6{1|6^ml3_I-8ItN*_||R6psxK%GqCNkA;8vben=IB~Dw^y0XDY^! zE6iX>r2#fcZ`b~ zYpfV^ei3Wz6|v`>U&PpP&ll@2dHo?owg8jt1&0MTjh_D?veW*FdByK}H!@hY{6aVm z_z9DN5A6B=eqaC%K=QxR2PvZ6_>{^2VY{NXg*iMOL_>16HP#hlV;FT(Abh|x;qSb| zv4Y<&PTwIa?M6QrwB^u$sVv~!%3h95Y>{0J%uJ`#$mP=ZBm}`+ds~)SX*IpHDzay( ze{7S92E_!8_AB^CA{FUuh`5`mHeL+NzbH?|AtD2wM*g0aQO0D+mUfBXh#gbiKiAMc zb~2DlpTN8&c8x(Nrs#U+HDbbev9;pdh+pLNNs$6gaPD5kI>sHk#%uQ*dh6U%kg0e% zmEUfwXPMzkHdSd?dw7a8$Nf+3TOoo6&H`AypQo*U`o6dOTe$_#IA%HIST+ux$Q*b+~K)7mH<+ zc!q}Z+OZD-4w`Q#yIq~Vz|#i^S$`lrecd+I5qE3VGo zRyKN;bHIm5JbKm)m{r#Ez{uM^XIR1T(GZWlK+bG@Zr-p*)Z5~f(5okt$GsjTTh{C4 zMPzFO3tit45$RzNbiX(`#*VarX39b%GAao(HSuwITJ)xWN^CeucRU32xnvT<;=t%M zI1Vg4fGQz#jbw$;U}P|A50r|AL#t2*$PFd?u7hlC8QM#elMAh5;!>wmjhAmnM++Gb z3*)HI-~XXsa6I(b^zn}voCW}3{J*AO@PE=rVo^)YVXv*p`={QPr{K;}rqIAx^r_OT z99#iUkHoiNb5PF|vr zlK%;9{=0GDjfQL5PzR6($@9YU#`6(ywjk^jh|(i1zr?d870A==5(o<3zbAl?kcsQ|~=07C3d^R{_X-%Ar01yup($ zogMXYs+4^ajw$nyNThYab`%0>{2u)Hnqg-9DGy0&fpu3SEbSC)S{upGGb~J=N!`#a za8lk(BQ{FjP$(`ksCHj?poXb>b7nu=#8AURnav$vyljY$oQW1f!l;B%Nwh`^sR`=D?*3QS5`g|=Qrzn5x4egMcjI_W(>qJbZ^_mICm-QNqbk7Ad?s_j^792kBCdGp z?QzHzdtDKuQcLdmslI7~2EiEIAhexhF4P;V%;lC?{E1Mg>%I*70-^mHRsg>O-!&ZC zHWIQ@uo3+?Z%{^zSrtmzSMZBkUQhxk!62X}y1TjqiEO?Q<7&I7tzEuFAKSZ%qLN=L z)4{x}_Ry?mEQ75D;0?x6i_LE2V8M#nBq5C6?)HMdT;R7hqAS>}v)8F*C|?W8oy zs5uk$`C1g^DIuE@mTN_EvT~xT^`k4G*A21-f8H>=4~Lclw}k7FH{gj!SV+S>NG>9! z@sX5}wP@zrk5&@f2QC=lqak?kTLfDmT~FtW-UrjP5CucgqiF`koWKFCYs|_YRb;3N ztZ>A3W?Wl@Q>g8X6NZHn)T6Q1g9&N#M8$UA@Tq&8e28>M|d)ljt_hjlOnwn+#di#h)TUEi{sh zZnHRQPlIn8`=f;N<~9kZDKX7e2*(SB!t^QsE>?F#LSYiLDHXoa%AnXybd=08TDd_$WG>=ln`*b!YR42}c*-|XHQd(+(RFrV+srPvpC*kU z1K#OZNLsD=DH&p(@@wN?(zsP2C`&rrW%l1h3q$(cQIRw4y4L|{CEc+A;N;`8sh(-T zya=@9rlJVSv!p#0c@P5Th7sy(@3floBZs2POD*>N ze&f$~M0~COxp>G8>}}mwg-f=?G?fS~R3uB4=QP^O!K`w#2baMwe;+VK@iiuTOjkeD zR5s180V9nQW!suWgwo0G4H5Y!nX?SknoZ0sB)S}Xw-wnMb}(Q~4o(6n_NYMggym6; z8kdm=NLHh()wM^dg48t)V%r49fx=(pHs&Qb;W%nUkW};`k1(V_obCsK-M}0yk09z3 zL!iZyd0bI5%=8_oSR7GTy$gtC$QRBL{Z&>#0ggFNgrW(DX-%LB<58svmp)$=+?iJ$ z+?iArOm(j^uymCTy6ms=aIR;e;@Dq(_{jjnQd_0TOFt#;UNH*8YY3$-YSm3bg zowDO#NN0bNdflujz|9RnK6|dN)(VB>W4Md)@7B3yehJbY`l}gLw@)gws|N<9h<`7U zNS1@X)e!~keRZ6hd!Ry2iQjv!@U$y0+1kc@p{=xJ+)1xPf}lGo&}Hs1_N*W+8g7r3 zn=Vw|rpC!58uxW!#Pu89RN|WZz-GS&%*LpEWtnrCP#f1bJVX4RfrH|&G2VA9m9|3l z?j>z2(EH7rh7xJ!Q!C>ewUR57voam3%JoTR4m0F!D0v|oZ}8UY=e?g7MMwnG1T8d< zWw0a;Rl107DOOG>wkN0K8_R`v&Bq6!o(+KbJYqpK>5_JwW0wQX(iVsg$8cqfhXQP> zsc$Q*%yn5r0=gb62xyq_#@#PmQmSxkDl`4S{1>=SVVqlQb=-#RZ}%Vu4kumZufD20 z{ALkCbyMOU<`VJBoh-Q0E(@Z;Wk2g-s)JIe z^FcKjTIQfP<0F@R3;)?@Uw-05NC2%`n3=Q5Ytf7Ct;-;*e3z%<<%Sj2@b@eqM%DeVX?AF_|nR$-u)ub zAB75!Ay#4L0hPlSjcvIbB*-7fjEbNe1_fc$`kB-6GlyUdDm>Q_0Da3kUd_XoyWQYL2LcoBT zB9eR0meKZ00M zyY5Vif;N4tq9i8)$?u6OQ2!xA`czK}5*&nh2xDD;J_GtxNokbd(IKP2^$oo_bg7ag zHsPTn1BQO78$Vb{lKAz(0YZKHUP~KV(;sQ{TYnFME>%~U6^-#nItZb=4M~xtwZMYL zNFFV?8+nN_^dw1BgB^?Arxpo{sf z$FiHlFl)$&V~KcyIFPgQXPa;n#FFEd+pRcxf+QUbq_sPVx$t6reskD8VUp*W=kD=h zemQUPistn(N=v2v{g0d_bhmOJi3+B#i?dEzbk?8hYMD>Xsx97saS?T^~Ue%mvUK=iLgrrOZTn|?cwN+XSd&Ip5W!h@8P`M``oxy+np7~Bm z0jj7G`4-n)nJ9KF1_U*k8-yF-8 z&)DIQ6_b@IR?^n9J)%)ZkyvNnA)%g zVq0SP#UP^ABj;@M`6mTud)#fa=BZnZ*gjgmT-#Nnd<`zhH3Hh`-+Z)I3Un6d>@xxm z4hW|V3$ILxA^?^^sYHF1SH{$7HK%xZ8ZnGf?OskIcyC_FLY>}2Y+zVp!lbOKeC020 zL6`Z*JwUGcqrcZuLE!34Y-$w^xFiV_(TmX(SUVH23|%x;AkQZXA6I=%_-$!iwgSpm z_V1rXZaa@@23u_>Dx0&IHIT$9{nT(d|3C2wq1mGEF zC}=1swA{DE&lIGpcG&DTK@iiN!UfIXq+`A@bPMIo$#4JbUo>{&gI`ZNwGZ56CZE(G z$?!e9dB3mZpsWhfe%Z908ksPSwSBf-xrK2)WUe_*W%1~oMnl=QH}C5DoUvY_tK%sP zCD|OKwQ+c_(R$lRY2osE;rxuqWct+jN`9|IRT0;j~sIjFp|Ip6mp1=7JUB%rhq2;*WKuOgb`7T)RTnMTD zJ~&Zb8MJIAb7CIby`IPL8s+q>U!=Z4r|S4!?si}6t!11g#XEDxObb+JS3L?qK9xm6eD$!8!{8jb4Tmqx1VNZBW&?HT4y z4t*83+T)bZV6P4j>Oh5une1ta$@Z^TH*8aNTvqgRt+!gl_X&wl@5gKE2n5x*G?t$* zYn#XDiM$9K6~e6MFC3)F-g=&qhkQXqN#8pidHVN7c1L1q5owu{g)K?j!IxT1H4DMK z<0wnP`t=)s&qX!3o)=G;*-IByGpK^*PGsd?j^tCIQOzz}@s^I@(&y-xwVblr%l)-a zCP#-5bjJSzZQuR10+AT=v;z@X`jgV;s@~rNMYA2Z#1yY^&++k#wj_>wZp;7BXnwD? zGZ=^O54dZ=(9&=6>^?s?wd(`_2iaq%*Ldvl$}oG`vCZ3adWFAdOkq&Fp9F2PX(7v~!MqW*J(n2_2C@uqkKwcx3u+ zUY4#06e?5x=B@X#+D{u+;{K`4gh07oWCMCJ(6%x z&IH8$TQ4P~r}Db>v7ODL`n(l{HNem6`^URadPESQ=DL@#F?=6~IcxSg*~%Nmsjv>3 zRmFTZ>xy@~9cbyEzxP`Mu9^!Hcl-2X{0hieQJw{7ww}e~F#7ZX1|v_pID+?H0^+IR z6v-KYRa&w*3FBk#tEM#95WAs;&$@8yWBM!irTX+i@HEm5?mf~C;oXs4v#)Dhx_AgK zs4~Cd*abE-%Dmp%q7DDfHGxOc!w%NvLGgqpsu(C*c7~9d{e-ugd5Jp9Nho^f}7kpg>wotHBK*nwNo~Zui$P@Eg+5k(_P@2=N)J#&! z-=c-OvOvqYwwwjsGkwvq0Z3395XMSIUZB%o1>UKbfp-6FuIng40FAU7y42jUzOV*w$QM*W&8Xy>ZN?1;z*0Cs; ziHQy_RBraCG>T%VThprUl}8GonB%9hr|O2uN1&=s7C4ng8o6(r*<^yDT$*=SdIa+9 z;JOb4gO=3{f*PbJK3d%P$HQ@1uvt~DcmGltC(WZF|J_K4uC0g{W8^)hhrU%pBhLv$ z=cnXI_HV*iGd_TV&`5cn|9g3}f28A`w$w3!JMoi?2I9b)Jq5)thlAV7Q`)ybw9~rR z3eWz=dB3!%UQtemVxf^RTPZ8v#pvfcK<2!%fT9(G zEQ;`;2`HdKu~I{BCzGZ^fv1_Ac$RFn()XRO2P~9t|AC)Q%js@P`T4@sz<)UE{|#D# zJL=j0+&Ek&^oj$~!3SOYUBmm=T=rf#YX}yWhbSX7grLZHgti+*ZcYXmHZ7Ul?-0I1 z7Fkz5mXIpnq|XTQdA@^CvnlNj|5>1Oh0-Xw*v0%ht|J<#qVZ(3T~9f_W4qLkq8 zV!Uo$orynh>|q-YfQAINr)6JD!gLfmLv$0L$zoU)HV}4$WaFP-CPl}>a4#LivLhfv<*X^W>aRzrZG=g|G6`AxQhJXTW+UCiy zekM_qJGA{3HPhERA#4xcn0dd(R86eG*K;O*uWq>{)3=QId4^`{`~Vo6c0KAq1VdCH z*9Ar>7UP)js3Dk#EQC4Kr`p>YBD7&9RI4MQqrp)QDeq*|)NG?+VS6_i!+9@P~(*)Q@p@q!vQVkJ%YMQ$Y9Oj%V}}!M|2Y_je8i#u#ol{sgK@ zDB8%MlSp1iHW_LeXAO@lF<(5&JDBCrBgLt1&Ev)j?h^`3f>3RAbGw?Em%r)hWzE(z z^tcpbR<0}=uy zE;>=jOPIQ_1kbgb_#0u664)Nwpl^o!Q5aInI+F-+RMRPZv|u2Qhc9GSQYCRHDqiN# z>>d{FGB+RvIgg+Iuj_hnlv9HpGlZ)B2F<|92I|-~3tw%%9@#qUka#O)Ko|c8nk5*j zZ9_=tVZ)-$>E~^PkHyL1k$P}=7SS*b0(P`BZb7?{;2_6^R z+p1Y+V#$E%mwoU2Y1sKHeyK~JUb&LN#&$gO>m@v4y*Gmf?t`X$?8(eqq>9BVa?X+P z1;-ZzX|w|e`l(X_zCEajN>j%|fYcfO6d?os425U%RI4>~8(!*L%dJeolZzWM1Z)*Y zcTBw~5>ZB~lQtXW$n#^F-YZ!1`;bC5w>BN4r#viLwZB{E@6)OCOOc1{Ef#ATzk3;m zZxY-{4Bf+)0IWw-TLE#2Y*9ldH)(H=ZaZziumRvYE;>`Yh+;#AXrv-7<3WgAVf}!& znMS}c0Ex03yN=m(?^?iKdyH>Cw#soC(}MlI4F1~AFs5a7oBX6cobu&(umGS-Tx!lg z)qoj1!V3O++CHNGYs8N+uJXMA0sxFc0szGRFI+DEJ+=AY9sQ3>$B$s^(5O6Vy~YdQ zrE{(JXEHEET2FwYl7j!2g3AEin zb>1^G15Uido_D0;H;iy*d!&%Km%pan$#L(u66_HZ2Gv5i6%et*9?>FOCnu1NrKms< zgfZ5`sF}4E&IMPXIjj+B4lF`QwCEK%$E?zC5fl3U=O#`T;)1ygP$`GF7esMu)Pam| zR05-iU6(i)xLu|D)JtM*8F!x1nJ;kaP=70=j$U$({ezUvA|1IRFicTrYrb_ajk9oIgU#-@`KdcT#E>S0yxw=2 zLqkI>9=`a8xMDUoF4IQ(AY&dFxdCEMR+!h==2i;$%_e=drc=zgDpPD@WAV}AemPMB zG-Vo~0KEI%5c#>DUGJMzU)uStAhh<)s zn)(IWG%GVuss_BaM+u0~I_1UDl>(2=0S{E(hak2=Kgp!NFft0A0p1NGGBv{{v-K_z z%O_VGwBq@UbGGD=`!=Cj0hc7n0pD+dd+0`ZfPYhFeBV)^-5H$PQ z2n(7y*y=eNn9ADQxVrs6jsK^idYRZOz0Uiy$4h*J)qwh`im?I=lgIFvHgBqpamxx?&A5`DduIJIiwfftp5lUQKv@Ph3n~O<(h{ACHq7LdmM@U#N?0)S?Y= zgVJZUDT~MVHw`j|vclsJ?WohKADdinJAp!8_x@q#hko27`62>BGpx|E5KhQgYkD$) zhnOThrC4CazcMfctMP&VE$dv+T}TgoQM8Yx0XnG)%7WtFA)i8W0l3dQ7dDOI@vf8P zodRkLl_uNE`{FrbH>Tzc)lwBAv+2(KwHk|z>0S6hBW zWvKkg&@rLtw^^XVi>Yp`nI9(Y+z2|yh2F>*Y-xV}L) zLmch7d@)vcXyWB}f_u3IuW)$$dofz2x9ZW)qCTb5|E4*)E%sz3-CpPBEh2zE^eKX# zGbasIE6P_|eG>G1OS7v|%Kz0d{^JGl6x4J>>HtJIH0M_I#O+dP1^u>7==GBmOtc7x z8u7GRHv@X&eFWS4fHgSOFE9XX>tHgTu-I&B0{n8~@Kw!2qxqgj3`FYcc?{9|VHN)9f#AREi7Q%k5%1q^{!T8$=D01Y(gdjodk(+N^Od!2sAs zOCK!47~eLW7vhG)ah^3@%~4N8p>X0$%xFsyABx2nSTEha-(V!MuZ9C*%=VK9}LRNcIlN+!{CWEH_tJ(a3ccvwC7IQfxrdBoSUN@lHY z{WnSR5j%wusrQw3EP-@{30rGyi_)nvzH_ zm+<51BsYXs^&zP&Yge|dQsc)j2LURz(+A+WS4s{MZ78qIy~iM_>QW9EE`|A3V# z@OJq?7>9bW+#BxK(AoLCQ#2PHPX8(NDkfWLm`o*fk}QtKDm5~*a?l%%VobUm9^)t_ zUo2ZBgvu`r$|^KCeQ8kU3Nn#H%j+NGzcJm8OB8X7dV(YTo8FdIH8dV9L%{|q8r$^Q zi12Lz)pdLp#ryIh6!YKE>drt zLD38#m9k^9565zqSzXcz2EphngvnBmf@G=j^y}#KnKWqcyiN!_L=pNRgV{V$e@&vS z>W>`259{O%f4b>)YLqLo5F(p+LVL0N(0rb-6_2~I3QZz)s8}Y^NQg`|T4TdpsIGpk zcmInFw)2^jtB%Al_AAX?cyP`LWHY@j%$B&yR1}zE|DxnH<8h{MfFio?EnU8d01BO) z9_g?5fCickLht6)yg-`ZwiaFmS(77_dK%`ed6(%_39)Dwndm9i5Z%si8dvZF|DtFg zBBMmBF7MjY_ytwkP@$dqQ><+RqVgJfxA9miCmk%qn4tH8tS|fci^yRwb{@a>*vdSo z;5VKCWDmt?tW{Z~3hNZ^C=XzcV95}HCc8_Yho;b2Mu22ph+I)7@A znK8Iiu<06#AVD)@LqRc>HKg&HuRfnRX|%Ltwps>PB3JIji2Bz`H;T63p?JT7ks+J^ zen;it6$^grOqTz3*xXuaFHV2Tw3wb=o~r&9d3o&nGc{F;%G~LUG2(`__+J2e`G=AZH;a!aXY^)QxrnSF$*b;d& z^ZHciwRz!v^@NiZRDUezu+{2OMs3k=^EfrW;Qg{;#{ER?akg1JWVLD89$6h8zq~$l z^7{EcX(-`xx)bUk^HrzXEY5_DrV?jq7Pd|Pr&tNI#$y#Hy-0e+z9yXcZ;J1uWI)t2 zaepJu@f;vq9XW^n1fwQ-5xyF{a5Q&Eo2AQpe$_$801UeZR<_uk@)DCQtkvH3fQqJ% zecw(_MJG2RJm@+L46GsTI)Z9Y(h!J%7wDI%gvbsjTF&e&XRQYl6|dTZ6i! z6c>UD1^!ggYZ9yfT`v*T5te9uNf*^b&P$VR+nU$I1#f@I!ygWX;VzG;rKUgKDRlEk z)KeBMI_}seO%CC2R)o$B)rLD;#;7nItI_byao8H>tHM;>58!0fBm%9GDoF-YwU(RJ z1-*n9{;o!~r#;T#rP!*r47^Aj%S5_{>C_~(h|(#xSxEqEY0Mp}>x8Y~abW>92@w5# z@{sVT5{#7GNiiw4{~{Z!f=i^*Qc@NI*wqU5?-_`VyC{kG*VH5c4h$l~ghv;Gsr~DO z(^;fGc@k(S2{K+y%GsJ1)jCIfN~6C2iijsZKIxZ*mSYo@)GXA$ofQh+H-K*EKN$x4gu^ACdJ zp+W6UV&IUFI=L?T(EzLYtLnuBgyX9GuhtZeY>B&IfK)u9L8z<*A#oTqvkUxbyPQOU5-QIvsweRg5!OGzcpTNp>=rT--ws|B`3s09a*e1>J+vmJ_ z)D;bd`Ti7615dYeTD_Ws_q|vb7w(4huuG&m%;;I`Cc9ZCQ~L3lXm_bLjE%?Ttdx--t}5ZO0B5 zsQA-!@2Fe2ZzX@^k8)m{{7QYY>onnTLq-G)a6}>btY#sy)2ZIxg6!c8W=+UWEG%@A zCWkewl&9ud5bu+wMKH(Lx6AtnB@OS-o74R|I#%YS;<5hQF?pKk^5V>M|HI}Y?cqB& znRX5#mrj|-_}z;)dvDoV84lFu?XzO9=M<+DLDHm$lsO(F*MMuri0h$SJqJ6s3oID* z{@dmJuSYcT$fhycZl(;1h*?T~sxH%^QM!W&bEwJLB&78CFoX=5W=g2MPFQ!l6ruH^ zDuJRhlLr8xsa87rvEB!%eJu0?u0DBM!W1YB)hU&Nq&~f5E!Co5L=Te4r(e}g!Z3LZ z{7%U?`(UfW=HuGv;%Y63KqS75L939N-GVE8EtF{OtQkQkAp)@VP;Rd)WPiv44O0Ud z-K}x7`wcXJZVAI;}<-u`#D?pEFl7}WJ1DSeADjE;fft?lIuz(m!kS5SB zwoygr`BwVd=5l~ja_v(F)+vH{9nsySb$43JS)1vl zZEBei!zvzNjRf+F#Xih3cpH{uEuhh3BYaMZ!1^8EOwWe*(T?d}XM~?f+CMnRTmJ%V z6A@_Xb5vG6G}0@2r0=J6AkL7b>m5WmcLd}kl>>d1J@w~vRmhcChOH?6&lI^}A24c^ zfgQvXJ|JB{h~JexIuRTo8&MD+3ALM16smDgJ-4gh$9!f8+-!WfWw4BE=F&K^C3&>0 zkHiyHnl>*0=QX2n*_l*kxGZ(*2^CpUOE9)M5Y%E@0R+U3FCxKT9@FCrK zbrv#L?V+(EzWY5}nSOWx#+yC{Z-)<-Dn2GTpM?Wa?h<;3L`c`>84yqYnqE!|lo z82-tRyIB@p^|y_H;^#hq^(JEQQVY@|m)LT&7DRy%SXY(mE(?JUsdO_)OBC@QKl7kG zwYn*|-A|vM>0`o)dcm(Y=q_LefY5czxAK6;C?GpAxY>kV~48XFs=3t6n zdpd#>oyB5+i80UKbHiQ7td$yo=^7*zc$WUsOI0^ zbjeJPUUIcG7BMo*+4f62FPjM^CBUyN2Ax-6S=OSm?PIdt4Dg>%yG)L_z^V}sjC$H8 zZGD~2MtP851k0=<1-fMR5(Gq3sb@ThopgCcXYu z=3&(Mki@m)Eb?bNBVyP149ns~i?aXn*Ol5w=;lhS&f6quuM>!s_56j9#iR%oiPQfb z0p8R1RCI*LYaE={Ts~qFtD26iE361n^=NFRhy&j#X8G(}&uk6FmAARHxK#mj^s6|& z=iLcMnVtSD^d##x6hk>oPzh}YrFDwUl#Z?KA|N@sdaCwR9eSHulLN|)h41?F`BOXB zB7VOqc(|D6yK|&CY~WsIG?l1s zv|(C{g}8mxr4;x{%m+8Ku50>x_PvMSF{$Zqwxo3ram}CKM)>E?BnLH8Bs)kx{T!*l z`ZpriP0#%y@G02f&eTsGz(Jkg9T`mC>5@z4*RR8z9)!b6Ob+z7o1vov?KpU%8QU9p zxXly@m(1Cso55?S>&r+RaY1~1nqOg z9!H+BOdYrsBRDqHm&QdyTed#&X7Mh?N|b7b{g z9ms}n`dcNjC$8mRP+y{9f0?pjoDbQGb)X%^Sc?vvSBzI*i!`g%SrXd4B_OzVs%6U0 zD+V`5esn&0;zU*}1&dv0q(=1Hl^#7UX47;6$Oj9H{Eu%A4Pq`SE8sJF95-lyPHGq~ zp;CZ~9as8knlHa0uqqQDY{y_JfP{oVvZu}0SZwUvm;!n z{L^(Jq@@Y|7)+41H!(iJO0%-!iGqQ4?M7)8St73Yb({_Mi_IriERTCpZXIVSZw6N9 z%k_dFN@blA@ZXo##twDACl((hNBol=;^5IDy4$On48M>@*7D1~KRnf0U4C?MC!Y;;+|F}G4n+cO?-_%Ep zdZRRnpoq1suPOCBorUWRSg&eD=s8JRyN60Ki{-vJ2L~|Pm_M2`=sCW#JgPV1$hp~JlFJL{2i7ja_LtO^vUk~=c9g!Q@)y93Q zk$73;pk?eJ1bnxx2GJNtHmn(tp5Y>0Z|ujM}R>3ip4?W z+IXjuq6betq2Q@Q1QiaeIDPA2M<*%JG-a-Y<>)8EO+LrZFx{yHHfyCi>3*VuTtQg?hM^+o@k7tfu zl11J+3Jr}^`5veM8q-uGdEq6?WKI3y7%hmraLMSF!lTt0&%J*h-sV58BEn39c8 z{2{9p#Mr8I zx_ZCJGoVmI$(%ZLJ0g2~VtgfA^cLFyrrvPgVTdt_KUA@O*7OQv1fr_Csv5vEJ}G~p zor5fF!$%kAuk-=rBbXSyCz5@>pD+cxdNf(FT5RLC-Gcb|D`R8S9{4jpT>Kj~;CLs#xSYDvFN@9py7GVI*67*~NLX#WISqmk$s@?)IB zJUSwB_0Rc>9r$+aMkAM&Z!KkIlRVFzuVt4dVSgW_6(Jdo zGZv#*vaDOJ=gTkSG)}h7_#8iKHuNy>beDF1`m2{42R;YP1|*P!3GV(GyWMI2T+W)T zCp=v=naj%^ngA@`T9BxDlR2J4l0C%=qb!Ej3rltF$zoV1>u*cZADd9pLqokT9Se{Qd^aPYJT(kU!8YKKUJ*thnF7zao+g<%~GoW z&PjJB@L8|Z!V5ivxPv8u<9X+>1*lbH)QGNl4S%#{%Tzh!U0dmf@B=8_AW%tdDijX?|5vQVJ_r$}mg+{i_>4CIV zZF^ToC6CBI;d(Y5BGDO#q}o)ipkNltXS6z{WW}7oP+NdR*#W28IJD2K)^*u}0eYe~ z`n8Gy*d%bNSHX~RSKr&w_3NwvN)Us&aki2QN{tc`!9+u3HJ6gKnF4P(`f>u}as0RAq*BS1`kMY@O zIx*`CKmyM7ROmZ7d;a*K9vacB@3YwQgD)eTr?PWXtFAK4>vqTRjCfw!{*70=^!Aj+ z<}cVQ7lL%giR?~ON4SLM+;&#f z(Qf+Y6-blJnrGOKy6ApQlHJ+ym99QLmh5tqfAzF!-Ii6wANtxY006-8|BnpFe@d*O}mAG&dO;NbUh6d2}yunTFQj+Xrf|!3u30H|6r}9`5|Ih*3max z=RDJ-Z`|~Gxc~8q`u_TC?(BqvlEltb#r<00V86j_36ZWn@A2#6j2QHR8AUi?Vg6o(7I+s~WbOB=8GNVtBAzl>LUk66E^j4cZ$*75629=NO&RJC& zf9|b|%Qyd4ZZC<>m-D2E*fc-(ju*>VD2XZ~y6#P_&>VS`Gw$)Dl8!7b<|tVUmoMou z96&?Rp=nS*-n<1vnBsf9nFxX*jn^M53=UAw#e_2>HRtnJukCOO;c7dkU5@i<*y(I) zWm7jp4HCPBLt~Q%V@CN;*8U31>7gM}tfFNlJ@4S~3+&ZKlmI{{$pfbpkzfH)c{~MK zONzid0THpIe^3@%T9^Iqvm5a@bBl^xgh5CyU#0p^-tMaFlN+POBh^QH)6^*)mQorOfCF6N( z1vtz46bZrWF^Um+Ir@c>EL7s}@yuG_ljQYWRmA}i^~qo*B8W93s0;gUY7zj52IPMh zWr^SF;1Z>@oRq`>5Vc6b#6ySyOkuiY$U(t{zefmN$y{CjKq1owCX_1p^Iv266=S~BE$U|LVJYFrTEcW{-ZT-uSQVquD?L~ zRH#{8&+@?$`!}*WUdx~>#*dPTKL8MPxIYi_v3_xbr8d}7wW`YLS(pnEn*>hUuSplB z&Wyt20Mcd|>cc-Fr92C93y+5ykoVU6TdiQgN6tHBphgZSWP+9OPY5GbYOe$iJfHbp zFvF`I5%?G`$>9J(ZYZJcSU7<=f(UC86fqcAD^LSMtY+-m=3Og))4IN!e)Bp#n_tU1 zfm>dyMXLT@0oyHWQJbV->?t+2qWu^JNmANxnUGPy{PNSBI7yV>Hj|-$1`L0QT}N3l zlJL;cqk-T0bv>k3>?K6;g9BC$dk}PLx zk|<~h(qM^(bt!0e(wz7tP!Sl#{$uoNidbws1!&oU!buEv#A;L|OBp|ArvdY)|7n(E z>fg-H9{j^BR0Pev52T&C;{Y3&J^lsCg(C_^#1xnYa62IP3FK3CrNPgyekK9L)qS&l zwU-K$@$@)ZmXo;p=hi7x^|tz-_|egaBZ@Yz^UbE<=SOi6!pjLWEGB6g>8S=^JB6;3 zZRhm<`#JCH5XHwO_{nFm!};|yZvoa`Y*Bf&!^_IC@ZxfcC;%8h=fCd8m~*_#r*GLkqzDQJYbAqOLq6cDbTgZ`OF0d>l z{+vfdPNPnSlzAjk9-ecAQ~Ns^+>PmLzppyDw4=8l2K$ezbxQi? zTS}RaGriAimQUbtVQH#^WX)?7g5LiNd+!*eS+_0drfsXzc4nn*+jdskcBO6GuC#5d z(zb1@tG?QO?%BI}@7dkaw`0E%?~gTO&KQ5@h_zzO@jR1Sy@;L@y&iYZrPWC(FhhQQ zPTLF7&;f~|_x(7?O0a%$po+H1G#+Ey4$pa~*U!s3jD|f$(%@M%$Wa;U8-O7{_}Ft0 zGX;*f`Yb70%uf<57QaspcT0p!g1b)`uQGYeGMd+GrC`GF zOU)<^X;cu_>?NUnyYlY@$%0fr#_&{VA>S~ZN7L<9>&m2Z8EEWN|oe;hC9%k2}Fg6MUfEoy~*(WIF zt|9msDH1d&o^Fz=zZc}N(gGS%M*t)b9uc$;nNf@f#91B2A6CoRNCu^djFI=rZ>KLa z^zphb_=~F46L*EGSW1ZlIXl~<$SXv!qY|?6hu2~%qb%a!H;C^ z$n5V_HNqlyv@O5P$?YFvqI9kZk(u!H_(7#P=RDs<1$6poqF+R08CHdApLD%GmB; zm8qcUS=tw1B#f&?g0{0p`o##zyY4TLslgNomZ)p-xC0gGOF?pFqJk|sp83VBBuOwK z784)ybyY(R0Bm82D(urT%$yz$aMJsSi(Cy}Ql_atwD>Di?_ z`G~7sO5+n8^JKY$XxjGXk_g#uBVG zg+OgYbl(gmU-U#75nu?!75zHUomE35ALgx+y0|F-vJVT-bGvH+5M2h`xFC^wRu#B(}$$KLif^O$E5`$yE=EWtA2cQzMbE+`J+qA;bMl9 zzvH-d!&Un-+d4nX$t78>K;JCkNW-|PNtGn1U(p1zOYjkQG0t0`0=r=@I*}B@7q6R% z1<<)77ggpACoVOAN9-ySGusL^e!RpAbp=y&hl&yLsfxo6sg;>pkFX(4qg&gEzr8v$ za7n;hN3;y6Qi7O5&ve=Vh5n61IJxl$K``xp^4divhB&MwgrTT_s{lzr&yP@OUINH% z_E?0VGebN5VXcgsb~$wr`4cu6G4GLamkTTe72^5tLQwtKF=DkO~a!ky-xWUxjKGddFe)+VJ@=R-8${xgH08W=z$LKBc+z zkD0rk9D>`=VL6UwE|fdp-dSCEs#JAtJWeJTG!;y|2B&{$?^o_?IYzbJYxpM>8QFdm zs2{3E21jeZ=Q=%~w-`GX9rdjFw3SR^CEB#N#6Yec4?4CXc4<|PU&c$m=sxoX=m11C zn+z&qXH~VK0}vf`F9)<*ZodC?@p;fan_V)v;+kiF-3O4Mx}9XATexJPAE_juQ>e`z z4o^5^x*;U-h-nuaxgh>EWHa(>$n=KL*frC@Hqe&NoB~uIgnJ$*DGoKfA>nf<%i0}& zxM%;)Hy<}ON3b36I=_8)c!H9JgxV^|7_m`>6`p2_{Ms^VY?EP?7XB3tc za9r1|QkLo@(IT4tpdT*&-oGQ(;QFLjLc~V?}Y?-Rgq@Yn|=Nl1V|@ zXgox6+7zUNXW+sVC9EgGfG8jvTenV#K5*3d=>5G`*dNZFXsFUGwjOUO& z0;Z6sW_mRh7gpx+MGGr#q!b7Xu;#GB^>*t$oN_KK=Z_{w@K&`dRy7SYEH>tx_7kw|K2wWR58vxm z9ztu0Yaq`?qWQmZ-{fQC3&ZZY?Bbdge_FAEjk?ob3>b7^yxXr08X?0kS6exgn=_pt z8v)4@@PWxtljZ8+|0;2hgTY`ZbOr?IB8a8wOBAAggq4r<|Dj0D9EeU z3tPw5x=H_NxC_Xk>2N{hWSzWFN49N#digRu>A=%Q>QxuP_#3o{?}Wm*^Bttfw6JWmwgli`PA^1J0unfKYiP4UwE2hLT8(?B-Wa1L>~ zOkFZBQ?SXs19!q-B@>K73ld(jhwajzMqf=bmGKevzYfH;pmf;QAgXZ7+h;eSt#~pSC|4#>ZFTo|THn@TBLb&?+q~6$)MY8b zz^-RTJ*T}jJiCvkuk|J-sHA~7>wg8w%7+XEezPfk8Nd$KefUW3_}pCeST~YCuV9`V zZS#N^6~9#&n3>cfiAWLiMWQg_|Jf^|o{8a_; z`GEfWD#x^2-Qd-)N5x-FdiMY8>uLW%`&#th>}xGvSu>FhJTzV!8Z#P6g+8CRc&w~V znmHvI#2X)W@vr)CIn$#+rj&2nn@68l=w*u7^QamCoZ{-AuB@ORYX_x-iQMS^psP6f zVr5K=C1L%3VIVcfpkl@nO1=`Sl6mHEjNf_JN15t^0oM4~x*1S1uC? zr>>}0r?e`ckq`eNRy)n$ycUAdc+o)R{&tADypXOOr4tfYW)~p=E7hxjNhytrbT%tM zS=~w0;;cUB^}U$+yIMz~k@G{>oX(cbxv|*mJN6u8k=6_cU;Zegs&D@^7IWUb(+Of+ zmU!`{F{mYbb$+c9OSZVlwhf{?;V_&a%2iz!^i$)c#o93WZ~fY6hOt=rpuQadh&XTq zx1OW4f&zTZz}-8HDN|mRTFwpPlA$k*5LyTfxFyd`?SW)Ef5<_JUDO}_TJ3NB8r$R_ z{hIjS^lL9Ct6YixwDZN#gwL|FQRLO&1P`#1auLLnEy9Gr7oUQ~VnjWKQZNn~?V%Ye zs}_7h$ffSW9ufK)GT7^im+xwjF!?B@WXDliqbO1PE4y<@=s9OX!g7fgPk`CyK3N=Z5wv%oLSZyPF6 zk~V1=RUtW1@5d5y*q2KA4&G?O3A|1{F*snx=4KdzX*{rpro6&&b@rO5YIs5q?#)GX z)tT;O(R$Lbaf7XK-1?grv$;FfxrRmg2t6L2CPt&12GsT)sqpfsE{qSxjVhwb>2>ER z{mP_Re`2jZ)Y=EIU~C?0elzL>Df)E#FR1h$$3}0Pyo|ff%i>O9peGvfdzTKGi;BHX zt2rWsawQe9-;^Vn%BPLx7r^wV`%9H^6NR<&TpR(($@^~MFjA1^wgqqoHGZ4e_&SyH z7`?-&W}w2@P_ps9o`L!BQ@G$rru7)-j?coVNpL|YBt#Dul;2}qk#S7;VEBx4#O_nn z?_gLwU7}delV}g;OnYhmcr0{mdU{bSlb ze&5d3$Qqf_?QrsD^TCqt#D&L##V%q^*OSxorZv)$8h=g4e-qZsBkL8n z1EZX5M&V7)?z<3#{V>bVL~?TL_|<)bWMCHQe8*O34;{PU$aI*fG?Y&|?j_Hd!FkTx z$wJjIS^WS#khij7=8#WPT+OX94fjR-DIjiZ&OqmvqOEc;%~1ed$13>jmB7T;&NRbY9r zi7AH=5>dJfRivm>x&x|0)Yf(cFBYy(aF~mWT z33uCa%^RA;8iOI#sSru(Cz5Hge>DdQL&=e7^{cK?GU&Ol-VP5c*Plu})puCAuU5Ug zuU?$FuQvV&TUvRa-EzMQ^X9fZ5Bv7i(C$;T9bQSL8WT|yZ|!y0&9@ClGsgb(5Qs6# z87+|NhC(H8Q0PtHFQlCa=pZ5eVN8-sJyPO~>*o`c(v1vW} zk=Vlwwe*)T!S`~bES+r>^0F=OlIgFwa$ziwOcWW~iNyA{RV1-EqY56wZdIm)& z3tZLU)7Uzu_ZTdfBoQ_*3=df=BL7Sg8xJ8d?89FownhnPv;Qn&n^yCs^5Em~^FylV zffie{s);4uG|TcI^=0(Lq#bunu?vn;L&&iY?dhpKIgYe2sQw~O%qLQM`PDKYi32qH z#$63-%lP2}!R;U>}L|aJEIIdg$PmylbLdph(Z8%^7w`8(`WXCo+ zPw}SLp;)fYW0L7da>=}Fd6u-vK7aan*Tt-PjGbwwE`;cucIM$942OxLp~N`+*OK}^ z4V-$#JwXJ=NmwO@qQB0&FCpoI6hd2(7HsS8j)iNmH0CU^Z_@QiDqJRegew+1oeWuX zB@&exkagT4T#(6!6R1Y{7YYIe#>Rl>HTw#oN`DZV(U$>IL)iiG;Vh%uByZuN>G$Fc znZe|Q>kEcCnT@cCMR6hhogOWML{uaqqmVC!ocb96v1Tt&crcErN%S9WZH2`DXlrYV z`$t<_)IZwV?6>~T)+Ugowfu%56o@apGm0J_L2JXtIEX_>K79OpRpPHz@;Yh-)Y{(d zcL0ioc0eFQr`Yxf!1{Ugm%u{(?dWKjx5;#Q!=+F|VZEvdScqnw-|bQ)zvZGup=P## zBwKcV7aGreXoxQcAmVpD?<3^9k;d2-d@72x#TU4ZK;$==MM`Ur01^;`_2&4>Ap_%g zHCupaCuSNJ!xkAPAR!;%Xi1C$<6ezi&w}_v>fG4vM?!@r44KPmQjge9tFUcti%F`{ zO+kt)Vo|G{P~0&s2Gc=8vJ@@qAK6;@AKBVw*k7_W%%wlFwfH}>HEOFrvbEJevNclH zKe9FFKeDw|Y#6Ng5u=-~6jvcB(iB8Eu*eZ3Ms|ZgjyEiD|3PEMQZ7awV$AH&Z%Kl7 zhP7!@m6*T6PJz@-{R!(5@mJX8y}!by=tcoa^qb9Kn!xM{ElImhrh}*A5$>qXK>$5K!oL%k ze*R0vCh}XwMu5aW=YDO@(ybaA++5*`Z!;kHrV;=HaAFT2w8VJX8}=eCU7w$ARarPt z9$4A@YH%W1m_9Z2An{4>ZX}xCr|K|GCFK2#>QyfJf`^H| z^w7ntb)GUpVYTfcN3miYZ%DZnZ?OS`%*?m@;7z2H<5#_xC zj4|*bNO7sBhya4ZjzJUffApQ=1IOqpOkPsCMsa8j3TW!WJ4;e4v$b-eu?1fxvk&c}K;TnehogmD{Cm%R;Klhz?gSOg z&&_;Q*ka?A@C+(|fF_K9p-ormL%vinNKOeHQGe(mvn5@9_3f9rb@2zgF{Ij>h_3h! z&)bLu_=fWsGZU9o`@Af`5vrndC;>1<8OPSm3&ZASV7WDNgS4ERf9v~iCN@y8f2xVi zY5J`ER{5akXE;JNbTH1(SYLe%Z&U&Wj9_1(DyneRWKqO?pSOt>L7*w?ce;pbY%4DY zl=+>9sHCCw3F!4C6RqP0`JF8IXl4CpI?8@G$fK0VgC4Vi)Kh>1fD#J0k7%?bUcPNcf{>5wr9sfJoy zPs;q4vzl^PFjT8-ZJ!0sdx4@JxbE_}?fD;sxDTs0^qVK&ZVQuf)~65NoYjwt9iDe2 zx6OXi#H*)iuWojy*zl|w={46=+Oh0%9{E=L- z82Z5Y!zxVnZckgLp_N^K!L`ab>DB*@-Mzwh=0@hr#HeJ8r^^$L$#ND8=JDE7Wt`in z#Ou3*RRu)s?hv%LkH7b0i#bU(gtZD04)a@Of@B*#uAzF2JkprAt+hst`YhWmv9!p9 zOp$`t*k#`Xt)|+EV2&~LsbG!zMVC`SMb@jiBX;JTIrSu(pqXO{xu*k#R8V;RgBF6t zZLqXi>S-m%)cQO>-Q9tacfacGW_RP8jZqJ!@y4j1{DKLClihoeFS<^bvc{s6%!J7k z9DPYFPhm&qzVYHtYDX|m4?aZm@E{A)KhMNw(WH0pGqkyNqfhsPQVt9SR;F}&{NA*O31gN!30Ey_lJ;cz| zQfW5bv0HZ3XupKk(E?e5f;q((cBnIys{0uXE>rh$6{HKB9?}kSt>YxpmOJt3-8c)w zFHfPY?|I2-s6=cYkF4Z>kp&tOsmDCz%$`=L_(g_mezzguFBMy)lS&&fT~wX4s{YXX z9~GO)Zjj}I0Gn@{U$67D5I}WTv8VyMrhq4#s4?C74)uYA7v|4Or2=klzpOU&=ELsZ z&(h#TJZQYjkGC;v_yfu!Ypre*R^L&)*<)-ap-dS}--Bc%oYYwg9QvPCQpHIao~B*Y z^9Z#p-`4Pv6>UCDKIPsP9o_RD2f3Qw2f3QPIKI$stCXJsg5gmvu(rY-`4+xo$(pQv1MfN(^`o8@H?>8~-*<<|=D67!g0cpWaXiVI zHA0z%3Id03=Q`6@j`(|#j0XGYAloziJ{ zC}Gi{g6z*e3bC#R8?`xGeHGJx*l9;qJFq1ZCU#Te+*^;lN^nA*z9pQEem zlJj1Kp}3e9G=wQ`WPg$f1@&++Y&aD-XH!;#uhbmNr|TSI?ku*ESQFCdZ?oxOUOX_) z%8%4+sZd}Un5sP3)1bYG>}<&jhIeY7Df78sUwYU_1ekPrx-^WZNJn@EH6!*37U_GENAoMWZt(`Hy|By;;wboz}Q z?70yVJCk;heh^eLCi!=v5Mz@ibBkOnur6|aO`VUsXkG8Mw=vn7w4rBz_I*4P%U}YI z34CIpn=KlRueABur)8H=-5(xzO+!944J`hmbkb%^%~f*=?nQNtO+9 zIQF>y9`$P7gQI;J+?$rxjhXrWRW^|e$M;neL5QJs|E5@+hE_>xY#;!nAaa3ZaigL`uFW7{tnF%61Mkc)Km@ZErgzHnesU8W5iW!?7_ zZCNt0qp6NyU4d0B~Kc1tzK7s$f{;D*Uy?genpK;|^Kcm|}Ukc^;Ki$RH zkRWX{`^PVVmlOhwV+o$761pcsNkNeq!r#B0FgD2PoV3)oaM4^S@a8gTXKFR1ChXUt zmNjLvp>O4Eu*unYiP+B4x8WWh z!<_StW6T)pOhwp?V9S21)xsk0{-#Ia$i2so(*-q0xDtf5H}Wh;!ix*9kdWa8Ddln8 znLpMyHdcG8o)UTsT+A#as%TNqI8Pu|J~GD9^tB3Vjy0z>b1}vrDaSU^0?Le8@C-m_ z-;d}%FO6hdwH0I~KyUiPq&X@`_Iu}|mg!>@aK(p)-HH5Rne!T69ofE+xI>Q%48fRU zlmdwZ($(}b^%zaup`x#wujoBC>!G?JPODf&i4rxkK!UQw5EFM#MI-mv=OLD(ZuO*> zi_I%^zaF13b3+zx*|PnZv`+fvRgM!eGqJOediIPkyw;ml%Fem^JNO*&OGpL9; zgFEWzCBIpceIg1MAStSVLPei(l%g^>mNn#o%mRf^2KVXZ%Tk2sq*(vq5J-(edwFYybPR{$(xtm$m3$)}sHawdmic zZQ(yLZIw*zjrEPptW9W@^c^f5XoX#Wt#kO5pa0Mk|38}duhjil>i#Qr|EsBshA^OF z^(%E|3uRMSEXY~{~#SZ2MHjL1++wT6ibgZi`{q5}|-@_44)DmokT*|X}f;*U>kU?o=$%PTi>XLIj zMoa)vAE+}v$HDRGL;F!-mqyG$uzy&K?$pKMyD;gX3#rht?>o>zAojJL>5M52>~!4=*?K!Wcz{ zpgJ~T>2Ku&JWoG_IsDP6^w3m`;20@-Qj~SL%^^EU_T~j8k6Z7rpcu11Aa!udx@l__ zb4Y05Y2^yzhXw&sJHzx)m&8i+SXrjPvmIW8keQ=1$*mmZc`XZtG0|^1ye;UDTVWUS z!rgodQ&mIiSNhG{7y49zSK>t7Yyf3z8RTNnT1byt%NwH29vGm`(cZ-yrAo;k;rz5# zKp4@cLBzv@UdYl7HL)!a>pXS(SS}wQ8~ttvSZXbd84+s$jdOeT=n=7cbIL4EkQ1!t zg2^qv{1m)>!h%c$L@VlssPAxgUdLKy&h)ey9eXH|BGHjw-hEx8nof+^scdN&Q}N^^ z3i(xT#MUb^u8}txXn~X7dcH;(Y&D+aq&z=7n-*ZnP`)V^fOm1N^AEuY+|__vGcK z>G2BvzYTij{~!KU`Y-V7|0eM3-|xKQ{~vr<{cHFA-?aOzzJfQW{Y^2S{(tDV!GBac ze~|qg|NmJ#4~Sc;-D?v%E`!l}h9+?=RLU3*XCr2$7Q`Nr%LmLtz3x;P#ubrYGQpiz zb0Kc_bEalsv>JG>B~O(DdI1~QESOJJCCN70c@9P`t{PwO^}X-d*(MHE84i65f+l0k zk~mmyH)FBVjb<4NNJTYm(V)&7sdM8Gnl@O_d ze1#ru5b8phdPjyT>|Nt!Wkp>%rY!QcrpUx$jX+^@_aTy_#11(6cD!`vdSJl=d4HJM zuh0&ii5>d1zBjPBGbOueeK{hTbHI4)d@*j+lXM2-a*wx~7g6oqXO#v0 zMdCH)B`=Q~yIYjbtc$hTGd_FaW{M~8viynX{_}FrqNxsh@?!Af9|}Cu8@}&*umAv2 z4gdg_|0{1T_#Y6gW!V?zD_1jU98?pD7;xNsy;=d}2e-Kt6km2<6 z2&S3y;@r?F!`G4P>uW=@+o{X0FE}`~^iH8xUq0My?e}!`LSz^mwtIQsY?||&R{M&i z?fUGZto?WJ(3C6MDS!eiLu9NLv*;^~>uA4e^btsVT;LbM#=a`KS0(;xMD{$BYsY_5 zFE^i`m1u!l%%gArDD>Z+$@RY@V;Tq+jrA~$P8oE5o}X6`0j?M8`dCl-Yy#`;nK`M+Z~O_LA@ZwT7*mD zRbUWh+88pg$eHjbH!$ZCV|5`iPU!G5mwo&9(SVH)%J%)p3q<0rYLq^!4aBKW$g+KD zkTDu_=(HiYbxe-(D^sthi?^c4O?KzDeP>N(N9N~m$`=-woPDH4UJtg5?UhYkja9fl zcVtukFZE8J`Ryflc#|4*hL6`4?YF=!G)ZB&c;Nao zasmRb&f{u}m5`iEE6&U?48|qVIb3s$q@)DU6t1+@CYoK3s{EMn-}kgkKSvLu$&zgI zo7nh@Zt(SK94>TG>gsnTYSvFSW_W234plY ztZ5X9Rs>yPZ^&;>bU*ogMmgc%EhrRK`uhnp@!Ees5NC+i zt3Vk6AqmN+Ks}%@UfUnV`w&h*2`nB`E=0}Vy0g89k*`DG_$#b!A^@?l5>67eWT*W} zQdX!k)c%YE0;@6_#E%pyB2CFxEh7?{G06ad_)P2QvP!W?p!shIp|$e3AyS$02tuhzQr8L~LUCzt z_C;(_K>W|f3j8>jX&?cL@+j(IAbV;A2{?CqXr@G@EeR{{H!Z}g+I3tj=atfMh%Sr7 z(P?cp6e463p=9*)#)P9%F2^}xiaHD$<}zFqq|i#Lv;3&3)FQtz(*Yx2C`*nK!uSEx zTK4OL6l%FbX>etuT8woTvMiK%P|B8HOQq2A&ky?J4QlxsSidO6ju_l+X1FRyp_M=s z`%^NiM~Gw~%Z7~rDepSUDU*iJ#NG;yUaObXW`vdxn=@!Q{0hngt(5&I=x@mMS5R~N z-$6l7#t3s1GSDj64*6&U*8Soq1qO~htA(qnV*M-iJ~!MzMUEOGh5;Xo7yp7xO?ZLw`4!*W_9Q}q&8zex9c6+Tdm?lr}p$+vm61whes?z$#X4*DF zwMi-n+}&Bpvo}>XnG4{XfyFs&+UsUrpLb8vB#Y1taKS5VvSo26A(-7mYK<4a1$=Gy z@Z@GQeB*YV*Ms~#xvIa`sR?Kz$rDy+h4=yz&Lx`lC~X+U8H^p@!+t>QGIH-O*)Of- ztZ}(~(YF=H)0jR;bkWY^`K2pvpeZ_=m&UxKtbuJFuUvBINNKFN;?yNPxYbQ$dH}VB zci>SqdrIad{&ezAdxYCcdxIw<)48LpBwdJnVZ1`*6Xj8@W0t-h&$?~GxOkJ}g88M- zW@!DCAOY(v5z+gSWHx0-oLFNG@w5QSL}Vm`zBVM3Jrra6!?Dkf@7(w)5Hg*`YBnIg z%=;%W%+g`el7j#7$^vL3JxMFlIKUu~@9=XNED4U?YKx&JUvHw7-q)vDk{ZHRd?gP+ zUS2|UY*-hw<1$+)xH|vem?^xEFGZgcs?-{ev!E2UzUV;Y+wBr0Cq;{8U?fDEMkDms zINnYSVU7$*RerPW8dhb2ClGz+HJ@WOWKGC&QL7Y-d3O*yB_AxHuWFFrAg(XrqK@@W z47~{CfO=!FNT(j=5L`9Eyl09dkef7vZ5N30huy%Spmpz${n}o0FzlCv z&HoiF!hm=npkxHy;Qjk`%Z->S8~~ax#0;06$$-?-EshD0^$W@AOoA6cAE&j^B@a7tgIjPYLQMU`uYk3qr&=z^1CZ7;geH z1g%WAN^UzPlBa{vgcEVYr~>>1(#?WwMQ*o)m8OECf3PjUNf`ajnP#Vh5{%@9tXOU6 zF(3k#s&DYTfJyabtk^oKVCc;{K?#^^wptAnlZeyZNw&#xZM~~Mdm-PkFcNT3qoL^K znkC8L7>x=(@zU=-+XpkcP$pkSQO&x^Rv z8_k9^d$ItnYK>k@h{S;pE{BD{KHxQ}LXd^1=Iy$|qnbz^A}C>hO{v_?x)LH`Pj`;g z<+%m=FV1xHH)m>G|N0>v)$x|%Wje7LEVI!U{T1@@!lmhmD4Wf(WMZ*OYto{klcc3R zr}1#_t@qL$o$GWg1pM>eHs%Ji2jJi`W3%}^w1L!XzoCSZ6&%ul<+R1hb_3s1{Z1aV z7>#F{G@$Wl*6f2FYrWalifQI>IAggwn-#04FWBmHnw-f${Uez!noy)#8Z314tsC6| z{^QnO=hcu&V zrFNMhp7UImW=Z#fo|y~t`o2{tE;?jdqq&mbdM6Q5Rr z0%1~5WOt_8p=b*3wL{15qz@N!c)?^40_Z+7L~i$X(ajf(gN;Y=?P1jVIjt`d&^QaQ zOyoS^jWo0!*dERkG@QH?x5RYhXmau$=X4%p%|elO@Ifq^A#+Lm71f6kI8exuR>t-E(l? zR@RawC9S!FVh{5CNnF$~@NFw79bLmE3rK3WxS=C8Gke6J89O@^>A=&Qs%SwDZvDC7 z4(7pmjaQOHj0B${*fm1u`I>1xD;dVMexZKP)sQVr?FE<1=)-McD`$tH>sT~kW~Tt8 zl-nCJ3Q*(#ZJx3ho3|k3(hqcG@OS{4+ zp5IT=+Va(F;!yXzi$rbR`g*+%h9A5{qkZHN62TS<9y&1jFSO)4ENd){N>`8p|E*M z(bAeOWB#CGu0fi4DJsf|2e`*XM*<8?9#2dZG z(QOABfe3TxAAC@toS7ar>Qp6+lm1A|Fv9!t7Hfn#xlEd2cqNM*fQw9%!GyCj3j&!H znARD6$m=J^zM3lSdF22=hZns~%_v%tX;#e6_i9__xBUPeQW;}5vb!eOImu#gW}TBl zBmc9}>sGO%a^Nbi!O#U5X}RBJqszPPJNP)2_MhY!a)ntxa*KWEElCl+=*(q{zM0=nn!iyuC!W>v}t<9w6UJ&oe~=ZKQv za`&d@^LvxeKVB?&Av915`0H?k=2!VF@ITzq^4}?2{7=pLH^p4f?~9H)h_2z0p&{8^ z#q;XH&0_$jhs$gcidvMosUI*Jf4EevJ0acNYhzO(D6$qm8BC=gUZ=b5-X}?X^bGT1 zT#8Qm2}_u#Vjzt#_6tllubVdka7m8IrS^5ixqaiWPHrkP4?k$jqu`NjSlpGNV+%)@ zs%DaX-2}n1DhVkKvl($h6j30UsMWOJg{3W1nkUN`JIofC1u51NVbNEL+So#>(t(JK zGr(Tr;Jw-!+6{&YWG%@@U0#&LIzJBDWy{rCZ8Z@aa1$y_MUf1I^uXMVrQ4gtZU_Gy z2uMX?_{xIIzAkgA)U+8m4bdu$tv$5xDp84jB3(b|*axpXV}HICrazCorQJdc0$+(Y zu5vrTr3SCxVThF#1yUUy8dpV*9}5MgOYox|z=J9_)yXi205I07SVS`uiW?$#ZcmyB5BYpyx0k-pVs~RJ$fC1&v*IjarIY)&HaDh;le+U ze&vAG$WG#+`SpW5-u!$UnwU68Bc~(_ZSq;$^Txn4t*-@0gW`Q+ec^ozIGGc13PkIc zQCQ&JkoM(maw`)vo*K~WVHqNiqnuzaBdp0G|@}b;!jk8Ok??URUa%e3?-;`zAN5E@M9@37ee3SHl%;`@sYJZdD~Q zEgXs5Sy+}jd3`1~}|1B{e zJ+HtVCtm?LzFH|rLNO5JwLS*w$E8@MHkuROmKiL*iVa0-<~v;j`je&y=8X3zn3Eqx zay{J7lG<@)e7ky)NK>aw_kaSEnPU%iKux%_66(YWlNt3V^?)ph+CBu(w;zW^@}XXLxM$}!_-P?uAf14P{t$Ti{s%gjjI(NX|aq;|fr$nNJz-XHskeayxa zL7nl3c=aKn5QREe#}0pg{rpKWBW6p1+=oMELs&fjfQ2wERHieHYnYNWEAq&pggIkz z#I@@x!^xM2Dp*dP7;MMq>ZT`WqHF*~V%kNkfSmbwT@G>PjUggWlw&>@qb&*_M*k(+ ztCp23N*$hkwyQ*!AryumA~ZZhTmO)r3l}QpJt=iubXCtkl*?4{AS4p+H~bn+_*ID% zRXw#CxXQMHassXuhjU@^|1JD#pygnmV^UW16Gnkwx@R9MQPP?wma2f3swZR#S%Xt6 z-`xjSIE~k{hlE`#re}*WK*$GUX)`Q|(PY1$qn9V-?A}vXS4$jN7gt^iC3T=Xm7Dx; z@axhkxd=U8wk9Uy^9q!XUD1H@kS+{w#N%m*g=5pYL&`LxeM|s@7J-G0ZS!^?Qo^9X z2uK~pqC8+-vdrM;JJDC`YvwVX<3@eiIwH*ONoHdu3FpuiO@GnILJKPpKHmY|LPyu?^up2ZNS>N>fl3fL%Xg{Q+R*ef|Rg zY{`EKz;bWfq+KCfg?1v!gngB>8!UWkdBbrgGry9>eorVFI|U`_Rzj4tsP6+JPt**l zFUoJJF5u`i@6Es<>0_V&*tV!sIEAt3`iZ5y%4ua=zlYK&O0|+pWHvb3quuK;)-#P9 zr43F+fes8v@|hRfHM=7atji?KmU;q&z-%}G42vLN{^rnlDK~)#Ul-r1Azg{B!S2>UD9ot2Ps%)6rr**M6VT9eub9^Ap!_f zCA4Z0p#e%rnM{HZIT&4DZn5KsOfcIX@v%&1d6%2m)3Un+r@GAYGYLtuRDrR)yPGg{Zg-ug=IS0Z!tc(8a6)AnReD)na;B&q zo^{WQ>uZpMn<=bq>rh$G;g-;Tvm*(pZ7C`;G^z9U31HB-lv(MmSR{pG!v|u&c0(QP z9%As4Ua>~PYtvkSN9AiQqEK4}5SSrFZf7+0Z}+lx0JsX^F!s+IVd zhGg7G$G*Nvob}X)Ta_>j2`;#SjJM<}dHoXadLf~$l)wiGwQpk*0_t({QvxgYGT{@> z@`WulM{}*KCh8u>56^wM_KRLXUT4rLfz%VUzNE^x}x7*lSqsQG;JpN4PqADdd!T-sSR5xN=aeF3c3zifP36 zwlJj#*%LY*Vs4}U9RfQ^SMLs!{)jZl`i^0uU`4cZv0VXnVN|N3%sEfEp5+sgDt=wV zUIt*C;}u1G7-6d{xrI`M31U`mjsT(mZtDfVD*r zyJjLh#5gdIpgiL!2F=32`V*MOg85kDYttXy!?-cgIXNH|vH+nTS}bvUoD&Xm>~cZr zd%Y3Cm@Y>lpn#Og7&z4BSi*yg=KbCfT`X#!U%b z>jo|0vQlIGOTtV>55xI^EI`(|WpfgNWbhFC+F2;NGv@-=B=Kr(KxA{Z3oewcj>vsv!Xn;X9S z1$rfdL}g;wN^^klBsM_&sI%}U$t&Ie;|W-7ls(5^bGAo+%^|0wR!E}tnfr@?MT3Ys z|1StwZ23K@GJbdc+V_4r(A`osdMH z5S#Uga6+b841{8q8Updj@_Z1bJ+dYuL!tZ#-f2vPaFEi7NX7EBF000^YG_4WK5O%K>v%S z{o4BnY8CwhwW{yx{cM&ZO%xprCf@xzJ#J5KEu|7a!fd#Mc%7>E!2Ty})Ss~FIKRV! z+>Xifg|bO=>_+%zK(s-EXNHpIU+cx|CF6q)@I2!lI9PM__e(6yVTob(HNxoSjA=06jqCH6j zZ9oW{-1KlIbj3@E0@}hNL=>usRILN-l;G;O8US{q!rf^iGy;%I2FCA=bwgK~+nf_> zLs~h|&}i2<3TvY)>QridezUB)gU=Uru4ngTMqi&XvEu=wCW1@Lr(wmUCSCSjn(C~D zcRIch1dez2UM$wE=p}FHuz=^7AAPgaDtxum4!7$=gRq>m+0)G1c#in&qveXAf7wwl z!iHI8609t5#MG}#1n)3T#Ue`Qd(a#NAD9$A&5CRg~Z&Z9;{$MolypMZbc0v^kF*_&f*PFXKG;fj>`4XTT z{aeotn!&EJ{6l6SVWE-q(UH}ev4kLU=(ITRe-W_Oe2-6~MG0*IP0XTCPIZFRM&o3* zyUi2W^mSElqU9Z!O5h~NsP*7q9}G2-csf(s+N44+se`4A<8;K<&xEWamaWvOil`zd zwck@gJDOG;Knpa2hvu=n&J$YTRy(OG=B(#TRhiQr-y*3@Sj4$mMqV=7OlOqegq{lV zi>f}1bsSy4e`4{bKV+2tj3hRWRVI#_DBz}nPQ(!BsJnaSnN;2ebijL7KDL%~eY+%} zAW!uclc?aP`3Xg4A9o`7Lzyop)lv`83LC6OP}SHSO~B<2JiWUnARCg{d8`YYDF#my z(8k*m)bpt(5n}7mH7FseK4D@CZAQHQhC>$ARVB86;6uNA1lbT+HYs@+?#nth4wJG7 zI83Ur9WG0?bbM`raoThAMHXIFT3xTil2z0Dq-BBU!IR3T_5FextIDp1wR(Betf&4o zYW84X+u@oB=?=4fPNmE;L34dMHq-rX-Af8w^Esj0EC>U+u zRXId#Z!-+ByS93JD_0oC`>xFbE|RPB>1Ry9y6I_nZV6hGOFh?xwa!r^*RDiWB+{d& z>kp{0DuEAr%Z?BO=Z|WIu~9zMws^NzL7Ru*vvtCCpC{9#hp~H4UP|wFNj#Tlu-PhP ztP06(Dy=a@z0t0%8F<>#Z4@G!f>)`BZQL80GRBH-c)EoE6YU8;_%9R=4LiMhwnhhQ z8?3C8p+6V4mZj7uTs@(EJv&_%^{cS}3_$b0&25TzTn7(s*Fx539x4v1HFZOmM@;*T zL5eig;dv6}y&jh4!TiG-rz&|*Gu;Vh^}x53N3P6O5aC~~+)`|u>YisLqb^JxyxXYn zW?MY33$K`tl18W}D$i~7q}goJg(xm}9mnbZ9|U%D{GW=zE=Hrbet^AS+=58zA+G%p zVKaZirc8F$_lz{=7ZIm^?Q!!R_$IwO9?yiy%$X`-N7Dtr+GeR=3h$dl^8<$hy|k*d45hniY!=yLyXLNm-Jz=Z_QZ?=OQ9 z%|q{B$)d1ntlL$NwU{?c&2*2~O(fRp)cG|WO;(GAPYW58y+nXqC-Fo};BIJBwj{hk>R&q{c5j*ZTyLC}`ip=S*yJ@-0@060 zSMvYJ0>!}`F)uowW|AEGPt3hzl%(CZpqr>lo0X`vZJU+0ZQHhO+jgaG+p4r}->k3p z>C@lty-$z6xBHHcUlC)yF=vd36$?+y^#ogbbm^cG6fCsh%sA>f1s4!@a-D>p&LY6( zUngLl_5(4u`B;340(vAD1pulqHt}o1^6+ri@KeOxSi@Rn^@NZs*y%c-F zFAI!zu-*YlNp-#9ehJ#{ESyCgXWnl=XWs8WpFOe$_W)$iK~8_a6n=!{BBab>eu;M?N1fqQa4n-k5ifR?xfkns^Ha6qtJ#T8fDxF;qCTh3 zeh)DE8fIY7rIg9f9`hJ}#IUCvN1Dv-wuUhbJOGvt+WUg9;b%FzuUFBaK`_Ig}yH9;~qLlINEBPMGow=D2);hR$CFmiA7Bz9Q$_sF8Md5;VyD=Q}H1A^Jb zer;q#CloJd5Rp?|7_}6mhX_kY_Bhi(yTd?W-B-JP2n>SeNUYe^#cKYYqT$VMV+5Ll zPFx4mz3M2npii+qlq@VC$tJ5e83>h{G*TrlfXdu))|^_ca||kP_zAwwBnzKxbxz*x%EXj@^;IdZOjFM>D;J6X6s z47<2ezdT|lv&5s^UavYzt?^7bFy6VdDvOu6sw-n{P7He}v8udyvJw5x`5xf7$t@!& zvsiMn37=WJF%4nc2PYB8yWZcs)i^~RK8|OqQb8K3@2nTpD3pks!#80A!F}Fl0C5yM zio|9WAl{-a_r&2%=}{iq_A69!Sk6!Vgvbi)lQvaK;77d!w$Q7c}+DPN94FaE3TuP|>LMQ*Mv-7fNM#-Q{NSpAAz?y;||r z0cG58i-O#i?|Z~1<2SF}P~egDExm9VhH$mDe-6PaDJ&{%HdMb{OmB8nhF3H+libb3 z2e!M~etd&yNzB7a)#!bUK(_Kd#t_@Hnps!2A}(TA9r$oEJ&)0S90=SULf1_zJhO{> z=n2zC3Ef?yz6u8)>5?T?a*sTzq*3R>ohZ2I2W|X!> zd#V7(%03@KeAYXL{GavY$(Qk|AYS z!dC7AtrK>TM7NU>2@H0aQ*!q?eJ6%ghK%UAkY8b z`=87I)7s^KiMCDbj#(DoxfE`&WuF-2){?)+dX^Q1R>xI;`N211zfSiPz>m4DTEFz; zg?t&rd`B=*V*kEqEzAMyJ15)cEwvqcr`WOcFR`N%HZ#&c#E$e|JvUK` z5fa!@{l2#TL+n`E=Ue)h*wJWIK4xU;zZ5&7_$ZR>%^Z|&uqYHg#r#9;Ncj)3qXWqE z=)V;^vXbfjJFz3~m zSC|>XT}Hg6$=7e)O7h5H^cxI$+?W;c@+`$Vlgnd!lRx%jC3Z}r;JFErhdq)cw>Z(x zJ!cCqBCr+6wJo(^^-CZTdJ;lT_`;ORW-v{YG^bq43%5?|q|{sqdVEHSj9L8aYv!qi zu`s#7OnT9T{OoPe$6>7soYIpey<5MP@Xu7p=1oPfRH)Gpq5c-Rm^ySoTXTj-+z z>(ys}dxp&`*=Y@%-L8sn7 zg@$2vSN5GzCP~rOJY^%(zMmO>?DWzfIIE32MuMDcAR6BM2BakczG>-)9>SCJQ>aIs z5n*2_NiYPuXCa_S(M2A`p@vbD%-b+WnASFe%wTi^>DP0!^`I}M=tTUe{6ZCYXgyH) ze)~RMGSrF?uEfz}xq-CDJ`ip0`h+$d*$o45BElpP;r9{PBQo5WP|5G6@4b(D3z6np zImn=Xk1ukK$FWp~F<#A-jGFo4owu*@t7E0=ZddoUr}Fy`%i?DBrk8ID%{gHg42R5S zQZKz86?AcGT7C{X3|^R09au2v&}qeutJ=z{zuEXG2NnAW+5(#`?_4NYniz(Q0N)x7VCLM3Z_`HbJkTMXu}ilJ|c0=^8Y(B{#bSyCHf@~AW$jy zOiH){2tHvFK3HgHaDLvwraL6sL{rG?9vs8N*ueUnzJ<$>X-c5+AIHphBh8glk~**?b{PVk8|w&=T3OvJKR$?N%o8-G<1-ovEJj|e z`8NjX^;nXE766Le%F*3nR^_9@^ko5(RB3CpAEqj z7kQ(H>z5%+_I^cO3mY^GC+HD@r@@qhUQ*Fd$?5Cb`yo$Se(fJapC^?41F$ro91KH@ z5Jepp!_q+=+O1L@Hf^>ts6DqTs6DYVi1J3MZ{Zv(XwgsU_C&`_iJ`Y@Pa`bQrR0wu z5-abni)Zw^YT}LcN6^30LylCxnf#@PJTUr)9&-9~rF;BlA-0g2;<062T=-16Mf&l6 z*Rj0kdR9+U1;zU;r^?iLw(bA1lyp$hKEWs^S`(dsy?Bk7Y|^_pxMjvK3B%+z95g<6oKphgz@I7vlcQ0LAn1A*%XR}^;!D64;94r^J2U!p?#G=X`q_}Me|~pnj&X|Kn4$@8 z1)CqGi35cQ2Rb=TE$A*j2?_5BBF{EfO(emS&<&(gEOv@B3E?AF0D=bRu^cK&JYuar;~9^)U&Au|octf#VDPGXr16|7Qj+`_Bw~ zSM8q}INjji7&u)bCabk=B9KmQ_3kItjzvYm6{|G&gv#ZM#+$Q(ERI3z#*I3&ZZ|2QP!_5Q-`3oPFlsNzKSVykl941wJfnxa-i z-L4ha2CW2#0J5n-dHnHjsLG2k<^*2Co5maLog0==owUUDN^T(omNi{i!?BmH_Alo( zZ%4BVp4hd~Y?iRBnuo1vhoSqE*67_fqh+ztlNlgdQCnt7BWG9TotDZJ4qz`Bp9w3? zXgl`40;SzRJ|z}!f)9GtK*HjOcQ_{=f%GzsM@yxzhF7nXdQW@H1l6sVUxO!(nm=rr z04nD33r*IgXas0D!K}2kP$YCd+b2+W?7K)ze~x5or=;u3|k z+^(H4Wy%=yn_LxN7auE8-h-w-vAAbQ_l<*E&?C>k!r~Pb(JdNU1=pYVp7!+j3+>-cWK=akra+WqzlrCC16YFxsDaop=;w zdnaM0wdUYvpc2ciNM}bKp)`Mrt5(V>>;PE09Jv!#vET%ce76L%z7c8l05<1L2a}Pu zW&j0=Np3wq^hrjR%0VO;ld*dr7%il^hWLZ|yBqOE20>4J9PDmN;1gIx9!H=95KL&)t$`X`AeeOwubA2y2}PF;K;3a~P3EKVzU5+Ax%|SE`m9XIJMy zBR)s3!>vkT=nxsgpdo$c21LR)u}`}1f^}dR=q3(!(Vtu_uDXC$s@t%XF;Z-?a zh?{(mcO3BmNG1h!%y+hDaW{Wf6kr;CQXjjhaEsJjCCk2_1pfz2bt1@&0=k>7Ns!p&SbTGh=7WP9BmX3>qiCuA3FXS(nD&wvk0X$rj>ki*e16Ni{STbv# z*3R`C>phA%kC_#9E$OiARD4Pl7JH=(){;4I8@8%T&+JYng{ox6n3i#!6>Hm4<@$O( z)zFaH-qdqm z-7d&O%{f1Am01|dUN#Ef905)Y4qS3MBaYK%@Ht)LW-~lBlNmRUm-pUrydtwsvfIQ< zc2o>Vm1Kh^A28Xci1aetq!j9+SWP;u<`+ZZT;7~>PN=6YxR^D+qI64~1?B~6sW_OR z4(L%p(uwLW!%hS!F`2nea*4*-v?f&~E?ln`w~itwJ%brHZ$C?$DrsuE%_vTKF}{pz zy53Pupx~Rh7n8ZWk%|k2g)fkW-aWk)wv9a~wJUl#OojQereI&qzoJ%CeuULji>4&$ z>BQfG7gAaB(p~nPG>V?24wpPZZ32QY&J@)**0r6ga@0LU5ft}k@m`)lv0VKr`8_qX7(f9sdWp0Ys9l!Dm3?A+S$z&{HvE9L9{5?m781{95W zeE$4ue;C1)9Go#>_n_0{Hk_cgH+a5kxZ&YxFtFC!(I0X#4)f5Vc;sF&Rc5A@vTmfh zR>#V#dTX>gD0oo9rY^*}2VeNi$c=+p9p_2c(3Md1pu5E2M2)^}gRfyF zj1&CR3HL9-<@v0o4ika|s;;KFNb7x9> zwAH^17lZW$;uH&^LQxn4QIysEe8H#W#IRN^{eH2-!GJ8nT!q}A4Bj?7%ajt}0spqo z-MOjl!Nsx5LEZz-!Gh*EMFZshMuLdY%EE{`!WG+6pGxmdE@&vfEvm9IOLExE4#!2! z^P1%v9;mmqqcHBZLfISch(6F>;HX#p&Xm!?CpdQ$4{z*A+6~W<(c|;=ZPMN}q&w)o zwE`OV1ZfqTj_Gb+>*ZypvuGA^nt7iPm3f~Mb+*JsT!)RZV?evT$hzZr!K8!f>}R1( z?zGQ!EE@I1mShe@#gL8K2|UEgun;Jx@yS5yP+i3#NaRudunDCHQw9XX3I>8n44~7& zLaz<@Dx4wuEa`R3rPL#w5Yyon5=BE4gxWYu`T28@C^w5vsOU0|8^M6n#xa#()_F7?MMbQosJX z!N+MhzWQZg`4HVR+r2$oyfNUlKA`_EXIowHR6M58bmkWZik>XOfi)RJgsNQbtee9D zKFDQ1cabd=%=EA^`ST||_D`%Ib>RxAd=b@r4y$FFTK=9W+3O8mS&=PO*g2Jpf~6r= zSDmCipuAvosV?_iw5&xEWKN}aKE2{saJl^JOJsq0XqLwKaD%#ftLM%4ckHUQ=?g96$Ij&1+>+C|MaP)d z9d6Bxjy&Yu=&i>@o$Q0A`E_TQx87D2fr?@W!5FBj)6111J_7k6R?V%+_C<4AImZ-% zi-zQJBnz@E(AqzG%i-U8OEZZ*i;>JgOv{1BQ=1f9Ua80D-rfz?m@S8eWS0s#A#O{o zX}Xg^30Sr*%GW9z0Y!#|AIDK?BearEbRn2oRK0=`5WtA_$%4Vi2M8+*e5>MKGCe3g z?^~U!&o(z!+#+Tj2e5|5*6GXN0}mPeqVEzxt)^3LnipCspDXt^Hif-jOzD3v?90xJ z$)VpLo1k||Pc;bK{Uy09_eGT7ROa%EJ0C#jU|pY{dA}%W7GBxHz=$O_3${r8Imx*J zN#m6L5dj z1;qD?FM_(~TRWf}D%x=HiS#Z@b*)6=aYw8bLzQ0*RhpSoaq*tD2hL)TagRqDvYCJlOaIYbC;}Zz2_8eEQiP$ zDzOKTW8a{S48Bk2u4AX0chwzz7AR|d!2X?73ybR0R(w8!`egqR|0jrSrI}Vu5Rp|ckC$D!$xP$ttZdO ziqucsXDYb#`U=#sgyQo#S4((%HfLuP;lx_E!LxXC=S^MKvKR*GHMofx#An`x5Px(u z&^}eE&-eJf>zKb-P67MI@Ic^a*@2Q8lsk~Dy4v9Orn37U#-l0YuN^AC-)pDW4$vMI zO7n@-`aFcQs0O*iFaOi=i(enhE+#+#0M_6D08#%Ne*sXoFsD+M*0DGKeNVtj&%wgL z(*D0}{5M9a$=^n)fqxjKhJ6~qWduy1a;2qV1mHzjRYHH>6R7CAm9NuA8=d4t%_$wS zIm)sJUKc4ysdLhITJ5hcOL%&IOtW`H@i{_@iiK;KMX{s!Ee-Mv&@YObw76;0O5ni= z1k*MthA&)Azc{t$^k7_uM8NZVw3l4y1NenEn2m?T@~bw1>AbZ@{-6)pV%$opNI-E>z|>E`9t+eMX%^-Zv%D~ppplX>>Gp^uHjS^ zf_%Oj^nJGhv@9uuG7NnaopJG1(Je8Lh&F7?bGTcU~RRPm6Fo+GT-qU z9Rx<7ujUa%fy*U)NJ;F@##-iU$=Q}Skdn@LQ)JunXZAqXNT&+IUn`drMiaeG5CuLC z&m(9QJUe9GoE1)0Cs~-nmZg3xrI-;o-ROTSrD~)Lr|t5foQhEbMroysRxPXJx|dJP z(Wwm6_KA&t0A~-2;7QSnevug9qc*MTi9@DtCF#sM02m(Y6~uc(4v+J3!EWw-z%*i( zu_oV&Y;F$L!`6Ke}+ucHmMA zqe%$4$8o{Frp6K0H=tTqw=bNh@@Q2Aami}swEm<8VF!mp6jX?GHteu6yie;s>FoSq zkSwYMCQ7DDbCxK8VEn2*NsxF3ohI4^`XUUWjp>478yu7tDjYu>7ln=fUG%(Wm^TV8 zXr1ti5gZ4Hb3tAx{bjIpWDMRB-mlU^wr9wjKdz}XfOrX)tFUy`6Xd5}NlW2(5+HN{ za4HISM?sNaekfNIX+e+K^-3Mdsgl}TYGW)pO@3pv=-XzC#PM~a;O?fr2t|NYK49Wq z{gvxo477S>&ZCMxQ%GQREyU93$F(kBWfecbG8qcGR=Sb*!BZI~a<(NiX#-hX>%X@_ zB-{MxK2NY}+0=h=#b>Y2Se1W7U@Lo+`6i%)*=E#dR*Y8ef}-PTLvIDXRVGrtl4SeX zO@llHoRS9Et{vRGCEPJ)TwGS;lAhF8;~$!t8=)aPR-wl)OW$iBLywo93-zM3g)fUC zy9=a34ZL?G)2_QVHV<}gj)DVf@1nijcNhuRpBS@mFpAt~LV*h3&@gJWyfey@50T9L z6_y5Bk9arnN^?7=B_xP4iO4{zW^N09PWLcgn8ECLrdn{alGPD1wVevQ7>)FJ1=25V z1bwg&;12Dxl-!hWS~|{l=eXC^_T&PWY^DvV?a^n-W@e}E{>kwyBpiq9vM`q3c($u< zZz6wbN(cH_sENu7C}>rNO;-T}l9*(F!$_3vCah$fg*+(~h+08*uukY}*!YDGO!Fa( z{=!nRXJC-@sDU^P!cS_~YGVAB1?Re%Py>xQirZSap~O&lwE5#_v%^4;%plTq|C_E{ zn`mMWIESw26wKp+youGJl5Z0d3W?NvzQlQ5Dsa>)O9b2VV#$f}q%Vl=wlZR zA<>GMwP!R)e64=aaHYAGoePIm{7R2wi#hi~hMExHo;qO4s<@s{xHSDxKPf&>(uS}Rm_~9EthLk1Qr$GjsCQ53e^O1hZwEsrGX$ik5+_uSY zo*uVN51&@h#$p#{?Q%NQI1UG83ux%>gI;dB(jj%#HvlUgMK? zYxJFL^XsMJmuPoewx@qur%|BlZ*YFjNLHU~HMjrI>)(Gp5B<+B_{Z205G!HU^V{<2 z`=JBQcN_cTWLzR!RE>`oOjSzr=W@t;3$~7v@7<;o^i^wtTbk2`i(#M&TjM??1Oa4+ zgl`H-xlLgoiI=93Cd7ncXn*(Isi}DU>(Pti2U&loXh3tH|Bz>zF zx$Qu4MGz3M9KnGnG2VvF$e5~iWvv}?B$9zi8S2k>Xg;1(AqN_X&F7$aHP-D-$WekYt>Ic8Tx{-{{2(s z$`Xr!`TRuZpaB3f{;!=Q{$tId@aIsp(lNKWQVbO6!T>Hqg>`Olba7C2uqx+MZ4I%0 z*jbI^pug8iPS%{(Avy_8LxO2_DrQrq(S{rQ%l^|~uI{3;g9_gaoQm7gCT0_jSjRmvsVb(8aP@;EvC12h%UZ;qF+)1{lbfkSBUyE z!Q%bs&|I;>w04Ne{GnfsndxB*L=hJs+T<*A&@kLbAm;4LYABZAZUm+gGFXW#q>o9b zA`;O!@-iE~qkI{&S(<-rdFD{^_a?S&!tdRG6=5ds>}q5tF@_v(>sH3~4Y_pT7SqgUQG; zLe2aj3uljq4`rl70CyNKRppk~IrqdRgRfV;yY4bz^Tf4-^Cd646?%~Mg?g)hVEqB&^?n6YaZ}FWKwl44w_eAbTX6khTl_Wm zr>zohIpQXkWdfANsP%g72M;>l#>f7=UGzGlPVBN3(5d7ZT$FGQSlP_vFdzy`^yM#& zsc2k43LGj67J-8WH_ZdUABu%1Ss@#n9Ly?AkqZ%^7d*Xe=##S@mys^6W3zghOvy#_ zQW_}zC5P{u%5O#+dMyhQi$1OQ{rysZ@5oYwK*@NY9r+#-0Ko76(C}pczt(*V62+{x zY2XGww~pU)ixJLpwp1Wg4+Cn+Thv5-fI;(zmJqEG2UWQ1FV7Z3vVm6k>Bn(vzklp= zrv&Y72n;i452V#JU2xl#<|oF05A?eHN_-6(4I71=JZZK-BdL2S$RA(JJ;>ZhFJ?^6 z3I%&4Rw&1=tQ-`+G0L>n=^u~MeWE#0;MNY{yHn3q{*DGmoa*LP1n1)$@5?M|qKkI> zhNEmMm{gbHC|(UGQk@J}H!K_#s|r{GUOa($;WppCU-Kl#X@w&<0G(vAS*5O#^~9k& zfgZ(DoEExx;g-OmeW6AE-rDFtpbwqp-0EZpqlO42M}{V~*v&(i-1PQLj)lb#sQWb> zFwHkn@w?d=ZLzu=|5>?LvDzD5$AlY5dcEDfr5v6(0WF7)(H%0zILjvyUcYJ#`$T*?Kzso!`S z5=$1<9>&puP94u%zJECY`NqATy>9M=u6*0EERcI9RHlKIVFd<@ym$qpran-bd?Mju zoi=Y840rGiuZ=Yj%pwvuvIMiWS0|WYUl}xDUM2=J8==wp4Y7k{AExK>ERBUI#w$)5 z<H$y99{gnIfU6^+di8#ps0D#f(3xL!APh;`FD1$t0SBWbf zTcC3F!kh3~sR&LXTsj|Tb#_2b~x>V)}9F^2T0 zoZ?i$9ip#P+-xvJco{z%lUpW_(Iit zLCxBV>1~zQ>ia-REs>}%qRyKpf>APFGJ%BlLuFuYjX^<2^Pb@Rv{hRt(jE)7h!NYz zgXH1IO6yExDCvmS%)B|d=&PJ?(q?8Wow(wbN(S*ZxLQ)ACWFR26{21dq)0DQyQ7d5 z_Xg>zVI58_q#&bs4E=UHtj}jPAAAvBx*WvK*#(h0`#pz;Z(nMUO6f%w)>mox1WVz}E7p*BLJYx6UvJv%pgN4_n zvJb(5xP`=H+ON_tMP=dJJ-lF3R%L?eatX~%!TQ}EpinWQUt$E!A8j-f)biTsXSQ68QpL#6)bNN6*Dw|EG|z5J z2mT92a4&hcZFl>-Deh7xPN}1yp-#axyrUJh6s&{mTt%8y?#EO2 zd*o?`brjABm+(FEgA+jxXDRir(w@V*n|q?wn>s~M>kmruvj&c@lls-D;T}z0TX7hR z1$JVizpjXJztAHt#1&{R>;(gj-8eR*nWc7_MdwBuGoUC!_Gc+?(LE*(?q-qJ^FcpiH$aP z0}^7~O47siOS`{OwNGM$Pe^&o6&ljJ?zZGrtCOx*a+&zVMw4ctu+$?b>xzzuqiB5l z2mI~hx$H9&Rl&t*eD@;=FWSbWOtU>m8q@btS@$)a@x7-a-w_oTp#E2|!}qO#_2!;f zQ5Rx)2L}T}q&58eFu1n~KJVh$F$ijgkUjqbvMb-nrvxfX2hwddC)My15T z_wT}76K2Wt_4#{r?$g6jsJD-90AISO9k4Wbxm@83@}5l-)tTxx{cyOqallf^bXS$XNV$@vxDAC^xupPpG*ZJsocMh`TWUQeW4+UB>Qq9ksRgBW@o?|ud`zMoCM zj!6xwq95qr>|rCD>D6pa8IJ8A`Lmw@N|JOT+TOMQlJxu%=e!Aw1LORTnXyUqogyzd z9$MT#{S`ozr?(9y{(XX%4aLgM5r#f(;W`O#LtS;Xw&BGiusBIR!J%iDLi&L$f+mSV zaU#XP&>+ouL7)2-ku4OuU+?i?87tXnR1bQ~&g`8Ty=E0wC25Z9i-fTG0i#M47@1eF z{uloBW6WS<7GQBU=2*=DOp(2%u*COKHprbzqz~v`z@sQuXN{RW zN%gZiqcn(D>i1qFG}!Z1BRAXG5@IAKEe0R@Q05B^Q;t5>B9$*1bI#UK>R74T+@h(m zC*e$-mG^#Ki1A%C5Yt~4UA9ZQ>5m}<#T#eXt5PwvDW8y+9?z_HbIZlJeGc>bw~C2ux3u z7MThz+!G8@J~RoT1I4ga4a3Jk%YLFAjfGZTZ& zP;`ul+^_ITpIi*kzIrC+R%H997f2Vx2k##U?qMFLgw)0⪚Xf$NLPDknkDgI#hP3 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 z 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 V000000RRC2JOBUylk+nG000tD60`sS literal 0 HcmV?d00001 diff --git a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/TestSetupAttribute.cs b/src/Common/src/CoreLib/Interop/Windows/Kernel32/Interop.CloseHandle.cs similarity index 50% rename from src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/TestSetupAttribute.cs rename to src/Common/src/CoreLib/Interop/Windows/Kernel32/Interop.CloseHandle.cs index 5626032b6..ff41f939f 100644 --- a/src/System.Data.SqlClient/tests/StressTests/System.Data.StressRunner/TestSetupAttribute.cs +++ b/src/Common/src/CoreLib/Interop/Windows/Kernel32/Interop.CloseHandle.cs @@ -3,14 +3,13 @@ // See the LICENSE file in the project root for more information. using System; +using System.Runtime.InteropServices; -namespace DPStressHarness +internal partial class Interop { - [AttributeUsage(AttributeTargets.Method, Inherited = true, AllowMultiple = false)] - public class TestSetupAttribute : Attribute + internal partial class Kernel32 { - public TestSetupAttribute() - { - } + [DllImport(Libraries.Kernel32, SetLastError = true)] + internal static extern bool CloseHandle(IntPtr handle); } } diff --git a/src/Common/src/CoreLib/System/IO/PathInternal.Windows.cs b/src/Common/src/CoreLib/System/IO/PathInternal.Windows.cs new file mode 100644 index 000000000..82474656e --- /dev/null +++ b/src/Common/src/CoreLib/System/IO/PathInternal.Windows.cs @@ -0,0 +1,415 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +#nullable enable +using System.Diagnostics.CodeAnalysis; +using System.Runtime.CompilerServices; +using System.Text; + +namespace System.IO +{ + ///

dl%eoV?`cqzyG*VPR3@n8mH?Z{g0;0(rrv#ss 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