NJsonSchema 11.6.1

NJsonSchema for .NET

NSwag | NJsonSchema | Apimundo | Namotion.Reflection

Azure DevOps Nuget Discord StackOverflow Wiki Apimundo

NJsonSchema is a .NET library to read, generate and validate JSON Schema draft v4+ schemas. The library can read a schema from a file or string and validate JSON data against it. A schema can also be generated from an existing .NET class. With the code generation APIs you can generate C# and TypeScript classes or interfaces from a schema.

The library uses Json.NET to read and write JSON data and Namotion.Reflection for additional .NET reflection APIs.

NuGet packages:

Preview NuGet Feed: https://www.myget.org/F/njsonschema/api/v3/index.json

Features:

NJsonSchema is heavily used in NSwag, a Swagger API toolchain for .NET which generates client code for Web API services. NSwag also provides command line tools to use the NJsonSchema's JSON Schema generator (command types2swagger).

The project is developed and maintained by Rico Suter and other contributors.

Some code generators can directly be used via the Apimundo service.

NJsonSchema usage

The JsonSchema class can be used as follows:

var schema = JsonSchema.FromType<Person>();
var schemaData = schema.ToJson();
var errors = schema.Validate("{...}");

foreach (var error in errors)
    Console.WriteLine(error.Path + ": " + error.Kind);

schema = await JsonSchema.FromJsonAsync(schemaData);

The Person class:

public class Person
{
    [Required]
    public string FirstName { get; set; }

    public string MiddleName { get; set; }

    [Required]
    public string LastName { get; set; }

    public Gender Gender { get; set; }

    [Range(2, 5)]
    public int NumberWithRange { get; set; }

    public DateTime Birthday { get; set; }

    public Company Company { get; set; }

    public Collection<Car> Cars { get; set; }
}

public enum Gender
{
    Male,
    Female
}

public class Car
{
    public string Name { get; set; }

    public Company Manufacturer { get; set; }
}

public class Company
{
    public string Name { get; set; }
}

The generated JSON schema data stored in the schemaData variable:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "title": "Person",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "FirstName",
    "LastName"
  ],
  "properties": {
    "FirstName": {
      "type": "string",
      "minLength": 1
    },
    "MiddleName": {
      "type": [
        "null",
        "string"
      ]
    },
    "LastName": {
      "type": "string",
      "minLength": 1
    },
    "Gender": {
      "$ref": "#/definitions/Gender"
    },
    "NumberWithRange": {
      "type": "integer",
      "format": "int32",
      "maximum": 5.0,
      "minimum": 2.0
    },
    "Birthday": {
      "type": "string",
      "format": "date-time"
    },
    "Company": {
      "oneOf": [
        {
          "type": "null"
        },
        {
          "$ref": "#/definitions/Company"
        }
      ]
    },
    "Cars": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "$ref": "#/definitions/Car"
      }
    }
  },
  "definitions": {
    "Gender": {
      "type": "integer",
      "description": "",
      "x-enumNames": [
        "Male",
        "Female"
      ],
      "enum": [
        0,
        1
      ]
    },
    "Company": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": [
            "null",
            "string"
          ]
        }
      }
    },
    "Car": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": [
            "null",
            "string"
          ]
        },
        "Manufacturer": {
          "oneOf": [
            {
              "type": "null"
            },
            {
              "$ref": "#/definitions/Company"
            }
          ]
        }
      }
    }
  }
}

NJsonSchema.CodeGeneration usage

The NJsonSchema.CodeGeneration can be used to generate C# or TypeScript code from a JSON schema:

var generator = new CSharpGenerator(schema);
var file = generator.GenerateFile();

The file variable now contains the C# code for all the classes defined in the JSON schema.

TypeScript

The previously generated JSON Schema would generate the following TypeScript interfaces.

Settings:

new TypeScriptGeneratorSettings { TypeStyle = TypeScriptTypeStyle.Interface, TypeScriptVersion = 4.3m }

Output:

export enum Gender {
    Male = 0, 
    Female = 1, 
}

export interface Company {
    Name: string | undefined;
}

export interface Car {
    Name: string | undefined;
    Manufacturer: Company | undefined;
}

export interface Person {
    FirstName: string;
    MiddleName: string | undefined;
    LastName: string;
    Gender: Gender;
    NumberWithRange: number;
    Birthday: Date;
    Company: Company | undefined;
    Cars: Car[] | undefined;
}

