diff --git a/eng/Build.props b/eng/Build.props
index 6d9cf2fb31..adbab9453e 100644
--- a/eng/Build.props
+++ b/eng/Build.props
@@ -18,6 +18,7 @@
-->
+
diff --git a/src/referencePackages/src/microsoft.extensions.objectpool/6.0.0/Microsoft.Extensions.ObjectPool.6.0.0.csproj b/src/referencePackages/src/microsoft.extensions.objectpool/6.0.0/Microsoft.Extensions.ObjectPool.6.0.0.csproj
new file mode 100644
index 0000000000..1e5aa4f589
--- /dev/null
+++ b/src/referencePackages/src/microsoft.extensions.objectpool/6.0.0/Microsoft.Extensions.ObjectPool.6.0.0.csproj
@@ -0,0 +1,36 @@
+
+
+
+
+ netstandard2.0;net461
+ $(ArtifactsBinDir)microsoft.extensions.objectpool/6.0.0/microsoft.extensions.objectpool.nuspec
+ MicrosoftAspNetCore
+
+
+
+ $(ArtifactsBinDir)microsoft.extensions.objectpool/6.0.0/ref/
+ $(ArtifactsObjDir)microsoft.extensions.objectpool/6.0.0
+
+
+
+ $(ArtifactsBinDir)microsoft.extensions.objectpool/6.0.0/lib/
+
+
+
+ $(ArtifactsBinDir)microsoft.extensions.objectpool/6.0.0/lib/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/referencePackages/src/microsoft.extensions.objectpool/6.0.0/Microsoft.Extensions.ObjectPool.nuspec b/src/referencePackages/src/microsoft.extensions.objectpool/6.0.0/Microsoft.Extensions.ObjectPool.nuspec
new file mode 100644
index 0000000000..d08c928436
--- /dev/null
+++ b/src/referencePackages/src/microsoft.extensions.objectpool/6.0.0/Microsoft.Extensions.ObjectPool.nuspec
@@ -0,0 +1,24 @@
+
+
+
+ Microsoft.Extensions.ObjectPool
+ 6.0.0
+ Microsoft
+ true
+ MIT
+ https://licenses.nuget.org/MIT
+ https://asp.net/
+ A simple object pool implementation.
+
+This package was built from the source code at https://github.com/dotnet/aspnetcore/tree/ae1a6cbe225b99c0bf38b7e31bf60cb653b73a52
+ © Microsoft Corporation. All rights reserved.
+ pooling
+ true
+
+
+
+
+
+
+
+
diff --git a/src/referencePackages/src/microsoft.extensions.objectpool/6.0.0/lib/net461/Microsoft.Extensions.ObjectPool.cs b/src/referencePackages/src/microsoft.extensions.objectpool/6.0.0/lib/net461/Microsoft.Extensions.ObjectPool.cs
new file mode 100644
index 0000000000..c2330f706f
--- /dev/null
+++ b/src/referencePackages/src/microsoft.extensions.objectpool/6.0.0/lib/net461/Microsoft.Extensions.ObjectPool.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.
+// ------------------------------------------------------------------------------
+// Changes to this file must follow the http://aka.ms/api-review process.
+// ------------------------------------------------------------------------------
+
+using System;
+using System.Diagnostics;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Security;
+
+[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
+[assembly: AllowPartiallyTrustedCallers]
+[assembly: ReferenceAssembly]
+[assembly: AssemblyTitle("Microsoft.Extensions.ObjectPool")]
+[assembly: AssemblyDescription("Microsoft.Extensions.ObjectPool")]
+[assembly: AssemblyDefaultAlias("Microsoft.Extensions.ObjectPool")]
+[assembly: AssemblyCompany("Microsoft Corporation")]
+[assembly: AssemblyProduct("Microsoft® .NET Framework")]
+[assembly: AssemblyCopyright("© Microsoft Corporation. All rights reserved.")]
+[assembly: AssemblyFileVersion("6.0.21.52608")]
+[assembly: AssemblyInformationalVersion("6.0.21.52608 built by: SOURCEBUILD")]
+[assembly: CLSCompliant(true)]
+[assembly: AssemblyMetadata("", "")]
+[assembly: AssemblyVersion("6.0.0.0")]
+
+
+
+
+namespace Microsoft.Extensions.ObjectPool
+{
+ public partial class DefaultObjectPoolProvider : Microsoft.Extensions.ObjectPool.ObjectPoolProvider
+ {
+ public DefaultObjectPoolProvider() { }
+ public int MaximumRetained { get { throw null; } set { } }
+ public override Microsoft.Extensions.ObjectPool.ObjectPool Create(Microsoft.Extensions.ObjectPool.IPooledObjectPolicy policy) { throw null; }
+ }
+ public partial class DefaultObjectPool : Microsoft.Extensions.ObjectPool.ObjectPool where T : class
+ {
+ public DefaultObjectPool(Microsoft.Extensions.ObjectPool.IPooledObjectPolicy policy) { }
+ public DefaultObjectPool(Microsoft.Extensions.ObjectPool.IPooledObjectPolicy policy, int maximumRetained) { }
+ public override T Get() { throw null; }
+ public override void Return(T obj) { }
+ }
+ public partial class DefaultPooledObjectPolicy : Microsoft.Extensions.ObjectPool.PooledObjectPolicy where T : class, new()
+ {
+ public DefaultPooledObjectPolicy() { }
+ public override T Create() { throw null; }
+ public override bool Return(T obj) { throw null; }
+ }
+ public partial interface IPooledObjectPolicy where T : notnull
+ {
+ T Create();
+ bool Return(T obj);
+ }
+ public partial class LeakTrackingObjectPoolProvider : Microsoft.Extensions.ObjectPool.ObjectPoolProvider
+ {
+ public LeakTrackingObjectPoolProvider(Microsoft.Extensions.ObjectPool.ObjectPoolProvider inner) { }
+ public override Microsoft.Extensions.ObjectPool.ObjectPool Create(Microsoft.Extensions.ObjectPool.IPooledObjectPolicy policy) { throw null; }
+ }
+ public partial class LeakTrackingObjectPool : Microsoft.Extensions.ObjectPool.ObjectPool where T : class
+ {
+ public LeakTrackingObjectPool(Microsoft.Extensions.ObjectPool.ObjectPool inner) { }
+ public override T Get() { throw null; }
+ public override void Return(T obj) { }
+ }
+ public static partial class ObjectPool
+ {
+ public static Microsoft.Extensions.ObjectPool.ObjectPool Create(Microsoft.Extensions.ObjectPool.IPooledObjectPolicy? policy = null) where T : class, new() { throw null; }
+ }
+ public abstract partial class ObjectPoolProvider
+ {
+ protected ObjectPoolProvider() { }
+ public Microsoft.Extensions.ObjectPool.ObjectPool Create() where T : class, new() { throw null; }
+ public abstract Microsoft.Extensions.ObjectPool.ObjectPool Create(Microsoft.Extensions.ObjectPool.IPooledObjectPolicy policy) where T : class;
+ }
+ public static partial class ObjectPoolProviderExtensions
+ {
+ public static Microsoft.Extensions.ObjectPool.ObjectPool CreateStringBuilderPool(this Microsoft.Extensions.ObjectPool.ObjectPoolProvider provider) { throw null; }
+ public static Microsoft.Extensions.ObjectPool.ObjectPool CreateStringBuilderPool(this Microsoft.Extensions.ObjectPool.ObjectPoolProvider provider, int initialCapacity, int maximumRetainedCapacity) { throw null; }
+ }
+ public abstract partial class ObjectPool where T : class
+ {
+ protected ObjectPool() { }
+ public abstract T Get();
+ public abstract void Return(T obj);
+ }
+ public abstract partial class PooledObjectPolicy : Microsoft.Extensions.ObjectPool.IPooledObjectPolicy where T : notnull
+ {
+ protected PooledObjectPolicy() { }
+ public abstract T Create();
+ public abstract bool Return(T obj);
+ }
+ public partial class StringBuilderPooledObjectPolicy : Microsoft.Extensions.ObjectPool.PooledObjectPolicy
+ {
+ public StringBuilderPooledObjectPolicy() { }
+ public int InitialCapacity { get { throw null; } set { } }
+ public int MaximumRetainedCapacity { get { throw null; } set { } }
+ public override System.Text.StringBuilder Create() { throw null; }
+ public override bool Return(System.Text.StringBuilder obj) { throw null; }
+ }
+}
diff --git a/src/referencePackages/src/microsoft.extensions.objectpool/6.0.0/lib/netstandard2.0/Microsoft.Extensions.ObjectPool.cs b/src/referencePackages/src/microsoft.extensions.objectpool/6.0.0/lib/netstandard2.0/Microsoft.Extensions.ObjectPool.cs
new file mode 100644
index 0000000000..c2330f706f
--- /dev/null
+++ b/src/referencePackages/src/microsoft.extensions.objectpool/6.0.0/lib/netstandard2.0/Microsoft.Extensions.ObjectPool.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.
+// ------------------------------------------------------------------------------
+// Changes to this file must follow the http://aka.ms/api-review process.
+// ------------------------------------------------------------------------------
+
+using System;
+using System.Diagnostics;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Security;
+
+[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
+[assembly: AllowPartiallyTrustedCallers]
+[assembly: ReferenceAssembly]
+[assembly: AssemblyTitle("Microsoft.Extensions.ObjectPool")]
+[assembly: AssemblyDescription("Microsoft.Extensions.ObjectPool")]
+[assembly: AssemblyDefaultAlias("Microsoft.Extensions.ObjectPool")]
+[assembly: AssemblyCompany("Microsoft Corporation")]
+[assembly: AssemblyProduct("Microsoft® .NET Framework")]
+[assembly: AssemblyCopyright("© Microsoft Corporation. All rights reserved.")]
+[assembly: AssemblyFileVersion("6.0.21.52608")]
+[assembly: AssemblyInformationalVersion("6.0.21.52608 built by: SOURCEBUILD")]
+[assembly: CLSCompliant(true)]
+[assembly: AssemblyMetadata("", "")]
+[assembly: AssemblyVersion("6.0.0.0")]
+
+
+
+
+namespace Microsoft.Extensions.ObjectPool
+{
+ public partial class DefaultObjectPoolProvider : Microsoft.Extensions.ObjectPool.ObjectPoolProvider
+ {
+ public DefaultObjectPoolProvider() { }
+ public int MaximumRetained { get { throw null; } set { } }
+ public override Microsoft.Extensions.ObjectPool.ObjectPool Create(Microsoft.Extensions.ObjectPool.IPooledObjectPolicy policy) { throw null; }
+ }
+ public partial class DefaultObjectPool : Microsoft.Extensions.ObjectPool.ObjectPool where T : class
+ {
+ public DefaultObjectPool(Microsoft.Extensions.ObjectPool.IPooledObjectPolicy policy) { }
+ public DefaultObjectPool(Microsoft.Extensions.ObjectPool.IPooledObjectPolicy policy, int maximumRetained) { }
+ public override T Get() { throw null; }
+ public override void Return(T obj) { }
+ }
+ public partial class DefaultPooledObjectPolicy : Microsoft.Extensions.ObjectPool.PooledObjectPolicy where T : class, new()
+ {
+ public DefaultPooledObjectPolicy() { }
+ public override T Create() { throw null; }
+ public override bool Return(T obj) { throw null; }
+ }
+ public partial interface IPooledObjectPolicy where T : notnull
+ {
+ T Create();
+ bool Return(T obj);
+ }
+ public partial class LeakTrackingObjectPoolProvider : Microsoft.Extensions.ObjectPool.ObjectPoolProvider
+ {
+ public LeakTrackingObjectPoolProvider(Microsoft.Extensions.ObjectPool.ObjectPoolProvider inner) { }
+ public override Microsoft.Extensions.ObjectPool.ObjectPool Create(Microsoft.Extensions.ObjectPool.IPooledObjectPolicy policy) { throw null; }
+ }
+ public partial class LeakTrackingObjectPool : Microsoft.Extensions.ObjectPool.ObjectPool where T : class
+ {
+ public LeakTrackingObjectPool(Microsoft.Extensions.ObjectPool.ObjectPool inner) { }
+ public override T Get() { throw null; }
+ public override void Return(T obj) { }
+ }
+ public static partial class ObjectPool
+ {
+ public static Microsoft.Extensions.ObjectPool.ObjectPool Create(Microsoft.Extensions.ObjectPool.IPooledObjectPolicy? policy = null) where T : class, new() { throw null; }
+ }
+ public abstract partial class ObjectPoolProvider
+ {
+ protected ObjectPoolProvider() { }
+ public Microsoft.Extensions.ObjectPool.ObjectPool Create() where T : class, new() { throw null; }
+ public abstract Microsoft.Extensions.ObjectPool.ObjectPool Create(Microsoft.Extensions.ObjectPool.IPooledObjectPolicy policy) where T : class;
+ }
+ public static partial class ObjectPoolProviderExtensions
+ {
+ public static Microsoft.Extensions.ObjectPool.ObjectPool CreateStringBuilderPool(this Microsoft.Extensions.ObjectPool.ObjectPoolProvider provider) { throw null; }
+ public static Microsoft.Extensions.ObjectPool.ObjectPool CreateStringBuilderPool(this Microsoft.Extensions.ObjectPool.ObjectPoolProvider provider, int initialCapacity, int maximumRetainedCapacity) { throw null; }
+ }
+ public abstract partial class ObjectPool where T : class
+ {
+ protected ObjectPool() { }
+ public abstract T Get();
+ public abstract void Return(T obj);
+ }
+ public abstract partial class PooledObjectPolicy : Microsoft.Extensions.ObjectPool.IPooledObjectPolicy where T : notnull
+ {
+ protected PooledObjectPolicy() { }
+ public abstract T Create();
+ public abstract bool Return(T obj);
+ }
+ public partial class StringBuilderPooledObjectPolicy : Microsoft.Extensions.ObjectPool.PooledObjectPolicy
+ {
+ public StringBuilderPooledObjectPolicy() { }
+ public int InitialCapacity { get { throw null; } set { } }
+ public int MaximumRetainedCapacity { get { throw null; } set { } }
+ public override System.Text.StringBuilder Create() { throw null; }
+ public override bool Return(System.Text.StringBuilder obj) { throw null; }
+ }
+}
diff --git a/src/referencePackages/src/microsoft.extensions.objectpool/Directory.Build.props b/src/referencePackages/src/microsoft.extensions.objectpool/Directory.Build.props
new file mode 100644
index 0000000000..2b08742d45
--- /dev/null
+++ b/src/referencePackages/src/microsoft.extensions.objectpool/Directory.Build.props
@@ -0,0 +1,9 @@
+
+
+
+
+
+ Microsoft.Extensions.ObjectPool
+
+
+