System.IO.Abstractions 22.0.16

System.IO.Abstractions NuGet Build Quality Gate Status Coverage Renovate enabled FOSSA Status

At the core of the library is IFileSystem and FileSystem. Instead of calling methods like File.ReadAllText directly, use IFileSystem.File.ReadAllText. We have exactly the same API, except that ours is injectable and testable.

Usage

dotnet add package TestableIO.System.IO.Abstractions.Wrappers

Note: This NuGet package is also published as System.IO.Abstractions but we suggest to use the prefix to make clear that this is not an official .NET package.

public class MyComponent
{
    readonly IFileSystem fileSystem;

    // <summary>Create MyComponent with the given fileSystem implementation</summary>
    public MyComponent(IFileSystem fileSystem)
    {
        this.fileSystem = fileSystem;
    }
    /// <summary>Create MyComponent</summary>
    public MyComponent() : this(
        fileSystem: new FileSystem() //use default implementation which calls System.IO
    )
    {
    }

    public void Validate()
    {
        foreach (var textFile in fileSystem.Directory.GetFiles(@"c:\", "*.txt", SearchOption.TopDirectoryOnly))
        {
            var text = fileSystem.File.ReadAllText(textFile);
            if (text != "Testing is awesome.")
                throw new NotSupportedException("We can't go on together. It's not me, it's you.");
        }
    }
}

Test helpers

The library also ships with a series of test helpers to save you from having to mock out every call, for basic scenarios. They are not a complete copy of a real-life file system, but they'll get you most of the way there.

dotnet add package TestableIO.System.IO.Abstractions.TestingHelpers

Note: This NuGet package is also published as System.IO.Abstractions.TestingHelpers but we suggest to use the prefix to make clear that this is not an official .NET package.

[Test]
public void MyComponent_Validate_ShouldThrowNotSupportedExceptionIfTestingIsNotAwesome()
{
    // Arrange
    var fileSystem = new MockFileSystem(new Dictionary<string, MockFileData>
    {
        { @"c:\myfile.txt", new MockFileData("Testing is meh.") },
        { @"c:\demo\jQuery.js", new MockFileData("some js") },
        { @"c:\demo\image.gif", new MockFileData(new byte[] { 0x12, 0x34, 0x56, 0xd2 }) }
    });
    var component = new MyComponent(fileSystem);

    try
    {
        // Act
        component.Validate();
    }
    catch (NotSupportedException ex)
    {
        // Assert
        Assert.That(ex.Message, Is.EqualTo("We can't go on together. It's not me, it's you."));
        return;
    }

    Assert.Fail("The expected exception was not thrown.");
}

We even support casting from the .NET Framework's untestable types to our testable wrappers:

FileInfo SomeApiMethodThatReturnsFileInfo()
{
    return new FileInfo("a");
}

void MyFancyMethod()
{
    var testableFileInfo = (FileInfoBase)SomeApiMethodThatReturnsFileInfo();
    ...
}

Mock support

Since version 4.0 the top-level APIs expose interfaces instead of abstract base classes (these still exist, though), allowing you to completely mock the file system. Here's a small example, using Moq:

[Test]
public void Test1()
{
    var watcher = Mock.Of<IFileSystemWatcher>();
    var file = Mock.Of<IFile>();

    Mock.Get(file).Setup(f => f.Exists(It.IsAny<string>())).Returns(true);
    Mock.Get(file).Setup(f => f.ReadAllText(It.IsAny<string>())).Throws<OutOfMemoryException>();

    var unitUnderTest = new SomeClassUsingFileSystemWatcher(watcher, file);

    Assert.Throws<OutOfMemoryException>(() => {
        Mock.Get(watcher).Raise(w => w.Created += null, new System.IO.FileSystemEventArgs(System.IO.WatcherChangeTypes.Created, @"C:\Some\Directory", "Some.File"));
    });

    Mock.Get(file).Verify(f => f.Exists(It.IsAny<string>()), Times.Once);

    Assert.True(unitUnderTest.FileWasCreated);
}

public class SomeClassUsingFileSystemWatcher
{
    private readonly IFileSystemWatcher _watcher;
    private readonly IFile _file;

    public bool FileWasCreated { get; private set; }

    public SomeClassUsingFileSystemWatcher(IFileSystemWatcher watcher, IFile file)
    {
        this._file = file;
        this._watcher = watcher;
        this._watcher.Created += Watcher_Created;
    }

    private void Watcher_Created(object sender, System.IO.FileSystemEventArgs e)
    {
        FileWasCreated = true;

        if(_file.Exists(e.FullPath))
        {
            var text = _file.ReadAllText(e.FullPath);
        }
    }
}

Relationship with Testably.Abstractions

Testably.Abstractions is a complementary project that uses the same interfaces as TestableIO. This means no changes to your production code are necessary when switching between the testing libraries.

Both projects share the same maintainer, but active development and new features are primarily focused on the Testably.Abstractions project. TestableIO.System.IO.Abstractions continues to be maintained for stability and compatibility, but significant new functionality is unlikely to be added.

When to use Testably.Abstractions vs TestableIO

  • Use TestableIO.System.IO.Abstractions if you need:

    • Basic file system mocking capabilities
    • Direct manipulation of stored file entities (MockFileData, MockDirectoryData)
    • Established codebase with existing TestableIO integration
  • Use Testably.Abstractions if you need:

    • Advanced testing scenarios (FileSystemWatcher, SafeFileHandles, multiple drives)
    • Additional abstractions (ITimeSystem, IRandomSystem)
    • Cross-platform file system simulation (Linux, MacOS, Windows)Expand commentComment on line R163ResolvedCode has comments. Press enter to view.
    • More extensive and consistent behavior validation
    • Active development and new features

Migrating from TestableIO

Switching from TestableIO to Testably only requires changes in your test projects:

  1. Replace the NuGet package reference in your test projects:

    <!-- Remove -->
    <PackageReference Include="TestableIO.System.IO.Abstractions.TestingHelpers" />
    <!-- Add -->
    <PackageReference Include="Testably.Abstractions.Testing" />
    
  2. Update your test code to use the new MockFileSystem:

    // Before (TestableIO)
    var fileSystem = new MockFileSystem();
    fileSystem.AddDirectory("some-directory");
    fileSystem.AddFile("some-file.txt", new MockFileData("content"));
    
    // After (Testably)
    var fileSystem = new MockFileSystem();
    fileSystem.Directory.CreateDirectory("some-directory");
    fileSystem.File.WriteAllText("some-file.txt", "content");
    // or using fluent initialization:
    fileSystem.Initialize()
        .WithSubdirectory("some-directory")
        .WithFile("some-file.txt").Which(f => f
            .HasStringContent("content"));
    

Your production code using IFileSystem remains unchanged.

Showing the top 20 packages that depend on System.IO.Abstractions.

Packages Downloads
KubernetesClient
Client library for the Kubernetes open source container orchestrator.
64
KubernetesClient
Client library for the Kubernetes open source container orchestrator.
63
KubernetesClient
Client library for the Kubernetes open source container orchestrator.
62
Glob.cs
File system path globbing
59
KubernetesClient
Client library for the Kubernetes open source container orchestrator.
58
KubernetesClient
Client library for the Kubernetes open source container orchestrator.
57
KubernetesClient
Client library for the Kubernetes open source container orchestrator.
54
Glob.cs
File system path globbing library (wildcards like in bash). Supports netstandard1.4, netstandard2.0, and net40.
54
KubernetesClient
Client library for the Kubernetes open source container orchestrator.
53
Glob.cs
File system path globbing
53
KubernetesClient
Client library for the Kubernetes open source container orchestrator.
52
System.IO.Abstractions.TestingHelpers
A set of pre-built mocks to help when testing file system interactions.
52

Version Downloads Last updated
22.0.16 3 09/17/2025
22.0.16-pre.2 6 09/17/2025
22.0.16-pre.1 4 09/13/2025
22.0.15 12 07/10/2025
22.0.14 19 04/20/2025
22.0.13 25 04/07/2025
22.0.12 23 03/16/2025
22.0.11 27 03/02/2025
22.0.10 29 02/24/2025
22.0.10-beta.1 26 02/24/2025
22.0.9 27 02/22/2025
21.3.1 30 01/31/2025
21.2.12 25 01/30/2025
21.2.8 28 01/25/2025
21.2.1 33 12/30/2024
21.1.7 38 12/04/2024
21.1.3 40 11/09/2024
21.1.2 39 11/08/2024
21.1.1 32 11/08/2024
21.0.29 38 07/26/2024
21.0.26 40 07/18/2024
21.0.22 34 06/25/2024
21.0.2 48 03/19/2024
20.0.34 39 03/19/2024
20.0.28 48 03/11/2024
20.0.15 55 01/25/2024
20.0.4 53 12/11/2023
20.0.1 50 12/07/2023
19.2.91 40 12/07/2023
19.2.87 50 11/23/2023
19.2.69 48 09/01/2023
19.2.67 45 09/01/2023
19.2.66 45 09/01/2023
19.2.64 41 09/01/2023
19.2.63 40 08/31/2023
19.2.61 50 09/01/2023
19.2.51 44 08/11/2023
19.2.50 49 08/11/2023
19.2.29 48 08/11/2023
19.2.26 51 09/07/2023
19.2.25 50 08/07/2023
19.2.22 56 08/28/2023
19.2.18 45 08/07/2023
19.2.17 49 08/07/2023
19.2.16 50 08/07/2023
19.2.15 46 09/04/2023
19.2.13 51 08/11/2023
19.2.12 43 08/09/2023
19.2.11 45 08/09/2023
19.2.9 52 08/11/2023
19.2.8 51 08/04/2023
19.2.4 45 08/05/2023
19.2.1 47 08/05/2023
19.1.18 47 08/11/2023
19.1.14 45 09/06/2023
19.1.13 41 09/06/2023
19.1.5 47 08/06/2023
19.1.1 48 09/03/2023
19.0.1 50 08/06/2023
18.0.1 56 08/08/2023
17.2.26 44 09/28/2023
17.2.3 49 09/04/2023
17.2.1 50 09/03/2023
17.1.1 43 08/07/2023
17.0.28 47 08/08/2023
17.0.24 44 08/10/2023
17.0.23 51 08/05/2023
17.0.21 45 09/03/2023
17.0.18 42 09/06/2023
17.0.15 42 08/22/2023
17.0.14 50 08/07/2023
17.0.13 49 08/05/2023
17.0.12 45 08/21/2023
17.0.11 52 08/05/2023
17.0.10 42 08/08/2023
17.0.9 42 08/07/2023
17.0.8 51 08/03/2023
17.0.7 46 08/04/2023
17.0.6 45 08/09/2023
17.0.5 48 09/06/2023
17.0.4 46 09/06/2023
17.0.3 47 08/05/2023
17.0.2 57 08/23/2023
17.0.1 60 09/24/2023
16.1.26 46 08/12/2023
16.1.25 49 08/07/2023
16.1.24 48 09/06/2023
16.1.23 54 09/03/2023
16.1.22 49 08/09/2023
16.1.21 50 08/07/2023
16.1.20 55 08/10/2023
16.1.19 44 08/09/2023
16.1.18 50 08/08/2023
16.1.17 40 08/12/2023
16.1.16 46 08/04/2023
16.1.15 46 09/06/2023
16.1.14 34 09/04/2023
16.1.13 47 09/04/2023
16.1.12 45 08/04/2023
16.1.11 43 09/03/2023
16.1.10 46 08/06/2023
16.1.9 53 08/06/2023
16.1.8 48 08/06/2023
16.1.7 53 08/06/2023
16.1.6 45 08/07/2023
16.1.5 65 08/12/2023
16.1.4 48 08/08/2023
16.1.2 48 08/31/2023
16.1.1 44 08/03/2023
16.0.8 48 08/04/2023
16.0.7 56 08/02/2023
16.0.6 43 08/09/2023
16.0.5 41 08/10/2023
16.0.4 43 09/06/2023
16.0.3 53 08/10/2023
16.0.2 40 08/07/2023
16.0.1 48 10/03/2023
15.0.1 42 09/03/2023
14.0.13 41 09/06/2023
14.0.12 48 09/06/2023
14.0.11 47 08/26/2023
14.0.10 52 08/11/2023
14.0.9 54 08/06/2023
14.0.8 52 08/30/2023
14.0.7 48 08/09/2023
14.0.6 46 08/11/2023
14.0.5 50 08/07/2023
14.0.4 47 08/07/2023
14.0.3 45 09/04/2023
14.0.2 52 08/08/2023
14.0.1 41 08/12/2023
13.2.47 59 08/10/2023
13.2.46 49 08/07/2023
13.2.45 47 08/05/2023
13.2.43 50 08/08/2023
13.2.42 57 08/10/2023
13.2.41 58 08/10/2023
13.2.40 54 08/08/2023
13.2.39 49 08/08/2023
13.2.38 51 09/06/2023
13.2.37 46 08/28/2023
13.2.36 42 09/09/2023
13.2.35 43 09/05/2023
13.2.34 44 09/23/2023
13.2.33 56 08/04/2023
13.2.32 46 09/03/2023
13.2.31 44 08/04/2023
13.2.30 42 09/06/2023
13.2.29 43 08/27/2023
13.2.28 45 08/09/2023
13.2.27 44 09/01/2023
13.2.25 54 08/07/2023
13.2.24 56 09/04/2023
13.2.23 56 08/08/2023
13.2.22 51 08/08/2023
13.2.20 42 08/06/2023
13.2.19 50 08/10/2023
13.2.18 48 08/05/2023
13.2.17 53 08/06/2023
13.2.16 46 08/08/2023
13.2.15 42 09/03/2023
13.2.14 50 08/06/2023
13.2.13 49 08/09/2023
13.2.12 48 09/03/2023
13.2.11 41 08/06/2023
13.2.10 48 09/01/2023
13.2.9 42 08/07/2023
13.2.8 47 10/01/2023
13.2.7 50 08/07/2023
13.2.6 46 08/03/2023
13.2.5 62 08/06/2023
13.2.4 49 08/06/2023
13.2.3 44 08/08/2023
13.2.2 47 09/03/2023
13.2.1 41 08/12/2023
13.1.2 46 09/03/2023
13.1.1 48 09/04/2023
13.0.1 50 08/04/2023
12.2.27 46 08/07/2023
12.2.26 42 08/06/2023
12.2.25 46 09/06/2023
12.2.24 50 08/07/2023
12.2.23 50 08/12/2023
12.2.22 48 08/07/2023
12.2.21 42 08/09/2023
12.2.20 44 08/07/2023
12.2.19 48 08/10/2023
12.2.7 57 09/23/2023
12.2.6 60 09/03/2023
12.2.5 50 05/30/2023
12.2.4 52 08/07/2023
12.2.3 51 08/05/2023
12.2.2 52 08/27/2023
12.2.1 44 09/07/2023
12.1.11 56 08/09/2023
12.1.10 43 08/25/2023
12.1.9 48 08/10/2023
12.1.2 45 09/23/2023
12.1.1 55 08/07/2023
12.0.13 54 08/11/2023
12.0.10 45 08/05/2023
12.0.9 48 08/08/2023
12.0.8 55 08/09/2023
12.0.7 51 08/06/2023
12.0.6 42 08/10/2023
12.0.5 58 08/27/2023
12.0.4 47 08/22/2023
12.0.3 42 08/08/2023
12.0.2 52 08/11/2023
12.0.1 47 09/03/2023
11.0.18 44 08/07/2023
11.0.17 52 08/05/2023
11.0.16 43 09/04/2023
11.0.15 53 09/03/2023
11.0.14 45 09/04/2023
11.0.13 48 08/10/2023
11.0.12 54 08/10/2023
11.0.11 43 08/05/2023
11.0.10 59 05/30/2023
11.0.9 49 08/05/2023
11.0.8 55 09/03/2023
11.0.7 48 09/04/2023
11.0.6 44 08/11/2023
11.0.5 54 08/06/2023
11.0.4 46 08/29/2023
11.0.3 56 08/06/2023
11.0.2 49 09/06/2023
11.0.1 48 09/11/2023
10.0.10 46 08/09/2023
10.0.9 44 08/10/2023
10.0.8 45 09/06/2023
10.0.7 51 08/09/2023
10.0.6 45 08/04/2023
10.0.5 55 08/07/2023
10.0.4 48 09/03/2023
10.0.1 41 09/03/2023
9.0.6 53 09/06/2023
9.0.5 56 08/08/2023
9.0.4 52 09/07/2023
9.0.3 54 08/06/2023
9.0.2 48 08/08/2023
9.0.1 56 08/06/2023
8.1.1 46 08/30/2023
8.0.6 41 09/04/2023
8.0.5 50 08/11/2023
8.0.4 46 08/09/2023
8.0.3 45 08/31/2023
7.1.10 44 08/09/2023
7.1.8 49 08/04/2023
7.1.4 51 08/30/2023
7.1.3 47 08/08/2023
7.1.1 54 08/05/2023
7.0.16 48 09/22/2023
7.0.15 55 09/01/2023
7.0.7 51 09/21/2023
7.0.5 41 08/08/2023
7.0.4 44 08/09/2023
6.0.38 46 08/08/2023
6.0.36 42 08/27/2023
6.0.34 46 09/15/2023
6.0.32 47 09/04/2023
6.0.27 56 09/04/2023
6.0.25 50 09/22/2023
6.0.23 54 08/27/2023
6.0.21 50 09/23/2023
6.0.19 48 09/21/2023
6.0.17 43 09/04/2023
6.0.15 51 08/11/2023
6.0.14 51 09/21/2023
6.0.13 48 09/01/2023
6.0.11 58 08/08/2023
6.0.9 48 09/04/2023
6.0.7 43 08/09/2023
6.0.6 49 08/07/2023
6.0.5 52 09/01/2023
6.0.3 52 08/10/2023
6.0.1 56 08/08/2023
5.0.1 48 09/01/2023
4.2.17 46 08/03/2023
4.2.15 48 09/21/2023
4.2.13 48 08/10/2023
4.2.12 54 08/21/2023
4.2.10 47 08/09/2023
4.2.9 53 09/18/2023
4.2.8 44 08/04/2023
4.2.4 43 10/12/2023
4.1.6 50 09/01/2023
4.0.11 51 09/01/2023
3.1.1 60 09/22/2023
3.0.10 41 09/01/2023
3.0.2 40 08/24/2023
2.2.18-beta 44 08/17/2023
2.2.17-beta 48 08/10/2023
2.2.16-beta 49 09/01/2023
2.2.15-beta 44 08/08/2023
2.2.14-beta 50 09/09/2023
2.2.13-beta 39 08/27/2023
2.2.12-beta 47 09/10/2023
2.2.11-beta 48 08/06/2023
2.2.10-beta 44 08/05/2023
2.2.9-beta 45 09/10/2023
2.2.8-beta 53 09/13/2023
2.2.7-beta 47 09/21/2023
2.2.6-beta 54 08/08/2023
2.2.5-beta 44 09/22/2023
2.2.4-beta 49 08/07/2023
2.2.3-beta 47 09/22/2023
2.2.2-beta 55 08/07/2023
2.1.0.256 48 08/07/2023
2.1.0.247 40 08/02/2023
2.1.0.237 48 09/07/2023
2.1.0.236 42 08/08/2023
2.1.0.235 54 08/05/2023
2.1.0.234 51 08/20/2023
2.1.0.233 50 08/07/2023
2.1.0.232 44 09/22/2023
2.1.0.231 42 09/21/2023
2.1.0.230 49 09/18/2023
2.1.0.229 51 08/05/2023
2.1.0.228 46 09/19/2023
2.1.0.227 49 09/23/2023
2.1.0.226 46 08/26/2023
2.1.0.217 46 08/04/2023
2.1.0.216 43 08/10/2023
2.1.0.215 41 08/19/2023
2.1.0.214 52 08/11/2023
2.1.0.213 46 08/08/2023
2.1.0.211 48 08/11/2023
2.1.0.210 50 08/12/2023
2.1.0.209 42 08/06/2023
2.1.0.208 52 08/05/2023
2.1.0.207 51 08/06/2023
2.1.0.206 43 08/11/2023
2.1.0.205 43 08/11/2023
2.1.0.204 49 08/11/2023
2.1.0.203 48 08/12/2023
2.1.0.202 45 08/06/2023
2.1.0.201 45 08/07/2023
2.1.0.200 45 08/05/2023
2.1.0.199 46 08/04/2023
2.1.0.198 54 08/05/2023
2.1.0.197 41 08/09/2023
2.1.0.196 53 08/11/2023
2.1.0.195 45 08/04/2023
2.1.0.194 43 08/08/2023
2.1.0.193 45 08/10/2023
2.1.0.192 43 08/08/2023
2.1.0.191 45 08/02/2023
2.1.0.190 47 08/05/2023
2.1.0.189 43 08/05/2023
2.1.0.188 42 08/09/2023
2.1.0.187 46 08/30/2023
2.1.0.186 47 08/08/2023
2.1.0.185 47 08/10/2023
2.1.0.184 52 08/31/2023
2.1.0.183 46 07/28/2023
2.1.0.182 45 08/09/2023
2.1.0.181 63 08/08/2023
2.1.0.180 47 08/06/2023
2.1.0.179 44 08/08/2023
2.1.0.178 43 09/19/2023
2.1.0.177 40 08/10/2023
2.1.0.176 49 08/05/2023
2.1.0.175 50 08/06/2023
2.1.0.174 44 08/04/2023
2.1.0.173 44 08/05/2023
2.1.0.172 48 08/11/2023
2.1.0.171 51 08/07/2023
2.1.0.170 53 08/07/2023
2.1.0.169 45 08/11/2023
2.1.0.168 42 09/22/2023
2.1.0.166 50 09/04/2023
2.1.0.164 45 09/21/2023
2.1.0.163 54 09/21/2023
2.1.0.159 47 09/22/2023
2.0.0.144 54 08/11/2023
2.0.0.143 52 08/05/2023
2.0.0.142 45 08/11/2023
2.0.0.141 48 09/23/2023
2.0.0.140 43 08/05/2023
2.0.0.139 47 08/06/2023
2.0.0.138 40 08/10/2023
2.0.0.137 49 08/05/2023
2.0.0.136 44 08/11/2023
2.0.0.124 46 08/04/2023
2.0.0.123 46 08/05/2023
2.0.0.122 43 08/18/2023
2.0.0.121 51 08/06/2023
2.0.0.120 43 08/08/2023
2.0.0.119 46 09/22/2023
2.0.0.118 44 08/11/2023
2.0.0.117 52 08/11/2023
2.0.0.116 43 09/22/2023
2.0.0.115 45 08/12/2023
2.0.0.114 43 08/09/2023
2.0.0.113 53 08/06/2023
2.0.0.112 49 08/09/2023
2.0.0.111 41 08/11/2023
2.0.0.110 49 08/04/2023
2.0.0.109 46 09/22/2023
2.0.0.108 39 09/21/2023
2.0.0.107 46 08/10/2023
2.0.0.106 51 08/10/2023
2.0.0.105 48 08/25/2023
2.0.0.104 51 09/22/2023
2.0.0.103 44 09/02/2023
2.0.0.102 45 08/21/2023
2.0.0.101 44 08/27/2023
2.0.0.100 47 08/11/2023
2.0.0.99 43 08/28/2023
2.0.0.98 43 09/22/2023
1.4.0.93 42 08/27/2023
1.4.0.92 47 09/22/2023
1.4.0.89 51 08/12/2023
1.4.0.88 49 09/12/2023
1.4.0.87 52 08/06/2023
1.4.0.86 50 09/21/2023
1.4.0.85 45 08/24/2023
1.4.0.84 42 08/08/2023
1.4.0.83 49 08/04/2023
1.4.0.82 49 08/08/2023
1.4.0.81 44 08/07/2023
1.4.0.80 45 08/11/2023
1.4.0.79 36 08/20/2023
1.4.0.78 48 08/08/2023
1.4.0.77 39 08/04/2023
1.4.0.76 47 09/21/2023
1.4.0.75 49 08/04/2023
1.4.0.74 41 08/06/2023
1.4.0.73 41 07/30/2023
1.4.0.72 58 08/10/2023
1.4.0.71 45 08/06/2023
1.4.0.70 43 08/29/2023
1.4.0.69 40 08/07/2023
1.4.0.68 55 08/08/2023
1.4.0.67 62 08/05/2023
1.4.0.66 49 09/21/2023
1.4.0.65 51 08/07/2023
1.4.0.64 46 08/09/2023
1.4.0.63 52 09/13/2023
1.4.0.62 44 07/30/2023
1.4.0.61 49 08/11/2023
1.4.0.60 50 09/18/2023
1.4.0.59 42 08/06/2023
1.4.0.58 46 09/21/2023
1.4.0.57 43 08/12/2023
1.4.0.56 47 08/07/2023
1.4.0.55 45 08/26/2023
1.4.0.54 36 08/07/2023
1.4.0.53 51 08/28/2023
1.4.0.52 43 08/10/2023
1.4.0.51 49 09/22/2023
1.4.0.50 45 09/01/2023
1.4.0.49 51 08/11/2023
1.4.0.48 42 08/10/2023
1.4.0.47 48 08/07/2023
1.4.0.46 48 08/11/2023
1.4.0.45 44 08/05/2023
1.4.0.44 47 08/08/2023
1.4.0.43 58 08/17/2023
1.4.0.42 45 08/31/2023
1.4.0.41 43 08/07/2023
1.4.0.40 49 09/08/2023
1.4.0.39 42 08/07/2023
1.4.0.38 49 08/05/2023
1.4.0.37 51 08/06/2023
1.4.0.36 44 09/07/2023
1.4.0.35 38 09/21/2023
1.4.0.34 48 09/21/2023
1.4.0.33 45 08/04/2023
1.4.0.32 50 08/07/2023
1.4.0.31 44 09/22/2023
1.4.0.30 47 08/10/2023
1.4.0.29 44 08/07/2023
1.4.0.28 44 08/05/2023
1.4.0.27 40 09/01/2023
1.4.0.26 47 08/09/2023
1.4.0.25 47 08/28/2023
1.4.0.24 42 08/05/2023
1.4.0.23 40 08/04/2023
1.4.0.22 45 08/07/2023
1.4.0.21 48 08/07/2023
1.4.0.20 41 08/16/2023
1.4.0.19 45 08/09/2023
1.4.0.18 54 08/10/2023
1.4.0.17 39 09/08/2023
1.4.0.14 46 09/01/2023
1.4.0.13 48 09/21/2023
1.4.0.12 41 08/10/2023
1.4.0.11 48 08/11/2023
1.3.0 43 08/23/2023
1.2.0 75 08/08/2023