... and the following TypeScript classes.

Settings:

new TypeScriptGeneratorSettings { TypeStyle = TypeScriptTypeStyle.Class, TypeScriptVersion = 4.3m }

Output:

export enum Gender {
    Male = 0, 
    Female = 1, 
}

export class Company implements ICompany {
    name: string | undefined;

    constructor(data?: ICompany) {
        if (data) {
            for (var property in data) {
                if (data.hasOwnProperty(property))
                    (<any>this)[property] = (<any>data)[property];
            }
        }
    }

    init(data?: any) {
        if (data) {
            this.name = data["Name"];
        }
    }

    static fromJS(data: any): Company {
        let result = new Company();
        result.init(data);
        return result;
    }

    toJSON(data?: any) {
        data = typeof data === 'object' ? data : {};
        data["Name"] = this.name;
        return data; 
    }
}

export interface ICompany {
    name: string | undefined;
}

export class Car implements ICar {
    name: string | undefined;
    manufacturer: Company | undefined;

    constructor(data?: ICar) {
        if (data) {
            for (var property in data) {
                if (data.hasOwnProperty(property))
                    (<any>this)[property] = (<any>data)[property];
            }
        }
    }

    init(data?: any) {
        if (data) {
            this.name = data["Name"];
            this.manufacturer = data["Manufacturer"] ? Company.fromJS(data["Manufacturer"]) : <any>undefined;
        }
    }

    static fromJS(data: any): Car {
        let result = new Car();
        result.init(data);
        return result;
    }

    toJSON(data?: any) {
        data = typeof data === 'object' ? data : {};
        data["Name"] = this.name;
        data["Manufacturer"] = this.manufacturer ? this.manufacturer.toJSON() : <any>undefined;
        return data; 
    }
}

export interface ICar {
    name: string | undefined;
    manufacturer: Company | undefined;
}

export class Person implements IPerson {
    firstName: string;
    middleName: string | undefined;
    lastName: string;
    gender: Gender;
    numberWithRange: number;
    birthday: Date;
    company: Company | undefined;
    cars: Car[] | undefined;

    constructor(data?: IPerson) {
        if (data) {
            for (var property in data) {
                if (data.hasOwnProperty(property))
                    (<any>this)[property] = (<any>data)[property];
            }
        }
    }

    init(data?: any) {
        if (data) {
            this.firstName = data["FirstName"];
            this.middleName = data["MiddleName"];
            this.lastName = data["LastName"];
            this.gender = data["Gender"];
            this.numberWithRange = data["NumberWithRange"];
            this.birthday = data["Birthday"] ? new Date(data["Birthday"].toString()) : <any>undefined;
            this.company = data["Company"] ? Company.fromJS(data["Company"]) : <any>undefined;
            if (data["Cars"] && data["Cars"].constructor === Array) {
                this.cars = [];
                for (let item of data["Cars"])
                    this.cars.push(Car.fromJS(item));
            }
        }
    }

    static fromJS(data: any): Person {
        let result = new Person();
        result.init(data);
        return result;
    }

    toJSON(data?: any) {
        data = typeof data === 'object' ? data : {};
        data["FirstName"] = this.firstName;
        data["MiddleName"] = this.middleName;
        data["LastName"] = this.lastName;
        data["Gender"] = this.gender;
        data["NumberWithRange"] = this.numberWithRange;
        data["Birthday"] = this.birthday ? this.birthday.toISOString() : <any>undefined;
        data["Company"] = this.company ? this.company.toJSON() : <any>undefined;
        if (this.cars && this.cars.constructor === Array) {
            data["Cars"] = [];
            for (let item of this.cars)
                data["Cars"].push(item.toJSON());
        }
        return data; 
    }
}

export interface IPerson {
    firstName: string;
    middleName: string | undefined;
    lastName: string;
    gender: Gender;
    numberWithRange: number;
    birthday: Date;
    company: Company | undefined;
    cars: Car[] | undefined;
}

NJsonSchema.SampleJsonSchemaGenerator usage

The NJsonSchema.SampleJsonSchemaGenerator can be used to generate a JSON Schema from sample JSON data:

JSON Schema Specification

By default, the NJsonSchema.SampleJsonSchemaGenerator generates a JSON Schema based on the JSON Schema specification. See: JSON Schema Specification

var generator = new SampleJsonSchemaGenerator(new SampleJsonSchemaGeneratorSettings());

var schema = generator.Generate("{...}");

