6.3.0 • Published 8 months ago

@openmrs/esm-config v6.3.0

Weekly downloads
454
License
MPL-2.0
Repository
github
Last release
8 months ago

openmrs-esm-config

npm: openmrs/esm-module-config

What is this?

This is the configuration library for OpenMRS Microfrontends. It makes configurability easier for developers and configuring easier for implementers.

Contents

What does an OpenMRS frontend configuration file look like?

OpenMRS frontend configuration files are JSON files containing module names as top-level elements. All configuration elements are optional. The available configuration elements for each module should be documented in the module's wiki page.

Here's an example!

{
  "@openmrs/esm-login-app": {
    "logo": {
      "src": "https://pbs.twimg.com/media/C1w_czvWgAAWONL.jpg"
    }
  },
  "@openmrs/esm-home-app": {
    "buttons": {
      "enabled": false
    }
  }
}

Alternatively you can provide your config file as a Javascript file. It will look just about the same, but with some magic words at the beginning:

exports = {};
exports.default = {
  "@openmrs/esm-login-app": {
    logo: {
      src: "https://pbs.twimg.com/media/C1w_czvWgAAWONL.jpg"
    }
  },
  "@openmrs/esm-home-app": {
    buttons: {
      enabled: false
    }
  }
}

How do I configure my OpenMRS implementation?

There are two methods for doing so.

The Simple Way

Upload your configuration file and add its URL to your import map as a module named config-file. If you are serving your microfrontends from your OpenMRS server, you can simply add your config file to your server's frontend/ directory. Your import map will then look like

{
  "imports": {
    "config-file": "/openmrs/frontend/config.js[on]"
  }
}

The Flexible Way

You can also provide config files programmatically. This technique allows you to have multiple configuration files, which will be merged together in an order that you specify.

To do this you need to create a (simple) custom module, which you will add to your import map. Its name in the import map should be suffixed with -app. This will ensure it is loaded.

You add your configuration files to this module, import them, and provide them to esm-config.

Example code:

import { provide } from "@openmrs/esm-config";

import myOrgConfig from "./org-config.json";
import myOrgLocalConfig from "./org-local-config.json";

provide(myOrgConfig);
provide(myOrgLocalConfig);

All provided configs will be merged, with elements provided by later calls to provide taking priority. The import map config file, config-file, will also be merged, and will take the highest priority. In the above example, configuration elements in org-local-config.json will take priority over those in org-config.json.

You can break up your configuration files into hierarchies, or per module, or per groups of modules.

I'm developing an ESM module. How do I make it configurable?

You should use this module, esm-config, to make your modules configurable.

Start with npm install --save-dev @openmrs/esm-config. This is a runtime dependency, so you should also include it in peerDependencies.

The main task is to create a config schema for your module. The config schema is what tells esm-config what configuration files should look like, including defaults and validations.

Designing a schema

You'll probably start with some idea of what you want configs for your module to look like. Try and put yourself in the implementer's shoes an imagine what features they will expect to be configurable, and what they might expect the configuration property to be called. Assume they don't know anything about the internal workings of your module.

By way of example, let's say we're building a module for a virtual provider functionality at a very futuristic hospital. Maybe we want an implementer to be able to write the following in their config file:

"@openmrs/esm-hologram-doctor": {
  "hologram": {
    "color": true
  },
  "virtualProvider": {
    "name": {
      "given": ["Qui", "Gon"]
    }
  },
  "robots": [
    { "name": "R2-D2", "homeworld": "Naboo" },
    { "name": "BB-8", "homeworld": "Hosnian Prime" }
  ]
}

In the following section, we'll see how to write a config schema that supports these config elements.

Defining a schema

We'll start with just that first nested config element from above, hologram.color. We must provide defaults for all of the values—in OpenMRS Frontend 3.0, all configuration is optional. All modules should do something reasonable out of the box.

import { defineConfigSchema, Type } from "@openmrs/esm-config"

