Soenneker.Reflection.Cache 3.0.485

Prefix Reserved
dotnet add package Soenneker.Reflection.Cache --version 3.0.485
                    
NuGet\Install-Package Soenneker.Reflection.Cache -Version 3.0.485
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Soenneker.Reflection.Cache" Version="3.0.485" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Soenneker.Reflection.Cache" Version="3.0.485" />
                    
Directory.Packages.props
<PackageReference Include="Soenneker.Reflection.Cache" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Soenneker.Reflection.Cache --version 3.0.485
                    
#r "nuget: Soenneker.Reflection.Cache, 3.0.485"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#addin nuget:?package=Soenneker.Reflection.Cache&version=3.0.485
                    
Install Soenneker.Reflection.Cache as a Cake Addin
#tool nuget:?package=Soenneker.Reflection.Cache&version=3.0.485
                    
Install Soenneker.Reflection.Cache as a Cake Tool

alternate text is missing from this package README image alternate text is missing from this package README image alternate text is missing from this package README image

alternate text is missing from this package README image Soenneker.Reflection.Cache

The fastest .NET Reflection cache

Why?

System.Reflection is slow. If you need to call Reflection code repeatedly, this library can drastically speed up subsequent calls. It's thread-safe and supports concurrency.

Installation

dotnet add package Soenneker.Reflection.Cache

This cache can either be added to DI like so:

public void ConfigureServices(IServiceCollection services)
{
    services.AddReflectionCacheAsSingleton(); // or AddReflectionCacheAsScoped()
}

and you could access it like:

public class MyService
{
    private readonly IReflectionCache _cache;

    public MyService(IReflectionCache cache)
    {
        _cache = cache;
    }
}

or you can instantiate it manually:

var cache = new ReflectionCache(threadSafe: true); // can be disabled for extra speed

Usage

var type1 = Type.GetType("System.String"); // <-- regular Reflection
var type2 = cache.GetType("System.String"); // <-- cached Reflection
bool areEqual = type1 == type2; // true

Keep in mind:

cache.GetType("System.String"); // <-- as slow as regular Reflection
cache.GetType("System.String"); // <-- very fast because the first call was cached

⚠️ Important ⚠️

Be mindful of the "cache chain". Use the Cached methods and types until you need to get the final Reflection type you need from the cache.

There are two methods for most operations like this:

Type typeofString = cache.GetType("System.String"); // <-- caches, stops the cache chain
CachedType type = cache.GetCachedType("System.String"); // <-- caches, continues the cache chain
Scenario: Retrieving parameters from a method

✅ Good:

CachedType cachedType = cache.GetCachedType("System.String");
CachedMethod cachedMethodInfo = cachedType.GetCachedMethod("Intern");
ParameterInfo?[] parameters = cachedMethodInfo.GetParameters(); // < -- parameters are now cached

❌ Bad:

CachedType cachedType = cache.GetCachedType("System.String");
MethodInfo methodInfo = cachedType.GetMethod("Intern"); // <-- uh oh, a non-cached Reflection type
ParameterInfo?[] parameters = methodInfo.GetParameters(); // <-- not cached, repeat calls are slow