Input:

{
  "int": 1,
  "float": 340282346638528859811704183484516925440.0,
  "str": "abc",
  "bool": true,
  "date": "2012-07-19",
  "datetime": "2012-07-19 10:11:11",
  "timespan": "10:11:11"
}

Output:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "int": {
      "type": "integer"
    },
    "float": {
      "type": "number"
    },
    "str": {
      "type": "string"
    },
    "bool": {
      "type": "boolean"
    },
    "date": {
      "type": "string",
      "format": "date"
    },
    "datetime": {
      "type": "string",
      "format": "date-time"
    },
    "timespan": {
      "type": "string",
      "format": "duration"
    }
  }
}

OpenApi Specification

To generate a JSON Schema for OpenApi, provide the SchemaType.OpenApi3 in the settings. See: OpenApi Specification

var generator = new SampleJsonSchemaGenerator(new SampleJsonSchemaGeneratorSettings { SchemaType = SchemaType.OpenApi3 });

var schema = generator.Generate("{...}");

Input:

{
  "int": 12345,
  "long": 1736347656630,
  "float": 340282346638528859811704183484516925440.0,
  "double": 340282346638528859811704183484516925440123456.0,
}

Output:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "int": {
      "type": "integer",
      "format": "int32"
    },
    "long": {
      "type": "integer",
      "format": "int64"
    },
    "float": {
      "type": "number",
      "format": "float"
    },
    "double": {
      "type": "number",
      "format": "double"
    }
  }
}

Final notes

Applications which use the library:

Showing the top 20 packages that depend on NJsonSchema.

Packages Downloads
NSwag.CodeGeneration
NSwag: The Swagger API toolchain for .NET and TypeScript
11
NSwag.AssemblyLoader
NSwag: The Swagger API toolchain for .NET and TypeScript
11
NSwag.AssemblyLoader
NSwag: The OpenAPI/Swagger API toolchain for .NET and TypeScript
11
NSwag.CodeGeneration
NSwag: The Swagger API toolchain for .NET and TypeScript
10
NSwag.AssemblyLoader
NSwag: The OpenAPI/Swagger API toolchain for .NET and TypeScript
10
NSwag.AssemblyLoader
NSwag: The Swagger API toolchain for .NET and TypeScript
10
NSwag.CodeGeneration
NSwag: The OpenAPI/Swagger API toolchain for .NET and TypeScript
10

.NET Framework 4.6.2

.NET 8.0

.NET Standard 2.0