defineConfigSchema("@openmrs/esm-hologram-doctor", {
  hologram: {
    color: {
      _type: Type.Boolean,
      _default: false,
      _description: "Whether the cologram supports color display."
    }
  }
}

Note that each configuration element should have an object for a value, and that this object must define the properties for that element. Do not do this:

❌ // This is wrong!
❌ defineConfigSchema("@openmrs/esm-hologram-doctor",
❌  hologram: {
❌   salutation: "Some friendly default salutation! ? this is wrong!"
❌ })

The words prefixed with _ are schema keywords. Do not prefix the names of your config elements with underscores. Especially do not use a schema keyword as a config element name.

❌ // Don't do this!
❌ defineConfigSchema("@openmrs/esm-hologram-doctor",
❌  hologram: {
❌    salutation: {
❌      _default: {
❌        _default: "Greetings ? this is bad don't do it"
❌ }}})

Typing

While not strictly required in the current version, you should provide a type for every config element you define. The _type keyword accepts values from the Type enum.

These types are used both to validate input and to support special behavior in the implementer tools.

Validators

You should provide validators for your configuration elements wherever possible. This reduces the probability that implementers using your module will have hard-to-debug runtime errors. It gives you, the module developer, the opportunity to provide implementers with very helpful explanations about why their configuration on't work.

robot: {
  name: {
    _type: Type.String,
    _default: "R2D2",
    _description: "What to call the robot",
    _validators: [
      validator(n => /\d/.test(n), "Robots must have numbers in their names")
    ]
  }
}

(Note that this piece of schema is not part of our above example. It only supports a single robot, whereas we need to allow the implementer to provide an array of robots).

A validator can be created using the validator function, as above.

The first argument is a function that takes the config value as its only argument. If the function returns something truthy, validation passes. If the function returns something falsy, an error is thrown with the second argument as an explanation.

You can even validate nested objects:

colorPicker: {
  options: { _default: ["green", "red", "blue"] }
  initial: { _default: "green" },
  _description: "The color picker for lightsabers",
  _validators: [
    validator(o => o.options.includes(o.initial),
      "Initial must be one of the options")
  ]
}

For convenience, some common validators are provided out of the box. See the API / validators.

Arrays

You can accept and validate arrays, and arrays containing objects, in your configuration schema. This is configured with the elements parameter, used with _type: Type.Array. For example, a schema which would accept an array of strings up to 30 characters long:

virtualProvider: {
  name: {
    given: {
      _type: Type.Array,
      _default: ["Obi", "Wan"]
      _elements: {
        _type: Type.String
        _validators: [validator(n => n.length < 30, "Must be less than 30 characters")]
      }
    },
    _description: "The name of the avatar. Does not have to be the name of the actual provider"
  },
  _description: "The avatar of the medical practitioner"
}

Here is an example of a schema that expects an array of objects structured in a particular way.

robots: {
  _type: Type.Array,
  _default: [
    { name: "R2-D2", homeworld: "Naboo" },
    { name: "C-3PO", homeworld: "Tatooine" }
  ],
  _description: "The list of all available robots",
  _elements: {
    name: {
      _type: Type.String,
      _description: "What to call the robot",
      _validators: [robotNameValidator]
    },
    homeworld: {
      _type: Type.String,
      _description: "Where the robot is from",
      _default: null  // not required
    }
  }
}

This schema will require that any objects in the robots array must only have the keys name and homeworld, and that name is required.

Objects within arrays do not have to have defaults. If an object is supplied to the robots array that does not have a name, an error will be thrown.

Freeform objects

In unusual scenarios you might want to accept an object without validating its keys. To do this, you can specify the config element like a normal non-object element.

beepsPerRobot: {
  _type: Type.Object
  _default: {
    "R2-D2": 4,
    "C-3P0": 0
  },
  _elements: {  // describes the *values* of the object
    _type: Type.Number
    _validators: [validator(n => Number.isInteger(n), "Beeps must be integers")]
  },
  _description: "An object mapping robot names to number of beeps",
  _validators: [
    validator(o => Object.keys(o).every(n => /\d/.test(n)),
      "Robots must have numbers in their names")
  ]
}

Note that this is the only situation in which you should ever use Type.Object.

Using config values

The generic way

The config is fetched asynchronously using getConfig(moduleName). Continuing the above example, we would have something like

import { getConfig } from "@openmrs/esm-config"

async function doctorGreeting() {
  const config = await getConfig("@openmrs/esm-hologram-doctor")
  return "Hello, my name is Dr. " + config.virtualProvider.name.family
}

The content of config will be pulled from the config files, falling back to the defaults for configuration elements for which no values have been provided.

React support

A React Hook is provided to hide the asynchronicity of config loading. The moduleNameprovided to the openmrs react root decorator is used to look up the configuration elsewhere in the application.

export default openmrsRootDecorator({
  featureName: "hologram doctor",
  moduleName: "@openmrs/esm-hologram-doctor"
})(Root)

You can then get the config tree as an object using the useConfig React hook.

import { useConfig } from "@openmrs/esm-config"

export default function DoctorGreeting() {
  const config = useConfig()
  const greeting = "Hello, my name is Dr. " + config.virtualProvider.name.family
  return <div>{greeting}</div>
}

The content of config will be pulled from the config files, falling back to the defaults for configuration elements for which no values have been provided.

Support in other frameworks (Angular, Vue, Svelte, etc.)

This hasn't been implemented yet, but we would like to implement it! See "Contributing"

Schema Reference

_default

All config elements must have a default (excluding elements within arrays of objects).

The default does not necessarily need to satisfy the _type or the _validators of the element, but this may change in future versions.

_type

One of the values from the Type enum. Used for validation and to help the implementer tools work with the element.

Should always appear alongside _default.

_description

Helps implementers understand what the configuration element actually does and how it is intended to be used.

Can be used anywhere within the schema structure.

_validators

An array of validator objects.

Some common validators are provided: API / validators.

Custom validators should be created with the validator function.

Can be used anywhere within the schema structure.

_elements

Only valid alongside _type: Type.Array or _type: Type.Object. A _default must also be provided at this level. Value should be an object which is a schema for the values contained in the array or object.

API

Variables

Navigation Functions

Other Functions

Object literals

Variables

Const ModuleNameContext

ModuleNameContext: Context‹null | string› = React.createContext<string | null>(null)

Defined in react-hook/react-hook.tsx:4

Navigation Functions

ConfigurableLink

ConfigurableLink(__namedParameters: object): Element‹›

Defined in navigation/react-configurable-link.tsx:13

A React link component which calls navigate when clicked

Parameters:

__namedParameters: object

NameTypeDescription
childrenanyInline elements within the link
otherPropsotherPropsAny other valid props for an tag except href and onClick
tostringThe target path or URL. Supports interpolation. See navigate

Returns: Element‹›


interpolateString

interpolateString(template: string, params: object): string

Defined in navigation/interpolate-string.ts:38

Interpolates values of params into the template string.

Useful for additional template parameters in URLs.

Example usage:

navigate({
 to: interpolateString(
   config.links.patientChart,
   { patientUuid: patient.uuid }
 )
});

Parameters:

NameTypeDescription
templatestringWith optional params wrapped in ${ }
paramsobjectValues to interpolate into the string template

Returns: string


navigate

navigate(__namedParameters: object): void

Defined in navigation/navigate.ts:24

Calls location.assign for non-SPA paths and navigateToUrl for SPA paths

Example usage:

const config = getConfig();
const submitHandler = () => {
  navigate({ to: config.links.submitSuccess });
};

Parameters:

__namedParameters: object

NameTypeDescription
tostringThe target path or URL. Supports templating with 'openmrsBase' and 'openmrsSpaBase'. For example, ${openmrsSpaBase}/home will resolve to /openmrs/spa/home for implementations using the standard OpenMRS and SPA base paths.

Returns: void


Other Functions

defineConfigSchema

defineConfigSchema(moduleName: string, schema: ConfigSchema): void

Defined in module-config/module-config.ts:20

Parameters:

NameType
moduleNamestring
schemaConfigSchema

Returns: void


getConfig

getConfig(moduleName: string): Promise‹ConfigObject›

Defined in module-config/module-config.ts:29

Parameters:

NameType
moduleNamestring

Returns: Promise‹ConfigObject›


processConfig

processConfig(schema: ConfigSchema, providedConfig: ConfigObject, keyPathContext: string): Config

Defined in module-config/module-config.ts:42

Validate and interpolate defaults for providedConfig according to schema

Parameters:

NameTypeDescription
schemaConfigSchemaa configuration schema
providedConfigConfigObjectan object of config values (without the top-level module name)
keyPathContextstringa dot-deparated string which helps the user figure out where the provided config came from

Returns: Config


provide

provide(config: Config, sourceName: string): void

Defined in module-config/module-config.ts:25

Parameters:

NameTypeDefault
configConfig-
sourceNamestring"provided"

Returns: void


useConfig

useConfig(): any

Defined in react-hook/react-hook.tsx:8

Returns: any


validator

validator(validationFunction: ValidatorFunction, message: string): Validator

Defined in validators/validator.ts:1

Parameters:

NameType
validationFunctionValidatorFunction
messagestring

Returns: Validator

Object literals

Const validators

validators: object

Defined in validators/validators.ts:66

isBoolean

isBoolean: function

Defined in validators/validators.ts:69

Type declaration:

▸ (value: any): void | string

Parameters:

NameType
valueany

isNumber

isNumber: function

Defined in validators/validators.ts:68

Type declaration:

▸ (value: any): void | string

Parameters:

NameType
valueany

isObject

isObject: function

Defined in validators/validators.ts:71

Type declaration:

▸ (value: any): void | string

Parameters:

NameType
valueany

isString

isString: function

Defined in validators/validators.ts:67

Type declaration:

▸ (value: any): void | string

Parameters:

NameType
valueany

isUrl

isUrl: function

Defined in validators/validators.ts:72

Type declaration:

▸ (value: any): void | string

Parameters:

NameType
valueany

isUrlWithTemplateParameters

isUrlWithTemplateParameters: isUrlWithTemplateParameters

Defined in validators/validators.ts:73

isUuid

isUuid: function

Defined in validators/validators.ts:70

Type declaration:

▸ (value: any): void | string

Parameters:

NameType
valueany

Contributing & Development

PRs welcome! See OpenMRS Microfrontends RFC-20 for guidelines about contributing.

Setup local development environment for OpenMRS SPA.

Maintainer: Brandon Istenes (bistenes@pih.org)

6.2.1-pre.2741

11 months ago

6.2.1-pre.2743

11 months ago

6.0.5-pre.2669

1 year ago

6.0.5-pre.2676

1 year ago

6.0.5-pre.2673

1 year ago

6.0.5-pre.2675

1 year ago

6.0.5-pre.2680

12 months ago

6.0.5-pre.2681

12 months ago

6.0.5-pre.2686

12 months ago

6.2.1-pre.2920

9 months ago

6.2.1-pre.2921

9 months ago

5.8.2-pre.2506

1 year ago

6.0.5-pre.2691

12 months ago

6.0.5-pre.2690

12 months ago

6.0.5-pre.2698

12 months ago

6.0.5-pre.2695

12 months ago

6.0.5-pre.2696

12 months ago

6.2.1-pre.2909

9 months ago

5.8.2-pre.2520

1 year ago

5.8.2-pre.2521

1 year ago

5.8.2-pre.2524

1 year ago

5.8.2-pre.2522

1 year ago

5.8.2-pre.2526

1 year ago

5.8.2-pre.2527

1 year ago

6.2.1-pre.2917

9 months ago

5.8.2-pre.2510

1 year ago

5.8.2-pre.2511

1 year ago

5.8.2-pre.2512

1 year ago

5.8.2-pre.2515

1 year ago

5.8.2-pre.2516

1 year ago

6.0.1-pre.2569

1 year ago

6.0.1-pre.2568

1 year ago

6.0.1-pre.2566

1 year ago

6.0.1-pre.2575

1 year ago

6.0.1-pre.2573

1 year ago

5.8.2-pre.2495

1 year ago

5.8.2-pre.2499

1 year ago

5.8.2-pre.2496

1 year ago

5.8.2-pre.2497

1 year ago

6.0.1-pre.2537

1 year ago

6.0.1-pre.2541

1 year ago

6.0.1-pre.2557

1 year ago

6.0.1-pre.2559

1 year ago

6.0.1-pre.2564

1 year ago

6.0.1-pre.2563

1 year ago

6.0.1-pre.2562

1 year ago

6.0.1-pre.2547

1 year ago

6.0.1-pre.2544

1 year ago

6.0.1-pre.2549

1 year ago

6.0.1-pre.2550

1 year ago

6.0.1-pre.2553

1 year ago

6.0.1-pre.2551

1 year ago

5.8.2-pre.2443

1 year ago

5.8.2-pre.2448

1 year ago

6.2.0

11 months ago

5.8.2-pre.2461

1 year ago

5.8.2-pre.2460

1 year ago

5.8.2-pre.2465

1 year ago

5.8.2-pre.2469

1 year ago

5.8.2-pre.2467

1 year ago

5.8.2-pre.2468

1 year ago

5.8.2-pre.2451

1 year ago

5.8.2-pre.2454

1 year ago

5.8.2-pre.2458

1 year ago

5.8.2-pre.2459

1 year ago

5.8.2-pre.2483

1 year ago

5.8.2-pre.2488

1 year ago

5.8.2-pre.2486

1 year ago

5.8.2-pre.2471

1 year ago

5.8.2-pre.2474

1 year ago

5.8.2-pre.2475

1 year ago

6.2.1-pre.2876

9 months ago

5.8.2-pre.2478

1 year ago

5.8.2-pre.2479

1 year ago

6.2.1-pre.2884

9 months ago

6.2.1-pre.2843

10 months ago

6.2.1-pre.2847

10 months ago

6.2.1-pre.2848

10 months ago

6.2.1-pre.2849

10 months ago

6.2.1-pre.2850

10 months ago

6.2.1-pre.2852

10 months ago

6.2.1-pre.2854

10 months ago

6.2.1-pre.2856

10 months ago

6.2.1-pre.2860

10 months ago

6.2.1-pre.2862

10 months ago

6.2.1-pre.2864

10 months ago

6.2.1-pre.2824

10 months ago

6.2.1-pre.2825

10 months ago

6.2.1-pre.2830

10 months ago

6.2.1-pre.2834

10 months ago

6.2.1-pre.2836

10 months ago

6.2.1-pre.2839

10 months ago

6.2.1-pre.2807

11 months ago

6.2.1-pre.2809

11 months ago

6.2.1-pre.2805

11 months ago

6.2.1-pre.2812

11 months ago

6.0.1

1 year ago

6.0.0

1 year ago

6.0.3

1 year ago

6.0.2

1 year ago

6.0.4

1 year ago

6.3.1-pre.2950

9 months ago

6.3.1-pre.2951

9 months ago

6.3.1-pre.2949

9 months ago

6.3.1-pre.2947

9 months ago

6.3.1-pre.2948

9 months ago

6.3.1-pre.2944

9 months ago

6.0.3-pre.2631

1 year ago

6.0.3-pre.2633

1 year ago

6.3.1-pre.2961

9 months ago

6.1.1-pre.2729

11 months ago

6.1.1-pre.2723

12 months ago

6.0.3-pre.2624

1 year ago

6.1.1-pre.2721

12 months ago

6.1.1-pre.2727

12 months ago

6.0.3-pre.2627

1 year ago

6.3.1-pre.2965

9 months ago

6.0.3-pre.2634

1 year ago

6.0.3-pre.2638

1 year ago

6.0.3-pre.2651

1 year ago

6.0.3-pre.2653

1 year ago

6.0.3-pre.2654

1 year ago

6.3.1-pre.2986

8 months ago

6.0.3-pre.2646

1 year ago

6.0.3-pre.2647

1 year ago

6.0.3-pre.2649

1 year ago

6.3.1-pre.2997

8 months ago

6.3.1-pre.2999

8 months ago

6.0.2-pre.2581

1 year ago

6.0.3-pre.2602

1 year ago

6.0.3-pre.2622

1 year ago

6.1.1-pre.2739

11 months ago

6.0.3-pre.2617

1 year ago

6.0.3-pre.2618

1 year ago

6.1.1-pre.2737

11 months ago

6.0.3-pre.2619

1 year ago

6.0.3-pre.2595

1 year ago

6.0.3-pre.2596

1 year ago

6.0.3-pre.2591

1 year ago

6.3.1-pre.3000

8 months ago

6.0.3-pre.2587

1 year ago

6.3.1-pre.3003

8 months ago

6.3.1-pre.3001

8 months ago

6.3.1-pre.3019

8 months ago

6.3.1-pre.3016

8 months ago

6.1.0

12 months ago

6.3.1-pre.3014

8 months ago

6.3.1-pre.3012

8 months ago

6.3.1-pre.3009

8 months ago

5.8.2-pre.2530

1 year ago

6.3.1-pre.3027

8 months ago

5.8.2-pre.2533

1 year ago

5.8.2-pre.2534

1 year ago

6.3.1-pre.3033

8 months ago

6.0.5-pre.2705

12 months ago

6.2.1-pre.2788

11 months ago

6.3.1-pre.3038

8 months ago

6.3.1-pre.3036

8 months ago

6.0.4-pre.2658

1 year ago

6.2.1-pre.2791

11 months ago

6.2.1-pre.2793

11 months ago

6.2.1-pre.2794

11 months ago

6.2.1-pre.2796

11 months ago

6.0.4-pre.2662

1 year ago

6.0.5-pre.2718

12 months ago

6.0.5-pre.2717

12 months ago

6.0.5-pre.2714

12 months ago

6.2.1-pre.2799

11 months ago

6.3.1-pre.3047

8 months ago

6.3.1-pre.3045

8 months ago

6.3.1-pre.3055

8 months ago

6.3.1-pre.3058

8 months ago

6.3.0

9 months ago

6.3.1-pre.3059

8 months ago

6.2.1-pre.2771

11 months ago

6.2.1-pre.2772

11 months ago

6.2.1-pre.2774

11 months ago

6.2.1-pre.2777

11 months ago

6.2.1-pre.2779

11 months ago

6.2.1-pre.2783

11 months ago

6.2.1-pre.2787

11 months ago

6.2.1-pre.2748

11 months ago

6.2.1-pre.2749

11 months ago

6.2.1-pre.2750

11 months ago

6.2.1-pre.2752

11 months ago

6.2.1-pre.2760

11 months ago

6.2.1-pre.2762

11 months ago

6.2.1-pre.2763

11 months ago

5.8.2-pre.2426

1 year ago

5.8.2-pre.2429

1 year ago

5.8.2-pre.2430

1 year ago

5.8.2-pre.2436

1 year ago

5.8.2-pre.2434

1 year ago

5.8.2-pre.2420

1 year ago

5.8.2-pre.2417

1 year ago

5.8.2-pre.2416

1 year ago

5.8.2-pre.2415

1 year ago

5.8.2-pre.2411

1 year ago

5.8.2-pre.2409

1 year ago

5.8.2-pre.2406

1 year ago

5.8.2-pre.2405

1 year ago

5.8.2-pre.2402

1 year ago

5.8.2-pre.2383

1 year ago

5.8.2-pre.2388

1 year ago

5.8.2-pre.2389

1 year ago

5.8.2-pre.2387

1 year ago

5.8.2-pre.2380

1 year ago

5.8.2-pre.2381

1 year ago

5.8.2-pre.2374

1 year ago

5.8.2-pre.2371

1 year ago

5.8.2-pre.2377

1 year ago

5.8.2-pre.2379

1 year ago

5.8.2-pre.2396

1 year ago

5.8.2-pre.2393

1 year ago

5.8.2-pre.2394

1 year ago

5.8.2-pre.2391

1 year ago

5.8.2-pre.2363

1 year ago

5.8.2-pre.2360

1 year ago

5.8.2-pre.2361

1 year ago

5.8.2-pre.2366

1 year ago

5.8.2-pre.2365

1 year ago

5.8.2-pre.2368

1 year ago

5.8.2-pre.2369

1 year ago

5.8.2-pre.2358

1 year ago

5.8.2-pre.2357

1 year ago

5.8.2-pre.2355

1 year ago

5.8.2-pre.2309

1 year ago

5.8.2-pre.2307

1 year ago

5.8.2-pre.2324

1 year ago

5.8.2-pre.2311

1 year ago

5.8.2-pre.2315

1 year ago

5.8.2-pre.2316

1 year ago

5.8.2-pre.2313

1 year ago

5.8.2-pre.2318

1 year ago

5.8.2-pre.2341

1 year ago

5.8.2-pre.2345

1 year ago

5.8.2-pre.2346

1 year ago

5.8.2-pre.2339

1 year ago

5.8.2-pre.2352

1 year ago

5.8.2-pre.2301

1 year ago

5.8.2-pre.2303

1 year ago

5.8.1

1 year ago

5.8.1-pre.2296

1 year ago

5.8.1-pre.2255

1 year ago

5.8.1-pre.2251

1 year ago

5.8.1-pre.2249

1 year ago

5.8.1-pre.2290

1 year ago

5.8.1-pre.2291

1 year ago

5.8.1-pre.2292

1 year ago

5.8.1-pre.2279

1 year ago

5.8.1-pre.2272

1 year ago

5.8.1-pre.2268

1 year ago

5.8.1-pre.2263

1 year ago

5.8.1-pre.2248

1 year ago

5.8.1-pre.2246

1 year ago

5.8.1-pre.2242

1 year ago

5.8.1-pre.2238

1 year ago

5.8.1-pre.2237

1 year ago

5.8.1-pre.2233

1 year ago

5.8.1-pre.2234

1 year ago

5.8.1-pre.2228

1 year ago

5.8.1-pre.2224

1 year ago

5.8.1-pre.2212

1 year ago

5.8.1-pre.2221

1 year ago

5.8.1-pre.2222

1 year ago

5.6.1-pre.1812

2 years ago

5.6.1-pre.1814

2 years ago

5.6.1-pre.1816

2 years ago

5.6.1-pre.1818

2 years ago

5.8.1-pre.2211

1 year ago

5.6.1-pre.1820

2 years ago

5.6.1-pre.1822

2 years ago

5.8.1-pre.2209

1 year ago

5.6.1-pre.1809

2 years ago

5.6.1-pre.1811

2 years ago

5.6.1-pre.1889

2 years ago

5.6.1-pre.1891

2 years ago

5.6.1-pre.1893

2 years ago

5.6.1-pre.1895

2 years ago

5.6.1-pre.1880

2 years ago

5.6.1-pre.1881

2 years ago

5.6.1-pre.1869

2 years ago

5.6.1-pre.1870

2 years ago

5.6.1-pre.1871

2 years ago

5.6.1-pre.1877

2 years ago

5.6.1-pre.1857

2 years ago

5.6.1-pre.1862

2 years ago

5.6.1-pre.1864

2 years ago

5.6.1-pre.1846

2 years ago

5.6.1-pre.1851

2 years ago

5.6.1-pre.1852

2 years ago

5.6.1-pre.1855

2 years ago

5.6.1-pre.1838

2 years ago

5.6.1-pre.1839

2 years ago

5.6.1-pre.1844

2 years ago

5.6.1-pre.1824

2 years ago

5.6.1-pre.1830

2 years ago

5.6.1-pre.1832

2 years ago

5.6.1-pre.1833

2 years ago

5.8.0

1 year ago

5.7.3-pre.2205

1 year ago

5.7.3-pre.2204

1 year ago

5.6.1-pre.2069

2 years ago

5.6.1-pre.2065

2 years ago

5.6.1-pre.2064

2 years ago

5.6.1-pre.2063

2 years ago

5.6.1-pre.2075

2 years ago

5.6.1-pre.2049

2 years ago

5.6.1-pre.2043

2 years ago

5.6.1-pre.2040

2 years ago

5.6.1-pre.2058

2 years ago

5.6.1-pre.2051

2 years ago

5.6.1-pre.2029

2 years ago

5.6.1-pre.2027

2 years ago

5.6.1-pre.2025

2 years ago

5.6.1-pre.2023

2 years ago

5.6.1-pre.2021

2 years ago

5.6.1-pre.2033

2 years ago

5.6.1-pre.2009

2 years ago

5.6.1-pre.2005

2 years ago

5.6.1-pre.2014

2 years ago

5.6.1-pre.1934

2 years ago

5.6.1-pre.1937

2 years ago

5.6.1-pre.1938

2 years ago

5.6.1-pre.1943

2 years ago

5.6.1-pre.1930

2 years ago

5.7.1-pre.2081

2 years ago

5.6.1-pre.1915

2 years ago

5.7.1-pre.2089

2 years ago

5.7.1-pre.2086

2 years ago

5.6.1-pre.1920

2 years ago

5.6.1-pre.1901

2 years ago

5.6.1-pre.1902

2 years ago

5.6.1-pre.1903

2 years ago

5.6.1-pre.1905

2 years ago

5.6.1-pre.1908

2 years ago

5.7.1-pre.2078

2 years ago

5.7.1-pre.2079

2 years ago

5.7.1-pre.2076

2 years ago

5.7.1-pre.2091

2 years ago

5.6.1-pre.1994

2 years ago

5.6.1-pre.1996

2 years ago

5.6.1-pre.1977

2 years ago

5.6.1-pre.1979

2 years ago

5.6.1-pre.1986

2 years ago

5.6.1-pre.1987

2 years ago

5.6.1-pre.1966

2 years ago

5.6.1-pre.1968

2 years ago

5.7.2-pre.2101

2 years ago

5.6.1-pre.1955

2 years ago

5.6.1-pre.1945

2 years ago

5.6.1-pre.1954

2 years ago

5.7.3-pre.2119

2 years ago

5.7.3-pre.2113

2 years ago

5.7.3-pre.2123

2 years ago

5.7.3-pre.2139

2 years ago

5.7.2-pre.2092

2 years ago

5.7.2-pre.2094

2 years ago

5.7.3-pre.2136

2 years ago

5.7.3-pre.2135

2 years ago

5.7.2-pre.2096

2 years ago

5.7.3-pre.2148

2 years ago

5.7.3-pre.2142

2 years ago

5.7.3-pre.2141

2 years ago

5.7.3-pre.2146

2 years ago

5.7.3-pre.2144

2 years ago

5.7.3-pre.2109

2 years ago

5.7.3-pre.2194

1 year ago

5.7.3-pre.2193

1 year ago

5.7.3-pre.2192

1 year ago

5.7.3-pre.2153

2 years ago

5.7.3-pre.2157

2 years ago

5.7.3-pre.2156

2 years ago

5.7.3-pre.2164

1 year ago

5.7.3-pre.2169

1 year ago

5.7.3-pre.2167

1 year ago

5.7.3-pre.2161

1 year ago

5.7.3-pre.2174

1 year ago

5.7.3-pre.2173

1 year ago

5.7.3-pre.2172

1 year ago

5.7.3-pre.2171

1 year ago

5.7.3-pre.2185

1 year ago

5.7.3-pre.2184

1 year ago

5.7.3-pre.2188

1 year ago

5.7.2

2 years ago

5.7.1

2 years ago

5.7.0

2 years ago

5.6.1-pre.1806

2 years ago

5.6.1-pre.1801

2 years ago

5.6.1-pre.1800

2 years ago

5.6.1-pre.1790

2 years ago

5.6.1-pre.1794

2 years ago

5.6.1-pre.1795

2 years ago

5.6.1-pre.1799

2 years ago

5.6.1-pre.1782

2 years ago

5.5.1-pre.1771

2 years ago

5.5.1-pre.1767

2 years ago

5.5.1-pre.1769

2 years ago

5.6.0

2 years ago

5.5.1-pre.1762

2 years ago

5.5.1-pre.1763

2 years ago

5.5.1-pre.1760

2 years ago

5.5.1-pre.1752

2 years ago

5.5.1-pre.1756

2 years ago

5.5.1-pre.1750

2 years ago

5.5.1-pre.1745

2 years ago

5.5.1-pre.1741

2 years ago

5.5.1-pre.1735

2 years ago

5.5.1-pre.1737

2 years ago

5.5.1-pre.1731

2 years ago

5.5.1-pre.1732

2 years ago

5.5.1-pre.1726

2 years ago

5.5.1-pre.1727

2 years ago

5.5.1-pre.1729

2 years ago

5.5.1-pre.1720

2 years ago

5.5.1-pre.1717

2 years ago

5.5.1-pre.1709

2 years ago

5.5.1-pre.1705

2 years ago

5.5.1-pre.1704

2 years ago

5.5.1-pre.1702

2 years ago

5.5.1-pre.1701

2 years ago

5.5.1-pre.1690

2 years ago

5.5.1-pre.1692

2 years ago

5.5.1-pre.1685

2 years ago

5.5.1-pre.1683

2 years ago

5.5.1-pre.1684

2 years ago

5.5.1-pre.1675

2 years ago

5.5.1-pre.1681

2 years ago

5.5.1-pre.1682

2 years ago

5.5.1-pre.1665

2 years ago

5.5.1-pre.1659

2 years ago

5.5.1-pre.1651

2 years ago

5.5.1-pre.1649

2 years ago

5.5.0

2 years ago

5.4.1-pre.1629

2 years ago

5.4.1-pre.1635

2 years ago

5.4.1-pre.1634

2 years ago

5.4.1-pre.1638

2 years ago

5.4.1-pre.1627

2 years ago

5.4.1-pre.1620

2 years ago

5.4.1-pre.1608

2 years ago

5.4.1-pre.1607

2 years ago

5.4.1-pre.1616

2 years ago

5.4.1-pre.1604

2 years ago

5.4.1-pre.1596

2 years ago

5.4.1-pre.1592

2 years ago

5.4.1-pre.1586

2 years ago

5.4.1-pre.1571

2 years ago

5.4.1-pre.1578

2 years ago

5.4.1-pre.1579

2 years ago

5.4.1-pre.1581

2 years ago

5.4.1-pre.1567

2 years ago

5.4.1-pre.1565

2 years ago

5.4.1-pre.1552

2 years ago

5.4.1-pre.1550

2 years ago

5.4.1-pre.1553

2 years ago

5.4.1-pre.1561

2 years ago

5.4.1-pre.1560

2 years ago

5.4.1-pre.1548

2 years ago

5.4.1-pre.1537

2 years ago

5.4.1-pre.1535

2 years ago

5.4.1-pre.1539

2 years ago

5.4.1-pre.1529

2 years ago

5.4.1-pre.1530

2 years ago

5.4.1-pre.1532

2 years ago

5.4.1-pre.1523

2 years ago

5.4.1-pre.1513

2 years ago

5.4.1-pre.1519

2 years ago

5.4.1-pre.1518

2 years ago

5.4.1-pre.1517

2 years ago

5.4.0

2 years ago

5.3.3-pre.1500

2 years ago

5.3.3-pre.1498

2 years ago

5.3.3-pre.1491

2 years ago

5.3.3-pre.1475

2 years ago

5.3.3-pre.1476

2 years ago

5.3.3-pre.1477

2 years ago

5.3.3-pre.1470

2 years ago

5.3.3-pre.1468

2 years ago

5.3.3-pre.1456

2 years ago

5.3.3-pre.1450

2 years ago

5.3.3-pre.1442

2 years ago

5.3.3-pre.1443

2 years ago

5.3.3-pre.1444

2 years ago

5.3.3-pre.1432

2 years ago

5.3.3-pre.1429

2 years ago

5.3.3-pre.1427

2 years ago

5.3.3-pre.1431

2 years ago

5.3.3-pre.1424

2 years ago

5.3.3-pre.1425

2 years ago

5.3.3-pre.1419

2 years ago

5.3.3-pre.1420

2 years ago

5.3.3-pre.1421

2 years ago

5.3.3-pre.1409

2 years ago

5.3.3-pre.1410

2 years ago

5.3.3-pre.1395

2 years ago

5.3.3-pre.1399

2 years ago

5.3.3-pre.1404

2 years ago

5.3.3-pre.1400

2 years ago

5.3.3-pre.1401

2 years ago

5.3.3-pre.1383

2 years ago

5.3.3-pre.1384

2 years ago

5.3.3-pre.1386

2 years ago

5.3.3-pre.1389

2 years ago

5.3.3-pre.1372

2 years ago

5.3.3-pre.1370

2 years ago

5.3.3-pre.1376

2 years ago

5.3.3-pre.1379

2 years ago

5.3.3-pre.1360

2 years ago

5.3.3-pre.1359

2 years ago

5.3.3-pre.1355

2 years ago

5.3.3-pre.1352

2 years ago

5.3.3-pre.1353

2 years ago

5.3.3-pre.1357

2 years ago

5.3.3-pre.1343

2 years ago

5.3.3-pre.1347

2 years ago

5.3.3-pre.1345

2 years ago

5.3.3-pre.1331

2 years ago

5.3.3-pre.1337

2 years ago

5.3.3-pre.1329

2 years ago

5.3.3-pre.1326

2 years ago

5.3.3-pre.1324

2 years ago

5.3.3-pre.1319

2 years ago

5.3.3-pre.1317

2 years ago

5.3.3-pre.1321

2 years ago

5.3.3-pre.1314

2 years ago

5.3.3-pre.1315

2 years ago

5.3.3-pre.1310

2 years ago

5.3.3-pre.1307

2 years ago

5.3.3-pre.1301

2 years ago

5.3.3-pre.1296

2 years ago

5.3.3-pre.1291

2 years ago

5.3.3-pre.1283

2 years ago

5.3.3-pre.1286

2 years ago

5.3.3-pre.1279

2 years ago

5.3.3-pre.1275

2 years ago

5.3.3-pre.1272

2 years ago

5.3.3-pre.1268

2 years ago

5.3.3-pre.1263

2 years ago

5.3.3-pre.1261

2 years ago

5.3.3-pre.1251

2 years ago

5.3.3-pre.1256

2 years ago

5.3.3-pre.1253

2 years ago

5.3.3-pre.1247

2 years ago

5.3.3-pre.1240

2 years ago

5.3.3-pre.1237

2 years ago

5.3.2

2 years ago

5.3.3-pre.1229

2 years ago

5.3.3-pre.1231

2 years ago

5.3.2-pre.1219

2 years ago

5.3.2-pre.1225

2 years ago

5.3.2-pre.1223

2 years ago

5.3.2-pre.1214

2 years ago

5.3.2-pre.1213

2 years ago

5.3.1-pre.1194

2 years ago

5.1.1-pre.1001

2 years ago

5.1.0

3 years ago

5.1.1-pre.1003

2 years ago

5.3.1-pre.1199

2 years ago

5.0.3-pre.880

3 years ago

5.0.3-pre.882

3 years ago

5.3.1-pre.1182

2 years ago

5.1.1-pre.1012

2 years ago

5.1.1-pre.1013

2 years ago

5.3.1-pre.1188

2 years ago

5.0.3-pre.894

3 years ago

5.0.3-pre.896

3 years ago

5.1.1-pre.1006

2 years ago

5.0.3-pre.898

3 years ago

5.0.3-pre.859

3 years ago

5.3.1-pre.1173

2 years ago

5.0.3-pre.863

3 years ago

5.0.3-pre.865

3 years ago

5.0.3-pre.864

3 years ago

5.0.3-pre.867

3 years ago

5.0.3-pre.866

3 years ago

5.0.3-pre.868

3 years ago

5.3.2-pre.1210

2 years ago

5.0.3-pre.872

3 years ago

5.0.3-pre.874

3 years ago

5.0.3-pre.873

3 years ago

5.0.3-pre.876

3 years ago

5.0.3-pre.878

3 years ago

5.0.3-pre.857

3 years ago

5.2.1-pre.1081

2 years ago

5.2.1-pre.1079

2 years ago

5.2.1-pre.1094

2 years ago

5.2.1-pre.1092

2 years ago

5.2.1-pre.1090

2 years ago

5.2.1-pre.1159

2 years ago

5.2.1-pre.1161

2 years ago

5.2.1-pre.1168

2 years ago

5.2.1-pre.1166

2 years ago

5.2.1-pre.1156

2 years ago

5.2.1-pre.1170

2 years ago

5.2.1-pre.1117

2 years ago

5.2.1-pre.1120

2 years ago

5.2.1-pre.1108

2 years ago

5.2.1-pre.1109

2 years ago

5.2.1-pre.1111

2 years ago

5.2.1-pre.1139

2 years ago

5.2.1-pre.1147

2 years ago

5.2.1-pre.1143

2 years ago

5.2.1-pre.1141

2 years ago

5.2.1-pre.1129

2 years ago

5.2.1-pre.1126

2 years ago

5.2.1-pre.1127

2 years ago

5.2.1-pre.1133

2 years ago

5.2.1-pre.1134

2 years ago

5.1.1-pre.1045

2 years ago

5.1.1-pre.1046

2 years ago

5.1.1-pre.1039

2 years ago

5.1.1-pre.1052

2 years ago

5.1.1-pre.1048

2 years ago

5.1.1-pre.1020

2 years ago

5.1.1-pre.1023

2 years ago

5.1.1-pre.1025

2 years ago

5.2.1-pre.1102

2 years ago

5.1.1-pre.1015

2 years ago

5.2.1-pre.1101

2 years ago

5.1.1-pre.1018

2 years ago

5.1.1-pre.1031

2 years ago

5.1.1-pre.1035

2 years ago

5.1.1-pre.1028

2 years ago

5.1.1-pre.956

2 years ago

5.1.1-pre.952

2 years ago

5.1.1-pre.954

2 years ago

5.1.1-pre.953

2 years ago

5.1.1-pre.939

2 years ago

5.1.1-pre.944

2 years ago

5.1.1-pre.941

2 years ago

5.1.1-pre.926

2 years ago

5.1.1-pre.936

2 years ago

5.1.1-pre.916

3 years ago

5.1.1-pre.915

3 years ago

5.1.1-pre.918

3 years ago

5.1.1-pre.922

3 years ago

5.1.1-pre.924

2 years ago

5.1.1-pre.999

2 years ago

5.1.1-pre.997

2 years ago

5.1.1-pre.989

2 years ago

5.1.1-pre.987

2 years ago

5.1.1-pre.986

2 years ago

5.2.0

2 years ago

5.1.1-pre.977

2 years ago

5.1.1-pre.966

2 years ago

5.1.1-pre.913

3 years ago

5.1.1-pre.910

3 years ago

5.3.1-pre.1206

2 years ago

5.0.3-pre.903

3 years ago

5.0.3-pre.905

3 years ago

5.3.1-pre.1200

2 years ago

5.3.1-pre.1203

2 years ago

5.2.1-pre.1069

2 years ago

5.2.1-pre.1067

2 years ago

5.2.1-pre.1058

2 years ago

5.3.1

2 years ago

5.3.0

2 years ago

5.0.3-pre.850

3 years ago

5.0.3-pre.838

3 years ago

5.0.3-pre.840

3 years ago

5.0.3-pre.842

3 years ago

5.0.3-pre.844

3 years ago

5.0.3-pre.846

3 years ago

5.0.3-pre.829

3 years ago

5.0.3-pre.831

3 years ago

5.0.3-pre.834

3 years ago

5.0.3-pre.836

3 years ago

5.0.1-pre.815

3 years ago

5.0.1-pre.813

3 years ago

5.0.2

3 years ago

5.0.1

3 years ago

5.0.0

3 years ago

4.4.1

3 years ago

4.4.1-pre.693

3 years ago

5.0.3-pre.822

3 years ago

5.0.3-pre.827

3 years ago

5.0.3-pre.826

3 years ago

4.4.1-pre.686

3 years ago

4.5.1-pre.801

3 years ago

4.5.1-pre.810

3 years ago

4.5.1-pre.804

3 years ago

4.4.2-pre.760

3 years ago

4.4.2-pre.759

3 years ago

4.4.2-pre.742

3 years ago

4.4.2-pre.738

3 years ago

4.4.2-pre.739

3 years ago

4.4.2-pre.736

3 years ago

4.5.1-pre.781

3 years ago

4.5.1-pre.789

3 years ago

4.4.2-pre.735

3 years ago

4.4.2-pre.732

3 years ago

4.5.1-pre.788

3 years ago

4.4.2-pre.733

3 years ago

4.5.1-pre.784

3 years ago

4.4.2-pre.727

3 years ago

4.5.1-pre.798

3 years ago

4.5.1-pre.797

3 years ago

4.4.2-pre.717

3 years ago

4.4.2-pre.715

3 years ago

4.4.2-pre.712

3 years ago

4.5.1-pre.771

3 years ago

4.5.1-pre.779

3 years ago

4.5.1-pre.777

3 years ago

4.5.1-pre.774

3 years ago

4.5.0

3 years ago

4.5.1-pre.769

3 years ago

5.0.2-pre.818

3 years ago

5.0.2-pre.819

3 years ago

4.1.1-pre.556

3 years ago

4.1.1-pre.557

3 years ago

4.1.1-pre.558

3 years ago

4.1.1-pre.553

3 years ago

4.1.1-pre.545

3 years ago

4.1.1-pre.547

3 years ago

4.1.1-pre.549

3 years ago

4.1.1-pre.541

3 years ago

4.1.1-pre.544

3 years ago

4.1.1-pre.538

3 years ago

4.1.1-pre.539

3 years ago

4.1.1-pre.602

3 years ago

4.1.1-pre.604

3 years ago

4.1.1-pre.606

3 years ago

4.2.1-pre.619

3 years ago

4.2.1-pre.625

3 years ago

4.2.1-pre.621

3 years ago

4.4.0

3 years ago

4.3.2-pre.680

3 years ago

4.3.2-pre.681

3 years ago

4.3.1

3 years ago

4.3.0

3 years ago

4.3.2-pre.666

3 years ago

4.3.2-pre.668

3 years ago

4.3.2-pre.667

3 years ago

4.3.2-pre.662

3 years ago

4.3.2-pre.661

3 years ago

4.3.2-pre.660

3 years ago

4.3.2-pre.677

3 years ago

4.3.2-pre.674

3 years ago

4.3.2-pre.678

3 years ago

4.3.2-pre.671

3 years ago

4.2.0

3 years ago

4.3.1-pre.632

3 years ago

4.2.1-pre.609

3 years ago

4.2.1-pre.615

3 years ago

4.2.1-pre.617

3 years ago

4.2.1-pre.611

3 years ago

4.2.1-pre.613

3 years ago

4.1.1-pre.591

3 years ago

4.1.1-pre.595

3 years ago

4.1.1-pre.597

3 years ago

4.1.1-pre.598

3 years ago

4.1.1-pre.599

3 years ago

4.1.1-pre.580

3 years ago

4.1.1-pre.586

3 years ago

4.1.1-pre.587

3 years ago

4.1.1-pre.588

3 years ago

4.1.1-pre.576

3 years ago

4.1.1-pre.562

3 years ago

4.1.1-pre.534

3 years ago

4.1.1-pre.531

3 years ago

4.1.1-pre.523

3 years ago

4.1.1-pre.525

3 years ago

4.1.1-pre.526

3 years ago

4.1.1-pre.528

3 years ago

4.1.1-pre.509

3 years ago

4.1.1-pre.515

3 years ago

4.1.1-pre.518

3 years ago

4.1.1-pre.519

3 years ago

4.1.1-pre.511

3 years ago

4.1.1-pre.506

3 years ago

4.1.1-pre.508

3 years ago

4.1.0

3 years ago

4.0.4-pre.489

3 years ago

4.0.4-pre.493

3 years ago

4.0.4-pre.494

3 years ago

4.0.4-pre.496

3 years ago

4.0.3

3 years ago

4.0.4-pre.475

3 years ago

4.0.4-pre.477

3 years ago

4.0.4-pre.479

3 years ago

4.0.4-pre.480

3 years ago

4.0.4-pre.483

3 years ago

4.0.4-pre.485

3 years ago

4.0.3-pre.441

3 years ago

4.0.3-pre.440

3 years ago

4.0.3-pre.452

3 years ago

4.0.3-pre.454

3 years ago

4.0.3-pre.458

3 years ago

4.0.3-pre.459

3 years ago

4.0.3-pre.464

3 years ago

4.0.3-pre.460

3 years ago

4.0.3-pre.461

3 years ago

4.0.3-pre.462

3 years ago

4.0.3-pre.416

3 years ago

4.0.3-pre.418

3 years ago

4.0.3-pre.415

3 years ago

4.0.3-pre.421

3 years ago

4.0.3-pre.427

3 years ago

4.0.3-pre.424

3 years ago

4.0.3-pre.430

3 years ago

4.0.3-pre.433

3 years ago

4.0.3-pre.434

3 years ago

4.0.3-pre.437

3 years ago

4.0.2

3 years ago

4.0.3-pre.389

3 years ago

4.0.3-pre.390

3 years ago

4.0.3-pre.392

3 years ago

4.0.3-pre.397

3 years ago

4.0.3-pre.399

3 years ago

4.0.2-pre.339

3 years ago

4.0.3-pre.405

3 years ago

4.0.3-pre.406

3 years ago

4.0.3-pre.401

3 years ago

4.0.3-pre.364

3 years ago

4.0.3-pre.365

3 years ago

4.0.3-pre.367

3 years ago

4.0.3-pre.360

3 years ago

4.0.3-pre.371

3 years ago

4.0.3-pre.379

3 years ago

4.0.3-pre.348

3 years ago

4.0.3-pre.353

3 years ago

4.0.3-pre.354

3 years ago

4.0.3-pre.350

3 years ago

4.0.3-pre.357

3 years ago

4.0.1

3 years ago

4.0.2-pre.259

3 years ago

4.0.2-pre.253

3 years ago

4.0.2-pre.256

3 years ago

4.0.2-pre.311

3 years ago

4.0.2-pre.313

3 years ago

4.0.2-pre.312

3 years ago

4.0.2-pre.328

3 years ago

4.0.2-pre.327

3 years ago

4.0.2-pre.320

3 years ago

4.0.2-pre.322

3 years ago

4.0.2-pre.321

3 years ago

4.0.2-pre.323

3 years ago

4.0.2-pre.336

3 years ago

4.0.2-pre.335

3 years ago

4.0.1-pre.245

3 years ago

4.0.1-pre.248

3 years ago

4.0.1-pre.244

3 years ago

4.0.1-pre.238

3 years ago

4.0.2-pre.260

3 years ago

4.0.2-pre.270

3 years ago

4.0.2-pre.271

3 years ago

4.0.2-pre.275

3 years ago

3.3.2-pre.69

4 years ago

3.3.2-pre.67

4 years ago

3.3.2-pre.64

4 years ago

4.0.0-pre.1

4 years ago

3.3.2-pre.75

4 years ago

3.3.2-pre.71

4 years ago

3.4.1-pre.189

3 years ago

3.4.1-pre.180

4 years ago

3.4.1-pre.159

4 years ago

3.4.1-pre.156

4 years ago

3.4.1-pre.151

4 years ago

3.4.1-pre.149

4 years ago

3.4.1-pre.146

4 years ago

3.4.1-pre.176

4 years ago

3.4.1-pre.175

4 years ago

3.4.1-pre.174

4 years ago

3.4.1-pre.171

4 years ago

4.0.1-pre.224

3 years ago

4.0.1-pre.223

3 years ago

4.0.1-pre.226

3 years ago

4.0.1-pre.220

3 years ago

3.4.1-pre.161

4 years ago

3.4.1-pre.163

4 years ago

4.0.1-pre.236

3 years ago

4.0.1-pre.231

3 years ago

4.0.1-pre.232

3 years ago

3.4.1-pre.117

4 years ago

3.4.1-pre.110

4 years ago

3.4.1-pre.112

4 years ago

4.0.1-pre.206

3 years ago

4.0.1-pre.208

3 years ago

4.0.1-pre.204

3 years ago

3.4.0

4 years ago

3.4.1-pre.107

4 years ago

3.4.1-pre.109

4 years ago

3.4.1-pre.105

4 years ago

3.4.1-pre.102

4 years ago

3.4.1-pre.101

4 years ago

4.0.1-pre.219

3 years ago

4.0.1-pre.212

3 years ago

4.0.1-pre.214

3 years ago

3.4.1-pre.139

4 years ago

3.4.1-pre.133

4 years ago

3.4.1-pre.132

4 years ago

3.4.1-pre.122

4 years ago

3.4.1-pre.120

4 years ago

3.4.1-pre.77

4 years ago

3.4.1-pre.94

4 years ago

3.4.1-pre.98

4 years ago

3.4.1-pre.96

4 years ago

3.4.1-pre.95

4 years ago

3.4.1-pre.82

4 years ago

3.4.1-pre.89

4 years ago

3.4.1-pre.88

4 years ago

3.4.1-pre.87

4 years ago

3.4.1-pre.85

4 years ago

3.3.2-pre.38

4 years ago

3.3.2-pre.48

4 years ago

3.3.2-pre.50

4 years ago

3.3.1-pre.1173

4 years ago

3.3.1-pre.1175

4 years ago

3.3.1-pre.1177

4 years ago

3.3.2-pre.59

4 years ago

3.3.2-pre.62

4 years ago

4.0.0-pre.0

4 years ago

3.3.2-pre.13

4 years ago

3.3.2-pre.12

4 years ago

3.3.2-pre.25

4 years ago

3.3.2-pre.24

4 years ago

3.3.2-pre.29

4 years ago

3.3.2-pre.33

4 years ago

3.3.2-pre.31

4 years ago

3.3.2-pre.30

4 years ago

3.3.1

4 years ago

3.3.2-pre.1193

4 years ago

3.3.2-pre.1180

4 years ago

3.3.2-pre.1188

4 years ago

3.3.2-pre.1187

4 years ago

3.3.2-pre.1184

4 years ago

3.3.2-pre.2

4 years ago

3.3.2-pre.9

4 years ago

3.3.2-pre.5

4 years ago

3.3.2-pre.1208

4 years ago

3.3.2-pre.1211

4 years ago

3.2.1-pre.1090

4 years ago

3.2.1-pre.1094

4 years ago

3.2.1-pre.1098

4 years ago

3.2.1-pre.1159

4 years ago

3.2.1-pre.1041

4 years ago

3.2.1-pre.1163

4 years ago

3.2.1-pre.1160

4 years ago

3.2.1-pre.1044

4 years ago

3.2.1-pre.1149

4 years ago

3.2.1-pre.1147

4 years ago

3.2.1-pre.1155

4 years ago

3.2.1-pre.1140

4 years ago

3.2.1-pre.1141

4 years ago

3.2.1-pre.1144

4 years ago

3.2.1-pre.1143

4 years ago

3.2.1-pre.1127

4 years ago

3.2.1-pre.1130

4 years ago

3.2.1-pre.1134

4 years ago

3.2.1-pre.1131

4 years ago

3.2.1-pre.1081

4 years ago

3.2.1-pre.1082

4 years ago

3.2.1-pre.1086

4 years ago

3.2.1-pre.1084

4 years ago

3.2.1-pre.1073

4 years ago

3.2.1-pre.1067

4 years ago

3.2.1-pre.1068

4 years ago

3.2.1-pre.1168

4 years ago

3.2.1-pre.1047

4 years ago

3.2.1-pre.1048

4 years ago

3.2.1-pre.1052

4 years ago

3.2.1-pre.1053

4 years ago

3.2.1-pre.1055

4 years ago

3.2.1-pre.1115

4 years ago

3.2.1-pre.1118

4 years ago

3.2.1-pre.1123

4 years ago

3.2.1-pre.1120

4 years ago

3.2.1-pre.1121

4 years ago

3.2.1-pre.1104

4 years ago

3.2.1-pre.1105

4 years ago

3.2.1-pre.1102

4 years ago

3.2.1-pre.1108

4 years ago

3.2.1-pre.1111

4 years ago

3.2.1-pre.1112

4 years ago

3.2.1-pre.1101

4 years ago

3.2.1-pre.986

4 years ago

3.2.1-pre.977

4 years ago

3.2.1-pre.1039

4 years ago

3.2.1-pre.1036

4 years ago

3.2.1-pre.1037

4 years ago

3.2.1-pre.1028

4 years ago

3.2.1-pre.1025

4 years ago

3.2.1-pre.1030

4 years ago

3.2.1-pre.1033

4 years ago

3.2.1-pre.1016

4 years ago

3.2.1-pre.1015

4 years ago

3.2.1-pre.1018

4 years ago

3.2.1-pre.1020

4 years ago

3.2.1-pre.1012

4 years ago

3.2.1-pre.1010

4 years ago

3.1.15-pre.803

4 years ago

3.2.0

4 years ago

3.2.1-pre.895

4 years ago

3.1.15-pre.846

4 years ago

3.1.15-pre.844

4 years ago

3.2.1-pre.940

4 years ago

3.1.15-pre.838

4 years ago

3.2.1-pre.947

4 years ago

3.2.1-pre.946

4 years ago

3.2.1-pre.944

4 years ago

3.1.15-pre.835

4 years ago

3.1.15-pre.833

4 years ago

3.1.15-pre.834

4 years ago

3.1.15-pre.831

4 years ago

3.1.15-pre.830

4 years ago

3.2.1-pre.950

4 years ago

3.1.15-pre.829

4 years ago

3.2.1-pre.958

4 years ago

3.2.1-pre.957

4 years ago

3.2.1-pre.956

4 years ago

3.2.1-pre.953

4 years ago

3.1.15-pre.822

4 years ago

3.1.15-pre.818

4 years ago

3.2.1-pre.967

4 years ago

3.2.1-pre.963

4 years ago

3.1.15-pre.813

4 years ago

3.1.15-pre.814

4 years ago

3.1.15-pre.810

4 years ago

3.2.1-pre.972

4 years ago

3.2.1-pre.970

4 years ago

3.1.15-pre.805

4 years ago

3.1.15-pre.761

4 years ago

3.1.15-pre.881

4 years ago

3.1.15-pre.769

4 years ago

3.1.15-pre.767

4 years ago

3.1.15-pre.889

4 years ago

3.1.15-pre.885

4 years ago

3.1.15-pre.871

4 years ago

3.1.15-pre.751

4 years ago

3.1.15-pre.759

4 years ago

3.1.15-pre.877

4 years ago

3.1.15-pre.757

4 years ago

3.1.15-pre.754

4 years ago

3.1.15-pre.876

4 years ago

3.1.15-pre.752

4 years ago

3.1.15-pre.874

4 years ago

3.1.15-pre.749

4 years ago

3.1.15-pre.860

4 years ago

3.1.15-pre.861

4 years ago

3.1.15-pre.867

4 years ago

3.1.15-pre.865

4 years ago

3.1.15-pre.862

4 years ago

3.2.1-pre.924

4 years ago

3.2.1-pre.927

4 years ago

3.1.15-pre.857

4 years ago

3.1.15-pre.853

4 years ago

3.1.15-pre.852

4 years ago

3.1.15-pre.849

4 years ago

3.2.1-pre.933

4 years ago

3.1.15-pre.790

4 years ago

3.1.15-pre.791

4 years ago

3.1.15-pre.798

4 years ago

3.1.15-pre.789

4 years ago

3.1.15-pre.891

4 years ago

3.1.15-pre.770

4 years ago

3.1.15-pre.892

4 years ago

3.1.15-pre.771

4 years ago

3.1.15-pre.890

4 years ago

3.1.15-pre.778

4 years ago

3.1.15-pre.693

4 years ago

3.1.15-pre.694

4 years ago

3.1.14-pre.676

4 years ago

3.1.15-pre.692

4 years ago

3.1.15-pre.725

4 years ago

3.1.15-pre.726

4 years ago

3.1.15-pre.722

4 years ago

3.1.15-pre.718

4 years ago

3.1.15-pre.717

4 years ago

3.1.15-pre.712

4 years ago

3.1.15-pre.709

4 years ago

3.1.15-pre.707

4 years ago

3.1.15-pre.701

4 years ago

3.1.13-pre.674

4 years ago

3.1.13-pre.669

4 years ago

3.1.13-pre.667

4 years ago

3.1.13-pre.663

4 years ago

3.1.15-pre.746

4 years ago

3.1.13-pre.661

4 years ago

3.1.15-pre.744

4 years ago

3.1.15-pre.742

4 years ago

3.1.13-pre.658

4 years ago

3.1.13-pre.656

4 years ago

3.1.13-pre.653

4 years ago

3.1.15-pre.735

4 years ago

3.1.13-pre.651

4 years ago

3.1.15-pre.732

4 years ago

3.1.13-pre.650

4 years ago

3.1.15-pre.733

4 years ago

3.1.15-pre.730

4 years ago

3.1.15-pre.684

4 years ago

3.1.15-pre.685

4 years ago

3.1.14

4 years ago

3.1.15-pre.680

4 years ago

3.1.13-pre.648

4 years ago

3.1.13-pre.646

4 years ago

3.1.13-pre.643

4 years ago

3.1.13-pre.642

4 years ago

3.1.13-pre.639

4 years ago

3.1.13-pre.636

4 years ago

3.1.13-pre.633

4 years ago

3.1.12-pre.598

4 years ago

3.1.12-pre.599

4 years ago

3.1.10-pre.592

4 years ago

3.1.10-pre.591

4 years ago

3.1.10-pre.594

4 years ago

3.1.10-pre.590

4 years ago

3.1.12-pre.606

4 years ago

3.1.12-pre.602

4 years ago

3.1.13-pre.0

4 years ago

3.1.10-pre.585

4 years ago

3.1.12-pre.611

4 years ago

3.1.12-pre.616

4 years ago

3.1.12-pre.617

4 years ago

3.1.12-pre.612

4 years ago

3.1.12-pre.613

4 years ago

3.1.12-pre.615

4 years ago

3.1.12-pre.627

4 years ago

3.1.12-pre.623

4 years ago

3.1.12-pre.624

4 years ago

3.1.12

4 years ago

3.1.11-pre.595

4 years ago

3.1.11-pre.597

4 years ago

3.1.10-pre.579

4 years ago

3.1.10-pre.580

4 years ago

3.1.10-pre.582

4 years ago

3.1.10-pre.573

4 years ago

3.1.10-pre.569

4 years ago

3.1.10-pre.563

4 years ago

3.1.10-pre.564

4 years ago

3.1.10-pre.559

4 years ago

3.1.10-pre.558

4 years ago

3.1.10-pre.557

4 years ago

3.1.10-pre.550

4 years ago

3.1.10-pre.552

4 years ago

3.1.10-pre.551

4 years ago

3.1.10-pre.553

4 years ago

3.1.10-pre.549

4 years ago

3.1.10-pre.548

4 years ago

3.1.10-pre.545

4 years ago

3.1.10-pre.546

4 years ago

3.1.10-pre.540

4 years ago

3.1.10-pre.534

4 years ago

3.1.10-pre.533

4 years ago

3.1.10-pre.529

4 years ago

3.1.10-pre.517

4 years ago

3.1.10-pre.513

4 years ago

3.1.10-pre.527

4 years ago

3.1.10-pre.526

4 years ago

3.1.10-pre.523

4 years ago

3.1.10-pre.525

4 years ago

3.1.10-pre.520

4 years ago

3.1.10-pre.509

4 years ago

3.1.10-pre.504

4 years ago

3.1.10-pre.507

4 years ago

3.1.10-pre.495

4 years ago

3.1.10-pre.493

4 years ago

3.1.10-pre.491

4 years ago

3.1.10-pre.484

4 years ago

3.1.10-pre.480

4 years ago

3.1.10-pre.489

4 years ago

3.1.10-pre.479

4 years ago

3.1.10-pre.467

4 years ago

3.1.10-pre.466

4 years ago

3.1.10-pre.464

4 years ago

3.1.10-pre.463

4 years ago

3.1.10-pre.460

4 years ago

3.1.10-pre.457

5 years ago

3.1.10-pre.453

5 years ago

3.1.10-pre.454

5 years ago

3.1.10-pre.448

5 years ago

3.1.10-pre.447

5 years ago

3.1.10-pre.444

5 years ago

3.1.10-pre.451

5 years ago

3.1.10-pre.450

5 years ago

3.1.10-pre.452

5 years ago

3.1.10-pre.440

5 years ago

3.1.10-pre.436

5 years ago

3.1.10-pre.435

5 years ago

3.1.10-pre.434

5 years ago

3.1.10-pre.431

5 years ago

3.1.10-pre.430

5 years ago

3.1.10-pre.433

5 years ago

3.1.10-pre.432

5 years ago

3.1.10-pre.429

5 years ago

3.1.10-pre.417

5 years ago

3.1.10-pre.419

5 years ago

3.1.10-pre.413

5 years ago

3.1.10-pre.415

5 years ago

3.1.10-pre.423

5 years ago

3.1.10-pre.421

5 years ago

3.1.10-pre.412

5 years ago

3.1.10-pre.408

5 years ago

3.1.10-pre.405

5 years ago

3.1.10-pre.397

5 years ago

3.1.10-pre.403

5 years ago

3.1.10-pre.390

5 years ago

3.1.10-pre.388

5 years ago

3.1.10-pre.381

5 years ago

3.1.10-pre.376

5 years ago

3.1.10-pre.378

5 years ago

3.1.10-pre.377

5 years ago

3.1.10-pre.375

5 years ago

3.1.10-pre.352

5 years ago

3.1.10-pre.357

5 years ago

3.1.10-pre.354

5 years ago

3.1.10-pre.355

5 years ago

3.1.10-pre.360

5 years ago

3.1.10-pre.368

5 years ago

3.1.10-pre.365

5 years ago

3.1.10-pre.366

5 years ago

3.1.10-pre.350

5 years ago

3.1.10-pre.347

5 years ago

3.1.10-pre.348

5 years ago

3.1.10-pre.324

5 years ago

3.1.10-pre.339

5 years ago

3.1.10-pre.335

5 years ago

3.1.10-pre.338

5 years ago

3.1.10-pre.331

5 years ago

3.1.10-pre.334

5 years ago

3.1.10-pre.340

5 years ago

3.1.10-pre.342

5 years ago

3.1.10-pre.317

5 years ago

3.1.10-pre.315

5 years ago

3.1.10-pre.314

5 years ago

3.1.10-pre.279

5 years ago

3.1.10-pre.311

5 years ago

3.1.10-pre.284

5 years ago

3.1.10-pre.283

5 years ago

3.1.10-pre.286

5 years ago

3.1.10-pre.282

5 years ago

3.1.10-pre.289

5 years ago

3.1.10-pre.307

5 years ago

3.1.10-pre.306

5 years ago

3.1.10-pre.308

5 years ago

3.1.10-pre.305

5 years ago

3.1.10-pre.295

5 years ago

3.1.10-pre.294

5 years ago

3.1.10-pre.296

5 years ago

3.1.10-pre.291

5 years ago

3.1.10-pre.292

5 years ago

3.1.10-pre.299

5 years ago

3.1.10-pre.298

5 years ago

3.1.10-pre.275

5 years ago

3.1.10-pre.274

5 years ago

3.1.10-pre.276

5 years ago

3.1.10-pre.271

5 years ago

3.1.10-pre.206

5 years ago

3.1.10-pre.251

5 years ago

3.1.10-pre.253

5 years ago

3.1.10-pre.252

5 years ago

3.1.10-pre.258

5 years ago

3.1.10-pre.256

5 years ago

3.1.10-pre.264

5 years ago

3.1.10-pre.260

5 years ago

3.1.10-pre.269

5 years ago

3.1.10-pre.267

5 years ago

3.1.10-pre.231

5 years ago

3.1.10-pre.230

5 years ago

3.1.10-pre.237

5 years ago

3.1.10-pre.236

5 years ago

3.1.10-pre.238

5 years ago

3.1.10-pre.242

5 years ago

3.1.10-pre.248

5 years ago

3.1.10-pre.247

5 years ago

3.1.10-pre.245

5 years ago

3.1.10-pre.219

5 years ago

3.1.10-pre.218

5 years ago

3.1.10-pre.214

5 years ago

3.1.10-pre.217

5 years ago

3.1.10-pre.211

5 years ago

3.1.10-pre.210

5 years ago

3.1.10-pre.212

5 years ago

3.1.10-pre.229

5 years ago

3.1.10-pre.225

5 years ago

3.1.10-pre.205

5 years ago

3.1.10-pre.203

5 years ago

3.1.10-pre.202

5 years ago

3.1.10-pre.201

5 years ago

3.1.10-pre.190

5 years ago

3.1.10-pre.189

5 years ago

3.1.10-pre.175

5 years ago

3.1.10-pre.177

5 years ago

3.1.10-pre.173

5 years ago

3.1.10-pre.172

5 years ago

3.1.10-pre.169

5 years ago

3.1.10-pre.168

5 years ago

3.1.10-pre.164

5 years ago

3.1.10-pre.166

5 years ago

3.1.10-pre.159

5 years ago

3.1.10-pre.158

5 years ago

3.1.10-pre.157

5 years ago

3.1.10-pre.151

5 years ago

3.1.10-pre.153

5 years ago

3.1.10-pre.147

5 years ago

3.1.10-pre.146

5 years ago

3.1.10-pre.140

5 years ago

3.1.10-pre.144

5 years ago

3.1.10-pre.138

5 years ago

3.1.10-pre.137

5 years ago

3.1.10-pre.136

5 years ago

3.1.10-pre.135

5 years ago

3.1.10-pre.128

5 years ago

3.1.10-pre.130

5 years ago

3.1.10-pre.132

5 years ago

3.1.10-pre.131

5 years ago

3.1.10-pre.134

5 years ago

3.1.10-pre.133

5 years ago

3.1.10-pre.126

5 years ago

3.1.10-pre.124

5 years ago

3.1.10-pre.117

5 years ago

3.1.10-pre.111

5 years ago

3.1.10-pre.109

5 years ago

3.1.10-pre.108

5 years ago

3.1.10-pre.105

5 years ago

3.1.10-pre.104

5 years ago

3.1.10-pre.102

5 years ago

3.1.10-pre.97

5 years ago

3.1.10-pre.94

5 years ago

3.1.10-pre.88

5 years ago

3.1.10-pre.92

5 years ago

3.1.10-pre.90

5 years ago

3.1.10-pre.83

5 years ago

3.1.10-pre.79

5 years ago

3.1.10-pre.77

5 years ago

3.1.10-pre.76

5 years ago

3.1.10-pre.75

5 years ago

3.1.10-pre.74

5 years ago

3.1.10-pre.73

5 years ago

3.1.9-pre.70

5 years ago

3.1.10-pre.71

5 years ago

3.1.10-alpha.0

5 years ago

3.1.9

5 years ago

3.1.8

5 years ago

3.1.7

5 years ago

3.1.6

5 years ago

3.1.5

5 years ago

3.1.3

5 years ago

3.1.4

5 years ago

3.1.1

5 years ago

3.1.0

5 years ago

4.0.0

5 years ago

3.0.8

5 years ago

3.0.7

5 years ago

3.0.6

5 years ago

3.0.5

5 years ago

3.0.4

5 years ago

3.0.3

5 years ago

3.0.2

5 years ago

3.0.1

5 years ago