Tips

  • Almost all of the Cached methods (e.g. GetCachedParameters() vs GetParameters() are faster due to the final preparation needed to match the System.Reflection methods.
  • Work with the Cached objects instead of Reflection objects if possible. They're faster to retrieve and allow for more efficient downstream chaining.
  • Thread safety can be disabled for more speed. It's enabled by default.
  • Consider if caching is even necessary for your use case. If you're only calling Reflection once, it may not be worth it.
  • Caching isn't free. Be thoughtful of your memory footprint and where/when you dispose of the cache.

Notes

  • A cache removal mechanism is needing to be built yet.
  • Many Reflection functionalities are not yet implemented, and could benefit from caching.
  • If you see something that could be improved (performance or allocation), please open an issue or PR.

Benchmarks (.NET)

GetType() 5,772% faster

Method Mean Error StdDev Ratio RatioSD
GetType_string_NoCache 1,022.30 ns 9.462 ns 8.851 ns baseline
GetType_string_Cache 17.52 ns 0.303 ns 0.283 ns 58.38x faster 1.12x
GetType_string_threadSafe_Cache 24.73 ns 0.139 ns 0.116 ns 41.29x faster 0.33x
GetCachedType_type_Cache 12.21 ns 0.234 ns 0.218 ns 83.76x faster 1.74x
GetCachedType_type_ThreadSafe_Cache 19.01 ns 0.067 ns 0.052 ns 53.73x faster 0.47x

GetMethods() 24,842% faster

Method Mean Error StdDev Ratio RatioSD
GetMethods_NoCache 256.526 ns 1.4587 ns 1.2180 ns baseline
GetMethods_Cache 1.030 ns 0.0412 ns 0.0385 ns 249.428x faster 10.30x

GetMethod() 37% faster

Method Mean Error StdDev Ratio RatioSD
GetMethod_NoCache 23.06 ns 0.234 ns 0.208 ns baseline
GetMethod_Cache 16.77 ns 0.079 ns 0.070 ns 1.37x faster 0.01x

GetMembers() 83,924% faster

Method Mean Error StdDev Ratio RatioSD
GetMembers_NoCache 550.2334 ns 4.1411 ns 3.8736 ns baseline
GetMembers_Cache 0.6579 ns 0.0515 ns 0.0481 ns 840.247x faster 58.17x
GetMembers_ThreadSafe_Cache 0.7273 ns 0.0307 ns 0.0287 ns 757.728x faster 31.76x

GetMember() 1,043% faster

Method Mean Error StdDev Ratio RatioSD
GetMember_NoCache 136.57 ns 1.353 ns 1.266 ns baseline
GetMember_Cache 11.95 ns 0.091 ns 0.081 ns 11.43x faster 0.12x

GetProperties() 8,960% faster

Method Mean Error StdDev Ratio RatioSD
GetProperties_NoCache 58.5363 ns 0.3463 ns 0.3070 ns baseline
GetProperties_Cache 0.6502 ns 0.0370 ns 0.0328 ns 90.25x faster 4.59x
GetProperties_ThreadSafe_Cache 0.7169 ns 0.0129 ns 0.0108 ns 81.72x faster 1.36x

GetProperty() 57% faster

Method Mean Error StdDev Ratio RatioSD
GetProperty_NoCache 25.61 ns 0.382 ns 0.357 ns baseline
GetProperty_Cache 16.23 ns 0.074 ns 0.062 ns 1.57x faster 0.01x

GetFields() 419% faster

Method Mean Error StdDev Ratio RatioSD
GetFields_NoCache 48.941 ns 0.9092 ns 0.8505 ns baseline
GetFields_Cache 1.141 ns 0.0512 ns 0.0479 ns 42.95x faster 1.32x
GetFields_ThreadSafe_Cache 1.178 ns 0.0144 ns 0.0128 ns 41.56x faster 0.79x

GetInterfaces() 1,439% faster

Method Mean Error StdDev Ratio RatioSD
GetInterfaces_NoCache 13.1880 ns 0.1197 ns 0.0999 ns baseline
GetInterfaces_Cache 0.8649 ns 0.0469 ns 0.0439 ns 15.39x faster 0.58x

GetInterface() 144% faster

Method Mean Error StdDev Ratio RatioSD
GetInterface_NoCache 32.84 ns 0.411 ns 0.364 ns baseline
GetInterface_Cache 13.47 ns 0.227 ns 0.212 ns 2.44x faster 0.05x

GetConstructors() 4,054% faster

Method Mean Error StdDev Ratio RatioSD
GetConstructors_NoCache 38.4477 ns 0.2020 ns 0.1687 ns baseline
GetConstructors_Cache 0.9280 ns 0.0109 ns 0.0102 ns 41.54x faster 0.36x
GetConstructors_ThreadSafe_Cache 1.0120 ns 0.0689 ns 0.0645 ns 38.39x faster 2.42x

GetConstructor() 601% faster

Method Mean Error StdDev Ratio RatioSD
GetConstructor_NoCache 18.16 ns 0.298 ns 0.278 ns baseline
GetConstructor_NoCache_Parameters 127.18 ns 1.592 ns 1.489 ns 7.01x slower 0.16x
GetConstructor_Cache 10.36 ns 0.057 ns 0.048 ns 1.76x faster 0.03x
GetConstructor_Cache_Parameters 21.12 ns 0.366 ns 0.342 ns 1.16x slower 0.02x

Activator.CreateInstance(params) vs cachedConstructor.CreateInstance(params) 242% faster

Method Mean Error StdDev Ratio RatioSD
Activator_Create_with_parameters 325.58 ns 1.713 ns 1.431 ns baseline
Cache_CreateInstance_with_parameters 95.61 ns 1.943 ns 1.908 ns 3.42x faster 0.07x

GetCustomAttributes() 1,658% faster

Method Mean Error StdDev Ratio RatioSD
GetAttributes_NoCache 2,560.76 ns 6.740 ns 6.305 ns baseline
GetAttributes_Cache 15.35 ns 0.287 ns 0.268 ns 166.858x faster 2.97x

GetGenericTypeDefinition() 499% faster

Method Mean Error StdDev Ratio RatioSD
GetGenericTypeDefinition_NoCache 1.8759 ns 0.0481 ns 0.0450 ns baseline
GetGenericTypeDefinition_Cache 0.3159 ns 0.0313 ns 0.0293 ns 5.99x faster 0.58x

IsAssignableFrom() 51% faster

Method Mean Error StdDev Ratio RatioSD
IsAssignableFrom_NoCache 9.355 ns 0.1357 ns 0.1270 ns baseline
IsAssignableFrom_Cache 6.198 ns 0.0794 ns 0.0742 ns 1.51x faster 0.04x

MakeGenericType() 1,485% faster

Method Mean Error StdDev Ratio RatioSD
MakeGenericType_NoCache 158.56 ns 0.900 ns 0.842 ns baseline
MakeGenericType_Cache 10.01 ns 0.216 ns 0.202 ns 15.85x faster 0.31x

GetElementType() 1,847% faster

Method Mean Error StdDev Ratio RatioSD
GetElementType_NoCache 4.9175 ns 0.0442 ns 0.0369 ns baseline
GetElementType_Cache 0.2585 ns 0.0204 ns 0.0191 ns 19.47x faster 1.06x

Properties on Type (e.g. typeof(string).IsNullable)

Method Mean Error StdDev Median
IsAbstract_NoCache 2.4277 ns 0.0319 ns 0.0299 ns 2.4152 ns
IsAbstract_Cache 0.0000 ns 0.0000 ns 0.0000 ns 0.0000 ns
IsInterface_NoCache 0.7720 ns 0.0219 ns 0.0194 ns 0.7662 ns
IsInterface_Cache 0.0045 ns 0.0076 ns 0.0071 ns 0.0000 ns
IsGenericType_NoCache 0.8707 ns 0.0281 ns 0.0262 ns 0.8732 ns
IsGenericType_Cache 0.2667 ns 0.0195 ns 0.0182 ns 0.2651 ns
IsEnum_NoCache 0.5322 ns 0.0242 ns 0.0227 ns 0.5291 ns
IsEnum_Cache 0.2612 ns 0.0251 ns 0.0235 ns 0.2526 ns
IsNullable_NoCache 1.4296 ns 0.0297 ns 0.0278 ns 1.4305 ns
IsNullable_Cache 0.2312 ns 0.0077 ns 0.0065 ns 0.2278 ns
IsByRef_NoCache 1.8439 ns 0.0332 ns 0.0310 ns 1.8410 ns
IsByRef_Cache 0.0012 ns 0.0025 ns 0.0022 ns 0.0000 ns
IsArray_NoCache 2.2914 ns 0.0484 ns 0.0452 ns 2.2652 ns
IsArray_Cache 0.0060 ns 0.0102 ns 0.0096 ns 0.0000 ns

Notes:

  • These benchmarks are built over iterations. The first operation is going to be as slow as the Reflection it sits in front of.
  • Many of these are based off of a test class TestType which is located in the test library.
Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (4)

Showing the top 4 NuGet packages that depend on Soenneker.Reflection.Cache:

Package Downloads
Soenneker.Utils.AutoBogus

The .NET Bogus autogenerator

Soenneker.Cosmos.Serializer

A fast, lightweight JSON (de)serializer for Azure Cosmos DB

Soenneker.Utils.String

A utility library for useful String operations

Soenneker.Swashbuckle.IntellenumSchemaFilter

A Swashbuckle Schema filter for Intellenum

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
3.0.485 29,301 3/20/2025
3.0.484 12,899 3/14/2025
3.0.482 7,793 3/11/2025
3.0.481 161 3/11/2025
3.0.480 487 3/11/2025
3.0.479 7,160 3/11/2025
3.0.478 17,074 3/2/2025
3.0.477 1,105 3/1/2025
3.0.476 3,037 3/1/2025
3.0.475 81 3/1/2025
3.0.474 83 3/1/2025
3.0.473 87 3/1/2025
3.0.472 2,780 3/1/2025
3.0.471 84 3/1/2025
3.0.470 2,319 3/1/2025
3.0.469 75 3/1/2025
3.0.468 80 3/1/2025
3.0.467 86 3/1/2025
3.0.466 79 3/1/2025
3.0.465 78 3/1/2025
3.0.464 13,420 2/25/2025
3.0.463 11,545 2/22/2025
3.0.462 5,800 2/22/2025
3.0.461 1,537 2/21/2025
3.0.460 698 2/21/2025
3.0.459 12,395 2/18/2025
3.0.458 5,331 2/18/2025
3.0.457 11,272 2/13/2025
3.0.456 9,293 2/12/2025
3.0.455 1,444 2/11/2025
3.0.454 358 2/11/2025
3.0.453 79 2/11/2025
3.0.452 85 2/11/2025
3.0.451 3,163 2/11/2025
3.0.450 433 2/11/2025
3.0.449 3,877 2/11/2025
3.0.448 1,445 2/11/2025
3.0.447 361 2/10/2025
3.0.446 3,178 2/10/2025
3.0.445 412 2/10/2025
3.0.444 496 2/10/2025
3.0.443 81 2/10/2025
3.0.442 83 2/10/2025
3.0.441 81 2/10/2025
3.0.440 83 2/10/2025
3.0.439 12,602 2/8/2025
3.0.438 1,010 2/8/2025
3.0.437 265 2/8/2025
3.0.436 2,594 2/7/2025
3.0.435 87 2/7/2025
3.0.434 281 2/7/2025
3.0.433 85 2/7/2025
3.0.432 1,146 2/7/2025
3.0.431 93 2/7/2025
3.0.430 3,500 2/7/2025
3.0.429 85 2/7/2025
3.0.428 346 2/7/2025
3.0.427 87 2/7/2025
3.0.426 4,503 2/7/2025
3.0.425 79 2/7/2025
3.0.424 86 2/7/2025
3.0.423 78 2/7/2025
3.0.422 83 2/7/2025
3.0.421 14,314 2/5/2025
3.0.420 7,440 2/4/2025
3.0.419 9,169 1/27/2025
3.0.418 2,370 1/27/2025
3.0.417 77 1/27/2025
3.0.416 13,247 1/25/2025
3.0.415 5,820 1/24/2025
3.0.414 7,884 1/24/2025
3.0.413 1,513 1/24/2025
3.0.412 1,930 1/23/2025
3.0.411 5,551 1/23/2025
3.0.410 9,745 1/21/2025
3.0.409 2,310 1/21/2025
3.0.408 5,969 1/21/2025
3.0.407 3,241 1/20/2025
3.0.406 3,949 1/20/2025
3.0.405 2,609 1/20/2025
3.0.404 2,581 1/20/2025
3.0.403 224 1/20/2025
3.0.402 80 1/20/2025
3.0.401 81 1/20/2025
3.0.400 75 1/20/2025
3.0.399 363 1/20/2025
3.0.398 85 1/20/2025
3.0.397 8,373 1/19/2025
3.0.396 6,794 1/18/2025
3.0.395 6,559 1/17/2025
3.0.394 5,014 1/17/2025
3.0.393 7,832 1/16/2025
3.0.392 2,673 1/16/2025
3.0.391 3,948 1/15/2025
3.0.390 5,580 1/15/2025
3.0.389 69 1/15/2025
3.0.388 1,430 1/14/2025
3.0.387 43 1/14/2025
3.0.386 45 1/14/2025
3.0.385 91 1/14/2025
3.0.384 46 1/14/2025
3.0.383 1,134 1/14/2025
3.0.382 35 1/14/2025
3.0.381 2,672 1/13/2025
3.0.380 9,362 1/13/2025
3.0.379 7,528 1/11/2025
3.0.378 571 1/10/2025
3.0.377 65 1/10/2025
3.0.376 1,972 1/10/2025
3.0.375 63 1/10/2025
3.0.374 129 1/10/2025
3.0.373 52 1/10/2025
3.0.372 3,336 1/10/2025
3.0.371 58 1/10/2025
3.0.370 53 1/10/2025
3.0.369 54 1/10/2025
3.0.368 13,365 1/2/2025
3.0.367 97 1/2/2025
3.0.366 1,975 1/2/2025
3.0.365 104 1/2/2025
3.0.364 697 1/2/2025
3.0.363 96 1/2/2025
3.0.362 95 1/2/2025
3.0.361 96 1/2/2025
3.0.360 348 1/2/2025
3.0.359 9,331 1/1/2025
3.0.358 119 1/1/2025
3.0.357 98 1/1/2025
3.0.356 94 1/1/2025
3.0.355 2,707 12/31/2024
3.0.354 92 12/31/2024
3.0.353 87 12/31/2024
3.0.352 99 12/31/2024
3.0.351 88 12/31/2024
3.0.350 87 12/31/2024
3.0.349 95 12/31/2024
3.0.348 95 12/31/2024
3.0.347 779 12/31/2024
3.0.346 5,196 12/31/2024
3.0.345 4,665 12/31/2024
3.0.344 79 12/31/2024
3.0.343 84 12/31/2024
3.0.342 436 12/31/2024
3.0.341 76 12/31/2024
3.0.340 87 12/31/2024
3.0.339 90 12/31/2024
3.0.338 4,287 12/31/2024
3.0.337 10,403 12/27/2024
3.0.336 6,846 12/24/2024
3.0.335 437 12/24/2024
3.0.334 87 12/24/2024
3.0.333 91 12/24/2024
3.0.332 211 12/24/2024
3.0.331 87 12/24/2024
3.0.330 82 12/24/2024
3.0.329 82 12/24/2024
3.0.328 87 12/24/2024
3.0.327 89 12/24/2024
3.0.326 2,910 12/23/2024
3.0.325 2,104 12/23/2024
3.0.324 405 12/23/2024
3.0.323 3,441 12/23/2024
3.0.322 3,118 12/23/2024
3.0.321 1,978 12/22/2024
3.0.320 3,036 12/22/2024
3.0.319 6,533 12/22/2024
3.0.318 3,888 12/22/2024
3.0.317 113 12/22/2024
3.0.316 82 12/22/2024
3.0.315 124 12/21/2024
3.0.314 91 12/21/2024
3.0.313 3,250 12/21/2024
3.0.312 84 12/21/2024
3.0.311 87 12/21/2024
3.0.310 3,056 12/21/2024
3.0.309 93 12/21/2024
3.0.308 87 12/21/2024
3.0.307 440 12/21/2024
3.0.306 83 12/21/2024
3.0.305 86 12/21/2024
3.0.304 284 12/21/2024
3.0.303 360 12/21/2024
3.0.302 93 12/21/2024
3.0.301 339 12/20/2024
3.0.300 87 12/20/2024
3.0.299 7,650 12/20/2024
3.0.298 96 12/20/2024
3.0.297 5,572 12/20/2024
3.0.296 2,178 12/19/2024
3.0.295 86 12/19/2024
3.0.294 3,687 12/19/2024
3.0.293 1,660 12/18/2024
3.0.292 87 12/18/2024
3.0.291 91 12/18/2024
3.0.290 91 12/18/2024
3.0.289 6,570 12/17/2024
3.0.288 91 12/17/2024
3.0.287 679 12/16/2024
3.0.286 82 12/16/2024
3.0.285 82 12/16/2024
3.0.284 84 12/16/2024
3.0.283 86 12/16/2024
3.0.282 33,015 12/9/2024
3.0.281 3,875 12/9/2024
3.0.280 97 12/9/2024
3.0.279 6,844 12/6/2024
3.0.278 99 12/6/2024
3.0.277 153 12/6/2024
3.0.276 185 12/6/2024
3.0.275 5,132 12/6/2024
3.0.274 100 12/6/2024
3.0.273 2,611 12/6/2024
3.0.272 5,432 12/5/2024
3.0.271 96 12/5/2024
3.0.270 10,931 12/5/2024
3.0.269 2,160 12/4/2024
3.0.268 2,055 12/4/2024
3.0.267 6,084 12/4/2024
3.0.266 5,436 12/3/2024
3.0.265 1,688 12/3/2024
3.0.264 1,425 12/3/2024
3.0.263 2,407 12/3/2024
3.0.262 86 12/3/2024
3.0.261 1,972 12/2/2024
3.0.260 6,531 12/2/2024
3.0.259 2,444 12/1/2024
3.0.258 104 12/1/2024
3.0.257 19,379 11/20/2024
3.0.256 4,007 11/19/2024
3.0.255 5,594 11/19/2024
3.0.254 81 11/19/2024
3.0.253 81 11/19/2024
3.0.252 85 11/19/2024
3.0.251 3,379 11/19/2024
3.0.250 83 11/19/2024
3.0.249 81 11/19/2024
3.0.248 87 11/19/2024
3.0.247 12,047 11/14/2024
3.0.246 3,720 11/14/2024
3.0.245 5,023 11/14/2024
3.0.244 101 11/14/2024
3.0.243 99 11/14/2024
3.0.242 104 11/14/2024
3.0.241 101 11/14/2024
3.0.240 96 11/14/2024
3.0.239 100 11/14/2024
3.0.238 96 11/14/2024
2.1.237 3,517 11/13/2024
2.1.236 9,271 11/12/2024
2.1.235 306 11/12/2024
2.1.234 101 11/12/2024
2.1.233 9,584 11/8/2024
2.1.232 3,330 11/8/2024
2.1.231 3,467 11/8/2024
2.1.230 14,856 10/31/2024
2.1.229 234 10/31/2024
2.1.228 6,793 10/29/2024
2.1.227 11,367 10/22/2024
2.1.226 14,130 10/22/2024
2.1.225 11,967 10/14/2024
2.1.224 5,679 10/11/2024
2.1.223 820 10/11/2024
2.1.222 7,476 10/8/2024
2.1.221 6,664 10/8/2024
2.1.220 96 10/8/2024
2.1.219 9,287 10/3/2024
2.1.218 11,508 10/2/2024
2.1.217 7,131 10/1/2024
2.1.216 6,973 9/29/2024
2.1.215 1,373 9/28/2024
2.1.214 6,177 9/27/2024
2.1.213 100 9/27/2024
2.1.212 268 9/27/2024
2.1.211 103 9/27/2024
2.1.210 109 9/27/2024
2.1.209 96 9/27/2024
2.1.208 100 9/27/2024
2.1.207 3,111 9/27/2024
2.1.206 8,309 9/26/2024
2.1.205 1,447 9/26/2024
2.1.204 7,187 9/25/2024
2.1.203 5,741 9/23/2024
2.1.202 4,897 9/23/2024
2.1.201 3,758 9/23/2024
2.1.200 102 9/23/2024
2.1.199 804 9/23/2024
2.1.198 106 9/23/2024
2.1.197 552 9/22/2024
2.1.196 107 9/22/2024
2.1.195 10,082 9/17/2024
2.1.194 596 9/17/2024
2.1.193 159 9/17/2024
2.1.192 107 9/17/2024
2.1.191 112 9/17/2024
2.1.190 107 9/17/2024
2.1.189 115 9/17/2024
2.1.188 25,267 9/11/2024
2.1.187 3,658 9/11/2024
2.1.186 9,168 9/10/2024
2.1.185 1,607 9/9/2024
2.1.184 3,139 9/9/2024
2.1.183 6,488 9/9/2024
2.1.182 8,359 9/6/2024
2.1.181 4,646 9/5/2024
2.1.180 2,087 9/5/2024
2.1.179 2,527 9/5/2024
2.1.178 111 9/5/2024
2.1.177 1,056 9/5/2024
2.1.176 115 9/5/2024
2.1.175 116 9/5/2024
2.1.174 8,024 9/4/2024
2.1.173 8,439 9/3/2024
2.1.172 3,033 9/3/2024
2.1.171 15,560 8/21/2024
2.1.170 1,555 8/20/2024
2.1.169 304 8/20/2024
2.1.168 128 8/20/2024
2.1.167 130 8/20/2024
2.1.166 2,555 8/20/2024
2.1.165 127 8/20/2024
2.1.164 119 8/20/2024
2.1.163 7,721 8/19/2024
2.1.162 8,132 8/13/2024
2.1.161 9,548 8/6/2024
2.1.160 10,673 8/1/2024
2.1.159 3,576 7/31/2024
2.1.158 6,678 7/25/2024
2.1.157 74 7/25/2024
2.1.156 2,192 7/24/2024
2.1.155 17,145 7/14/2024
2.1.154 7,664 7/10/2024
2.1.153 3,743 7/10/2024
2.1.151 1,650 7/9/2024
2.1.149 156 7/9/2024
2.1.148 6,132 7/9/2024
2.1.147 3,751 7/9/2024
2.1.146 110 7/9/2024
2.1.145 1,581 7/9/2024
2.1.144 109 7/9/2024
2.1.143 3,428 7/9/2024
2.1.141 615 7/8/2024
2.1.140 102 7/8/2024
2.1.139 103 7/8/2024
2.1.138 1,743 7/8/2024
2.1.137 8,416 7/7/2024
2.1.136 1,048 7/7/2024
2.1.135 12,978 7/3/2024
2.1.134 15,491 6/15/2024
2.1.133 11,214 6/1/2024
2.1.132 89 6/1/2024
2.1.131 625 6/1/2024
2.1.130 5,611 5/31/2024
2.1.129 3,355 5/29/2024
2.1.128 3,716 5/28/2024
2.1.127 2,390 5/27/2024
2.1.126 6,897 5/25/2024
2.1.125 1,868 5/25/2024
2.1.124 162 5/25/2024
2.1.123 118 5/25/2024
2.1.122 1,671 5/25/2024
2.1.121 124 5/25/2024
2.1.120 121 5/25/2024
2.1.119 124 5/25/2024
2.1.118 117 5/25/2024
2.1.117 20,651 5/23/2024
2.1.116 1,915 5/22/2024
2.1.115 1,505 5/22/2024
2.1.114 119 5/22/2024
2.1.113 121 5/22/2024
2.1.112 234 5/22/2024
2.1.111 3,765 5/22/2024
2.1.110 6,661 5/17/2024
2.1.109 6,893 5/14/2024
2.1.108 94 5/14/2024
2.1.107 21,064 4/29/2024
2.1.106 150 4/29/2024
2.1.105 3,786 4/28/2024
2.1.104 2,419 4/28/2024
2.1.103 116 4/28/2024
2.1.102 2,891 4/28/2024
2.1.101 117 4/28/2024
2.1.100 1,677 4/28/2024
2.1.99 117 4/28/2024
2.1.98 121 4/28/2024
2.1.97 118 4/28/2024
2.1.96 653 4/27/2024
2.1.95 118 4/27/2024
2.1.94 1,377 4/27/2024
2.1.93 12,785 4/12/2024
2.1.92 3,223 4/12/2024
2.1.91 126 4/12/2024
2.1.90 137 4/12/2024
2.1.89 164 4/12/2024
2.1.88 181 4/12/2024
2.1.87 127 4/12/2024
2.1.86 2,411 4/12/2024
2.1.85 140 4/12/2024
2.1.84 7,761 4/9/2024
2.1.83 3,802 4/1/2024
2.1.82 7,934 3/25/2024
2.1.81 4,180 3/19/2024
2.1.80 6,170 3/13/2024
2.1.79 129 3/13/2024
2.1.78 1,009 3/13/2024
2.1.77 125 3/13/2024
2.1.76 123 3/13/2024
2.1.75 2,889 3/12/2024
2.1.74 131 3/12/2024
2.1.73 7,880 3/8/2024
2.1.72 3,789 3/6/2024
2.1.71 2,054 3/4/2024
2.1.70 3,813 3/2/2024
2.1.69 1,614 3/2/2024
2.1.68 2,548 2/29/2024
2.1.67 4,756 2/25/2024
2.1.66 4,344 2/22/2024
2.1.65 2,157 2/21/2024
2.1.64 662 2/21/2024
2.1.63 1,381 2/21/2024
2.1.62 125 2/21/2024
2.1.61 140 2/21/2024
2.1.60 129 2/21/2024
2.1.59 135 2/21/2024
2.1.58 1,192 2/20/2024
2.1.57 3,218 2/20/2024
2.1.56 2,790 2/19/2024
2.1.55 135 2/19/2024
2.1.54 124 2/19/2024
2.1.53 141 2/18/2024
2.1.52 4,098 2/16/2024
2.1.51 131 2/16/2024
2.1.50 805 2/16/2024
2.1.49 1,291 2/16/2024
2.1.48 828 2/16/2024
2.1.47 1,551 2/16/2024
2.1.46 2,190 2/13/2024
2.1.45 2,181 2/13/2024
2.1.44 132 2/13/2024
2.1.43 131 2/13/2024
2.1.42 3,241 2/11/2024
2.1.41 2,320 2/11/2024
2.1.40 1,223 2/10/2024
2.1.39 134 2/10/2024
2.1.38 124 2/10/2024
2.1.37 169 2/9/2024
2.1.36 2,495 2/9/2024
2.1.35 1,559 2/9/2024
2.1.34 132 2/9/2024
2.1.33 1,465 2/8/2024
2.1.32 1,228 2/8/2024
2.1.31 1,181 2/8/2024
2.1.30 2,894 2/6/2024
2.1.29 1,130 2/6/2024
2.1.28 119 2/6/2024
2.1.27 2,273 2/6/2024
2.1.26 134 2/6/2024
2.1.25 178 2/5/2024
2.1.24 2,931 2/4/2024
2.1.23 121 2/4/2024
2.1.22 1,324 2/2/2024
2.1.21 104 2/1/2024
2.1.20 127 2/1/2024
2.1.19 147 2/1/2024
2.1.18 120 1/31/2024
2.1.17 112 1/31/2024
2.1.16 1,743 1/30/2024
2.1.15 4,069 1/28/2024
2.1.14 7,665 1/27/2024
2.1.13 866 1/26/2024
2.1.12 5,985 1/25/2024
2.1.11 116 1/25/2024
2.1.10 115 1/25/2024
2.1.9 120 1/25/2024
2.1.8 114 1/25/2024
2.1.7 2,291 1/23/2024
2.1.6 121 1/21/2024