Version Downloads Last updated
11.6.1 8 04/27/2026
11.6.0 9 04/08/2026
11.5.2 9 03/26/2026
11.5.1 9 03/26/2026
11.5.0 9 03/26/2026
11.4.0 9 03/26/2026
11.3.2 9 03/26/2026
11.3.1 10 03/26/2026
11.3.0 9 03/26/2026
11.2.0 9 03/26/2026
11.1.0 9 03/26/2026
11.0.2 9 03/26/2026
11.0.1 9 03/26/2026
11.0.0 9 03/26/2026
11.0.0-preview008 0 12/08/2023
11.0.0-preview007 1 07/31/2026
11.0.0-preview006 0 10/31/2023
11.0.0-preview005 0 10/30/2023
11.0.0-preview004 1 07/31/2026
11.0.0-preview003 0 09/26/2023
11.0.0-preview002 0 09/26/2023
11.0.0-preview001 0 09/25/2023
10.9.0 9 03/26/2026
10.8.0 9 03/26/2026
10.7.2 9 03/26/2026
10.7.1 9 03/26/2026
10.7.0 9 03/26/2026
10.6.10 10 03/26/2026
10.6.9 10 03/26/2026
10.6.8 9 03/26/2026
10.6.7 9 03/26/2026
10.6.6 9 03/26/2026
10.6.5 9 03/26/2026
10.6.4 9 03/26/2026
10.6.3 9 03/26/2026
10.6.2 9 03/26/2026
10.6.1 9 03/26/2026
10.6.0 9 03/26/2026
10.5.2 9 03/26/2026
10.5.1 10 03/26/2026
10.5.0 9 03/26/2026
10.4.6 9 03/26/2026
10.4.5 9 03/26/2026
10.4.4 9 03/26/2026
10.4.3 9 03/26/2026
10.4.2 9 03/26/2026
10.4.1 9 03/26/2026
10.4.0 9 03/26/2026
10.3.11 10 03/26/2026
10.3.10 10 03/26/2026
10.3.9 9 03/26/2026
10.3.8 9 03/26/2026
10.3.7 9 03/26/2026
10.3.6 9 03/26/2026
10.3.5 9 03/26/2026
10.3.4 9 03/26/2026
10.3.3 9 03/26/2026
10.3.2 9 03/26/2026
10.3.1 9 03/26/2026
10.3.0 9 03/26/2026
10.2.2 9 03/26/2026
10.2.1 9 03/26/2026
10.2.0 9 03/26/2026
10.1.26 9 03/26/2026
10.1.25 10 03/26/2026
10.1.24 10 03/26/2026
10.1.23 9 03/26/2026
10.1.22 10 03/26/2026
10.1.21 10 03/26/2026
10.1.20 10 03/26/2026
10.1.19 10 03/26/2026
10.1.18 10 03/26/2026
10.1.17 10 03/26/2026
10.1.16 10 03/26/2026
10.1.15 10 03/26/2026
10.1.14 10 03/26/2026
10.1.13 10 03/26/2026
10.1.12 10 03/26/2026
10.1.11 10 03/26/2026
10.1.10 10 03/26/2026
10.1.9 9 03/26/2026
10.1.8 9 03/26/2026
10.1.7 9 03/26/2026
10.1.6 9 03/26/2026
10.1.5 9 03/26/2026
10.1.4 9 03/26/2026
10.1.3 9 03/26/2026
10.1.2 9 03/26/2026
10.1.1 9 03/26/2026
10.1.0 9 03/26/2026
10.0.28 9 03/26/2026
10.0.27 8 03/26/2026
10.0.26 9 03/26/2026
10.0.25 9 03/26/2026
10.0.24 9 03/26/2026
10.0.23 9 03/26/2026
10.0.22 10 03/26/2026
10.0.21 10 03/26/2026
10.0.20 10 03/26/2026
10.0.19 10 03/26/2026
10.0.18 10 03/26/2026
10.0.17 10 03/26/2026
10.0.16 10 03/26/2026
10.0.15 10 03/26/2026
10.0.14 10 03/26/2026
10.0.13 10 03/26/2026
10.0.12 10 03/26/2026
10.0.11 10 03/26/2026
10.0.10 10 03/26/2026
10.0.9 9 03/26/2026
10.0.8 9 03/26/2026
10.0.7 9 03/26/2026
10.0.6 9 03/26/2026
10.0.5 9 03/26/2026
10.0.4 9 03/26/2026
10.0.3 9 03/26/2026
10.0.1 9 03/26/2026
10.0.0 10 03/26/2026
9.14.1 9 03/26/2026
9.14.0 9 03/26/2026
9.13.37 9 03/26/2026
9.13.36 9 03/26/2026
9.13.35 9 03/26/2026
9.13.34 9 03/26/2026
9.13.33 10 03/26/2026
9.13.32 9 03/26/2026
9.13.31 10 03/26/2026
9.13.30 9 03/26/2026
9.13.29 9 03/26/2026
9.13.28 9 03/26/2026
9.13.27 9 03/26/2026
9.13.26 9 03/26/2026
9.13.25 9 03/26/2026
9.13.24 9 03/26/2026
9.13.23 9 03/26/2026
9.13.22 9 03/26/2026
9.13.19 10 03/26/2026
9.13.18 9 03/26/2026
9.13.17 9 03/26/2026
9.13.16 9 03/26/2026
9.13.15 9 03/26/2026
9.13.14 9 03/26/2026
9.13.13 9 03/26/2026
9.13.12 9 03/26/2026
9.13.11 10 03/26/2026
9.13.10 9 03/26/2026
9.13.9 9 03/26/2026
9.13.8 9 03/26/2026
9.13.7 9 03/26/2026
9.13.5 9 03/26/2026
9.13.4 9 03/26/2026
9.13.3 9 03/26/2026
9.13.2 9 03/26/2026
9.13.1 9 03/26/2026
9.13.0 9 03/26/2026
9.12.7 9 03/26/2026
9.12.6 9 03/26/2026
9.12.5 9 03/26/2026
9.12.4 9 03/26/2026
9.12.3 9 03/26/2026
9.12.2 9 03/26/2026
9.12.1 9 03/26/2026
9.12.0 9 03/26/2026
9.11.1 9 03/26/2026
9.11.0 9 03/26/2026
9.10.75 10 03/26/2026
9.10.74 10 03/26/2026
9.10.73 9 03/26/2026
9.10.72 10 03/26/2026
9.10.71 9 03/26/2026
9.10.70 9 03/26/2026
9.10.69 9 03/26/2026
9.10.68 10 03/26/2026
9.10.67 10 03/26/2026
9.10.66 9 03/26/2026
9.10.65 11 03/26/2026
9.10.64 10 03/26/2026
9.10.63 9 03/26/2026
9.10.62 10 03/26/2026
9.10.61 9 03/26/2026
9.10.60 9 03/26/2026
9.10.59 9 03/26/2026
9.10.58 10 03/26/2026
9.10.57 10 03/26/2026
9.10.56 10 03/26/2026
9.10.55 9 03/26/2026
9.10.54 10 03/26/2026
9.10.53 9 03/26/2026
9.10.52 10 03/26/2026
9.10.51 9 03/26/2026
9.10.50 9 03/26/2026
9.10.49 9 03/26/2026
9.10.48 10 03/26/2026
9.10.47 10 03/26/2026
9.10.46 10 03/26/2026
9.10.45 10 03/26/2026
9.10.44 9 03/26/2026
9.10.43 9 03/26/2026
9.10.42 10 03/26/2026
9.10.41 9 03/26/2026
9.10.40 9 03/26/2026
9.10.39 9 03/26/2026
9.10.38 9 03/26/2026
9.10.37 9 03/26/2026
9.10.36 9 03/26/2026
9.10.35 9 03/26/2026
9.10.34 9 03/26/2026
9.10.33 9 03/26/2026
9.10.32 9 03/26/2026
9.10.31 9 03/26/2026
9.10.30 9 03/26/2026
9.10.29 9 03/26/2026
9.10.28 10 03/26/2026
9.10.27 10 03/26/2026
9.10.26 10 03/26/2026
9.10.25 10 03/26/2026
9.10.24 10 03/26/2026
9.10.23 9 03/26/2026
9.10.22 9 03/26/2026
9.10.21 9 03/26/2026
9.10.20 9 03/26/2026
9.10.19 10 03/26/2026
9.10.18 9 03/26/2026
9.10.17 9 03/26/2026
9.10.16 9 03/26/2026
9.10.15 9 03/26/2026
9.10.14 9 03/26/2026
9.10.13 9 03/26/2026
9.10.12 9 03/26/2026
9.10.11 10 03/26/2026
9.10.10 9 03/26/2026
9.10.9 9 03/26/2026
9.10.8 9 03/26/2026
9.10.7 9 03/26/2026
9.10.6 9 03/26/2026
9.10.5 9 03/26/2026
9.10.4 9 03/26/2026
9.10.3 9 03/26/2026
9.10.2 9 03/26/2026
9.10.1 9 03/26/2026
9.10.0 8 03/26/2026
9.9.17 9 03/26/2026
9.9.16 9 03/26/2026
9.9.15 9 03/26/2026
9.9.14 9 03/26/2026
9.9.13 9 03/26/2026
9.9.12 9 03/26/2026
9.9.11 9 03/26/2026
9.9.10 9 03/26/2026
9.9.9 9 03/26/2026
9.9.8 10 03/26/2026
9.9.7 10 03/26/2026
9.9.6 10 03/26/2026
9.9.5 10 03/26/2026
9.9.4 10 03/26/2026
9.9.3 9 03/26/2026
9.9.2 10 03/26/2026
9.9.1 10 03/26/2026
9.9.0 10 03/26/2026
9.8.3 10 03/26/2026
9.8.2 10 03/26/2026
9.8.1 10 03/26/2026
9.8.0 10 03/26/2026
9.7.7 10 03/26/2026
9.7.6 10 03/26/2026
9.7.5 10 03/26/2026
9.7.3 10 03/26/2026
9.7.2 10 03/26/2026
9.7.1 10 03/26/2026
9.7.0 10 03/26/2026
9.6.5 10 03/26/2026
9.6.4 10 03/26/2026
9.6.3 10 03/26/2026
9.6.2 10 03/26/2026
9.6.1 10 03/26/2026
9.6.0 10 03/26/2026
9.5.4 10 03/26/2026
9.5.3 10 03/26/2026
9.5.2 10 03/26/2026
9.5.1 10 03/26/2026
9.5.0 10 03/26/2026
9.4.10 9 03/26/2026
9.4.9 10 03/26/2026
9.4.8 10 03/26/2026
9.4.7 10 03/26/2026
9.4.6 10 03/26/2026
9.4.5 10 03/26/2026
9.4.4 10 03/26/2026
9.4.3 10 03/26/2026
9.4.2 10 03/26/2026
9.4.1 10 03/26/2026
9.4.0 10 03/26/2026
9.3.2 10 03/26/2026
9.3.1 10 03/26/2026
9.3.0 10 03/26/2026
9.2.5 10 03/26/2026
9.2.4 10 03/26/2026
9.2.3 10 03/26/2026
9.2.2 10 03/26/2026
9.2.1 10 03/26/2026
9.2.0 10 03/26/2026
9.1.13 9 03/26/2026
9.1.12 9 03/26/2026
9.1.11 9 03/26/2026
9.1.10 10 03/26/2026
9.1.9 10 03/26/2026
9.1.8 10 03/26/2026
9.1.7 10 03/26/2026
9.1.6 10 03/26/2026
9.1.5 10 03/26/2026
9.1.4 10 03/26/2026
9.1.3 10 03/26/2026
9.1.2 10 03/26/2026
9.1.1 10 03/26/2026
9.1.0 10 03/26/2026
9.0.0 10 03/26/2026
8.34.6331.29178 8 03/26/2026
8.33.6323.36213 10 03/26/2026
8.32.6319.16936 8 03/26/2026
8.31.6318.20479 10 03/26/2026
8.30.6304.31883 10 03/26/2026
8.29.6304.29574 10 03/26/2026
8.28.6304.29303 9 03/26/2026
8.27.6302.16041 8 03/26/2026
8.26.6300.23786 9 03/26/2026
8.25.6298.25721 10 03/26/2026
8.24.6298.12169 9 03/26/2026
8.23.6298.10815 9 03/26/2026
8.22.6296.25100 9 03/26/2026
8.21.6296.23959 9 03/26/2026
8.20.6296.23138 8 03/26/2026
8.19.6295.40470 10 03/26/2026
8.18.6295.39644 9 03/26/2026
8.17.6295.16496 9 03/26/2026
8.16.6295.13527 8 03/26/2026
8.15.6294.28815 8 03/26/2026
8.14.6289.34345 8 03/26/2026
8.13.6288.31182 10 03/26/2026
8.12.6288.29353 9 03/26/2026
8.11.6284.26855 9 03/26/2026
8.10.6282.29572 8 03/26/2026
8.9.6275.22295 9 03/26/2026
8.8.6270.12833 10 03/26/2026
8.7.6267.38130 10 03/26/2026
8.6.6263.34621 10 03/26/2026
8.5.6255.20253 10 03/26/2026
8.4.6254.24648 10 03/26/2026
8.3.6252.27806 10 03/26/2026
8.2.6249.40688 10 03/26/2026
8.1.6249.15627 10 03/26/2026
8.0.6242.20238 10 03/26/2026
7.10.6235.25398 10 03/26/2026
7.9.6234.40167 10 03/26/2026
7.8.6234.39143 9 03/26/2026
7.7.6231.35489 8 03/26/2026
7.6.6221.22528 10 03/26/2026
7.5.6218.39574 8 03/26/2026
7.4.6218.34172 10 03/26/2026
7.3.6214.20986 9 03/26/2026
7.2.6206.27034 10 03/26/2026
7.1.6203.28289 10 03/26/2026
7.0.6201.32793 10 03/26/2026
6.8.6197.43075 8 03/26/2026
6.7.6197.28471 10 03/26/2026
6.6.6192.39835 10 03/26/2026
6.5.6190.16910 10 03/26/2026
6.4.6189.32875 9 03/26/2026
6.3.6185.19861 10 03/26/2026
6.2.6179.20107 10 03/26/2026
6.1.6179.17509 10 03/26/2026
6.0.6178.42031 10 03/26/2026
5.20.6175.31167 9 03/26/2026
5.19.6171.28316 9 03/26/2026
5.18.6170.22062 9 03/26/2026
5.17.6169.42629 9 03/26/2026
5.16.6156.29215 10 03/26/2026
5.15.6154.34583 9 03/26/2026
5.14.6153.20987 10 03/26/2026
5.13.6150.21322 8 03/26/2026
5.12.6149.949 9 03/26/2026
5.11.6148.42451 10 03/26/2026
5.10.6148.26188 8 03/26/2026
5.9.6144.17989 10 03/26/2026
5.8.6143.37541 10 03/26/2026
5.7.6142.39228 10 03/26/2026
5.6.6142.18206 9 03/26/2026
5.5.6138.25614 10 03/26/2026
5.5.6138.25231 10 03/26/2026
5.4.6138.25088 10 03/26/2026
5.4.6138.24413 10 03/26/2026
5.3.6137.40406 10 03/26/2026
5.2.6135.25892 10 03/26/2026
5.1.6130.30069 10 03/26/2026
5.0.6130.17623 10 03/26/2026
4.28.6128.27588 10 03/26/2026
4.27.6128.21479 9 03/26/2026
4.26.6123.28532 9 03/26/2026
4.25.6122.24179 9 03/26/2026
4.24.6122.15983 8 03/26/2026
4.23.6120.19206 8 03/26/2026
4.22.6120.18407 9 03/26/2026
4.21.6119.18328 9 03/26/2026
4.20.6119.18035 9 03/26/2026
4.19.6118.22551 9 03/26/2026
4.18.6117.31903 8 03/26/2026
4.17.6115.27875 8 03/26/2026
4.16.6115.26709 8 03/26/2026
4.15.6113.36675 8 03/26/2026
4.14.6108.28115 9 03/26/2026
4.13.6107.31015 9 03/26/2026
4.12.6103.41721 8 03/26/2026
4.11.6103.32935 9 03/26/2026
4.10.6103.22760 8 03/26/2026
4.9.6102.40549 10 03/26/2026
4.8.6094.34027 10 03/26/2026
4.7.6093.32380 9 03/26/2026
4.6.6093.13919 11 03/26/2026
4.5.6091.37159 10 03/26/2026
4.4.6091.25564 10 03/26/2026
4.3.6089.14049 10 03/26/2026
4.2.6085.38782 10 03/26/2026
4.1.6075.30950 10 03/26/2026
4.0.6074.30968 10 03/26/2026
3.4.6065.33501 10 03/26/2026
3.3.6061.16591 10 03/26/2026
3.2.6060.41150 10 03/26/2026
3.1.6058.33392 10 03/26/2026
3.0.6058.19297 8 03/26/2026
2.65.6055.39156 8 03/26/2026
2.64.6055.38772 10 03/26/2026
2.62.6049.40362 10 03/26/2026
2.61.6047.40644 9 03/26/2026
2.60.6043.38307 10 03/26/2026
2.59.6040.32732 8 03/26/2026
2.58.6038.30299 8 03/26/2026
2.57.6037.28393 9 03/26/2026
2.56.6036.39820 8 03/26/2026
2.55.6036.31332 8 03/26/2026
2.54.6032.25763 8 03/26/2026
2.53.6030.34284 8 03/26/2026
2.52.6030.13790 8 03/26/2026
2.51.6022.22786 9 03/26/2026
2.50.6019.27727 8 03/26/2026
2.49.6019.25463 9 03/26/2026
2.48.6012.40848 10 03/26/2026
2.47.6012.36609 8 03/26/2026
2.46.6012.18623 8 03/26/2026
2.45.6011.39984 10 03/26/2026
2.44.6011.37467 9 03/26/2026
2.43.6010.35600 9 03/26/2026
2.41.6006.20160 10 03/26/2026
2.40.6005.16496 8 03/26/2026
2.39.6004.37509 8 03/26/2026
2.38.6002.31137 10 03/26/2026
2.37.6002.13677 9 03/26/2026
2.36.6001.31066 10 03/26/2026
2.35.6000.32415 10 03/26/2026
2.34.6000.31959 10 03/26/2026
2.33.6000.30327 8 03/26/2026
2.32.6000.24907 10 03/26/2026
2.31.5998.34796 8 03/26/2026
2.30.5998.28512 9 03/26/2026
2.29.5997.39527 10 03/26/2026
2.28.5997.37671 8 03/26/2026
2.27.5995.31644 9 03/26/2026
2.26.5992.40823 9 03/26/2026
2.25.5989.40403 9 03/26/2026
2.24.5988.28092 10 03/26/2026
2.23.5984.32960 9 03/26/2026
2.22.5984.16716 8 03/26/2026
2.21.5981.35957 9 03/26/2026
2.20.5981.32981 10 03/26/2026
2.19.5978.21534 8 03/26/2026
2.18.5976.28450 10 03/26/2026
2.17.5976.27663 8 03/26/2026
2.16.5975.38441 10 03/26/2026
2.15.5970.28125 9 03/26/2026
2.14.5967.31319 10 03/26/2026
2.13.5966.35759 9 03/26/2026
2.12.5965.33914 9 03/26/2026
2.11.5963.474 10 03/26/2026
2.10.5958.25556 10 03/26/2026
2.9.5956.34078 8 03/26/2026
2.8.5956.13680 10 03/26/2026
2.7.5954.13235 10 03/26/2026
2.6.5946.13963 10 03/26/2026
2.5.5941.14558 10 03/26/2026
2.4.5940.38662 10 03/26/2026
2.3.5940.24969 10 03/26/2026
2.2.5940.22487 10 03/26/2026
2.1.5940.20329 10 03/26/2026
2.0.5928.2914 8 03/26/2026
1.39.5923.31343 10 03/26/2026
1.38.5920.30379 8 03/26/2026
1.37.5912.16399 8 03/26/2026
1.36.5908.3838 10 03/26/2026
1.35.5908.509 8 03/26/2026
1.34.5905.41329 8 03/26/2026
1.32.5904.40563 8 03/26/2026
1.31.5892.26482 9 03/26/2026
1.30.5878.31384 8 03/26/2026
1.29.5875.38535 8 03/26/2026
1.29.5875.38248 9 03/26/2026
1.29.5875.36302 10 03/26/2026
1.28.5872.19133 9 03/26/2026
1.27.5865.35296 9 03/26/2026
1.26.5864.35160 8 03/26/2026
1.25.5861.38102 9 03/26/2026
1.24.5858.29180 9 03/26/2026
1.23.5856.30577 9 03/26/2026
1.22.5836.1197 9 03/26/2026
1.21.5834.30412 8 03/26/2026
1.21.5831.34290 8 03/26/2026
1.21.5830.29524 9 03/26/2026
1.20.5829.20854 10 03/26/2026
1.20.5829.15818 8 03/26/2026
1.19.5828.20063 9 03/26/2026
1.19.5827.22433 8 03/26/2026
1.19.5824.3255 10 03/26/2026
1.18.5822.14857 9 03/26/2026
1.18.5821.36806 9 03/26/2026
1.17.5820.28487 9 03/26/2026
1.16.5820.27108 9 03/26/2026
1.15.5812.25745 9 03/26/2026
1.14.5811.24407 9 03/26/2026
1.13.5811.23634 8 03/26/2026
1.12.5801.29458 9 03/26/2026
1.11.5799.31777 8 03/26/2026
1.10.5779.31942 8 03/26/2026
1.9.5778.39697 10 03/26/2026
1.9.5778.38903 10 03/26/2026
1.9.5778.31077 10 03/26/2026
1.8.5777.37128 9 03/26/2026
1.8.5775.25809 9 03/26/2026
1.7.5770.30722 10 03/26/2026
1.6.5769.33301 10 03/26/2026
1.6.5765.33542 10 03/26/2026
1.6.5763.16697 10 03/26/2026
1.6.5760.32685 9 03/26/2026
1.6.5759.33134 10 03/26/2026
1.6.5758.30931 10 03/26/2026
1.6.5757.40238 8 03/26/2026
1.6.5751.15394 10 03/26/2026
1.5.5750.33915 10 03/26/2026
1.5.5750.33435 10 03/26/2026
1.4.5737.33581 10 03/26/2026
1.4.5732.34143 10 03/26/2026
1.4.5731.36729 9 03/26/2026
1.3.5731.34877 10 03/26/2026
1.2.5730.33570 10 03/26/2026
1.1.5729.33707 10 03/26/2026
1.0.5725.35303 10 03/26/2026
0.2.5707.34168 8 03/26/2026
0.2.5707.33649 9 03/26/2026
0.1.5585.25897 10 03/26/2026
0.1.5582.28800 10 03/26/2026
0.1.5524.6071 9 03/26/2026
0.1.5504.31964 10 03/26/2026
0.1.5494.16128 9 03/26/2026
0.1.5492.33014 10 03/26/2026
0.1.5479.38772 10 03/26/2026
0.1.5477.39622 9 03/26/2026
0.1.5477.36883 10 03/26/2026
0.1.5471.22558 10 03/26/2026
0.1.5470.42846 10 03/26/2026
0.1.5470.35375 10 03/26/2026
0.1.5470.35079 10 03/26/2026