Pārlūkot izejas kodu

Adding facker lib

Julio Montoya 12 gadi atpakaļ
vecāks
revīzija
2cb00363ff
100 mainītis faili ar 7120 papildinājumiem un 4 dzēšanām
  1. 1 1
      vendor/autoload.php
  2. 2 0
      vendor/composer/autoload_namespaces.php
  3. 3 3
      vendor/composer/autoload_real.php
  4. 86 0
      vendor/composer/installed.json
  5. 44 0
      vendor/emanueleminotto/faker-service-provider/README.md
  6. 17 0
      vendor/emanueleminotto/faker-service-provider/composer.json
  7. 26 0
      vendor/emanueleminotto/faker-service-provider/src/EmanueleMinotto/FakerServiceProvider.php
  8. 3 0
      vendor/fzaninotto/faker/.travis.yml
  9. 25 0
      vendor/fzaninotto/faker/CHANGELOG
  10. 22 0
      vendor/fzaninotto/faker/LICENSE
  11. 23 0
      vendor/fzaninotto/faker/composer.json
  12. 9 0
      vendor/fzaninotto/faker/phpunit.xml.dist
  13. 614 0
      vendor/fzaninotto/faker/readme.md
  14. 54 0
      vendor/fzaninotto/faker/src/Faker/Documentor.php
  15. 46 0
      vendor/fzaninotto/faker/src/Faker/Factory.php
  16. 73 0
      vendor/fzaninotto/faker/src/Faker/Generator.php
  17. 62 0
      vendor/fzaninotto/faker/src/Faker/Guesser/Name.php
  18. 50 0
      vendor/fzaninotto/faker/src/Faker/ORM/Doctrine/ColumnTypeGuesser.php
  19. 184 0
      vendor/fzaninotto/faker/src/Faker/ORM/Doctrine/EntityPopulator.php
  20. 79 0
      vendor/fzaninotto/faker/src/Faker/ORM/Doctrine/Populator.php
  21. 35 0
      vendor/fzaninotto/faker/src/Faker/ORM/Mandango/ColumnTypeGuesser.php
  22. 112 0
      vendor/fzaninotto/faker/src/Faker/ORM/Mandango/EntityPopulator.php
  23. 61 0
      vendor/fzaninotto/faker/src/Faker/ORM/Mandango/Populator.php
  24. 72 0
      vendor/fzaninotto/faker/src/Faker/ORM/Propel/ColumnTypeGuesser.php
  25. 168 0
      vendor/fzaninotto/faker/src/Faker/ORM/Propel/EntityPopulator.php
  26. 87 0
      vendor/fzaninotto/faker/src/Faker/ORM/Propel/Populator.php
  27. 121 0
      vendor/fzaninotto/faker/src/Faker/Provider/Address.php
  28. 188 0
      vendor/fzaninotto/faker/src/Faker/Provider/Base.php
  29. 30 0
      vendor/fzaninotto/faker/src/Faker/Provider/Company.php
  30. 188 0
      vendor/fzaninotto/faker/src/Faker/Provider/DateTime.php
  31. 144 0
      vendor/fzaninotto/faker/src/Faker/Provider/Internet.php
  32. 214 0
      vendor/fzaninotto/faker/src/Faker/Provider/Lorem.php
  33. 68 0
      vendor/fzaninotto/faker/src/Faker/Provider/Miscellaneous.php
  34. 40 0
      vendor/fzaninotto/faker/src/Faker/Provider/Person.php
  35. 16 0
      vendor/fzaninotto/faker/src/Faker/Provider/PhoneNumber.php
  36. 161 0
      vendor/fzaninotto/faker/src/Faker/Provider/UserAgent.php
  37. 48 0
      vendor/fzaninotto/faker/src/Faker/Provider/Uuid.php
  38. 33 0
      vendor/fzaninotto/faker/src/Faker/Provider/bg_BG/Internet.php
  39. 123 0
      vendor/fzaninotto/faker/src/Faker/Provider/bg_BG/Person.php
  40. 20 0
      vendor/fzaninotto/faker/src/Faker/Provider/bg_BG/PhoneNumber.php
  41. 35 0
      vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/Internet.php
  42. 99 0
      vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/Person.php
  43. 14 0
      vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/PhoneNumber.php
  44. 287 0
      vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Address.php
  45. 70 0
      vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Company.php
  46. 68 0
      vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Internet.php
  47. 183 0
      vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Person.php
  48. 21 0
      vendor/fzaninotto/faker/src/Faker/Provider/da_DK/PhoneNumber.php
  49. 99 0
      vendor/fzaninotto/faker/src/Faker/Provider/de_AT/Address.php
  50. 202 0
      vendor/fzaninotto/faker/src/Faker/Provider/de_AT/Person.php
  51. 18 0
      vendor/fzaninotto/faker/src/Faker/Provider/de_DE/Address.php
  52. 15 0
      vendor/fzaninotto/faker/src/Faker/Provider/de_DE/Company.php
  53. 46 0
      vendor/fzaninotto/faker/src/Faker/Provider/de_DE/Internet.php
  54. 204 0
      vendor/fzaninotto/faker/src/Faker/Provider/de_DE/Person.php
  55. 20 0
      vendor/fzaninotto/faker/src/Faker/Provider/de_DE/PhoneNumber.php
  56. 89 0
      vendor/fzaninotto/faker/src/Faker/Provider/en_GB/Address.php
  57. 10 0
      vendor/fzaninotto/faker/src/Faker/Provider/en_GB/Internet.php
  58. 19 0
      vendor/fzaninotto/faker/src/Faker/Provider/en_GB/PhoneNumber.php
  59. 10 0
      vendor/fzaninotto/faker/src/Faker/Provider/en_US/Address.php
  60. 64 0
      vendor/fzaninotto/faker/src/Faker/Provider/en_US/Company.php
  61. 18 0
      vendor/fzaninotto/faker/src/Faker/Provider/en_US/Person.php
  62. 33 0
      vendor/fzaninotto/faker/src/Faker/Provider/en_US/PhoneNumber.php
  63. 95 0
      vendor/fzaninotto/faker/src/Faker/Provider/es_AR/Address.php
  64. 66 0
      vendor/fzaninotto/faker/src/Faker/Provider/es_AR/Company.php
  65. 88 0
      vendor/fzaninotto/faker/src/Faker/Provider/es_AR/Person.php
  66. 42 0
      vendor/fzaninotto/faker/src/Faker/Provider/es_AR/PhoneNumber.php
  67. 101 0
      vendor/fzaninotto/faker/src/Faker/Provider/es_ES/Address.php
  68. 80 0
      vendor/fzaninotto/faker/src/Faker/Provider/es_ES/Company.php
  69. 22 0
      vendor/fzaninotto/faker/src/Faker/Provider/es_ES/Person.php
  70. 29 0
      vendor/fzaninotto/faker/src/Faker/Provider/es_ES/PhoneNumber.php
  71. 85 0
      vendor/fzaninotto/faker/src/Faker/Provider/fi_FI/Address.php
  72. 64 0
      vendor/fzaninotto/faker/src/Faker/Provider/fi_FI/Company.php
  73. 10 0
      vendor/fzaninotto/faker/src/Faker/Provider/fi_FI/Internet.php
  74. 75 0
      vendor/fzaninotto/faker/src/Faker/Provider/fi_FI/Person.php
  75. 20 0
      vendor/fzaninotto/faker/src/Faker/Provider/fi_FI/PhoneNumber.php
  76. 137 0
      vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Address.php
  77. 221 0
      vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Company.php
  78. 46 0
      vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Internet.php
  79. 26 0
      vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Person.php
  80. 43 0
      vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/PhoneNumber.php
  81. 99 0
      vendor/fzaninotto/faker/src/Faker/Provider/it_IT/Address.php
  82. 66 0
      vendor/fzaninotto/faker/src/Faker/Provider/it_IT/Company.php
  83. 10 0
      vendor/fzaninotto/faker/src/Faker/Provider/it_IT/Internet.php
  84. 84 0
      vendor/fzaninotto/faker/src/Faker/Provider/it_IT/Person.php
  85. 23 0
      vendor/fzaninotto/faker/src/Faker/Provider/it_IT/PhoneNumber.php
  86. 106 0
      vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/Address.php
  87. 13 0
      vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/Company.php
  88. 46 0
      vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/Internet.php
  89. 11 0
      vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/Person.php
  90. 21 0
      vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/PhoneNumber.php
  91. 33 0
      vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/Address.php
  92. 15 0
      vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/Company.php
  93. 10 0
      vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/Internet.php
  94. 18 0
      vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/Person.php
  95. 35 0
      vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/PhoneNumber.php
  96. 38 0
      vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/Internet.php
  97. 54 0
      vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/Person.php
  98. 14 0
      vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/PhoneNumber.php
  99. 132 0
      vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Address.php
  100. 66 0
      vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Company.php

+ 1 - 1
vendor/autoload.php

@@ -4,4 +4,4 @@
 
 require_once __DIR__ . '/composer' . '/autoload_real.php';
 
-return ComposerAutoloaderInit4df79da5292ac3a4857f4002577d4f24::getLoader();
+return ComposerAutoloaderInit3645d07117680993b1de8d5dfece9e50::getLoader();

+ 2 - 0
vendor/composer/autoload_namespaces.php

@@ -32,7 +32,9 @@ return array(
     'Monolog' => $vendorDir . '/monolog/monolog/src/',
     'Knp\\Menu\\' => $vendorDir . '/knplabs/knp-menu/src/',
     'Gedmo' => array($baseDir . '/vendor/gedmo/doctrine-extensions/lib\'', $vendorDir . '/gedmo/doctrine-extensions/lib/'),
+    'Faker' => $vendorDir . '/fzaninotto/faker/src/',
     'Entity' => $baseDir . '/main/inc/',
+    'EmanueleMinotto' => $vendorDir . '/emanueleminotto/faker-service-provider/src/',
     'Doctrine\\ORM\\' => $vendorDir . '/doctrine/orm/lib/',
     'Doctrine\\DBAL\\Migrations' => $vendorDir . '/doctrine/migrations/lib',
     'Doctrine\\DBAL\\' => $vendorDir . '/doctrine/dbal/lib/',

+ 3 - 3
vendor/composer/autoload_real.php

@@ -2,7 +2,7 @@
 
 // autoload_real.php generated by Composer
 
-class ComposerAutoloaderInit4df79da5292ac3a4857f4002577d4f24
+class ComposerAutoloaderInit3645d07117680993b1de8d5dfece9e50
 {
     private static $loader;
 
@@ -19,9 +19,9 @@ class ComposerAutoloaderInit4df79da5292ac3a4857f4002577d4f24
             return self::$loader;
         }
 
-        spl_autoload_register(array('ComposerAutoloaderInit4df79da5292ac3a4857f4002577d4f24', 'loadClassLoader'));
+        spl_autoload_register(array('ComposerAutoloaderInit3645d07117680993b1de8d5dfece9e50', 'loadClassLoader'));
         self::$loader = $loader = new \Composer\Autoload\ClassLoader();
-        spl_autoload_unregister(array('ComposerAutoloaderInit4df79da5292ac3a4857f4002577d4f24', 'loadClassLoader'));
+        spl_autoload_unregister(array('ComposerAutoloaderInit3645d07117680993b1de8d5dfece9e50', 'loadClassLoader'));
 
         $vendorDir = dirname(__DIR__);
         $baseDir = dirname($vendorDir);

+ 86 - 0
vendor/composer/installed.json

@@ -2167,5 +2167,91 @@
         ],
         "description": "Symfony Validator Component",
         "homepage": "http://symfony.com"
+    },
+    {
+        "name": "fzaninotto/faker",
+        "version": "dev-master",
+        "version_normalized": "9999999-dev",
+        "source": {
+            "type": "git",
+            "url": "https://github.com/fzaninotto/Faker.git",
+            "reference": "d2bd9144075c0bb05fc14844e1446c2054b5da66"
+        },
+        "dist": {
+            "type": "zip",
+            "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/d2bd9144075c0bb05fc14844e1446c2054b5da66",
+            "reference": "d2bd9144075c0bb05fc14844e1446c2054b5da66",
+            "shasum": ""
+        },
+        "require": {
+            "php": ">=5.3.3"
+        },
+        "time": "2013-02-27 10:20:31",
+        "type": "library",
+        "extra": {
+            "branch-alias": {
+                "dev-master": "1.1.x-dev"
+            }
+        },
+        "installation-source": "source",
+        "autoload": {
+            "psr-0": {
+                "Faker": "src/"
+            }
+        },
+        "notification-url": "https://packagist.org/downloads/",
+        "license": [
+            "MIT"
+        ],
+        "authors": [
+            {
+                "name": "François Zaninotto"
+            }
+        ],
+        "description": "Faker is a PHP library that generates fake data for you.",
+        "keywords": [
+            "data",
+            "faker",
+            "fixtures"
+        ]
+    },
+    {
+        "name": "emanueleminotto/faker-service-provider",
+        "version": "dev-master",
+        "version_normalized": "9999999-dev",
+        "source": {
+            "type": "git",
+            "url": "https://github.com/EmanueleMinotto/FakerServiceProvider.git",
+            "reference": "dedf255efaaa94d00f8af44bf5faeae6d3c557e6"
+        },
+        "dist": {
+            "type": "zip",
+            "url": "https://api.github.com/repos/EmanueleMinotto/FakerServiceProvider/zipball/dedf255efaaa94d00f8af44bf5faeae6d3c557e6",
+            "reference": "dedf255efaaa94d00f8af44bf5faeae6d3c557e6",
+            "shasum": ""
+        },
+        "require": {
+            "fzaninotto/faker": "1.1.*"
+        },
+        "time": "2013-02-06 15:50:34",
+        "type": "library",
+        "installation-source": "source",
+        "autoload": {
+            "psr-0": {
+                "EmanueleMinotto": "src/"
+            }
+        },
+        "notification-url": "https://packagist.org/downloads/",
+        "license": [
+            "MIT"
+        ],
+        "authors": [
+            {
+                "name": "Emanuele Minotto",
+                "email": "minottoemanuele@gmail.com",
+                "homepage": "http://emanueleminotto.wordpress.com/"
+            }
+        ],
+        "description": "Faker Service Provider for Silex"
     }
 ]

+ 44 - 0
vendor/emanueleminotto/faker-service-provider/README.md

@@ -0,0 +1,44 @@
+FakerServiceProvider
+====================
+
+A [Faker](https://github.com/fzaninotto/Faker) service provider for [Silex](http://silex.sensiolabs.org/).
+
+## Install
+Install Silex using [Composer](http://getcomposer.org/).
+
+Install the FakerServiceProvider adding `emanueleminotto/faker-service-provider` to your composer.json or from CLI:
+
+```
+$ php composer.phar require emanueleminotto/faker-service-provider
+```
+
+## Usage
+Initialize it using `register`, it allows only the `locale` option
+```php
+<?php
+
+use EmanueleMinotto\FakerServiceProvider;
+
+$app->register(new FakerServiceProvider, array(
+    'locale' => 'it_IT' // default: en_US
+));
+```
+
+From PHP
+```php
+<?php
+
+$Application -> get('/hello', function () use ($Application) {
+    return 'Hello ' . $Application['faker'] -> name;
+});
+```
+
+From [Twig](http://twig.sensiolabs.org/)
+```html
+<!DOCTYPE html>
+<html>
+    <body>
+        <p>Hello {{ app.faker.name }}!</p>
+    </body>
+</html>
+```

+ 17 - 0
vendor/emanueleminotto/faker-service-provider/composer.json

@@ -0,0 +1,17 @@
+{
+    "name": "emanueleminotto/faker-service-provider",
+    "description": "Faker Service Provider for Silex",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "Emanuele Minotto",
+            "email": "minottoemanuele@gmail.com"
+        }
+    ],
+    "require": {
+        "fzaninotto/faker": "1.1.*"
+    },
+    "autoload": {
+        "psr-0": { "EmanueleMinotto": "src/" }
+    }
+}

+ 26 - 0
vendor/emanueleminotto/faker-service-provider/src/EmanueleMinotto/FakerServiceProvider.php

@@ -0,0 +1,26 @@
+<?php
+
+namespace EmanueleMinotto;
+
+use Silex\Application,
+    Silex\ServiceProviderInterface,
+    Faker\Factory;
+
+/**
+ * A Faker service provider for Silex
+ * 
+ * @author Emanuele Minotto <minottoemanuele@gmail.com>
+ * @link http://silex.sensiolabs.org/doc/providers.html#creating-a-provider Creating a provider
+ */
+class FakerServiceProvider implements ServiceProviderInterface
+{
+    public function register(Application $Application)
+    {
+        // ...
+    }
+
+    public function boot(Application $Application)
+    {
+        $Application['faker'] = Factory::create($Application['locale']);
+    }
+}

+ 3 - 0
vendor/fzaninotto/faker/.travis.yml

@@ -0,0 +1,3 @@
+language: php
+php: 5.3
+script: phpunit

+ 25 - 0
vendor/fzaninotto/faker/CHANGELOG

@@ -0,0 +1,25 @@
+CHANGELOG
+=========
+
+2012-10-29, v1.1.0
+------------------
+
+* Updated text provider to return paragraphs as a string instead of array. Great for populating markdown textarea fields (Seldaek)
+* Updated dateTimeBetween to accept DateTime instances (Seldaek)
+* Added random number generator between a and b, simply like rand() (Seldaek)
+* Fixed spaces in generated emails (blaugueux)
+* Fixed Person provider in Russian locale (Isamashii)
+* Added new UserAgent provider (blaugueux)
+* Added locale generator to Miscellaneous provider (blaugueux)
+* Added timezone generator to DateTime provider (blaugueux)
+* Added new generators to French Address providers (departments, regions) (geoffrey-brier)
+* Added new generators to French Company provider (catch phrase, SIREN, and SIRET numbers) (geoffrey-brier)
+* Added state generator to German Address provider (Powerhamster)
+* Added Slovak provider (bazo)
+* Added latitude and longitude formatters to Address provider (fixe)
+* Added Serbian provider (umpirsky)
+
+2012-07-10, v1.0.0
+-----------------
+
+* Initial Version

+ 22 - 0
vendor/fzaninotto/faker/LICENSE

@@ -0,0 +1,22 @@
+Copyright (c) 2011 François Zaninotto
+Portions Copyright (c) 2008 Caius Durling
+Portions Copyright (c) 2008 Adam Royle
+Portions Copyright (c) 2008 Fiona Burrows
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.

+ 23 - 0
vendor/fzaninotto/faker/composer.json

@@ -0,0 +1,23 @@
+{
+    "name": "fzaninotto/faker",
+    "type": "library",
+    "description": "Faker is a PHP library that generates fake data for you.",
+    "keywords": ["faker", "fixtures", "data"],
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "François Zaninotto"
+        }
+    ],
+    "require": {
+        "php": ">=5.3.3"
+    },
+    "autoload": {
+        "psr-0": { "Faker": "src/" }
+    },
+    "extra": {
+        "branch-alias": {
+            "dev-master": "1.1.x-dev"
+        }
+    }
+}

+ 9 - 0
vendor/fzaninotto/faker/phpunit.xml.dist

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<phpunit bootstrap="src/autoload.php">
+    <testsuites>
+        <testsuite name="Faker Test Suite">
+            <directory>./test/Faker/</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>

+ 614 - 0
vendor/fzaninotto/faker/readme.md

@@ -0,0 +1,614 @@
+# Faker [![Build Status](https://secure.travis-ci.org/fzaninotto/Faker.png)](http://travis-ci.org/fzaninotto/Faker)#
+
+Faker is a PHP library that generates fake data for you. Whether you need to bootstrap your database, create good-looking XML documents, fill-in your persistence to stress test it, or anonymize data taken from a production service, Faker is for you.
+
+Faker is heavily inspired by Perl's [Data::Faker](http://search.cpan.org/~jasonk/Data-Faker-0.07/), and by ruby's [Faker](http://faker.rubyforge.org/).
+
+Faker requires PHP >= 5.3.3.
+
+## Basic Usage
+
+Use `Faker\Factory::create()` to create and initialize a faker generator, which can generate data by accessing properties named after the type of data you want.
+
+```php
+<?php
+// require the Faker autoloader
+require_once '/path/to/Faker/src/autoload.php';
+// alternatively, use another PSR-0 compliant autoloader (like the Symfony2 ClassLoader for instance)
+
+// use the factory to create a Faker\Generator instance
+$faker = Faker\Factory::create();
+
+// generate data by accessing properties
+echo $faker->name;
+  // 'Lucy Cechtelar';
+echo $faker->address;
+  // "426 Jordy Lodge
+  // Cartwrightshire, SC 88120-6700"
+echo $faker->text;
+  // Sint velit eveniet. Rerum atque repellat voluptatem quia rerum. Numquam excepturi
+  // beatae sint laudantium consequatur. Magni occaecati itaque sint et sit tempore. Nesciunt
+  // amet quidem. Iusto deleniti cum autem ad quia aperiam.
+  // A consectetur quos aliquam. In iste aliquid et aut similique suscipit. Consequatur qui
+  // quaerat iste minus hic expedita. Consequuntur error magni et laboriosam. Aut aspernatur
+  // voluptatem sit aliquam. Dolores voluptatum est.
+  // Aut molestias et maxime. Fugit autem facilis quos vero. Eius quibusdam possimus est.
+  // Ea quaerat et quisquam. Deleniti sunt quam. Adipisci consequatur id in occaecati.
+  // Et sint et. Ut ducimus quod nemo ab voluptatum.
+```
+
+Even if this example shows a property access, each call to `$faker->name` yields a different (random) result. This is because Faker uses `__get()` magic, and forwards `Faker\Generator->$property` calls to `Faker\Generator->format($property)`.
+
+```php
+<?php
+for ($i=0; $i < 10; $i++) {
+  echo $faker->name, "\n";
+}
+  // Adaline Reichel
+  // Dr. Santa Prosacco DVM
+  // Noemy Vandervort V
+  // Lexi O'Conner
+  // Gracie Weber
+  // Roscoe Johns
+  // Emmett Lebsack
+  // Keegan Thiel
+  // Wellington Koelpin II
+  // Ms. Karley Kiehn V
+```
+
+## Formatters
+
+Each of the generator properties (like `name`, `address`, and `lorem`) are called "formatters". A faker generator has many of them, packaged in "providers". Here is a list of the bundled formatters in the default locale.
+
+### `Faker\Provider\en_US\Person`
+
+    prefix                  // 'Ms.'
+    suffix                  // 'Jr.'
+    name                    // 'Dr. Zane Stroman'
+    firstName               // 'Maynard'
+    lastName                // 'Zulauf'
+
+### `Faker\Provider\en_US\Address`
+
+    cityPrefix              // 'Lake'
+    secondaryAddress        // 'Suite 961'
+    state                   // 'NewMexico'
+    stateAbbr               // 'OH'
+    citySuffix              // 'borough'
+    streetSuffix            // 'Keys'
+    buildingNumber          // '484'
+    city                    // 'West Judge'
+    streetName              // 'Keegan Trail'
+    streetAddress           // '439 Karley Loaf Suite 897'
+    postcode                // '17916'
+    address                 // '8888 Cummings Vista Apt. 101, Susanbury, NY 95473'
+    country                 // 'Falkland Islands (Malvinas)'
+    latitude                // '77.147489'
+    longitude               // '86.211205'
+
+### `Faker\Provider\en_US\PhoneNumber`
+
+    phoneNumber             // '132-149-0269x3767'
+
+### `Faker\Provider\en_US\Company`
+
+    catchPhrase             // 'Monitored regional contingency'
+    bs                      // 'e-enable robust architectures'
+    company                 // 'Bogan-Treutel'
+    companySuffix           // 'and Sons'
+
+### `Faker\Provider\Lorem`
+
+    word                    // 'aut'
+    words($nb = 3)          // array('porro', 'sed', 'magni')
+    sentence($nbWords = 6)  // 'Sit vitae voluptas sint non voluptates.'
+    sentences($nb = 3)      // array('Optio quos qui illo error.', 'Laborum vero a officia id corporis.', 'Saepe provident esse hic eligendi.')
+    paragraph($nbSentences = 3) // 'Ut ab voluptas sed a nam. Sint autem inventore aut officia aut aut blanditiis. Ducimus eos odit amet et est ut eum.'
+    paragraphs($nb = 3)     // array('Quidem ut sunt et quidem est accusamus aut. Fuga est placeat rerum ut. Enim ex eveniet facere sunt.', 'Aut nam et eum architecto fugit repellendus illo. Qui ex esse veritatis.', 'Possimus omnis aut incidunt sunt. Asperiores incidunt iure sequi cum culpa rem. Rerum exercitationem est rem.')
+    text($maxNbChars = 200) // 'Fuga totam reiciendis qui architecto fugiat nemo. Consequatur recusandae qui cupiditate eos quod.'
+
+### `Faker\Provider\Internet`
+
+    email                   // 'tkshlerin@collins.com'
+    safeEmail               // 'king.alford@example.org'
+    freeEmail               // 'bradley72@gmail.com'
+    companyEmail            // 'russel.durward@mcdermott.org'
+    freeEmailDomain         // 'yahoo.com'
+    safeEmailDomain         // 'example.org'
+    userName                // 'wade55'
+    domainName              // 'wolffdeckow.net'
+    domainWord              // 'feeney'
+    tld                     // 'biz'
+    url                     // 'http://www.strackeframi.com/'
+    ipv4                    // '109.133.32.252'
+    ipv6                    // '8e65:933d:22ee:a232:f1c1:2741:1f10:117c'
+
+### `Faker\Provider\DateTime`
+
+    unixTime                // 58781813
+    dateTime                // DateTime('2008-04-25 08:37:17')
+    dateTimeAD              // DateTime('1800-04-29 20:38:49')
+    iso8601                 // '1978-12-09T10:10:29+0000'
+    date($format = 'Y-m-d') // '1979-06-09'
+    time($format = 'H:i:s') // '20:49:42'
+    dateTimeBetween($startDate = '-30 years', $endDate = 'now') // DateTime('2003-03-15 02:00:49')
+    dateTimeThisCentury     // DateTime('1915-05-30 19:28:21')
+    dateTimeThisDecade      // DateTime('2007-05-29 22:30:48')
+    dateTimeThisYear        // DateTime('2011-02-27 20:52:14')
+    dateTimeThisMonth       // DateTime('2011-10-23 13:46:23')
+    amPm                    // 'pm'
+    dayOfMonth              // '04'
+    dayOfWeek               // 'Friday'
+    month                   // '06'
+    monthName               // 'January'
+    year                    // '1993'
+    century                 // 'VI'
+    timezone                // 'Europe/Paris'
+
+### `Faker\Provider\Miscellaneous`
+
+    boolean($chanceOfGettingTrue = 50) // true
+    md5                     // 'de99a620c50f2990e87144735cd357e7'
+    sha1                    // 'f08e7f04ca1a413807ebc47551a40a20a0b4de5c'
+    sha256                  // '0061e4c60dac5c1d82db0135a42e00c89ae3a333e7c26485321f24348c7e98a5'
+    locale                  // en_UK
+    countryCode             // UK
+    languageCode            // en
+
+### `Faker\Provider\Base`
+
+    randomDigit             // 7
+    randomDigitNotNull      // 5
+    randomNumber($nbDigits = NULL) // 79907610
+    randomFloat($nbMaxDecimals = NULL, $min = 0, $max = NULL) // 48.8932
+    randomLetter            // 'b'
+    randomElement($array = array ('a','b','c')) // 'b'
+    numerify($string = '###') // '609'
+    lexify($string = '????') // 'wgts'
+    bothify($string = '## ??') // '42 jz'
+
+### `Faker\Provider\UserAgent`
+
+    userAgent              // 'Mozilla/5.0 (Windows CE) AppleWebKit/5350 (KHTML, like Gecko) Chrome/13.0.888.0 Safari/5350'
+    chrome                 // 'Mozilla/5.0 (Macintosh; PPC Mac OS X 10_6_5) AppleWebKit/5312 (KHTML, like Gecko) Chrome/14.0.894.0 Safari/5312'
+    firefox                // 'Mozilla/5.0 (X11; Linuxi686; rv:7.0) Gecko/20101231 Firefox/3.6'
+    safari                 // 'Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_7_1 rv:3.0; en-US) AppleWebKit/534.11.3 (KHTML, like Gecko) Version/4.0 Safari/534.11.3'
+    opera                  // 'Opera/8.25 (Windows NT 5.1; en-US) Presto/2.9.188 Version/10.00'
+    internetExplorer       // 'Mozilla/5.0 (compatible; MSIE 7.0; Windows 98; Win 9x 4.90; Trident/3.0)'
+
+### `Faker\Provider\Uuid`
+
+    uuid                   // '7e57d004-2b97-0e7a-b45f-5387367791cd'
+
+## Localization
+
+`Faker\Factory` can take a locale as an argument, to return localized data. If no localized provider is found, the factory fallbacks to the default locale (en_EN).
+
+```php
+<?php
+$faker = Faker\Factory::create('fr_FR'); // create a French faker
+for ($i=0; $i < 10; $i++) {
+  echo $faker->name, "\n";
+}
+  // Luce du Coulon
+  // Auguste Dupont
+  // Roger Le Voisin
+  // Alexandre Lacroix
+  // Jacques Humbert-Roy
+  // Thérèse Guillet-Andre
+  // Gilles Gros-Bodin
+  // Amélie Pires
+  // Marcel Laporte
+  // Geneviève Marchal
+```
+
+You can check available Faker locales in the source code, [under the `Provider` directory](https://github.com/fzaninotto/Faker/tree/master/src/Faker/Provider). The localization of Faker is an ongoing process, for which we need your help. Don't hesitate to create localized providers to your own locale and submit a PR!
+
+## Populating Entities Using an ORM or an ODM
+
+Faker provides adapters for Object-Relational and Object-Document Mappers (currently, [Propel](http://www.propelorm.org), [Doctrine2](http://www.doctrine-project.org/projects/orm/2.0/docs/en), and [Mandango](https://github.com/mandango/mandango) are supported). These adapters ease the population of databases through the Entity classes provided by an ORM library (or the population of document stores using Document classes provided by an ODM library).
+
+To populate entities, create a new populator class (using a generator instance as parameter), then list the class and number of all the entities that must be generated. To launch the actual data population, call the `execute()` method.
+
+Here is an example showing how to populate 5 `Author` and 10 `Book` objects:
+
+```php
+<?php
+$generator = \Faker\Factory::create();
+$populator = new Faker\ORM\Propel\Populator($generator);
+$populator->addEntity('Author', 5);
+$populator->addEntity('Book', 10);
+$insertedPKs = $populator->execute();
+```
+
+The populator uses name and column type guessers to populate each column with relevant data. For instance, Faker populates a column named `first_name` using the `firstName` formatter, and a column with a `TIMESTAMP` type using the `dateTime` formatter. The resulting entities are therefore coherent. If Faker misinterprets a column name, you can still specify a custom clusure to be used for populating a particular column, using the third argument to `addEntity()`:
+
+```php
+<?php
+$populator->addEntity('Book', 5, array(
+  'ISBN' => function() use ($generator) { return $generator->randomNumber(13); }
+));
+```
+
+In this example, Faker will guess a formatter for all columns except `ISBN`, for which the given anonymous function will be used.
+
+**Tip**: To ignore some columns, specify `null` for the column names in the third argument of `addEntity()`. This is usually necessary for columns added by a behavior:
+
+```php
+<?php
+$populator->addEntity('Book', 5, array(
+  'CreatedAt' => null,
+  'UpdatedAt' => null,
+));
+```
+
+Of course, Faker does not populate autoincremented primary keys. In addition, `Faker\ORM\Propel\Populator::execute()` returns the list of inserted PKs, indexed by class:
+
+```php
+<?php
+print_r($insertedPKs);
+// array(
+//   'Author' => (34, 35, 36, 37, 38),
+//   'Book'   => (456, 457, 458, 459, 470, 471, 472, 473, 474, 475)
+// )
+```
+
+In the previous example, the `Book` and `Author` models share a relationship. Since `Author` entities are populated first, Faker is smart enough to relate the populated `Book` entities to one of the populated `Author` entities.
+
+Lastly, if you want to execute an arbitrary function on an entity before insertion, use the fourth argument of the `addEntity()` method:
+
+```php
+<?php
+$populator->addEntity('Book', 5, array(), array(
+  function($book) { $book->publish(); },
+));
+```
+
+## Seeding the Generator
+
+You may want to get always the same generated data - for instance when using Faker for unit testing purposes. The generator offers a `seed()` method, which seeds the random number generator. Calling the same script twice with the same seed produces the same results.
+
+```php
+<?php
+$faker = Faker\Factory::create();
+$faker->seed(1234);
+
+echo $faker->name; // 'Jess Mraz I';
+```
+
+## Faker Internals: Understanding Providers
+
+A `Faker\Generator` alone can't do much generation. It needs `Faker\Provider` objects to delegate the data generation to them. `Faker\Factory::create()` actually creates a `Faker\Generator` bundled with the default providers. Here is what happens under the hood:
+
+```php
+<?php
+$faker = new Faker\Generator();
+$faker->addProvider(new Faker\Provider\en_US\Name($faker));
+$faker->addProvider(new Faker\Provider\en_US\Address($faker));
+$faker->addProvider(new Faker\Provider\en_US\PhoneNumber($faker));
+$faker->addProvider(new Faker\Provider\en_US\Company($faker));
+$faker->addProvider(new Faker\Provider\Lorem($faker));
+$faker->addProvider(new Faker\Provider\Internet($faker));
+````
+
+Whenever you try to access a property on the `$faker` object, the generator looks for a method with the same name in all the providers attached to it. For instance, calling `$faker->name` triggers a call to `Faker\Provider\Name::name()`. And since Faker starts with the last provider, you can easily override existing formatters: just add a provider containing methods named after the formatters you want to override.
+
+That means that you can esily add your own providers to a `Faker\Generator` instance. A provider is usually a class extending `\Faker\Provider\Base`. This parent class allows you to use methods like `lexify()` or `randomNumber()`; it also gives you access to formatters of other providers, through the protected `$generator` property. The new formatters are the public methods of the provider class.
+
+Here is an example provider for populating Book data:
+
+```php
+<?php
+
+namespace Faker\Provider;
+
+class Book extends \Faker\Provider\Base
+{
+  public function title($nbWords = 5)
+  {
+    $sentence = $this->generator->sentence($nbWords);
+    return substr($sentence, 0, strlen($sentence) - 1);
+  }
+
+  public function ISBN()
+  {
+    return $this->generator->randomNumber(13);
+  }
+}
+```
+
+To register this provider, just add a new instance of `\Faker\Provider\Book` to an existing generator:
+
+```php
+<?php
+$faker->addProvider(new \Faker\Provider\Book($faker));
+```
+
+Now you can use the two new formatters like any other Faker formatter:
+
+```php
+<?php
+$book = new Book();
+$book->setTitle($faker->title);
+$book->setISBN($faker->ISBN);
+$book->setSummary($faker->text);
+$book->setPrice($faker->randomNumber(2));
+```
+
+**Tip**: A provider can also be a Plain Old PHP Object. In that case, all the public methods of the provider become available to the generator.
+
+## Real Life Usage
+
+The following script generates a valid XML document:
+
+```php
+<?php
+require_once '/path/to/Faker/src/autoload.php';
+$faker = Faker\Factory::create();
+?>
+<?xml version="1.0" encoding="UTF-8"?>
+<contacts>
+<?php for ($i=0; $i < 10; $i++): ?>
+  <contact firstName="<?php echo $faker->firstName ?>" lastName="<?php echo $faker->lastName ?>" email="<?php echo $faker->email ?>"/>
+    <phone number="<?php echo $faker->phoneNumber ?>"/>
+<?php if ($faker->boolean(25)): ?>
+    <birth date="<?php echo $faker->dateTimeThisCentury->format('Y-m-d') ?>" place="<?php echo $faker->city ?>"/>
+<?php endif; ?>
+    <address>
+      <street><?php echo $faker->streetAddress ?></street>
+      <city><?php echo $faker->city ?></city>
+      <postcode><?php echo $faker->postcode ?></postcode>
+      <state><?php echo $faker->state ?></state>
+    </address>
+    <company name="<?php echo $faker->company ?>" catchPhrase="<?php echo $faker->catchPhrase ?>">
+<?php if ($faker->boolean(33)): ?>
+      <offer><?php echo $faker->bs ?></offer>
+<?php endif; ?>
+<?php if ($faker->boolean(33)): ?>
+      <director name="<?php echo $faker->name ?>" />
+<?php endif; ?>
+    </company>
+<?php if ($faker->boolean(15)): ?>
+    <details>
+<![CDATA[
+<?php echo $faker->text(400) ?>
+]]>
+    </details>
+<?php endif; ?>
+  </contact>
+<?php endfor; ?>
+</contacts>
+```
+
+Running this script produces a document looking like:
+
+```xml
+<?xml version="1.0" encoding="UTF-8"?>
+<contacts>
+  <contact firstName="Ona" lastName="Bednar" email="schamberger.frank@wuckert.com"/>
+    <phone number="1-265-479-1196x714"/>
+    <address>
+      <street>182 Harrison Cove</street>
+      <city>North Lloyd</city>
+      <postcode>45577</postcode>
+      <state>Alabama</state>
+    </address>
+    <company name="Veum, Funk and Shanahan" catchPhrase="Function-based stable solution">
+      <offer>orchestrate compelling web-readiness</offer>
+    </company>
+    <details>
+<![CDATA[
+Alias accusantium voluptatum autem nobis cumque neque modi. Voluptatem error molestiae consequatur alias.
+Illum commodi molestiae aut repellat id. Et sit consequuntur aut et ullam asperiores. Cupiditate culpa voluptatem et mollitia dolor. Nisi praesentium qui ut.
+]]>
+    </details>
+  </contact>
+  <contact firstName="Aurelie" lastName="Paucek" email="alfonzo55@durgan.com"/>
+    <phone number="863.712.1363x9425"/>
+    <address>
+      <street>90111 Hegmann Inlet</street>
+      <city>South Geovanymouth</city>
+      <postcode>69961-9311</postcode>
+      <state>Colorado</state>
+    </address>
+    <company name="Krajcik-Grimes" catchPhrase="Switchable cohesive instructionset">
+    </company>
+  </contact>
+  <contact firstName="Clifton" lastName="Kshlerin" email="kianna.wiegand@framiwyman.info"/>
+    <phone number="692-194-4746"/>
+    <address>
+      <street>9791 Nona Corner</street>
+      <city>Harberhaven</city>
+      <postcode>74062-8191</postcode>
+      <state>RhodeIsland</state>
+    </address>
+    <company name="Rosenbaum-Aufderhar" catchPhrase="Realigned asynchronous encryption">
+    </company>
+  </contact>
+  <contact firstName="Alexandre" lastName="Orn" email="thelma37@erdmancorwin.biz"/>
+    <phone number="189.655.8677x027"/>
+    <address>
+      <street>11161 Schultz Via</street>
+      <city>Feilstad</city>
+      <postcode>98019</postcode>
+      <state>NewJersey</state>
+    </address>
+    <company name="O'Hara-Prosacco" catchPhrase="Re-engineered solution-oriented algorithm">
+      <director name="Dr. Berenice Auer V" />
+    </company>
+    <details>
+<![CDATA[
+Ut itaque et quaerat doloremque eum praesentium. Rerum in saepe dolorem. Explicabo qui consequuntur commodi minima rem.
+Harum temporibus rerum dolores. Non molestiae id dolorem placeat.
+Aut asperiores nihil eius repellendus. Vero nihil corporis voluptatem explicabo commodi. Occaecati omnis blanditiis beatae quod aspernatur eos.
+]]>
+    </details>
+  </contact>
+  <contact firstName="Katelynn" lastName="Kohler" email="reinger.trudie@stiedemannjakubowski.com"/>
+    <phone number="(665)713-1657"/>
+    <address>
+      <street>6106 Nader Village Suite 753</street>
+      <city>McLaughlinstad</city>
+      <postcode>43189-8621</postcode>
+      <state>Missouri</state>
+    </address>
+    <company name="Herman-Tremblay" catchPhrase="Object-based explicit service-desk">
+      <offer>expedite viral synergies</offer>
+      <director name="Arden Deckow" />
+    </company>
+  </contact>
+  <contact firstName="Blanca" lastName="Stark" email="tad27@feest.net"/>
+    <phone number="168.719.4692x87177"/>
+    <address>
+      <street>7546 Kuvalis Plaza</street>
+      <city>South Wilfrid</city>
+      <postcode>77069</postcode>
+      <state>Georgia</state>
+    </address>
+    <company name="Upton, Braun and Rowe" catchPhrase="Visionary leadingedge pricingstructure">
+    </company>
+  </contact>
+  <contact firstName="Rene" lastName="Spencer" email="anibal28@armstrong.info"/>
+    <phone number="715.222.0095x175"/>
+    <birth date="2008-08-07" place="Zulaufborough"/>
+    <address>
+      <street>478 Daisha Landing Apt. 510</street>
+      <city>West Lizethhaven</city>
+      <postcode>30566-5362</postcode>
+      <state>WestVirginia</state>
+    </address>
+    <company name="Wiza Inc" catchPhrase="Persevering reciprocal approach">
+      <offer>orchestrate dynamic networks</offer>
+      <director name="Erwin Nienow" />
+    </company>
+    <details>
+<![CDATA[
+Dolorem consequatur voluptates unde optio unde. Accusantium dolorem est est architecto impedit. Corrupti et provident quo.
+Reprehenderit dolores aut quidem suscipit repudiandae corporis error. Molestiae enim aperiam illo.
+Et similique qui non expedita quia dolorum. Ex rem incidunt ea accusantium temporibus minus non.
+]]>
+    </details>
+  </contact>
+  <contact firstName="Alessandro" lastName="Hagenes" email="tbreitenberg@oharagorczany.com"/>
+    <phone number="1-284-958-6768"/>
+    <address>
+      <street>1251 Koelpin Mission</street>
+      <city>North Revastad</city>
+      <postcode>81620</postcode>
+      <state>Maryland</state>
+    </address>
+    <company name="Stiedemann-Bruen" catchPhrase="Re-engineered 24/7 success">
+    </company>
+  </contact>
+  <contact firstName="Novella" lastName="Rutherford" email="claud65@bogisich.biz"/>
+    <phone number="(091)825-7971"/>
+    <address>
+      <street>6396 Langworth Hills Apt. 446</street>
+      <city>New Carlos</city>
+      <postcode>89399-0268</postcode>
+      <state>Wyoming</state>
+    </address>
+    <company name="Stroman-Legros" catchPhrase="Expanded 4thgeneration moratorium">
+      <director name="Earlene Bayer" />
+    </company>
+  </contact>
+  <contact firstName="Andreane" lastName="Mann" email="meggie17@ornbaumbach.com"/>
+    <phone number="941-659-9982x5689"/>
+    <birth date="1934-02-21" place="Stantonborough"/>
+    <address>
+      <street>2246 Kreiger Station Apt. 291</street>
+      <city>Kaydenmouth</city>
+      <postcode>11397-1072</postcode>
+      <state>Wyoming</state>
+    </address>
+    <company name="Lebsack, Bernhard and Kiehn" catchPhrase="Persevering actuating framework">
+      <offer>grow sticky portals</offer>
+    </company>
+    <details>
+<![CDATA[
+Quia dolor ut quia error libero. Enim facilis iusto earum et minus rerum assumenda. Quia doloribus et reprehenderit ut. Occaecati voluptatum dolor voluptatem vitae qui velit quia.
+Fugiat non in itaque sunt nobis totam. Sed nesciunt est deleniti cumque alias. Repudiandae quo aut numquam modi dicta libero.
+]]>
+    </details>
+  </contact>
+</contacts>
+```
+
+## Language specific formatters
+
+
+### `Faker\Provider\fr_FR\Company`
+
+```php
+<?php
+
+// Generates a random SIREN number
+echo $faker->siren; // 082 250 104
+
+// Generates a random SIRET number
+echo $faker->siret; // 347 355 708 00224
+
+// Generates a random SIRET number (controlling the number of sequential digits)
+echo $faker->siret(3); // 438 472 611 01513
+
+```
+
+### `Faker\Provider\fr_FR\Address`
+
+```php
+<?php
+
+// Generates a random department name
+echo $faker->departmentName; // "Haut-Rhin"
+
+// Generates a random department number
+echo $faker->departmentNumber; // "2B"
+
+// Generates a random department info (department number => department name)
+$faker->department; // array('18' => 'Cher');
+
+// Generates a random region
+echo $faker->region; // "Saint-Pierre-et-Miquelon"
+
+```
+
+### `Faker\Provider\da_DK\Person`
+
+```php
+<?php
+
+// Generates a random CPR number
+echo $faker->cpr; // "051280-2387"
+
+```
+
+### `Faker\Provider\da_DK\Address`
+
+```php
+<?php
+
+// Generates a random 'kommune' name
+echo $faker->kommune; // "Frederiksberg"
+
+// Generates a random region name
+echo $faker->region; // "Region Sjælland"
+
+```
+
+### `Faker\Provider\da_DK\Company`
+
+```php
+<?php
+
+// Generates a random CVR number
+echo $faker->cvr; // "32458723"
+
+// Generates a random P number
+echo $faker->p; // "5398237590"
+
+```
+
+
+## License
+
+Faker is released under the MIT Licence. See the bundled LICENSE file for details.

+ 54 - 0
vendor/fzaninotto/faker/src/Faker/Documentor.php

@@ -0,0 +1,54 @@
+<?php
+
+namespace Faker;
+
+class Documentor
+{
+    protected $generator;
+
+    public function __construct($generator)
+    {
+        $this->generator = $generator;
+    }
+
+    public function getFormatters()
+    {
+        $formatters = array();
+        $providers = array_reverse($this->generator->getProviders());
+        $providers[]= new \Faker\Provider\Base($this->generator);
+        foreach ($providers as $provider) {
+            $providerClass = get_class($provider);
+            $formatters[$providerClass] = array();
+            $refl = new \ReflectionObject($provider);
+            foreach ($refl->getMethods(\ReflectionMethod::IS_PUBLIC) as $reflmethod) {
+                if ($reflmethod->getDeclaringClass()->getName() == 'Faker\Provider\Base' && $providerClass != 'Faker\Provider\Base') {
+                    continue;
+                }
+                $methodName = $reflmethod->name;
+                if ($reflmethod->isConstructor()) {
+                    continue;
+                }
+                $parameters = array();
+                foreach ($reflmethod->getParameters() as $reflparameter) {
+                    $parameter = '$'. $reflparameter->getName();
+                    if ($reflparameter->isDefaultValueAvailable()) {
+                        $parameter .= ' = ' . var_export($reflparameter->getDefaultValue(), true);
+                    }
+                    $parameters []= $parameter;
+                }
+                $parameters = $parameters ? '('. join(', ', $parameters) . ')' : '';
+                $example = $this->generator->format($methodName);
+                if (is_array($example)) {
+                    $example = "array('". join("', '", $example) . "')";
+                } elseif ($example instanceof \DateTime) {
+                    $example = "DateTime('" . $example->format('Y-m-d H:i:s') . "')";
+                } else {
+                    $example = var_export($example, true);
+                }
+                $formatters[$providerClass][$methodName . $parameters] = $example;
+            }
+        }
+
+        return $formatters;
+    }
+}

+ 46 - 0
vendor/fzaninotto/faker/src/Faker/Factory.php

@@ -0,0 +1,46 @@
+<?php
+
+namespace Faker;
+
+class Factory
+{
+    const DEFAULT_LOCALE = 'en_US';
+
+    protected static $defaultProviders = array('Person', 'Address', 'PhoneNumber', 'Company', 'Lorem', 'Internet', 'DateTime', 'Miscellaneous', 'UserAgent', 'Uuid');
+
+    public static function create($locale = self::DEFAULT_LOCALE)
+    {
+        $generator = new Generator();
+        foreach (static::$defaultProviders as $provider) {
+            $providerClassName = self::getProviderClassname($provider, $locale);
+            $generator->addProvider(new $providerClassName($generator));
+        }
+
+        return $generator;
+    }
+
+    protected static function getProviderClassname($provider, $locale = '')
+    {
+        if ($providerClass = self::findProviderClassname($provider, $locale)) {
+            return $providerClass;
+        }
+        // fallback to default locale
+        if ($providerClass = self::findProviderClassname($provider, static::DEFAULT_LOCALE)) {
+            return $providerClass;
+        }
+        // fallback to no locale
+        $providerClass = self::findProviderClassname($provider);
+        if (class_exists($providerClass)) {
+            return $providerClass;
+        }
+        throw new \InvalidArgumentException(sprintf('Unable to find provider "%s" with locale "%s"', $provider, $locale));
+    }
+
+    protected static function findProviderClassname($provider, $locale = '')
+    {
+        $providerClass = 'Faker\\' . ($locale ? sprintf('Provider\%s\%s', $locale, $provider) : sprintf('Provider\%s', $provider));
+        if (class_exists($providerClass, true)) {
+            return $providerClass;
+        }
+    }
+}

+ 73 - 0
vendor/fzaninotto/faker/src/Faker/Generator.php

@@ -0,0 +1,73 @@
+<?php
+
+namespace Faker;
+
+class Generator
+{
+    protected $providers = array();
+    protected $formatters = array();
+
+    public function addProvider($provider)
+    {
+        array_unshift($this->providers, $provider);
+    }
+
+    public function getProviders()
+    {
+        return $this->providers;
+    }
+
+    public function seed($seed = null)
+    {
+        mt_srand($seed);
+    }
+
+    public function format($formatter, $arguments = array())
+    {
+        return call_user_func_array($this->getFormatter($formatter), $arguments);
+    }
+
+    /**
+     * @return Callable
+     */
+    public function getFormatter($formatter)
+    {
+        if (isset($this->formatters[$formatter])) {
+            return $this->formatters[$formatter];
+        }
+        foreach ($this->providers as $provider) {
+            if (method_exists($provider, $formatter)) {
+                $this->formatters[$formatter] = array($provider, $formatter);
+
+                return $this->formatters[$formatter];
+            }
+        }
+        throw new \InvalidArgumentException(sprintf('Unknown formatter "%s"', $formatter));
+    }
+
+    /**
+     * Replaces tokens ('{{ tokenName }}') with the result from the token method call
+     *
+     * @param  string $string String that needs to bet parsed
+     * @return string
+     */
+    public function parse($string)
+    {
+        return preg_replace_callback('/\{\{\s?(\w+)\s?\}\}/', array($this, 'callFormatWithMatches'), $string);
+    }
+
+    protected function callFormatWithMatches($matches)
+    {
+        return $this->format($matches[1]);
+    }
+
+    public function __get($attribute)
+    {
+        return $this->format($attribute);
+    }
+
+    public function __call($method, $attributes)
+    {
+        return $this->format($method, $attributes);
+    }
+}

+ 62 - 0
vendor/fzaninotto/faker/src/Faker/Guesser/Name.php

@@ -0,0 +1,62 @@
+<?php
+
+namespace Faker\Guesser;
+
+use \Faker\Provider\Base;
+
+class Name
+{
+    protected $generator;
+
+    public function __construct(\Faker\Generator $generator)
+    {
+        $this->generator = $generator;
+    }
+
+    public function guessFormat($name)
+    {
+        $name = Base::toLower($name);
+        $generator = $this->generator;
+        if (preg_match('/^is[_A-Z]/', $name)) {
+            return function() use ($generator) { return $generator->boolean; };
+        }
+        if (preg_match('/(_a|A)t$/', $name)) {
+            return function() use ($generator) { return $generator->dateTime; };
+        }
+        switch ($name) {
+            case 'first_name':
+            case 'firstname':
+                return function() use ($generator) { return $generator->firstName; };
+            case 'last_name':
+            case 'lastname':
+                return function() use ($generator) { return $generator->lastName; };
+            case 'username':
+            case 'login':
+                return function() use ($generator) { return $generator->userName; };
+            case 'email':
+                return function() use ($generator) { return $generator->email; };
+            case 'phone_number':
+            case 'phonenumber':
+            case 'phone':
+                return function() use ($generator) { return $generator->phoneNumber; };
+            case 'address':
+                return function() use ($generator) { return $generator->address; };
+            case 'city':
+                return function() use ($generator) { return $generator->city; };
+            case 'streetaddress':
+                return function() use ($generator) { return $generator->streetAddress; };
+            case 'postcode':
+            case 'zipcode':
+                return function() use ($generator) { return $generator->postcode; };
+            case 'state':
+                return function() use ($generator) { return $generator->state; };
+            case 'country':
+                return function() use ($generator) { return $generator->country; };
+            case 'title':
+                return function() use ($generator) { return $generator->sentence; };
+            case 'body':
+            case 'summary':
+                return function() use ($generator) { return $generator->text; };
+        }
+    }
+}

+ 50 - 0
vendor/fzaninotto/faker/src/Faker/ORM/Doctrine/ColumnTypeGuesser.php

@@ -0,0 +1,50 @@
+<?php
+
+namespace Faker\ORM\Doctrine;
+
+use Doctrine\Common\Persistence\Mapping\ClassMetadata;
+
+class ColumnTypeGuesser
+{
+    protected $generator;
+
+    public function __construct(\Faker\Generator $generator)
+    {
+        $this->generator = $generator;
+    }
+
+    public function guessFormat($fieldName, ClassMetadata $class)
+    {
+        $generator = $this->generator;
+        $type = $class->getTypeOfField($fieldName);
+        switch ($type) {
+            case 'boolean':
+                return function() use ($generator) { return $generator->boolean; };
+            case 'decimal':
+                $size = isset($class->fieldMappings[$fieldName]['precision']) ? $class->fieldMappings[$fieldName]['precision'] : 2;
+
+                return function() use ($generator, $size) { return $generator->randomNumber($size + 2) / 100; };
+            case 'smallint':
+                return function() { return mt_rand(0,65535); };
+            case 'integer':
+                return function() { return mt_rand(0,intval('4294967295')); };
+            case 'bigint':
+                return function() { return mt_rand(0,intval('18446744073709551615')); };
+            case 'float':
+                return function() { return mt_rand(0,intval('4294967295'))/mt_rand(1,intval('4294967295')); };
+            case 'string':
+                $size = isset($class->fieldMappings[$fieldName]['length']) ? $class->fieldMappings[$fieldName]['length'] : 255;
+
+                return function() use ($generator, $size) { return $generator->text($size); };
+            case 'text':
+                return function() use ($generator) { return $generator->text; };
+            case 'datetime':
+            case 'date':
+                case 'time':
+                return function() use ($generator) { return $generator->datetime; };
+            default:
+                // no smart way to guess what the user expects here
+                return null;
+        }
+    }
+}

+ 184 - 0
vendor/fzaninotto/faker/src/Faker/ORM/Doctrine/EntityPopulator.php

@@ -0,0 +1,184 @@
+<?php
+
+namespace Faker\ORM\Doctrine;
+
+use Doctrine\ORM\Mapping\ClassMetadata;
+use Faker\ORM\Doctrine\ColumnTypeGuesser;
+
+/**
+ * Service class for populating a table through a Propel ActiveRecord class.
+ */
+class EntityPopulator
+{
+    /**
+     * @var ClassMetadata
+     */
+    protected $class;
+    /**
+     * @var array
+     */
+    protected $columnFormatters = array();
+    /**
+     * @var array
+     */
+    protected $modifiers = array();
+
+    /**
+     * Class constructor.
+     *
+     * @param ClassMetadata $class
+     */
+    public function __construct(ClassMetadata $class)
+    {
+        $this->class = $class;
+    }
+
+    /**
+     * @return string
+     */
+    public function getClass()
+    {
+        return $this->class->getName();
+    }
+
+    public function setColumnFormatters($columnFormatters)
+    {
+        $this->columnFormatters = $columnFormatters;
+    }
+
+    public function getColumnFormatters()
+    {
+        return $this->columnFormatters;
+    }
+
+    public function mergeColumnFormattersWith($columnFormatters)
+    {
+        $this->columnFormatters = array_merge($this->columnFormatters, $columnFormatters);
+    }
+
+    public function setModifiers(array $modifiers)
+    {
+        $this->modifiers = $modifiers;
+    }
+
+    public function getModifiers()
+    {
+        return $this->modifiers;
+    }
+
+    public function mergeModifiersWith(array $modifiers)
+    {
+        $this->modifiers = array_merge($this->modifiers, $modifiers);
+    }
+
+    public function guessColumnFormatters(\Faker\Generator $generator)
+    {
+        $formatters = array();
+        $class = $this->class;
+        $nameGuesser = new \Faker\Guesser\Name($generator);
+        $columnTypeGuesser = new ColumnTypeGuesser($generator);
+        foreach ($this->class->getFieldNames() AS $fieldName) {
+            if ($this->class->isIdentifier($fieldName) || !$this->class->hasField($fieldName)) {
+                continue;
+            }
+
+            if ($formatter = $nameGuesser->guessFormat($fieldName)) {
+                $formatters[$fieldName] = $formatter;
+                continue;
+            }
+            if ($formatter = $columnTypeGuesser->guessFormat($fieldName, $this->class)) {
+                $formatters[$fieldName] = $formatter;
+                continue;
+            }
+        }
+
+        foreach ($this->class->getAssociationNames() AS $assocName) {
+            if ($this->class->isCollectionValuedAssociation($assocName)) {
+                continue;
+            }
+
+            $relatedClass = $this->class->getAssociationTargetClass($assocName);
+
+            $unique = false;
+            $mappings = $this->class->getAssociationMappings();
+            foreach ($mappings as $mapping) {
+                if ($mapping['targetEntity'] == $relatedClass) {
+                    if ($mapping['type'] == ClassMetadata::ONE_TO_ONE) {
+                        $unique = true;
+                        break;
+                    }
+                }
+            }
+
+            $index = 0;
+            $formatters[$assocName] = function($inserted) use ($relatedClass, &$index, $unique) {
+                if ($unique && isset($inserted[$relatedClass])) {
+                    return $inserted[$relatedClass][$index++];
+                } else if (isset($inserted[$relatedClass])) {
+                    return $inserted[$relatedClass][mt_rand(0, count($inserted[$relatedClass]) - 1)];
+                }
+                return null;
+            };
+        }
+
+        return $formatters;
+    }
+
+    /**
+     * Insert one new record using the Entity class.
+     */
+    public function execute($manager, $insertedEntities, $generateId = false)
+    {
+        $obj = $this->class->newInstance();
+
+        $this->fillColumns($obj, $insertedEntities);
+        $this->callMethods($obj, $insertedEntities);
+
+        if ($generateId) {
+            $idsName = $this->class->getIdentifier();
+            foreach ($idsName as $idName) {
+                $id = $this->generateId($obj, $idName, $manager);
+                $this->class->reflFields[$idName]->setValue($obj, $id);
+            }
+        }
+
+        $manager->persist($obj);
+
+        return $obj;
+    }
+
+    private function fillColumns($obj, $insertedEntities)
+    {
+        foreach ($this->columnFormatters as $field => $format) {
+            if (null !== $format) {
+                $value = is_callable($format) ? $format($insertedEntities, $obj) : $format;
+                $this->class->reflFields[$field]->setValue($obj, $value);
+            }
+        }
+    }
+
+    private function callMethods($obj, $insertedEntities)
+    {
+        foreach ($this->getModifiers() as $modifier) {
+            $modifier($obj, $insertedEntities);
+        }
+    }
+
+    private function generateId($obj, $column, $manager)
+    {
+        /* @var $repository \Doctrine\ORM\EntityRepository */
+        $repository = $manager->getRepository(get_class($obj));
+        $result = $repository->createQueryBuilder('e')
+                ->select(sprintf('e.%s', $column))
+                ->getQuery()
+                ->getResult();
+        $ids = array_map('current', $result);
+
+        $id = null;
+        do {
+            $id = rand();
+        } while(in_array($id, $ids));
+
+        return $id;
+    }
+}

+ 79 - 0
vendor/fzaninotto/faker/src/Faker/ORM/Doctrine/Populator.php

@@ -0,0 +1,79 @@
+<?php
+
+namespace Faker\ORM\Doctrine;
+
+use Doctrine\Common\Persistence\ObjectManager;
+
+/**
+ * Service class for populating a database using the Doctrine ORM or ODM.
+ * A Populator can populate several tables using ActiveRecord classes.
+ */
+class Populator
+{
+    protected $generator;
+    protected $manager;
+    protected $entities = array();
+    protected $quantities = array();
+    protected $generateId = array();
+
+    public function __construct(\Faker\Generator $generator, ObjectManager $manager = null)
+    {
+        $this->generator = $generator;
+        $this->manager = $manager;
+    }
+
+    /**
+     * Add an order for the generation of $number records for $entity.
+     *
+     * @param mixed $entity A Doctrine classname, or a \Faker\ORM\Doctrine\EntityPopulator instance
+     * @param int   $number The number of entities to populate
+     */
+    public function addEntity($entity, $number, $customColumnFormatters = array(), $customModifiers = array(), $generateId = false)
+    {
+        if (!$entity instanceof \Faker\ORM\Doctrine\EntityPopulator) {
+            if (null === $this->manager) {              
+                throw new \InvalidArgumentException("No entity manager passed to Doctrine Populator.");
+            }
+            $entity = new \Faker\ORM\Doctrine\EntityPopulator($this->manager->getClassMetadata($entity));
+        }
+        $entity->setColumnFormatters($entity->guessColumnFormatters($this->generator));
+        if ($customColumnFormatters) {
+            $entity->mergeColumnFormattersWith($customColumnFormatters);
+        }
+        $entity->mergeModifiersWith($customModifiers);
+        $this->generateId[$entity->getClass()] = $generateId;
+
+        $class = $entity->getClass();
+        $this->entities[$class] = $entity;
+        $this->quantities[$class] = $number;
+    }
+
+    /**
+     * Populate the database using all the Entity classes previously added.
+     *
+     * @param EntityManager $entityManager A Propel connection object
+     *
+     * @return array A list of the inserted PKs
+     */
+    public function execute($entityManager = null)
+    {
+        if (null === $entityManager) {
+            $entityManager = $this->manager;
+        }
+        if (null === $entityManager) {
+            throw new \InvalidArgumentException("No entity manager passed to Doctrine Populator.");
+        }
+
+        $insertedEntities = array();
+        foreach ($this->quantities as $class => $number) {
+            $generateId = $this->generateId[$class];
+            for ($i=0; $i < $number; $i++) {
+                $insertedEntities[$class][]= $this->entities[$class]->execute($entityManager, $insertedEntities, $generateId);
+            }
+            $entityManager->flush();
+        }
+
+        return $insertedEntities;
+    }
+
+}

+ 35 - 0
vendor/fzaninotto/faker/src/Faker/ORM/Mandango/ColumnTypeGuesser.php

@@ -0,0 +1,35 @@
+<?php
+
+namespace Faker\ORM\Mandango;
+
+class ColumnTypeGuesser
+{
+    protected $generator;
+
+    public function __construct(\Faker\Generator $generator)
+    {
+        $this->generator = $generator;
+    }
+
+    public function guessFormat($field)
+    {
+        $generator = $this->generator;
+        switch ($field['type']) {
+            case 'boolean':
+                return function() use ($generator) { return $generator->boolean; };
+            case 'integer':
+                return function() { return mt_rand(0,intval('4294967295')); };
+            case 'float':
+                return function() { return mt_rand(0,intval('4294967295'))/mt_rand(1,intval('4294967295')); };
+            case 'string':
+                return function() use ($generator) { return $generator->text(255); };
+            case 'string':
+                return function() use ($generator) { return $generator->text; };
+            case 'date':
+                return function() use ($generator) { return $generator->datetime; };
+            default:
+                // no smart way to guess what the user expects here
+                return null;
+        }
+    }
+}

+ 112 - 0
vendor/fzaninotto/faker/src/Faker/ORM/Mandango/EntityPopulator.php

@@ -0,0 +1,112 @@
+<?php
+
+namespace Faker\ORM\Mandango;
+
+use Mandango\Mandango;
+
+/**
+ * Service class for populating a table through a Mandango ActiveRecord class.
+ */
+class EntityPopulator
+{
+    protected $class;
+    protected $columnFormatters = array();
+
+    /**
+     * Class constructor.
+     *
+     * @param string $class A Mandango ActiveRecord classname
+     */
+    public function __construct($class)
+    {
+        $this->class = $class;
+    }
+
+    public function getClass()
+    {
+        return $this->class;
+    }
+
+    public function setColumnFormatters($columnFormatters)
+    {
+        $this->columnFormatters = $columnFormatters;
+    }
+
+    public function getColumnFormatters()
+    {
+        return $this->columnFormatters;
+    }
+
+    public function mergeColumnFormattersWith($columnFormatters)
+    {
+        $this->columnFormatters = array_merge($this->columnFormatters, $columnFormatters);
+    }
+
+    public function guessColumnFormatters(\Faker\Generator $generator, Mandango $mandango)
+    {
+        $formatters = array();
+        $nameGuesser = new \Faker\Guesser\Name($generator);
+        $columnTypeGuesser = new \Faker\ORM\Mandango\ColumnTypeGuesser($generator);
+
+        $metadata = $mandango->getMetadata($this->class);
+
+        // fields
+        foreach ($metadata['fields'] as $fieldName => $field) {
+            if ($formatter = $nameGuesser->guessFormat($fieldName)) {
+                $formatters[$fieldName] = $formatter;
+                continue;
+            }
+            if ($formatter = $columnTypeGuesser->guessFormat($field)) {
+                $formatters[$fieldName] = $formatter;
+                continue;
+            }
+        }
+
+        // references
+        foreach (array_merge($metadata['referencesOne'], $metadata['referencesMany']) as $referenceName => $reference) {
+            if (!isset($reference['class'])) {
+                continue;
+            }
+            $referenceClass = $reference['class'];
+
+            $formatters[$referenceName] = function ($insertedEntities) use ($referenceClass) {
+                if (isset($insertedEntities[$referenceClass])) {
+                    return $insertedEntities[$referenceClass][array_rand($insertedEntities[$referenceClass])];
+                }
+            };
+        }
+
+        return $formatters;
+    }
+
+    /**
+     * Insert one new record using the Entity class.
+     */
+    public function execute(Mandango $mandango, $insertedEntities)
+    {
+        $metadata = $mandango->getMetadata($this->class);
+
+        $obj = $mandango->create($this->class);
+        foreach ($this->columnFormatters as $column => $format) {
+            if (null !== $format) {
+                $value =  is_callable($format) ? $format($insertedEntities, $obj) : $format;
+
+                if (
+                    isset($metadata['fields'][$column])
+                    ||
+                    isset($metadata['referencesOne'][$column])
+                ) {
+                    $obj->set($column, $value);
+                }
+
+                if (isset($metadata['referencesMany'][$column])) {
+                    $adder = 'add'.ucfirst($column);
+                    $obj->$adder($value);
+                }
+            }
+        }
+        $mandango->persist($obj);
+
+        return $obj;
+    }
+}

+ 61 - 0
vendor/fzaninotto/faker/src/Faker/ORM/Mandango/Populator.php

@@ -0,0 +1,61 @@
+<?php
+
+namespace Faker\ORM\Mandango;
+
+use Mandango\Mandango;
+
+/**
+ * Service class for populating a database using Mandango.
+ * A Populator can populate several tables using ActiveRecord classes.
+ */
+class Populator
+{
+    protected $generator;
+    protected $mandango;
+    protected $entities = array();
+    protected $quantities = array();
+
+    public function __construct(\Faker\Generator $generator, Mandango $mandango)
+    {
+        $this->generator = $generator;
+        $this->mandango = $mandango;
+    }
+
+    /**
+     * Add an order for the generation of $number records for $entity.
+     *
+     * @param mixed $entity A Propel ActiveRecord classname, or a \Faker\ORM\Propel\EntityPopulator instance
+     * @param int   $number The number of entities to populate
+     */
+    public function addEntity($entity, $number, $customColumnFormatters = array())
+    {
+        if (!$entity instanceof \Faker\ORM\Mandango\EntityPopulator) {
+            $entity = new \Faker\ORM\Mandango\EntityPopulator($entity);
+        }
+        $entity->setColumnFormatters($entity->guessColumnFormatters($this->generator, $this->mandango));
+        if ($customColumnFormatters) {
+            $entity->mergeColumnFormattersWith($customColumnFormatters);
+        }
+        $class = $entity->getClass();
+        $this->entities[$class] = $entity;
+        $this->quantities[$class] = $number;
+    }
+
+    /**
+     * Populate the database using all the Entity classes previously added.
+     *
+     * @return array A list of the inserted entities.
+     */
+    public function execute()
+    {
+        $insertedEntities = array();
+        foreach ($this->quantities as $class => $number) {
+            for ($i=0; $i < $number; $i++) {
+                $insertedEntities[$class][]= $this->entities[$class]->execute($this->mandango, $insertedEntities);
+            }
+        }
+        $this->mandango->flush();
+
+        return $insertedEntities;
+    }
+}

+ 72 - 0
vendor/fzaninotto/faker/src/Faker/ORM/Propel/ColumnTypeGuesser.php

@@ -0,0 +1,72 @@
+<?php
+
+namespace Faker\ORM\Propel;
+
+use \PropelColumnTypes;
+
+class ColumnTypeGuesser
+{
+    protected $generator;
+
+    public function __construct(\Faker\Generator $generator)
+    {
+        $this->generator = $generator;
+    }
+
+    public function guessFormat($column)
+    {
+        $generator = $this->generator;
+        if ($column->isTemporal()) {
+            if ($column->isEpochTemporal()) {
+                return function() use ($generator) { return $generator->dateTime; };
+            } else {
+                return function() use ($generator) { return $generator->dateTimeAD; };
+            }
+        }
+        $type = $column->getType();
+        switch ($type) {
+            case PropelColumnTypes::BOOLEAN:
+            case PropelColumnTypes::BOOLEAN_EMU:
+                return function() use ($generator) { return $generator->boolean; };
+            case PropelColumnTypes::NUMERIC:
+            case PropelColumnTypes::DECIMAL:
+                $size = $column->getSize();
+
+                return function() use ($generator, $size) { return $generator->randomNumber($size + 2) / 100; };
+            case PropelColumnTypes::TINYINT:
+                return function() { return mt_rand(0,255); };
+            case PropelColumnTypes::SMALLINT:
+                return function() { return mt_rand(0,65535); };
+            case PropelColumnTypes::INTEGER:
+                return function() { return mt_rand(0,intval('4294967295')); };
+            case PropelColumnTypes::BIGINT:
+                return function() { return mt_rand(0,intval('18446744073709551615')); };
+            case PropelColumnTypes::FLOAT:
+                return function() { return mt_rand(0,intval('4294967295'))/mt_rand(1,intval('4294967295')); };
+            case PropelColumnTypes::DOUBLE:
+            case PropelColumnTypes::REAL:
+                return function() { return mt_rand(0,intval('18446744073709551615'))/mt_rand(1,intval('18446744073709551615')); };
+            case PropelColumnTypes::CHAR:
+            case PropelColumnTypes::VARCHAR:
+            case PropelColumnTypes::BINARY:
+            case PropelColumnTypes::VARBINARY:
+                $size = $column->getSize();
+
+                return function() use ($generator, $size) { return $generator->text($size); };
+            case PropelColumnTypes::LONGVARCHAR:
+            case PropelColumnTypes::LONGVARBINARY:
+            case PropelColumnTypes::CLOB:
+            case PropelColumnTypes::CLOB_EMU:
+            case PropelColumnTypes::BLOB:
+                return function() use ($generator) { return $generator->text; };
+            case PropelColumnTypes::ENUM:
+                $valueSet = $column->getValueSet();
+
+                return function() use ($generator, $valueSet) { return $generator->randomElement($valueSet); };
+            case PropelColumnTypes::OBJECT:
+            case PropelColumnTypes::PHP_ARRAY:
+                // no smart way to guess what the user expects here
+                return null;
+        }
+    }
+}

+ 168 - 0
vendor/fzaninotto/faker/src/Faker/ORM/Propel/EntityPopulator.php

@@ -0,0 +1,168 @@
+<?php
+
+namespace Faker\ORM\Propel;
+
+use \Faker\Provider\Base;
+
+/**
+ * Service class for populating a table through a Propel ActiveRecord class.
+ */
+class EntityPopulator
+{
+    protected $class;
+    protected $columnFormatters = array();
+    protected $modifiers = array();
+
+    /**
+     * Class constructor.
+     *
+     * @param string $class A Propel ActiveRecord classname
+     */
+    public function __construct($class)
+    {
+        $this->class = $class;
+    }
+
+    public function getClass()
+    {
+        return $this->class;
+    }
+
+    public function setColumnFormatters($columnFormatters)
+    {
+        $this->columnFormatters = $columnFormatters;
+    }
+
+    public function getColumnFormatters()
+    {
+        return $this->columnFormatters;
+    }
+
+    public function mergeColumnFormattersWith($columnFormatters)
+    {
+        $this->columnFormatters = array_merge($this->columnFormatters, $columnFormatters);
+    }
+
+    public function guessColumnFormatters(\Faker\Generator $generator)
+    {
+        $formatters = array();
+        $class = $this->class;
+        $peerClass = $class::PEER;
+        $tableMap = $peerClass::getTableMap();
+        $nameGuesser = new \Faker\Guesser\Name($generator);
+        $columnTypeGuesser = new \Faker\ORM\Propel\ColumnTypeGuesser($generator);
+        foreach ($tableMap->getColumns() as $columnMap) {
+            // skip behavior columns, handled by modifiers
+            if ($this->isColumnBehavior($columnMap)) {
+                continue;
+            }
+            if ($columnMap->isForeignKey()) {
+                $relatedClass = $columnMap->getRelation()->getForeignTable()->getClassname();
+                $formatters[$columnMap->getPhpName()] = function($inserted) use ($relatedClass) { return isset($inserted[$relatedClass]) ? $inserted[$relatedClass][mt_rand(0, count($inserted[$relatedClass]) - 1)] : null; };
+                continue;
+            }
+            if ($columnMap->isPrimaryKey()) {
+                continue;
+            }
+            if ($formatter = $nameGuesser->guessFormat($columnMap->getPhpName())) {
+                $formatters[$columnMap->getPhpName()] = $formatter;
+                continue;
+            }
+            if ($formatter = $columnTypeGuesser->guessFormat($columnMap)) {
+                $formatters[$columnMap->getPhpName()] = $formatter;
+                continue;
+            }
+        }
+
+        return $formatters;
+    }
+
+    protected function isColumnBehavior($columnMap)
+    {
+        foreach ($columnMap->getTable()->getBehaviors() as $name => $params) {
+            $columnName = Base::toLower($columnMap->getName());
+            switch ($name) {
+                case 'nested_set':
+                    $columnNames = array($params['left_column'], $params['right_column'], $params['level_column']);
+                    if (in_array($columnName, $columnNames)) {
+                        return true;
+                    }
+                    break;
+                case 'timestampable':
+                    $columnNames = array($params['create_column'], $params['update_column']);
+                    if (in_array($columnName, $columnNames)) {
+                        return true;
+                    }
+                    break;
+            }
+        }
+
+        return false;
+    }
+
+    public function setModifiers($modifiers)
+    {
+        $this->modifiers = $modifiers;
+    }
+
+    public function getModifiers()
+    {
+        return $this->modifiers;
+    }
+
+    public function mergeModifiersWith($modifiers)
+    {
+        $this->modifiers = array_merge($this->modifiers, $modifiers);
+    }
+
+    public function guessModifiers(\Faker\Generator $generator)
+    {
+        $modifiers = array();
+        $class = $this->class;
+        $peerClass = $class::PEER;
+        $tableMap = $peerClass::getTableMap();
+        foreach ($tableMap->getBehaviors() as $name => $params) {
+            switch ($name) {
+                case 'nested_set':
+                    $modifiers['nested_set'] = function($obj, $inserted) use ($class, $generator) {
+                        if (isset($inserted[$class])) {
+                            $queryClass = $class . 'Query';
+                            $parent = $queryClass::create()->findPk($generator->randomElement($inserted[$class]));
+                            $obj->insertAsLastChildOf($parent);
+                        } else {
+                            $obj->makeRoot();
+                        }
+                    };
+                    break;
+                case 'sortable':
+                    $modifiers['sortable'] = function($obj, $inserted) use ($class, $generator) {
+                        $maxRank = isset($inserted[$class]) ? count($inserted[$class]) : 0;
+                        $obj->insertAtRank(mt_rand(1, $maxRank + 1));
+                    };
+                    break;
+            }
+        }
+
+        return $modifiers;
+    }
+
+    /**
+     * Insert one new record using the Entity class.
+     */
+    public function execute($con, $insertedEntities)
+    {
+        $obj = new $this->class();
+        foreach ($this->getColumnFormatters() as $column => $format) {
+            if (null !== $format) {
+                $obj->setByName($column, is_callable($format) ? $format($insertedEntities, $obj) : $format);
+            }
+        }
+        foreach ($this->getModifiers() as $modifier) {
+            $modifier($obj, $insertedEntities);
+        }
+        $obj->save($con);
+
+        return $obj->getPrimaryKey();
+    }
+
+}

+ 87 - 0
vendor/fzaninotto/faker/src/Faker/ORM/Propel/Populator.php

@@ -0,0 +1,87 @@
+<?php
+
+namespace Faker\ORM\Propel;
+
+/**
+ * Service class for populating a database using the Propel ORM.
+ * A Populator can populate several tables using ActiveRecord classes.
+ */
+class Populator
+{
+    protected $generator;
+    protected $entities = array();
+    protected $quantities = array();
+
+    public function __construct(\Faker\Generator $generator)
+    {
+        $this->generator = $generator;
+    }
+
+    /**
+     * Add an order for the generation of $number records for $entity.
+     *
+     * @param mixed $entity A Propel ActiveRecord classname, or a \Faker\ORM\Propel\EntityPopulator instance
+     * @param int   $number The number of entities to populate
+     */
+    public function addEntity($entity, $number, $customColumnFormatters = array(), $customModifiers = array())
+    {
+        if (!$entity instanceof \Faker\ORM\Propel\EntityPopulator) {
+            $entity = new \Faker\ORM\Propel\EntityPopulator($entity);
+        }
+        $entity->setColumnFormatters($entity->guessColumnFormatters($this->generator));
+        if ($customColumnFormatters) {
+            $entity->mergeColumnFormattersWith($customColumnFormatters);
+        }
+        $entity->setModifiers($entity->guessModifiers($this->generator));
+        if ($customModifiers) {
+            $entity->mergeModifiersWith($customModifiers);
+        }
+        $class = $entity->getClass();
+        $this->entities[$class] = $entity;
+        $this->quantities[$class] = $number;
+    }
+
+    /**
+     * Populate the database using all the Entity classes previously added.
+     *
+     * @param PropelPDO $con A Propel connection object
+     *
+     * @return array A list of the inserted PKs
+     */
+    public function execute($con = null)
+    {
+        if (null === $con) {
+            $con = $this->getConnection();
+        }
+        $isInstancePoolingEnabled = \Propel::isInstancePoolingEnabled();
+        \Propel::disableInstancePooling();
+        $insertedEntities = array();
+        $con->beginTransaction();
+        foreach ($this->quantities as $class => $number) {
+            for ($i=0; $i < $number; $i++) {
+                $insertedEntities[$class][]= $this->entities[$class]->execute($con, $insertedEntities);
+            }
+        }
+        $con->commit();
+        if ($isInstancePoolingEnabled) {
+            \Propel::enableInstancePooling();
+        }
+
+        return $insertedEntities;
+    }
+
+    protected function getConnection()
+    {
+        // use the first connection available
+        $class = key($this->entities);
+
+        if (!$class) {
+            throw new \RuntimeException('No class found from entities. Did you add entities to the Populator ?');
+        }
+
+        $peer = $class::PEER;
+
+        return \Propel::getConnection($peer::DATABASE_NAME, \Propel::CONNECTION_WRITE);
+    }
+
+}

+ 121 - 0
vendor/fzaninotto/faker/src/Faker/Provider/Address.php

@@ -0,0 +1,121 @@
+<?php
+
+namespace Faker\Provider;
+
+class Address extends \Faker\Provider\Base
+{
+    protected static $citySuffix = array('Ville');
+    protected static $streetSuffix = array('Street');
+    protected static $cityFormats = array(
+        '{{firstName}}{{citySuffix}}',
+    );
+    protected static $streetNameFormats = array(
+        '{{lastName}} {{streetSuffix}}'
+    );
+    protected static $streetAddressFormats = array(
+        '{{buildingNumber}} {{streetName}}'
+    );
+    protected static $addressFormats = array(
+        '{{streetAddress}} {{postcode}} {{city}}',
+    );
+
+    protected static $buildingNumber = array('##');
+    protected static $postcode = array('#####');
+    protected static $country = array();
+
+    /**
+     * @example 'town'
+     */
+    public static function citySuffix()
+    {
+        return static::randomElement(static::$citySuffix);
+    }
+
+    /**
+     * @example 'Avenue'
+     */
+    public static function streetSuffix()
+    {
+        return static::randomElement(static::$streetSuffix);
+    }
+
+    /**
+     * @example '791'
+     */
+    public static function buildingNumber()
+    {
+        return static::numerify(static::randomElement(static::$buildingNumber));
+    }
+
+    /**
+     * @example 'Sashabury'
+     */
+    public function city()
+    {
+        $format = static::randomElement(static::$cityFormats);
+
+        return $this->generator->parse($format);
+    }
+
+    /**
+     * @example 'Crist Parks'
+     */
+    public function streetName()
+    {
+        $format = static::randomElement(static::$streetNameFormats);
+
+        return $this->generator->parse($format);
+    }
+
+    /**
+     * @example '791 Crist Parks'
+     */
+    public function streetAddress()
+    {
+        $format = static::randomElement(static::$streetAddressFormats);
+
+        return $this->generator->parse($format);
+    }
+
+    /**
+     * @example 86039-9874
+     */
+    public static function postcode()
+    {
+        return static::toUpper(static::bothify(static::randomElement(static::$postcode)));
+    }
+
+    /**
+     * @example '791 Crist Parks, Sashabury, IL 86039-9874'
+     */
+    public function address()
+    {
+        $format = static::randomElement(static::$addressFormats);
+
+        return $this->generator->parse($format);
+    }
+
+    /**
+     * @example 'Japan'
+     */
+    public static function country()
+    {
+        return static::randomElement(static::$country);
+    }
+
+    /**
+     * @example '77.147489'
+     */
+    public static function latitude()
+    {
+        return number_format(mt_rand(-90000000, 90000000)/1000000, 6);
+    }
+
+    /**
+     * @example '86.211205'
+     */
+    public static function longitude()
+    {
+        return number_format(mt_rand(-180000000, 180000000)/1000000, 6);
+    }
+}

+ 188 - 0
vendor/fzaninotto/faker/src/Faker/Provider/Base.php

@@ -0,0 +1,188 @@
+<?php
+
+namespace Faker\Provider;
+
+use Faker\Generator;
+
+class Base
+{
+    /**
+     * @var \Faker\Generator
+     */
+    protected $generator;
+
+    /**
+     * @param \Faker\Generator $generator
+     */
+    public function __construct(Generator $generator)
+    {
+        $this->generator = $generator;
+    }
+
+    /**
+     * Returns a random number between 0 and 9
+     *
+     * @return integer
+     */
+    public static function randomDigit()
+    {
+        return mt_rand(0, 9);
+    }
+
+    /**
+     * Returns a random number between 1 and 9
+     *
+     * @return integer
+     */
+    public static function randomDigitNotNull()
+    {
+        return mt_rand(1, 9);
+    }
+
+    /**
+     * Returns a random number with 0 to $nbDigits digits
+     *
+     * If $upTo is passed, it returns a number between $nbDigits (read as from) and $upTo
+     *
+     * @param integer $nbDigits
+     * @param integer $upTo
+     * @example 79907610
+     *
+     * @return integer
+     */
+    public static function randomNumber($nbDigits = null, $upTo = null)
+    {
+        if (null === $nbDigits) {
+            $nbDigits = static::randomDigit();
+        }
+
+        if (null !== $upTo) {
+            return static::numberBetween($nbDigits, $upTo);
+        }
+
+        return mt_rand(0, pow(10, $nbDigits) - 1);
+    }
+
+    /**
+     * Return a random float number
+     * 
+     * @param int $nbMaxDecimals
+     * @param int|float $min
+     * @param int|float $max
+     * @example 48.8932
+     * 
+     * @return float
+     */
+    public static function randomFloat($nbMaxDecimals = null, $min = 0, $max = null)
+    {
+        if (null === $nbMaxDecimals) {
+            $nbMaxDecimals = static::randomDigit();
+        }
+        
+        if (null === $max) {
+            $max = static::randomNumber();
+        }
+        
+        if ($min > $max) {
+            $tmp = $min;
+            $min = $max;
+            $max = $tmp;
+        }
+        
+        return round($min + mt_rand() / mt_getrandmax() * ($max - $min), $nbMaxDecimals);
+    }
+    
+    /**
+     * Returns a random number between $from and $to
+     *
+     * @param integer $from
+     * @param integer $to
+     * @example 79907610
+     *
+     * @return integer
+     */
+    public static function numberBetween($from = null, $to = null)
+    {
+        return mt_rand($from ?: 0, $to ?: 2147483647); // 32bit compat default
+    }
+
+    /**
+     * Returns a random letter from a to z
+     *
+     * @return string
+     */
+    public static function randomLetter()
+    {
+        return chr(mt_rand(97, 122));
+    }
+
+    /**
+     * Returns a random element from a passed array
+     *
+     * @param  array $array
+     * @return mixed
+     */
+    public static function randomElement($array = array('a', 'b', 'c'))
+    {
+        return $array[mt_rand(0, count($array) - 1)];
+    }
+
+    /**
+     * Replaces all hash sign ('#') occurrences with a random number
+     * Replaces all percentage sign ('%') occurrences with a not null number
+     *
+     * @param  string $string String that needs to bet parsed
+     * @return string
+     */
+    public static function numerify($string = '###')
+    {
+        $string = preg_replace_callback('/\#/', 'static::randomDigit', $string);
+        $string = preg_replace_callback('/\%/', 'static::randomDigitNotNull', $string);
+
+        return $string;
+    }
+
+    /**
+     * Replaces all question mark ('?') occurrences with a random letter
+     *
+     * @param  string $string String that needs to bet parsed
+     * @return string
+     */
+    public static function lexify($string = '????')
+    {
+        return preg_replace_callback('/\?/', 'static::randomLetter', $string);
+    }
+
+    /**
+     * Replaces hash signs and question marks with random numbers and letters
+     *
+     * @param  string $string String that needs to bet parsed
+     * @return string
+     */
+    public static function bothify($string = '## ??')
+    {
+        return static::lexify(static::numerify($string));
+    }
+
+    /**
+     * Converts string to lowercase.
+     * Uses mb_string extension if available
+     * @param  string $string String that should be converted to lowercase
+     * @return string
+     */
+    public static function toLower($string = '')
+    {
+        return extension_loaded('mbstring') ? mb_strtolower($string, 'UTF-8') : strtolower($string);
+    }
+
+    /**
+     * Converts string to uppercase.
+     * Uses mb_string extension if available
+     * @param  string $string String that should be converted to uppercase
+     * @return string
+     */
+    public static function toUpper($string = '')
+    {
+        return extension_loaded('mbstring') ? mb_strtoupper($string, 'UTF-8') : strtoupper($string);
+    }
+}

+ 30 - 0
vendor/fzaninotto/faker/src/Faker/Provider/Company.php

@@ -0,0 +1,30 @@
+<?php
+
+namespace Faker\Provider;
+
+class Company extends \Faker\Provider\Base
+{
+    protected static $formats = array(
+        '{{lastName}} {{companySuffix}}',
+    );
+
+    protected static $companySuffix = array('Ltd');
+
+    /**
+     * @example 'Acme Ltd'
+     */
+    public function company()
+    {
+        $format = static::randomElement(static::$formats);
+
+        return $this->generator->parse($format);
+    }
+
+    /**
+     * @example 'Ltd'
+     */
+    public static function companySuffix()
+    {
+        return static::randomElement(static::$companySuffix);
+    }
+}

+ 188 - 0
vendor/fzaninotto/faker/src/Faker/Provider/DateTime.php

@@ -0,0 +1,188 @@
+<?php
+
+namespace Faker\Provider;
+
+class DateTime extends \Faker\Provider\Base
+{
+    protected static $century = array('I','II','III','IV','V','VI','VII','VIII','IX','X','XI','XII','XIII','XIV','XV','XVI','XVII','XVIII','XIX','XX','XX1');
+
+    /**
+     * Get a timestamp between January 1, 1970 and now
+     *
+     * @example 1061306726
+     */
+    public static function unixTime()
+    {
+        return mt_rand(0, time());
+    }
+
+    /**
+     * Get a datetime object for a date between January 1, 1970 and now
+     *
+     * @example DateTime('2005-08-16 20:39:21')
+     * @return \DateTime
+     */
+    public static function dateTime()
+    {
+        return new \DateTime('@' . static::unixTime());
+    }
+
+    /**
+     * Get a datetime object for a date between January 1, 001 and now
+     *
+     * @example DateTime('1265-03-22 21:15:52')
+     * @return \DateTime
+     */
+    public static function dateTimeAD()
+    {
+        return new \DateTime('@' . mt_rand(-62135597361, time()));
+    }
+
+    /**
+     * @example '2003-10-21T16:05:52+0000'
+     */
+    public static function iso8601()
+    {
+        return static::date(\DateTime::ISO8601);
+    }
+
+    /**
+     * Get a date string between January 1, 1970 and now
+     *
+     * @param string $format
+     * @example '2008-11-27'
+     */
+    public static function date($format = 'Y-m-d')
+    {
+        return static::dateTime()->format($format);
+    }
+
+    /**
+     * Get a time string (24h format by default)
+     *
+     * @param string $format
+     * @example '15:02:34'
+     */
+    public static function time($format = 'H:i:s')
+    {
+        return static::dateTime()->format($format);
+    }
+
+    /**
+     * Get a DateTime object based on a random date between two given dates.
+     * Accepts date strings that can be recognized by strtotime().
+     *
+     * @param string $startDate Defaults to 30 years ago
+     * @param string $endDate   Defaults to "now"
+     * @example DateTime('1999-02-02 11:42:52')
+     * @return \DateTime
+     */
+    public static function dateTimeBetween($startDate = "-30 years", $endDate = "now")
+    {
+        $startTimestamp = $startDate instanceof \DateTime ? $startDate->getTimestamp() : strtotime($startDate);
+        $endTimestamp = $endDate instanceof \DateTime ? $endDate->getTimestamp() : strtotime($endDate);
+        $timestamp = mt_rand($startTimestamp, $endTimestamp);
+
+        return new \DateTime('@' . $timestamp);
+    }
+
+    /**
+     * @example DateTime('1964-04-04 11:02:02')
+     * @return \DateTime
+     */
+    public static function dateTimeThisCentury()
+    {
+        return static::dateTimeBetween("-100 year");
+    }
+
+    /**
+     * @example DateTime('2010-03-10 05:18:58')
+     * @return \DateTime
+     */
+    public static function dateTimeThisDecade()
+    {
+        return static::dateTimeBetween("-10 year");
+    }
+
+    /**
+     * @example DateTime('2011-09-19 09:24:37')
+     * @return \DateTime
+     */
+    public static function dateTimeThisYear()
+    {
+        return static::dateTimeBetween("-1 year");
+    }
+
+    /**
+     * @example DateTime('2011-10-05 12:51:46')
+     * @return \DateTime
+     */
+    public static function dateTimeThisMonth()
+    {
+        return static::dateTimeBetween("-1 month");
+    }
+
+    /**
+     * @example 'am'
+     */
+    public static function amPm()
+    {
+        return static::dateTime()->format('a');
+    }
+
+    /**
+     * @example '22'
+     */
+    public static function dayOfMonth()
+    {
+        return static::dateTime()->format('d');
+    }
+
+    /**
+     * @example 'Tuesday'
+     */
+    public static function dayOfWeek()
+    {
+        return static::dateTime()->format('l');
+    }
+
+    /**
+     * @example '7'
+     */
+    public static function month()
+    {
+        return static::dateTime()->format('m');
+    }
+
+    /**
+     * @example 'September'
+     */
+    public static function monthName()
+    {
+        return static::dateTime()->format('F');
+    }
+
+    /**
+     * @example 1673
+     */
+    public static function year()
+    {
+        return static::dateTime()->format('Y');
+    }
+
+    /**
+     * @example 'XVII'
+     */
+    public static function century()
+    {
+        return static::randomElement(static::$century);
+    }
+
+    /**
+     * @example 'Europe/Paris'
+     */
+    public static function timezone()
+    {
+        return static::randomElement(\DateTimeZone::listIdentifiers());
+    }
+}

+ 144 - 0
vendor/fzaninotto/faker/src/Faker/Provider/Internet.php

@@ -0,0 +1,144 @@
+<?php
+
+namespace Faker\Provider;
+
+class Internet extends \Faker\Provider\Base
+{
+    protected static $safeEmailTld = array('org', 'com', 'net');
+    protected static $freeEmailDomain = array('gmail.com', 'yahoo.com', 'hotmail.com');
+    protected static $tld = array('com', 'com', 'com', 'com', 'com', 'com', 'biz', 'info', 'net', 'org');
+
+    protected static $userNameFormats = array(
+        '{{lastName}}.{{firstName}}',
+        '{{firstName}}.{{lastName}}',
+        '{{firstName}}##',
+        '?{{lastName}}',
+    );
+    protected static $emailFormats = array(
+        '{{userName}}@{{domainName}}',
+        '{{userName}}@{{freeEmailDomain}}',
+    );
+    protected static $urlFormats = array(
+        'http://www.{{domainName}}/',
+        'http://{{domainName}}/',
+    );
+
+    /**
+     * @example 'jdoe@acme.biz'
+     */
+    public function email()
+    {
+        $format = static::randomElement(static::$emailFormats);
+
+        return preg_replace('/\s/', '', $this->generator->parse($format));
+    }
+
+    /**
+     * @example 'jdoe@example.com'
+     */
+    public function safeEmail()
+    {
+        return preg_replace('/\s/', '', $this->userName() . '@' . static::safeEmailDomain());
+    }
+
+    /**
+     * @example 'jdoe@gmail.com'
+     */
+    public function freeEmail()
+    {
+        return preg_replace('/\s/', '', $this->userName() . '@' . static::freeEmailDomain());
+    }
+
+    /**
+     * @example 'jdoe@dawson.com'
+     */
+    public function companyEmail()
+    {
+        return preg_replace('/\s/', '', $this->userName() . '@' . $this->domainName());
+    }
+
+    /**
+     * @example 'gmail.com'
+     */
+    public static function freeEmailDomain()
+    {
+        return static::randomElement(static::$freeEmailDomain);
+    }
+    
+    /**
+     * @example 'example.org'
+     */
+    public static function safeEmailDomain()
+    {
+        return 'example.' . static::randomElement(static::$safeEmailTld);
+    }
+    /**
+     * @example 'jdoe'
+     */
+    public function userName()
+    {
+        $format = static::randomElement(static::$userNameFormats);
+
+        return static::toLower(static::bothify($this->generator->parse($format)));
+    }
+
+    /**
+     * @example 'tiramisu.com'
+     */
+    public function domainName()
+    {
+        return $this->domainWord() . '.' . $this->tld();
+    }
+
+    /**
+     * @example 'faber'
+     */
+    public function domainWord()
+    {
+        $company = $this->generator->format('company');
+        $companyElements = explode(' ', $company);
+        $company = $companyElements[0];
+        $company = preg_replace('/\W/', '', $company);
+
+        return static::toLower($company);
+    }
+
+    /**
+     * @example 'com'
+     */
+    public function tld()
+    {
+        return static::randomElement(static::$tld);
+    }
+
+    /**
+     * @example 'http://www.runolfsdottir.com/'
+     */
+    public function url()
+    {
+        $format = static::randomElement(static::$urlFormats);
+
+        return $this->generator->parse($format);
+    }
+
+    /**
+     * @example '237.149.115.38'
+     */
+    public function ipv4()
+    {
+        return long2ip(mt_rand(0, 1) == 0 ? mt_rand(-2147483648, 0) : mt_rand(1, 2147483647));
+    }
+
+    /**
+     * @example '35cd:186d:3e23:2986:ef9f:5b41:42a4:e6f1'
+     */
+    public function ipv6()
+    {
+        $res = array();
+        for ($i=0; $i < 8; $i++) {
+            $res []= dechex(mt_rand(0, "65535"));
+        }
+
+        return join(':', $res);
+    }
+}

+ 214 - 0
vendor/fzaninotto/faker/src/Faker/Provider/Lorem.php

@@ -0,0 +1,214 @@
+<?php
+
+namespace Faker\Provider;
+
+class Lorem extends \Faker\Provider\Base
+{
+    protected static $wordList = array(
+        'alias', 'consequatur', 'aut', 'perferendis', 'sit', 'voluptatem',
+        'accusantium', 'doloremque', 'aperiam', 'eaque','ipsa', 'quae', 'ab',
+        'illo', 'inventore', 'veritatis', 'et', 'quasi', 'architecto',
+        'beatae', 'vitae', 'dicta', 'sunt', 'explicabo', 'aspernatur', 'aut',
+        'odit', 'aut', 'fugit', 'sed', 'quia', 'consequuntur', 'magni',
+        'dolores', 'eos', 'qui', 'ratione', 'voluptatem', 'sequi', 'nesciunt',
+        'neque', 'dolorem', 'ipsum', 'quia', 'dolor', 'sit', 'amet',
+        'consectetur', 'adipisci', 'velit', 'sed', 'quia', 'non', 'numquam',
+        'eius', 'modi', 'tempora', 'incidunt', 'ut', 'labore', 'et', 'dolore',
+        'magnam', 'aliquam', 'quaerat', 'voluptatem', 'ut', 'enim', 'ad',
+        'minima', 'veniam', 'quis', 'nostrum', 'exercitationem', 'ullam',
+        'corporis', 'nemo', 'enim', 'ipsam', 'voluptatem', 'quia', 'voluptas',
+        'sit', 'suscipit', 'laboriosam', 'nisi', 'ut', 'aliquid', 'ex', 'ea',
+        'commodi', 'consequatur', 'quis', 'autem', 'vel', 'eum', 'iure',
+        'reprehenderit', 'qui', 'in', 'ea', 'voluptate', 'velit', 'esse',
+        'quam', 'nihil', 'molestiae', 'et', 'iusto', 'odio', 'dignissimos',
+        'ducimus', 'qui', 'blanditiis', 'praesentium', 'laudantium', 'totam',
+        'rem', 'voluptatum', 'deleniti', 'atque', 'corrupti', 'quos',
+        'dolores', 'et', 'quas', 'molestias', 'excepturi', 'sint',
+        'occaecati', 'cupiditate', 'non', 'provident', 'sed', 'ut',
+        'perspiciatis', 'unde', 'omnis', 'iste', 'natus', 'error',
+        'similique', 'sunt', 'in', 'culpa', 'qui', 'officia', 'deserunt',
+        'mollitia', 'animi', 'id', 'est', 'laborum', 'et', 'dolorum', 'fuga',
+        'et', 'harum', 'quidem', 'rerum', 'facilis', 'est', 'et', 'expedita',
+        'distinctio', 'nam', 'libero', 'tempore', 'cum', 'soluta', 'nobis',
+        'est', 'eligendi', 'optio', 'cumque', 'nihil', 'impedit', 'quo',
+        'porro', 'quisquam', 'est', 'qui', 'minus', 'id', 'quod', 'maxime',
+        'placeat', 'facere', 'possimus', 'omnis', 'voluptas', 'assumenda',
+        'est', 'omnis', 'dolor', 'repellendus', 'temporibus', 'autem',
+        'quibusdam', 'et', 'aut', 'consequatur', 'vel', 'illum', 'qui',
+        'dolorem', 'eum', 'fugiat', 'quo', 'voluptas', 'nulla', 'pariatur',
+        'at', 'vero', 'eos', 'et', 'accusamus', 'officiis', 'debitis', 'aut',
+        'rerum', 'necessitatibus', 'saepe', 'eveniet', 'ut', 'et',
+        'voluptates', 'repudiandae', 'sint', 'et', 'molestiae', 'non',
+        'recusandae', 'itaque', 'earum', 'rerum', 'hic', 'tenetur', 'a',
+        'sapiente', 'delectus', 'ut', 'aut', 'reiciendis', 'voluptatibus',
+        'maiores', 'doloribus', 'asperiores', 'repellat'
+    );
+
+    /**
+     * @example 'Lorem'
+     */
+    public static function word()
+    {
+        return static::randomElement(static::$wordList);
+    }
+
+    /**
+     * Generate an array of random words
+     *
+     * @example array('Lorem', 'ipsum', 'dolor')
+     * @param  integer      $nb     how many words to return
+     * @param  bool         $asText if true the sentences are returned as one string
+     * @return array|string
+     */
+    public static function words($nb = 3, $asText = false)
+    {
+        $words = array();
+        for ($i=0; $i < $nb; $i++) {
+            $words []= static::word();
+        }
+
+        return $asText ? join(' ', $words) : $words;
+    }
+
+    /**
+     * Generate a random sentence
+     *
+      * @example 'Lorem ipsum dolor sit amet.'
+     * @param integer $nbWords         around how many words the sentence should contain
+     * @param boolean $variableNbWords set to false if you want exactly $nbWords returned,
+     *                                 otherwise $nbWords may vary by +/-40% with a minimum of 1
+     * @return string
+     */
+    public static function sentence($nbWords = 6, $variableNbWords = true)
+    {
+        if ($nbWords <= 0) {
+            return '';
+        }
+        if ($variableNbWords) {
+            $nbWords = self::randomizeNbElements($nbWords);
+        }
+
+        $words = static::words($nbWords);
+        $words[0] = ucwords($words[0]);
+
+        return join($words, ' ') . '.';
+    }
+
+    /**
+     * Generate an array of sentences
+     *
+     * @example array('Lorem ipsum dolor sit amet.', 'Consectetur adipisicing eli.')
+     * @param  integer      $nb     how many sentences to return
+     * @param  bool         $asText if true the sentences are returned as one string
+     * @return array|string
+     */
+    public static function sentences($nb = 3, $asText = false)
+    {
+        $sentences = array();
+        for ($i=0; $i < $nb; $i++) {
+            $sentences []= static::sentence();
+        }
+
+        return $asText ? join(' ', $sentences) : $sentences;
+    }
+
+    /**
+     * Generate a single paragraph
+     *
+      * @example 'Sapiente sunt omnis. Ut pariatur ad autem ducimus et. Voluptas rem voluptas sint modi dolorem amet.'
+     * @param integer $nbSentences         around how many sentences the paragraph should contain
+     * @param boolean $variableNbSentences set to false if you want exactly $nbSentences returned,
+     *                                     otherwise $nbSentences may vary by +/-40% with a minimum of 1
+     * @return string
+     */
+    public static function paragraph($nbSentences = 3, $variableNbSentences = true)
+    {
+        if ($nbSentences <= 0) {
+            return '';
+        }
+        if ($variableNbSentences) {
+            $nbSentences = self::randomizeNbElements($nbSentences);
+        }
+
+        return join(static::sentences($nbSentences), ' ');
+    }
+
+    /**
+     * Generate an array of paragraphs
+     *
+     * @example array($paragraph1, $paragraph2, $paragraph3)
+     * @param  integer      $nb     how many paragraphs to return
+     * @param  bool         $asText if true the paragraphs are returned as one string, separated by two newlines
+     * @return array|string
+     */
+    public static function paragraphs($nb = 3, $asText = false)
+    {
+        $paragraphs = array();
+        for ($i=0; $i < $nb; $i++) {
+            $paragraphs []= static::paragraph();
+        }
+
+        return $asText ? join("\n\n", $paragraphs) : $paragraphs;
+    }
+
+    /**
+     * Generate a text string.
+     * Depending on the $maxNbChars, returns a string made of words, sentences, or paragraphs.
+     *
+      * @example 'Sapiente sunt omnis. Ut pariatur ad autem ducimus et. Voluptas rem voluptas sint modi dolorem amet.'
+     * @param  integer $maxNbChars Maximum number of characters the text should contain (minimum 5)
+     * @return string
+     */
+    public static function text($maxNbChars = 200)
+    {
+        $text = array();
+        if ($maxNbChars < 5) {
+            throw new \InvalidArgumentException('text() can only generate text of at least 5 characters');
+        } elseif ($maxNbChars < 25) {
+            // join words
+            while (empty($text)) {
+                $size = 0;
+                // determine how many words are needed to reach the $maxNbChars once;
+                while ($size < $maxNbChars) {
+                    $word = ($size ? ' ' : '') . static::word();
+                    $text []= $word;
+                    $size += strlen($word);
+                }
+                array_pop($text);
+            }
+            $text[0][0] = static::toUpper($text[0][0]);
+            $text[count($text) - 1] .= '.';
+        } elseif ($maxNbChars < 100) {
+            // join sentences
+            while (empty($text)) {
+                $size = 0;
+                // determine how many sentences are needed to reach the $maxNbChars once;
+                while ($size < $maxNbChars) {
+                    $sentence = ($size ? ' ' : '') . static::sentence();
+                    $text []= $sentence;
+                    $size += strlen($sentence);
+                }
+                array_pop($text);
+            }
+        } else {
+            // join paragraphs
+            while (empty($text)) {
+                $size = 0;
+                // determine how many paragraphs are needed to reach the $maxNbChars once;
+                while ($size < $maxNbChars) {
+                    $paragraph = ($size ? "\n" : '') . static::paragraph();
+                    $text []= $paragraph;
+                    $size += strlen($paragraph);
+                }
+                array_pop($text);
+            }
+        }
+
+        return join($text, '');
+    }
+
+    protected static function randomizeNbElements($nbElements)
+    {
+        return (int) ($nbElements * mt_rand(60, 140) / 100) + 1;
+    }
+}

+ 68 - 0
vendor/fzaninotto/faker/src/Faker/Provider/Miscellaneous.php

@@ -0,0 +1,68 @@
+<?php
+
+namespace Faker\Provider;
+
+class Miscellaneous extends \Faker\Provider\Base
+{
+    protected static $languageCode = array('cn', 'de', 'en', 'es', 'fr', 'it', 'pt', 'ru');
+
+    protected static $countryCode = array('CA', 'CN', 'DE', 'ES', 'FR', 'IE', 'IN', 'IT', 'MX', 'PT', 'RU', 'UK', 'US');
+    /**
+     * Return a boolean, true or false
+     *
+     * @param integer $chanceOfGettingTrue Between 0 (always get false) and 100 (always get true).
+     * @example true
+     */
+    public static function boolean($chanceOfGettingTrue = 50)
+    {
+        return mt_rand(1, 100) <= $chanceOfGettingTrue ? true: false;
+    }
+
+    /**
+     * @example 'cfcd208495d565ef66e7dff9f98764da'
+     */
+    public static function md5()
+    {
+        return md5(mt_rand());
+    }
+
+    /**
+     * @example 'b5d86317c2a144cd04d0d7c03b2b02666fafadf2'
+     */
+    public static function sha1()
+    {
+        return sha1(mt_rand());
+    }
+
+    /**
+     * @example '85086017559ccc40638fcde2fecaf295e0de7ca51b7517b6aebeaaf75b4d4654'
+     */
+    public static function sha256()
+    {
+        return hash('sha256', mt_rand());
+    }
+
+    /**
+     * @example 'fr_FR'
+     */
+    public function locale()
+    {
+        return $this->languageCode() . '_' . $this->countryCode();
+    }
+
+    /**
+     * @example 'FR'
+     */
+    public static function countryCode()
+    {
+        return static::randomElement(static::$countryCode);
+    }
+
+    /**
+     * @example 'fr'
+     */
+    public static function languageCode()
+    {
+        return static::randomElement(static::$languageCode);
+    }
+}

+ 40 - 0
vendor/fzaninotto/faker/src/Faker/Provider/Person.php

@@ -0,0 +1,40 @@
+<?php
+
+namespace Faker\Provider;
+
+class Person extends \Faker\Provider\Base
+{
+    protected static $formats = array(
+        '{{firstName}} {{lastName}}',
+    );
+
+    protected static $firstName = array('John', 'Jane');
+
+    protected static $lastName = array('Doe');
+
+    /**
+     * @example 'John Doe'
+     */
+    public function name()
+    {
+        $format = static::randomElement(static::$formats);
+
+        return $this->generator->parse($format);
+    }
+
+    /**
+     * @example 'John'
+     */
+    public static function firstName()
+    {
+        return static::randomElement(static::$firstName);
+    }
+
+    /**
+     * @example 'Doe'
+     */
+    public static function lastName()
+    {
+        return static::randomElement(static::$lastName);
+    }
+}

+ 16 - 0
vendor/fzaninotto/faker/src/Faker/Provider/PhoneNumber.php

@@ -0,0 +1,16 @@
+<?php
+
+namespace Faker\Provider;
+
+class PhoneNumber extends \Faker\Provider\Base
+{
+    protected static $formats = array('###-###-###');
+
+    /**
+     * @example '555-123-546'
+     */
+    public static function phoneNumber()
+    {
+        return static::numerify(static::randomElement(static::$formats));
+    }
+}

+ 161 - 0
vendor/fzaninotto/faker/src/Faker/Provider/UserAgent.php

@@ -0,0 +1,161 @@
+<?php
+
+namespace Faker\Provider;
+
+class UserAgent extends \Faker\Provider\Base
+{
+    protected static $userAgents = array('firefox', 'chrome', 'internetExplorer', 'opera', 'safari');
+
+    protected static $windowsPlatformTokens = array('Windows NT 6.2', 'Windows NT 6.1', 'Windows NT 6.0', 'Windows NT 5.2', 'Windows NT 5.1', 'Windows NT 5.01', 'Windows NT 5.0', 'Windows NT 4.0', 'Windows 98; Win 9x 4.90', 'Windows 98', 'Windows 95', 'Windows CE');
+
+    /**
+     * Possible processors on Linux
+     */
+    protected static $linuxProcessor = array('i686', 'x86_64');
+
+    /**
+     * Mac processors (it also added U;)
+     */
+    protected static $macProcessor = array('Intel', 'PPC', 'U; Intel', 'U; PPC');
+
+    /**
+     * Add as many languages as you like.
+     */
+    protected static $lang = array('en-US', 'sl-SI');
+
+    /**
+     * Generate mac processor
+     *
+     * @return string
+     */
+    public static function macProcessor()
+    {
+        return static::randomElement(static::$macProcessor);
+    }
+
+    /**
+     * Generrate linux processor
+     *
+     * @return string
+     */
+    public static function linuxProcessor()
+    {
+        return static::randomElement(static::$linuxProcessor);
+    }
+
+    /**
+     * Generate a random user agent
+     *
+     * @example 'Mozilla/5.0 (Windows CE) AppleWebKit/5350 (KHTML, like Gecko) Chrome/13.0.888.0 Safari/5350'
+     */
+    public static function userAgent()
+    {
+        $userAgentName = static::randomElement(static::$userAgents);
+
+        return static::$userAgentName();
+    }
+
+    /**
+     * Generate Chrome user agent
+     *
+     * @example 'Mozilla/5.0 (Macintosh; PPC Mac OS X 10_6_5) AppleWebKit/5312 (KHTML, like Gecko) Chrome/14.0.894.0 Safari/5312'
+     */
+    public static function chrome()
+    {
+        $saf = mt_rand(531, 536) . mt_rand(0, 2);
+
+        $platforms = array(
+            '(' . static::linuxPlatformToken() . ") AppleWebKit/$saf (KHTML, like Gecko) Chrome/" . mt_rand(13, 15) . '.0.' . mt_rand(800, 899) . ".0 Safari/$saf",
+            '(' . static::windowsPlatformToken() . ") AppleWebKit/$saf (KHTML, like Gecko) Chrome/" . mt_rand(13, 15) . '.0.' . mt_rand(800, 899) . ".0 Safari/$saf",
+            '(' . static::macPlatformToken() . ") AppleWebKit/$saf (KHTML, like Gecko) Chrome/" . mt_rand(13, 15) . '.0.' . mt_rand(800, 899) . ".0 Safari/$saf"
+        );
+
+        return 'Mozilla/5.0 ' . static::randomElement($platforms);
+    }
+
+    /**
+     * Generate Firefox user agent
+     *
+     * @example 'Mozilla/5.0 (X11; Linuxi686; rv:7.0) Gecko/20101231 Firefox/3.6'
+     */
+    public static function firefox()
+    {
+        $ver = array(
+            'Gecko/' . date('Ymd', mt_rand(strtotime('2011-1-1'), time())) . ' Firefox/' . mt_rand(4, 15) . '.0',
+            'Gecko/' . date('Ymd', mt_rand(strtotime('2010-1-1'), time())) . ' Firefox/3.6.' . mt_rand(1, 20),
+            'Gecko/' . date('Ymd', mt_rand(strtotime('2010-1-1'), time())) . ' Firefox/3.8'
+        );
+
+        $platforms = array(
+            '(' . static::windowsPlatformToken() . '; ' . static::randomElement(static::$lang) . '; rv:1.9.' . mt_rand(0, 2) . '.20) ' . $ver[array_rand($ver, 1)],
+            '(' . static::linuxPlatformToken() . '; rv:' . mt_rand(5, 7) . '.0) ' . $ver[array_rand($ver, 1)],
+            '(' . static::macPlatformToken() . ' rv:' . mt_rand(2, 6) . '.0) ' . $ver[array_rand($ver, 1)]
+        );
+
+        return "Mozilla/5.0 " . static::randomElement($platforms);
+    }
+
+    /**
+     * Generate Safari user agent
+     *
+     * @example 'Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_7_1 rv:3.0; en-US) AppleWebKit/534.11.3 (KHTML, like Gecko) Version/4.0 Safari/534.11.3'
+     */
+    public static function safari()
+    {
+        $saf = mt_rand(531, 535) . '.' . mt_rand(1, 50) . '.' . mt_rand(1, 7);
+        if (mt_rand(0, 1) == 0) {
+            $ver = mt_rand(4, 5) . '.' . mt_rand(0, 1);
+        } else {
+            $ver = mt_rand(4, 5) . '.0.' . mt_rand(1, 5);
+        }
+
+        $platforms = array(
+            '(Windows; U; ' . static::windowsPlatformToken() . ") AppleWebKit/$saf (KHTML, like Gecko) Version/$ver Safari/$saf",
+            '(' . static::macPlatformToken() . ' rv:' . mt_rand(2, 6) . '.0; ' . static::randomElement(static::$lang) . ") AppleWebKit/$saf (KHTML, like Gecko) Version/$ver Safari/$saf",
+            '(iPod; U; CPU iPhone OS ' . mt_rand(3, 4) . '_' . mt_rand(0, 3) . ' like Mac OS X; ' . static::randomElement(static::$lang) . ") AppleWebKit/$saf (KHTML, like Gecko) Version/" . mt_rand(3, 4) . ".0.5 Mobile/8B" . mt_rand(111, 119) . " Safari/6$saf",
+        );
+
+        return "Mozilla/5.0 " . static::randomElement($platforms);
+    }
+
+    /**
+     * Generate Opera user agent
+     *
+     * @example 'Opera/8.25 (Windows NT 5.1; en-US) Presto/2.9.188 Version/10.00'
+     */
+    public static function opera()
+    {
+        $platforms = array(
+            '(' . static::linuxPlatformToken() . '; ' . static::randomElement(static::$lang) . ') Presto/2.9.' . mt_rand(160, 190) . ' Version/' . mt_rand(10, 12) . '.00',
+            '(' . static::windowsPlatformToken() . '; ' . static::randomElement(static::$lang) . ') Presto/2.9.' . mt_rand(160, 190) . ' Version/' . mt_rand(10, 12) . '.00'
+        );
+
+        return "Opera/" . mt_rand(8, 9) . '.' . mt_rand(10, 99) . ' ' . static::randomElement($platforms);
+    }
+
+    /**
+     * Generate Internet Explorer user agent
+     *
+     * @example 'Mozilla/5.0 (compatible; MSIE 7.0; Windows 98; Win 9x 4.90; Trident/3.0)'
+     */
+    public static function internetExplorer()
+    {
+        return 'Mozilla/5.0 (compatible; MSIE ' . mt_rand(5, 9) . '.0; ' . static::windowsPlatformToken() . '; Trident/' . mt_rand(3, 5) . '.' . mt_rand(0, 1) . ')';
+
+    }
+
+    public static function windowsPlatformToken()
+    {
+        return static::randomElement(static::$windowsPlatformTokens);
+    }
+
+    public static function macPlatformToken()
+    {
+        return 'Macintosh; ' . static::randomElement(static::$macProcessor) . ' Mac OS X 10_' . mt_rand(5, 8) . '_' . mt_rand(0, 9);
+    }
+
+    public static function linuxPlatformToken()
+    {
+        return 'X11; Linux' . static::randomElement(static::$linuxProcessor);
+    }
+}

+ 48 - 0
vendor/fzaninotto/faker/src/Faker/Provider/Uuid.php

@@ -0,0 +1,48 @@
+<?php
+
+namespace Faker\Provider;
+
+class Uuid extends \Faker\Provider\Base
+{
+    /**
+     * Generate name based md5 UUID (version 3).
+     * @example '7e57d004-2b97-0e7a-b45f-5387367791cd'
+     */
+    public static function uuid()
+    {
+        // fix for compatibility with 32bit architecture; seed range restricted to 62bit
+        $seed = mt_rand(0, 2147483647) . '#' . mt_rand(0, 2147483647);
+
+        // Hash the seed and convert to a byte array
+        $val = md5($seed, true);
+        $byte = array_values(unpack('C16', $val));
+
+        // extract fields from byte array
+        $tLo = ($byte[0] << 24) | ($byte[1] << 16) | ($byte[2] << 8) | $byte[3];
+        $tMi = ($byte[4] << 8) | $byte[5];
+        $tHi = ($byte[6] << 8) | $byte[7];
+        $csLo = $byte[9];
+        $csHi = $byte[8] & 0x3f | (1 << 7);
+
+        // correct byte order for big edian architecture
+        if (pack('L', 0x6162797A) == pack('N', 0x6162797A)) {
+            $tLo = (($tLo & 0x000000ff) << 24) | (($tLo & 0x0000ff00) << 8)
+                | (($tLo & 0x00ff0000) >> 8) | (($tLo & 0xff000000) >> 24);
+            $tMi = (($tMi & 0x00ff) << 8) | (($tMi & 0xff00) >> 8);
+            $tHi = (($tHi & 0x00ff) << 8) | (($tHi & 0xff00) >> 8);
+        }
+
+        // apply version number
+        $tHi &= 0x0fff;
+        $tHi |= (3 << 12);
+
+        // cast to string
+        $uuid = sprintf(
+            '%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x',
+            $tLo, $tMi, $tHi, $csHi, $csLo,
+            $byte[10], $byte[11], $byte[12], $byte[13], $byte[14], $byte[15]
+        );
+
+        return $uuid;
+    }
+}

+ 33 - 0
vendor/fzaninotto/faker/src/Faker/Provider/bg_BG/Internet.php

@@ -0,0 +1,33 @@
+<?php
+
+namespace Faker\Provider\bg_BG;
+
+class Internet extends \Faker\Provider\Internet
+{
+    protected static $safeEmailTld = array('org', 'com', 'net', 'bg');
+    protected static $freeEmailDomain = array('gmail.com', 'yahoo.com', 'hotmail.com', 'mail.bg', 'abv.bg', 'dir.bg');
+    protected static $tld = array('bg', 'bg', 'bg', 'bg', 'bg', 'bg', 'com', 'biz', 'info', 'net', 'org');
+
+    /**
+     * @example 'jdoe'
+     */
+    public function userName()
+    {
+        $format = static::randomElement(static::$userNameFormats);
+
+        return static::bothify($this->generator->parse($format));
+    }
+
+    /**
+     * @example 'faber'
+     */
+    public function domainWord()
+    {
+        $company = $this->generator->format('company');
+        $companyElements = explode(' ', $company);
+        $company = $companyElements[0];
+        $company = preg_replace('/\W/', '', $company);
+
+        return $company;
+    }
+}

+ 123 - 0
vendor/fzaninotto/faker/src/Faker/Provider/bg_BG/Person.php

@@ -0,0 +1,123 @@
+<?php
+
+namespace Faker\Provider\bg_BG;
+
+require_once __DIR__ . '/../Person.php';
+
+class Person extends \Faker\Provider\Person
+{
+    protected static $formats = array(
+        '{{firstNameMale}} {{lastNameMale}}',
+        '{{firstNameMale}} {{lastNameMale}}',
+        '{{firstNameMale}} {{lastNameMale}}',
+        '{{firstNameFemale}} {{lastNameFemale}}',
+        '{{firstNameFemale}} {{lastNameFemale}}',
+        '{{firstNameFemale}} {{lastNameFemale}}',
+        '{{prefixMale}} {{firstNameMale}} {{lastNameMale}}',
+        '{{prefixFemale}} {{firstNameFemale}} {{lastNameFemale}}'
+    );
+
+    protected static $firstNameMale = array(
+        'Абен', 'Аблен', 'Август', 'Августиан', 'Августин', 'Авел', 'Авер', 'Аверно', 'Авксентий', 'Аво', 'Авраам', 'Аврам', 'Аврели', 'Аврелий', 'Аврор', 'Агапи', 'Агапий', 'Агатопод', 'Агент', 'Аглай', 'Аглар', 'Агнен', 'Агнеш', 'Агоп', 'Агъци', 'Адалберт', 'Адам', 'Адеан', 'Аделин', 'Адем', 'Аднан', 'Адриан', 'Адриян', 'Аерозол', 'Азалия', 'Айдемир', 'Акашия', 'Аксакусти', 'Аксидан', 'Аксинтия', 'Албен', 'Алберт', 'Албияна', 'Алдин', 'Алевандър', 'Алег', 'Алек', 'Алекзандриян',
+        'Беримир', 'Берин', 'Берислав', 'Берия', 'Беро', 'Берослав', 'Бетина', 'Бетино', 'Бечо', 'Билян', 'Бинко', 'Биньо', 'Биню', 'Бисенти', 'Бисер', 'Благо', 'Благовест', 'Благой', 'Благомир', 'Благосвет', 'Блаже', 'Бог', 'Богдан', 'Богиня', 'Богой', 'Боголюб', 'Богомил', 'Богослав', 'Бодромир', 'Божан', 'Божидар', 'Божик', 'Божил', 'Божимир', 'Божин', 'Божинел', 'Божко', 'Божо', 'Божур', 'Боил', 'Боила', 'Бойко', 'Бойо', 'Бойчо', 'Болен', 'Болеслав', 'Боне', 'Бонислав', 'Бонко', 'Боно',
+        'Веселин', 'Весислав', 'Веско', 'Весо', 'Веспасиян', 'Ветко', 'Вечко', 'Вигалот', 'Виго', 'Виделин', 'Виден', 'Видин', 'Видол', 'Видослав', 'Видю', 'Викенти', 'Виктор', 'Вилиан', 'Вилизар', 'Вилизара', 'Вилислав', 'Вилиян', 'Вилям', 'Винету', 'Винко', 'Вино', 'Винсънт', 'Винченцо', 'Виолет', 'Виолин', 'Висарион', 'Виталий', 'Витан', 'Витко', 'Витлян', 'Витомир', 'Витош', 'Вихрен', 'Вихрони', 'Вихър', 'Вичо', 'Виша', 'Вишан', 'Вишетин', 'Вишню', 'Влад', 'Владилен', 'Владимер', 'Владимир',
+        'Галентин', 'Галиен', 'Галимир', 'Галин', 'Галиян', 'Гани', 'Ганислав', 'Ганцомир', 'Ганчо', 'Ганьо', 'Гаро', 'Гатьо', 'Гацо', 'Гачо', 'Гвардиана', 'Гелемир', 'Генади', 'Генади Валериев', 'Генадий', 'Генислав', 'Генко', 'Гено', 'Генчо', 'Геньо', 'Гео', 'Геодим', 'Геомил', 'Георги', 'Герасим', 'Герган', 'Гергей', 'Гергелюб', 'Гергин', 'Герго', 'Гердан', 'Герман', 'Геро', 'Герой', 'Герчо', 'Гетислав', 'Гетко', 'Гето', 'Гецо', 'Гечко', 'Гечо', 'Гешо', 'Гивеза', 'Гиздален', 'Гико', 'Гилдрой',
+        'Делчо', 'Делян', 'Деляна', 'Демин', 'Демир', 'Демян', 'Дениз', 'Деника', 'Денимир', 'Денис', 'Денислав', 'Дениян', 'Денчо', 'Деньо', 'Дердидас', 'десилиан', 'Десимир', 'Десислав', 'Деслав', 'Деспин', 'Деспинка', 'Деспот', 'Детелин', 'Детелюб', 'Дечко', 'Дечо', 'Дечю', 'Дешо', 'Деян', 'Джанер', 'Джанко', 'Джихад', 'Джон-стефан', 'Джулиен', 'Диаманди', 'Диамантина', 'Диан', 'Диван (на дядо Диан и дядо Иван)', 'Дивизие', 'Дивизия', 'Дивил', 'Дидко', 'Диего', 'Дийвид', 'Дико', 'Дилян',
+        'Евстати', 'Евстатий', 'Евстахий', 'Евтим', 'Егор', 'Едвин', 'Едит', 'Еднорог', 'Едрю', 'Едуард', 'Еким', 'Ектар', 'Ектор', 'Елвис', 'Елеан', 'Електрон', 'Елемаг', 'Елен', 'Еленко', 'Елиан', 'Елиас', 'Елиезер', 'Елизабет', 'Елин', 'Елисей', 'Елисия', 'Елко', 'Елтимир', 'Ельо', 'Ема-Бела', 'Еманоил', 'Емануел', 'Емануил', 'Емил', 'Емилиан', 'Емилиян', 'Ендо', 'Енис', 'Енчо', 'Еньо', 'Еню', 'Ервин', 'Ередин', 'Еремия', 'Ерик', 'Ерина', 'Ерол', 'Ерослав', 'Ерсен', 'Есен', 'Етиен', 'Ефка',
+        'Заварин', 'Завен', 'Замфир', 'Занго', 'Занко', 'Заприн', 'Запрян', 'Зарко', 'Зафер', 'Зафир', 'Захар', 'Захари', 'Захарин', 'Захо', 'Звездан', 'Звезделюб', 'Звездин', 'Звездислав', 'Звездиян', 'Звездолет', 'Звездомир', 'Згура', 'Здравелин', 'Здравец', 'Здравко', 'Здравомир', 'Здравчо', 'Зенгин', 'Зика', 'Зинко', 'Зинови', 'Златан', 'Злати', 'Златил', 'Златимир', 'Златин', 'Златиян', 'Златко', 'Златогор', 'Златозар', 'Златомир', 'Златослав', 'Златоцвет', 'Златьо', 'Золтан', 'Зоран',
+        'Илиомар', 'Илич', 'Илия', 'Илиян', 'Илко', 'Илчо', 'Имилиан', 'Ингемунд', 'Инко', 'Инокентий', 'Инчо', 'Иполит', 'Ириан', 'Ириней', 'иринеус', 'Ириян', 'Ирко', 'Ирма', 'Ирник', 'Исайа', 'Исак', 'Исидор', 'Искрен', 'Искър', 'Исперих', 'Истан', 'Истатко', 'Истилян', 'Исус', 'Итан', 'Итко', 'Ихтиандър', 'Ицо', 'Ичо', 'Йено', 'Йеремия', 'Йоан', 'Йоан-Александър', 'Йоан-иво', 'Йов', 'Йован', 'Йовица', 'Йовко', 'Йово', 'Йовро', 'Йовцо', 'Йовчо', 'Йожи', 'Йоил', 'Йоланд', 'Йолиян', 'Йолко',
+        'Карен', 'Карим', 'Карин', 'Карло', 'Кармен', 'Каролин', 'Карчо', 'Касандър', 'Катакомб', 'Каталинка', 'Катерин', 'Кевин', 'Кеворк', 'Кери', 'Кибер', 'Кимба', 'Кимбо', 'Кимо', 'Кимон', 'Кимчо', 'Кин', 'Кинка', 'Кинта', 'Киприслав', 'Киприян', 'Кириен', 'Кирил', 'Кирко', 'Кирчо', 'Киряк', 'Киряки', 'Киряко', 'Кис', 'Кит', 'Кито', 'Китодар', 'Китомир', 'Клеантин', 'Клим', 'Климент', 'Кнут', 'Козма', 'Койно', 'Койо', 'Койчо', 'Коко', 'Коле', 'Колонина', 'Колчо', 'Кольо', 'Колю', 'Комнин',
+        'Лалко', 'Лало', 'Лальо', 'Ламби', 'Ламбо', 'Ламбри', 'Ламбю', 'Ланселот', 'Ласкал', 'Ласкар', 'Ластър', 'Латин', 'Латко', 'Латьо', 'Латю', 'Лашко', 'ЛЕА-МАРИЯ', 'Леандър', 'Лев', 'Левент', 'Левчо', 'Леко', 'Ленин', 'Ленко', 'Леон', 'Леонардо', 'Леонид', 'Лесе', 'Лефтер', 'Лечо', 'Лилко', 'Лило', 'Лилчо', 'Лилян', 'Лимон', 'Лимончо', 'Липе', 'Лихия', 'Личо', 'Ловчо', 'Лозан', 'Лозана', 'Лозен', 'Лора-софия', 'Лоранс', 'Лоренцо', 'Лука', 'Лукан', 'Луко', 'Лули', 'Лулчо', 'Лусио', 'Лусия',
+        'Маноел', 'Манол', 'Манолин', 'Маноло', 'Мантас', 'Мануил', 'Мануш', 'Манчестър Юнайтед', 'Манчо', 'Маньо', 'Маню', 'Марангони', 'Маргарин', 'Маргарит', 'Марек', 'Мариан', 'Марий', 'Марин', 'Маринел', 'Маринчо', 'Марио', 'Мариоллита', 'Мариочка', 'Маритна', 'Мариян', 'Марк', 'Марк-антоний', 'Марко', 'Маркус', 'Мартен', 'Мартин', 'Мартиниян', 'Марто', 'Маруш', 'Марчело', 'Маслина', 'Матей', 'Матьо', 'Матю', 'Махно', 'Машо', 'Медиан', 'Менко', 'Мено', 'Мерилин', 'Месак', 'Метакса',
+        'Найо', 'Найчо', 'Наке', 'Нако', 'Нанко', 'Нанков', 'Нано', 'Нансимир', 'Нанчо', 'Наню', 'Нарцислав', 'Наско', 'Настимир', 'Настрадин', 'Натанаил', 'Нати', 'Натко', 'Наум', 'Нафисат', 'Нафтали', 'Нацко', 'Нацо', 'Начиян', 'Начко', 'Начо', 'Невелин', 'Невен', 'Невенко', 'Невилиян', 'Невян', 'Негослав', 'Неделин', 'Неделчо', 'Недислав', 'Недко', 'Недолюб', 'Недьо', 'Недю', 'Недялко', 'Нейко', 'Нейчо', 'Нелко', 'Нелчо', 'Нене', 'Ненко', 'Нено', 'Ненсислав', 'Ненчо', 'Неокли', 'Нерес',
+        'Обретим', 'Ованес', 'Огин', 'Огнемир', 'Огнен', 'Огнян', 'Океан', 'Олег', 'Олек', 'Олимпи', 'Омар', 'Омуртаг', 'Оник', 'Онуфри', 'Ончо', 'Орел', 'Орлин', 'Ортодокси', 'Орфей', 'Орхидей', 'Орце', 'Оскар', 'Оханес', 'Павел', 'Павелин', 'Павил', 'Павко', 'Павлик', 'Павлин', 'Павлинчо', 'Павломир', 'Паисий', 'Пако', 'Палми', 'Палмиро', 'Панаври', 'Панай', 'Панайот', 'Панде', 'Панделис', 'Пане', 'Панкртийян', 'Пано', 'Панталей', 'Пантелей', 'Пантер', 'Панто', 'Пантю', 'Панчо', 'Паолина',
+        'Параскев', 'Параход', 'Парашкев', 'Парашкеван', 'Паруш', 'Паскал', 'Паско', 'Паспанахил', 'Пато', 'Патрик', 'Патьо', 'Паулин', 'Паун', 'Пацо', 'Пачо', 'Пашо', 'Пейко', 'Пейо', 'Пейодон', 'Пейтан', 'Пейчин', 'Пейчо', 'Пеко', 'Пелай', 'Пеле', 'Пене', 'Пенко', 'Пенчин', 'Пенчо', 'Пеньо', 'Пеню', 'Пео', 'Пепино', 'Пепислав', 'Пепо', 'Пепонаки', 'Перикъл', 'Персиана', 'Персиян', 'Перчо', 'Петиконгрес', 'Петкан', 'Петко', 'Пето', 'Петраки', 'Петран', 'Петрана', 'Петринел', 'Петрозар', 'Петромил',
+        'Рангел', 'Рангел-любими', 'Рандю', 'Ранчо', 'Расате', 'Ратослав', 'Рафаил', 'Рачко', 'Рачо', 'Рашко', 'Рашо', 'Раю', 'Раян', 'Реан', 'Рем', 'Рикардо', 'Риналдо', 'Рис', 'Ристя', 'Ричард', 'Ричерд', 'Роберт', 'Роберто', 'Робин', 'Робърт', 'Рогелин', 'Рогелина', 'Рогена', 'Родан', 'Родион', 'Розалин', 'Розин', 'Розоцвет', 'Ройо', 'Роксан', 'Роман', 'Ромел', 'Ромелина', 'Ромен', 'Ромео', 'Ромил', 'Ромул', 'Росен', 'Росенка', 'Росимир', 'Росицвет', 'Роска', 'Роско', 'Ростиана', 'Ростимир', 'Ростислав',
+        'Светломир', 'Светлю', 'Светозар', 'Светослав', 'Свилен', 'Себастиан', 'Себахтин', 'Севан', 'Севар', 'Севастин', 'Севдалин', 'Севдан', 'Севелин', 'Северин', 'Седевчо', 'Седеф', 'Седефчо', 'Селен', 'Селена', 'Сенко', 'Серафим', 'Сергей', 'Сеслав', 'Сиви', 'Сивко', 'Сидер', 'Сидония', 'Сидор', 'Сиен', 'Силаги', 'Силан', 'Силвестър', 'Силвио', 'Силвиян', 'Силен', 'Силян', 'Симеон', 'Симо', 'Сирман', 'Сифоня', 'Скорбут', 'Слав', 'Славдо', 'Славе', 'Славей', 'Славейко', 'Славен', 'Слави', 'Славил',
+        'Теодоси', 'Теодосий', 'Теодослав', 'Теодостин', 'Теофан', 'Теофил', 'Теохар', 'Тервел', 'Тигрони', 'Тило', 'Тильо', 'Тимо', 'Тимон', 'Тимотей', 'Тимчо', 'Тинко', 'Тино', 'Тинчо', 'Тихо', 'Тихол', 'Тихомир', 'Тихон', 'Тишо', 'Тоде', 'Тодомирка', 'Тодор', 'Тодораки', 'Тодорин', 'Тодорина', 'Токимир', 'Толек', 'Толю', 'Тома', 'Томас', 'Томен', 'Томи', 'Томинка', 'Томислав', 'Томо', 'Тоне', 'Тони', 'Тонимир', 'Тонислав', 'Тонко', 'Тончо', 'Тоньо', 'Топалко', 'Тополко', 'Тотко', 'Тотьо', 'Тотю', 'Тоцо',
+        'Филатей', 'Фили', 'Филидан', 'Филимон', 'Филион', 'Филип', 'Филипас', 'Филипопол', 'Филко', 'Филомир', 'Филчо', 'Фильо', 'Финдо', 'Финдол', 'Фиро', 'Фирчо', 'Фичо', 'Флори', 'Флориан', 'Флорин', 'Флоро', 'Фори', 'Фосил', 'Фотин', 'Франк', 'Франц', 'Францислав', 'Фрацил', 'Фреди', 'Фродо', 'Фуго', 'Фуко', 'Фъстък', 'Фътьо', 'Фьодор', 'Хавтелин', 'Ханко', 'Хараламби', 'Харалампи', 'Харалан', 'Харбингър', 'Хари', 'Харизан', 'Харитии', 'Харитон', 'Хасан', 'Хасатин', 'Хачо', 'Хвойне', 'Хебър', 'Хектор',
+        'Хераклит', 'Хернани', 'Херодот', 'Хефестион', 'Химинай', 'Хинко', 'Хино', 'Хитко', 'Хороз', 'Храбрин', 'Храбър', 'Хранимир', 'Хранко', 'Хрелко', 'Хрельо', 'Хрисим', 'Хрисимир', 'Хрисо', 'Христалин', 'Христивилин', 'Христиела', 'Христилиан', 'Христилин', 'християн', 'Христо', 'Христо-никола', 'Христодор', 'Христозар', 'Христозорнициан', 'Христозорницомил', 'Христомил', 'Христомир', 'Христоско', 'Христослав', 'Христофор', 'Хрисчо', 'Хрондел', 'Хрусан', 'Хубав', 'Хубавен', 'Хубан', 'Хубен',
+        'Цоньо', 'Цоню', 'Цоцо', 'Цочо', 'Цъки', 'Чавдар', 'Чанкете', 'Чанко', 'Чано', 'Чаньо', 'Чаню', 'Чардафон', 'Чародей', 'Чауш', 'Чачо', 'Чвор', 'Чедомир', 'Ченко', 'Ченю', 'Чепо', 'Чернобил', 'Черноризец', 'Черньо', 'Чийо', 'Чико', 'Чило', 'Чонар', 'Чони', 'Чоно', 'Чоню', 'Чора', 'Чочо', 'Чочомир', 'Чубрик', 'Чуде', 'Чудо', 'Чудомир', 'Чудослав', 'Чук', 'Шабан', 'Шамо', 'Шанко', 'Шаноу', 'Шаро', 'Шейна', 'Шеки', 'Шенко', 'Шенол', 'Шибил', 'Шидер', 'Шильо', 'Шинко', 'Шино', 'Шипчан', 'Ширко', 'Шишман',
+        'Шкодри', 'Шмильо', 'Шмулю', 'Шпилко', 'Шпиньо', 'Шушо', 'Щедрин', 'Щедю', 'Щеки', 'Щено', 'Щеню', 'Щерион', 'Щериян', 'Щерко', 'Щеро', 'Щерьо', 'Щерю', 'Щилиян', 'Щилян', 'Щирян', 'Щоно', 'Щтърбан', 'Щтъркан', 'Щурк', 'Щурчо', 'Щърбан', 'Щъркан', 'Ъглен', 'Ълен', 'Ърнест', 'Ъруин', 'Ърчо', 'Ьобирдар', 'Юги', 'Юли', 'Юлиан', 'Юлий', 'Юлиян', 'Юрдан', 'Юри', 'Юрий', 'Юстин', 'Юстиниан', 'Яблен', 'Явлен', 'Явор', 'Яго', 'Ягодин', 'Язо', 'Яким', 'Яко', 'Якоб', 'Яков', 'Якослав', 'Ямболен', 'Ян', 'Янадин',
+        'Янаки', 'Янакин', 'Яначко', 'Яне', 'Янег', 'Янедин', 'Янек', 'Янеслав', 'Яни', 'Яниел', 'Яник', 'Янимир', 'Янис', 'Янислав', 'Яничко', 'Янко', 'Янкул', 'Янкуп', 'Яно', 'Яномил', 'Янтар', 'Януш', 'Янцислав', 'Янче', 'Янчо', 'Ярно', 'Яромир', 'Ярослав', 'Ярце', 'Ярчо', 'Яръм', 'Ярю', 'Ясен', 'Ясер', 'Ястреб', 'Ятан', 'Яцо', 'Ячко', 'Ячо', 'Яшар', 'Яшка', 'Яшо', 'Яшон'
+    );
+
+    protected static $firstNameFemale = array(
+        'Авгия', 'Авигея', 'Авторка', 'Аглая', 'Аглоида', 'Агнешка', 'Адамина', 'Адра', 'Адрианиа', 'Аела', 'Айрен', 'Аксентия', 'Алания', 'Албина', 'Александрина', 'Алексиа', 'Аленка', 'Алиана', 'Алисия', 'Алтая', 'Амбър', 'Амория', 'Ана Мария', 'Анатолия', 'Ангелка', 'Андика', 'Андриана', 'Анелина', 'анета', 'Анза', 'Анимира', 'Аница', 'Аномалия', 'Антоалина', 'Антонела', 'Ануша', 'Анхея-мей', 'Аполинария', 'Аралия', 'Аркадия', 'Арсена', 'Аселина', 'Асифа', 'Астромерия', 'Атина', 'Аурора', 'Багра',
+        'Балина', 'Бацислава', 'Беатрис', 'Бела', 'Белисима', 'Беломира', 'Бенелена', 'Берислава', 'Бея', 'Билена', 'Бисера', 'Биянка', 'Благодатка', 'Благосвета', 'Богдалина', 'Богородка', 'Бодурка', 'Божидара-силвестра', 'Божинела', 'Божурка', 'Бонифация', 'Борена', 'Бориска', 'Борянка', 'Боца', 'Бригита', 'Бронислава', 'Буна', 'Буча', 'Бързана', 'Ваклина', 'Валерия', 'Валя', 'Вангелия', 'Ванухи', 'Варта', 'Васенка', 'Василина', 'Васка', 'Вашиля', 'Вежда', 'Велиана', 'Велинна', 'Велиянка', 'Венда',
+        'Венеция', 'Венислава', 'Венчислава', 'Верена', 'Верислава', 'Веса', 'Веселинка', 'Весна', 'Веца', 'Видима', 'Виктория', 'Вилия', 'Вилхема', 'Виолета', 'Виржиния', 'Витомира', 'Вишка', 'Владилена', 'Владлена', 'Водица', 'Войнка', 'Вула', 'Възкресения', 'Въльо', 'Върбунка', 'Въца', 'Габи', 'Галена', 'Галина', 'Галя', 'Гануца', 'Гвоздейка', 'Гена', 'Георгелена', 'Георгица', 'Герга', 'Гердана', 'Гертруда', 'Гиздана', 'Гичка', 'Гордана', 'Гория', 'Гоца', 'Графица', 'Грета', 'Гримяна', 'Гроздинка',
+        'Гуна', 'Гъда', 'Гълъбица', 'Гюгра', 'Гюргя', 'Дакота', 'Дамяна', 'Данелина', 'Данимира', 'Данка', 'Дарданела', 'Дария', 'Дафинка', 'Деа', 'Деви', 'Делиана', 'Деля', 'Демирела', 'Дениандра', 'Дениславена', 'Денница', 'Десимиляна', 'Десияна', 'Дефлорина', 'Дея', 'Джана', 'Джиневра', 'Джулия', 'Диана - Мария', 'Дида', 'Дилмана', 'Димитра', 'Димка', 'Динна', 'Добрина', 'Дойка', 'Доменика', 'Доника', 'Дора-Анна', 'Дорина', 'Доста', 'Доча', 'Драгица', 'Дренка', 'Дуда', 'Душка', 'Дюкяна', 'Евангелина',
+        'Евдокия', 'Евридика', 'Едита', 'Ел', 'Елдора', 'Еленица', 'Елеонета', 'Ели', 'Елиз', 'Елина', 'Елиса', 'Елица', 'Елма', 'Елфида', 'Емануила', 'Емма', 'Еница', 'Ергана', 'Ермиля', 'Естела', 'Ефимена', 'Ефросиния', 'Жаклин', 'Жанин', 'Жара', 'Жейна', 'Желязка', 'Женимира', 'Жива', 'Живомира', 'Жичка', 'Жорка', 'Жулиана', 'Заека', 'Занка', 'Зафа', 'Захаринка', 'Звездемира', 'Здравелина', 'Здухостина', 'Зинаида', 'Златея', 'Златка', 'Златомира', 'Зоичка', 'Зорка', 'Зузичка', 'Ивалена', 'ивамина',
+        'Иванеса', 'Иваничка', 'Ивелиана', 'Ивинка', 'Иглика', 'Изидора', 'Илеана', 'Илианна', 'Илинда', 'Илка', 'Инан', 'Инеса', 'Ира', 'Ирин', 'Ирла', 'Исихия', 'Истилияна', 'Йоана', 'Йоанна', 'Йованка', 'Йоко', 'Йолина', 'Йона', 'Йоника', 'Йорданка', 'Йоханна', 'Кадифейка', 'Калея', 'Калина', 'Калиса', 'Калуда', 'Камея', 'Кануша', 'Карамелита', 'Карина', 'Касиди', 'Катастрофа', 'Катинка', 'Каунка', 'Кветослава', 'Керанка', 'Кети', 'Кино', 'Кирка', 'Китчица', 'Клара', 'Клеуна', 'Клоя', 'Кокимира',
+        'Комара', 'Константина', 'Корнелия', 'Костадинка', 'Кралина', 'Красидара', 'Красияна', 'Криси', 'кристабела', 'Кристиана', 'Кристия', 'Кръстанка', 'Ксандриния', 'Кунка', 'Кьнина', 'Лада', 'Лазура', 'Лалка', 'Лариса', 'Лаца', 'Лека', 'Ленче', 'Летисия', 'Либерта', 'Лидийка', 'Лика', 'Лилия', 'Лилянка', 'Линда', 'Лия', 'Лозанка', 'Лорена', 'Лоти', 'Луна', 'Лъчезарка', 'Любина', 'Люблина', 'Любослава', 'Люляна', 'Люсила', 'Лянка', 'Магдалена', 'Мадлен', 'Майя', 'Максимилияна', 'Малена',
+        'Малтина', 'Манолина', 'Мара-антоанета', 'Маргит', 'Марен', 'Мари-анри', 'Марийка', 'Маринета', 'Мариотка', 'Мария', 'Мария-елена', 'Мария-Хуана', 'Марлена', 'Маруся', 'Маса', 'Матка', 'Маша', 'Медиха', 'Мелания', 'Мелъди', 'Меропа', 'Миглена', 'Мила', 'Милара', 'милдия', 'Милиана', 'Милост', 'Мимоза', 'Минка', 'Миранза', 'Мирена', 'Миропа', 'Мисла', 'Митошка', 'Михайлена', 'Мишка', 'Младлена', 'Момера', 'Моника', 'Мортадела', 'Мушана', 'Наводненка', 'Надка', 'Найда', 'Нани', 'Настия',
+        'Наташа', 'Невена', 'Негрита', 'Неделяна', 'Нейка', 'Нелида', 'Нелла', 'Неолина', 'Нешка', 'Нигрита', 'Никоела', 'Николина', 'Нионила', 'Нона', 'Норка', 'Нурета', 'Огнена', 'Октавия', 'Оливера', 'Омана', 'Орлеана', 'Орхидея', 'Павилия', 'Павлина', 'Палвира', 'Паломина', 'Панда', 'Пантера', 'Парашкевица', 'Парунка', 'Патриотка', 'Паулина', 'Паца', 'Пейолина', 'Пелина', 'Пепелота', 'Периана', 'перуна', 'Петинка', 'Петрийка', 'Петромира', 'Петрушка', 'Пешка', 'Пламена', 'Плодовитка',
+        'Полексина', 'Полин', 'Правда', 'Преса', 'Прина', 'Пролетина', 'Простисвета', 'Пупи', 'Първолетка', 'Рада', 'Радиа', 'Радимира', 'Радка', 'Радосвета', 'Радостка', 'Раинка', 'Райничка', 'Рамина', 'Ревка', 'Ренгия', 'Риана', 'Римма', 'Рия', 'Роза', 'Розана', 'Розета', 'Розка', 'Роксана', 'Ромолета', 'Роселина', 'Росислава', 'Ростислава', 'Ружка', 'Румислава', 'Русалия', 'Руска', 'Сабина', 'Савета', 'Салина', 'Санка', 'Сарая', 'Сахория', 'Свежа', 'Светла', 'Светломира', 'Свидна', 'Свободка',
+        'Севда', 'севделина', 'Севета', 'Семенарка', 'Сергелинка', 'Сибила', 'Сиена', 'Силви', 'Силвия-александра', 'Силяна', 'Симона', 'Синтия', 'Сисоя', 'Скакалка', 'Славея', 'Славка', 'Сладоледка', 'Смехотерапия', 'Смирна', 'Снежинка', 'Софийка', 'Спасена', 'Спасияна', 'Спирела', 'Стависара', 'Стаматка', 'Станиела', 'Станимирка', 'Сташа', 'Стелина', 'Стефани', 'Стеяна', 'Стоимена', 'Столетка', 'Стоянка', 'Сузи', 'Съвестина', 'Сърменка', 'Таисия', 'тамара', 'Таня', 'Ташимира', 'Теа',
+        'Телефонка', 'Темира', 'Теодора', 'Теса', 'Тилиана', 'Тиха', 'Тоанета', 'Толиана', 'Тона', 'Тоницвета', 'Тоска', 'Тошка', 'Трендафила', 'Трифонка', 'Троша', 'Труфана', 'Тръпка', 'Туфка', 'Улиана', 'Урима', 'Фабияна', 'Фатиме', 'Феня', 'Фикия', 'Филипини', 'Фимка', 'Флавия', 'Флорика', 'Фотинка', 'Фронка', 'Фуга', 'Хана', 'Харитония', 'Хенриета', 'Хинка', 'Холи', 'Хранислава', 'Хрисанка', 'Христа', 'Христела', 'Христилияна', 'Христоелена', 'Христя', 'Хубавелка', 'Цанета', 'Царевна',
+        'Цветана', 'Цветелина', 'Цветилена', 'Цветлина', 'Цветолилия', 'Цветяна', 'Цеца', 'Цола', 'Цоня', 'Чана', 'Чардафона', 'Чачия', 'Череша', 'Четвърта', 'Чона', 'Чубрина', 'Шана', 'Шена', 'Шехерезада', 'Шинка', 'Щедра', 'Щериана', 'Щефания', 'Щилянка', 'Щтилка', 'Ъгленка', 'Ъчка', 'Юлиена', 'Юлия', 'Юнона', 'Юрита', 'Юстианна', 'Ябленка', 'Явора', 'Ягода', 'Ялислава', 'Яна - Мартина', 'Янина', 'Яниславия', 'Янка', 'Ярка', 'Ясена', 'Ятана'
+    );
+
+    protected static $lastNameMale = array(
+        'Чанталиев', 'Симеонов', 'Данданов', 'Кърков', 'Братухчев', 'Цветков', 'Иванов', 'Яназов', 'Тодоров', 'Колчев', 'Порязов', 'Келешев', 'Бърборков', 'Дришльов',
+        'Макаронски', 'Количков', 'Принов', 'Бодуров', 'Китов', 'Гьоков', 'Кукуряшков', 'Симеонов', 'Балахуров', 'Милачков', 'Европов Кирилов',
+        'Площаков', 'Мангъров', 'Хвърчилков', 'Дзезов', 'Ждраков', 'Месаров', 'Тухчиев', 'Топков', 'Яков', 'Иликьов', 'Бурханларски', 'Вражалски', 'Тутурилов', 'Бранков',
+        'Зенгинов', 'Чокълтов', 'Фенеров', 'Кучев', 'Възвъзов', 'Кьоров', 'Джогов', 'Пъков', 'Рангелов', 'Чутурков', 'Самсонов', 'Ментешев',
+        'Андонов', 'Бумов', 'Мочев', 'Дачев', 'Муев', 'Младенов', 'Тошев', 'Бедринов', 'Тумангелов', 'Негрилов', 'Канчин', 'Миленков', 'Патков',
+        'Пондьов', 'Самоходов', 'Четрафилски', 'Смърдански', 'Клатуров', 'Вакрилов', 'Портокалов', 'Прошков', 'Пулев', 'Парашкевов', 'Манавски', 'Чуков',
+        'Овнарски', 'Рошльов', 'Пройкова', 'Младенова', 'Кочеткова', 'Кесьов', 'Римпопов', 'Златков', 'Колев', 'Пикянски', 'Николов', 'Цицков',
+        'Стойков', 'Каракашев', 'Чуканов', 'Докова', 'Мераков', 'Пеева', 'Педалов', 'Тъпчилещов', 'Въртунински', 'Кодуков', 'Татьозов', 'Токов',
+        'Кукуригов', 'Юрганчев', 'Клатикрушев', 'Монтянов', 'Бобев', 'Топчийски', 'Луланков', 'Костов', 'Колипатков', 'Чукчуков', 'Геройски', 'Катъров', 'Кобиларов',
+        'Лимонадов', 'Цоцов', 'Поаков', 'Недялков', 'Станишев', 'Йорданов', 'Щърбов', 'Щонов', 'Занов'
+    );
+
+    protected static $lastNameFemale = array(
+        'Шестакова', 'Кокошкова', 'Градинарова', 'Куртакова', 'Чанлиева', 'Тодорова', 'Пътечкова', 'Скринска', 'Сапунджиева', 'Вампирска', 'Червенкова', 'Васовa', 'Таралингова',
+        'Илиева', 'Кривошапкова', 'Чупетловска', 'Катърова', 'Бележкова', 'Мустакова', 'Пръндачка', 'Коритарова', 'Йоткова', 'Сланинкова', 'Мангъфова', 'Шкембова', 'Пенджакова',
+        'Пачаръзка', 'Куртажова', 'Плюнкова', 'Многознаева', 'Контопишева', 'Белоконска-Вражалска', 'Кучкуделова', 'Крушовска', 'Пищовколева', 'Сопаджиева', 'Точева-Клопова',
+        'Габровлиева', 'Първанова', 'Певецова', 'Курухубева', 'Яркова', 'Плюцова', 'Балканска'
+    );
+
+    private static $prefixMale = array('Г-н', 'Др.');
+    private static $prefixFemale = array('Г-жа', 'Г-ца', 'Др.');
+
+    public static function firstName()
+    {
+        return mt_rand(1, 100) <= 50 ? static::firstNameMale() : static::firstNameFemale();
+    }
+
+    public static function firstNameMale()
+    {
+        return static::randomElement(static::$firstNameMale);
+    }
+
+    public static function firstNameFemale()
+    {
+        return static::randomElement(static::$firstNameFemale);
+    }
+
+    public static function lastName()
+    {
+        return mt_rand(1, 100) <= 50 ? static::lastNameMale() : static::lastNameFemale();
+    }
+
+    public static function lastNameMale()
+    {
+        return static::randomElement(static::$lastNameMale);
+    }
+
+    public static function lastNameFemale()
+    {
+        return static::randomElement(static::$lastNameFemale);
+    }
+
+    public static function prefixMale()
+    {
+        return static::randomElement(static::$prefixMale);
+    }
+
+    public static function prefixFemale()
+    {
+        return static::randomElement(static::$prefixFemale);
+    }
+}

+ 20 - 0
vendor/fzaninotto/faker/src/Faker/Provider/bg_BG/PhoneNumber.php

@@ -0,0 +1,20 @@
+<?php
+
+namespace Faker\Provider\bg_BG;
+
+class PhoneNumber extends \Faker\Provider\PhoneNumber
+{
+    protected static $formats = array(
+        '+359(0)#########',
+        '+359(0)### ######',
+        '+359(0)### ### ###',
+        '+359#########',
+        '0#########',
+        '0### ######',
+        '0### ### ###',
+        '0### ###-###',
+        '(0###) ######',
+        '(0###) ### ###',
+        '(0###) ###-###',
+    );
+}

+ 35 - 0
vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/Internet.php

@@ -0,0 +1,35 @@
+<?php
+
+namespace Faker\Provider\cs_CZ;
+
+class Internet extends \Faker\Provider\Internet
+{
+    protected static $safeEmailTld = array('com', 'cz');
+
+    protected static $freeEmailDomain = array('gmail.com', 'yahoo.com', 'seznam.cz', 'atlas.cz', 'centrum.cz', 'email.cz', 'post.cz');
+
+    protected static $tld = array('cz', 'cz', 'cz', 'cz', 'cz', 'cz', 'com', 'info', 'net', 'org');
+
+    /**
+     * Converts czech characters to their ASCII representation
+     *
+     * @return string
+     */
+    private function toAscii($string)
+    {
+        $from = array('Ě', 'ě', 'Š', 'š', 'Č', 'č', 'Ř', 'ř', 'Ž', 'ž', 'Ý', 'ý', 'Á', 'á', 'Í', 'í', 'É', 'é', 'Ó', 'ó', 'Ú', 'ú', 'Ů', 'ů', 'Ď', 'ď', 'Ť', 'ť', 'Ň', 'ň');
+        $to		= array('E', 'e', 'S', 's', 'C', 'c', 'R', 'r', 'Z', 'z', 'Y', 'y', 'A', 'a', 'I', 'i', 'E', 'e', 'O', 'o', 'U', 'u', 'U', 'u', 'D', 'd', 'T', 't', 'N', 'n');
+
+        return str_replace($from, $to, $string);
+    }
+
+    public function email()
+    {
+        return $this->toAscii(parent::email());
+    }
+
+    public function userName()
+    {
+        return $this->toAscii(parent::userName());
+    }
+}

+ 99 - 0
vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/Person.php

@@ -0,0 +1,99 @@
+<?php
+
+namespace Faker\Provider\cs_CZ;
+
+class Person extends \Faker\Provider\Person
+{
+    protected static $formats = array(
+        '{{firstNameMale}} {{lastNameMale}}',
+        '{{firstNameMale}} {{lastNameMale}}',
+        '{{firstNameMale}} {{lastNameMale}}',
+        '{{firstNameMale}} {{lastNameMale}}',
+        '{{firstNameFemale}} {{lastNameFemale}}',
+        '{{firstNameFemale}} {{lastNameFemale}}',
+        '{{firstNameFemale}} {{lastNameFemale}}',
+        '{{firstNameFemale}} {{lastNameFemale}}',
+        '{{prefix}} {{firstNameMale}} {{lastNameMale}}',
+        '{{prefix}} {{firstNameFemale}} {{lastNameFemale}}',
+    );
+
+    protected static $firstNameMale = array(
+        'Jiří', 'Jan', 'Petr', 'Josef', 'Pavel', 'Jaroslav', 'Martin', 'Tomáš', 'Miroslav', 'František', 'Zdeněk', 'Václav',
+        'Michal', 'Milan', 'Karel', 'Lukáš', 'David', 'Jakub', 'Vladimír', 'Ladislav', 'Roman', 'Stanislav', 'Ondřej', 'Marek',
+        'Radek', 'Antonín', 'Daniel', 'Dagmar', 'Vojtěch', 'Filip', 'Adam', 'Miloslav', 'Ivan', 'Jaromír', 'Aleš', 'Libor',
+        'Matěj', 'Vlastimil', 'Jindřich', 'Patrik', 'Miloš', 'Dominik', 'Oldřich', 'Rudolf', 'Lubomír', 'Robert', 'Luboš',
+        'Ilona', 'Bohumil', 'Radim', 'Štěpán', 'Richard', 'Ivo', 'Rostislav', 'Vít', 'Dušan', 'Luděk', 'Vladislav', 'Kamil',
+        'Bohuslav', 'Matyáš', 'Zbyněk', 'Alois', 'Viktor', 'Jozef', 'Ján', 'Michael', 'Šimon', 'Štefan', 'Vasyl', 'Vítězslav',
+        'Eduard', 'René', 'Emil', 'Marcel', 'Peter', 'Dalibor', 'Ludvík', 'Kryštof', 'Radomír'
+    );
+
+    protected static $firstNameFemale = array(
+        'Marie', 'Jana', 'Eva', 'Hana', 'Anna', 'Lenka', 'Věra', 'Kateřina', 'Alena', 'Lucie', 'Petra', 'Jaroslava', 'Veronika',
+        'Martina', 'Ludmila', 'Helena', 'Jitka', 'Michaela', 'Zdeňka', 'Tereza', 'Ivana', 'Jarmila', 'Monika', 'Jiřina', 'Zuzana',
+        'Markéta', 'Marcela', 'Barbora', 'Dana', 'Eliška', 'Božena', 'Vlasta', 'Kristýna', 'Libuše', 'Irena', 'Miroslava', 'Marta',
+        'Pavla', 'Andrea', 'Olga', 'Šárka', 'Iveta', 'Adéla', 'Pavlína', 'Klára', 'Růžena', 'Nikola', 'Blanka', 'Renata', 'Karolína',
+        'Gabriela', 'Milada', 'Zdenka', 'Simona', 'Radka', 'Natálie', 'Daniela', 'Aneta', 'Iva', 'Milena', 'Denisa', 'Miloslava',
+        'Miluše', 'Romana', 'Stanislava', 'Anežka', 'Soňa', 'Naděžda', 'Kamila', 'Vladimíra', 'Emilie', 'Renáta', 'Jindřiška',
+        'Vendula', 'Mária', 'Alžběta', 'Františka', 'Nela', 'Štěpánka', 'Dominika'
+    );
+
+    protected static $lastNameMale = array(
+        'Novák', 'Svoboda', 'Novotný', 'Dvořák', 'Černý', 'Procházka', 'Kučera', 'Nguyen', 'Veselý', 'Horák', 'Krejčí', 'Němec',
+        'Marek',	'Pospíšil','Pokorný', 'Hájek', 'Král', 'Jelínek', 'Růžička', 'Beneš', 'Fiala', 'Sedláček', 'Doležal', 'Zeman',
+        'Kolář', 'Navrátil', 'Čermák', 'Urban', 'Vaněk', 'Blažek', 'Kříž', 'Kovář', 'Kratochvíl', 'Bartoš', 'Vlček', 'Polák',
+        'Kopecký', 'Musil', 'Šimek', 'Konečný', 'Malý', 'Holub', 'Štěpánek', 'Čech', 'Kadlec', 'Staněk', 'Dostál', 'Soukup',
+        'Šťastný', 'Mareš'
+    );
+
+    protected static $lastNameFemale = array(
+        'Nováková', 'Svobodová', 'Novotná', 'Dvořáková', 'Černá', 'Procházková', 'Kučerová', 'Nguyen', 'Veselá', 'Horáková',
+        'Krejčí', 'Němcová', 'Marková', 'Pospíšilová', 'Pokorná', 'Hájková', 'Králová', 'Jelínková', 'Růžičková', 'Benešová',
+        'Fialová', 'Sedláčková', 'Doležalová', 'Zemanová', 'Kolářová', 'Navrátilová', 'Čermáková', 'Urbanová', 'Vaňková',
+        'Blažková', 'Křížová', 'Kovářová', 'Kratochvílová', 'Bartošová', 'Vlčková', 'Poláková', 'Kopecká', 'Musilová', 'Šimková',
+        'Konečná', 'Malá', 'Holubová', 'Štěpánková', 'Čechová', 'Kadlecová', 'Staňková', 'Dostálová', 'Soukupová', 'Šťastná',
+        'Marešová'
+    );
+
+    private static $prefix = array(
+        'Bc.', 'Ing.', 'MUDr.', 'MVDr.', 'Mgr.', 'JUDr.', 'PhDr.', 'RNDr.', 'doc.', 'Dr.'
+    );
+
+    public static function firstName()
+    {
+        $gender = static::randomElement(array('Male', 'Female'));
+
+        return call_user_func(array('static', 'firstName'.$gender));
+    }
+
+    public static function firstNameMale()
+    {
+        return static::randomElement(static::$firstNameMale);
+    }
+
+    public static function firstNameFemale()
+    {
+        return static::randomElement(static::$firstNameFemale);
+    }
+
+    public static function lastName()
+    {
+        $gender = static::randomElement(array('Male', 'Female'));
+
+        return call_user_func(array('static', 'lastName'.$gender));
+    }
+
+    public static function lastNameMale()
+    {
+        return static::randomElement(static::$lastNameMale);
+    }
+
+    public static function lastNameFemale()
+    {
+        return static::randomElement(static::$lastNameFemale);
+    }
+
+    public static function prefix()
+    {
+        return static::randomElement(static::$prefix);
+    }
+}

+ 14 - 0
vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/PhoneNumber.php

@@ -0,0 +1,14 @@
+<?php
+
+namespace Faker\Provider\cs_CZ;
+
+class PhoneNumber extends \Faker\Provider\PhoneNumber
+{
+    protected static $formats = array(
+        '+420 ### ### ###',
+        '### ### ###',
+        '00420#########',
+        '+420#########',
+        '#########',
+    );
+}

+ 287 - 0
vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Address.php

@@ -0,0 +1,287 @@
+<?php
+
+namespace Faker\Provider\da_DK;
+
+/**
+ * @author Antoine Corcy <contact@sbin.dk>
+ */
+class Address extends \Faker\Provider\Address
+{
+    /**
+     * @var array Danish city suffixes.
+     */
+    protected static $citySuffix = array(
+        'sted', 'bjerg', 'borg', 'rød', 'lund', 'by',
+    );
+
+    /**
+     * @var array Danish street suffixes.
+     */
+    protected static $streetSuffix = array(
+        'vej', 'gade', 'skov', 'shaven',
+    );
+
+    /**
+     * @var array Danish street word suffixes.
+     */
+    protected static $streetSuffixWord = array(
+        'Vej', 'Gade', 'Allé', 'Boulevard', 'Plads', 'Have',
+    );
+
+    /**
+     * @var array Danish building numbers.
+     */
+    protected static $buildingNumber = array(
+        '%##', '%#', '%#', '%', '%', '%', '%?', '% ?',
+    );
+
+    /**
+     * @var array Danish building level.
+     */
+    protected static $buildingLevel = array(
+        'st.', '%.', '%. sal.',
+    );
+
+    /**
+     * @var array Danish building sides.
+     */
+    protected static $buildingSide = array(
+        'tv.', 'th.',
+    );
+
+    /**
+     * @var array Danish zip code.
+     */
+    protected static $postcode = array(
+        '%###'
+    );
+
+    /**
+     * @var array Danish cities.
+     */
+    protected static $cityNames = array(
+        'Aabenraa', 'Aabybro', 'Aakirkeby', 'Aalborg', 'Aalestrup', 'Aars', 'Aarup', 'Agedrup', 'Agerbæk', 'Agerskov',
+        'Albertslund', 'Allerød', 'Allinge', 'Allingåbro', 'Almind', 'Anholt', 'Ansager', 'Arden', 'Asaa', 'Askeby',
+        'Asnæs', 'Asperup', 'Assens', 'Augustenborg', 'Aulum', 'Auning', 'Bagenkop', 'Bagsværd', 'Balle', 'Ballerup',
+        'Bandholm', 'Barrit', 'Beder', 'Bedsted', 'Bevtoft', 'Billum', 'Billund', 'Bindslev', 'Birkerød', 'Bjerringbro',
+        'Bjert', 'Bjæverskov', 'Blokhus', 'Blommenslyst', 'Blåvand', 'Boeslunde', 'Bogense', 'Bogø', 'Bolderslev', 'Bording',
+        'Borre', 'Borup', 'Brøndby', 'Brabrand', 'Bramming', 'Brande', 'Branderup', 'Bredebro', 'Bredsten', 'Brenderup',
+        'Broager', 'Broby', 'Brovst', 'Bryrup', 'Brædstrup', 'Strand', 'Brønderslev', 'Brønshøj', 'Brørup', 'Bække',
+        'Bækmarksbro', 'Bælum', 'Børkop', 'Bøvlingbjerg', 'Charlottenlund', 'Christiansfeld', 'Dalby', 'Dalmose',
+        'Dannemare', 'Daugård', 'Dianalund', 'Dragør', 'Dronninglund', 'Dronningmølle', 'Dybvad', 'Dyssegård', 'Ebberup',
+        'Ebeltoft', 'Egernsund', 'Egtved', 'Egå', 'Ejby', 'Ejstrupholm', 'Engesvang', 'Errindlev', 'Erslev', 'Esbjerg',
+        'Eskebjerg', 'Eskilstrup', 'Espergærde', 'Faaborg', 'Fanø', 'Farsø', 'Farum', 'Faxe', 'Ladeplads', 'Fejø',
+        'Ferritslev', 'Fjenneslev', 'Fjerritslev', 'Flemming', 'Fredensborg', 'Fredericia', 'Frederiksberg',
+        'Frederikshavn', 'Frederikssund', 'Frederiksværk', 'Frørup', 'Frøstrup', 'Fuglebjerg', 'Føllenslev', 'Føvling',
+        'Fårevejle', 'Fårup', 'Fårvang', 'Gadbjerg', 'Gadstrup', 'Galten', 'Gandrup', 'Gedser', 'Gedsted', 'Gedved', 'Gelsted',
+        'Gentofte', 'Gesten', 'Gilleleje', 'Gislev', 'Gislinge', 'Gistrup', 'Give', 'Gjerlev', 'Gjern', 'Glamsbjerg',
+        'Glejbjerg', 'Glesborg', 'Glostrup', 'Glumsø', 'Gram', 'Gredstedbro', 'Grenaa', 'Greve', 'Grevinge', 'Grindsted',
+        'Græsted', 'Gråsten', 'Gudbjerg', 'Sydfyn', 'Gudhjem', 'Gudme', 'Guldborg', 'Gørding', 'Gørlev', 'Gørløse',
+        'Haderslev', 'Haderup', 'Hadsten', 'Hadsund', 'Hals', 'Hammel', 'Hampen', 'Hanstholm', 'Harboøre', 'Harlev', 'Harndrup',
+        'Harpelunde', 'Hasle', 'Haslev', 'Hasselager', 'Havdrup', 'Havndal', 'Hedehusene', 'Hedensted', 'Hejls', 'Hejnsvig',
+        'Hellebæk', 'Hellerup', 'Helsinge', 'Helsingør', 'Hemmet', 'Henne', 'Herfølge', 'Herlev', 'Herlufmagle', 'Herning',
+        'Hesselager', 'Hillerød', 'Hinnerup', 'Hirtshals', 'Hjallerup', 'Hjerm', 'Hjortshøj', 'Hjørring', 'Hobro', 'Holbæk',
+        'Holeby', 'Holmegaard', 'Holstebro', 'Holsted', 'Holte', 'Horbelev', 'Hornbæk', 'Hornslet', 'Hornsyld', 'Horsens',
+        'Horslunde', 'Hovborg', 'Hovedgård', 'Humble', 'Humlebæk', 'Hundested', 'Hundslund', 'Hurup', 'Hvalsø', 'Hvide',
+        'Sande', 'Hvidovre', 'Højbjerg', 'Højby', 'Højer', 'Højslev', 'Høng', 'Hørning', 'Hørsholm', 'Hørve', 'Hårlev',
+        'Idestrup', 'Ikast', 'Ishøj', 'Janderup', 'Vestj', 'Jelling', 'Jerslev', 'Sjælland', 'Jerup', 'Jordrup', 'Juelsminde',
+        'Jyderup', 'Jyllinge', 'Jystrup', 'Midtsj', 'Jægerspris', 'Kalundborg', 'Kalvehave', 'Karby', 'Karise', 'Karlslunde',
+        'Karrebæksminde', 'Karup', 'Kastrup', 'Kerteminde', 'Kettinge', 'Kibæk', 'Kirke', 'Hyllinge', 'Såby', 'Kjellerup',
+        'Klampenborg', 'Klarup', 'Klemensker', 'Klippinge', 'Klovborg', 'Knebel', 'Kokkedal', 'Kolding', 'Kolind', 'Kongens',
+        'Lyngby', 'Kongerslev', 'Korsør', 'Kruså', 'Kvistgård', 'Kværndrup', 'København', 'Køge', 'Langebæk', 'Langeskov',
+        'Langå', 'Lejre', 'Lemming', 'Lemvig', 'Lille', 'Skensved', 'Lintrup', 'Liseleje', 'Lundby', 'Lunderskov', 'Lynge',
+        'Lystrup', 'Læsø', 'Løgstrup', 'Løgstør', 'Løgumkloster', 'Løkken', 'Løsning', 'Låsby', 'Malling', 'Mariager',
+        'Maribo', 'Marslev', 'Marstal', 'Martofte', 'Melby', 'Mern', 'Mesinge', 'Middelfart', 'Millinge', 'Morud', 'Munke',
+        'Bjergby', 'Munkebo', 'Møldrup', 'Mørke', 'Mørkøv', 'Måløv', 'Mårslet', 'Nakskov', 'Nexø', 'Nibe', 'Nimtofte',
+        'Nordborg', 'Nyborg', 'Nykøbing', 'Nyrup', 'Nysted', 'Nærum', 'Næstved', 'Nørager', 'Nørre', 'Aaby', 'Alslev',
+        'Asmindrup', 'Nebel', 'Snede', 'Nørreballe', 'Nørresundby', 'Odder', 'Odense', 'Oksbøl', 'Otterup', 'Oure', 'Outrup',
+        'Padborg', 'Pandrup', 'Præstø', 'Randbøl', 'Randers', 'Ranum', 'Rask', 'Mølle', 'Redsted', 'Regstrup', 'Ribe', 'Ringe',
+        'Ringkøbing', 'Ringsted', 'Risskov', 'Roskilde', 'Roslev', 'Rude', 'Rudkøbing', 'Ruds', 'Vedby', 'Rungsted', 'Kyst',
+        'Rynkeby', 'Ryomgård', 'Ryslinge', 'Rødby', 'Rødding', 'Rødekro', 'Rødkærsbro', 'Rødovre', 'Rødvig', 'Stevns',
+        'Rønde', 'Rønne', 'Rønnede', 'Rørvig', 'Sabro', 'Sakskøbing', 'Saltum', 'Samsø', 'Sandved', 'Sejerø', 'Silkeborg',
+        'Sindal', 'Sjællands', 'Odde', 'Sjølund', 'Skagen', 'Skals', 'Skamby', 'Skanderborg', 'Skibby', 'Skive', 'Skjern',
+        'Skodsborg', 'Skovlunde', 'Skælskør', 'Skærbæk', 'Skævinge', 'Skødstrup', 'Skørping', 'Skårup', 'Slagelse',
+        'Slangerup', 'Smørum', 'Snedsted', 'Snekkersten', 'Snertinge', 'Solbjerg', 'Solrød', 'Sommersted', 'Sorring', 'Sorø',
+        'Spentrup', 'Spjald', 'Sporup', 'Spøttrup', 'Stakroge', 'Stege', 'Stenderup', 'Stenlille', 'Stenløse', 'Stenstrup',
+        'Stensved', 'Stoholm', 'Jyll', 'Stokkemarke', 'Store', 'Fuglede', 'Heddinge', 'Merløse', 'Storvorde', 'Stouby',
+        'Strandby', 'Struer', 'Strøby', 'Stubbekøbing', 'Støvring', 'Suldrup', 'Sulsted', 'Sunds', 'Svaneke', 'Svebølle',
+        'Svendborg', 'Svenstrup', 'Svinninge', 'Sydals', 'Sæby', 'Søborg', 'Søby', 'Ærø', 'Søllested', 'Sønder', 'Felding',
+        'Sønderborg', 'Søndersø', 'Sørvad', 'Taastrup', 'Tappernøje', 'Tarm', 'Terndrup', 'Them', 'Thisted', 'Thorsø',
+        'Thyborøn', 'Thyholm', 'Tikøb', 'Tilst', 'Tinglev', 'Tistrup', 'Tisvildeleje', 'Tjele', 'Tjæreborg', 'Toftlund',
+        'Tommerup', 'Toreby', 'Torrig', 'Tranbjerg', 'Tranekær', 'Trige', 'Trustrup', 'Tune', 'Tureby', 'Tylstrup', 'Tølløse',
+        'Tønder', 'Tørring', 'Tårs', 'Ugerløse', 'Uldum', 'Ulfborg', 'Ullerslev', 'Ulstrup', 'Vadum', 'Valby', 'Vallensbæk',
+        'Vamdrup', 'Vandel', 'Vanløse', 'Varde', 'Vedbæk', 'Veflinge', 'Vejby', 'Vejen', 'Vejers', 'Vejle', 'Vejstrup',
+        'Veksø', 'Vemb', 'Vemmelev', 'Vesløs', 'Vestbjerg', 'Vester', 'Skerninge', 'Vesterborg', 'Vestervig', 'Viborg', 'Viby',
+        'Videbæk', 'Vildbjerg', 'Vils', 'Vinderup', 'Vipperød', 'Virum', 'Vissenbjerg', 'Viuf', 'Vodskov', 'Vojens', 'Vonge',
+        'Vorbasse', 'Vordingborg', 'Væggerløse', 'Værløse', 'Ærøskøbing', 'Ølgod', 'Ølsted', 'Ølstykke', 'Ørbæk',
+        'Ørnhøj', 'Ørsted', 'Djurs', 'Østbirk', 'Øster', 'Assels', 'Ulslev', 'Østermarie', 'Østervrå', 'Åbyhøj',
+        'Ålbæk', 'Ålsgårde', 'Århus', 'Årre', 'Årslev', 'Haarby', 'Nivå', 'Rømø', 'Omme', 'Vrå', 'Ørum',
+    );
+
+    /**
+     * @var array Danish municipalities, called 'kommuner' in danish.
+     */
+    protected static $kommuneNames = array(
+        'København', 'Frederiksberg', 'Ballerup', 'Brøndby', 'Dragør', 'Gentofte', 'Gladsaxe', 'Glostrup', 'Herlev',
+        'Albertslund', 'Hvidovre', 'Høje Taastrup', 'Lyngby-Taarbæk', 'Rødovre', 'Ishøj', 'Tårnby', 'Vallensbæk',
+        'Allerød', 'Fredensborg', 'Helsingør', 'Hillerød', 'Hørsholm', 'Rudersdal', 'Egedal', 'Frederikssund', 'Greve',
+        'Halsnæs', 'Roskilde', 'Solrød', 'Gribskov', 'Odsherred', 'Holbæk', 'Faxe', 'Kalundborg', 'Ringsted', 'Slagelse',
+        'Stevns', 'Sorø', 'Lejre', 'Lolland', 'Næstved', 'Guldborgsund', 'Vordingborg', 'Bornholm', 'Middelfart',
+        'Christiansø', 'Assens', 'Faaborg-Midtfyn', 'Kerteminde', 'Nyborg', 'Odense', 'Svendborg', 'Nordfyns', 'Langeland',
+        'Ærø', 'Haderslev', 'Billund', 'Sønderborg', 'Tønder', 'Esbjerg', 'Fanø', 'Varde', 'Vejen', 'Aabenraa',
+        'Fredericia', 'Horsens', 'Kolding', 'Vejle', 'Herning', 'Holstebro', 'Lemvig', 'Struer', 'Syddjurs', 'Furesø',
+        'Norddjurs', 'Favrskov', 'Odder', 'Randers', 'Silkeborg', 'Samsø', 'Skanderborg', 'Aarhus', 'Ikast-Brande',
+        'Ringkøbing-Skjern', 'Hedensted', 'Morsø', 'Skive', 'Thisted', 'Viborg', 'Brønderslev', 'Frederikshavn',
+        'Vesthimmerlands', 'Læsø', 'Rebild', 'Mariagerfjord', 'Jammerbugt', 'Aalborg', 'Hjørring', 'Køge',
+    );
+
+    /**
+     * @var array Danish regions.
+     */
+    protected static $regionNames = array(
+        'Region Nordjylland', 'Region Midtjylland', 'Region Syddanmark', 'Region Hovedstaden', 'Region Sjælland',
+    );
+
+    /**
+     * @link https://github.com/umpirsky/country-list/blob/master/country/cldr/da_DK/country.php
+     *
+     * @var array Some countries in danish.
+     */
+    protected static $country = array(
+        'Andorra', 'Forenede Arabiske Emirater', 'Afghanistan', 'Antigua og Barbuda', 'Anguilla', 'Albanien', 'Armenien',
+        'Hollandske Antiller', 'Angola', 'Antarktis', 'Argentina', 'Amerikansk Samoa', 'Østrig', 'Australien', 'Aruba',
+        'Åland', 'Aserbajdsjan', 'Bosnien-Hercegovina', 'Barbados', 'Bangladesh', 'Belgien', 'Burkina Faso', 'Bulgarien',
+        'Bahrain', 'Burundi', 'Benin', 'Saint Barthélemy', 'Bermuda', 'Brunei Darussalam', 'Bolivia', 'Brasilien', 'Bahamas',
+        'Bhutan', 'Bouvetø', 'Botswana', 'Hviderusland', 'Belize', 'Canada', 'Cocosøerne', 'Congo-Kinshasa',
+        'Centralafrikanske Republik', 'Congo', 'Schweiz', 'Elfenbenskysten', 'Cook-øerne', 'Chile', 'Cameroun', 'Kina',
+        'Colombia', 'Costa Rica', 'Serbien og Montenegro', 'Cuba', 'Kap Verde', 'Juleøen', 'Cypern', 'Tjekkiet', 'Tyskland',
+        'Djibouti', 'Danmark', 'Dominica', 'Den Dominikanske Republik', 'Algeriet', 'Ecuador', 'Estland', 'Egypten',
+        'Vestsahara', 'Eritrea', 'Spanien', 'Etiopien', 'Finland', 'Fiji-øerne', 'Falklandsøerne',
+        'Mikronesiens Forenede Stater', 'Færøerne', 'Frankrig', 'Gabon', 'Storbritannien', 'Grenada', 'Georgien',
+        'Fransk Guyana', 'Guernsey', 'Ghana', 'Gibraltar', 'Grønland', 'Gambia', 'Guinea', 'Guadeloupe', 'Ækvatorialguinea',
+        'Grækenland', 'South Georgia og De Sydlige Sandwichøer', 'Guatemala', 'Guam', 'Guinea-Bissau', 'Guyana',
+        'SAR Hongkong', 'Heard- og McDonald-øerne', 'Honduras', 'Kroatien', 'Haiti', 'Ungarn', 'Indonesien', 'Irland',
+        'Israel', 'Isle of Man', 'Indien', 'Det Britiske Territorium i Det Indiske Ocean', 'Irak', 'Iran', 'Island',
+        'Italien', 'Jersey', 'Jamaica', 'Jordan', 'Japan', 'Kenya', 'Kirgisistan', 'Cambodja', 'Kiribati', 'Comorerne',
+        'Saint Kitts og Nevis', 'Nordkorea', 'Sydkorea', 'Kuwait', 'Caymanøerne', 'Kasakhstan', 'Laos', 'Libanon',
+        'Saint Lucia', 'Liechtenstein', 'Sri Lanka', 'Liberia', 'Lesotho', 'Litauen', 'Luxembourg', 'Letland', 'Libyen',
+        'Marokko', 'Monaco', 'Republikken Moldova', 'Montenegro', 'Saint Martin', 'Madagaskar', 'Marshalløerne',
+        'Republikken Makedonien', 'Mali', 'Myanmar', 'Mongoliet', 'SAR Macao', 'Nordmarianerne', 'Martinique',
+        'Mauretanien', 'Montserrat', 'Malta', 'Mauritius', 'Maldiverne', 'Malawi', 'Mexico', 'Malaysia', 'Mozambique',
+        'Namibia', 'Ny Caledonien', 'Niger', 'Norfolk Island', 'Nigeria', 'Nicaragua', 'Holland', 'Norge', 'Nepal', 'Nauru',
+        'Niue', 'New Zealand', 'Oman', 'Panama', 'Peru', 'Fransk Polynesien', 'Papua Ny Guinea', 'Filippinerne', 'Pakistan',
+        'Polen', 'Saint Pierre og Miquelon', 'Pitcairn', 'Puerto Rico', 'De palæstinensiske områder', 'Portugal', 'Palau',
+        'Paraguay', 'Qatar', 'Reunion', 'Rumænien', 'Serbien', 'Rusland', 'Rwanda', 'Saudi-Arabien', 'Salomonøerne',
+        'Seychellerne', 'Sudan', 'Sverige', 'Singapore', 'St. Helena', 'Slovenien', 'Svalbard og Jan Mayen', 'Slovakiet',
+        'Sierra Leone', 'San Marino', 'Senegal', 'Somalia', 'Surinam', 'Sao Tome og Principe', 'El Salvador', 'Syrien',
+        'Swaziland', 'Turks- og Caicosøerne', 'Tchad', 'Franske Besiddelser i Det Sydlige Indiske Ocean', 'Togo',
+        'Thailand', 'Tadsjikistan', 'Tokelau', 'Timor-Leste', 'Turkmenistan', 'Tunesien', 'Tonga', 'Tyrkiet',
+        'Trinidad og Tobago', 'Tuvalu', 'Taiwan', 'Tanzania', 'Ukraine', 'Uganda', 'De Mindre Amerikanske Oversøiske Øer',
+        'USA', 'Uruguay', 'Usbekistan', 'Vatikanstaten', 'St. Vincent og Grenadinerne', 'Venezuela',
+        'De britiske jomfruøer', 'De amerikanske jomfruøer', 'Vietnam', 'Vanuatu', 'Wallis og Futunaøerne', 'Samoa',
+        'Yemen', 'Mayotte', 'Sydafrika', 'Zambia', 'Zimbabwe',
+    );
+
+    /**
+     * @var array Danish city format.
+     */
+    protected static $cityFormats = array(
+        '{{cityName}}',
+    );
+
+    /**
+     * @var array Danish street's name formats.
+     */
+    protected static $streetNameFormats = array(
+        '{{lastName}}{{streetSuffix}}',
+        '{{middleName}}{{streetSuffix}}',
+        '{{lastName}} {{streetSuffixWord}}',
+        '{{middleName}} {{streetSuffixWord}}',
+    );
+
+    /**
+     * @var array Danish street's address formats.
+     */
+    protected static $streetAddressFormats = array(
+        '{{streetName}} {{buildingNumber}}',
+        '{{streetName}} {{buildingNumber}}, {{buildingLevel}}',
+        '{{streetName}} {{buildingNumber}}, {{buildingLevel}} {{buildingSide}}',
+    );
+
+    /**
+     * @var array Danish address format.
+     */
+    protected static $addressFormats = array(
+        "{{streetAddress}}\n{{postcode}} {{city}}",
+    );
+
+    /**
+     * Randomly return a real city name.
+     *
+     * @return string
+     */
+    public static function cityName()
+    {
+        return static::randomElement(static::$cityNames);
+    }
+
+    /**
+     * Randomly return a suffix word.
+     *
+     * @return string
+     */
+    public static function streetSuffixWord()
+    {
+        return static::randomElement(static::$streetSuffixWord);
+    }
+
+    /**
+     * Randomly return a building number.
+     *
+     * @return string
+     */
+    public static function buildingNumber()
+    {
+        return static::toUpper(static::bothify(static::randomElement(static::$buildingNumber)));
+    }
+
+    /**
+     * Randomly return a building level.
+     *
+     * @return string
+     */
+    public static function buildingLevel()
+    {
+        return static::numerify(static::randomElement(static::$buildingLevel));
+    }
+
+    /**
+     * Randomly return a side of the building.
+     *
+     * @return string
+     */
+    public static function buildingSide()
+    {
+        return static::randomElement(static::$buildingSide);
+    }
+
+    /**
+     * Randomly return a real municipality name, called 'kommune' in danish.
+     *
+     * @return string
+     */
+    public static function kommune()
+    {
+        return static::randomElement(static::$kommuneNames);
+    }
+
+    /**
+     * Randomly return a real region name.
+     *
+     * @return string
+     */
+    public static function region()
+    {
+        return static::randomElement(static::$regionNames);
+    }
+}

+ 70 - 0
vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Company.php

@@ -0,0 +1,70 @@
+<?php
+
+namespace Faker\Provider\da_DK;
+
+/**
+ * @author Antoine Corcy <contact@sbin.dk>
+ */
+class Company extends \Faker\Provider\Company
+{
+    /**
+     * @var array Danish company name formats.
+     */
+    protected static $formats = array(
+        '{{lastName}} {{companySuffix}}',
+        '{{lastName}} {{companySuffix}}',
+        '{{lastName}} {{companySuffix}}',
+        '{{firstname}} {{lastName}} {{companySuffix}}',
+        '{{middleName}} {{companySuffix}}',
+        '{{middleName}} {{companySuffix}}',
+        '{{middleName}} {{companySuffix}}',
+        '{{firstname}} {{middleName}} {{companySuffix}}',
+        '{{lastName}} & {{lastName}} {{companySuffix}}',
+        '{{lastName}} og {{lastName}} {{companySuffix}}',
+        '{{lastName}} & {{lastName}} {{companySuffix}}',
+        '{{lastName}} og {{lastName}} {{companySuffix}}',
+        '{{middleName}} & {{middleName}} {{companySuffix}}',
+        '{{middleName}} og {{middleName}} {{companySuffix}}',
+        '{{middleName}} & {{lastName}}',
+        '{{middleName}} og {{lastName}}',
+    );
+
+    /**
+     * @var array Company suffixes.
+     */
+    protected static $companySuffix = array('ApS', 'A/S', 'I/S', 'K/S');
+
+    /**
+     * @link http://cvr.dk/Site/Forms/CMS/DisplayPage.aspx?pageid=60
+     *
+     * @var string CVR number format.
+     */
+    protected static $cvrFormat = '%#######';
+
+    /**
+     * @link http://cvr.dk/Site/Forms/CMS/DisplayPage.aspx?pageid=60
+     *
+     * @var string P number (production number) format.
+     */
+    protected static $pFormat = '%#########';
+
+    /**
+     * Generates a CVR number (8 digits).
+     *
+     * @return string
+     */
+    public static function cvr()
+    {
+        return static::numerify(static::$cvrFormat);
+    }
+
+    /**
+     * Generates a P entity number (10 digits).
+     *
+     * @return string
+     */
+    public static function p()
+    {
+        return static::numerify(static::$pFormat);
+    }
+}

+ 68 - 0
vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Internet.php

@@ -0,0 +1,68 @@
+<?php
+
+namespace Faker\Provider\da_DK;
+
+/**
+ * @author Antoine Corcy <contact@sbin.dk>
+ */
+class Internet extends \Faker\Provider\Internet
+{
+    /**
+     * @var array Some safe email TLD.
+     */
+    protected static $safeEmailTld = array(
+        'org', 'com', 'net', 'dk', 'dk', 'dk',
+    );
+
+    /**
+     * @var array Some email domains in Denmark.
+     */
+    protected static $freeEmailDomain = array(
+        'gmail.com', 'yahoo.com', 'yahoo.dk', 'hotmail.com', 'hotmail.dk', 'mail.dk', 'live.dk'
+    );
+
+    /**
+     * @var array Some TLD.
+     */
+    protected static $tld = array(
+        'com', 'com', 'com', 'biz', 'info', 'net', 'org', 'dk', 'dk', 'dk',
+    );
+
+    /**
+     * Converts Danish characters to their ASCII representation
+     *
+     * @return string
+     */
+    private static function toAscii($string)
+    {
+        $from = array('æ', 'ø', 'å', 'Æ', 'Ø', 'Å');
+        $to   = array('ae', 'oe', 'aa', 'AE', 'OE', 'AA');
+
+        return str_replace($from, $to, $string);
+    }
+
+    /**
+     * @example 'jeppe'
+     * @return string
+     */
+    public function userName()
+    {
+        $format = static::randomElement(static::$userNameFormats);
+
+        return static::toLower(static::toAscii(static::bothify($this->generator->parse($format))));
+    }
+
+    /**
+     * @example 'jensen.dk'
+     * @return string
+     */
+    public function domainWord()
+    {
+        $company = $this->generator->format('company');
+        $companyElements = explode(' ', $company);
+        $company = $companyElements[0];
+        $company = preg_replace('/\W/', '', $company);
+
+        return static::toLower(static::toAscii($company));
+    }
+}

+ 183 - 0
vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Person.php

@@ -0,0 +1,183 @@
+<?php
+
+namespace Faker\Provider\da_DK;
+
+/**
+ * @link http://www.danskernesnavne.navneforskning.ku.dk/Personnavne.asp
+ *
+ * @author Antoine Corcy <contact@sbin.dk>
+ */
+class Person extends \Faker\Provider\Person
+{
+    /**
+     * @var array Danish person name formats.
+     */
+    protected static $formats = array(
+        '{{firstName}} {{lastName}}',
+        '{{firstName}} {{lastName}}',
+        '{{firstName}} {{lastName}}',
+        '{{firstName}} {{lastName}}',
+        '{{firstName}} {{middleName}} {{lastName}}',
+        '{{firstName}} {{middleName}} {{lastName}}',
+        '{{firstName}} {{middleName}} {{lastName}}',
+        '{{firstName}} {{middleName}} {{lastName}}',
+        '{{firstName}} {{middleName}}-{{middleName}} {{lastName}}',
+        '{{firstName}} {{middleName}} {{middleName}}-{{lastName}}',
+    );
+
+    /**
+     * @var array Danish first names.
+     */
+    protected static $firstName = array(
+        'Marie', 'Peter', 'Christian', 'Erik', 'Anna', 'Jens', 'Hans', 'Margrethe', 'Niels', 'Jørgen', 'Karen', 'Kirstine',
+        'Kristian', 'Kirsten', 'Johanne', 'Henrik', 'Poul', 'Elisabeth', 'Svend', 'Søren', 'Aage', 'Michael', 'Lars', 'Else',
+        'Ole', 'Anne', 'Martin', 'Inger', 'Anders', 'Mette', 'Thomas', 'Louise', 'Johannes', 'Maria', 'Ellen', 'Knud', 'Kristine',
+        'Hanne', 'Sofie', 'Jan', 'Emil', 'John', 'Inge', 'Bent', 'Karl', 'Carl', 'Henning', 'Per', 'Susanne', 'Frederik', 'Rasmus',
+        'Morten', 'Helle', 'Andreas', 'Jesper', 'Grethe', 'Arne', 'Marianne', 'Kim', 'Lene', 'Gerda', 'Børge', 'Peder', 'Birthe',
+        'Charlotte', 'Bente', 'Birgit', 'Tove', 'Flemming', 'Edith', 'Ruth', 'Kaj', 'Mads', 'Kathrine', 'Pia', 'Lone', 'Christine',
+        'Camilla', 'Emilie', 'Leif', 'Jytte', 'Jette', 'Torben', 'Kurt', 'Birgitte', 'Mogens', 'Helene', 'Bodil', 'Julie', 'Steen',
+        'Jacob', 'Henry', 'Lis', 'Ove', 'Katrine', 'Lise', 'Ulla', 'Bjarne', 'Finn', 'Claus', 'Gitte', 'Ingeborg', 'Eva', 'Tina',
+        'Preben', 'Bo', 'Gudrun', 'Irene', 'Otto', 'Mikkel', 'Cecilie', 'Allan', 'Carsten', 'Ane', 'Christina', 'Vibeke', 'Ingrid',
+        'Jakob', 'Marius', 'Johan', 'Brian', 'Annette', 'Ida', 'Egon', 'Rikke', 'Holger', 'Emma', 'Alfred', 'Laura', 'Mathias',
+        'Viggo', 'Daniel', 'Jonas', 'Simon', 'Karin', 'Valdemar', 'Agnes', 'Aksel', 'Erna', 'Gunnar', 'Mary', 'Pernille',
+        'Mathilde', 'Anette', 'Aase', 'Kasper', 'Lykke', 'Dorthe', 'Lisbeth', 'Astrid', 'Helga', 'Verner', 'Esther', 'Vilhelm',
+        'Frank', 'Heidi', 'Signe', 'Georg', 'Line', 'Inga', 'Amalie', 'Jensine', 'Henriette', 'Dorthea', 'Helge', 'Kenneth',
+        'Erling', 'Villy', 'Elise', 'Merete', 'Alice', 'Magnus', 'Jørn', 'Lasse', 'Ib', 'Ella', 'Anton', 'Axel', 'Sonja', 'Laurits',
+        'Rigmor', 'Hansine', 'Karoline', 'Robert', 'Maren', 'Lilly', 'Margit', 'Alexander', 'Elly', 'Jenny', 'Tage', 'Harry',
+        'Vagn', 'Martha', 'Harald', 'Dorte', 'Valborg', 'Olga', 'Ejner', 'Caroline', 'Karina', 'Frederikke', 'Trine', 'Kjeld',
+        'Anni', 'Rita', 'Ernst', 'Benny', 'Jane', 'Ejnar', 'Malene', 'Maja', 'Dennis', 'Elna', 'Sara', 'Nanna', 'Agnete', 'Andrea',
+        'Linda', 'Marinus', 'Tommy', 'Bjørn', 'René', 'Stine', 'Dagmar', 'Nikolaj', 'Anker', 'Dagny', 'Karsten', 'Tobias', 'Nina',
+        'Asta', 'Nielsine', 'Palle', 'Sigrid', 'Mona', 'Gert', 'Johnny', 'Cathrine', 'Anja', 'Solveig', 'Klaus', 'Casper',
+        'Nicolai', 'Oliver', 'Sebastian', 'Jonna', 'Lillian', 'Frede', 'Rene', 'Leo', 'Anita', 'Jeppe', 'Thorvald', 'Grete',
+        'Albert', 'Ebba', 'Julius', 'Lotte', 'Ester', 'Gustav', 'Richard', 'Mia', 'William', 'Rosa', 'Viola', 'David', 'Dan',
+        'Jeanette', 'Henny', 'Benjamin', 'Mikael', 'Annelise', 'Britta', 'Petra', 'August', 'Sarah', 'Gurli', 'Birte', 'Steffen',
+        'Stig', 'Vera', 'Ann', 'Edvard', 'Oluf', 'Ulrik', 'Patrick', 'Sophie', 'Vilhelmine', 'Tom', 'Tine', 'Agnethe', 'Laila',
+        'Joan', 'Connie', 'Michelle', 'Ketty', 'Karla', 'Augusta', 'Kai', 'Orla', 'Alma', 'Petrea', 'Evald', 'Victor', 'Ali',
+        'Betty', 'Oda', 'Kristina', 'Ejvind', 'Alex', 'Edel', 'Ragnhild', 'Ivan', 'Ditte', 'Bettina', 'Willy', 'Paul', 'Rune',
+        'Mark', 'Magdalene', 'Annie', 'Clara', 'Lisa', 'Eleonora', 'Keld', 'Kristen', 'Theodor', 'Doris', 'Lilian', 'Ludvig',
+        'Simone', 'Mie', 'Lena', 'Asger', 'Elin', 'Christoffer', 'Olivia', 'Christen', 'Magda', 'Oskar', 'Berit', 'Carla',
+        'Thorkild', 'Charles', 'Heinrich', 'Max', 'Thora', 'Eigil', 'Josefine', 'Frida', 'Yvonne', 'Tanja', 'Stefan', 'Vivi',
+        'Mariane', 'Herman', 'Kamilla', 'Emmy', 'Betina', 'Gunhild', 'Elsebeth', 'Bernhard', 'Sigurd', 'Sanne', 'Margrete',
+        'Anny', 'Nicklas', 'Birger', 'Elvira', 'Randi', 'Viktor', 'Frode', 'Louis', 'Emanuel', 'Lydia', 'Klara', 'Minna', 'Bruno',
+        'Philip', 'Ingemann', 'Marcus', 'Susan', 'Amanda', 'Carlo', 'Martine', 'Rasmine', 'Lea', 'Olaf', 'Janne', 'Tonny', 'Conny',
+        'Oline', 'Lærke', 'Troels', 'Gunner', 'Hedvig', 'Sven', 'Carina', 'Jannie', 'Kristoffer', 'Sørine', 'Lilli', 'Freja',
+        'Kristiane', 'Nicoline', 'Bertha', 'Meta', 'Christiane', 'Kent', 'Arnold', 'Victoria', 'Kamma', 'Gertrud', 'Sofus',
+        'Mohammad', 'Elisa', 'Harriet', 'Nicolaj', 'Ingelise', 'Adolf', 'Britt', 'Kate', 'Nikoline', 'Lissi', 'Petrine', 'Sandra',
+        'Ebbe', 'Herdis', 'Helena', 'Herluf', 'Hugo', 'Freddy', 'Irma', 'Rudolf', 'Liselotte', 'Arthur', 'Isabella', 'Jørgine',
+        'Mike', 'Eli', 'Oscar', 'Janni', 'Katja', 'Iben', 'Diana', 'Josephine', 'Helen', 'Werner', 'Lucas', 'Juliane', 'Uffe',
+        'Hilda', 'Jes', 'Ahmad', 'Winnie', 'Jimmy', 'Frits', 'Lynge', 'Jonathan', 'Marlene', 'Sten', 'Laurids', 'Mohamed', 'Helmer',
+        'Esben', 'Anne-Marie', 'Villiam', 'Einar', 'Vita', 'Poula', 'Adam', 'Thor', 'Ninna', 'Hartvig', 'Wilhelm', 'Asbjørn',
+        'Therese', 'Thi', 'Nadia', 'Helmuth', 'Majbritt', 'Sigfred', 'Jon', 'Eline', 'Krista', 'Sune', 'Anine', 'Maiken', 'Thea',
+        'Juel', 'Bendt', 'Hermann', 'Anne-Mette', 'Kaja', 'Iris', 'Richardt', 'Thyra', 'Elias', 'Metha', 'Gerhard', 'Povl',
+        'Bjarke', 'Joachim', 'Martinus', 'Lukas', 'Ingvard', 'Tim', 'Solvejg', 'Pouline', 'Hjalmar', 'Walther', 'Hassan', 'Ina',
+        'Sofia', 'Erland', 'Laurine', 'Lauritz', 'Ejgil', 'Unavngivet', 'Ellinor', 'Ejler', 'Liv', 'Kevin', 'Christa', 'Marc',
+        'Annalise', 'Elsa', 'Lizzie', 'Ahmed', 'Nils', 'Ferdinand', 'Ilse', 'Hanna', 'Markus', 'Niklas', 'Edmund', 'Alfrida',
+        'Folmer', 'Rebecca', 'Jul', 'Christopher', 'Lisbet', 'Mille', 'Theodora', 'Nancy', 'Benedikte', 'Osvald', 'Fritz', 'Vang',
+        'Alberte', 'Kresten', 'Nick', 'Vivian', 'Annika', 'Yrsa', 'Rose', 'Åge', 'Hardy', 'Ibrahim', 'Alexandra', 'Sabrina',
+        'Mohamad', 'Sine', 'Inge-Lise', 'Anne-Lise', 'Paula', 'Bolette', 'Sidsel', 'Viktoria', 'Jack', 'Alvilda', 'Maj-Britt',
+        'Ingolf', 'Ragna', 'Malthe', 'Lennart', 'Chris', 'Olav', 'Severin', 'Alf', 'Lissy', 'Maj', 'Jimmi', 'Monica', 'Selma',
+        'Johanna', 'Vagner', 'Elinor', 'Merethe', 'Rebekka', 'Josef', 'Pauline', 'Bitten', 'Agathe', 'Heine', 'Conni', 'Karlo',
+        'Rolf', 'Stephanie', 'Matilde', 'Chr', 'Jeanne', 'Evelyn', 'Dora', 'Mai', 'Leon',
+    );
+
+    /**
+     * @var array Danish middle names.
+     */
+    protected static $middleName = array(
+        'Møller', 'Lund', 'Holm', 'Jensen', 'Juul', 'Nielsen', 'Kjær', 'Hansen', 'Skov', 'Østergaard', 'Vestergaard',
+        'Nørgaard', 'Dahl', 'Bach', 'Friis', 'Søndergaard', 'Andersen', 'Bech', 'Pedersen', 'Bruun', 'Nygaard', 'Winther',
+        'Bang', 'Krogh', 'Schmidt', 'Christensen', 'Hedegaard', 'Toft', 'Damgaard', 'Holst', 'Sørensen', 'Juhl', 'Munk',
+        'Skovgaard', 'Søgaard', 'Aagaard', 'Berg', 'Dam', 'Petersen', 'Lind', 'Overgaard', 'Brandt', 'Larsen', 'Bak', 'Schou',
+        'Vinther', 'Bjerregaard', 'Riis', 'Bundgaard', 'Kruse', 'Mølgaard', 'Hjorth', 'Ravn', 'Madsen', 'Rasmussen',
+        'Jørgensen', 'Kristensen', 'Bonde', 'Bay', 'Hougaard', 'Dalsgaard', 'Kjærgaard', 'Haugaard', 'Munch', 'Bjerre', 'Due',
+        'Sloth', 'Leth', 'Kofoed', 'Thomsen', 'Kragh', 'Højgaard', 'Dalgaard', 'Hjort', 'Kirkegaard', 'Bøgh', 'Beck', 'Nissen',
+        'Rask', 'Høj', 'Brix', 'Storm', 'Buch', 'Bisgaard', 'Birch', 'Gade', 'Kjærsgaard', 'Hald', 'Lindberg', 'Høgh', 'Falk',
+        'Koch', 'Thorup', 'Borup', 'Knudsen', 'Vedel', 'Poulsen', 'Bøgelund', 'Juel', 'Frost', 'Hvid', 'Bjerg', 'Bæk', 'Elkjær',
+        'Hartmann', 'Kirk', 'Sand', 'Sommer', 'Skou', 'Nedergaard', 'Meldgaard', 'Brink', 'Lindegaard', 'Fischer', 'Rye',
+        'Hoffmann', 'Daugaard', 'Gram', 'Johansen', 'Meyer', 'Schultz', 'Fogh', 'Bloch', 'Lundgaard', 'Brøndum', 'Jessen',
+        'Busk', 'Holmgaard', 'Lindholm', 'Krog', 'Egelund', 'Engelbrecht', 'Buus', 'Korsgaard', 'Ellegaard', 'Tang', 'Steen',
+        'Kvist', 'Olsen', 'Nørregaard', 'Fuglsang', 'Wulff', 'Damsgaard', 'Hauge', 'Sonne', 'Skytte', 'Brun', 'Kronborg',
+        'Abildgaard', 'Fabricius', 'Bille', 'Skaarup', 'Rahbek', 'Borg', 'Torp', 'Klitgaard', 'Nørskov', 'Greve', 'Hviid',
+        'Mørch', 'Buhl', 'Rohde', 'Mørk', 'Vendelbo', 'Bjørn', 'Laursen', 'Egede', 'Rytter', 'Lehmann', 'Guldberg', 'Rosendahl',
+        'Krarup', 'Krogsgaard', 'Westergaard', 'Rosendal', 'Fisker', 'Højer', 'Rosenberg', 'Svane', 'Storgaard', 'Pihl',
+        'Mohamed', 'Bülow', 'Birk', 'Hammer', 'Bro', 'Kaas', 'Clausen', 'Nymann', 'Egholm', 'Ingemann', 'Haahr', 'Olesen',
+        'Nøhr', 'Brinch', 'Bjerring', 'Christiansen', 'Schrøder', 'Guldager', 'Skjødt', 'Højlund', 'Ørum', 'Weber',
+        'Bødker', 'Bruhn', 'Stampe', 'Astrup', 'Schack', 'Mikkelsen', 'Høyer', 'Husted', 'Skriver', 'Lindgaard', 'Yde',
+        'Sylvest', 'Lykkegaard', 'Ploug', 'Gammelgaard', 'Pilgaard', 'Brogaard', 'Degn', 'Kaae', 'Kofod', 'Grønbæk',
+        'Lundsgaard', 'Bagge', 'Lyng', 'Rømer', 'Kjeldgaard', 'Hovgaard', 'Groth', 'Hyldgaard', 'Ladefoged', 'Jacobsen',
+        'Linde', 'Lange', 'Stokholm', 'Bredahl', 'Hein', 'Mose', 'Bækgaard', 'Sandberg', 'Klarskov', 'Kamp', 'Green',
+        'Iversen', 'Riber', 'Smedegaard', 'Nyholm', 'Vad', 'Balle', 'Kjeldsen', 'Strøm', 'Borch', 'Lerche', 'Grønlund',
+        'Vestergård', 'Østergård', 'Nyborg', 'Qvist', 'Damkjær', 'Kold', 'Sønderskov', 'Bank',
+    );
+
+    /**
+     * @var array Danish last names.
+     */
+    protected static $lastName = array(
+        'Jensen', 'Nielsen', 'Hansen', 'Pedersen', 'Andersen', 'Christensen', 'Larsen', 'Sørensen', 'Rasmussen', 'Petersen',
+        'Jørgensen', 'Madsen', 'Kristensen', 'Olsen', 'Christiansen', 'Thomsen', 'Poulsen', 'Johansen', 'Knudsen', 'Mortensen',
+        'Møller', 'Jacobsen', 'Jakobsen', 'Olesen', 'Frederiksen', 'Mikkelsen', 'Henriksen', 'Laursen', 'Lund', 'Schmidt',
+        'Eriksen', 'Holm', 'Kristiansen', 'Clausen', 'Simonsen', 'Svendsen', 'Andreasen', 'Iversen', 'Jeppesen', 'Mogensen',
+        'Jespersen', 'Nissen', 'Lauridsen', 'Frandsen', 'Østergaard', 'Jepsen', 'Kjær', 'Carlsen', 'Vestergaard', 'Jessen',
+        'Nørgaard', 'Dahl', 'Christoffersen', 'Skov', 'Søndergaard', 'Bertelsen', 'Bruun', 'Lassen', 'Bach', 'Gregersen',
+        'Friis', 'Johnsen', 'Steffensen', 'Kjeldsen', 'Bech', 'Krogh', 'Lauritsen', 'Danielsen', 'Mathiesen', 'Andresen',
+        'Brandt', 'Winther', 'Toft', 'Ravn', 'Mathiasen', 'Dam', 'Holst', 'Nilsson', 'Lind', 'Berg', 'Schou', 'Overgaard',
+        'Kristoffersen', 'Schultz', 'Klausen', 'Karlsen', 'Paulsen', 'Hermansen', 'Thorsen', 'Koch', 'Thygesen', 'Bak', 'Kruse',
+        'Bang', 'Juhl', 'Davidsen', 'Berthelsen', 'Nygaard', 'Lorentzen', 'Villadsen', 'Lorenzen', 'Damgaard', 'Bjerregaard',
+        'Lange', 'Hedegaard', 'Bendtsen', 'Lauritzen', 'Svensson', 'Justesen', 'Juul', 'Hald', 'Beck', 'Kofoed', 'Søgaard',
+        'Meyer', 'Kjærgaard', 'Riis', 'Johannsen', 'Carstensen', 'Bonde', 'Ibsen', 'Fischer', 'Andersson', 'Bundgaard',
+        'Johannesen', 'Eskildsen', 'Hemmingsen', 'Andreassen', 'Thomassen', 'Schrøder', 'Persson', 'Hjorth', 'Enevoldsen',
+        'Nguyen', 'Henningsen', 'Jønsson', 'Olsson', 'Asmussen', 'Michelsen', 'Vinther', 'Markussen', 'Kragh', 'Thøgersen',
+        'Johansson', 'Dalsgaard', 'Gade', 'Bjerre', 'Ali', 'Laustsen', 'Buch', 'Ludvigsen', 'Hougaard', 'Kirkegaard', 'Marcussen',
+        'Mølgaard', 'Ipsen', 'Sommer', 'Ottosen', 'Müller', 'Krog', 'Hoffmann', 'Clemmensen', 'Nikolajsen', 'Brodersen',
+        'Therkildsen', 'Leth', 'Michaelsen', 'Graversen', 'Frost', 'Dalgaard', 'Albertsen', 'Laugesen', 'Due', 'Ebbesen',
+        'Munch', 'Svenningsen', 'Ottesen', 'Fisker', 'Albrechtsen', 'Axelsen', 'Erichsen', 'Sloth', 'Bentsen', 'Westergaard',
+        'Bisgaard', 'Nicolaisen', 'Magnussen', 'Thuesen', 'Povlsen', 'Thorup', 'Høj', 'Bentzen', 'Johannessen', 'Vilhelmsen',
+        'Isaksen', 'Bendixen', 'Ovesen', 'Villumsen', 'Lindberg', 'Thomasen', 'Kjærsgaard', 'Buhl', 'Kofod', 'Ahmed', 'Smith',
+        'Storm', 'Christophersen', 'Bruhn', 'Matthiesen', 'Wagner', 'Bjerg', 'Gram', 'Nedergaard', 'Dinesen', 'Mouritsen',
+        'Boesen', 'Borup', 'Abrahamsen', 'Wulff', 'Gravesen', 'Rask', 'Pallesen', 'Greve', 'Korsgaard', 'Haugaard', 'Josefsen',
+        'Bæk', 'Espersen', 'Thrane', 'Mørch', 'Frank', 'Lynge', 'Rohde', 'Larsson', 'Hammer', 'Torp', 'Sonne', 'Boysen', 'Bay',
+        'Pihl', 'Fabricius', 'Høyer', 'Birch', 'Skou', 'Kirk', 'Antonsen', 'Høgh', 'Damsgaard', 'Dall', 'Truelsen', 'Daugaard',
+        'Fuglsang', 'Martinsen', 'Therkelsen', 'Jansen', 'Karlsson', 'Caspersen', 'Steen', 'Callesen', 'Balle', 'Bloch', 'Smidt',
+        'Rahbek', 'Hjort', 'Bjørn', 'Skaarup', 'Sand', 'Storgaard', 'Willumsen', 'Busk', 'Hartmann', 'Ladefoged', 'Skovgaard',
+        'Philipsen', 'Damm', 'Haagensen', 'Hviid', 'Duus', 'Kvist', 'Adamsen', 'Mathiassen', 'Degn', 'Borg', 'Brix', 'Troelsen',
+        'Ditlevsen', 'Brøndum', 'Svane', 'Mohamed', 'Birk', 'Brink', 'Hassan', 'Vester', 'Elkjær', 'Lykke', 'Nørregaard',
+        'Meldgaard', 'Mørk', 'Hvid', 'Abildgaard', 'Nicolajsen', 'Bengtsson', 'Stokholm', 'Ahmad', 'Wind', 'Rømer', 'Gundersen',
+        'Carlsson', 'Grøn', 'Khan', 'Skytte', 'Bagger', 'Hendriksen', 'Rosenberg', 'Jonassen', 'Severinsen', 'Jürgensen',
+        'Boisen', 'Groth', 'Bager', 'Fogh', 'Hussain', 'Samuelsen', 'Pilgaard', 'Bødker', 'Dideriksen', 'Brogaard', 'Lundberg',
+        'Hansson', 'Schwartz', 'Tran', 'Skriver', 'Klitgaard', 'Hauge', 'Højgaard', 'Qvist', 'Voss', 'Strøm', 'Wolff', 'Krarup',
+        'Green', 'Odgaard', 'Tønnesen', 'Blom', 'Gammelgaard', 'Jæger', 'Kramer', 'Astrup', 'Würtz', 'Lehmann', 'Koefoed',
+        'Skøtt', 'Lundsgaard', 'Bøgh', 'Vang', 'Martinussen', 'Sandberg', 'Weber', 'Holmgaard', 'Bidstrup', 'Meier', 'Drejer',
+        'Schneider', 'Joensen', 'Dupont', 'Lorentsen', 'Bro', 'Bagge', 'Terkelsen', 'Kaspersen', 'Keller', 'Eliasen', 'Lyberth',
+        'Husted', 'Mouritzen', 'Krag', 'Kragelund', 'Nørskov', 'Vad', 'Jochumsen', 'Hein', 'Krogsgaard', 'Kaas', 'Tolstrup',
+        'Ernst', 'Hermann', 'Børgesen', 'Skjødt', 'Holt', 'Buus', 'Gotfredsen', 'Kjeldgaard', 'Broberg', 'Roed', 'Sivertsen',
+        'Bergmann', 'Bjerrum', 'Petersson', 'Smed', 'Jeremiassen', 'Nyborg', 'Borch', 'Foged', 'Terp', 'Mark', 'Busch',
+        'Lundgaard', 'Boye', 'Yde', 'Hinrichsen', 'Matzen', 'Esbensen', 'Hertz', 'Westh', 'Holmberg', 'Geertsen', 'Raun',
+        'Aagaard', 'Kock', 'Falk', 'Munk',
+    );
+
+    /**
+     * Randomly return a danish name.
+     *
+     * @return string
+     */
+    public static function middleName()
+    {
+        return static::randomElement(static::$middleName);
+    }
+
+    /**
+     * Randomly return a danish CPR number (Personnal identification number) format.
+     *
+     * @link http://cpr.dk/cpr/site.aspx?p=16
+     * @link http://en.wikipedia.org/wiki/Personal_identification_number_%28Denmark%29
+     *
+     * @return string
+     */
+    public static function cpr()
+    {
+        $birthdate = new \DateTime('@' . mt_rand(0, time()));
+
+        return sprintf('%s-%s', $birthdate->format('dmy'), static::numerify('%###'));
+    }
+}

+ 21 - 0
vendor/fzaninotto/faker/src/Faker/Provider/da_DK/PhoneNumber.php

@@ -0,0 +1,21 @@
+<?php
+
+namespace Faker\Provider\da_DK;
+
+/**
+ * @author Antoine Corcy <contact@sbin.dk>
+ */
+class PhoneNumber extends \Faker\Provider\PhoneNumber
+{
+    /**
+     * @var array Danish phonenumber formats.
+     */
+    protected static $formats = array(
+        '+45 ## ## ## ##',
+        '+45 #### ####',
+        '+45########',
+        '## ## ## ##',
+        '#### ####',
+        '########',
+    );
+}

+ 99 - 0
vendor/fzaninotto/faker/src/Faker/Provider/de_AT/Address.php

@@ -0,0 +1,99 @@
+<?php
+
+namespace Faker\Provider\de_AT;
+
+class Address extends \Faker\Provider\Address
+{
+    protected static $buildingNumber = array('###', '##', '#');
+
+    protected static $streetSuffixLong = array(
+        'Gasse', 'Platz', 'Ring', 'Straße', 'Weg',
+    );
+    protected static $streetSuffixShort = array(
+        'gasse', 'platz', 'ring', 'straße', 'weg',
+    );
+
+    protected static $postcode = array('####');
+
+    protected static $cityNames = array(
+        'Allentsteig', 'Altheim', 'Althofen', 'Amstetten', 'Ansfelden', 'Attnang-Puchheim',
+        'Bad Aussee', 'Bad Hall', 'Bad Ischl', 'Bad Leonfelden', 'Bad Radkersburg', 'Bad Sankt Leonhard im Lavanttal', 'Bad Vöslau', 'Baden', 'Bärnbach', 'Berndorf', 'Bischofshofen', 'Bleiburg', 'Bludenz', 'Braunau am Inn', 'Bregenz', 'Bruck an der Leitha', 'Bruck an der Mur',
+        'Deutsch-Wagram', 'Deutschlandsberg', 'Dornbirn', 'Drosendorf-Zissersdorf 1', 'Dürnstein',
+        'Ebenfurth', 'Ebreichsdorf', 'Eferding', 'Eggenburg', 'Eisenerz', 'Eisenstadt', 'Enns',
+        'Fehring', 'Feldbach', 'Feldkirch', 'Feldkirchen', 'Ferlach', 'Fischamend', 'Frauenkirchen', 'Freistadt', 'Friedberg', 'Friesach', 'Frohnleiten', 'Fürstenfeld',
+        'Gallneukirchen', 'Gänserndorf', 'Geras', 'Gerasdorf bei Wien', 'Gföhl', 'Gleisdorf', 'Gloggnitz', 'Gmünd', 'Gmünd in Kärnten', 'Gmunden', 'Graz', 'Grein', 'Grieskirchen', 'Groß-Enzersdorf', 'Groß-Gerungs', 'Groß-Siegharts', 'Güssing',
+        'Haag', 'Hainburg an der Donau', 'Hainfeld', 'Hall in Tirol', 'Hallein', 'Hardegg', 'Hartberg', 'Heidenreichstein', 'Hermagor-Pressegger See', 'Herzogenburg', 'Hohenems', 'Hollabrunn', 'Horn',
+        'Imst', 'Innsbruck',
+        'Jennersdorf', 'Judenburg',
+        'Kapfenberg', 'Kindberg', 'Kirchdorf an der Krems', 'Kirchschlag in der Buckligen Welt', 'Kitzbühel', 'Klagenfurt', 'Klosterneuburg', 'Knittelfeld', 'Köflach', 'Korneuburg', 'Krems an der Donau', 'Kufstein',
+        'Laa an der Thaya', 'Laakirchen', 'Landeck', 'Langenlois', 'Leibnitz', 'Leoben', 'Leonding', 'Lienz', 'Liezen', 'Lilienfeld', 'Linz', 'Litschau',
+        'Maissau', 'Mank', 'Mannersdorf am Leithagebirge', 'Marchegg', 'Marchtrenk', 'Mariazell', 'Mattersburg', 'Mattighofen', 'Mautern an der Donau', 'Melk', 'Mistelbach an der Zaya', 'Mödling', 'Murau', 'Mureck', 'Mürzzuschlag',
+        'Neufeld an der Leitha', 'Neulengbach', 'Neumarkt am Wallersee', 'Neunkirchen', 'Neusiedl am See',
+        'Oberndorf bei Salzburg', 'Oberpullendorf', 'Oberwart', 'Oberwälz',
+        'Perg', 'Peuerbach', 'Pinkafeld', 'Pöchlarn', 'Poysdorf', 'Pregarten', 'Pulkau', 'Purbach am Neusiedler See', 'Purkersdorf',
+        'Raabs an der Thaya', 'Radenthein', 'Radstadt', 'Rattenberg', 'Retz', 'Ried im Innkreis', 'Rohrbach in Oberösterreich', 'Rottenmann', 'Rust',
+        'Saalfelden am Steinernen Meer', 'Salzburg', 'Sankt Andrä im Lavanttal', 'Sankt Johann im Pongau', 'Sankt Pölten', 'Sankt Valentin', 'Sankt Veit an der Glan', 'Schärding', 'Scheibbs', 'Schladming', 'Schrattenthal', 'Schrems', 'Schwanenstadt', 'Schwaz', 'Schwechat', 'Seekirchen am Wallersee', 'Spittal an der Drau', 'Stadtschlaining', 'Steyr', 'Steyregg', 'Stockerau', 'Straßburg',
+        'Ternitz', 'Traiskirchen', 'Traismauer', 'Traun', 'Trieben', 'Trofaiach', 'Tulln an der Donau',
+        'Villach', 'Vils', 'Vöcklabruck', 'Voitsberg', 'Völkermarkt',
+        'Waidhofen an der Thaya', 'Waidhofen an der Ybbs', 'Weitra', 'Weiz', 'Wels', 'Wien', 'Wiener Neustadt', 'Wieselburg', 'Wilhelmsburg', 'Wolfsberg', 'Wolkersdorf', 'Wörgl',
+        'Ybbs an der Donau',
+        'Zell am See', 'Zeltweg', 'Zistersdorf', 'Zwettl',
+    );
+
+    protected static $country = array(
+        'Afghanistan', 'Alandinseln', 'Albanien', 'Algerien', 'Amerikanisch-Ozeanien', 'Amerikanisch-Samoa', 'Amerikanische Jungferninseln', 'Andorra', 'Angola', 'Anguilla', 'Antarktis', 'Antigua und Barbuda', 'Argentinien', 'Armenien', 'Aruba', 'Aserbaidschan', 'Australien', 'Ägypten', 'Äquatorialguinea', 'Äthiopien', 'Äußeres Ozeanien',
+        'Bahamas', 'Bahrain', 'Bangladesch', 'Barbados', 'Belarus', 'Belgien', 'Belize', 'Benin', 'Bermuda', 'Bhutan', 'Bolivien', 'Bosnien und Herzegowina', 'Botsuana', 'Bouvetinsel', 'Brasilien', 'Britische Jungferninseln', 'Britisches Territorium im Indischen Ozean', 'Brunei Darussalam', 'Bulgarien', 'Burkina Faso', 'Burundi',
+        'Chile', 'China', 'Cookinseln', 'Costa Rica', 'Côte d’Ivoire',
+        'Demokratische Republik Kongo', 'Demokratische Volksrepublik Korea', 'Deutschland', 'Dominica', 'Dominikanische Republik', 'Dschibuti', 'Dänemark',
+        'Ecuador', 'El Salvador', 'Eritrea', 'Estland', 'Europäische Union',
+        'Falklandinseln', 'Fidschi', 'Finnland', 'Frankreich', 'Französisch-Guayana', 'Französisch-Polynesien', 'Französische Süd- und Antarktisgebiete', 'Färöer',
+        'Gabun', 'Gambia', 'Georgien', 'Ghana', 'Gibraltar', 'Grenada', 'Griechenland', 'Grönland', 'Guadeloupe', 'Guam', 'Guatemala', 'Guernsey', 'Guinea', 'Guinea-Bissau', 'Guyana',
+        'Haiti', 'Heard- und McDonald-Inseln', 'Honduras',
+        'Indien', 'Indonesien', 'Irak', 'Iran', 'Irland', 'Island', 'Isle of Man', 'Israel', 'Italien',
+        'Jamaika', 'Japan', 'Jemen', 'Jersey', 'Jordanien',
+        'Kaimaninseln', 'Kambodscha', 'Kamerun', 'Kanada', 'Kap Verde', 'Kasachstan', 'Katar', 'Kenia', 'Kirgisistan', 'Kiribati', 'Kokosinseln', 'Kolumbien', 'Komoren', 'Kongo', 'Kroatien', 'Kuba', 'Kuwait',
+        'Laos', 'Lesotho', 'Lettland', 'Libanon', 'Liberia', 'Libyen', 'Liechtenstein', 'Litauen', 'Luxemburg',
+        'Madagaskar', 'Malawi', 'Malaysia', 'Malediven', 'Mali', 'Malta', 'Marokko', 'Marshallinseln', 'Martinique', 'Mauretanien', 'Mauritius', 'Mayotte', 'Mazedonien', 'Mexiko', 'Mikronesien', 'Monaco', 'Mongolei', 'Montenegro', 'Montserrat', 'Mosambik', 'Myanmar',
+        'Namibia', 'Nauru', 'Nepal', 'Neukaledonien', 'Neuseeland', 'Nicaragua', 'Niederlande', 'Niederländische Antillen', 'Niger', 'Nigeria', 'Niue', 'Norfolkinsel', 'Norwegen', 'Nördliche Marianen',
+        'Oman', 'Osttimor', 'Österreich',
+        'Pakistan', 'Palau', 'Palästinensische Gebiete', 'Panama', 'Papua-Neuguinea', 'Paraguay', 'Peru', 'Philippinen', 'Pitcairn', 'Polen', 'Portugal', 'Puerto Rico',
+        'Republik Korea', 'Republik Moldau', 'Ruanda', 'Rumänien', 'Russische Föderation', 'Réunion',
+        'Salomonen', 'Sambia', 'Samoa', 'San Marino', 'Saudi-Arabien', 'Schweden', 'Schweiz', 'Senegal', 'Serbien', 'Serbien und Montenegro', 'Seychellen', 'Sierra Leone', 'Simbabwe', 'Singapur', 'Slowakei', 'Slowenien', 'Somalia', 'Sonderverwaltungszone Hongkong', 'Sonderverwaltungszone Macao', 'Spanien', 'Sri Lanka', 'St. Barthélemy', 'St. Helena', 'St. Kitts und Nevis', 'St. Lucia', 'St. Martin', 'St. Pierre und Miquelon', 'St. Vincent und die Grenadinen', 'Sudan', 'Suriname', 'Svalbard und Jan Mayen', 'Swasiland', 'Syrien', 'São Tomé und Príncipe', 'Südafrika', 'Südgeorgien und die Südlichen Sandwichinseln',
+        'Tadschikistan', 'Taiwan', 'Tansania', 'Thailand', 'Togo', 'Tokelau', 'Tonga', 'Trinidad und Tobago', 'Tschad', 'Tschechische Republik', 'Tunesien', 'Turkmenistan', 'Turks- und Caicosinseln', 'Tuvalu', 'Türkei',
+        'Uganda', 'Ukraine', 'Unbekannte oder ungültige Region', 'Ungarn', 'Uruguay', 'Usbekistan',
+        'Vanuatu', 'Vatikanstadt', 'Venezuela', 'Vereinigte Arabische Emirate', 'Vereinigte Staaten', 'Vereinigtes Königreich', 'Vietnam',
+        'Wallis und Futuna', 'Weihnachtsinsel', 'Westsahara',
+        'Zentralafrikanische Republik', 'Zypern',
+    );
+
+    protected static $cityFormats = array(
+        '{{cityName}}',
+    );
+
+    protected static $streetNameFormats = array(
+        '{{lastName}}{{streetSuffixShort}}',
+        '{{firstName}}-{{lastName}}-{{streetSuffixLong}}'
+    );
+
+    protected static $streetAddressFormats = array(
+        '{{streetName}} {{buildingNumber}}',
+    );
+    protected static $addressFormats = array(
+        "{{streetAddress}}\n{{postcode}} {{city}}",
+    );
+
+    public function cityName()
+    {
+        return static::randomElement(static::$cityNames);
+    }
+
+    public function streetSuffixShort()
+    {
+        return static::randomElement(static::$streetSuffixShort);
+    }
+
+    public function streetSuffixLong()
+    {
+        return static::randomElement(static::$streetSuffixLong);
+    }
+}

+ 202 - 0
vendor/fzaninotto/faker/src/Faker/Provider/de_AT/Person.php

@@ -0,0 +1,202 @@
+<?php
+
+namespace Faker\Provider\de_AT;
+
+class Person extends \Faker\Provider\Person
+{
+    protected static $formats = array(
+        '{{firstNameMale}} {{lastName}}',
+        '{{firstNameMale}} {{lastName}}',
+        '{{firstNameMale}} {{lastName}}',
+        '{{firstNameMale}} {{lastName}}',
+        '{{firstNameFemale}} {{lastName}}',
+        '{{firstNameFemale}} {{lastName}}',
+        '{{firstNameFemale}} {{lastName}}',
+        '{{firstNameFemale}} {{lastName}}',
+        '{{prefixMale}} {{firstNameMale}} {{lastName}}',
+        '{{prefixFemale}} {{firstNameFemale}} {{lastName}}',
+        '{{firstNameMale}} {{lastName}} {{suffix}}',
+        '{{firstNameFemale}} {{lastName}} {{suffix}}',
+        '{{prefixMale}} {{firstNameMale}} {{lastName}} {{suffix}}',
+        '{{prefixFemale}} {{firstNameFemale}} {{lastName}} {{suffix}}',
+    );
+
+    protected static $firstNameMale = array(
+        'Abel', 'Abraham', 'Adalbero', 'Adam', 'Adamo', 'Adolfo', 'Adrian', 'Adriano', 'Adrianus', 'Adrien', 'Alain', 'Alajos', 'Alan', 'Albain', 'Alban', 'Albano', 'Alberto', 'Albin', 'Alec', 'Alejandro', 'Alessandro', 'Alessio', 'Alex', 'Alexander', 'Alexandre', 'Alexandros', 'Alexej', 'Alexis', 'Alfons', 'Alfonso', 'Aljoscha', 'Allan', 'Allen', 'Alois', 'Alon', 'Alonzo', 'Alphonse', 'Alwin', 'Amadeo', 'Amadeus', 'Amandus', 'Amos', 'Anatol', 'Anatole', 'Anatolij', 'Anders', 'Andi', 'Andor', 'Andre', 'Andreas', 'Andrej', 'Andrew', 'Andrijan', 'Andy', 'Angelus', 'Ansgar', 'Anthony', 'Antoine', 'Anton', 'Antonio', 'Araldo', 'Aram', 'Argus', 'Arjan', 'Armin', 'Arminio', 'Arnaldo', 'Arnault', 'Arndt', 'Arne', 'Arno', 'Arnold', 'Arrigo', 'Art', 'Arthur', 'Artur', 'Arturo', 'August', 'Auguste', 'Augustin', 'Aurelius', 'Axel',
+        'Balduin', 'Balthasar', 'Bardo', 'Barnabas', 'Barnard', 'Barney', 'Baruch', 'Basil', 'Basilius', 'Bastian', 'Bastien', 'Battista', 'Beatus', 'Beltrame', 'Beltran', 'Ben', 'Benedetto', 'Benedict', 'Benedikt', 'Bengt', 'Beniamino', 'Benignus', 'Benito', 'Benjamin', 'Benjy', 'Bennett', 'Benno', 'Benny', 'Benoit', 'Beppe', 'Bernard', 'Bernardo', 'Bernd', 'Bernhard', 'Bernie', 'Bert', 'Berthold', 'Bertoldo', 'Bertram', 'Bertrame', 'Bill', 'Billy', 'Birger', 'Bjarne', 'Björn', 'Bob', 'Bobby', 'Bodo', 'Bonifatius', 'Boris', 'Bosco', 'Brendan', 'Brian', 'Bruno', 'Bryan', 'Burkhard',
+        'Camillo', 'Camilo', 'Carl', 'Carlo', 'Carlos', 'Carol', 'Carsten', 'Cäsar', 'Casimir', 'Caspar', 'Cecil', 'Ceddric', 'Cedric', 'Celestino', 'Charles', 'Charlie', 'Chico', 'Chip', 'Chris', 'Christian', 'Christoph', 'Christophe', 'Christopher', 'Christy', 'Chuck', 'Cian', 'Cillian', 'Clarence', 'Clark', 'Clas', 'Claude', 'Claudio', 'Claudius', 'Claus', 'Clayton', 'Clemens', 'Cliff', 'Clifford', 'Clint', 'Clinton', 'Cody', 'Colin', 'Collin', 'Conan', 'Connor', 'Conny', 'Conor', 'Conrad', 'Constantine', 'Cooper', 'Cordell', 'Cornelius', 'Corvinus', 'Cristobal', 'Curd', 'Curt', 'Curtis', 'Curtiz', 'Cyril', 'Cyrill',
+        'Damian', 'Damon', 'Dan', 'Daniel', 'Daniele', 'Danilo', 'Danny', 'Dario', 'Darius', 'Dave', 'David', 'Davide', 'Dawson', 'Dean', 'Demetrius', 'Denis', 'Deniz', 'Dennis', 'Derek', 'Desiderius', 'Detlef', 'Detlev', 'Dick', 'Diego', 'Dieter', 'Dimitrij', 'Dirk', 'Dolf', 'Domenico', 'Domingo', 'Dominic', 'Dominik', 'Dominikus', 'Dominique', 'Donald', 'Donatello', 'Donato', 'Donatus', 'Dorian', 'Douglas', 'Dragan', 'Duarte', 'Duncan', 'Dylan',
+        'Earnest', 'Earvin', 'Eike', 'Eleasar', 'Elia', 'Elian', 'Elias', 'Elijah', 'Ellison', 'Elmar', 'Elroy', 'Emanuel', 'Emanuele', 'Emil', 'Emile', 'Emilian', 'Emiliano', 'Emilio', 'Emmanuel', 'Endrik', 'Enrico', 'Enrique', 'Enzo', 'Ephraim', 'Erasmus', 'Eric', 'Erik', 'Ermanno', 'Ernest', 'Ernestin', 'Ernesto', 'Eros', 'Errol', 'Etienne', 'Eugen', 'Eugene', 'Eugenio', 'Eusebius', 'Everett', 'Ezra',
+        'Fabiano', 'Fabien', 'Fabio', 'Fabius', 'Fabrice', 'Fabricius', 'Fabrizio', 'Falco', 'Falk', 'Falko', 'Faruk', 'Faustus', 'Favian', 'Federico', 'Federigo', 'Fedor', 'Felice', 'Feliciano', 'Felicien', 'Felipe', 'Felix', 'Felton', 'Feodor', 'Ferdinand', 'Fergus', 'Fernand', 'Fernando', 'Ferrante', 'Ferris', 'Fidel', 'Fidelio', 'Fidelis', 'Fidelius', 'Filippo', 'Finan', 'Finn', 'Fiore', 'Fjodor', 'Flavian', 'Flemming', 'Fletcher', 'Flint', 'Florens', 'Florentin', 'Florian', 'Florin', 'Florus', 'Floyd', 'Forrest', 'Forrester', 'Forster', 'Foster', 'Fox', 'Francesco', 'Francis', 'Francisco', 'Franco', 'Francois', 'Franek', 'Frank', 'Frankie', 'Franklin', 'Franziskus', 'Frasier', 'Frayne', 'Fred', 'Freddy', 'Frederic', 'Frederick', 'Frederik', 'Freeman', 'Fremont', 'Fridericus', 'Fridolin', 'Friedel', 'Frye',
+        'Gabriel', 'Gaetan', 'Gaetano', 'Gallus', 'Garcia', 'Garfield', 'Garin', 'Garnier', 'Garrick', 'Garrison', 'Garron', 'Garry', 'Garson', 'Gaspar', 'Gaspard', 'Gaspare', 'Gaston', 'Gastonne', 'Gates', 'Gauthier', 'Gavin', 'Gene', 'Geoffrey', 'Geoffroy', 'Geordi', 'Georg', 'George', 'Georges', 'Gerald', 'Geraldo', 'Gerard', 'Geraud', 'Gerd', 'Gereon', 'Germain', 'German', 'Germano', 'Gernot', 'Gerold', 'Geronimo', 'Gerrit', 'Gerry', 'Gert', 'Gerulf', 'Gerwin', 'Giacomo', 'Gian', 'Giancarlo', 'Gianni', 'Gibson', 'Gideon', 'Gil', 'Gilbert', 'Gilberto', 'Gilles', 'Gillian', 'Gino', 'Gioacchino', 'Giorgio', 'Giovanni', 'Giraldo', 'Gisbert', 'Gitano', 'Giuliano', 'Giulio', 'Giuseppe', 'Giusto', 'Glen', 'Glenn', 'Goliath', 'Goran', 'Gordon', 'Gordy', 'Goswin', 'Götz', 'Graciano', 'Graham', 'Grayson', 'Greg', 'Gregg', 'Gregoire', 'Gregor', 'Gregory', 'Griffin', 'Grover', 'Gualtier', 'Gualtiero', 'Guglielmo', 'Guido', 'Guillaume', 'Guillermo', 'Gunnar', 'Gunter', 'Günter', 'Gunther', 'Günther', 'Gus', 'Gustavo', 'Gustl', 'Gutierre', 'Guy',
+        'Hajo', 'Hamilton', 'Hamlet', 'Hampton', 'Hanley', 'Hannes', 'Hans', 'Harald', 'Hardy', 'Harley', 'Harlow', 'Harold', 'Haroun', 'Harrison', 'Harry', 'Harvey', 'Hasso', 'Hauke', 'Havel', 'Hector', 'Heiko', 'Heiner', 'Heino', 'Hektor', 'Helge', 'Helmut', 'Helmuth', 'Hendrick', 'Hendrik', 'Hennes', 'Henning', 'Henri', 'Henrick', 'Henrik', 'Henry', 'Herald', 'Herbie', 'Hercules', 'Herold', 'Herwig', 'Hieronymus', 'Hilarius', 'Holger', 'Holm', 'Homer', 'Horace', 'Horatio', 'Horaz', 'Howard', 'Howie', 'Hugh', 'Hugo', 'Humphrey', 'Hunter',
+        'Ignatius', 'Ignaz', 'Ignazio', 'Igor', 'Ilian', 'Ilja', 'Immanuel', 'Ingo', 'Ingolf', 'Ingvar', 'Irenäus', 'Irvin', 'Irving', 'Irwin', 'Isaac', 'Isaak', 'Isai', 'Isaiah', 'Isidor', 'Istvan', 'Ivan', 'Ivo',
+        'Jackson', 'Jacky', 'Jacob', 'Jacques', 'Jacquin', 'Jadon', 'Jago', 'Jaime', 'Jake', 'Jakob', 'Jamal', 'James', 'Jan', 'Janis', 'Jannes', 'Jannik', 'Janning', 'Janos', 'Janosch', 'Jaques', 'Jared', 'Jarik', 'Jarl', 'Jarno', 'Jaro', 'Jaromir', 'Jarrett', 'Jascha', 'Jason', 'Jasper', 'Jay', 'Jean', 'Jeff', 'Jefferson', 'Jeffrey', 'Jendrick', 'Jens', 'Jered', 'Jeremiah', 'Jeremias', 'Jeremie', 'Jeremy', 'Jerold', 'Jerom', 'Jerome', 'Jerrick', 'Jerry', 'Jesaja', 'Jesko', 'Jesse', 'Jim', 'Jimmy', 'Jirko', 'Jo', 'Joakim', 'Joao', 'Joaquin', 'Joe', 'Joel', 'Joey', 'John', 'Johnny', 'Jokim', 'Jonah', 'Jonas', 'Jonathan', 'Jonny', 'Jordan', 'Jordano', 'Jörg', 'Jorge', 'Jose', 'Josef', 'Joseph', 'Josh', 'Joshua', 'Josias', 'Jost', 'Josua', 'Josue', 'Jourdain', 'Juan', 'Juanito', 'Jud', 'Jules', 'Julien', 'Julio', 'Julius', 'Jürgen', 'Jurij', 'Justin', 'Justinian', 'Justus',
+        'Kain', 'Kaj', 'Kajetan', 'Kallistus', 'Karsten', 'Kasimir', 'Kaspar', 'Keamon', 'Keith', 'Ken', 'Kenan', 'Kenneth', 'Keno', 'Kersten', 'Kerwin', 'Kevin', 'Kian', 'Kilian', 'Kim', 'Kiran', 'Klaas', 'Klaus', 'Klemens', 'Kleopas', 'Knud', 'Knut', 'Kolja', 'Konrad', 'Konstantin', 'Korbin', 'Korbinian', 'Kordt', 'Kristian', 'Kristof', 'Kristoffer', 'Kuno', 'Kurt', 'Kyros', 'Lajos',
+        'Lambert', 'Lamberto', 'Larry', 'Lars', 'Laslo', 'Lasse', 'Laurent', 'Laurente', 'Laurentius', 'Laurenz', 'Laurenzo', 'Lawrence', 'Lazarus', 'Lazlo', 'Leander', 'Lee', 'Leif', 'Leigh', 'Lennart', 'Lenny', 'Lenz', 'Leo', 'Leon', 'Leonard', 'Leonardo', 'Leonce', 'Leone', 'Leonello', 'Leonhard', 'Leopold', 'Leopoldo', 'Leroy', 'Lesley', 'Lester', 'Leverett', 'Levi', 'Lew', 'Lewis', 'Lex', 'Liborius', 'Lienhard', 'Linus', 'Lion', 'Lionel', 'LLoyd', 'Lobo', 'Loic', 'Lorenz', 'Lorenzo', 'Loris', 'Lothaire', 'Lou', 'Louie', 'Louis', 'Lovis', 'Luc', 'Luca', 'Lucan', 'Lucas', 'Luciano', 'Lucien', 'Lucius', 'Ludovico', 'Ludwig', 'Luigi', 'Luis', 'Lukas', 'Luke', 'Lutger', 'Luther', 'Lutz', 'Lyonel',
+        'Maik', 'Malte', 'Malwin', 'Manolito', 'Manolo', 'Manuel', 'Marc', 'Marcel', 'Marcello', 'Marcellus', 'Marco', 'Marcus', 'Marek', 'Marian', 'Marin', 'Marino', 'Marinus', 'Mario', 'Marius', 'Mark', 'Markus', 'Marlon', 'Maro', 'Marten', 'Martin', 'Marvin', 'Massimo', 'Mathias', 'Mathieu', 'Mathis', 'Matt', 'Matteo', 'Matthäus', 'Matthes', 'Matthew', 'Matthias', 'Matthieu', 'Maurice', 'Mauritius', 'Mauritz', 'Maurizio', 'Mauro', 'Maurus', 'Max', 'Maxence', 'Maxi', 'Maxime', 'Maximilian', 'Maximilien', 'Melchior', 'Merlin', 'Michael', 'Michail', 'Michel', 'Michele', 'Mick', 'Mickey', 'Miguel', 'Mika', 'Mikael', 'Mike', 'Mikel', 'Miklos', 'Milan', 'Milo', 'Mirko', 'Miro', 'Miroslav', 'Mischa', 'Mitja', 'Morgan', 'Moritz', 'Morris', 'Morten',
+        'Nat', 'Nathan', 'Nathanael', 'Nathaniel', 'Nepomuk', 'Nero', 'Neron', 'Newton', 'Niccolo', 'Nicholas', 'Nick', 'Nicki', 'Nico', 'Nicola', 'Nicolai', 'Nicolaj', 'Nicolas', 'Niels', 'Nigel', 'Nikita', 'Niklas', 'Niklaus', 'Niko', 'Nikodemus', 'Nikolai', 'Nikolaus', 'Nils', 'Noah', 'Noel', 'Norbert', 'Norberto', 'Norman',
+        'Odin', 'Odo', 'Odysseus', 'Olaf', 'Oleg', 'Oliver', 'Olivier', 'Oliviero', 'Olof', 'Oluf', 'Omar', 'Omer', 'Orlando', 'Orson', 'Oskar', 'Osvaldo', 'Oswin', 'Otello', 'Othello', 'Otto', 'Ove', 'Owain', 'Owen',
+        'Paco', 'Paddy', 'Palmiro', 'Pancho', 'Paolo', 'Pascal', 'Pat', 'Patrice', 'Patricio', 'Patricius', 'Patrick', 'Patrizio', 'Patrizius', 'Paul', 'Paulin', 'Paulus', 'Pawel', 'Pedro', 'Peer', 'Pepe', 'Pepito', 'Peppone', 'Per', 'Percy', 'Perez', 'Pete', 'Peter', 'Phil', 'Philip', 'Philipp', 'Philippe', 'Philo', 'Piedro', 'Pier', 'Piero', 'Pierre', 'Piet', 'Pieter', 'Pietro', 'Pinkus', 'Pippin', 'Pitt', 'Pius', 'Placide', 'Placido', 'Placidus', 'Poldi',
+        'Quint', 'Quintin', 'Quintinus', 'Quintus', 'Quirin', 'Quirino',
+        'Raffaele', 'Raffaello', 'Raffaelo', 'Raimondo', 'Raimund', 'Raimundo', 'Rainer', 'Rainier', 'Ralf', 'Ralph', 'Ramon', 'Randolf', 'Randolph', 'Randy', 'Raoul', 'Raphael', 'Rasmus', 'Rasul', 'Raul', 'Ray', 'Raymond', 'Regnier', 'Reik', 'Reiner', 'Remo', 'Renato', 'Renatus', 'Renaud', 'Rene', 'Renja', 'Reto', 'Reynold', 'Ricardo', 'Riccardo', 'Rick', 'Ricky', 'Rico', 'Rinaldo', 'Robby', 'Robert', 'Roberto', 'Robin', 'Rocco', 'Rock', 'Rocky', 'Rod', 'Rodolfo', 'Rodolphe', 'Rodrigo', 'Rodrigue', 'Rodrique', 'Roger', 'Roland', 'Rolando', 'Rolf', 'Romain', 'Roman', 'Romano', 'Romeo', 'Romero', 'Ronald', 'Ronan', 'Ronny', 'Rory', 'Ross', 'Rowan', 'Rowland', 'Roy', 'Ruben', 'Rudolf', 'Rudolph', 'Ruggero', 'Rupert', 'Ryan',
+        'Salomon', 'Salomone', 'Salvador', 'Salvator', 'Salvatore', 'Sam', 'Sammy', 'Samuel', 'Samuele', 'Sander', 'Sandor', 'Sandro', 'Sandy', 'Sascha', 'Sauveur', 'Schorsch', 'Scipio', 'Scott', 'Sean', 'Sebastian', 'Sebastiano', 'Sebastien', 'Selim', 'Semjon', 'Sepp', 'Serenus', 'Serge', 'Sergej', 'Sergio', 'Sergius', 'Servatius', 'Severiano', 'Severin', 'Severo', 'Sidney', 'Sidonius', 'Silas', 'Silvain', 'Silvan', 'Silvano', 'Silvanus', 'Silverio', 'Silverius', 'Silvester', 'Silvestro', 'Silvio', 'Silvius', 'Simjon', 'Simon', 'Simone', 'Sinclair', 'Sixt', 'Sixtus', 'Slade', 'Solomon', 'Söncke', 'Sören', 'Spencer', 'Stan', 'Stanislaus', 'Stanislaw', 'Stanley', 'Stefan', 'Stefano', 'Steffen', 'Sten', 'Stephan', 'Stephen', 'Steve', 'Steven', 'Stewart', 'Stig', 'Stuart', 'Sven', 'Sylvain', 'Sylvester',
+        'Tam', 'Tarek', 'Tassilo', 'Tasso', 'Ted', 'Teddy', 'Teobaldo', 'Thaddäus', 'Theo', 'Theodor', 'Theodore', 'Thierry', 'Thimotheus', 'Thomas', 'Thommy', 'Thoralf', 'Thorben', 'Thore', 'Thorsten', 'Tiberio', 'Tiberius', 'Tibor', 'Till', 'Tim', 'Timmy', 'Timo', 'Timofej', 'Timon', 'Timoteo', 'Timothee', 'Timotheus', 'Timothy', 'Tin', 'Tito', 'Titus', 'Tizian', 'Tiziano', 'Tjade', 'Tjark', 'Tobi', 'Tobia', 'Tobiah', 'Tobias', 'Tobie', 'Tobis', 'Toby', 'Tom', 'Tommaso', 'Tommy', 'Toni', 'Tonio', 'Tony', 'Torben', 'Torin', 'Torsten', 'Tristan', 'Tycho', 'Tyler', 'Tyson',
+        'Udo', 'Ugo', 'Ugolino', 'Ulf', 'Uli', 'Ulli', 'Ulric', 'Ulrich', 'Ulrico', 'Umberto', 'Urbain', 'Urban', 'Urbano', 'Urias', 'Uriel', 'Ursus', 'Uwe',
+        'Valentiano', 'Valentin', 'Valentino', 'Valerian', 'Valerio', 'Valerius', 'Valery', 'Vasco', 'Veit', 'Veltin', 'Vernon', 'Vicente', 'Vico', 'Victor', 'Viktor', 'Vincent', 'Vincenzo', 'Vinzenez', 'Vinzenz', 'Virgil', 'Vitalis', 'Vito', 'Vittore', 'Vittoriano', 'Vittorio', 'Volker',
+        'Wallace', 'Walt', 'Warner', 'Warren', 'Wido', 'Wigand', 'Wilbur', 'Willi', 'William', 'Wilpert', 'Winston', 'Wolf', 'Wolfgang', 'Woodrow', 'Woody',
+        'Xaver',
+    );
+
+    protected static $firstNameFemale = array(
+        'Abby', 'Abelina', 'Abigail', 'Adelaide', 'Adeline', 'Adina', 'Adriana', 'Adrienne', 'Afra', 'Agatha', 'Agnes', 'Aida', 'Aimee', 'Aischa', 'Albertine', 'Alea', 'Aleksandra', 'Alena', 'Alessa', 'Alessandra', 'Alessia', 'Alexa', 'Alexandra', 'Alexia', 'Alexis', 'Alice', 'Alicia', 'Alida', 'Alina', 'Aline', 'Alisa', 'Alissa', 'Alisson', 'Amabella', 'Amadea', 'Amanda', 'Amelia', 'Amelie', 'Amina', 'Amy', 'Ana', 'Anastasia', 'Andrea', 'Andrina', 'Anette', 'Angela', 'Angelika', 'Angelina', 'Angelique', 'Anina', 'Anine', 'Anita', 'Anja', 'Anjalie', 'Anke', 'Ann', 'Anna', 'Annabel', 'Annabell', 'Annabella', 'Annabelle', 'Anne', 'Annett', 'Annette', 'Annika', 'Annina', 'Antje', 'Antoinette', 'Antonella', 'Antonia', 'Arabella', 'Ariadne', 'Ariana', 'Ariane', 'Arianna', 'Ariella', 'Arielle', 'Arlene', 'Arlette', 'Arwenna', 'Ashley', 'Asta', 'Astrid', 'Audrey', 'Aurelia',
+        'Barbara', 'Bärbel', 'Bastiane', 'Bea', 'Beata', 'Beatrice', 'Beatrix', 'Becky', 'Belinda', 'Bella', 'Bellana', 'Belle', 'Benedikta', 'Benita', 'Bente', 'Beppina', 'Berenike', 'Berit', 'Bernadett', 'Bernadette', 'Bernadine', 'Betina', 'Betsy', 'Bettina', 'Betty', 'Bianca', 'Bianka', 'Bibiana', 'Bibiane', 'Birgit', 'Birgitt', 'Bodil', 'Bridget', 'Brigitta', 'Brigitte', 'Britta',
+        'Caitlin', 'Cameron', 'Camilla', 'Camille', 'Cammy', 'Cara', 'Carin', 'Carina', 'Carinna', 'Carla', 'Carmela', 'Carmelia', 'Carmen', 'Carol', 'Carola', 'Carole', 'Carolin', 'Carolina', 'Caroline', 'Carolyn', 'Carolyne', 'Cassandra', 'Cassie', 'Catalin', 'Caterina', 'Catharina', 'Catherine', 'Cathrin', 'Cathrine', 'Cathy', 'Catina', 'Catrin', 'Catriona', 'Cecile', 'Cecilia', 'Cecilie', 'Celeste', 'Celestine', 'Celina', 'Celine', 'Chantal', 'Charleen', 'Charlotte', 'Chatrina', 'Chelsea', 'Chiara', 'Chloe', 'Chrissy', 'Christa', 'Christiana', 'Christiane', 'Christin', 'Christina', 'Christine', 'Chyna', 'Ciara', 'Cinderella', 'Cindy', 'Cinja', 'Cira', 'Claire', 'Clara', 'Clarissa', 'Claudette', 'Claudia', 'Claudine', 'Clea', 'Cleannis', 'Clementia', 'Clementine', 'Cleo', 'Clio', 'Cliona', 'Clodia', 'Cloris', 'Coletta', 'Colette', 'Connie', 'Conny', 'Constance', 'Constanze', 'Cora', 'Coral', 'Coralie', 'Cordelia', 'Cordula', 'Corin', 'Corina', 'Corinna', 'Corinne', 'Cornelia', 'Cosette', 'Cosima', 'Cynthia',
+        'Daisy', 'Dajana', 'Daliah', 'Damaris', 'Damia', 'Damiana', 'Dana', 'Dania', 'Danica', 'Daniela', 'Daniele', 'Daniella', 'Danielle', 'Danja', 'Daphne', 'Darcie', 'Daria', 'Darina', 'Dawn', 'Dayna', 'Debbie', 'Debby', 'Debora', 'Deborah', 'Deetya', 'Delia', 'Delphine', 'Dena', 'Denise', 'Desdemona', 'Desideria', 'Desiree', 'Diana', 'Diane', 'Didina', 'Dina', 'Dinah', 'Dolly', 'Dolores', 'Domenica', 'Dominika', 'Dominique', 'Donna', 'Dora', 'Doreen', 'Dorina', 'Doris', 'Dorit', 'Doro', 'Dorothea', 'Dorothee', 'Dorothy', 'Dunja',
+        'Ebony', 'Edda', 'Edita', 'Edvige', 'Edwina', 'Eike', 'Eila', 'Eileen', 'Ela', 'Elaine', 'Eleanor', 'Elektra', 'Elena', 'Eleonora', 'Eleonore', 'Eliane', 'Elisa', 'Elisabeth', 'Elise', 'Elizabeth', 'Elke', 'Ella', 'Ellen', 'Elly', 'Eloise', 'Elsa', 'Elsbeth', 'Elvira', 'Elvire', 'Emanuela', 'Emanuelle', 'Emilia', 'Emilie', 'Emily', 'Emma', 'Enrica', 'Enya', 'Erika', 'Erin', 'Ernesta', 'Ernestina', 'Ernestine', 'Esmerelda', 'Esra', 'Estella', 'Estelle', 'Ester', 'Esther', 'Etiennette', 'Eudoxia', 'Eugenia', 'Eunike', 'Euphemia', 'Euphrasia', 'Eusebia', 'Eva', 'Evangelina', 'Evania', 'Eve', 'Evelien', 'Evelin', 'Eveline', 'Evelyn', 'Evelyne', 'Evette', 'Evi', 'Evita',
+        'Fabiane', 'Fabienne', 'Fabiola', 'Faith', 'Fanny', 'Farrah', 'Fatima', 'Faustina', 'Faustine', 'Fay', 'Faye', 'Faylinn', 'Federica', 'Fedora', 'Fee', 'Feli', 'Felice', 'Felicia', 'Felicitas', 'Felicity', 'Felizitas', 'Feodora', 'Fergie', 'Fidelia', 'Filia', 'Filiz', 'Finetta', 'Finja', 'Fiona', 'Fjodora', 'Flavia', 'Fleur', 'Fleur', 'Flo', 'Flora', 'Florence', 'Florentina', 'Florentine', 'Floria', 'Floriane', 'Florida', 'Florinda', 'Floris', 'Fortuna', 'Frances', 'Francesca', 'Francisca', 'Franka', 'Franzi', 'Franziska', 'Frauke', 'Freya', 'Friederike',
+        'Gabriela', 'Gabriele', 'Gabriella', 'Gabrielle', 'Gaby', 'Gail', 'Galatea', 'Galina', 'Gazelle', 'Gela', 'Geneva', 'Genoveva', 'Georgette', 'Georgia', 'Georgina', 'Geraldene', 'Geraldine', 'Germain', 'Germaine', 'Germana', 'Ghita', 'Gianna', 'Gigi', 'Gill', 'Gillian', 'Gina', 'Ginevra', 'Ginger', 'Ginny', 'Giovanna', 'Gisela', 'Gisele', 'Gisella', 'Giselle', 'Gitta', 'Giulia', 'Giuliana', 'Giulietta', 'Giuseppa', 'Giuseppina', 'Giustina', 'Gladys', 'Gloria', 'Glory', 'Goldie', 'Goldy', 'Grace', 'Gratia', 'Gratiana', 'Grazia', 'Greta', 'Gretel', 'Gunda', 'Gwen', 'Gwenda', 'Gwendolin', 'Gwendolyn', 'Gypsy',
+        'Hannah', 'Hanne', 'Harmony', 'Harriet', 'Hazel', 'Hedi', 'Hedy', 'Heide', 'Heidi', 'Heike', 'Helen', 'Helena', 'Helene', 'Helin', 'Hella', 'Hemma', 'Henrietta', 'Henriette', 'Henrike', 'Hera', 'Hetty', 'Hilary', 'Hilda', 'Hilde', 'Holiday', 'Holli', 'Holly', 'Hope',
+        'Ilana', 'Ilaria', 'Iliana', 'Iljana', 'Ilka', 'Ilona', 'Ilse', 'Ilyssa', 'Imke', 'Ina', 'India', 'Indira', 'Indra', 'Ines', 'Inga', 'Inge', 'Ingrid', 'Inka', 'Inken', 'Innozentia', 'Iona', 'Ira', 'Irena', 'Irene', 'Irina', 'Iris', 'Irisa', 'Irma', 'Isabel', 'Isabell', 'Isabella', 'Isabelle', 'Isis', 'Iva', 'Ivana', 'Ivona', 'Ivonne',
+        'Jaclyn', 'Jacqueline', 'Jacqui', 'Jael', 'Jamari', 'Jan', 'Jana', 'Jane', 'Janet', 'Janette', 'Janin', 'Janina', 'Janine', 'Janique', 'Janna', 'Jannine', 'Jarla', 'Jasmin', 'Jasmina', 'Jasmine', 'Jeanette', 'Jeanine', 'Jeanne', 'Jeannette', 'Jeannine', 'Jekaterina', 'Jelena', 'Jenifer', 'Jenna', 'Jennelle', 'Jennessa', 'Jennie', 'Jennifer', 'Jenny', 'Jennyfer', 'Jess', 'Jessica', 'Jessie', 'Jessika', 'Jill', 'Joan', 'Joana', 'Joann', 'Joanna', 'Joelle', 'Johanna', 'Jolanda', 'Jona', 'Jordana', 'Jördis', 'Josee', 'Josefa', 'Josefina', 'Josefine', 'Josepha', 'Josephine', 'Josiane', 'Josie', 'Jovita', 'Joy', 'Joyce', 'Juana', 'Juanita', 'Judith', 'Judy', 'Julia', 'Juliana', 'Juliane', 'Julianne', 'Julie', 'Juliet', 'Juliette', 'July', 'June', 'Justina', 'Justine', 'Justise', 'Jutta',
+        'Kamilia', 'Kamilla', 'Karen', 'Karima', 'Karin', 'Karina', 'Karla', 'Karola', 'Karolin', 'Karolina', 'Karoline', 'Kassandra', 'Katalin', 'Katarina', 'Kate', 'Katharina', 'Katharine', 'Käthe', 'Katherina', 'Katherine', 'Kathleen', 'Kathrin', 'Kathrina', 'Kathryn', 'Kathy', 'Katinka', 'Katja', 'Katjana', 'Katrin', 'Katrina', 'Katrine', 'Kayla', 'Keala', 'Keelin', 'Kendra', 'Kerstin', 'Kiana', 'Kiara', 'Kim', 'Kira', 'Kirsten', 'Kirstin', 'Kita', 'Klara', 'Klarissa', 'Klaudia', 'Kleopatra', 'Kolina', 'Konstanze', 'Kora', 'Kordula', 'Kori', 'Kornelia', 'Krista', 'Kristiane', 'Kristin', 'Kristina', 'Kristine', 'Kyra',
+        'Laila', 'Lana', 'Lara', 'Laria', 'Larissa', 'Lätizia', 'Laurel', 'Lauren', 'Laurence', 'Laurentia', 'Lauretta', 'Lavina', 'Laya', 'Lea', 'Leah', 'Leandra', 'Lee', 'Leigh', 'Leila', 'Lena', 'Leona', 'Leonie', 'Leontine', 'Leopoldine', 'Lesley', 'Leslie', 'Levana', 'Levia', 'Lia', 'Liane', 'Libusa', 'Licia', 'Lidia', 'Liesa', 'Liesbeth', 'Liese', 'Liesel', 'Lilian', 'Liliane', 'Lilith', 'Lilli', 'Lillian', 'Lilo', 'Lily', 'Lina', 'Linda', 'Lioba', 'Lisa', 'Lisbeth', 'Lise', 'Lisette', 'Liv', 'Livana', 'Livia', 'Liz', 'Liza', 'Lizzie', 'Lola', 'Lora', 'Lorena', 'Loretta', 'Lori', 'Lorraine', 'Lotte', 'Lotus', 'Louise', 'Luana', 'Luca', 'Lucia', 'Luciana', 'Lucie', 'Lucy', 'Luigia', 'Luisa', 'Luise', 'Luna', 'Luzia', 'Lydia', 'Lydie', 'Lynette', 'Lynn',
+        'Maddalena', 'Madelaine', 'Madeleine', 'Madeline', 'Madison', 'Madita', 'Madleine', 'Madlen', 'Madlene', 'Mae', 'Magda', 'Magdalena', 'Maggy', 'Magret', 'Maia', 'Maike', 'Maiken', 'Mailin', 'Maja', 'Malea', 'Malee', 'Malin', 'Malina', 'Mandy', 'Manja', 'Manon', 'Manuela', 'Mara', 'Maraike', 'Marcella', 'Marcelle', 'Marcia', 'Mareike', 'Maren', 'Margaret', 'Margareta', 'Margarete', 'Margaretha', 'Margarita', 'Margaritha', 'Margherita', 'Margit', 'Margitta', 'Margot', 'Margret', 'Margreth', 'Marguerite', 'Maria', 'Mariam', 'Marian', 'Mariana', 'Marianna', 'Marianne', 'Marie', 'Marieke', 'Mariella', 'Marielle', 'Marietta', 'Marija', 'Marika', 'Marilies', 'Marilyn', 'Marina', 'Marion', 'Marisa', 'Marissa', 'Marita', 'Maritta', 'Marjorie', 'Marla', 'Marleen', 'Marlen', 'Marlena', 'Marlene', 'Marlies', 'Marlis', 'Marsha', 'Martha', 'Marthe', 'Martina', 'Mary', 'Maryse', 'Mascha', 'Mathilda', 'Mathilde', 'Matilde', 'Mattea', 'Maude', 'Maura', 'Maureen', 'Maximiliane', 'May', 'Maya', 'Meg', 'Megan', 'Meike', 'Melanie', 'Melia', 'Melina', 'Melinda', 'Melissa', 'Melitta', 'Melodie', 'Meloney', 'Mercedes', 'Meret', 'Meri', 'Merle', 'Merline', 'Meryem', 'Mia', 'Micaela', 'Michaela', 'Michele', 'Michelle', 'Milena', 'Milla', 'Milva', 'Mimi', 'Minerva', 'Minna', 'Mira', 'Mirabella', 'Mireille', 'Mirella', 'Mireya', 'Miriam', 'Mirijam', 'Mirjam', 'Moesha', 'Moira', 'Mona', 'Moni', 'Monica', 'Monika', 'Monique', 'Monja', 'Morgane', 'Muriel', 'Myriam',
+        'Nadin', 'Nadine', 'Nadja', 'Nadjana', 'Naemi', 'Nancy', 'Nanette', 'Nani', 'Naomi', 'Nastasja', 'Natalia', 'Natalie', 'Natanja', 'Natascha', 'Nathalie', 'Neeja', 'Nena', 'Neria', 'Nerine', 'Nicol', 'Nicola', 'Nicole', 'Nicoletta', 'Nicolette', 'Nike', 'Nikola', 'Nina', 'Ninja', 'Ninon', 'Noa', 'Noelle', 'Noemi', 'Noemie', 'Nora', 'Norma', 'Nuala',
+        'Olga', 'Olivia', 'Ophelia', 'Orania', 'Orla', 'Ornella', 'Orsola', 'Ottilie',
+        'Paloma', 'Pam', 'Pamela', 'Pandora', 'Paola', 'Paolina', 'Pascale', 'Pat', 'Patrice', 'Patricia', 'Patrizia', 'Patsy', 'Patty', 'Paula', 'Paulette', 'Paulina', 'Pauline', 'Penelope', 'Pepita', 'Petra', 'Philine', 'Philippa', 'Philomele', 'Philomena', 'Phoebe', 'Phyllis', 'Pia', 'Pier', 'Prica', 'Prisca', 'Priscilla', 'Priscille', 'Priska',
+        'Rachel', 'Rachel', 'Rachelle', 'Radomila', 'Rafaela', 'Raffaela', 'Raffaella', 'Ragna', 'Rahel', 'Raja', 'Ramona', 'Raphaela', 'Raquel', 'Rebecca', 'Rebekka', 'Regina', 'Regine', 'Reisha', 'Renata', 'Renate', 'Renee', 'Resi', 'Rhea', 'Rhoda', 'Rhonda', 'Ricarda', 'Riccarda', 'Rike', 'Rita', 'Roberta', 'Romana', 'Romina', 'Romy', 'Ronja', 'Rosa', 'Rosalia', 'Rosalie', 'Rosalinda', 'Rosalinde', 'Rosaline', 'Rose', 'Roseline', 'Rosetta', 'Rosette', 'Rosi', 'Rosina', 'Rosine', 'Rossana', 'Roswitha', 'Roxana', 'Roxane', 'Roxanne', 'Roxy', 'Rubina', 'Ruth',
+        'Sabine', 'Sabrina', 'Sahra', 'Sally', 'Salome', 'Salvina', 'Samanta', 'Samantha', 'Samira', 'Sandra', 'Sandrina', 'Sandrine', 'Sandy', 'Sanne', 'Sanya', 'Saphira', 'Sara', 'Sarah', 'Sarina', 'Sascha', 'Saskia', 'Scarlet', 'Scarlett', 'Schirin', 'Selina', 'Selma', 'Serafina', 'Seraina', 'Seraphin', 'Seraphina', 'Seraphine', 'Serena', 'Severina', 'Severine', 'Shana', 'Shanaya', 'Shantala', 'Shari', 'Sharlene', 'Sharon', 'Sheena', 'Sheila', 'Sheryl', 'Shirin', 'Shirley', 'Shirlyn', 'Sibilla', 'Sibyl', 'Sibylle', 'Siegrid', 'Sigrid', 'Sigrun', 'Silja', 'Silke', 'Silvana', 'Silvia', 'Silviane', 'Simona', 'Simone', 'Simonette', 'Simonne', 'Sina', 'Sindy', 'Sinja', 'Sissy', 'Skyla', 'Smarula', 'Smilla', 'Sofia', 'Sofie', 'Sonia', 'Sonja', 'Sonnele', 'Sonya', 'Sophia', 'Sophie', 'Soraya', 'Stefanie', 'Steffi', 'Stella', 'Stephanie', 'Sumehra', 'Summer', 'Susan', 'Susanna', 'Susanne', 'Susi', 'Suzan', 'Suzanne', 'Suzette', 'Svea', 'Svenja', 'Swane', 'Sybilla', 'Sybille', 'Sydney', 'Sylvana', 'Sylvia', 'Sylvie',
+        'Tabitha', 'Taissa', 'Tamara', 'Tamina', 'Tania', 'Tanita', 'Tanja', 'Tara', 'Tatiana', 'Tatjana', 'Taya', 'Tecla', 'Telka', 'Teodora', 'Teona', 'Teresa', 'Terry', 'Tess', 'Tessa', 'Tessie', 'Thea', 'Thekla', 'Theodora', 'Theres', 'Theresa', 'Therese', 'Theresia', 'Tiana', 'Tiffany', 'Tilly', 'Timna', 'Tina', 'Tiziana', 'Tonja', 'Toril', 'Tosca', 'Tracey', 'Traudl', 'Trixi', 'Tycho', 'Tyra',
+        'Ulla', 'Ulli', 'Ulrica', 'Ulrike', 'Undine', 'Urania', 'Ursel', 'Ursina', 'Ursula', 'Ursule', 'Uschi', 'Uta', 'Ute',
+        'Valentina', 'Valentine', 'Valeria', 'Valerie', 'Valeska', 'Vanadis', 'Vanessa', 'Vanja', 'Varinka', 'Venetia', 'Vera', 'Verena', 'Verona', 'Veronica', 'Veronika', 'Veronique', 'Vesla', 'Vicky', 'Victoire', 'Victoria', 'Viki', 'Viktoria', 'Vilja', 'Viola', 'Violet', 'Violetta', 'Violette', 'Virginia', 'Virginie', 'Vittoria', 'Viviana', 'Viviane', 'Vivien', 'Vivienne', 'Vreneli', 'Vreni', 'Vroni',
+        'Wencke', 'Weneke', 'Wibke', 'Wilja', 'Willow', 'Wilma',
+    );
+
+    protected static $firstName = array(
+        'Abel', 'Abraham', 'Adalbero', 'Adam', 'Adamo', 'Adolfo', 'Adrian', 'Adriano', 'Adrianus', 'Adrien', 'Alain', 'Alajos', 'Alan', 'Albain', 'Alban', 'Albano', 'Alberto', 'Albin', 'Alec', 'Alejandro', 'Alessandro', 'Alessio', 'Alex', 'Alexander', 'Alexandre', 'Alexandros', 'Alexej', 'Alexis', 'Alfons', 'Alfonso', 'Aljoscha', 'Allan', 'Allen', 'Alois', 'Alon', 'Alonzo', 'Alphonse', 'Alwin', 'Amadeo', 'Amadeus', 'Amandus', 'Amos', 'Anatol', 'Anatole', 'Anatolij', 'Anders', 'Andi', 'Andor', 'Andre', 'Andreas', 'Andrej', 'Andrew', 'Andrijan', 'Andy', 'Angelus', 'Ansgar', 'Anthony', 'Antoine', 'Anton', 'Antonio', 'Araldo', 'Aram', 'Argus', 'Arjan', 'Armin', 'Arminio', 'Arnaldo', 'Arnault', 'Arndt', 'Arne', 'Arno', 'Arnold', 'Arrigo', 'Art', 'Arthur', 'Artur', 'Arturo', 'August', 'Auguste', 'Augustin', 'Aurelius', 'Axel',
+        'Balduin', 'Balthasar', 'Bardo', 'Barnabas', 'Barnard', 'Barney', 'Baruch', 'Basil', 'Basilius', 'Bastian', 'Bastien', 'Battista', 'Beatus', 'Beltrame', 'Beltran', 'Ben', 'Benedetto', 'Benedict', 'Benedikt', 'Bengt', 'Beniamino', 'Benignus', 'Benito', 'Benjamin', 'Benjy', 'Bennett', 'Benno', 'Benny', 'Benoit', 'Beppe', 'Bernard', 'Bernardo', 'Bernd', 'Bernhard', 'Bernie', 'Bert', 'Berthold', 'Bertoldo', 'Bertram', 'Bertrame', 'Bill', 'Billy', 'Birger', 'Bjarne', 'Björn', 'Bob', 'Bobby', 'Bodo', 'Bonifatius', 'Boris', 'Bosco', 'Brendan', 'Brian', 'Bruno', 'Bryan', 'Burkhard',
+        'Camillo', 'Camilo', 'Carl', 'Carlo', 'Carlos', 'Carol', 'Carsten', 'Cäsar', 'Casimir', 'Caspar', 'Cecil', 'Ceddric', 'Cedric', 'Celestino', 'Charles', 'Charlie', 'Chico', 'Chip', 'Chris', 'Christian', 'Christoph', 'Christophe', 'Christopher', 'Christy', 'Chuck', 'Cian', 'Cillian', 'Clarence', 'Clark', 'Clas', 'Claude', 'Claudio', 'Claudius', 'Claus', 'Clayton', 'Clemens', 'Cliff', 'Clifford', 'Clint', 'Clinton', 'Cody', 'Colin', 'Collin', 'Conan', 'Connor', 'Conny', 'Conor', 'Conrad', 'Constantine', 'Cooper', 'Cordell', 'Cornelius', 'Corvinus', 'Cristobal', 'Curd', 'Curt', 'Curtis', 'Curtiz', 'Cyril', 'Cyrill',
+        'Damian', 'Damon', 'Dan', 'Daniel', 'Daniele', 'Danilo', 'Danny', 'Dario', 'Darius', 'Dave', 'David', 'Davide', 'Dawson', 'Dean', 'Demetrius', 'Denis', 'Deniz', 'Dennis', 'Derek', 'Desiderius', 'Detlef', 'Detlev', 'Dick', 'Diego', 'Dieter', 'Dimitrij', 'Dirk', 'Dolf', 'Domenico', 'Domingo', 'Dominic', 'Dominik', 'Dominikus', 'Dominique', 'Donald', 'Donatello', 'Donato', 'Donatus', 'Dorian', 'Douglas', 'Dragan', 'Duarte', 'Duncan', 'Dylan',
+        'Earnest', 'Earvin', 'Eike', 'Eleasar', 'Elia', 'Elian', 'Elias', 'Elijah', 'Ellison', 'Elmar', 'Elroy', 'Emanuel', 'Emanuele', 'Emil', 'Emile', 'Emilian', 'Emiliano', 'Emilio', 'Emmanuel', 'Endrik', 'Enrico', 'Enrique', 'Enzo', 'Ephraim', 'Erasmus', 'Eric', 'Erik', 'Ermanno', 'Ernest', 'Ernestin', 'Ernesto', 'Eros', 'Errol', 'Etienne', 'Eugen', 'Eugene', 'Eugenio', 'Eusebius', 'Everett', 'Ezra',
+        'Fabiano', 'Fabien', 'Fabio', 'Fabius', 'Fabrice', 'Fabricius', 'Fabrizio', 'Falco', 'Falk', 'Falko', 'Faruk', 'Faustus', 'Favian', 'Federico', 'Federigo', 'Fedor', 'Felice', 'Feliciano', 'Felicien', 'Felipe', 'Felix', 'Felton', 'Feodor', 'Ferdinand', 'Fergus', 'Fernand', 'Fernando', 'Ferrante', 'Ferris', 'Fidel', 'Fidelio', 'Fidelis', 'Fidelius', 'Filippo', 'Finan', 'Finn', 'Fiore', 'Fjodor', 'Flavian', 'Flemming', 'Fletcher', 'Flint', 'Florens', 'Florentin', 'Florian', 'Florin', 'Florus', 'Floyd', 'Forrest', 'Forrester', 'Forster', 'Foster', 'Fox', 'Francesco', 'Francis', 'Francisco', 'Franco', 'Francois', 'Franek', 'Frank', 'Frankie', 'Franklin', 'Franziskus', 'Frasier', 'Frayne', 'Fred', 'Freddy', 'Frederic', 'Frederick', 'Frederik', 'Freeman', 'Fremont', 'Fridericus', 'Fridolin', 'Friedel', 'Frye',
+        'Gabriel', 'Gaetan', 'Gaetano', 'Gallus', 'Garcia', 'Garfield', 'Garin', 'Garnier', 'Garrick', 'Garrison', 'Garron', 'Garry', 'Garson', 'Gaspar', 'Gaspard', 'Gaspare', 'Gaston', 'Gastonne', 'Gates', 'Gauthier', 'Gavin', 'Gene', 'Geoffrey', 'Geoffroy', 'Geordi', 'Georg', 'George', 'Georges', 'Gerald', 'Geraldo', 'Gerard', 'Geraud', 'Gerd', 'Gereon', 'Germain', 'German', 'Germano', 'Gernot', 'Gerold', 'Geronimo', 'Gerrit', 'Gerry', 'Gert', 'Gerulf', 'Gerwin', 'Giacomo', 'Gian', 'Giancarlo', 'Gianni', 'Gibson', 'Gideon', 'Gil', 'Gilbert', 'Gilberto', 'Gilles', 'Gillian', 'Gino', 'Gioacchino', 'Giorgio', 'Giovanni', 'Giraldo', 'Gisbert', 'Gitano', 'Giuliano', 'Giulio', 'Giuseppe', 'Giusto', 'Glen', 'Glenn', 'Goliath', 'Goran', 'Gordon', 'Gordy', 'Goswin', 'Götz', 'Graciano', 'Graham', 'Grayson', 'Greg', 'Gregg', 'Gregoire', 'Gregor', 'Gregory', 'Griffin', 'Grover', 'Gualtier', 'Gualtiero', 'Guglielmo', 'Guido', 'Guillaume', 'Guillermo', 'Gunnar', 'Gunter', 'Günter', 'Gunther', 'Günther', 'Gus', 'Gustavo', 'Gustl', 'Gutierre', 'Guy',
+        'Hajo', 'Hamilton', 'Hamlet', 'Hampton', 'Hanley', 'Hannes', 'Hans', 'Harald', 'Hardy', 'Harley', 'Harlow', 'Harold', 'Haroun', 'Harrison', 'Harry', 'Harvey', 'Hasso', 'Hauke', 'Havel', 'Hector', 'Heiko', 'Heiner', 'Heino', 'Hektor', 'Helge', 'Helmut', 'Helmuth', 'Hendrick', 'Hendrik', 'Hennes', 'Henning', 'Henri', 'Henrick', 'Henrik', 'Henry', 'Herald', 'Herbie', 'Hercules', 'Herold', 'Herwig', 'Hieronymus', 'Hilarius', 'Holger', 'Holm', 'Homer', 'Horace', 'Horatio', 'Horaz', 'Howard', 'Howie', 'Hugh', 'Hugo', 'Humphrey', 'Hunter',
+        'Ignatius', 'Ignaz', 'Ignazio', 'Igor', 'Ilian', 'Ilja', 'Immanuel', 'Ingo', 'Ingolf', 'Ingvar', 'Irenäus', 'Irvin', 'Irving', 'Irwin', 'Isaac', 'Isaak', 'Isai', 'Isaiah', 'Isidor', 'Istvan', 'Ivan', 'Ivo',
+        'Jackson', 'Jacky', 'Jacob', 'Jacques', 'Jacquin', 'Jadon', 'Jago', 'Jaime', 'Jake', 'Jakob', 'Jamal', 'James', 'Jan', 'Janis', 'Jannes', 'Jannik', 'Janning', 'Janos', 'Janosch', 'Jaques', 'Jared', 'Jarik', 'Jarl', 'Jarno', 'Jaro', 'Jaromir', 'Jarrett', 'Jascha', 'Jason', 'Jasper', 'Jay', 'Jean', 'Jeff', 'Jefferson', 'Jeffrey', 'Jendrick', 'Jens', 'Jered', 'Jeremiah', 'Jeremias', 'Jeremie', 'Jeremy', 'Jerold', 'Jerom', 'Jerome', 'Jerrick', 'Jerry', 'Jesaja', 'Jesko', 'Jesse', 'Jim', 'Jimmy', 'Jirko', 'Jo', 'Joakim', 'Joao', 'Joaquin', 'Joe', 'Joel', 'Joey', 'John', 'Johnny', 'Jokim', 'Jonah', 'Jonas', 'Jonathan', 'Jonny', 'Jordan', 'Jordano', 'Jörg', 'Jorge', 'Jose', 'Josef', 'Joseph', 'Josh', 'Joshua', 'Josias', 'Jost', 'Josua', 'Josue', 'Jourdain', 'Juan', 'Juanito', 'Jud', 'Jules', 'Julien', 'Julio', 'Julius', 'Jürgen', 'Jurij', 'Justin', 'Justinian', 'Justus',
+        'Kain', 'Kaj', 'Kajetan', 'Kallistus', 'Karsten', 'Kasimir', 'Kaspar', 'Keamon', 'Keith', 'Ken', 'Kenan', 'Kenneth', 'Keno', 'Kersten', 'Kerwin', 'Kevin', 'Kian', 'Kilian', 'Kim', 'Kiran', 'Klaas', 'Klaus', 'Klemens', 'Kleopas', 'Knud', 'Knut', 'Kolja', 'Konrad', 'Konstantin', 'Korbin', 'Korbinian', 'Kordt', 'Kristian', 'Kristof', 'Kristoffer', 'Kuno', 'Kurt', 'Kyros', 'Lajos',
+        'Lambert', 'Lamberto', 'Larry', 'Lars', 'Laslo', 'Lasse', 'Laurent', 'Laurente', 'Laurentius', 'Laurenz', 'Laurenzo', 'Lawrence', 'Lazarus', 'Lazlo', 'Leander', 'Lee', 'Leif', 'Leigh', 'Lennart', 'Lenny', 'Lenz', 'Leo', 'Leon', 'Leonard', 'Leonardo', 'Leonce', 'Leone', 'Leonello', 'Leonhard', 'Leopold', 'Leopoldo', 'Leroy', 'Lesley', 'Lester', 'Leverett', 'Levi', 'Lew', 'Lewis', 'Lex', 'Liborius', 'Lienhard', 'Linus', 'Lion', 'Lionel', 'LLoyd', 'Lobo', 'Loic', 'Lorenz', 'Lorenzo', 'Loris', 'Lothaire', 'Lou', 'Louie', 'Louis', 'Lovis', 'Luc', 'Luca', 'Lucan', 'Lucas', 'Luciano', 'Lucien', 'Lucius', 'Ludovico', 'Ludwig', 'Luigi', 'Luis', 'Lukas', 'Luke', 'Lutger', 'Luther', 'Lutz', 'Lyonel',
+        'Maik', 'Malte', 'Malwin', 'Manolito', 'Manolo', 'Manuel', 'Marc', 'Marcel', 'Marcello', 'Marcellus', 'Marco', 'Marcus', 'Marek', 'Marian', 'Marin', 'Marino', 'Marinus', 'Mario', 'Marius', 'Mark', 'Markus', 'Marlon', 'Maro', 'Marten', 'Martin', 'Marvin', 'Massimo', 'Mathias', 'Mathieu', 'Mathis', 'Matt', 'Matteo', 'Matthäus', 'Matthes', 'Matthew', 'Matthias', 'Matthieu', 'Maurice', 'Mauritius', 'Mauritz', 'Maurizio', 'Mauro', 'Maurus', 'Max', 'Maxence', 'Maxi', 'Maxime', 'Maximilian', 'Maximilien', 'Melchior', 'Merlin', 'Michael', 'Michail', 'Michel', 'Michele', 'Mick', 'Mickey', 'Miguel', 'Mika', 'Mikael', 'Mike', 'Mikel', 'Miklos', 'Milan', 'Milo', 'Mirko', 'Miro', 'Miroslav', 'Mischa', 'Mitja', 'Morgan', 'Moritz', 'Morris', 'Morten',
+        'Nat', 'Nathan', 'Nathanael', 'Nathaniel', 'Nepomuk', 'Nero', 'Neron', 'Newton', 'Niccolo', 'Nicholas', 'Nick', 'Nicki', 'Nico', 'Nicola', 'Nicolai', 'Nicolaj', 'Nicolas', 'Niels', 'Nigel', 'Nikita', 'Niklas', 'Niklaus', 'Niko', 'Nikodemus', 'Nikolai', 'Nikolaus', 'Nils', 'Noah', 'Noel', 'Norbert', 'Norberto', 'Norman',
+        'Odin', 'Odo', 'Odysseus', 'Olaf', 'Oleg', 'Oliver', 'Olivier', 'Oliviero', 'Olof', 'Oluf', 'Omar', 'Omer', 'Orlando', 'Orson', 'Oskar', 'Osvaldo', 'Oswin', 'Otello', 'Othello', 'Otto', 'Ove', 'Owain', 'Owen',
+        'Paco', 'Paddy', 'Palmiro', 'Pancho', 'Paolo', 'Pascal', 'Pat', 'Patrice', 'Patricio', 'Patricius', 'Patrick', 'Patrizio', 'Patrizius', 'Paul', 'Paulin', 'Paulus', 'Pawel', 'Pedro', 'Peer', 'Pepe', 'Pepito', 'Peppone', 'Per', 'Percy', 'Perez', 'Pete', 'Peter', 'Phil', 'Philip', 'Philipp', 'Philippe', 'Philo', 'Piedro', 'Pier', 'Piero', 'Pierre', 'Piet', 'Pieter', 'Pietro', 'Pinkus', 'Pippin', 'Pitt', 'Pius', 'Placide', 'Placido', 'Placidus', 'Poldi',
+        'Quint', 'Quintin', 'Quintinus', 'Quintus', 'Quirin', 'Quirino',
+        'Raffaele', 'Raffaello', 'Raffaelo', 'Raimondo', 'Raimund', 'Raimundo', 'Rainer', 'Rainier', 'Ralf', 'Ralph', 'Ramon', 'Randolf', 'Randolph', 'Randy', 'Raoul', 'Raphael', 'Rasmus', 'Rasul', 'Raul', 'Ray', 'Raymond', 'Regnier', 'Reik', 'Reiner', 'Remo', 'Renato', 'Renatus', 'Renaud', 'Rene', 'Renja', 'Reto', 'Reynold', 'Ricardo', 'Riccardo', 'Rick', 'Ricky', 'Rico', 'Rinaldo', 'Robby', 'Robert', 'Roberto', 'Robin', 'Rocco', 'Rock', 'Rocky', 'Rod', 'Rodolfo', 'Rodolphe', 'Rodrigo', 'Rodrigue', 'Rodrique', 'Roger', 'Roland', 'Rolando', 'Rolf', 'Romain', 'Roman', 'Romano', 'Romeo', 'Romero', 'Ronald', 'Ronan', 'Ronny', 'Rory', 'Ross', 'Rowan', 'Rowland', 'Roy', 'Ruben', 'Rudolf', 'Rudolph', 'Ruggero', 'Rupert', 'Ryan',
+        'Salomon', 'Salomone', 'Salvador', 'Salvator', 'Salvatore', 'Sam', 'Sammy', 'Samuel', 'Samuele', 'Sander', 'Sandor', 'Sandro', 'Sandy', 'Sascha', 'Sauveur', 'Schorsch', 'Scipio', 'Scott', 'Sean', 'Sebastian', 'Sebastiano', 'Sebastien', 'Selim', 'Semjon', 'Sepp', 'Serenus', 'Serge', 'Sergej', 'Sergio', 'Sergius', 'Servatius', 'Severiano', 'Severin', 'Severo', 'Sidney', 'Sidonius', 'Silas', 'Silvain', 'Silvan', 'Silvano', 'Silvanus', 'Silverio', 'Silverius', 'Silvester', 'Silvestro', 'Silvio', 'Silvius', 'Simjon', 'Simon', 'Simone', 'Sinclair', 'Sixt', 'Sixtus', 'Slade', 'Solomon', 'Söncke', 'Sören', 'Spencer', 'Stan', 'Stanislaus', 'Stanislaw', 'Stanley', 'Stefan', 'Stefano', 'Steffen', 'Sten', 'Stephan', 'Stephen', 'Steve', 'Steven', 'Stewart', 'Stig', 'Stuart', 'Sven', 'Sylvain', 'Sylvester',
+        'Tam', 'Tarek', 'Tassilo', 'Tasso', 'Ted', 'Teddy', 'Teobaldo', 'Thaddäus', 'Theo', 'Theodor', 'Theodore', 'Thierry', 'Thimotheus', 'Thomas', 'Thommy', 'Thoralf', 'Thorben', 'Thore', 'Thorsten', 'Tiberio', 'Tiberius', 'Tibor', 'Till', 'Tim', 'Timmy', 'Timo', 'Timofej', 'Timon', 'Timoteo', 'Timothee', 'Timotheus', 'Timothy', 'Tin', 'Tito', 'Titus', 'Tizian', 'Tiziano', 'Tjade', 'Tjark', 'Tobi', 'Tobia', 'Tobiah', 'Tobias', 'Tobie', 'Tobis', 'Toby', 'Tom', 'Tommaso', 'Tommy', 'Toni', 'Tonio', 'Tony', 'Torben', 'Torin', 'Torsten', 'Tristan', 'Tycho', 'Tyler', 'Tyson',
+        'Udo', 'Ugo', 'Ugolino', 'Ulf', 'Uli', 'Ulli', 'Ulric', 'Ulrich', 'Ulrico', 'Umberto', 'Urbain', 'Urban', 'Urbano', 'Urias', 'Uriel', 'Ursus', 'Uwe',
+        'Valentiano', 'Valentin', 'Valentino', 'Valerian', 'Valerio', 'Valerius', 'Valery', 'Vasco', 'Veit', 'Veltin', 'Vernon', 'Vicente', 'Vico', 'Victor', 'Viktor', 'Vincent', 'Vincenzo', 'Vinzenez', 'Vinzenz', 'Virgil', 'Vitalis', 'Vito', 'Vittore', 'Vittoriano', 'Vittorio', 'Volker',
+        'Wallace', 'Walt', 'Warner', 'Warren', 'Wido', 'Wigand', 'Wilbur', 'Willi', 'William', 'Wilpert', 'Winston', 'Wolf', 'Wolfgang', 'Woodrow', 'Woody',
+        'Xaver',
+        'Abby', 'Abelina', 'Abigail', 'Adelaide', 'Adeline', 'Adina', 'Adriana', 'Adrienne', 'Afra', 'Agatha', 'Agnes', 'Aida', 'Aimee', 'Aischa', 'Albertine', 'Alea', 'Aleksandra', 'Alena', 'Alessa', 'Alessandra', 'Alessia', 'Alexa', 'Alexandra', 'Alexia', 'Alexis', 'Alice', 'Alicia', 'Alida', 'Alina', 'Aline', 'Alisa', 'Alissa', 'Alisson', 'Amabella', 'Amadea', 'Amanda', 'Amelia', 'Amelie', 'Amina', 'Amy', 'Ana', 'Anastasia', 'Andrea', 'Andrina', 'Anette', 'Angela', 'Angelika', 'Angelina', 'Angelique', 'Anina', 'Anine', 'Anita', 'Anja', 'Anjalie', 'Anke', 'Ann', 'Anna', 'Annabel', 'Annabell', 'Annabella', 'Annabelle', 'Anne', 'Annett', 'Annette', 'Annika', 'Annina', 'Antje', 'Antoinette', 'Antonella', 'Antonia', 'Arabella', 'Ariadne', 'Ariana', 'Ariane', 'Arianna', 'Ariella', 'Arielle', 'Arlene', 'Arlette', 'Arwenna', 'Ashley', 'Asta', 'Astrid', 'Audrey', 'Aurelia',
+        'Barbara', 'Bärbel', 'Bastiane', 'Bea', 'Beata', 'Beatrice', 'Beatrix', 'Becky', 'Belinda', 'Bella', 'Bellana', 'Belle', 'Benedikta', 'Benita', 'Bente', 'Beppina', 'Berenike', 'Berit', 'Bernadett', 'Bernadette', 'Bernadine', 'Betina', 'Betsy', 'Bettina', 'Betty', 'Bianca', 'Bianka', 'Bibiana', 'Bibiane', 'Birgit', 'Birgitt', 'Bodil', 'Bridget', 'Brigitta', 'Brigitte', 'Britta',
+        'Caitlin', 'Cameron', 'Camilla', 'Camille', 'Cammy', 'Cara', 'Carin', 'Carina', 'Carinna', 'Carla', 'Carmela', 'Carmelia', 'Carmen', 'Carol', 'Carola', 'Carole', 'Carolin', 'Carolina', 'Caroline', 'Carolyn', 'Carolyne', 'Cassandra', 'Cassie', 'Catalin', 'Caterina', 'Catharina', 'Catherine', 'Cathrin', 'Cathrine', 'Cathy', 'Catina', 'Catrin', 'Catriona', 'Cecile', 'Cecilia', 'Cecilie', 'Celeste', 'Celestine', 'Celina', 'Celine', 'Chantal', 'Charleen', 'Charlotte', 'Chatrina', 'Chelsea', 'Chiara', 'Chloe', 'Chrissy', 'Christa', 'Christiana', 'Christiane', 'Christin', 'Christina', 'Christine', 'Chyna', 'Ciara', 'Cinderella', 'Cindy', 'Cinja', 'Cira', 'Claire', 'Clara', 'Clarissa', 'Claudette', 'Claudia', 'Claudine', 'Clea', 'Cleannis', 'Clementia', 'Clementine', 'Cleo', 'Clio', 'Cliona', 'Clodia', 'Cloris', 'Coletta', 'Colette', 'Connie', 'Conny', 'Constance', 'Constanze', 'Cora', 'Coral', 'Coralie', 'Cordelia', 'Cordula', 'Corin', 'Corina', 'Corinna', 'Corinne', 'Cornelia', 'Cosette', 'Cosima', 'Cynthia',
+        'Daisy', 'Dajana', 'Daliah', 'Damaris', 'Damia', 'Damiana', 'Dana', 'Dania', 'Danica', 'Daniela', 'Daniele', 'Daniella', 'Danielle', 'Danja', 'Daphne', 'Darcie', 'Daria', 'Darina', 'Dawn', 'Dayna', 'Debbie', 'Debby', 'Debora', 'Deborah', 'Deetya', 'Delia', 'Delphine', 'Dena', 'Denise', 'Desdemona', 'Desideria', 'Desiree', 'Diana', 'Diane', 'Didina', 'Dina', 'Dinah', 'Dolly', 'Dolores', 'Domenica', 'Dominika', 'Dominique', 'Donna', 'Dora', 'Doreen', 'Dorina', 'Doris', 'Dorit', 'Doro', 'Dorothea', 'Dorothee', 'Dorothy', 'Dunja',
+        'Ebony', 'Edda', 'Edita', 'Edvige', 'Edwina', 'Eike', 'Eila', 'Eileen', 'Ela', 'Elaine', 'Eleanor', 'Elektra', 'Elena', 'Eleonora', 'Eleonore', 'Eliane', 'Elisa', 'Elisabeth', 'Elise', 'Elizabeth', 'Elke', 'Ella', 'Ellen', 'Elly', 'Eloise', 'Elsa', 'Elsbeth', 'Elvira', 'Elvire', 'Emanuela', 'Emanuelle', 'Emilia', 'Emilie', 'Emily', 'Emma', 'Enrica', 'Enya', 'Erika', 'Erin', 'Ernesta', 'Ernestina', 'Ernestine', 'Esmerelda', 'Esra', 'Estella', 'Estelle', 'Ester', 'Esther', 'Etiennette', 'Eudoxia', 'Eugenia', 'Eunike', 'Euphemia', 'Euphrasia', 'Eusebia', 'Eva', 'Evangelina', 'Evania', 'Eve', 'Evelien', 'Evelin', 'Eveline', 'Evelyn', 'Evelyne', 'Evette', 'Evi', 'Evita',
+        'Fabiane', 'Fabienne', 'Fabiola', 'Faith', 'Fanny', 'Farrah', 'Fatima', 'Faustina', 'Faustine', 'Fay', 'Faye', 'Faylinn', 'Federica', 'Fedora', 'Fee', 'Feli', 'Felice', 'Felicia', 'Felicitas', 'Felicity', 'Felizitas', 'Feodora', 'Fergie', 'Fidelia', 'Filia', 'Filiz', 'Finetta', 'Finja', 'Fiona', 'Fjodora', 'Flavia', 'Fleur', 'Fleur', 'Flo', 'Flora', 'Florence', 'Florentina', 'Florentine', 'Floria', 'Floriane', 'Florida', 'Florinda', 'Floris', 'Fortuna', 'Frances', 'Francesca', 'Francisca', 'Franka', 'Franzi', 'Franziska', 'Frauke', 'Freya', 'Friederike',
+        'Gabriela', 'Gabriele', 'Gabriella', 'Gabrielle', 'Gaby', 'Gail', 'Galatea', 'Galina', 'Gazelle', 'Gela', 'Geneva', 'Genoveva', 'Georgette', 'Georgia', 'Georgina', 'Geraldene', 'Geraldine', 'Germain', 'Germaine', 'Germana', 'Ghita', 'Gianna', 'Gigi', 'Gill', 'Gillian', 'Gina', 'Ginevra', 'Ginger', 'Ginny', 'Giovanna', 'Gisela', 'Gisele', 'Gisella', 'Giselle', 'Gitta', 'Giulia', 'Giuliana', 'Giulietta', 'Giuseppa', 'Giuseppina', 'Giustina', 'Gladys', 'Gloria', 'Glory', 'Goldie', 'Goldy', 'Grace', 'Gratia', 'Gratiana', 'Grazia', 'Greta', 'Gretel', 'Gunda', 'Gwen', 'Gwenda', 'Gwendolin', 'Gwendolyn', 'Gypsy',
+        'Hannah', 'Hanne', 'Harmony', 'Harriet', 'Hazel', 'Hedi', 'Hedy', 'Heide', 'Heidi', 'Heike', 'Helen', 'Helena', 'Helene', 'Helin', 'Hella', 'Hemma', 'Henrietta', 'Henriette', 'Henrike', 'Hera', 'Hetty', 'Hilary', 'Hilda', 'Hilde', 'Holiday', 'Holli', 'Holly', 'Hope',
+        'Ilana', 'Ilaria', 'Iliana', 'Iljana', 'Ilka', 'Ilona', 'Ilse', 'Ilyssa', 'Imke', 'Ina', 'India', 'Indira', 'Indra', 'Ines', 'Inga', 'Inge', 'Ingrid', 'Inka', 'Inken', 'Innozentia', 'Iona', 'Ira', 'Irena', 'Irene', 'Irina', 'Iris', 'Irisa', 'Irma', 'Isabel', 'Isabell', 'Isabella', 'Isabelle', 'Isis', 'Iva', 'Ivana', 'Ivona', 'Ivonne',
+        'Jaclyn', 'Jacqueline', 'Jacqui', 'Jael', 'Jamari', 'Jan', 'Jana', 'Jane', 'Janet', 'Janette', 'Janin', 'Janina', 'Janine', 'Janique', 'Janna', 'Jannine', 'Jarla', 'Jasmin', 'Jasmina', 'Jasmine', 'Jeanette', 'Jeanine', 'Jeanne', 'Jeannette', 'Jeannine', 'Jekaterina', 'Jelena', 'Jenifer', 'Jenna', 'Jennelle', 'Jennessa', 'Jennie', 'Jennifer', 'Jenny', 'Jennyfer', 'Jess', 'Jessica', 'Jessie', 'Jessika', 'Jill', 'Joan', 'Joana', 'Joann', 'Joanna', 'Joelle', 'Johanna', 'Jolanda', 'Jona', 'Jordana', 'Jördis', 'Josee', 'Josefa', 'Josefina', 'Josefine', 'Josepha', 'Josephine', 'Josiane', 'Josie', 'Jovita', 'Joy', 'Joyce', 'Juana', 'Juanita', 'Judith', 'Judy', 'Julia', 'Juliana', 'Juliane', 'Julianne', 'Julie', 'Juliet', 'Juliette', 'July', 'June', 'Justina', 'Justine', 'Justise', 'Jutta',
+        'Kamilia', 'Kamilla', 'Karen', 'Karima', 'Karin', 'Karina', 'Karla', 'Karola', 'Karolin', 'Karolina', 'Karoline', 'Kassandra', 'Katalin', 'Katarina', 'Kate', 'Katharina', 'Katharine', 'Käthe', 'Katherina', 'Katherine', 'Kathleen', 'Kathrin', 'Kathrina', 'Kathryn', 'Kathy', 'Katinka', 'Katja', 'Katjana', 'Katrin', 'Katrina', 'Katrine', 'Kayla', 'Keala', 'Keelin', 'Kendra', 'Kerstin', 'Kiana', 'Kiara', 'Kim', 'Kira', 'Kirsten', 'Kirstin', 'Kita', 'Klara', 'Klarissa', 'Klaudia', 'Kleopatra', 'Kolina', 'Konstanze', 'Kora', 'Kordula', 'Kori', 'Kornelia', 'Krista', 'Kristiane', 'Kristin', 'Kristina', 'Kristine', 'Kyra',
+        'Laila', 'Lana', 'Lara', 'Laria', 'Larissa', 'Lätizia', 'Laurel', 'Lauren', 'Laurence', 'Laurentia', 'Lauretta', 'Lavina', 'Laya', 'Lea', 'Leah', 'Leandra', 'Lee', 'Leigh', 'Leila', 'Lena', 'Leona', 'Leonie', 'Leontine', 'Leopoldine', 'Lesley', 'Leslie', 'Levana', 'Levia', 'Lia', 'Liane', 'Libusa', 'Licia', 'Lidia', 'Liesa', 'Liesbeth', 'Liese', 'Liesel', 'Lilian', 'Liliane', 'Lilith', 'Lilli', 'Lillian', 'Lilo', 'Lily', 'Lina', 'Linda', 'Lioba', 'Lisa', 'Lisbeth', 'Lise', 'Lisette', 'Liv', 'Livana', 'Livia', 'Liz', 'Liza', 'Lizzie', 'Lola', 'Lora', 'Lorena', 'Loretta', 'Lori', 'Lorraine', 'Lotte', 'Lotus', 'Louise', 'Luana', 'Luca', 'Lucia', 'Luciana', 'Lucie', 'Lucy', 'Luigia', 'Luisa', 'Luise', 'Luna', 'Luzia', 'Lydia', 'Lydie', 'Lynette', 'Lynn',
+        'Maddalena', 'Madelaine', 'Madeleine', 'Madeline', 'Madison', 'Madita', 'Madleine', 'Madlen', 'Madlene', 'Mae', 'Magda', 'Magdalena', 'Maggy', 'Magret', 'Maia', 'Maike', 'Maiken', 'Mailin', 'Maja', 'Malea', 'Malee', 'Malin', 'Malina', 'Mandy', 'Manja', 'Manon', 'Manuela', 'Mara', 'Maraike', 'Marcella', 'Marcelle', 'Marcia', 'Mareike', 'Maren', 'Margaret', 'Margareta', 'Margarete', 'Margaretha', 'Margarita', 'Margaritha', 'Margherita', 'Margit', 'Margitta', 'Margot', 'Margret', 'Margreth', 'Marguerite', 'Maria', 'Mariam', 'Marian', 'Mariana', 'Marianna', 'Marianne', 'Marie', 'Marieke', 'Mariella', 'Marielle', 'Marietta', 'Marija', 'Marika', 'Marilies', 'Marilyn', 'Marina', 'Marion', 'Marisa', 'Marissa', 'Marita', 'Maritta', 'Marjorie', 'Marla', 'Marleen', 'Marlen', 'Marlena', 'Marlene', 'Marlies', 'Marlis', 'Marsha', 'Martha', 'Marthe', 'Martina', 'Mary', 'Maryse', 'Mascha', 'Mathilda', 'Mathilde', 'Matilde', 'Mattea', 'Maude', 'Maura', 'Maureen', 'Maximiliane', 'May', 'Maya', 'Meg', 'Megan', 'Meike', 'Melanie', 'Melia', 'Melina', 'Melinda', 'Melissa', 'Melitta', 'Melodie', 'Meloney', 'Mercedes', 'Meret', 'Meri', 'Merle', 'Merline', 'Meryem', 'Mia', 'Micaela', 'Michaela', 'Michele', 'Michelle', 'Milena', 'Milla', 'Milva', 'Mimi', 'Minerva', 'Minna', 'Mira', 'Mirabella', 'Mireille', 'Mirella', 'Mireya', 'Miriam', 'Mirijam', 'Mirjam', 'Moesha', 'Moira', 'Mona', 'Moni', 'Monica', 'Monika', 'Monique', 'Monja', 'Morgane', 'Muriel', 'Myriam',
+        'Nadin', 'Nadine', 'Nadja', 'Nadjana', 'Naemi', 'Nancy', 'Nanette', 'Nani', 'Naomi', 'Nastasja', 'Natalia', 'Natalie', 'Natanja', 'Natascha', 'Nathalie', 'Neeja', 'Nena', 'Neria', 'Nerine', 'Nicol', 'Nicola', 'Nicole', 'Nicoletta', 'Nicolette', 'Nike', 'Nikola', 'Nina', 'Ninja', 'Ninon', 'Noa', 'Noelle', 'Noemi', 'Noemie', 'Nora', 'Norma', 'Nuala',
+        'Olga', 'Olivia', 'Ophelia', 'Orania', 'Orla', 'Ornella', 'Orsola', 'Ottilie',
+        'Paloma', 'Pam', 'Pamela', 'Pandora', 'Paola', 'Paolina', 'Pascale', 'Pat', 'Patrice', 'Patricia', 'Patrizia', 'Patsy', 'Patty', 'Paula', 'Paulette', 'Paulina', 'Pauline', 'Penelope', 'Pepita', 'Petra', 'Philine', 'Philippa', 'Philomele', 'Philomena', 'Phoebe', 'Phyllis', 'Pia', 'Pier', 'Prica', 'Prisca', 'Priscilla', 'Priscille', 'Priska',
+        'Rachel', 'Rachel', 'Rachelle', 'Radomila', 'Rafaela', 'Raffaela', 'Raffaella', 'Ragna', 'Rahel', 'Raja', 'Ramona', 'Raphaela', 'Raquel', 'Rebecca', 'Rebekka', 'Regina', 'Regine', 'Reisha', 'Renata', 'Renate', 'Renee', 'Resi', 'Rhea', 'Rhoda', 'Rhonda', 'Ricarda', 'Riccarda', 'Rike', 'Rita', 'Roberta', 'Romana', 'Romina', 'Romy', 'Ronja', 'Rosa', 'Rosalia', 'Rosalie', 'Rosalinda', 'Rosalinde', 'Rosaline', 'Rose', 'Roseline', 'Rosetta', 'Rosette', 'Rosi', 'Rosina', 'Rosine', 'Rossana', 'Roswitha', 'Roxana', 'Roxane', 'Roxanne', 'Roxy', 'Rubina', 'Ruth',
+        'Sabine', 'Sabrina', 'Sahra', 'Sally', 'Salome', 'Salvina', 'Samanta', 'Samantha', 'Samira', 'Sandra', 'Sandrina', 'Sandrine', 'Sandy', 'Sanne', 'Sanya', 'Saphira', 'Sara', 'Sarah', 'Sarina', 'Sascha', 'Saskia', 'Scarlet', 'Scarlett', 'Schirin', 'Selina', 'Selma', 'Serafina', 'Seraina', 'Seraphin', 'Seraphina', 'Seraphine', 'Serena', 'Severina', 'Severine', 'Shana', 'Shanaya', 'Shantala', 'Shari', 'Sharlene', 'Sharon', 'Sheena', 'Sheila', 'Sheryl', 'Shirin', 'Shirley', 'Shirlyn', 'Sibilla', 'Sibyl', 'Sibylle', 'Siegrid', 'Sigrid', 'Sigrun', 'Silja', 'Silke', 'Silvana', 'Silvia', 'Silviane', 'Simona', 'Simone', 'Simonette', 'Simonne', 'Sina', 'Sindy', 'Sinja', 'Sissy', 'Skyla', 'Smarula', 'Smilla', 'Sofia', 'Sofie', 'Sonia', 'Sonja', 'Sonnele', 'Sonya', 'Sophia', 'Sophie', 'Soraya', 'Stefanie', 'Steffi', 'Stella', 'Stephanie', 'Sumehra', 'Summer', 'Susan', 'Susanna', 'Susanne', 'Susi', 'Suzan', 'Suzanne', 'Suzette', 'Svea', 'Svenja', 'Swane', 'Sybilla', 'Sybille', 'Sydney', 'Sylvana', 'Sylvia', 'Sylvie',
+        'Tabitha', 'Taissa', 'Tamara', 'Tamina', 'Tania', 'Tanita', 'Tanja', 'Tara', 'Tatiana', 'Tatjana', 'Taya', 'Tecla', 'Telka', 'Teodora', 'Teona', 'Teresa', 'Terry', 'Tess', 'Tessa', 'Tessie', 'Thea', 'Thekla', 'Theodora', 'Theres', 'Theresa', 'Therese', 'Theresia', 'Tiana', 'Tiffany', 'Tilly', 'Timna', 'Tina', 'Tiziana', 'Tonja', 'Toril', 'Tosca', 'Tracey', 'Traudl', 'Trixi', 'Tycho', 'Tyra',
+        'Ulla', 'Ulli', 'Ulrica', 'Ulrike', 'Undine', 'Urania', 'Ursel', 'Ursina', 'Ursula', 'Ursule', 'Uschi', 'Uta', 'Ute',
+        'Valentina', 'Valentine', 'Valeria', 'Valerie', 'Valeska', 'Vanadis', 'Vanessa', 'Vanja', 'Varinka', 'Venetia', 'Vera', 'Verena', 'Verona', 'Veronica', 'Veronika', 'Veronique', 'Vesla', 'Vicky', 'Victoire', 'Victoria', 'Viki', 'Viktoria', 'Vilja', 'Viola', 'Violet', 'Violetta', 'Violette', 'Virginia', 'Virginie', 'Vittoria', 'Viviana', 'Viviane', 'Vivien', 'Vivienne', 'Vreneli', 'Vreni', 'Vroni',
+        'Wencke', 'Weneke', 'Wibke', 'Wilja', 'Willow', 'Wilma',
+    );
+
+    protected static $lastName = array(
+        'Ackermann', 'Adler', 'Adolph', 'Albers', 'Anders', 'Atzler', 'Aumann', 'Austermühle',
+        'Bachmann', 'Bähr', 'Bärer', 'Barkholz', 'Barth', 'Bauer', 'Baum', 'Becker', 'Beckmann', 'Beer', 'Beier', 'Bender', 'Benthin', 'Berger', 'Beyer', 'Bien', 'Biggen', 'Binner', 'Birnbaum', 'Bloch', 'Blümel', 'Bohlander', 'Bonbach', 'Bolander', 'Bolnbach', 'Bolzmann', 'Börner', 'Bohnbach', 'Boucsein', 'Briemer', 'Bruder', 'Buchholz', 'Budig', 'Butte',
+        'Carsten', 'Caspar', 'Christoph', 'Cichorius', 'Conradi',
+        'Davids', 'Dehmel', 'Dickhard', 'Dietz', 'Dippel', 'Ditschlerin', 'Dobes', 'Döhn', 'Döring', 'Dörr', 'Dörschner', 'Dowerg', 'Drewes', 'Drub', 'Drubin', 'Dussen van',
+        'Eberhardt', 'Ebert', 'Eberth', 'Eckbauer', 'Ehlert', 'Eigenwillig', 'Eimer', 'Ernst', 'Etzler', 'Etzold',
+        'Faust', 'Fechner', 'Fiebig', 'Finke', 'Fischer', 'Flantz', 'Fliegner', 'Förster', 'Franke', 'Freudenberger', 'Fritsch', 'Fröhlich',
+        'Gehringer', 'Geisel', 'Geisler', 'Geißler', 'Gerlach', 'Gertz', 'Gierschner', 'Gieß', 'Girschner', 'Gnatz', 'Gorlitz', 'Gotthard', 'Graf', 'Grein Groth', 'Gröttner', 'Gude', 'Gunpf', 'Gumprich', 'Gute', 'Gutknecht',
+        'Haase', 'Haering', 'Hänel', 'Häring', 'Hahn', 'Hamann', 'Hande', 'Harloff', 'Hartmann', 'Hartung', 'Hauffer', 'Hecker', 'Heidrich', 'Hein', 'Heinrich', 'Heintze', 'Heinz', 'Hellwig', 'Henck', 'Hendriks', 'Henk', 'Henschel', 'Hentschel', 'Hering', 'Hermann', 'Herrmann', 'Hermighausen', 'Hertrampf', 'Heser', 'Heß', 'Hesse', 'Hettner', 'Hethur', 'Heuser', 'Hiller', 'Heydrich', 'Höfig', 'Hofmann', 'Holsten', 'Holt', 'Holzapfel', 'Hölzenbecher', 'Hörle', 'Hövel', 'Hoffmann', 'Hornich', 'Hornig', 'Hübel', 'Huhn',
+        'Jacob', 'Jacobi Jäckel', 'Jähn', 'Jäkel', 'Jäntsch', 'Jessel', 'Jockel', 'Johann', 'Jopich', 'Junck', 'Juncken', 'Jungfer', 'Junitz', 'Junk', 'Junken', 'Jüttner',
+        'Kabus', 'Kade', 'Käster', 'Kallert', 'Kambs', 'Karge', 'Karz', 'Kaul', 'Kensy', 'Keudel', 'Killer', 'Kitzmann', 'Klapp', 'Klemm', 'Klemt', 'Klingelhöfer', 'Klotz', 'Knappe', 'Kobelt', 'Koch', 'Koch II', 'Köhler', 'Köster', 'Kohl', 'Kostolzin', 'Kramer', 'Kranz', 'Krause', 'Kraushaar', 'Krebs', 'Krein', 'Kreusel', 'Kroker', 'Kruschwitz', 'Kuhl', 'Kühnert', 'Kusch',
+        'Lachmann', 'Ladeck', 'Lange', 'Langern', 'Lehmann', 'Liebelt', 'Lindau', 'Lindner', 'Linke', 'Löchel', 'Löffler', 'Loos', 'Lorch', 'Losekann', 'Löwer', 'Lübs',
+        'Mälzer', 'Mangold', 'Mans', 'Margraf', 'Martin', 'Matthäi', 'Meister', 'Mende', 'Mentzel', 'Metz', 'Meyer', 'Mielcarek', 'Mies', 'Misicher', 'Mitschke', 'Mohaupt', 'Mosemann', 'Möchlichen', 'Mude', 'Mühle', 'Mülichen', 'Müller',
+        'Naser', 'Nerger', 'Nette', 'Neureuther', 'Neuschäfer', 'Niemeier', 'Noack', 'Nohlmans',
+        'Oderwald', 'Oestrovsky', 'Ortmann', 'Otto',
+        'Paffrath', 'Pärtzelt', 'Patberg', 'Pechel', 'Pergande', 'Peukert', 'Pieper', 'Plath', 'Pohl', 'Pölitz', 'Preiß', 'Pruschke', 'Putz',
+        'Rädel', 'Radisch', 'Reichmann', 'Reinhardt', 'Reising', 'Renner', 'Reuter', 'Riehl', 'Ring', 'Ritter', 'Rogge', 'Rogner', 'Rohleder', 'Röhrdanz', 'Röhricht', 'Roht', 'Römer', 'Rörricht', 'Rose', 'Rosemann', 'Rosenow', 'Roskoth', 'Rudolph', 'Ruppersberger', 'Ruppert', 'Rust',
+        'Sager', 'Salz', 'Säuberlich', 'Sauer', 'Schaaf', 'Schacht', 'Schäfer', 'Scheel', 'Scheibe', 'Schenk', 'Scheuermann', 'Schinke', 'Schleich', 'Schleich', 'auch Schlauchin', 'Schlosser', 'Schmidt', 'Schmidtke', 'Schmiedecke', 'Schmiedt', 'Schönland', 'Scholl', 'Scholtz', 'Scholz', 'Schomber', 'Schottin', 'Schuchhardt', 'Schüler', 'Schulz', 'Schuster', 'Schweitzer', 'Schwital', 'Segebahn', 'Seifert', 'Seidel', 'Seifert', 'Seip', 'Siering', 'Söding', 'Sölzer', 'Sontag', 'Sorgatz', 'Speer', 'Spieß', 'Stadelmann', 'Stahr', 'Staude', 'Steckel', 'Steinberg', 'Stey', 'Stiebitz', 'Stiffel', 'Stoll', 'Stolze', 'Striebitz', 'Stroh', 'Stumpf', 'Sucker', 'Süßebier',
+        'Täsche', 'Textor', 'Thanel', 'Thies', 'Tintzmann', 'Tlustek', 'Trapp', 'Trommler', 'Tröst', 'Trub', 'Trüb', 'Trubin', 'Trupp', 'Tschentscher',
+        'Ullmann', 'Ullrich',
+        'van der Dussen', 'Vogt', 'Vollbrecht',
+        'Wagenknecht', 'Wagner', 'Wähner', 'Walter', 'Warmer', 'Weihmann', 'Weimer', 'Weinhage', 'Weinhold', 'Weiß', 'Weitzel', 'Weller', 'Wende', 'Wernecke', 'Werner', 'Wesack', 'Wiek', 'Wieloch', 'Wilms', 'Wilmsen', 'Winkler', 'Wirth', 'Wohlgemut', 'Wulf', 'Wulff',
+        'Zahn', 'Zänker', 'Ziegert', 'Zimmer', 'Zirme', 'Zobel', 'Zorbach',
+    );
+
+    protected static $prefixMale = array('Herr', 'Dr.', 'Mag.', 'Ing.', 'Dipl.-Ing.', 'Prof.', 'Univ.Prof.');
+    protected static $prefixFemale = array('Frau', 'Dr.', 'Maga.', 'Ing.', 'Dipl.-Ing.', 'Prof.', 'Univ.Prof.');
+
+    protected static $suffix = array('B.Sc.', 'B.A.', 'B.Eng.', 'MBA.');
+
+    /**
+     * @example 'Mrs.'
+     */
+    public static function prefix()
+    {
+        return static::randomElement(static::$prefixMale);
+    }
+
+    /**
+     * @example 'Argus'
+     */
+    public static function firstNameMale()
+    {
+        return static::randomElement(static::$firstNameMale);
+    }
+
+    /**
+     * @example 'Magret'
+     */
+    public static function firstNameFemale()
+    {
+        return static::randomElement(static::$firstNameFemale);
+    }
+
+    /**
+     * @example 'Herr'
+     */
+    public static function prefixMale()
+    {
+        return static::randomElement(static::$prefixMale);
+    }
+
+    /**
+     * @example 'Frau'
+     */
+    public static function prefixFemale()
+    {
+        return static::randomElement(static::$prefixFemale);
+    }
+
+    /**
+     * @example 'PhD'
+     */
+    public static function suffix()
+    {
+        return static::randomElement(static::$suffix);
+    }
+}

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 18 - 0
vendor/fzaninotto/faker/src/Faker/Provider/de_DE/Address.php


+ 15 - 0
vendor/fzaninotto/faker/src/Faker/Provider/de_DE/Company.php

@@ -0,0 +1,15 @@
+<?php
+
+namespace Faker\Provider\de_DE;
+
+class Company extends \Faker\Provider\Company
+{
+    protected static $formats = array(
+        '{{lastName}} {{companySuffix}}',
+        '{{lastName}} {{lastName}} {{companySuffix}}',
+        '{{lastName}}',
+        '{{lastName}}',
+    );
+
+    protected static $companySuffix = array('e.G.', 'e.V.', 'GbR', 'GbR', 'OHG mbH', 'GmbH & Co. OHG', 'AG & Co. OHG', 'GmbH', 'GmbH', 'GmbH', 'GmbH', 'AG', 'AG', 'AG', 'AG', 'KG', 'KG', 'KG', 'GmbH & Co. KG', 'GmbH & Co. KG', 'AG & Co. KG', 'Stiftung & Co. KG', 'KGaA', 'GmbH & Co. KGaA', 'AG & Co. KGaA', 'Stiftung & Co. KGaA');
+}

+ 46 - 0
vendor/fzaninotto/faker/src/Faker/Provider/de_DE/Internet.php

@@ -0,0 +1,46 @@
+<?php
+
+namespace Faker\Provider\de_DE;
+
+class Internet extends \Faker\Provider\Internet
+{
+    protected static $safeEmailTld = array('com', 'net', 'de', 'de');
+    protected static $freeEmailDomain = array('web.de', 'gmail.com', 'hotmail.de', 'yahoo.de', 'googlemail.com', 'aol.de', 'gmx.de');
+    protected static $tld = array('com', 'com', 'com', 'net', 'org', 'de', 'de', 'de');
+
+    /**
+     * Converts French characters to their ASCII representation
+     *
+     * @return string
+     */
+    private static function toAscii($string)
+    {
+        $from = array('ä', 'Ä', 'ü', 'Ü', 'ö', 'Ö', 'ß');
+        $to   = array('a', 'A', 'u', 'U', 'o', 'O', 'ss');
+
+        return str_replace($from, $to, $string);
+    }
+
+    /**
+     * @example 'jdoe'
+     */
+    public function userName()
+    {
+        $format = static::randomElement(static::$userNameFormats);
+
+        return static::toLower(static::toAscii(static::bothify($this->generator->parse($format))));
+    }
+
+    /**
+     * @example 'faber'
+     */
+    public function domainWord()
+    {
+        $company = $this->generator->format('company');
+        $companyElements = explode(' ', $company);
+        $company = $companyElements[0];
+        $company = preg_replace('/\W/', '', $company);
+
+        return static::toLower(static::toAscii($company));
+    }
+}

+ 204 - 0
vendor/fzaninotto/faker/src/Faker/Provider/de_DE/Person.php

@@ -0,0 +1,204 @@
+<?php
+
+namespace Faker\Provider\de_DE;
+
+class Person extends \Faker\Provider\Person
+{
+    protected static $formats = array(
+        '{{firstNameMale}} {{lastName}}',
+        '{{firstNameMale}} {{lastName}}',
+        '{{firstNameMale}} {{lastName}}',
+        '{{firstNameMale}} {{lastName}}',
+        '{{firstNameMale}} {{lastName}}-{{lastName}}',
+        '{{firstNameFemale}} {{lastName}}',
+        '{{firstNameFemale}} {{lastName}}',
+        '{{firstNameFemale}} {{lastName}}',
+        '{{firstNameFemale}} {{lastName}}',
+        '{{firstNameFemale}} {{lastName}}-{{lastName}}',
+        '{{prefixMale}} {{firstNameMale}} {{lastName}}',
+        '{{prefixFemale}} {{firstNameFemale}} {{lastName}}',
+        '{{firstNameMale}} {{lastName}} {{suffix}}',
+        '{{firstNameFemale}} {{lastName}} {{suffix}}',
+        '{{prefixMale}} {{firstNameMale}} {{lastName}} {{suffix}}',
+        '{{prefixFemale}} {{firstNameFemale}} {{lastName}} {{suffix}}',
+    );
+
+    protected static $firstNameMale = array(
+        'Abel', 'Abraham', 'Adalbero', 'Adam', 'Adamo', 'Adolfo', 'Adrian', 'Adriano', 'Adrianus', 'Adrien', 'Alain', 'Alajos', 'Alan', 'Albain', 'Alban', 'Albano', 'Alberto', 'Albin', 'Alec', 'Alejandro', 'Alessandro', 'Alessio', 'Alex', 'Alexander', 'Alexandre', 'Alexandros', 'Alexej', 'Alexis', 'Alfons', 'Alfonso', 'Aljoscha', 'Allan', 'Allen', 'Alois', 'Alon', 'Alonzo', 'Alphonse', 'Alwin', 'Amadeo', 'Amadeus', 'Amandus', 'Amos', 'Anatol', 'Anatole', 'Anatolij', 'Anders', 'Andi', 'Andor', 'Andre', 'Andreas', 'Andrej', 'Andrew', 'Andrijan', 'Andy', 'Angelus', 'Ansgar', 'Anthony', 'Antoine', 'Anton', 'Antonio', 'Araldo', 'Aram', 'Argus', 'Arjan', 'Armin', 'Arminio', 'Arnaldo', 'Arnault', 'Arndt', 'Arne', 'Arno', 'Arnold', 'Arrigo', 'Art', 'Arthur', 'Artur', 'Arturo', 'August', 'Auguste', 'Augustin', 'Aurelius', 'Axel',
+        'Balduin', 'Balthasar', 'Bardo', 'Barnabas', 'Barnard', 'Barney', 'Baruch', 'Basil', 'Basilius', 'Bastian', 'Bastien', 'Battista', 'Beatus', 'Beltrame', 'Beltran', 'Ben', 'Benedetto', 'Benedict', 'Benedikt', 'Bengt', 'Beniamino', 'Benignus', 'Benito', 'Benjamin', 'Benjy', 'Bennett', 'Benno', 'Benny', 'Benoit', 'Beppe', 'Bernard', 'Bernardo', 'Bernd', 'Bernhard', 'Bernie', 'Bert', 'Berthold', 'Bertoldo', 'Bertram', 'Bertrame', 'Bill', 'Billy', 'Birger', 'Bjarne', 'Björn', 'Bob', 'Bobby', 'Bodo', 'Bonifatius', 'Boris', 'Bosco', 'Brendan', 'Brian', 'Bruno', 'Bryan', 'Burkhard',
+        'Camillo', 'Camilo', 'Carl', 'Carlo', 'Carlos', 'Carol', 'Carsten', 'Cäsar', 'Casimir', 'Caspar', 'Cecil', 'Ceddric', 'Cedric', 'Celestino', 'Charles', 'Charlie', 'Chico', 'Chip', 'Chris', 'Christian', 'Christoph', 'Christophe', 'Christopher', 'Christy', 'Chuck', 'Cian', 'Cillian', 'Clarence', 'Clark', 'Clas', 'Claude', 'Claudio', 'Claudius', 'Claus', 'Clayton', 'Clemens', 'Cliff', 'Clifford', 'Clint', 'Clinton', 'Cody', 'Colin', 'Collin', 'Conan', 'Connor', 'Conny', 'Conor', 'Conrad', 'Constantine', 'Cooper', 'Cordell', 'Cornelius', 'Corvinus', 'Cristobal', 'Curd', 'Curt', 'Curtis', 'Curtiz', 'Cyril', 'Cyrill',
+        'Damian', 'Damon', 'Dan', 'Daniel', 'Daniele', 'Danilo', 'Danny', 'Dario', 'Darius', 'Dave', 'David', 'Davide', 'Dawson', 'Dean', 'Demetrius', 'Denis', 'Deniz', 'Dennis', 'Derek', 'Desiderius', 'Detlef', 'Detlev', 'Dick', 'Diego', 'Dieter', 'Dimitrij', 'Dirk', 'Dolf', 'Domenico', 'Domingo', 'Dominic', 'Dominik', 'Dominikus', 'Dominique', 'Donald', 'Donatello', 'Donato', 'Donatus', 'Dorian', 'Douglas', 'Dragan', 'Duarte', 'Duncan', 'Dylan',
+        'Earnest', 'Earvin', 'Eike', 'Eleasar', 'Elia', 'Elian', 'Elias', 'Elijah', 'Ellison', 'Elmar', 'Elroy', 'Emanuel', 'Emanuele', 'Emil', 'Emile', 'Emilian', 'Emiliano', 'Emilio', 'Emmanuel', 'Endrik', 'Enrico', 'Enrique', 'Enzo', 'Ephraim', 'Erasmus', 'Eric', 'Erik', 'Ermanno', 'Ernest', 'Ernestin', 'Ernesto', 'Eros', 'Errol', 'Etienne', 'Eugen', 'Eugene', 'Eugenio', 'Eusebius', 'Everett', 'Ezra',
+        'Fabiano', 'Fabien', 'Fabio', 'Fabius', 'Fabrice', 'Fabricius', 'Fabrizio', 'Falco', 'Falk', 'Falko', 'Faruk', 'Faustus', 'Favian', 'Federico', 'Federigo', 'Fedor', 'Felice', 'Feliciano', 'Felicien', 'Felipe', 'Felix', 'Felton', 'Feodor', 'Ferdinand', 'Fergus', 'Fernand', 'Fernando', 'Ferrante', 'Ferris', 'Fidel', 'Fidelio', 'Fidelis', 'Fidelius', 'Filippo', 'Finan', 'Finn', 'Fiore', 'Fjodor', 'Flavian', 'Flemming', 'Fletcher', 'Flint', 'Florens', 'Florentin', 'Florian', 'Florin', 'Florus', 'Floyd', 'Forrest', 'Forrester', 'Forster', 'Foster', 'Fox', 'Francesco', 'Francis', 'Francisco', 'Franco', 'Francois', 'Franek', 'Frank', 'Frankie', 'Franklin', 'Franziskus', 'Frasier', 'Frayne', 'Fred', 'Freddy', 'Frederic', 'Frederick', 'Frederik', 'Freeman', 'Fremont', 'Fridericus', 'Fridolin', 'Friedel', 'Frye',
+        'Gabriel', 'Gaetan', 'Gaetano', 'Gallus', 'Garcia', 'Garfield', 'Garin', 'Garnier', 'Garrick', 'Garrison', 'Garron', 'Garry', 'Garson', 'Gaspar', 'Gaspard', 'Gaspare', 'Gaston', 'Gastonne', 'Gates', 'Gauthier', 'Gavin', 'Gene', 'Geoffrey', 'Geoffroy', 'Geordi', 'Georg', 'George', 'Georges', 'Gerald', 'Geraldo', 'Gerard', 'Geraud', 'Gerd', 'Gereon', 'Germain', 'German', 'Germano', 'Gernot', 'Gerold', 'Geronimo', 'Gerrit', 'Gerry', 'Gert', 'Gerulf', 'Gerwin', 'Giacomo', 'Gian', 'Giancarlo', 'Gianni', 'Gibson', 'Gideon', 'Gil', 'Gilbert', 'Gilberto', 'Gilles', 'Gillian', 'Gino', 'Gioacchino', 'Giorgio', 'Giovanni', 'Giraldo', 'Gisbert', 'Gitano', 'Giuliano', 'Giulio', 'Giuseppe', 'Giusto', 'Glen', 'Glenn', 'Goliath', 'Goran', 'Gordon', 'Gordy', 'Goswin', 'Götz', 'Graciano', 'Graham', 'Grayson', 'Greg', 'Gregg', 'Gregoire', 'Gregor', 'Gregory', 'Griffin', 'Grover', 'Gualtier', 'Gualtiero', 'Guglielmo', 'Guido', 'Guillaume', 'Guillermo', 'Gunnar', 'Gunter', 'Günter', 'Gunther', 'Günther', 'Gus', 'Gustavo', 'Gustl', 'Gutierre', 'Guy',
+        'Hajo', 'Hamilton', 'Hamlet', 'Hampton', 'Hanley', 'Hannes', 'Hans', 'Harald', 'Hardy', 'Harley', 'Harlow', 'Harold', 'Haroun', 'Harrison', 'Harry', 'Harvey', 'Hasso', 'Hauke', 'Havel', 'Hector', 'Heiko', 'Heiner', 'Heino', 'Hektor', 'Helge', 'Helmut', 'Helmuth', 'Hendrick', 'Hendrik', 'Hennes', 'Henning', 'Henri', 'Henrick', 'Henrik', 'Henry', 'Herald', 'Herbie', 'Hercules', 'Herold', 'Herwig', 'Hieronymus', 'Hilarius', 'Holger', 'Holm', 'Homer', 'Horace', 'Horatio', 'Horaz', 'Howard', 'Howie', 'Hugh', 'Hugo', 'Humphrey', 'Hunter',
+        'Ignatius', 'Ignaz', 'Ignazio', 'Igor', 'Ilian', 'Ilja', 'Immanuel', 'Ingo', 'Ingolf', 'Ingvar', 'Irenäus', 'Irvin', 'Irving', 'Irwin', 'Isaac', 'Isaak', 'Isai', 'Isaiah', 'Isidor', 'Istvan', 'Ivan', 'Ivo',
+        'Jackson', 'Jacky', 'Jacob', 'Jacques', 'Jacquin', 'Jadon', 'Jago', 'Jaime', 'Jake', 'Jakob', 'Jamal', 'James', 'Jan', 'Janis', 'Jannes', 'Jannik', 'Janning', 'Janos', 'Janosch', 'Jaques', 'Jared', 'Jarik', 'Jarl', 'Jarno', 'Jaro', 'Jaromir', 'Jarrett', 'Jascha', 'Jason', 'Jasper', 'Jay', 'Jean', 'Jeff', 'Jefferson', 'Jeffrey', 'Jendrick', 'Jens', 'Jered', 'Jeremiah', 'Jeremias', 'Jeremie', 'Jeremy', 'Jerold', 'Jerom', 'Jerome', 'Jerrick', 'Jerry', 'Jesaja', 'Jesko', 'Jesse', 'Jim', 'Jimmy', 'Jirko', 'Jo', 'Joakim', 'Joao', 'Joaquin', 'Joe', 'Joel', 'Joey', 'John', 'Johnny', 'Jokim', 'Jonah', 'Jonas', 'Jonathan', 'Jonny', 'Jordan', 'Jordano', 'Jörg', 'Jorge', 'Jose', 'Josef', 'Joseph', 'Josh', 'Joshua', 'Josias', 'Jost', 'Josua', 'Josue', 'Jourdain', 'Juan', 'Juanito', 'Jud', 'Jules', 'Julien', 'Julio', 'Julius', 'Jürgen', 'Jurij', 'Justin', 'Justinian', 'Justus',
+        'Kain', 'Kaj', 'Kajetan', 'Kallistus', 'Karsten', 'Kasimir', 'Kaspar', 'Keamon', 'Keith', 'Ken', 'Kenan', 'Kenneth', 'Keno', 'Kersten', 'Kerwin', 'Kevin', 'Kian', 'Kilian', 'Kim', 'Kiran', 'Klaas', 'Klaus', 'Klemens', 'Kleopas', 'Knud', 'Knut', 'Kolja', 'Konrad', 'Konstantin', 'Korbin', 'Korbinian', 'Kordt', 'Kristian', 'Kristof', 'Kristoffer', 'Kuno', 'Kurt', 'Kyros', 'Lajos',
+        'Lambert', 'Lamberto', 'Larry', 'Lars', 'Laslo', 'Lasse', 'Laurent', 'Laurente', 'Laurentius', 'Laurenz', 'Laurenzo', 'Lawrence', 'Lazarus', 'Lazlo', 'Leander', 'Lee', 'Leif', 'Leigh', 'Lennart', 'Lenny', 'Lenz', 'Leo', 'Leon', 'Leonard', 'Leonardo', 'Leonce', 'Leone', 'Leonello', 'Leonhard', 'Leopold', 'Leopoldo', 'Leroy', 'Lesley', 'Lester', 'Leverett', 'Levi', 'Lew', 'Lewis', 'Lex', 'Liborius', 'Lienhard', 'Linus', 'Lion', 'Lionel', 'LLoyd', 'Lobo', 'Loic', 'Lorenz', 'Lorenzo', 'Loris', 'Lothaire', 'Lou', 'Louie', 'Louis', 'Lovis', 'Luc', 'Luca', 'Lucan', 'Lucas', 'Luciano', 'Lucien', 'Lucius', 'Ludovico', 'Ludwig', 'Luigi', 'Luis', 'Lukas', 'Luke', 'Lutger', 'Luther', 'Lutz', 'Lyonel',
+        'Maik', 'Malte', 'Malwin', 'Manolito', 'Manolo', 'Manuel', 'Marc', 'Marcel', 'Marcello', 'Marcellus', 'Marco', 'Marcus', 'Marek', 'Marian', 'Marin', 'Marino', 'Marinus', 'Mario', 'Marius', 'Mark', 'Markus', 'Marlon', 'Maro', 'Marten', 'Martin', 'Marvin', 'Massimo', 'Mathias', 'Mathieu', 'Mathis', 'Matt', 'Matteo', 'Matthäus', 'Matthes', 'Matthew', 'Matthias', 'Matthieu', 'Maurice', 'Mauritius', 'Mauritz', 'Maurizio', 'Mauro', 'Maurus', 'Max', 'Maxence', 'Maxi', 'Maxime', 'Maximilian', 'Maximilien', 'Melchior', 'Merlin', 'Michael', 'Michail', 'Michel', 'Michele', 'Mick', 'Mickey', 'Miguel', 'Mika', 'Mikael', 'Mike', 'Mikel', 'Miklos', 'Milan', 'Milo', 'Mirko', 'Miro', 'Miroslav', 'Mischa', 'Mitja', 'Morgan', 'Moritz', 'Morris', 'Morten',
+        'Nat', 'Nathan', 'Nathanael', 'Nathaniel', 'Nepomuk', 'Nero', 'Neron', 'Newton', 'Niccolo', 'Nicholas', 'Nick', 'Nicki', 'Nico', 'Nicola', 'Nicolai', 'Nicolaj', 'Nicolas', 'Niels', 'Nigel', 'Nikita', 'Niklas', 'Niklaus', 'Niko', 'Nikodemus', 'Nikolai', 'Nikolaus', 'Nils', 'Noah', 'Noel', 'Norbert', 'Norberto', 'Norman',
+        'Odin', 'Odo', 'Odysseus', 'Olaf', 'Oleg', 'Oliver', 'Olivier', 'Oliviero', 'Olof', 'Oluf', 'Omar', 'Omer', 'Orlando', 'Orson', 'Oskar', 'Osvaldo', 'Oswin', 'Otello', 'Othello', 'Otto', 'Ove', 'Owain', 'Owen',
+        'Paco', 'Paddy', 'Palmiro', 'Pancho', 'Paolo', 'Pascal', 'Pat', 'Patrice', 'Patricio', 'Patricius', 'Patrick', 'Patrizio', 'Patrizius', 'Paul', 'Paulin', 'Paulus', 'Pawel', 'Pedro', 'Peer', 'Pepe', 'Pepito', 'Peppone', 'Per', 'Percy', 'Perez', 'Pete', 'Peter', 'Phil', 'Philip', 'Philipp', 'Philippe', 'Philo', 'Piedro', 'Pier', 'Piero', 'Pierre', 'Piet', 'Pieter', 'Pietro', 'Pinkus', 'Pippin', 'Pitt', 'Pius', 'Placide', 'Placido', 'Placidus', 'Poldi',
+        'Quint', 'Quintin', 'Quintinus', 'Quintus', 'Quirin', 'Quirino',
+        'Raffaele', 'Raffaello', 'Raffaelo', 'Raimondo', 'Raimund', 'Raimundo', 'Rainer', 'Rainier', 'Ralf', 'Ralph', 'Ramon', 'Randolf', 'Randolph', 'Randy', 'Raoul', 'Raphael', 'Rasmus', 'Rasul', 'Raul', 'Ray', 'Raymond', 'Regnier', 'Reik', 'Reiner', 'Remo', 'Renato', 'Renatus', 'Renaud', 'Rene', 'Renja', 'Reto', 'Reynold', 'Ricardo', 'Riccardo', 'Rick', 'Ricky', 'Rico', 'Rinaldo', 'Robby', 'Robert', 'Roberto', 'Robin', 'Rocco', 'Rock', 'Rocky', 'Rod', 'Rodolfo', 'Rodolphe', 'Rodrigo', 'Rodrigue', 'Rodrique', 'Roger', 'Roland', 'Rolando', 'Rolf', 'Romain', 'Roman', 'Romano', 'Romeo', 'Romero', 'Ronald', 'Ronan', 'Ronny', 'Rory', 'Ross', 'Rowan', 'Rowland', 'Roy', 'Ruben', 'Rudolf', 'Rudolph', 'Ruggero', 'Rupert', 'Ryan',
+        'Salomon', 'Salomone', 'Salvador', 'Salvator', 'Salvatore', 'Sam', 'Sammy', 'Samuel', 'Samuele', 'Sander', 'Sandor', 'Sandro', 'Sandy', 'Sascha', 'Sauveur', 'Schorsch', 'Scipio', 'Scott', 'Sean', 'Sebastian', 'Sebastiano', 'Sebastien', 'Selim', 'Semjon', 'Sepp', 'Serenus', 'Serge', 'Sergej', 'Sergio', 'Sergius', 'Servatius', 'Severiano', 'Severin', 'Severo', 'Sidney', 'Sidonius', 'Silas', 'Silvain', 'Silvan', 'Silvano', 'Silvanus', 'Silverio', 'Silverius', 'Silvester', 'Silvestro', 'Silvio', 'Silvius', 'Simjon', 'Simon', 'Simone', 'Sinclair', 'Sixt', 'Sixtus', 'Slade', 'Solomon', 'Söncke', 'Sören', 'Spencer', 'Stan', 'Stanislaus', 'Stanislaw', 'Stanley', 'Stefan', 'Stefano', 'Steffen', 'Sten', 'Stephan', 'Stephen', 'Steve', 'Steven', 'Stewart', 'Stig', 'Stuart', 'Sven', 'Sylvain', 'Sylvester',
+        'Tam', 'Tarek', 'Tassilo', 'Tasso', 'Ted', 'Teddy', 'Teobaldo', 'Thaddäus', 'Theo', 'Theodor', 'Theodore', 'Thierry', 'Thimotheus', 'Thomas', 'Thommy', 'Thoralf', 'Thorben', 'Thore', 'Thorsten', 'Tiberio', 'Tiberius', 'Tibor', 'Till', 'Tim', 'Timmy', 'Timo', 'Timofej', 'Timon', 'Timoteo', 'Timothee', 'Timotheus', 'Timothy', 'Tin', 'Tito', 'Titus', 'Tizian', 'Tiziano', 'Tjade', 'Tjark', 'Tobi', 'Tobia', 'Tobiah', 'Tobias', 'Tobie', 'Tobis', 'Toby', 'Tom', 'Tommaso', 'Tommy', 'Toni', 'Tonio', 'Tony', 'Torben', 'Torin', 'Torsten', 'Tristan', 'Tycho', 'Tyler', 'Tyson',
+        'Udo', 'Ugo', 'Ugolino', 'Ulf', 'Uli', 'Ulli', 'Ulric', 'Ulrich', 'Ulrico', 'Umberto', 'Urbain', 'Urban', 'Urbano', 'Urias', 'Uriel', 'Ursus', 'Uwe',
+        'Valentiano', 'Valentin', 'Valentino', 'Valerian', 'Valerio', 'Valerius', 'Valery', 'Vasco', 'Veit', 'Veltin', 'Vernon', 'Vicente', 'Vico', 'Victor', 'Viktor', 'Vincent', 'Vincenzo', 'Vinzenez', 'Vinzenz', 'Virgil', 'Vitalis', 'Vito', 'Vittore', 'Vittoriano', 'Vittorio', 'Volker',
+        'Wallace', 'Walt', 'Warner', 'Warren', 'Wido', 'Wigand', 'Wilbur', 'Willi', 'William', 'Wilpert', 'Winston', 'Wolf', 'Wolfgang', 'Woodrow', 'Woody',
+        'Xaver',
+    );
+
+    protected static $firstNameFemale = array(
+        'Abby', 'Abelina', 'Abigail', 'Adelaide', 'Adeline', 'Adina', 'Adriana', 'Adrienne', 'Afra', 'Agatha', 'Agnes', 'Aida', 'Aimee', 'Aischa', 'Albertine', 'Alea', 'Aleksandra', 'Alena', 'Alessa', 'Alessandra', 'Alessia', 'Alexa', 'Alexandra', 'Alexia', 'Alexis', 'Alice', 'Alicia', 'Alida', 'Alina', 'Aline', 'Alisa', 'Alissa', 'Alisson', 'Amabella', 'Amadea', 'Amanda', 'Amelia', 'Amelie', 'Amina', 'Amy', 'Ana', 'Anastasia', 'Andrea', 'Andrina', 'Anette', 'Angela', 'Angelika', 'Angelina', 'Angelique', 'Anina', 'Anine', 'Anita', 'Anja', 'Anjalie', 'Anke', 'Ann', 'Anna', 'Annabel', 'Annabell', 'Annabella', 'Annabelle', 'Anne', 'Annett', 'Annette', 'Annika', 'Annina', 'Antje', 'Antoinette', 'Antonella', 'Antonia', 'Arabella', 'Ariadne', 'Ariana', 'Ariane', 'Arianna', 'Ariella', 'Arielle', 'Arlene', 'Arlette', 'Arwenna', 'Ashley', 'Asta', 'Astrid', 'Audrey', 'Aurelia',
+        'Barbara', 'Bärbel', 'Bastiane', 'Bea', 'Beata', 'Beatrice', 'Beatrix', 'Becky', 'Belinda', 'Bella', 'Bellana', 'Belle', 'Benedikta', 'Benita', 'Bente', 'Beppina', 'Berenike', 'Berit', 'Bernadett', 'Bernadette', 'Bernadine', 'Betina', 'Betsy', 'Bettina', 'Betty', 'Bianca', 'Bianka', 'Bibiana', 'Bibiane', 'Birgit', 'Birgitt', 'Bodil', 'Bridget', 'Brigitta', 'Brigitte', 'Britta',
+        'Caitlin', 'Cameron', 'Camilla', 'Camille', 'Cammy', 'Cara', 'Carin', 'Carina', 'Carinna', 'Carla', 'Carmela', 'Carmelia', 'Carmen', 'Carol', 'Carola', 'Carole', 'Carolin', 'Carolina', 'Caroline', 'Carolyn', 'Carolyne', 'Cassandra', 'Cassie', 'Catalin', 'Caterina', 'Catharina', 'Catherine', 'Cathrin', 'Cathrine', 'Cathy', 'Catina', 'Catrin', 'Catriona', 'Cecile', 'Cecilia', 'Cecilie', 'Celeste', 'Celestine', 'Celina', 'Celine', 'Chantal', 'Charleen', 'Charlotte', 'Chatrina', 'Chelsea', 'Chiara', 'Chloe', 'Chrissy', 'Christa', 'Christiana', 'Christiane', 'Christin', 'Christina', 'Christine', 'Chyna', 'Ciara', 'Cinderella', 'Cindy', 'Cinja', 'Cira', 'Claire', 'Clara', 'Clarissa', 'Claudette', 'Claudia', 'Claudine', 'Clea', 'Cleannis', 'Clementia', 'Clementine', 'Cleo', 'Clio', 'Cliona', 'Clodia', 'Cloris', 'Coletta', 'Colette', 'Connie', 'Conny', 'Constance', 'Constanze', 'Cora', 'Coral', 'Coralie', 'Cordelia', 'Cordula', 'Corin', 'Corina', 'Corinna', 'Corinne', 'Cornelia', 'Cosette', 'Cosima', 'Cynthia',
+        'Daisy', 'Dajana', 'Daliah', 'Damaris', 'Damia', 'Damiana', 'Dana', 'Dania', 'Danica', 'Daniela', 'Daniele', 'Daniella', 'Danielle', 'Danja', 'Daphne', 'Darcie', 'Daria', 'Darina', 'Dawn', 'Dayna', 'Debbie', 'Debby', 'Debora', 'Deborah', 'Deetya', 'Delia', 'Delphine', 'Dena', 'Denise', 'Desdemona', 'Desideria', 'Desiree', 'Diana', 'Diane', 'Didina', 'Dina', 'Dinah', 'Dolly', 'Dolores', 'Domenica', 'Dominika', 'Dominique', 'Donna', 'Dora', 'Doreen', 'Dorina', 'Doris', 'Dorit', 'Doro', 'Dorothea', 'Dorothee', 'Dorothy', 'Dunja',
+        'Ebony', 'Edda', 'Edita', 'Edvige', 'Edwina', 'Eike', 'Eila', 'Eileen', 'Ela', 'Elaine', 'Eleanor', 'Elektra', 'Elena', 'Eleonora', 'Eleonore', 'Eliane', 'Elisa', 'Elisabeth', 'Elise', 'Elizabeth', 'Elke', 'Ella', 'Ellen', 'Elly', 'Eloise', 'Elsa', 'Elsbeth', 'Elvira', 'Elvire', 'Emanuela', 'Emanuelle', 'Emilia', 'Emilie', 'Emily', 'Emma', 'Enrica', 'Enya', 'Erika', 'Erin', 'Ernesta', 'Ernestina', 'Ernestine', 'Esmerelda', 'Esra', 'Estella', 'Estelle', 'Ester', 'Esther', 'Etiennette', 'Eudoxia', 'Eugenia', 'Eunike', 'Euphemia', 'Euphrasia', 'Eusebia', 'Eva', 'Evangelina', 'Evania', 'Eve', 'Evelien', 'Evelin', 'Eveline', 'Evelyn', 'Evelyne', 'Evette', 'Evi', 'Evita',
+        'Fabiane', 'Fabienne', 'Fabiola', 'Faith', 'Fanny', 'Farrah', 'Fatima', 'Faustina', 'Faustine', 'Fay', 'Faye', 'Faylinn', 'Federica', 'Fedora', 'Fee', 'Feli', 'Felice', 'Felicia', 'Felicitas', 'Felicity', 'Felizitas', 'Feodora', 'Fergie', 'Fidelia', 'Filia', 'Filiz', 'Finetta', 'Finja', 'Fiona', 'Fjodora', 'Flavia', 'Fleur', 'Fleur', 'Flo', 'Flora', 'Florence', 'Florentina', 'Florentine', 'Floria', 'Floriane', 'Florida', 'Florinda', 'Floris', 'Fortuna', 'Frances', 'Francesca', 'Francisca', 'Franka', 'Franzi', 'Franziska', 'Frauke', 'Freya', 'Friederike',
+        'Gabriela', 'Gabriele', 'Gabriella', 'Gabrielle', 'Gaby', 'Gail', 'Galatea', 'Galina', 'Gazelle', 'Gela', 'Geneva', 'Genoveva', 'Georgette', 'Georgia', 'Georgina', 'Geraldene', 'Geraldine', 'Germain', 'Germaine', 'Germana', 'Ghita', 'Gianna', 'Gigi', 'Gill', 'Gillian', 'Gina', 'Ginevra', 'Ginger', 'Ginny', 'Giovanna', 'Gisela', 'Gisele', 'Gisella', 'Giselle', 'Gitta', 'Giulia', 'Giuliana', 'Giulietta', 'Giuseppa', 'Giuseppina', 'Giustina', 'Gladys', 'Gloria', 'Glory', 'Goldie', 'Goldy', 'Grace', 'Gratia', 'Gratiana', 'Grazia', 'Greta', 'Gretel', 'Gunda', 'Gwen', 'Gwenda', 'Gwendolin', 'Gwendolyn', 'Gypsy',
+        'Hannah', 'Hanne', 'Harmony', 'Harriet', 'Hazel', 'Hedi', 'Hedy', 'Heide', 'Heidi', 'Heike', 'Helen', 'Helena', 'Helene', 'Helin', 'Hella', 'Hemma', 'Henrietta', 'Henriette', 'Henrike', 'Hera', 'Hetty', 'Hilary', 'Hilda', 'Hilde', 'Holiday', 'Holli', 'Holly', 'Hope',
+        'Ilana', 'Ilaria', 'Iliana', 'Iljana', 'Ilka', 'Ilona', 'Ilse', 'Ilyssa', 'Imke', 'Ina', 'India', 'Indira', 'Indra', 'Ines', 'Inga', 'Inge', 'Ingrid', 'Inka', 'Inken', 'Innozentia', 'Iona', 'Ira', 'Irena', 'Irene', 'Irina', 'Iris', 'Irisa', 'Irma', 'Isabel', 'Isabell', 'Isabella', 'Isabelle', 'Isis', 'Iva', 'Ivana', 'Ivona', 'Ivonne',
+        'Jaclyn', 'Jacqueline', 'Jacqui', 'Jael', 'Jamari', 'Jan', 'Jana', 'Jane', 'Janet', 'Janette', 'Janin', 'Janina', 'Janine', 'Janique', 'Janna', 'Jannine', 'Jarla', 'Jasmin', 'Jasmina', 'Jasmine', 'Jeanette', 'Jeanine', 'Jeanne', 'Jeannette', 'Jeannine', 'Jekaterina', 'Jelena', 'Jenifer', 'Jenna', 'Jennelle', 'Jennessa', 'Jennie', 'Jennifer', 'Jenny', 'Jennyfer', 'Jess', 'Jessica', 'Jessie', 'Jessika', 'Jill', 'Joan', 'Joana', 'Joann', 'Joanna', 'Joelle', 'Johanna', 'Jolanda', 'Jona', 'Jordana', 'Jördis', 'Josee', 'Josefa', 'Josefina', 'Josefine', 'Josepha', 'Josephine', 'Josiane', 'Josie', 'Jovita', 'Joy', 'Joyce', 'Juana', 'Juanita', 'Judith', 'Judy', 'Julia', 'Juliana', 'Juliane', 'Julianne', 'Julie', 'Juliet', 'Juliette', 'July', 'June', 'Justina', 'Justine', 'Justise', 'Jutta',
+        'Kamilia', 'Kamilla', 'Karen', 'Karima', 'Karin', 'Karina', 'Karla', 'Karola', 'Karolin', 'Karolina', 'Karoline', 'Kassandra', 'Katalin', 'Katarina', 'Kate', 'Katharina', 'Katharine', 'Käthe', 'Katherina', 'Katherine', 'Kathleen', 'Kathrin', 'Kathrina', 'Kathryn', 'Kathy', 'Katinka', 'Katja', 'Katjana', 'Katrin', 'Katrina', 'Katrine', 'Kayla', 'Keala', 'Keelin', 'Kendra', 'Kerstin', 'Kiana', 'Kiara', 'Kim', 'Kira', 'Kirsten', 'Kirstin', 'Kita', 'Klara', 'Klarissa', 'Klaudia', 'Kleopatra', 'Kolina', 'Konstanze', 'Kora', 'Kordula', 'Kori', 'Kornelia', 'Krista', 'Kristiane', 'Kristin', 'Kristina', 'Kristine', 'Kyra',
+        'Laila', 'Lana', 'Lara', 'Laria', 'Larissa', 'Lätizia', 'Laurel', 'Lauren', 'Laurence', 'Laurentia', 'Lauretta', 'Lavina', 'Laya', 'Lea', 'Leah', 'Leandra', 'Lee', 'Leigh', 'Leila', 'Lena', 'Leona', 'Leonie', 'Leontine', 'Leopoldine', 'Lesley', 'Leslie', 'Levana', 'Levia', 'Lia', 'Liane', 'Libusa', 'Licia', 'Lidia', 'Liesa', 'Liesbeth', 'Liese', 'Liesel', 'Lilian', 'Liliane', 'Lilith', 'Lilli', 'Lillian', 'Lilo', 'Lily', 'Lina', 'Linda', 'Lioba', 'Lisa', 'Lisbeth', 'Lise', 'Lisette', 'Liv', 'Livana', 'Livia', 'Liz', 'Liza', 'Lizzie', 'Lola', 'Lora', 'Lorena', 'Loretta', 'Lori', 'Lorraine', 'Lotte', 'Lotus', 'Louise', 'Luana', 'Luca', 'Lucia', 'Luciana', 'Lucie', 'Lucy', 'Luigia', 'Luisa', 'Luise', 'Luna', 'Luzia', 'Lydia', 'Lydie', 'Lynette', 'Lynn',
+        'Maddalena', 'Madelaine', 'Madeleine', 'Madeline', 'Madison', 'Madita', 'Madleine', 'Madlen', 'Madlene', 'Mae', 'Magda', 'Magdalena', 'Maggy', 'Magret', 'Maia', 'Maike', 'Maiken', 'Mailin', 'Maja', 'Malea', 'Malee', 'Malin', 'Malina', 'Mandy', 'Manja', 'Manon', 'Manuela', 'Mara', 'Maraike', 'Marcella', 'Marcelle', 'Marcia', 'Mareike', 'Maren', 'Margaret', 'Margareta', 'Margarete', 'Margaretha', 'Margarita', 'Margaritha', 'Margherita', 'Margit', 'Margitta', 'Margot', 'Margret', 'Margreth', 'Marguerite', 'Maria', 'Mariam', 'Marian', 'Mariana', 'Marianna', 'Marianne', 'Marie', 'Marieke', 'Mariella', 'Marielle', 'Marietta', 'Marija', 'Marika', 'Marilies', 'Marilyn', 'Marina', 'Marion', 'Marisa', 'Marissa', 'Marita', 'Maritta', 'Marjorie', 'Marla', 'Marleen', 'Marlen', 'Marlena', 'Marlene', 'Marlies', 'Marlis', 'Marsha', 'Martha', 'Marthe', 'Martina', 'Mary', 'Maryse', 'Mascha', 'Mathilda', 'Mathilde', 'Matilde', 'Mattea', 'Maude', 'Maura', 'Maureen', 'Maximiliane', 'May', 'Maya', 'Meg', 'Megan', 'Meike', 'Melanie', 'Melia', 'Melina', 'Melinda', 'Melissa', 'Melitta', 'Melodie', 'Meloney', 'Mercedes', 'Meret', 'Meri', 'Merle', 'Merline', 'Meryem', 'Mia', 'Micaela', 'Michaela', 'Michele', 'Michelle', 'Milena', 'Milla', 'Milva', 'Mimi', 'Minerva', 'Minna', 'Mira', 'Mirabella', 'Mireille', 'Mirella', 'Mireya', 'Miriam', 'Mirijam', 'Mirjam', 'Moesha', 'Moira', 'Mona', 'Moni', 'Monica', 'Monika', 'Monique', 'Monja', 'Morgane', 'Muriel', 'Myriam',
+        'Nadin', 'Nadine', 'Nadja', 'Nadjana', 'Naemi', 'Nancy', 'Nanette', 'Nani', 'Naomi', 'Nastasja', 'Natalia', 'Natalie', 'Natanja', 'Natascha', 'Nathalie', 'Neeja', 'Nena', 'Neria', 'Nerine', 'Nicol', 'Nicola', 'Nicole', 'Nicoletta', 'Nicolette', 'Nike', 'Nikola', 'Nina', 'Ninja', 'Ninon', 'Noa', 'Noelle', 'Noemi', 'Noemie', 'Nora', 'Norma', 'Nuala',
+        'Olga', 'Olivia', 'Ophelia', 'Orania', 'Orla', 'Ornella', 'Orsola', 'Ottilie',
+        'Paloma', 'Pam', 'Pamela', 'Pandora', 'Paola', 'Paolina', 'Pascale', 'Pat', 'Patrice', 'Patricia', 'Patrizia', 'Patsy', 'Patty', 'Paula', 'Paulette', 'Paulina', 'Pauline', 'Penelope', 'Pepita', 'Petra', 'Philine', 'Philippa', 'Philomele', 'Philomena', 'Phoebe', 'Phyllis', 'Pia', 'Pier', 'Prica', 'Prisca', 'Priscilla', 'Priscille', 'Priska',
+        'Rachel', 'Rachel', 'Rachelle', 'Radomila', 'Rafaela', 'Raffaela', 'Raffaella', 'Ragna', 'Rahel', 'Raja', 'Ramona', 'Raphaela', 'Raquel', 'Rebecca', 'Rebekka', 'Regina', 'Regine', 'Reisha', 'Renata', 'Renate', 'Renee', 'Resi', 'Rhea', 'Rhoda', 'Rhonda', 'Ricarda', 'Riccarda', 'Rike', 'Rita', 'Roberta', 'Romana', 'Romina', 'Romy', 'Ronja', 'Rosa', 'Rosalia', 'Rosalie', 'Rosalinda', 'Rosalinde', 'Rosaline', 'Rose', 'Roseline', 'Rosetta', 'Rosette', 'Rosi', 'Rosina', 'Rosine', 'Rossana', 'Roswitha', 'Roxana', 'Roxane', 'Roxanne', 'Roxy', 'Rubina', 'Ruth',
+        'Sabine', 'Sabrina', 'Sahra', 'Sally', 'Salome', 'Salvina', 'Samanta', 'Samantha', 'Samira', 'Sandra', 'Sandrina', 'Sandrine', 'Sandy', 'Sanne', 'Sanya', 'Saphira', 'Sara', 'Sarah', 'Sarina', 'Sascha', 'Saskia', 'Scarlet', 'Scarlett', 'Schirin', 'Selina', 'Selma', 'Serafina', 'Seraina', 'Seraphin', 'Seraphina', 'Seraphine', 'Serena', 'Severina', 'Severine', 'Shana', 'Shanaya', 'Shantala', 'Shari', 'Sharlene', 'Sharon', 'Sheena', 'Sheila', 'Sheryl', 'Shirin', 'Shirley', 'Shirlyn', 'Sibilla', 'Sibyl', 'Sibylle', 'Siegrid', 'Sigrid', 'Sigrun', 'Silja', 'Silke', 'Silvana', 'Silvia', 'Silviane', 'Simona', 'Simone', 'Simonette', 'Simonne', 'Sina', 'Sindy', 'Sinja', 'Sissy', 'Skyla', 'Smarula', 'Smilla', 'Sofia', 'Sofie', 'Sonia', 'Sonja', 'Sonnele', 'Sonya', 'Sophia', 'Sophie', 'Soraya', 'Stefanie', 'Steffi', 'Stella', 'Stephanie', 'Sumehra', 'Summer', 'Susan', 'Susanna', 'Susanne', 'Susi', 'Suzan', 'Suzanne', 'Suzette', 'Svea', 'Svenja', 'Swane', 'Sybilla', 'Sybille', 'Sydney', 'Sylvana', 'Sylvia', 'Sylvie',
+        'Tabitha', 'Taissa', 'Tamara', 'Tamina', 'Tania', 'Tanita', 'Tanja', 'Tara', 'Tatiana', 'Tatjana', 'Taya', 'Tecla', 'Telka', 'Teodora', 'Teona', 'Teresa', 'Terry', 'Tess', 'Tessa', 'Tessie', 'Thea', 'Thekla', 'Theodora', 'Theres', 'Theresa', 'Therese', 'Theresia', 'Tiana', 'Tiffany', 'Tilly', 'Timna', 'Tina', 'Tiziana', 'Tonja', 'Toril', 'Tosca', 'Tracey', 'Traudl', 'Trixi', 'Tycho', 'Tyra',
+        'Ulla', 'Ulli', 'Ulrica', 'Ulrike', 'Undine', 'Urania', 'Ursel', 'Ursina', 'Ursula', 'Ursule', 'Uschi', 'Uta', 'Ute',
+        'Valentina', 'Valentine', 'Valeria', 'Valerie', 'Valeska', 'Vanadis', 'Vanessa', 'Vanja', 'Varinka', 'Venetia', 'Vera', 'Verena', 'Verona', 'Veronica', 'Veronika', 'Veronique', 'Vesla', 'Vicky', 'Victoire', 'Victoria', 'Viki', 'Viktoria', 'Vilja', 'Viola', 'Violet', 'Violetta', 'Violette', 'Virginia', 'Virginie', 'Vittoria', 'Viviana', 'Viviane', 'Vivien', 'Vivienne', 'Vreneli', 'Vreni', 'Vroni',
+        'Wencke', 'Weneke', 'Wibke', 'Wilja', 'Willow', 'Wilma',
+    );
+
+    protected static $firstName = array(
+        'Abel', 'Abraham', 'Adalbero', 'Adam', 'Adamo', 'Adolfo', 'Adrian', 'Adriano', 'Adrianus', 'Adrien', 'Alain', 'Alajos', 'Alan', 'Albain', 'Alban', 'Albano', 'Alberto', 'Albin', 'Alec', 'Alejandro', 'Alessandro', 'Alessio', 'Alex', 'Alexander', 'Alexandre', 'Alexandros', 'Alexej', 'Alexis', 'Alfons', 'Alfonso', 'Aljoscha', 'Allan', 'Allen', 'Alois', 'Alon', 'Alonzo', 'Alphonse', 'Alwin', 'Amadeo', 'Amadeus', 'Amandus', 'Amos', 'Anatol', 'Anatole', 'Anatolij', 'Anders', 'Andi', 'Andor', 'Andre', 'Andreas', 'Andrej', 'Andrew', 'Andrijan', 'Andy', 'Angelus', 'Ansgar', 'Anthony', 'Antoine', 'Anton', 'Antonio', 'Araldo', 'Aram', 'Argus', 'Arjan', 'Armin', 'Arminio', 'Arnaldo', 'Arnault', 'Arndt', 'Arne', 'Arno', 'Arnold', 'Arrigo', 'Art', 'Arthur', 'Artur', 'Arturo', 'August', 'Auguste', 'Augustin', 'Aurelius', 'Axel',
+        'Balduin', 'Balthasar', 'Bardo', 'Barnabas', 'Barnard', 'Barney', 'Baruch', 'Basil', 'Basilius', 'Bastian', 'Bastien', 'Battista', 'Beatus', 'Beltrame', 'Beltran', 'Ben', 'Benedetto', 'Benedict', 'Benedikt', 'Bengt', 'Beniamino', 'Benignus', 'Benito', 'Benjamin', 'Benjy', 'Bennett', 'Benno', 'Benny', 'Benoit', 'Beppe', 'Bernard', 'Bernardo', 'Bernd', 'Bernhard', 'Bernie', 'Bert', 'Berthold', 'Bertoldo', 'Bertram', 'Bertrame', 'Bill', 'Billy', 'Birger', 'Bjarne', 'Björn', 'Bob', 'Bobby', 'Bodo', 'Bonifatius', 'Boris', 'Bosco', 'Brendan', 'Brian', 'Bruno', 'Bryan', 'Burkhard',
+        'Camillo', 'Camilo', 'Carl', 'Carlo', 'Carlos', 'Carol', 'Carsten', 'Cäsar', 'Casimir', 'Caspar', 'Cecil', 'Ceddric', 'Cedric', 'Celestino', 'Charles', 'Charlie', 'Chico', 'Chip', 'Chris', 'Christian', 'Christoph', 'Christophe', 'Christopher', 'Christy', 'Chuck', 'Cian', 'Cillian', 'Clarence', 'Clark', 'Clas', 'Claude', 'Claudio', 'Claudius', 'Claus', 'Clayton', 'Clemens', 'Cliff', 'Clifford', 'Clint', 'Clinton', 'Cody', 'Colin', 'Collin', 'Conan', 'Connor', 'Conny', 'Conor', 'Conrad', 'Constantine', 'Cooper', 'Cordell', 'Cornelius', 'Corvinus', 'Cristobal', 'Curd', 'Curt', 'Curtis', 'Curtiz', 'Cyril', 'Cyrill',
+        'Damian', 'Damon', 'Dan', 'Daniel', 'Daniele', 'Danilo', 'Danny', 'Dario', 'Darius', 'Dave', 'David', 'Davide', 'Dawson', 'Dean', 'Demetrius', 'Denis', 'Deniz', 'Dennis', 'Derek', 'Desiderius', 'Detlef', 'Detlev', 'Dick', 'Diego', 'Dieter', 'Dimitrij', 'Dirk', 'Dolf', 'Domenico', 'Domingo', 'Dominic', 'Dominik', 'Dominikus', 'Dominique', 'Donald', 'Donatello', 'Donato', 'Donatus', 'Dorian', 'Douglas', 'Dragan', 'Duarte', 'Duncan', 'Dylan',
+        'Earnest', 'Earvin', 'Eike', 'Eleasar', 'Elia', 'Elian', 'Elias', 'Elijah', 'Ellison', 'Elmar', 'Elroy', 'Emanuel', 'Emanuele', 'Emil', 'Emile', 'Emilian', 'Emiliano', 'Emilio', 'Emmanuel', 'Endrik', 'Enrico', 'Enrique', 'Enzo', 'Ephraim', 'Erasmus', 'Eric', 'Erik', 'Ermanno', 'Ernest', 'Ernestin', 'Ernesto', 'Eros', 'Errol', 'Etienne', 'Eugen', 'Eugene', 'Eugenio', 'Eusebius', 'Everett', 'Ezra',
+        'Fabiano', 'Fabien', 'Fabio', 'Fabius', 'Fabrice', 'Fabricius', 'Fabrizio', 'Falco', 'Falk', 'Falko', 'Faruk', 'Faustus', 'Favian', 'Federico', 'Federigo', 'Fedor', 'Felice', 'Feliciano', 'Felicien', 'Felipe', 'Felix', 'Felton', 'Feodor', 'Ferdinand', 'Fergus', 'Fernand', 'Fernando', 'Ferrante', 'Ferris', 'Fidel', 'Fidelio', 'Fidelis', 'Fidelius', 'Filippo', 'Finan', 'Finn', 'Fiore', 'Fjodor', 'Flavian', 'Flemming', 'Fletcher', 'Flint', 'Florens', 'Florentin', 'Florian', 'Florin', 'Florus', 'Floyd', 'Forrest', 'Forrester', 'Forster', 'Foster', 'Fox', 'Francesco', 'Francis', 'Francisco', 'Franco', 'Francois', 'Franek', 'Frank', 'Frankie', 'Franklin', 'Franziskus', 'Frasier', 'Frayne', 'Fred', 'Freddy', 'Frederic', 'Frederick', 'Frederik', 'Freeman', 'Fremont', 'Fridericus', 'Fridolin', 'Friedel', 'Frye',
+        'Gabriel', 'Gaetan', 'Gaetano', 'Gallus', 'Garcia', 'Garfield', 'Garin', 'Garnier', 'Garrick', 'Garrison', 'Garron', 'Garry', 'Garson', 'Gaspar', 'Gaspard', 'Gaspare', 'Gaston', 'Gastonne', 'Gates', 'Gauthier', 'Gavin', 'Gene', 'Geoffrey', 'Geoffroy', 'Geordi', 'Georg', 'George', 'Georges', 'Gerald', 'Geraldo', 'Gerard', 'Geraud', 'Gerd', 'Gereon', 'Germain', 'German', 'Germano', 'Gernot', 'Gerold', 'Geronimo', 'Gerrit', 'Gerry', 'Gert', 'Gerulf', 'Gerwin', 'Giacomo', 'Gian', 'Giancarlo', 'Gianni', 'Gibson', 'Gideon', 'Gil', 'Gilbert', 'Gilberto', 'Gilles', 'Gillian', 'Gino', 'Gioacchino', 'Giorgio', 'Giovanni', 'Giraldo', 'Gisbert', 'Gitano', 'Giuliano', 'Giulio', 'Giuseppe', 'Giusto', 'Glen', 'Glenn', 'Goliath', 'Goran', 'Gordon', 'Gordy', 'Goswin', 'Götz', 'Graciano', 'Graham', 'Grayson', 'Greg', 'Gregg', 'Gregoire', 'Gregor', 'Gregory', 'Griffin', 'Grover', 'Gualtier', 'Gualtiero', 'Guglielmo', 'Guido', 'Guillaume', 'Guillermo', 'Gunnar', 'Gunter', 'Günter', 'Gunther', 'Günther', 'Gus', 'Gustavo', 'Gustl', 'Gutierre', 'Guy',
+        'Hajo', 'Hamilton', 'Hamlet', 'Hampton', 'Hanley', 'Hannes', 'Hans', 'Harald', 'Hardy', 'Harley', 'Harlow', 'Harold', 'Haroun', 'Harrison', 'Harry', 'Harvey', 'Hasso', 'Hauke', 'Havel', 'Hector', 'Heiko', 'Heiner', 'Heino', 'Hektor', 'Helge', 'Helmut', 'Helmuth', 'Hendrick', 'Hendrik', 'Hennes', 'Henning', 'Henri', 'Henrick', 'Henrik', 'Henry', 'Herald', 'Herbie', 'Hercules', 'Herold', 'Herwig', 'Hieronymus', 'Hilarius', 'Holger', 'Holm', 'Homer', 'Horace', 'Horatio', 'Horaz', 'Howard', 'Howie', 'Hugh', 'Hugo', 'Humphrey', 'Hunter',
+        'Ignatius', 'Ignaz', 'Ignazio', 'Igor', 'Ilian', 'Ilja', 'Immanuel', 'Ingo', 'Ingolf', 'Ingvar', 'Irenäus', 'Irvin', 'Irving', 'Irwin', 'Isaac', 'Isaak', 'Isai', 'Isaiah', 'Isidor', 'Istvan', 'Ivan', 'Ivo',
+        'Jackson', 'Jacky', 'Jacob', 'Jacques', 'Jacquin', 'Jadon', 'Jago', 'Jaime', 'Jake', 'Jakob', 'Jamal', 'James', 'Jan', 'Janis', 'Jannes', 'Jannik', 'Janning', 'Janos', 'Janosch', 'Jaques', 'Jared', 'Jarik', 'Jarl', 'Jarno', 'Jaro', 'Jaromir', 'Jarrett', 'Jascha', 'Jason', 'Jasper', 'Jay', 'Jean', 'Jeff', 'Jefferson', 'Jeffrey', 'Jendrick', 'Jens', 'Jered', 'Jeremiah', 'Jeremias', 'Jeremie', 'Jeremy', 'Jerold', 'Jerom', 'Jerome', 'Jerrick', 'Jerry', 'Jesaja', 'Jesko', 'Jesse', 'Jim', 'Jimmy', 'Jirko', 'Jo', 'Joakim', 'Joao', 'Joaquin', 'Joe', 'Joel', 'Joey', 'John', 'Johnny', 'Jokim', 'Jonah', 'Jonas', 'Jonathan', 'Jonny', 'Jordan', 'Jordano', 'Jörg', 'Jorge', 'Jose', 'Josef', 'Joseph', 'Josh', 'Joshua', 'Josias', 'Jost', 'Josua', 'Josue', 'Jourdain', 'Juan', 'Juanito', 'Jud', 'Jules', 'Julien', 'Julio', 'Julius', 'Jürgen', 'Jurij', 'Justin', 'Justinian', 'Justus',
+        'Kain', 'Kaj', 'Kajetan', 'Kallistus', 'Karsten', 'Kasimir', 'Kaspar', 'Keamon', 'Keith', 'Ken', 'Kenan', 'Kenneth', 'Keno', 'Kersten', 'Kerwin', 'Kevin', 'Kian', 'Kilian', 'Kim', 'Kiran', 'Klaas', 'Klaus', 'Klemens', 'Kleopas', 'Knud', 'Knut', 'Kolja', 'Konrad', 'Konstantin', 'Korbin', 'Korbinian', 'Kordt', 'Kristian', 'Kristof', 'Kristoffer', 'Kuno', 'Kurt', 'Kyros', 'Lajos',
+        'Lambert', 'Lamberto', 'Larry', 'Lars', 'Laslo', 'Lasse', 'Laurent', 'Laurente', 'Laurentius', 'Laurenz', 'Laurenzo', 'Lawrence', 'Lazarus', 'Lazlo', 'Leander', 'Lee', 'Leif', 'Leigh', 'Lennart', 'Lenny', 'Lenz', 'Leo', 'Leon', 'Leonard', 'Leonardo', 'Leonce', 'Leone', 'Leonello', 'Leonhard', 'Leopold', 'Leopoldo', 'Leroy', 'Lesley', 'Lester', 'Leverett', 'Levi', 'Lew', 'Lewis', 'Lex', 'Liborius', 'Lienhard', 'Linus', 'Lion', 'Lionel', 'LLoyd', 'Lobo', 'Loic', 'Lorenz', 'Lorenzo', 'Loris', 'Lothaire', 'Lou', 'Louie', 'Louis', 'Lovis', 'Luc', 'Luca', 'Lucan', 'Lucas', 'Luciano', 'Lucien', 'Lucius', 'Ludovico', 'Ludwig', 'Luigi', 'Luis', 'Lukas', 'Luke', 'Lutger', 'Luther', 'Lutz', 'Lyonel',
+        'Maik', 'Malte', 'Malwin', 'Manolito', 'Manolo', 'Manuel', 'Marc', 'Marcel', 'Marcello', 'Marcellus', 'Marco', 'Marcus', 'Marek', 'Marian', 'Marin', 'Marino', 'Marinus', 'Mario', 'Marius', 'Mark', 'Markus', 'Marlon', 'Maro', 'Marten', 'Martin', 'Marvin', 'Massimo', 'Mathias', 'Mathieu', 'Mathis', 'Matt', 'Matteo', 'Matthäus', 'Matthes', 'Matthew', 'Matthias', 'Matthieu', 'Maurice', 'Mauritius', 'Mauritz', 'Maurizio', 'Mauro', 'Maurus', 'Max', 'Maxence', 'Maxi', 'Maxime', 'Maximilian', 'Maximilien', 'Melchior', 'Merlin', 'Michael', 'Michail', 'Michel', 'Michele', 'Mick', 'Mickey', 'Miguel', 'Mika', 'Mikael', 'Mike', 'Mikel', 'Miklos', 'Milan', 'Milo', 'Mirko', 'Miro', 'Miroslav', 'Mischa', 'Mitja', 'Morgan', 'Moritz', 'Morris', 'Morten',
+        'Nat', 'Nathan', 'Nathanael', 'Nathaniel', 'Nepomuk', 'Nero', 'Neron', 'Newton', 'Niccolo', 'Nicholas', 'Nick', 'Nicki', 'Nico', 'Nicola', 'Nicolai', 'Nicolaj', 'Nicolas', 'Niels', 'Nigel', 'Nikita', 'Niklas', 'Niklaus', 'Niko', 'Nikodemus', 'Nikolai', 'Nikolaus', 'Nils', 'Noah', 'Noel', 'Norbert', 'Norberto', 'Norman',
+        'Odin', 'Odo', 'Odysseus', 'Olaf', 'Oleg', 'Oliver', 'Olivier', 'Oliviero', 'Olof', 'Oluf', 'Omar', 'Omer', 'Orlando', 'Orson', 'Oskar', 'Osvaldo', 'Oswin', 'Otello', 'Othello', 'Otto', 'Ove', 'Owain', 'Owen',
+        'Paco', 'Paddy', 'Palmiro', 'Pancho', 'Paolo', 'Pascal', 'Pat', 'Patrice', 'Patricio', 'Patricius', 'Patrick', 'Patrizio', 'Patrizius', 'Paul', 'Paulin', 'Paulus', 'Pawel', 'Pedro', 'Peer', 'Pepe', 'Pepito', 'Peppone', 'Per', 'Percy', 'Perez', 'Pete', 'Peter', 'Phil', 'Philip', 'Philipp', 'Philippe', 'Philo', 'Piedro', 'Pier', 'Piero', 'Pierre', 'Piet', 'Pieter', 'Pietro', 'Pinkus', 'Pippin', 'Pitt', 'Pius', 'Placide', 'Placido', 'Placidus', 'Poldi',
+        'Quint', 'Quintin', 'Quintinus', 'Quintus', 'Quirin', 'Quirino',
+        'Raffaele', 'Raffaello', 'Raffaelo', 'Raimondo', 'Raimund', 'Raimundo', 'Rainer', 'Rainier', 'Ralf', 'Ralph', 'Ramon', 'Randolf', 'Randolph', 'Randy', 'Raoul', 'Raphael', 'Rasmus', 'Rasul', 'Raul', 'Ray', 'Raymond', 'Regnier', 'Reik', 'Reiner', 'Remo', 'Renato', 'Renatus', 'Renaud', 'Rene', 'Renja', 'Reto', 'Reynold', 'Ricardo', 'Riccardo', 'Rick', 'Ricky', 'Rico', 'Rinaldo', 'Robby', 'Robert', 'Roberto', 'Robin', 'Rocco', 'Rock', 'Rocky', 'Rod', 'Rodolfo', 'Rodolphe', 'Rodrigo', 'Rodrigue', 'Rodrique', 'Roger', 'Roland', 'Rolando', 'Rolf', 'Romain', 'Roman', 'Romano', 'Romeo', 'Romero', 'Ronald', 'Ronan', 'Ronny', 'Rory', 'Ross', 'Rowan', 'Rowland', 'Roy', 'Ruben', 'Rudolf', 'Rudolph', 'Ruggero', 'Rupert', 'Ryan',
+        'Salomon', 'Salomone', 'Salvador', 'Salvator', 'Salvatore', 'Sam', 'Sammy', 'Samuel', 'Samuele', 'Sander', 'Sandor', 'Sandro', 'Sandy', 'Sascha', 'Sauveur', 'Schorsch', 'Scipio', 'Scott', 'Sean', 'Sebastian', 'Sebastiano', 'Sebastien', 'Selim', 'Semjon', 'Sepp', 'Serenus', 'Serge', 'Sergej', 'Sergio', 'Sergius', 'Servatius', 'Severiano', 'Severin', 'Severo', 'Sidney', 'Sidonius', 'Silas', 'Silvain', 'Silvan', 'Silvano', 'Silvanus', 'Silverio', 'Silverius', 'Silvester', 'Silvestro', 'Silvio', 'Silvius', 'Simjon', 'Simon', 'Simone', 'Sinclair', 'Sixt', 'Sixtus', 'Slade', 'Solomon', 'Söncke', 'Sören', 'Spencer', 'Stan', 'Stanislaus', 'Stanislaw', 'Stanley', 'Stefan', 'Stefano', 'Steffen', 'Sten', 'Stephan', 'Stephen', 'Steve', 'Steven', 'Stewart', 'Stig', 'Stuart', 'Sven', 'Sylvain', 'Sylvester',
+        'Tam', 'Tarek', 'Tassilo', 'Tasso', 'Ted', 'Teddy', 'Teobaldo', 'Thaddäus', 'Theo', 'Theodor', 'Theodore', 'Thierry', 'Thimotheus', 'Thomas', 'Thommy', 'Thoralf', 'Thorben', 'Thore', 'Thorsten', 'Tiberio', 'Tiberius', 'Tibor', 'Till', 'Tim', 'Timmy', 'Timo', 'Timofej', 'Timon', 'Timoteo', 'Timothee', 'Timotheus', 'Timothy', 'Tin', 'Tito', 'Titus', 'Tizian', 'Tiziano', 'Tjade', 'Tjark', 'Tobi', 'Tobia', 'Tobiah', 'Tobias', 'Tobie', 'Tobis', 'Toby', 'Tom', 'Tommaso', 'Tommy', 'Toni', 'Tonio', 'Tony', 'Torben', 'Torin', 'Torsten', 'Tristan', 'Tycho', 'Tyler', 'Tyson',
+        'Udo', 'Ugo', 'Ugolino', 'Ulf', 'Uli', 'Ulli', 'Ulric', 'Ulrich', 'Ulrico', 'Umberto', 'Urbain', 'Urban', 'Urbano', 'Urias', 'Uriel', 'Ursus', 'Uwe',
+        'Valentiano', 'Valentin', 'Valentino', 'Valerian', 'Valerio', 'Valerius', 'Valery', 'Vasco', 'Veit', 'Veltin', 'Vernon', 'Vicente', 'Vico', 'Victor', 'Viktor', 'Vincent', 'Vincenzo', 'Vinzenez', 'Vinzenz', 'Virgil', 'Vitalis', 'Vito', 'Vittore', 'Vittoriano', 'Vittorio', 'Volker',
+        'Wallace', 'Walt', 'Warner', 'Warren', 'Wido', 'Wigand', 'Wilbur', 'Willi', 'William', 'Wilpert', 'Winston', 'Wolf', 'Wolfgang', 'Woodrow', 'Woody',
+        'Xaver',
+        'Abby', 'Abelina', 'Abigail', 'Adelaide', 'Adeline', 'Adina', 'Adriana', 'Adrienne', 'Afra', 'Agatha', 'Agnes', 'Aida', 'Aimee', 'Aischa', 'Albertine', 'Alea', 'Aleksandra', 'Alena', 'Alessa', 'Alessandra', 'Alessia', 'Alexa', 'Alexandra', 'Alexia', 'Alexis', 'Alice', 'Alicia', 'Alida', 'Alina', 'Aline', 'Alisa', 'Alissa', 'Alisson', 'Amabella', 'Amadea', 'Amanda', 'Amelia', 'Amelie', 'Amina', 'Amy', 'Ana', 'Anastasia', 'Andrea', 'Andrina', 'Anette', 'Angela', 'Angelika', 'Angelina', 'Angelique', 'Anina', 'Anine', 'Anita', 'Anja', 'Anjalie', 'Anke', 'Ann', 'Anna', 'Annabel', 'Annabell', 'Annabella', 'Annabelle', 'Anne', 'Annett', 'Annette', 'Annika', 'Annina', 'Antje', 'Antoinette', 'Antonella', 'Antonia', 'Arabella', 'Ariadne', 'Ariana', 'Ariane', 'Arianna', 'Ariella', 'Arielle', 'Arlene', 'Arlette', 'Arwenna', 'Ashley', 'Asta', 'Astrid', 'Audrey', 'Aurelia',
+        'Barbara', 'Bärbel', 'Bastiane', 'Bea', 'Beata', 'Beatrice', 'Beatrix', 'Becky', 'Belinda', 'Bella', 'Bellana', 'Belle', 'Benedikta', 'Benita', 'Bente', 'Beppina', 'Berenike', 'Berit', 'Bernadett', 'Bernadette', 'Bernadine', 'Betina', 'Betsy', 'Bettina', 'Betty', 'Bianca', 'Bianka', 'Bibiana', 'Bibiane', 'Birgit', 'Birgitt', 'Bodil', 'Bridget', 'Brigitta', 'Brigitte', 'Britta',
+        'Caitlin', 'Cameron', 'Camilla', 'Camille', 'Cammy', 'Cara', 'Carin', 'Carina', 'Carinna', 'Carla', 'Carmela', 'Carmelia', 'Carmen', 'Carol', 'Carola', 'Carole', 'Carolin', 'Carolina', 'Caroline', 'Carolyn', 'Carolyne', 'Cassandra', 'Cassie', 'Catalin', 'Caterina', 'Catharina', 'Catherine', 'Cathrin', 'Cathrine', 'Cathy', 'Catina', 'Catrin', 'Catriona', 'Cecile', 'Cecilia', 'Cecilie', 'Celeste', 'Celestine', 'Celina', 'Celine', 'Chantal', 'Charleen', 'Charlotte', 'Chatrina', 'Chelsea', 'Chiara', 'Chloe', 'Chrissy', 'Christa', 'Christiana', 'Christiane', 'Christin', 'Christina', 'Christine', 'Chyna', 'Ciara', 'Cinderella', 'Cindy', 'Cinja', 'Cira', 'Claire', 'Clara', 'Clarissa', 'Claudette', 'Claudia', 'Claudine', 'Clea', 'Cleannis', 'Clementia', 'Clementine', 'Cleo', 'Clio', 'Cliona', 'Clodia', 'Cloris', 'Coletta', 'Colette', 'Connie', 'Conny', 'Constance', 'Constanze', 'Cora', 'Coral', 'Coralie', 'Cordelia', 'Cordula', 'Corin', 'Corina', 'Corinna', 'Corinne', 'Cornelia', 'Cosette', 'Cosima', 'Cynthia',
+        'Daisy', 'Dajana', 'Daliah', 'Damaris', 'Damia', 'Damiana', 'Dana', 'Dania', 'Danica', 'Daniela', 'Daniele', 'Daniella', 'Danielle', 'Danja', 'Daphne', 'Darcie', 'Daria', 'Darina', 'Dawn', 'Dayna', 'Debbie', 'Debby', 'Debora', 'Deborah', 'Deetya', 'Delia', 'Delphine', 'Dena', 'Denise', 'Desdemona', 'Desideria', 'Desiree', 'Diana', 'Diane', 'Didina', 'Dina', 'Dinah', 'Dolly', 'Dolores', 'Domenica', 'Dominika', 'Dominique', 'Donna', 'Dora', 'Doreen', 'Dorina', 'Doris', 'Dorit', 'Doro', 'Dorothea', 'Dorothee', 'Dorothy', 'Dunja',
+        'Ebony', 'Edda', 'Edita', 'Edvige', 'Edwina', 'Eike', 'Eila', 'Eileen', 'Ela', 'Elaine', 'Eleanor', 'Elektra', 'Elena', 'Eleonora', 'Eleonore', 'Eliane', 'Elisa', 'Elisabeth', 'Elise', 'Elizabeth', 'Elke', 'Ella', 'Ellen', 'Elly', 'Eloise', 'Elsa', 'Elsbeth', 'Elvira', 'Elvire', 'Emanuela', 'Emanuelle', 'Emilia', 'Emilie', 'Emily', 'Emma', 'Enrica', 'Enya', 'Erika', 'Erin', 'Ernesta', 'Ernestina', 'Ernestine', 'Esmerelda', 'Esra', 'Estella', 'Estelle', 'Ester', 'Esther', 'Etiennette', 'Eudoxia', 'Eugenia', 'Eunike', 'Euphemia', 'Euphrasia', 'Eusebia', 'Eva', 'Evangelina', 'Evania', 'Eve', 'Evelien', 'Evelin', 'Eveline', 'Evelyn', 'Evelyne', 'Evette', 'Evi', 'Evita',
+        'Fabiane', 'Fabienne', 'Fabiola', 'Faith', 'Fanny', 'Farrah', 'Fatima', 'Faustina', 'Faustine', 'Fay', 'Faye', 'Faylinn', 'Federica', 'Fedora', 'Fee', 'Feli', 'Felice', 'Felicia', 'Felicitas', 'Felicity', 'Felizitas', 'Feodora', 'Fergie', 'Fidelia', 'Filia', 'Filiz', 'Finetta', 'Finja', 'Fiona', 'Fjodora', 'Flavia', 'Fleur', 'Fleur', 'Flo', 'Flora', 'Florence', 'Florentina', 'Florentine', 'Floria', 'Floriane', 'Florida', 'Florinda', 'Floris', 'Fortuna', 'Frances', 'Francesca', 'Francisca', 'Franka', 'Franzi', 'Franziska', 'Frauke', 'Freya', 'Friederike',
+        'Gabriela', 'Gabriele', 'Gabriella', 'Gabrielle', 'Gaby', 'Gail', 'Galatea', 'Galina', 'Gazelle', 'Gela', 'Geneva', 'Genoveva', 'Georgette', 'Georgia', 'Georgina', 'Geraldene', 'Geraldine', 'Germain', 'Germaine', 'Germana', 'Ghita', 'Gianna', 'Gigi', 'Gill', 'Gillian', 'Gina', 'Ginevra', 'Ginger', 'Ginny', 'Giovanna', 'Gisela', 'Gisele', 'Gisella', 'Giselle', 'Gitta', 'Giulia', 'Giuliana', 'Giulietta', 'Giuseppa', 'Giuseppina', 'Giustina', 'Gladys', 'Gloria', 'Glory', 'Goldie', 'Goldy', 'Grace', 'Gratia', 'Gratiana', 'Grazia', 'Greta', 'Gretel', 'Gunda', 'Gwen', 'Gwenda', 'Gwendolin', 'Gwendolyn', 'Gypsy',
+        'Hannah', 'Hanne', 'Harmony', 'Harriet', 'Hazel', 'Hedi', 'Hedy', 'Heide', 'Heidi', 'Heike', 'Helen', 'Helena', 'Helene', 'Helin', 'Hella', 'Hemma', 'Henrietta', 'Henriette', 'Henrike', 'Hera', 'Hetty', 'Hilary', 'Hilda', 'Hilde', 'Holiday', 'Holli', 'Holly', 'Hope',
+        'Ilana', 'Ilaria', 'Iliana', 'Iljana', 'Ilka', 'Ilona', 'Ilse', 'Ilyssa', 'Imke', 'Ina', 'India', 'Indira', 'Indra', 'Ines', 'Inga', 'Inge', 'Ingrid', 'Inka', 'Inken', 'Innozentia', 'Iona', 'Ira', 'Irena', 'Irene', 'Irina', 'Iris', 'Irisa', 'Irma', 'Isabel', 'Isabell', 'Isabella', 'Isabelle', 'Isis', 'Iva', 'Ivana', 'Ivona', 'Ivonne',
+        'Jaclyn', 'Jacqueline', 'Jacqui', 'Jael', 'Jamari', 'Jan', 'Jana', 'Jane', 'Janet', 'Janette', 'Janin', 'Janina', 'Janine', 'Janique', 'Janna', 'Jannine', 'Jarla', 'Jasmin', 'Jasmina', 'Jasmine', 'Jeanette', 'Jeanine', 'Jeanne', 'Jeannette', 'Jeannine', 'Jekaterina', 'Jelena', 'Jenifer', 'Jenna', 'Jennelle', 'Jennessa', 'Jennie', 'Jennifer', 'Jenny', 'Jennyfer', 'Jess', 'Jessica', 'Jessie', 'Jessika', 'Jill', 'Joan', 'Joana', 'Joann', 'Joanna', 'Joelle', 'Johanna', 'Jolanda', 'Jona', 'Jordana', 'Jördis', 'Josee', 'Josefa', 'Josefina', 'Josefine', 'Josepha', 'Josephine', 'Josiane', 'Josie', 'Jovita', 'Joy', 'Joyce', 'Juana', 'Juanita', 'Judith', 'Judy', 'Julia', 'Juliana', 'Juliane', 'Julianne', 'Julie', 'Juliet', 'Juliette', 'July', 'June', 'Justina', 'Justine', 'Justise', 'Jutta',
+        'Kamilia', 'Kamilla', 'Karen', 'Karima', 'Karin', 'Karina', 'Karla', 'Karola', 'Karolin', 'Karolina', 'Karoline', 'Kassandra', 'Katalin', 'Katarina', 'Kate', 'Katharina', 'Katharine', 'Käthe', 'Katherina', 'Katherine', 'Kathleen', 'Kathrin', 'Kathrina', 'Kathryn', 'Kathy', 'Katinka', 'Katja', 'Katjana', 'Katrin', 'Katrina', 'Katrine', 'Kayla', 'Keala', 'Keelin', 'Kendra', 'Kerstin', 'Kiana', 'Kiara', 'Kim', 'Kira', 'Kirsten', 'Kirstin', 'Kita', 'Klara', 'Klarissa', 'Klaudia', 'Kleopatra', 'Kolina', 'Konstanze', 'Kora', 'Kordula', 'Kori', 'Kornelia', 'Krista', 'Kristiane', 'Kristin', 'Kristina', 'Kristine', 'Kyra',
+        'Laila', 'Lana', 'Lara', 'Laria', 'Larissa', 'Lätizia', 'Laurel', 'Lauren', 'Laurence', 'Laurentia', 'Lauretta', 'Lavina', 'Laya', 'Lea', 'Leah', 'Leandra', 'Lee', 'Leigh', 'Leila', 'Lena', 'Leona', 'Leonie', 'Leontine', 'Leopoldine', 'Lesley', 'Leslie', 'Levana', 'Levia', 'Lia', 'Liane', 'Libusa', 'Licia', 'Lidia', 'Liesa', 'Liesbeth', 'Liese', 'Liesel', 'Lilian', 'Liliane', 'Lilith', 'Lilli', 'Lillian', 'Lilo', 'Lily', 'Lina', 'Linda', 'Lioba', 'Lisa', 'Lisbeth', 'Lise', 'Lisette', 'Liv', 'Livana', 'Livia', 'Liz', 'Liza', 'Lizzie', 'Lola', 'Lora', 'Lorena', 'Loretta', 'Lori', 'Lorraine', 'Lotte', 'Lotus', 'Louise', 'Luana', 'Luca', 'Lucia', 'Luciana', 'Lucie', 'Lucy', 'Luigia', 'Luisa', 'Luise', 'Luna', 'Luzia', 'Lydia', 'Lydie', 'Lynette', 'Lynn',
+        'Maddalena', 'Madelaine', 'Madeleine', 'Madeline', 'Madison', 'Madita', 'Madleine', 'Madlen', 'Madlene', 'Mae', 'Magda', 'Magdalena', 'Maggy', 'Magret', 'Maia', 'Maike', 'Maiken', 'Mailin', 'Maja', 'Malea', 'Malee', 'Malin', 'Malina', 'Mandy', 'Manja', 'Manon', 'Manuela', 'Mara', 'Maraike', 'Marcella', 'Marcelle', 'Marcia', 'Mareike', 'Maren', 'Margaret', 'Margareta', 'Margarete', 'Margaretha', 'Margarita', 'Margaritha', 'Margherita', 'Margit', 'Margitta', 'Margot', 'Margret', 'Margreth', 'Marguerite', 'Maria', 'Mariam', 'Marian', 'Mariana', 'Marianna', 'Marianne', 'Marie', 'Marieke', 'Mariella', 'Marielle', 'Marietta', 'Marija', 'Marika', 'Marilies', 'Marilyn', 'Marina', 'Marion', 'Marisa', 'Marissa', 'Marita', 'Maritta', 'Marjorie', 'Marla', 'Marleen', 'Marlen', 'Marlena', 'Marlene', 'Marlies', 'Marlis', 'Marsha', 'Martha', 'Marthe', 'Martina', 'Mary', 'Maryse', 'Mascha', 'Mathilda', 'Mathilde', 'Matilde', 'Mattea', 'Maude', 'Maura', 'Maureen', 'Maximiliane', 'May', 'Maya', 'Meg', 'Megan', 'Meike', 'Melanie', 'Melia', 'Melina', 'Melinda', 'Melissa', 'Melitta', 'Melodie', 'Meloney', 'Mercedes', 'Meret', 'Meri', 'Merle', 'Merline', 'Meryem', 'Mia', 'Micaela', 'Michaela', 'Michele', 'Michelle', 'Milena', 'Milla', 'Milva', 'Mimi', 'Minerva', 'Minna', 'Mira', 'Mirabella', 'Mireille', 'Mirella', 'Mireya', 'Miriam', 'Mirijam', 'Mirjam', 'Moesha', 'Moira', 'Mona', 'Moni', 'Monica', 'Monika', 'Monique', 'Monja', 'Morgane', 'Muriel', 'Myriam',
+        'Nadin', 'Nadine', 'Nadja', 'Nadjana', 'Naemi', 'Nancy', 'Nanette', 'Nani', 'Naomi', 'Nastasja', 'Natalia', 'Natalie', 'Natanja', 'Natascha', 'Nathalie', 'Neeja', 'Nena', 'Neria', 'Nerine', 'Nicol', 'Nicola', 'Nicole', 'Nicoletta', 'Nicolette', 'Nike', 'Nikola', 'Nina', 'Ninja', 'Ninon', 'Noa', 'Noelle', 'Noemi', 'Noemie', 'Nora', 'Norma', 'Nuala',
+        'Olga', 'Olivia', 'Ophelia', 'Orania', 'Orla', 'Ornella', 'Orsola', 'Ottilie',
+        'Paloma', 'Pam', 'Pamela', 'Pandora', 'Paola', 'Paolina', 'Pascale', 'Pat', 'Patrice', 'Patricia', 'Patrizia', 'Patsy', 'Patty', 'Paula', 'Paulette', 'Paulina', 'Pauline', 'Penelope', 'Pepita', 'Petra', 'Philine', 'Philippa', 'Philomele', 'Philomena', 'Phoebe', 'Phyllis', 'Pia', 'Pier', 'Prica', 'Prisca', 'Priscilla', 'Priscille', 'Priska',
+        'Rachel', 'Rachel', 'Rachelle', 'Radomila', 'Rafaela', 'Raffaela', 'Raffaella', 'Ragna', 'Rahel', 'Raja', 'Ramona', 'Raphaela', 'Raquel', 'Rebecca', 'Rebekka', 'Regina', 'Regine', 'Reisha', 'Renata', 'Renate', 'Renee', 'Resi', 'Rhea', 'Rhoda', 'Rhonda', 'Ricarda', 'Riccarda', 'Rike', 'Rita', 'Roberta', 'Romana', 'Romina', 'Romy', 'Ronja', 'Rosa', 'Rosalia', 'Rosalie', 'Rosalinda', 'Rosalinde', 'Rosaline', 'Rose', 'Roseline', 'Rosetta', 'Rosette', 'Rosi', 'Rosina', 'Rosine', 'Rossana', 'Roswitha', 'Roxana', 'Roxane', 'Roxanne', 'Roxy', 'Rubina', 'Ruth',
+        'Sabine', 'Sabrina', 'Sahra', 'Sally', 'Salome', 'Salvina', 'Samanta', 'Samantha', 'Samira', 'Sandra', 'Sandrina', 'Sandrine', 'Sandy', 'Sanne', 'Sanya', 'Saphira', 'Sara', 'Sarah', 'Sarina', 'Sascha', 'Saskia', 'Scarlet', 'Scarlett', 'Schirin', 'Selina', 'Selma', 'Serafina', 'Seraina', 'Seraphin', 'Seraphina', 'Seraphine', 'Serena', 'Severina', 'Severine', 'Shana', 'Shanaya', 'Shantala', 'Shari', 'Sharlene', 'Sharon', 'Sheena', 'Sheila', 'Sheryl', 'Shirin', 'Shirley', 'Shirlyn', 'Sibilla', 'Sibyl', 'Sibylle', 'Siegrid', 'Sigrid', 'Sigrun', 'Silja', 'Silke', 'Silvana', 'Silvia', 'Silviane', 'Simona', 'Simone', 'Simonette', 'Simonne', 'Sina', 'Sindy', 'Sinja', 'Sissy', 'Skyla', 'Smarula', 'Smilla', 'Sofia', 'Sofie', 'Sonia', 'Sonja', 'Sonnele', 'Sonya', 'Sophia', 'Sophie', 'Soraya', 'Stefanie', 'Steffi', 'Stella', 'Stephanie', 'Sumehra', 'Summer', 'Susan', 'Susanna', 'Susanne', 'Susi', 'Suzan', 'Suzanne', 'Suzette', 'Svea', 'Svenja', 'Swane', 'Sybilla', 'Sybille', 'Sydney', 'Sylvana', 'Sylvia', 'Sylvie',
+        'Tabitha', 'Taissa', 'Tamara', 'Tamina', 'Tania', 'Tanita', 'Tanja', 'Tara', 'Tatiana', 'Tatjana', 'Taya', 'Tecla', 'Telka', 'Teodora', 'Teona', 'Teresa', 'Terry', 'Tess', 'Tessa', 'Tessie', 'Thea', 'Thekla', 'Theodora', 'Theres', 'Theresa', 'Therese', 'Theresia', 'Tiana', 'Tiffany', 'Tilly', 'Timna', 'Tina', 'Tiziana', 'Tonja', 'Toril', 'Tosca', 'Tracey', 'Traudl', 'Trixi', 'Tycho', 'Tyra',
+        'Ulla', 'Ulli', 'Ulrica', 'Ulrike', 'Undine', 'Urania', 'Ursel', 'Ursina', 'Ursula', 'Ursule', 'Uschi', 'Uta', 'Ute',
+        'Valentina', 'Valentine', 'Valeria', 'Valerie', 'Valeska', 'Vanadis', 'Vanessa', 'Vanja', 'Varinka', 'Venetia', 'Vera', 'Verena', 'Verona', 'Veronica', 'Veronika', 'Veronique', 'Vesla', 'Vicky', 'Victoire', 'Victoria', 'Viki', 'Viktoria', 'Vilja', 'Viola', 'Violet', 'Violetta', 'Violette', 'Virginia', 'Virginie', 'Vittoria', 'Viviana', 'Viviane', 'Vivien', 'Vivienne', 'Vreneli', 'Vreni', 'Vroni',
+        'Wencke', 'Weneke', 'Wibke', 'Wilja', 'Willow', 'Wilma',
+    );
+
+    protected static $lastName = array(
+        'Ackermann', 'Adler', 'Adolph', 'Albers', 'Anders', 'Atzler', 'Aumann', 'Austermühle',
+        'Bachmann', 'Bähr', 'Bärer', 'Barkholz', 'Barth', 'Bauer', 'Baum', 'Becker', 'Beckmann', 'Beer', 'Beier', 'Bender', 'Benthin', 'Berger', 'Beyer', 'Bien', 'Biggen', 'Binner', 'Birnbaum', 'Bloch', 'Blümel', 'Bohlander', 'Bonbach', 'Bolander', 'Bolnbach', 'Bolzmann', 'Börner', 'Bohnbach', 'Boucsein', 'Briemer', 'Bruder', 'Buchholz', 'Budig', 'Butte',
+        'Carsten', 'Caspar', 'Christoph', 'Cichorius', 'Conradi',
+        'Davids', 'Dehmel', 'Dickhard', 'Dietz', 'Dippel', 'Ditschlerin', 'Dobes', 'Döhn', 'Döring', 'Dörr', 'Dörschner', 'Dowerg', 'Drewes', 'Drub', 'Drubin', 'Dussen van',
+        'Eberhardt', 'Ebert', 'Eberth', 'Eckbauer', 'Ehlert', 'Eigenwillig', 'Eimer', 'Ernst', 'Etzler', 'Etzold',
+        'Faust', 'Fechner', 'Fiebig', 'Finke', 'Fischer', 'Flantz', 'Fliegner', 'Förster', 'Franke', 'Freudenberger', 'Fritsch', 'Fröhlich',
+        'Gehringer', 'Geisel', 'Geisler', 'Geißler', 'Gerlach', 'Gertz', 'Gierschner', 'Gieß', 'Girschner', 'Gnatz', 'Gorlitz', 'Gotthard', 'Graf', 'Grein Groth', 'Gröttner', 'Gude', 'Gunpf', 'Gumprich', 'Gute', 'Gutknecht',
+        'Haase', 'Haering', 'Hänel', 'Häring', 'Hahn', 'Hamann', 'Hande', 'Harloff', 'Hartmann', 'Hartung', 'Hauffer', 'Hecker', 'Heidrich', 'Hein', 'Heinrich', 'Heintze', 'Heinz', 'Hellwig', 'Henck', 'Hendriks', 'Henk', 'Henschel', 'Hentschel', 'Hering', 'Hermann', 'Herrmann', 'Hermighausen', 'Hertrampf', 'Heser', 'Heß', 'Hesse', 'Hettner', 'Hethur', 'Heuser', 'Hiller', 'Heydrich', 'Höfig', 'Hofmann', 'Holsten', 'Holt', 'Holzapfel', 'Hölzenbecher', 'Hörle', 'Hövel', 'Hoffmann', 'Hornich', 'Hornig', 'Hübel', 'Huhn',
+        'Jacob', 'Jacobi Jäckel', 'Jähn', 'Jäkel', 'Jäntsch', 'Jessel', 'Jockel', 'Johann', 'Jopich', 'Junck', 'Juncken', 'Jungfer', 'Junitz', 'Junk', 'Junken', 'Jüttner',
+        'Kabus', 'Kade', 'Käster', 'Kallert', 'Kambs', 'Karge', 'Karz', 'Kaul', 'Kensy', 'Keudel', 'Killer', 'Kitzmann', 'Klapp', 'Klemm', 'Klemt', 'Klingelhöfer', 'Klotz', 'Knappe', 'Kobelt', 'Koch', 'Koch II', 'Köhler', 'Köster', 'Kohl', 'Kostolzin', 'Kramer', 'Kranz', 'Krause', 'Kraushaar', 'Krebs', 'Krein', 'Kreusel', 'Kroker', 'Kruschwitz', 'Kuhl', 'Kühnert', 'Kusch',
+        'Lachmann', 'Ladeck', 'Lange', 'Langern', 'Lehmann', 'Liebelt', 'Lindau', 'Lindner', 'Linke', 'Löchel', 'Löffler', 'Loos', 'Lorch', 'Losekann', 'Löwer', 'Lübs',
+        'Mälzer', 'Mangold', 'Mans', 'Margraf', 'Martin', 'Matthäi', 'Meister', 'Mende', 'Mentzel', 'Metz', 'Meyer', 'Mielcarek', 'Mies', 'Misicher', 'Mitschke', 'Mohaupt', 'Mosemann', 'Möchlichen', 'Mude', 'Mühle', 'Mülichen', 'Müller',
+        'Naser', 'Nerger', 'Nette', 'Neureuther', 'Neuschäfer', 'Niemeier', 'Noack', 'Nohlmans',
+        'Oderwald', 'Oestrovsky', 'Ortmann', 'Otto',
+        'Paffrath', 'Pärtzelt', 'Patberg', 'Pechel', 'Pergande', 'Peukert', 'Pieper', 'Plath', 'Pohl', 'Pölitz', 'Preiß', 'Pruschke', 'Putz',
+        'Rädel', 'Radisch', 'Reichmann', 'Reinhardt', 'Reising', 'Renner', 'Reuter', 'Riehl', 'Ring', 'Ritter', 'Rogge', 'Rogner', 'Rohleder', 'Röhrdanz', 'Röhricht', 'Roht', 'Römer', 'Rörricht', 'Rose', 'Rosemann', 'Rosenow', 'Roskoth', 'Rudolph', 'Ruppersberger', 'Ruppert', 'Rust',
+        'Sager', 'Salz', 'Säuberlich', 'Sauer', 'Schaaf', 'Schacht', 'Schäfer', 'Scheel', 'Scheibe', 'Schenk', 'Scheuermann', 'Schinke', 'Schleich', 'Schleich', 'auch Schlauchin', 'Schlosser', 'Schmidt', 'Schmidtke', 'Schmiedecke', 'Schmiedt', 'Schönland', 'Scholl', 'Scholtz', 'Scholz', 'Schomber', 'Schottin', 'Schuchhardt', 'Schüler', 'Schulz', 'Schuster', 'Schweitzer', 'Schwital', 'Segebahn', 'Seifert', 'Seidel', 'Seifert', 'Seip', 'Siering', 'Söding', 'Sölzer', 'Sontag', 'Sorgatz', 'Speer', 'Spieß', 'Stadelmann', 'Stahr', 'Staude', 'Steckel', 'Steinberg', 'Stey', 'Stiebitz', 'Stiffel', 'Stoll', 'Stolze', 'Striebitz', 'Stroh', 'Stumpf', 'Sucker', 'Süßebier',
+        'Täsche', 'Textor', 'Thanel', 'Thies', 'Tintzmann', 'Tlustek', 'Trapp', 'Trommler', 'Tröst', 'Trub', 'Trüb', 'Trubin', 'Trupp', 'Tschentscher',
+        'Ullmann', 'Ullrich',
+        'van der Dussen', 'Vogt', 'Vollbrecht',
+        'Wagenknecht', 'Wagner', 'Wähner', 'Walter', 'Warmer', 'Weihmann', 'Weimer', 'Weinhage', 'Weinhold', 'Weiß', 'Weitzel', 'Weller', 'Wende', 'Wernecke', 'Werner', 'Wesack', 'Wiek', 'Wieloch', 'Wilms', 'Wilmsen', 'Winkler', 'Wirth', 'Wohlgemut', 'Wulf', 'Wulff',
+        'Zahn', 'Zänker', 'Ziegert', 'Zimmer', 'Zirme', 'Zobel', 'Zorbach',
+    );
+
+    protected static $prefixMale = array('Herr', 'Dr.', 'Ing.', 'Dipl.-Ing.', 'Prof.', 'Univ.Prof.');
+    protected static $prefixFemale = array('Frau', 'Dr.', 'Ing.', 'Dipl.-Ing.', 'Prof.', 'Univ.Prof.');
+
+    protected static $suffix = array('B.Sc.', 'B.A.', 'B.Eng.', 'MBA.');
+
+    /**
+     * @example 'Mrs.'
+     */
+    public static function prefix()
+    {
+        return static::randomElement(static::$prefixMale);
+    }
+
+    /**
+     * @example 'Argus'
+     */
+    public static function firstNameMale()
+    {
+        return static::randomElement(static::$firstNameMale);
+    }
+
+    /**
+     * @example 'Magret'
+     */
+    public static function firstNameFemale()
+    {
+        return static::randomElement(static::$firstNameFemale);
+    }
+
+    /**
+     * @example 'Herr'
+     */
+    public static function prefixMale()
+    {
+        return static::randomElement(static::$prefixMale);
+    }
+
+    /**
+     * @example 'Frau'
+     */
+    public static function prefixFemale()
+    {
+        return static::randomElement(static::$prefixFemale);
+    }
+
+    /**
+     * @example 'PhD'
+     */
+    public static function suffix()
+    {
+        return static::randomElement(static::$suffix);
+    }
+}

+ 20 - 0
vendor/fzaninotto/faker/src/Faker/Provider/de_DE/PhoneNumber.php

@@ -0,0 +1,20 @@
+<?php
+
+namespace Faker\Provider\de_DE;
+
+class PhoneNumber extends \Faker\Provider\PhoneNumber
+{
+    protected static $formats = array(
+        '+49(0)##########',
+        '+49(0)#### ######',
+        '+49 (0) #### ######',
+        '+49(0) #########',
+        '+49(0)#### #####',
+        '0##########',
+        '0#########',
+        '0#### ######',
+        '0#### #####',
+        '(0####) ######',
+        '(0####) #####',
+    );
+}

+ 89 - 0
vendor/fzaninotto/faker/src/Faker/Provider/en_GB/Address.php

@@ -0,0 +1,89 @@
+<?php
+
+namespace Faker\Provider\en_GB;
+
+class Address extends \Faker\Provider\Address
+{
+    protected static $cityPrefix = array('North', 'East', 'West', 'South', 'New', 'Lake', 'Port');
+    protected static $citySuffix = array('town', 'ton', 'land', 'ville', 'berg', 'burgh', 'borough', 'bury', 'view', 'port', 'mouth', 'stad', 'furt', 'chester', 'mouth', 'fort', 'haven', 'side', 'shire');
+    protected static $buildingNumber = array('###', '##', '#');
+    protected static $streetSuffix = array(
+        'Alley', 'Avenue', 'Branch', 'Bridge', 'Brook', 'Brooks', 'Burg', 'Burgs', 'Bypass', 'Camp', 'Canyon', 'Cape', 'Causeway', 'Center', 'Centers', 'Circle', 'Circles', 'Cliff', 'Cliffs', 'Club', 'Common', 'Corner', 'Corners', 'Course', 'Court', 'Courts', 'Cove', 'Coves', 'Creek', 'Crescent', 'Crest', 'Crossing', 'Crossroad', 'Curve', 'Dale', 'Dam', 'Divide', 'Drive', 'Drive', 'Drives', 'Estate', 'Estates', 'Expressway', 'Extension', 'Extensions', 'Fall', 'Falls', 'Ferry', 'Field', 'Fields', 'Flat', 'Flats', 'Ford', 'Fords', 'Forest', 'Forge', 'Forges', 'Fork', 'Forks', 'Fort', 'Garden', 'Gardens', 'Gateway', 'Glen', 'Glens', 'Green', 'Greens', 'Grove', 'Groves', 'Harbour', 'Harbours', 'Haven', 'Heights', 'Highway', 'Hill', 'Hills', 'Hollow', 'Inlet', 'Island', 'Islands', 'Isle', 'Junction', 'Junctions', 'Key', 'Keys', 'Knoll', 'Knolls', 'Lake', 'Lakes', 'Land', 'Landing', 'Lane', 'Light', 'Lights', 'Loaf', 'Lock', 'Locks', 'Locks', 'Lodge', 'Lodge', 'Loop', 'Manor', 'Manors', 'Meadow', 'Meadows', 'Mews', 'Mill', 'Mills', 'Motorway', 'Mount', 'Mountain', 'Mountains', 'Neck', 'Orchard', 'Oval', 'Overpass', 'Park', 'Parks', 'Parkway', 'Parkways', 'Pass', 'Passage', 'Path', 'Pike', 'Pine', 'Pines', 'Place', 'Plain', 'Plains', 'Plaza', 'Point', 'Points', 'Port', 'Ports', 'Radial', 'Ramp', 'Ranch', 'Rapid', 'Rapids', 'Rest', 'Ridge', 'Ridges', 'River', 'Road', 'Road', 'Roads', 'Roads', 'Route', 'Row', 'Rue', 'Run', 'Shoal', 'Shoals', 'Shore', 'Shores', 'Spring', 'Springs', 'Springs', 'Spur', 'Spurs', 'Square', 'Square', 'Squares', 'Squares', 'Station', 'Station', 'Stream', 'Stream', 'Street', 'Streets', 'Summit', 'Terrace', 'Throughway', 'Trace', 'Track', 'Trafficway', 'Trail', 'Tunnel', 'Turnpike', 'Underpass', 'Union', 'Unions', 'Valley', 'Valleys', 'Via', 'Viaduct', 'View', 'Views', 'Village', 'Villages', 'Ville', 'Vista', 'Vista', 'Walk', 'Walks', 'Wall', 'Way', 'Ways', 'Well', 'Wells'
+    );
+    protected static $postcode = array('?# #??', '?## #??', '??# #??', '??## #??', '?#? #??', '??#? #??');
+
+    protected static $county = array(
+        'Aberdeenshire', 'Anglesey', 'Angus', 'Argyll', 'Ayrshire', 'Banffshire', 'Bedfordshire', 'Berwickshire', 'Breconshire', 'Buckinghamshire', 'Bute', 'Caernarvonshire', 'Caithness', 'Cambridgeshire', 'Cardiganshire', 'Carmarthenshire', 'Cheshire', 'Clackmannanshire', 'Cornwall', 'Isles of Scilly', 'Cumbria', 'Denbighshire', 'Derbyshire', 'Devon', 'Dorset', 'Dumbartonshire', 'Dumfriesshire', 'Durham', 'East Lothian', 'East Sussex', 'Essex', 'Fife', 'Flintshire', 'Glamorgan', 'Gloucestershire', 'Greater London', 'Greater Manchester', 'Hampshire', 'Hertfordshire', 'Inverness', 'Kent', 'Kincardineshire', 'Kinross-shire', 'Kirkcudbrightshire', 'Lanarkshire', 'Lancashire', 'Leicestershire', 'Lincolnshire', 'London', 'Merionethshire', 'Merseyside', 'Midlothian', 'Monmouthshire', 'Montgomeryshire', 'Moray', 'Nairnshire', 'Norfolk', 'North Yorkshire', 'Northamptonshire', 'Northumberland', 'Nottinghamshire', 'Orkney', 'Oxfordshire', 'Peebleshire', 'Pembrokeshire', 'Perthshire', 'Radnorshire', 'Renfrewshire', 'Ross & Cromarty', 'Roxburghshire', 'Selkirkshire', 'Shetland', 'Shropshire', 'Somerset', 'South Yorkshire', 'Staffordshire', 'Stirlingshire', 'Suffolk', 'Surrey', 'Sutherland', 'Tyne and Wear', 'Warwickshire', 'West Lothian', 'West Midlands', 'West Sussex', 'West Yorkshire', 'Wigtownshire', 'Wiltshire', 'Worcestershire'
+    );
+
+    protected static $country = array(
+        'Afghanistan', 'Albania', 'Algeria', 'American Samoa', 'Andorra', 'Angola', 'Anguilla', 'Antarctica (the territory South of 60 deg S)', 'Antigua and Barbuda', 'Argentina', 'Armenia', 'Aruba', 'Australia', 'Austria', 'Azerbaijan',
+        'Bahamas', 'Bahrain', 'Bangladesh', 'Barbados', 'Belarus', 'Belgium', 'Belize', 'Benin', 'Bermuda', 'Bhutan', 'Bolivia', 'Bosnia and Herzegovina', 'Botswana', 'Bouvet Island (Bouvetoya)', 'Brazil', 'British Indian Ocean Territory (Chagos Archipelago)', 'British Virgin Islands', 'Brunei Darussalam', 'Bulgaria', 'Burkina Faso', 'Burundi',
+        'Cambodia', 'Cameroon', 'Canada', 'Cape Verde', 'Cayman Islands', 'Central African Republic', 'Chad', 'Chile', 'China', 'Christmas Island', 'Cocos (Keeling) Islands', 'Colombia', 'Comoros', 'Congo', 'Congo', 'Cook Islands', 'Costa Rica', 'Cote d\'Ivoire', 'Croatia', 'Cuba', 'Cyprus', 'Czech Republic',
+        'Denmark', 'Djibouti', 'Dominica', 'Dominican Republic',
+        'Ecuador', 'Egypt', 'El Salvador', 'Equatorial Guinea', 'Eritrea', 'Estonia', 'Ethiopia',
+        'Faroe Islands', 'Falkland Islands (Malvinas)', 'Fiji', 'Finland', 'France', 'French Guiana', 'French Polynesia', 'French Southern Territories',
+        'Gabon', 'Gambia', 'Georgia', 'Germany', 'Ghana', 'Gibraltar', 'Greece', 'Greenland', 'Grenada', 'Guadeloupe', 'Guam', 'Guatemala', 'Guernsey', 'Guinea', 'Guinea-Bissau', 'Guyana',
+        'Haiti', 'Heard Island and McDonald Islands', 'Holy See (Vatican City State)', 'Honduras', 'Hong Kong', 'Hungary',
+        'Iceland', 'India', 'Indonesia', 'Iran', 'Iraq', 'Ireland', 'Isle of Man', 'Israel', 'Italy',
+        'Jamaica', 'Japan', 'Jersey', 'Jordan',
+        'Kazakhstan', 'Kenya', 'Kiribati', 'Korea', 'Korea', 'Kuwait', 'Kyrgyz Republic',
+        'Lao People\'s Democratic Republic', 'Latvia', 'Lebanon', 'Lesotho', 'Liberia', 'Libyan Arab Jamahiriya', 'Liechtenstein', 'Lithuania', 'Luxembourg',
+        'Macao', 'Macedonia', 'Madagascar', 'Malawi', 'Malaysia', 'Maldives', 'Mali', 'Malta', 'Marshall Islands', 'Martinique', 'Mauritania', 'Mauritius', 'Mayotte', 'Mexico', 'Micronesia', 'Moldova', 'Monaco', 'Mongolia', 'Montenegro', 'Montserrat', 'Morocco', 'Mozambique', 'Myanmar',
+        'Namibia', 'Nauru', 'Nepal', 'Netherlands Antilles', 'Netherlands', 'New Caledonia', 'New Zealand', 'Nicaragua', 'Niger', 'Nigeria', 'Niue', 'Norfolk Island', 'Northern Mariana Islands', 'Norway',
+        'Oman',
+        'Pakistan', 'Palau', 'Palestinian Territory', 'Panama', 'Papua New Guinea', 'Paraguay', 'Peru', 'Philippines', 'Pitcairn Islands', 'Poland', 'Portugal', 'Puerto Rico',
+        'Qatar',
+        'Reunion', 'Romania', 'Russian Federation', 'Rwanda',
+        'Saint Barthelemy', 'Saint Helena', 'Saint Kitts and Nevis', 'Saint Lucia', 'Saint Martin', 'Saint Pierre and Miquelon', 'Saint Vincent and the Grenadines', 'Samoa', 'San Marino', 'Sao Tome and Principe', 'Saudi Arabia', 'Senegal', 'Serbia', 'Seychelles', 'Sierra Leone', 'Singapore', 'Slovakia (Slovak Republic)', 'Slovenia', 'Solomon Islands', 'Somalia', 'South Africa', 'South Georgia and the South Sandwich Islands', 'Spain', 'Sri Lanka', 'Sudan', 'Suriname', 'Svalbard & Jan Mayen Islands', 'Swaziland', 'Sweden', 'Switzerland', 'Syrian Arab Republic',
+        'Taiwan', 'Tajikistan', 'Tanzania', 'Thailand', 'Timor-Leste', 'Togo', 'Tokelau', 'Tonga', 'Trinidad and Tobago', 'Tunisia', 'Turkey', 'Turkmenistan', 'Turks and Caicos Islands', 'Tuvalu',
+        'Uganda', 'Ukraine', 'United Arab Emirates', 'United Kingdom', 'United States of America', 'United States Minor Outlying Islands', 'United States Virgin Islands', 'Uruguay', 'Uzbekistan',
+        'Vanuatu', 'Venezuela', 'Vietnam',
+        'Wallis and Futuna', 'Western Sahara',
+        'Yemen',
+        'Zambia', 'Zimbabwe'
+    );
+    protected static $cityFormats = array(
+        '{{cityPrefix}} {{firstName}}{{citySuffix}}',
+        '{{cityPrefix}} {{firstName}}',
+        '{{firstName}}{{citySuffix}}',
+        '{{lastName}}{{citySuffix}}',
+    );
+    protected static $streetNameFormats = array(
+        '{{firstName}} {{streetSuffix}}',
+        '{{lastName}} {{streetSuffix}}'
+    );
+    protected static $streetAddressFormats = array(
+        '{{buildingNumber}} {{streetName}}',
+        '{{buildingNumber}} {{streetName}}',
+        "{{secondaryAddress}}\n{{streetName}}",
+    );
+    protected static $addressFormats = array(
+        "{{streetAddress}}\n{{city}}\n{{postcode}}",
+    );
+    protected static $secondaryAddressFormats = array('Flat ##', 'Flat ##?', 'Studio ##', 'Studio ##?');
+
+    /**
+     * @example 'East'
+     */
+    public static function cityPrefix()
+    {
+        return static::randomElement(static::$cityPrefix);
+    }
+
+    /**
+     * @example 'Flat 350'
+     */
+    public static function secondaryAddress()
+    {
+        return static::bothify(static::randomElement(static::$secondaryAddressFormats));
+    }
+
+    /**
+     * @example 'Hampshire'
+     */
+    public static function county()
+    {
+        return static::randomElement(static::$county);
+    }
+}

+ 10 - 0
vendor/fzaninotto/faker/src/Faker/Provider/en_GB/Internet.php

@@ -0,0 +1,10 @@
+<?php
+
+namespace Faker\Provider\en_GB;
+
+class Internet extends \Faker\Provider\Internet
+{
+    protected static $safeEmailTld = array('org', 'com', 'net', 'co.uk');
+    protected static $freeEmailDomain = array('gmail.com', 'yahoo.com', 'hotmail.com', 'gmail.co.uk', 'yahoo.co.uk', 'hotmail.co.uk');
+    protected static $tld = array('com', 'com', 'com', 'com', 'com', 'com', 'biz', 'info', 'net', 'org', 'co.uk');
+}

+ 19 - 0
vendor/fzaninotto/faker/src/Faker/Provider/en_GB/PhoneNumber.php

@@ -0,0 +1,19 @@
+<?php
+
+namespace Faker\Provider\en_GB;
+
+class PhoneNumber extends \Faker\Provider\PhoneNumber
+{
+    protected static $formats = array(
+        '+44(0)##########',
+        '+44(0)#### ######',
+        '+44(0)#########',
+        '+44(0)#### #####',
+        '0##########',
+        '0#########',
+        '0#### ######',
+        '0#### #####',
+        '(0####) ######',
+        '(0####) #####',
+    );
+}

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 10 - 0
vendor/fzaninotto/faker/src/Faker/Provider/en_US/Address.php


+ 64 - 0
vendor/fzaninotto/faker/src/Faker/Provider/en_US/Company.php

@@ -0,0 +1,64 @@
+<?php
+
+namespace Faker\Provider\en_US;
+
+class Company extends \Faker\Provider\Company
+{
+    protected static $formats = array(
+        '{{lastName}} {{companySuffix}}',
+        '{{lastName}}-{{lastName}}',
+        '{{lastName}}, {{lastName}} and {{lastName}}'
+    );
+
+    protected static $catchPhraseWords = array(
+        array(
+            'Adaptive', 'Advanced', 'Ameliorated', 'Assimilated', 'Automated', 'Balanced', 'Business-focused', 'Centralized', 'Cloned', 'Compatible', 'Configurable', 'Cross-group', 'Cross-platform', 'Customer-focused', 'Customizable', 'Decentralized', 'De-engineered', 'Devolved', 'Digitized', 'Distributed', 'Diverse', 'Down-sized', 'Enhanced', 'Enterprise-wide', 'Ergonomic', 'Exclusive', 'Expanded', 'Extended', 'Facetoface', 'Focused', 'Front-line', 'Fully-configurable', 'Function-based', 'Fundamental', 'Future-proofed', 'Grass-roots', 'Horizontal', 'Implemented', 'Innovative', 'Integrated', 'Intuitive', 'Inverse', 'Managed', 'Mandatory', 'Monitored', 'Multi-channelled', 'Multi-lateral', 'Multi-layered', 'Multi-tiered', 'Networked', 'Object-based', 'Open-architected', 'Open-source', 'Operative', 'Optimized', 'Optional', 'Organic', 'Organized', 'Persevering', 'Persistent', 'Phased', 'Polarised', 'Pre-emptive', 'Proactive', 'Profit-focused', 'Profound', 'Programmable', 'Progressive', 'Public-key', 'Quality-focused', 'Reactive', 'Realigned', 'Re-contextualized', 'Re-engineered', 'Reduced', 'Reverse-engineered', 'Right-sized', 'Robust', 'Seamless', 'Secured', 'Self-enabling', 'Sharable', 'Stand-alone', 'Streamlined', 'Switchable', 'Synchronised', 'Synergistic', 'Synergized', 'Team-oriented', 'Total', 'Triple-buffered', 'Universal', 'Up-sized', 'Upgradable', 'User-centric', 'User-friendly', 'Versatile', 'Virtual', 'Visionary', 'Vision-oriented'
+        ),
+        array(
+            '24hour', '24/7', '3rdgeneration', '4thgeneration', '5thgeneration', '6thgeneration', 'actuating', 'analyzing', 'assymetric', 'asynchronous', 'attitude-oriented', 'background', 'bandwidth-monitored', 'bi-directional', 'bifurcated', 'bottom-line', 'clear-thinking', 'client-driven', 'client-server', 'coherent', 'cohesive', 'composite', 'context-sensitive', 'contextually-based', 'content-based', 'dedicated', 'demand-driven', 'didactic', 'directional', 'discrete', 'disintermediate', 'dynamic', 'eco-centric', 'empowering', 'encompassing', 'even-keeled', 'executive', 'explicit', 'exuding', 'fault-tolerant', 'foreground', 'fresh-thinking', 'full-range', 'global', 'grid-enabled', 'heuristic', 'high-level', 'holistic', 'homogeneous', 'human-resource', 'hybrid', 'impactful', 'incremental', 'intangible', 'interactive', 'intermediate', 'leadingedge', 'local', 'logistical', 'maximized', 'methodical', 'mission-critical', 'mobile', 'modular', 'motivating', 'multimedia', 'multi-state', 'multi-tasking', 'national', 'needs-based', 'neutral', 'nextgeneration', 'non-volatile', 'object-oriented', 'optimal', 'optimizing', 'radical', 'real-time', 'reciprocal', 'regional', 'responsive', 'scalable', 'secondary', 'solution-oriented', 'stable', 'static', 'systematic', 'systemic', 'system-worthy', 'tangible', 'tertiary', 'transitional', 'uniform', 'upward-trending', 'user-facing', 'value-added', 'web-enabled', 'well-modulated', 'zeroadministration', 'zerodefect', 'zerotolerance'
+        ),
+        array(
+            'ability', 'access', 'adapter', 'algorithm', 'alliance', 'analyzer', 'application', 'approach', 'architecture', 'archive', 'artificialintelligence', 'array', 'attitude', 'benchmark', 'budgetarymanagement', 'capability', 'capacity', 'challenge', 'circuit', 'collaboration', 'complexity', 'concept', 'conglomeration', 'contingency', 'core', 'customerloyalty', 'database', 'data-warehouse', 'definition', 'emulation', 'encoding', 'encryption', 'extranet', 'firmware', 'flexibility', 'focusgroup', 'forecast', 'frame', 'framework', 'function', 'functionalities', 'GraphicInterface', 'groupware', 'GraphicalUserInterface', 'hardware', 'help-desk', 'hierarchy', 'hub', 'implementation', 'info-mediaries', 'infrastructure', 'initiative', 'installation', 'instructionset', 'interface', 'internetsolution', 'intranet', 'knowledgeuser', 'knowledgebase', 'localareanetwork', 'leverage', 'matrices', 'matrix', 'methodology', 'middleware', 'migration', 'model', 'moderator', 'monitoring', 'moratorium', 'neural-net', 'openarchitecture', 'opensystem', 'orchestration', 'paradigm', 'parallelism', 'policy', 'portal', 'pricingstructure', 'processimprovement', 'product', 'productivity', 'project', 'projection', 'protocol', 'securedline', 'service-desk', 'software', 'solution', 'standardization', 'strategy', 'structure', 'success', 'superstructure', 'support', 'synergy', 'systemengine', 'task-force', 'throughput', 'time-frame', 'toolset', 'utilisation', 'website', 'workforce'
+        )
+    );
+
+    protected static $bsWords = array(
+        array(
+            'implement', 'utilize', 'integrate', 'streamline', 'optimize', 'evolve', 'transform', 'embrace', 'enable', 'orchestrate', 'leverage', 'reinvent', 'aggregate', 'architect', 'enhance', 'incentivize', 'morph', 'empower', 'envisioneer', 'monetize', 'harness', 'facilitate', 'seize', 'disintermediate', 'synergize', 'strategize', 'deploy', 'brand', 'grow', 'target', 'syndicate', 'synthesize', 'deliver', 'mesh', 'incubate', 'engage', 'maximize', 'benchmark', 'expedite', 'reintermediate', 'whiteboard', 'visualize', 'repurpose', 'innovate', 'scale', 'unleash', 'drive', 'extend', 'engineer', 'revolutionize', 'generate', 'exploit', 'transition', 'e-enable', 'iterate', 'cultivate', 'matrix', 'productize', 'redefine', 'recontextualize'
+        ),
+        array(
+            'clicks-and-mortar', 'value-added', 'vertical', 'proactive', 'robust', 'revolutionary', 'scalable', 'leading-edge', 'innovative', 'intuitive', 'strategic', 'e-business', 'mission-critical', 'sticky', 'one-to-one', '24/7', 'end-to-end', 'global', 'B2B', 'B2C', 'granular', 'frictionless', 'virtual', 'viral', 'dynamic', '24/365', 'best-of-breed', 'killer', 'magnetic', 'bleeding-edge', 'web-enabled', 'interactive', 'dot-com', 'sexy', 'back-end', 'real-time', 'efficient', 'front-end', 'distributed', 'seamless', 'extensible', 'turn-key', 'world-class', 'open-source', 'cross-platform', 'cross-media', 'synergistic', 'bricks-and-clicks', 'out-of-the-box', 'enterprise', 'integrated', 'impactful', 'wireless', 'transparent', 'next-generation', 'cutting-edge', 'user-centric', 'visionary', 'customized', 'ubiquitous', 'plug-and-play', 'collaborative', 'compelling', 'holistic', 'rich'
+        ),
+        array(
+            'synergies', 'web-readiness', 'paradigms', 'markets', 'partnerships', 'infrastructures', 'platforms', 'initiatives', 'channels', 'eyeballs', 'communities', 'ROI', 'solutions', 'e-tailers', 'e-services', 'action-items', 'portals', 'niches', 'technologies', 'content', 'vortals', 'supply-chains', 'convergence', 'relationships', 'architectures', 'interfaces', 'e-markets', 'e-commerce', 'systems', 'bandwidth', 'infomediaries', 'models', 'mindshare', 'deliverables', 'users', 'schemas', 'networks', 'applications', 'metrics', 'e-business', 'functionalities', 'experiences', 'webservices', 'methodologies'
+        )
+    );
+
+    protected static $companySuffix = array('Inc', 'and Sons', 'LLC', 'Group', 'PLC', 'Ltd');
+
+    /**
+     * @example 'Robust full-range hub'
+     */
+    public function catchPhrase()
+    {
+        $result = array();
+        foreach (static::$catchPhraseWords as &$word) {
+            $result[] = static::randomElement($word);
+        }
+
+        return join($result, ' ');
+    }
+
+    /**
+     * @example 'integrate extensible convergence'
+     */
+    public function bs()
+    {
+        $result = array();
+        foreach (static::$bsWords as &$word) {
+            $result[] = static::randomElement($word);
+        }
+
+        return join($result, ' ');
+    }
+}

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 18 - 0
vendor/fzaninotto/faker/src/Faker/Provider/en_US/Person.php


+ 33 - 0
vendor/fzaninotto/faker/src/Faker/Provider/en_US/PhoneNumber.php

@@ -0,0 +1,33 @@
+<?php
+
+namespace Faker\Provider\en_US;
+
+class PhoneNumber extends \Faker\Provider\PhoneNumber
+{
+    protected static $formats = array(
+        '+##(#)##########',
+        '+##(#)##########',
+        '0##########',
+        '0##########',
+        '###-###-####',
+        '(###)###-####',
+        '1-###-###-####',
+        '###.###.####',
+        '###-###-####',
+        '(###)###-####',
+        '1-###-###-####',
+        '###.###.####',
+        '###-###-####x###',
+        '(###)###-####x###',
+        '1-###-###-####x###',
+        '###.###.####x###',
+        '###-###-####x####',
+        '(###)###-####x####',
+        '1-###-###-####x####',
+        '###.###.####x####',
+        '###-###-####x#####',
+        '(###)###-####x#####',
+        '1-###-###-####x#####',
+        '###.###.####x#####'
+    );
+}

+ 95 - 0
vendor/fzaninotto/faker/src/Faker/Provider/es_AR/Address.php

@@ -0,0 +1,95 @@
+<?php
+
+namespace Faker\Provider\es_AR;
+
+class Address extends \Faker\Provider\Address
+{
+    protected static $cityPrefix = array('San', 'Puerto', 'Villa', 'Gral.', 'Don');
+    protected static $citySuffix = array('del Mar', 'del Norte', 'del Este', 'del Sur', 'del Oeste', 'del Mirador');
+    protected static $buildingNumber = array('#####', '####', '###', '##', '#');
+    protected static $streetSuffix = array(
+        ''
+    );
+    protected static $postcode = array('####', '#####');
+    protected static $state = array(
+        'Buenos Aires', 'Catamarca', 'Chaco', 'Chubut', 'Córdoba', 'Corrientes', 'Entre Ríos', 'Formosa', 'Jujuy', 'La Pampa', 'La Rioja', 'Mendoza', 'Misiones', 'Neuquén', 'Río Negro', 'Salta', 'San Juan', 'San Luis', 'Santa Cruz', 'Santa Fe', 'Santiago del Estero', 'Tierra del Fuego, Antártida e Islas del Atlántico Sur', 'Tucumán'
+    );
+    protected static $stateAbbr = array(
+        'AR-B', 'AR-K', 'AR-H', 'AR-U', 'AR-X', 'AR-W', 'AR-E', 'AR-P', 'AR-Y', 'AR-L', 'AR-F', 'AR-M', 'AR-N', 'AR-Q', 'AR-R', 'AR-A', 'AR-J', 'AR-D', 'AR-Z', 'AR-S', 'AR-G', 'AR-V', 'AR-T'
+    );
+    protected static $country = array(
+        'Afganistán', 'Albania', 'Alemania', 'Andorra', 'Angola', 'Antigua y Barbuda', 'Arabia Saudí', 'Argelia', 'Argentina', 'Armenia', 'Australia', 'Austria', 'Azerbaiyán',
+        'Bahamas', 'Bangladés', 'Barbados', 'Baréin', 'Belice', 'Benín', 'Bielorrusia', 'Birmania', 'Bolivia', 'Bosnia-Herzegovina', 'Botsuana', 'Brasil', 'Brunéi Darusalam', 'Bulgaria', 'Burkina Faso', 'Burundi', 'Bután', 'Bélgica',
+        'Cabo Verde', 'Camboya', 'Camerún', 'Canadá', 'Catar', 'Chad', 'Chile', 'China', 'Chipre', 'Ciudad del Vaticano', 'Colombia', 'Comoras', 'Congo', 'Corea del Norte', 'Corea del Sur', 'Costa Rica', 'Costa de Marfil', 'Croacia', 'Cuba',
+        'Dinamarca', 'Dominica',
+        'Ecuador', 'Egipto', 'El Salvador', 'Emiratos Árabes Unidos', 'Eritrea', 'Eslovaquia', 'Eslovenia', 'España', 'Estados Unidos de América', 'Estonia', 'Etiopía',
+        'Filipinas', 'Finlandia', 'Fiyi', 'Francia',
+        'Gabón', 'Gambia', 'Georgia', 'Ghana', 'Granada', 'Grecia', 'Guatemala', 'Guinea', 'Guinea Ecuatorial', 'Guinea-Bisáu', 'Guyana',
+        'Haití', 'Honduras', 'Hungría',
+        'India', 'Indonesia', 'Irak', 'Irlanda', 'Irán', 'Islandia', 'Islas Marshall', 'Islas Salomón', 'Israel', 'Italia',
+        'Jamaica', 'Japón', 'Jordania',
+        'Kazajistán', 'Kenia', 'Kirguistán', 'Kiribati', 'Kuwait',
+        'Laos', 'Lesoto', 'Letonia', 'Liberia', 'Libia', 'Liechtenstein', 'Lituania', 'Luxemburgo', 'Líbano',
+        'Macedonia', 'Madagascar', 'Malasia', 'Malaui', 'Maldivas', 'Mali', 'Malta', 'Marruecos', 'Mauricio', 'Mauritania', 'Micronesia', 'Moldavia', 'Mongolia', 'Montenegro', 'Mozambique', 'México', 'Mónaco',
+        'Namibia', 'Nauru', 'Nepal', 'Nicaragua', 'Nigeria', 'Noruega', 'Nueva Zelanda', 'Níger',
+        'Omán',
+        'Pakistán', 'Palaos', 'Panamá', 'Papúa Nueva Guinea', 'Paraguay', 'Países Bajos', 'Perú', 'Polonia', 'Portugal',
+        'Reino Unido', 'Reino Unido de Gran Bretaña e Irlanda del Norte', 'República Centroafricana', 'República Checa', 'República Democrática del Congo', 'República Dominicana', 'Ruanda', 'Rumanía', 'Rusia',
+        'Samoa', 'San Cristóbal y Nieves', 'San Marino', 'San Vicente y las Granadinas', 'Santa Lucía', 'Santo Tomé y Príncipe', 'Senegal', 'Serbia', 'Seychelles', 'Sierra Leona', 'Singapur', 'Siria', 'Somalia', 'Sri Lanka', 'Suazilandia', 'Sudáfrica', 'Sudán', 'Suecia', 'Suiza', 'Surinam',
+        'Tailandia', 'Tanzania', 'Tayikistán', 'Timor Oriental', 'Togo', 'Tonga', 'Trinidad y Tobago', 'Turkmenistán', 'Turquía', 'Tuvalu', 'Túnez',
+        'Ucrania', 'Uganda', 'Uruguay', 'Uzbekistán',
+        'Vanuatu', 'Venezuela', 'Vietnam',
+        'Yemen', 'Yibuti',
+        'Zambia', 'Zimbabue'
+    );
+    protected static $cityFormats = array(
+        '{{cityPrefix}} {{firstName}}{{citySuffix}}',
+        '{{cityPrefix}} {{firstName}}',
+        '{{firstName}}{{citySuffix}}',
+        '{{lastName}}{{citySuffix}}',
+    );
+    protected static $streetNameFormats = array(
+        '{{firstName}} {{streetSuffix}}',
+        '{{lastName}} {{streetSuffix}}'
+    );
+    protected static $streetAddressFormats = array(
+        '{{buildingNumber}} {{streetName}}',
+        '{{buildingNumber}} {{streetName}} {{secondaryAddress}}',
+    );
+    protected static $addressFormats = array(
+        "{{streetAddress}}\n{{city}}, {{stateAbbr}} {{postcode}}",
+    );
+    protected static $secondaryAddressFormats = array('Depto. ###', 'Hab. ###', 'Piso #', 'Piso ##', 'PB A', '# A', '# B', '# C', '# D', '# E', '# F', '## A', '## B', '## C', '## D', '## E', '## F', '# #', '## #');
+
+    /**
+     * @example 'San'
+     */
+    public static function cityPrefix()
+    {
+        return static::randomElement(static::$cityPrefix);
+    }
+
+    /**
+     * @example '3ºA'
+     */
+    public static function secondaryAddress()
+    {
+        return static::numerify(static::randomElement(static::$secondaryAddressFormats));
+    }
+
+    /**
+     * @example 'Buenos Aires'
+     */
+    public static function state()
+    {
+        return static::randomElement(static::$state);
+    }
+
+    /**
+     * @example 'AR-B'
+     */
+    public static function stateAbbr()
+    {
+        return static::randomElement(static::$stateAbbr);
+    }
+}

+ 66 - 0
vendor/fzaninotto/faker/src/Faker/Provider/es_AR/Company.php

@@ -0,0 +1,66 @@
+<?php
+
+namespace Faker\Provider\es_AR;
+
+class Company extends \Faker\Provider\Company
+{
+    protected static $formats = array(
+        '{{lastName}} {{companySuffix}}',
+        '{{lastName}}-{{lastName}}',
+        '{{lastName}} y {{lastName}}',
+        '{{lastName}} de {{lastName}}',
+        '{{lastName}}, {{lastName}} y {{lastName}}'
+    );
+
+    protected static $catchPhraseWords = array(
+        array(
+            'Adaptive', 'Advanced', 'Ameliorated', 'Assimilated', 'Automated', 'Balanced', 'Business-focused', 'Centralized', 'Cloned', 'Compatible', 'Configurable', 'Cross-group', 'Cross-platform', 'Customer-focused', 'Customizable', 'Decentralized', 'De-engineered', 'Devolved', 'Digitized', 'Distributed', 'Diverse', 'Down-sized', 'Enhanced', 'Enterprise-wide', 'Ergonomic', 'Exclusive', 'Expanded', 'Extended', 'Facetoface', 'Focused', 'Front-line', 'Fully-configurable', 'Function-based', 'Fundamental', 'Future-proofed', 'Grass-roots', 'Horizontal', 'Implemented', 'Innovative', 'Integrated', 'Intuitive', 'Inverse', 'Managed', 'Mandatory', 'Monitored', 'Multi-channelled', 'Multi-lateral', 'Multi-layered', 'Multi-tiered', 'Networked', 'Object-based', 'Open-architected', 'Open-source', 'Operative', 'Optimized', 'Optional', 'Organic', 'Organized', 'Persevering', 'Persistent', 'Phased', 'Polarised', 'Pre-emptive', 'Proactive', 'Profit-focused', 'Profound', 'Programmable', 'Progressive', 'Public-key', 'Quality-focused', 'Reactive', 'Realigned', 'Re-contextualized', 'Re-engineered', 'Reduced', 'Reverse-engineered', 'Right-sized', 'Robust', 'Seamless', 'Secured', 'Self-enabling', 'Sharable', 'Stand-alone', 'Streamlined', 'Switchable', 'Synchronised', 'Synergistic', 'Synergized', 'Team-oriented', 'Total', 'Triple-buffered', 'Universal', 'Up-sized', 'Upgradable', 'User-centric', 'User-friendly', 'Versatile', 'Virtual', 'Visionary', 'Vision-oriented'
+        ),
+        array(
+            '24hour', '24/7', '3rdgeneration', '4thgeneration', '5thgeneration', '6thgeneration', 'actuating', 'analyzing', 'assymetric', 'asynchronous', 'attitude-oriented', 'background', 'bandwidth-monitored', 'bi-directional', 'bifurcated', 'bottom-line', 'clear-thinking', 'client-driven', 'client-server', 'coherent', 'cohesive', 'composite', 'context-sensitive', 'contextually-based', 'content-based', 'dedicated', 'demand-driven', 'didactic', 'directional', 'discrete', 'disintermediate', 'dynamic', 'eco-centric', 'empowering', 'encompassing', 'even-keeled', 'executive', 'explicit', 'exuding', 'fault-tolerant', 'foreground', 'fresh-thinking', 'full-range', 'global', 'grid-enabled', 'heuristic', 'high-level', 'holistic', 'homogeneous', 'human-resource', 'hybrid', 'impactful', 'incremental', 'intangible', 'interactive', 'intermediate', 'leadingedge', 'local', 'logistical', 'maximized', 'methodical', 'mission-critical', 'mobile', 'modular', 'motivating', 'multimedia', 'multi-state', 'multi-tasking', 'national', 'needs-based', 'neutral', 'nextgeneration', 'non-volatile', 'object-oriented', 'optimal', 'optimizing', 'radical', 'real-time', 'reciprocal', 'regional', 'responsive', 'scalable', 'secondary', 'solution-oriented', 'stable', 'static', 'systematic', 'systemic', 'system-worthy', 'tangible', 'tertiary', 'transitional', 'uniform', 'upward-trending', 'user-facing', 'value-added', 'web-enabled', 'well-modulated', 'zeroadministration', 'zerodefect', 'zerotolerance'
+        ),
+        array(
+            'ability', 'access', 'adapter', 'algorithm', 'alliance', 'analyzer', 'application', 'approach', 'architecture', 'archive', 'artificialintelligence', 'array', 'attitude', 'benchmark', 'budgetarymanagement', 'capability', 'capacity', 'challenge', 'circuit', 'collaboration', 'complexity', 'concept', 'conglomeration', 'contingency', 'core', 'customerloyalty', 'database', 'data-warehouse', 'definition', 'emulation', 'encoding', 'encryption', 'extranet', 'firmware', 'flexibility', 'focusgroup', 'forecast', 'frame', 'framework', 'function', 'functionalities', 'GraphicInterface', 'groupware', 'GraphicalUserInterface', 'hardware', 'help-desk', 'hierarchy', 'hub', 'implementation', 'info-mediaries', 'infrastructure', 'initiative', 'installation', 'instructionset', 'interface', 'internetsolution', 'intranet', 'knowledgeuser', 'knowledgebase', 'localareanetwork', 'leverage', 'matrices', 'matrix', 'methodology', 'middleware', 'migration', 'model', 'moderator', 'monitoring', 'moratorium', 'neural-net', 'openarchitecture', 'opensystem', 'orchestration', 'paradigm', 'parallelism', 'policy', 'portal', 'pricingstructure', 'processimprovement', 'product', 'productivity', 'project', 'projection', 'protocol', 'securedline', 'service-desk', 'software', 'solution', 'standardization', 'strategy', 'structure', 'success', 'superstructure', 'support', 'synergy', 'systemengine', 'task-force', 'throughput', 'time-frame', 'toolset', 'utilisation', 'website', 'workforce'
+        )
+    );
+
+    protected static $bsWords = array(
+        array(
+            'implement', 'utilize', 'integrate', 'streamline', 'optimize', 'evolve', 'transform', 'embrace', 'enable', 'orchestrate', 'leverage', 'reinvent', 'aggregate', 'architect', 'enhance', 'incentivize', 'morph', 'empower', 'envisioneer', 'monetize', 'harness', 'facilitate', 'seize', 'disintermediate', 'synergize', 'strategize', 'deploy', 'brand', 'grow', 'target', 'syndicate', 'synthesize', 'deliver', 'mesh', 'incubate', 'engage', 'maximize', 'benchmark', 'expedite', 'reintermediate', 'whiteboard', 'visualize', 'repurpose', 'innovate', 'scale', 'unleash', 'drive', 'extend', 'engineer', 'revolutionize', 'generate', 'exploit', 'transition', 'e-enable', 'iterate', 'cultivate', 'matrix', 'productize', 'redefine', 'recontextualize'
+        ),
+        array(
+            'clicks-and-mortar', 'value-added', 'vertical', 'proactive', 'robust', 'revolutionary', 'scalable', 'leading-edge', 'innovative', 'intuitive', 'strategic', 'e-business', 'mission-critical', 'sticky', 'one-to-one', '24/7', 'end-to-end', 'global', 'B2B', 'B2C', 'granular', 'frictionless', 'virtual', 'viral', 'dynamic', '24/365', 'best-of-breed', 'killer', 'magnetic', 'bleeding-edge', 'web-enabled', 'interactive', 'dot-com', 'sexy', 'back-end', 'real-time', 'efficient', 'front-end', 'distributed', 'seamless', 'extensible', 'turn-key', 'world-class', 'open-source', 'cross-platform', 'cross-media', 'synergistic', 'bricks-and-clicks', 'out-of-the-box', 'enterprise', 'integrated', 'impactful', 'wireless', 'transparent', 'next-generation', 'cutting-edge', 'user-centric', 'visionary', 'customized', 'ubiquitous', 'plug-and-play', 'collaborative', 'compelling', 'holistic', 'rich'
+        ),
+        array(
+            'synergies', 'web-readiness', 'paradigms', 'markets', 'partnerships', 'infrastructures', 'platforms', 'initiatives', 'channels', 'eyeballs', 'communities', 'ROI', 'solutions', 'e-tailers', 'e-services', 'action-items', 'portals', 'niches', 'technologies', 'content', 'vortals', 'supply-chains', 'convergence', 'relationships', 'architectures', 'interfaces', 'e-markets', 'e-commerce', 'systems', 'bandwidth', 'infomediaries', 'models', 'mindshare', 'deliverables', 'users', 'schemas', 'networks', 'applications', 'metrics', 'e-business', 'functionalities', 'experiences', 'webservices', 'methodologies'
+        )
+    );
+
+    protected static $companySuffix = array('e Hijo', 'e Hija', 'e Hijos', 'y Asoc.', 'y Flia.', 'SRL', 'SA', 'S. de H.');
+
+    /**
+     * @example 'Robust full-range hub'
+     */
+    public function catchPhrase()
+    {
+        $result = array();
+        foreach (static::$catchPhraseWords as &$word) {
+            $result[] = static::randomElement($word);
+        }
+
+        return join($result, ' ');
+    }
+
+    /**
+     * @example 'integrate extensible convergence'
+     */
+    public function bs()
+    {
+        $result = array();
+        foreach (static::$bsWords as &$word) {
+            $result[] = static::randomElement($word);
+        }
+
+        return join($result, ' ');
+    }
+}

+ 88 - 0
vendor/fzaninotto/faker/src/Faker/Provider/es_AR/Person.php

@@ -0,0 +1,88 @@
+<?php
+
+namespace Faker\Provider\es_AR;
+
+class Person extends \Faker\Provider\Person
+{
+    protected static $formats = array(
+        '{{firstName}} {{lastName}}',
+        '{{firstName}} {{lastName}}',
+        '{{firstName}} {{lastName}}',
+        '{{firstName}} {{lastName}}',
+        '{{firstName}} {{lastName}}',
+        '{{prefix}} {{firstName}} {{lastName}}',
+        '{{firstName}} {{lastName}} {{suffix}}',
+        '{{prefix}} {{firstName}} {{lastName}} {{suffix}}'
+    );
+
+    protected static $firstName = array(
+        'Aarón', 'Abigail', 'Abril', 'Adriana', 'Adrián', 'Agustina', 'Agustín', 'Aitana', 'Alan', 'Alejandra', 'Alejandro', 'Alessandra', 'Alex', 'Alexa', 'Alexander', 'Allison', 'Alma', 'Alonso', 'Amanda', 'Amelia', 'Ana Paula', 'Ana Sofía', 'Ana', 'Andrea', 'Andrés', 'Anthony', 'Antonella', 'Antonia', 'Antonio', 'Ariadna', 'Ariana', 'Ashley', 'Axel',
+        'Bautista', 'Benjamín', 'Bianca', 'Bruno',
+        'Camila', 'Camilo', 'Carla', 'Carlos', 'Carolina', 'Catalina', 'Christian', 'Christopher', 'Clara', 'Constanza', 'Cristóbal',
+        'Damián', 'Daniel', 'Daniela', 'Dante', 'David', 'Delfina', 'Diego Alejandro', 'Diego', 'Dylan',
+        'Eduardo', 'Elena ', 'Elizabeth', 'Elías', 'Emilia', 'Emiliano', 'Emilio', 'Emily', 'Emma', 'Emmanuel', 'Esteban',
+        'Fabiana', 'Facundo', 'Felipe', 'Fernando', 'Florencia', 'Francisco', 'Franco', 'Fátima ',
+        'Gabriel', 'Gabriela', 'Gael', 'Guadalupe',
+        'Hugo', 'Horacio', 'Hidalgo', 'Hipólito',
+        'Ian', 'Ignacio', 'Irene', 'Isaac', 'Isabel', 'Isabella', 'Isidora', 'Ivan', 'Ivanna',
+        'Jacobo', 'Javier', 'Jazmín', 'Jerónimo', 'Jesús', 'Joaquín', 'Jorge', 'José', 'Josefa', 'Josefina', 'Joshua', 'Josué', 'Juan David', 'Juan Diego', 'Juan Esteban', 'Juan José', 'Juan Manuel', 'Juan Martín', 'Juan Pablo', 'Juan Sebastián', 'Juan', 'Juana', 'Julia', 'Juliana', 'Julieta', 'Julián',
+        'Kevin',
+        'Laura', 'Lautaro', 'Leonardo', 'Lola', 'Lorenzo', 'Luana', 'Lucas', 'Luciana', 'Luciano', 'Lucía', 'Luis', 'Luna',
+        'Magdalena', 'Maite', 'Malena', 'Manuel', 'Manuela', 'Mariana', 'Mariangel', 'Mario', 'Martina', 'Martín', 'María Alejandra', 'María Camila', 'María Fernanda', 'María José', 'María Paula', 'María', 'Mateo', 'Matthew', 'Matías', 'Maximiliano', 'Micaela', 'Michelle', 'Miguel Ángel', 'Miguel', 'Miranda', 'Montserrat', 'Máximo', 'Mía',
+        'Nadia', 'Nahuel', 'Natalia', 'Nicole',
+        'Olivia', 'Oliva', 'Ornela',
+        'Pablo', 'Paula', 'Paulina', 'Pedro',
+        'Rafael', 'Rafaela', 'Rebeca', 'Regina', 'Renata', 'Ricardo', 'Rodrigo', 'Romina',
+        'Salomé', 'Samantha', 'Samuel', 'Santiago', 'Santino', 'Sara Sofía', 'Sara', 'Sebastián', 'Sergio', 'Silvana ', 'Simón', 'Sofía', 'Sophie',
+        'Thiago', 'Tomas',
+        'Valentina', 'Valentino', 'Valentín', 'Valeria', 'Valery ', 'Vicente', 'Victoria', 'Violeta',
+        'Ximena/Jimena',
+        'Zoe',
+    );
+
+    protected static $lastName = array(
+        'Abeyta', 'Abrego', 'Abreu', 'Acevedo', 'Acosta', 'Acuña', 'Adame', 'Adorno', 'Agosto', 'Aguayo', 'Águilar', 'Aguilera', 'Aguirre', 'Alanis', 'Alaniz', 'Alarcón', 'Alba', 'Alcala', 'Alcántar', 'Alcaraz', 'Alejandro', 'Alemán', 'Alfaro', 'Alicea', 'Almanza', 'Almaraz', 'Almonte', 'Alonso', 'Alonzo', 'Altamirano', 'Alva', 'Alvarado', 'Álvarez', 'Amador', 'Amaya', 'Anaya', 'Anguiano', 'Angulo', 'Aparicio', 'Apodaca', 'Aponte', 'Aragón', 'Araña', 'Aranda', 'Arce', 'Archuleta', 'Arellano', 'Arenas', 'Arevalo', 'Arguello', 'Arias', 'Armas', 'Armendáriz', 'Armenta', 'Armijo', 'Arredondo', 'Arreola', 'Arriaga', 'Arroyo', 'Arteaga', 'Atencio', 'Ávalos', 'Ávila', 'Avilés', 'Ayala',
+        'Baca', 'Badillo', 'Báez', 'Baeza', 'Bahena', 'Balderas', 'Ballesteros', 'Banda', 'Bañuelos', 'Barajas', 'Barela', 'Barragán', 'Barraza', 'Barrera', 'Barreto', 'Barrientos', 'Barrios', 'Batista', 'Becerra', 'Beltrán', 'Benavides', 'Benavídez', 'Benítez', 'Bermúdez', 'Bernal', 'Berríos', 'Bétancourt', 'Blanco', 'Bonilla', 'Borrego', 'Botello', 'Bravo', 'Briones', 'Briseño', 'Brito', 'Bueno', 'Burgos', 'Bustamante', 'Bustos',
+        'Caballero', 'Cabán', 'Cabrera', 'Cadena', 'Caldera', 'Calderón', 'Calvillo', 'Camacho', 'Camarillo', 'Campos', 'Canales', 'Candelaria', 'Cano', 'Cantú', 'Caraballo', 'Carbajal', 'Cardenas', 'Cardona', 'Carmona', 'Carranza', 'Carrasco', 'Carrasquillo', 'Carreón', 'Carrera', 'Carrero', 'Carrillo', 'Carrion', 'Carvajal', 'Casanova', 'Casares', 'Casárez', 'Casas', 'Casillas', 'Castañeda', 'Castellanos', 'Castillo', 'Castro', 'Cavazos', 'Cazares', 'Ceballos', 'Cedillo', 'Ceja', 'Centeno', 'Cepeda', 'Cerda', 'Cervantes', 'Cervántez', 'Chacón', 'Chapa', 'Chavarría', 'Chávez', 'Cintrón', 'Cisneros', 'Collado', 'Collazo', 'Colón', 'Colunga', 'Concepción', 'Contreras', 'Cordero', 'Córdova', 'Cornejo', 'Corona', 'Coronado', 'Corral', 'Corrales', 'Correa', 'Cortés', 'Cortez', 'Cotto', 'Covarrubias', 'Crespo', 'Cruz', 'Cuellar', 'Curiel',
+        'Dávila', 'de Anda', 'de Jesús', 'Delacrúz', 'Delafuente', 'Delagarza', 'Delao', 'Delapaz', 'Delarosa', 'Delatorre', 'Deleón', 'Delgadillo', 'Delgado', 'Delrío', 'Delvalle', 'Díaz', 'Domínguez', 'Domínquez', 'Duarte', 'Dueñas', 'Duran',
+        'Echevarría', 'Elizondo', 'Enríquez', 'Escalante', 'Escamilla', 'Escobar', 'Escobedo', 'Esparza', 'Espinal', 'Espino', 'Espinosa', 'Espinoza', 'Esquibel', 'Esquivel', 'Estévez', 'Estrada',
+        'Fajardo', 'Farías', 'Feliciano', 'Fernández', 'Ferrer', 'Fierro', 'Figueroa', 'Flores', 'Flórez', 'Fonseca', 'Franco', 'Frías', 'Fuentes',
+        'Gaitán', 'Galarza', 'Galindo', 'Gallardo', 'Gallegos', 'Galván', 'Gálvez', 'Gamboa', 'Gamez', 'Gaona', 'Garay', 'García', 'Garibay', 'Garica', 'Garrido', 'Garza', 'Gastélum', 'Gaytán', 'Gil', 'Girón', 'Godínez', 'Godoy', 'Gómez', 'Gonzales', 'González', 'Gracia', 'Granado', 'Granados', 'Griego', 'Grijalva', 'Guajardo', 'Guardado', 'Guerra', 'Guerrero', 'Guevara', 'Guillen', 'Gurule', 'Gutiérrez', 'Guzmán',
+        'Haro', 'Henríquez', 'Heredia', 'Hernádez', 'Hernandes', 'Hernández', 'Herrera', 'Hidalgo', 'Hinojosa', 'Holguín', 'Huerta', 'Hurtado',
+        'Ibarra', 'Iglesias', 'Irizarry',
+        'Jaime', 'Jaimes', 'Jáquez', 'Jaramillo', 'Jasso', 'Jiménez', 'Jimínez', 'Juárez', 'Jurado',
+        'Laboy', 'Lara', 'Laureano', 'Leal', 'Lebrón', 'Ledesma', 'Leiva', 'Lemus', 'León', 'Lerma', 'Leyva', 'Limón', 'Linares', 'Lira', 'Llamas', 'Loera', 'Lomeli', 'Longoria', 'López', 'Lovato', 'Loya', 'Lozada', 'Lozano', 'Lucero', 'Lucio', 'Luevano', 'Lugo', 'Luján', 'Luna',
+        'Macías', 'Madera', 'Madrid', 'Madrigal', 'Maestas', 'Magaña', 'Malave', 'Maldonado', 'Manzanares', 'Mares', 'Marín', 'Márquez', 'Marrero', 'Marroquín', 'Martínez', 'Mascareñas', 'Mata', 'Mateo', 'Matías', 'Matos', 'Maya', 'Mayorga', 'Medina', 'Medrano', 'Mejía', 'Meléndez', 'Melgar', 'Mena', 'Menchaca', 'Méndez', 'Mendoza', 'Menéndez', 'Meraz', 'Mercado', 'Merino', 'Mesa', 'Meza', 'Miramontes', 'Miranda', 'Mireles', 'Mojica', 'Molina', 'Mondragón', 'Monroy', 'Montalvo', 'Montañez', 'Montaño', 'Montemayor', 'Montenegro', 'Montero', 'Montes', 'Montez', 'Montoya', 'Mora', 'Morales', 'Moreno', 'Mota', 'Moya', 'Munguía', 'Muñiz', 'Muñoz', 'Murillo', 'Muro',
+        'Nájera', 'Naranjo', 'Narváez', 'Nava', 'Navarrete', 'Navarro', 'Nazario', 'Negrete', 'Negrón', 'Nevárez', 'Nieto', 'Nieves', 'Niño', 'Noriega', 'Núñez',
+        'Ocampo', 'Ocasio', 'Ochoa', 'Ojeda', 'Olivares', 'Olivárez', 'Olivas', 'Olivera', 'Olivo', 'Olmos', 'Olvera', 'Ontiveros', 'Oquendo', 'Ordóñez', 'Orellana', 'Ornelas', 'Orosco', 'Orozco', 'Orta', 'Ortega', 'Ortiz', 'Osorio', 'Otero', 'Ozuna',
+        'Pabón', 'Pacheco', 'Padilla', 'Padrón', 'Páez', 'Pagan', 'Palacios', 'Palomino', 'Palomo', 'Pantoja', 'Paredes', 'Parra', 'Partida', 'Patiño', 'Paz', 'Pedraza', 'Pedroza', 'Pelayo', 'Peña', 'Perales', 'Peralta', 'Perea', 'Peres', 'Pérez', 'Pichardo', 'Piña', 'Pineda', 'Pizarro', 'Polanco', 'Ponce', 'Porras', 'Portillo', 'Posada', 'Prado', 'Preciado', 'Prieto', 'Puente', 'Puga', 'Pulido',
+        'Quesada', 'Quezada', 'Quiñones', 'Quiñónez', 'Quintana', 'Quintanilla', 'Quintero', 'Quiroz',
+        'Rael', 'Ramírez', 'Ramón', 'Ramos', 'Rangel', 'Rascón', 'Raya', 'Razo', 'Regalado', 'Rendón', 'Rentería', 'Reséndez', 'Reyes', 'Reyna', 'Reynoso', 'Rico', 'Rincón', 'Riojas', 'Ríos', 'Rivas', 'Rivera', 'Rivero', 'Robledo', 'Robles', 'Rocha', 'Rodarte', 'Rodrígez', 'Rodríguez', 'Rodríquez', 'Rojas', 'Rojo', 'Roldán', 'Rolón', 'Romero', 'Romo', 'Roque', 'Rosado', 'Rosales', 'Rosario', 'Rosas', 'Roybal', 'Rubio', 'Ruelas', 'Ruiz', 'Ruvalcaba',
+        'Saavedra', 'Sáenz', 'Saiz', 'Salas', 'Salazar', 'Salcedo', 'Salcido', 'Saldaña', 'Saldivar', 'Salgado', 'Salinas', 'Samaniego', 'Sanabria', 'Sanches', 'Sánchez', 'Sandoval', 'Santacruz', 'Santana', 'Santiago', 'Santillán', 'Sarabia', 'Sauceda', 'Saucedo', 'Sedillo', 'Segovia', 'Segura', 'Sepúlveda', 'Serna', 'Serrano', 'Serrato', 'Sevilla', 'Sierra', 'Sisneros', 'Solano', 'Solís', 'Soliz', 'Solorio', 'Solorzano', 'Soria', 'Sosa', 'Sotelo', 'Soto', 'Suárez',
+        'Tafoya', 'Tamayo', 'Tamez', 'Tapia', 'Tejada', 'Tejeda', 'Téllez', 'Tello', 'Terán', 'Terrazas', 'Tijerina', 'Tirado', 'Toledo', 'Toro', 'Torres', 'Tórrez', 'Tovar', 'Trejo', 'Treviño', 'Trujillo',
+        'Ulibarri', 'Ulloa', 'Urbina', 'Ureña', 'Urías', 'Uribe', 'Urrutia',
+        'Vaca', 'Valadez', 'Valdés', 'Valdez', 'Valdivia', 'Valencia', 'Valentín', 'Valenzuela', 'Valladares', 'Valle', 'Vallejo', 'Valles', 'Valverde', 'Vanegas', 'Varela', 'Vargas', 'Vásquez', 'Vázquez', 'Vega', 'Vela', 'Velasco', 'Velásquez', 'Velázquez', 'Vélez', 'Véliz', 'Venegas', 'Vera', 'Verdugo', 'Verduzco', 'Vergara', 'Viera', 'Vigil', 'Villa', 'Villagómez', 'Villalobos', 'Villalpando', 'Villanueva', 'Villareal', 'Villarreal', 'Villaseñor', 'Villegas',
+        'Yáñez', 'Ybarra',
+        'Zambrano', 'Zamora', 'Zamudio', 'Zapata', 'Zaragoza', 'Zarate', 'Zavala', 'Zayas', 'Zelaya', 'Zepeda', 'Zúñiga'
+    );
+
+    private static $prefix = array('Sr.', 'Sra.', 'Srita.', 'Dn.', 'Dr.', 'Lic.', 'Ing.');
+
+    private static $suffix = array('Hijo', 'Segundo', 'Tercero');
+
+    /**
+     * @example 'Sra.'
+     */
+    public static function prefix()
+    {
+        return static::randomElement(static::$prefix);
+    }
+
+    /**
+     * @example 'Hijo'
+     */
+    public static function suffix()
+    {
+        return static::randomElement(static::$suffix);
+    }
+}

+ 42 - 0
vendor/fzaninotto/faker/src/Faker/Provider/es_AR/PhoneNumber.php

@@ -0,0 +1,42 @@
+<?php
+
+namespace Faker\Provider\es_AR;
+
+class PhoneNumber extends \Faker\Provider\PhoneNumber
+{
+    protected static $formats = array(
+        '+##(#)##########',
+        '+##(#)##########',
+        '###-###-####',
+        '(##)4###-####',
+        '(##)4###-####',
+        '(##)4###-####',
+        '(##)4###-####',
+        '(##)154###-####',
+        '(##)5###-####',
+        '(##)5###-####',
+        '(##)155###-####',
+        '(##)155###-####',
+        '(##)155###-####',
+        '(##)6###-####',
+        '(###)4##-####',
+        '(###)4##-####',
+        '(###)4##-####',
+        '(###)5##-####',
+        '(###)5##-####',
+        '(###)5##-####',
+        '(###)154##-####',
+        '(###)154##-####',
+        '(###)155##-####',
+        '(###)155##-####',
+        '(###)155##-####',
+        '(####)4#-####',
+        '(####)4#-####',
+        '(####)4#-####',
+        '(####)4#-####',
+        '(####)154#-####',
+        '(####)154#-####',
+        '(####)154#-####',
+        '(####)155#-####',
+    );
+}

+ 101 - 0
vendor/fzaninotto/faker/src/Faker/Provider/es_ES/Address.php

@@ -0,0 +1,101 @@
+<?php
+
+namespace Faker\Provider\es_ES;
+
+class Address extends \Faker\Provider\Address
+{
+    protected static $cityPrefix = array('San', 'Vall', "L'", 'Villa', 'El', 'Los', 'La', 'Las', 'O', 'A', 'Os', 'As');
+    protected static $citySuffix = array('del Vallès', 'del Penedès', 'del Bages', 'de Ulla', 'de Lemos', 'del Mirador', 'de Arriba', 'de la Sierra', 'del Barco', 'de San Pedro', 'del Pozo', 'del Puerto', 'de las Torres', 'Alta', 'Baja', 'Medio');
+    protected static $buildingNumber = array('###', '##', '#');
+    protected static $streetPrefix = array(
+        'Calle', 'Avenida', 'Plaza', 'Paseo', 'Ronda', 'Travesia', 'Camino', 'Carrer', 'Avinguda', 'Plaça', 'Passeig', 'Travessera', 'Rúa', 'Praza', 'Ruela', 'Camiño'
+    );
+    protected static $postcode = array('#####');
+    protected static $community = array(
+        'Andalucía', 'Aragón', 'Principado de Asturias', 'Illes Balears', 'Canarias', 'Cantabria', 'Castilla y León', 'Castilla - La Mancha', 'Cataluña', 'Comunitat Valenciana', 'Extremadura', 'Galicia', 'Comunidad de Madrid', 'Región de Murcia', 'Comunidad Foral de Navarra', 'País Vasco', 'La Rioja', 'Ceuta', 'Melilla'
+    );
+    protected static $state = array(
+        'A Coruña', 'Alava', 'Albacete', 'Alicante', 'Almería', 'Asturias', 'Avila', 'Badajoz', 'Barcelona', 'Burgos', 'Cáceres', 'Cádiz', 'Cantabria', 'Castellón', 'Ceuta', 'Ciudad Real', 'Cuenca', 'Córdoba', 'Girona', 'Granada', 'Guadalajara', 'Guipuzkoa', 'Huelva', 'Huesca', 'Illes Balears', 'Jaén', 'La Rioja', 'Las Palmas', 'León', 'Lleida', 'Lugo', 'Málaga', 'Madrid', 'Melilla', 'Murcia', 'Navarra', 'Ourense', 'Palencia', 'Pontevedra', 'Salamanca', 'Segovia', 'Sevilla', 'Soria', 'Sta Cruz De Tenerife', 'Tarragona', 'Teruel', 'Toledo', 'Valencia', 'Valladolid', 'Vizcaya', 'Zamora', 'Zaragoza'
+    );
+    protected static $country = array(
+        'Afganistán','Albania','Alemania','Andorra','Angola','Antigua y Barbuda','Arabia Saudí','Argelia','Argentina','Armenia','Australia','Austria','Azerbaiyán',
+        'Bahamas','Bangladés','Barbados','Baréin','Belice','Benín','Bielorrusia','Birmania','Bolivia','Bosnia-Herzegovina','Botsuana','Brasil','Brunéi Darusalam','Bulgaria','Burkina Faso','Burundi','Bután','Bélgica',
+        'Cabo Verde','Camboya','Camerún','Canadá','Catar','Chad','Chile','China','Chipre','Ciudad del Vaticano','Colombia','Comoras','Congo','Corea del Norte','Corea del Sur','Costa Rica','Costa de Marfil','Croacia','Cuba',
+        'Dinamarca','Dominica',
+        'Ecuador','Egipto','El Salvador','Emiratos Árabes Unidos','Eritrea','Eslovaquia','Eslovenia','España','Estados Unidos de América','Estonia','Etiopía',
+        'Filipinas','Finlandia','Fiyi','Francia',
+        'Gabón','Gambia','Georgia','Ghana','Granada','Grecia','Guatemala','Guinea','Guinea Ecuatorial','Guinea-Bisáu','Guyana',
+        'Haití','Honduras','Hungría',
+        'India','Indonesia','Irak','Irlanda','Irán','Islandia','Islas Marshall','Islas Salomón','Israel','Italia',
+        'Jamaica','Japón','Jordania',
+        'Kazajistán','Kenia','Kirguistán','Kiribati','Kuwait',
+        'Laos','Lesoto','Letonia','Liberia','Libia','Liechtenstein','Lituania','Luxemburgo','Líbano',
+        'Macedonia','Madagascar','Malasia','Malaui','Maldivas','Mali','Malta','Marruecos','Mauricio','Mauritania','Micronesia','Moldavia','Mongolia','Montenegro','Mozambique','México','Mónaco',
+        'Namibia','Nauru','Nepal','Nicaragua','Nigeria','Noruega','Nueva Zelanda','Níger',
+        'Omán',
+        'Pakistán','Palaos','Panamá','Papúa Nueva Guinea','Paraguay','Países Bajos','Perú','Polonia','Portugal',
+        'Reino Unido','Reino Unido de Gran Bretaña e Irlanda del Norte','República Centroafricana','República Checa','República Democrática del Congo','República Dominicana','Ruanda','Rumanía','Rusia',
+        'Samoa','San Cristóbal y Nieves','San Marino','San Vicente y las Granadinas','Santa Lucía','Santo Tomé y Príncipe','Senegal','Serbia','Seychelles','Sierra Leona','Singapur','Siria','Somalia','Sri Lanka','Suazilandia','Sudáfrica','Sudán','Suecia','Suiza','Surinam',
+        'Tailandia','Tanzania','Tayikistán','Timor Oriental','Togo','Tonga','Trinidad y Tobago','Turkmenistán','Turquía','Tuvalu','Túnez',
+        'Ucrania','Uganda','Uruguay','Uzbekistán',
+        'Vanuatu','Venezuela','Vietnam',
+        'Yemen','Yibuti',
+        'Zambia','Zimbabue'
+    );
+    protected static $cityFormats = array(
+        '{{cityPrefix}} {{lastName}} {{citySuffix}}',
+        '{{cityPrefix}} {{lastName}}',
+        '{{lastName}} {{citySuffix}}',
+    );
+    protected static $streetNameFormats = array(
+        '{{streetPrefix}} {{firstName}}',
+        '{{streetPrefix}} {{lastName}}'
+    );
+    protected static $streetAddressFormats = array(
+        '{{streetName}}, {{buildingNumber}}, {{secondaryAddress}}',
+    );
+    protected static $addressFormats = array(
+        "{{streetAddress}}, {{postcode}}, {{city}}"
+    );
+    protected static $secondaryAddressFormats = array('Bajos', 'Ático #º', 'Entre suelo #º', 'Bajo #º', '#º', '#º A', '#º B', '#º C', '#º D', '#º E', '#º F', '##º A', '##º B', '##º C', '##º D', '##º E', '##º F', '#º #º', '##º #º');
+
+    /**
+     * @example 'Avenida'
+     */
+    public static function streetPrefix()
+    {
+        return static::randomElement(static::$streetPrefix);
+    }
+
+    /**
+     * @example 'Villa'
+     */
+    public static function cityPrefix()
+    {
+        return static::randomElement(static::$cityPrefix);
+    }
+
+    /**
+     * @example '3ºA'
+     */
+    public static function secondaryAddress()
+    {
+        return static::numerify(static::randomElement(static::$secondaryAddressFormats));
+    }
+
+    /**
+     * @example 'Barcelona'
+     */
+    public static function state()
+    {
+        return static::randomElement(static::$state);
+    }
+
+    /**
+     * @example 'Comunidad de Madrid'
+     */
+    public static function community()
+    {
+        return static::randomElement(static::$community);
+    }
+}

+ 80 - 0
vendor/fzaninotto/faker/src/Faker/Provider/es_ES/Company.php

@@ -0,0 +1,80 @@
+<?php
+
+namespace Faker\Provider\es_ES;
+
+class Company extends \Faker\Provider\Company
+{
+    protected static $formats = array(
+        '{{companyPrefix}} {{lastName}} {{companySuffix}}',
+        '{{companyPrefix}} {{lastName}}',
+        '{{companyPrefix}} {{lastName}}-{{lastName}}',
+        '{{lastName}}-{{lastName}} {{companySuffix}}',
+        '{{lastName}} y {{lastName}} {{companySuffix}}',
+        '{{lastName}} de {{lastName}} {{companySuffix}}',
+        '{{lastName}}, {{lastName}} y {{lastName}} {{companySuffix}}',
+        '{{lastName}}-{{lastName}}',
+        '{{lastName}} y {{lastName}}',
+        '{{lastName}} de {{lastName}}'
+    );
+
+    protected static $catchPhraseWords = array(
+        array(
+            'Adaptive', 'Advanced', 'Ameliorated', 'Assimilated', 'Automated', 'Balanced', 'Business-focused', 'Centralized', 'Cloned', 'Compatible', 'Configurable', 'Cross-group', 'Cross-platform', 'Customer-focused', 'Customizable', 'Decentralized', 'De-engineered', 'Devolved', 'Digitized', 'Distributed', 'Diverse', 'Down-sized', 'Enhanced', 'Enterprise-wide', 'Ergonomic', 'Exclusive', 'Expanded', 'Extended', 'Facetoface', 'Focused', 'Front-line', 'Fully-configurable', 'Function-based', 'Fundamental', 'Future-proofed', 'Grass-roots', 'Horizontal', 'Implemented', 'Innovative', 'Integrated', 'Intuitive', 'Inverse', 'Managed', 'Mandatory', 'Monitored', 'Multi-channelled', 'Multi-lateral', 'Multi-layered', 'Multi-tiered', 'Networked', 'Object-based', 'Open-architected', 'Open-source', 'Operative', 'Optimized', 'Optional', 'Organic', 'Organized', 'Persevering', 'Persistent', 'Phased', 'Polarised', 'Pre-emptive', 'Proactive', 'Profit-focused', 'Profound', 'Programmable', 'Progressive', 'Public-key', 'Quality-focused', 'Reactive', 'Realigned', 'Re-contextualized', 'Re-engineered', 'Reduced', 'Reverse-engineered', 'Right-sized', 'Robust', 'Seamless', 'Secured', 'Self-enabling', 'Sharable', 'Stand-alone', 'Streamlined', 'Switchable', 'Synchronised', 'Synergistic', 'Synergized', 'Team-oriented', 'Total', 'Triple-buffered', 'Universal', 'Up-sized', 'Upgradable', 'User-centric', 'User-friendly', 'Versatile', 'Virtual', 'Visionary', 'Vision-oriented'
+        ),
+        array(
+            '24hour', '24/7', '3rdgeneration', '4thgeneration', '5thgeneration', '6thgeneration', 'actuating', 'analyzing', 'assymetric', 'asynchronous', 'attitude-oriented', 'background', 'bandwidth-monitored', 'bi-directional', 'bifurcated', 'bottom-line', 'clear-thinking', 'client-driven', 'client-server', 'coherent', 'cohesive', 'composite', 'context-sensitive', 'contextually-based', 'content-based', 'dedicated', 'demand-driven', 'didactic', 'directional', 'discrete', 'disintermediate', 'dynamic', 'eco-centric', 'empowering', 'encompassing', 'even-keeled', 'executive', 'explicit', 'exuding', 'fault-tolerant', 'foreground', 'fresh-thinking', 'full-range', 'global', 'grid-enabled', 'heuristic', 'high-level', 'holistic', 'homogeneous', 'human-resource', 'hybrid', 'impactful', 'incremental', 'intangible', 'interactive', 'intermediate', 'leadingedge', 'local', 'logistical', 'maximized', 'methodical', 'mission-critical', 'mobile', 'modular', 'motivating', 'multimedia', 'multi-state', 'multi-tasking', 'national', 'needs-based', 'neutral', 'nextgeneration', 'non-volatile', 'object-oriented', 'optimal', 'optimizing', 'radical', 'real-time', 'reciprocal', 'regional', 'responsive', 'scalable', 'secondary', 'solution-oriented', 'stable', 'static', 'systematic', 'systemic', 'system-worthy', 'tangible', 'tertiary', 'transitional', 'uniform', 'upward-trending', 'user-facing', 'value-added', 'web-enabled', 'well-modulated', 'zeroadministration', 'zerodefect', 'zerotolerance'
+        ),
+        array(
+            'ability', 'access', 'adapter', 'algorithm', 'alliance', 'analyzer', 'application', 'approach', 'architecture', 'archive', 'artificialintelligence', 'array', 'attitude', 'benchmark', 'budgetarymanagement', 'capability', 'capacity', 'challenge', 'circuit', 'collaboration', 'complexity', 'concept', 'conglomeration', 'contingency', 'core', 'customerloyalty', 'database', 'data-warehouse', 'definition', 'emulation', 'encoding', 'encryption', 'extranet', 'firmware', 'flexibility', 'focusgroup', 'forecast', 'frame', 'framework', 'function', 'functionalities', 'GraphicInterface', 'groupware', 'GraphicalUserInterface', 'hardware', 'help-desk', 'hierarchy', 'hub', 'implementation', 'info-mediaries', 'infrastructure', 'initiative', 'installation', 'instructionset', 'interface', 'internetsolution', 'intranet', 'knowledgeuser', 'knowledgebase', 'localareanetwork', 'leverage', 'matrices', 'matrix', 'methodology', 'middleware', 'migration', 'model', 'moderator', 'monitoring', 'moratorium', 'neural-net', 'openarchitecture', 'opensystem', 'orchestration', 'paradigm', 'parallelism', 'policy', 'portal', 'pricingstructure', 'processimprovement', 'product', 'productivity', 'project', 'projection', 'protocol', 'securedline', 'service-desk', 'software', 'solution', 'standardization', 'strategy', 'structure', 'success', 'superstructure', 'support', 'synergy', 'systemengine', 'task-force', 'throughput', 'time-frame', 'toolset', 'utilisation', 'website', 'workforce'
+        )
+    );
+
+    protected static $bsWords = array(
+        array(
+            'implement', 'utilize', 'integrate', 'streamline', 'optimize', 'evolve', 'transform', 'embrace', 'enable', 'orchestrate', 'leverage', 'reinvent', 'aggregate', 'architect', 'enhance', 'incentivize', 'morph', 'empower', 'envisioneer', 'monetize', 'harness', 'facilitate', 'seize', 'disintermediate', 'synergize', 'strategize', 'deploy', 'brand', 'grow', 'target', 'syndicate', 'synthesize', 'deliver', 'mesh', 'incubate', 'engage', 'maximize', 'benchmark', 'expedite', 'reintermediate', 'whiteboard', 'visualize', 'repurpose', 'innovate', 'scale', 'unleash', 'drive', 'extend', 'engineer', 'revolutionize', 'generate', 'exploit', 'transition', 'e-enable', 'iterate', 'cultivate', 'matrix', 'productize', 'redefine', 'recontextualize'
+        ),
+        array(
+            'clicks-and-mortar', 'value-added', 'vertical', 'proactive', 'robust', 'revolutionary', 'scalable', 'leading-edge', 'innovative', 'intuitive', 'strategic', 'e-business', 'mission-critical', 'sticky', 'one-to-one', '24/7', 'end-to-end', 'global', 'B2B', 'B2C', 'granular', 'frictionless', 'virtual', 'viral', 'dynamic', '24/365', 'best-of-breed', 'killer', 'magnetic', 'bleeding-edge', 'web-enabled', 'interactive', 'dot-com', 'sexy', 'back-end', 'real-time', 'efficient', 'front-end', 'distributed', 'seamless', 'extensible', 'turn-key', 'world-class', 'open-source', 'cross-platform', 'cross-media', 'synergistic', 'bricks-and-clicks', 'out-of-the-box', 'enterprise', 'integrated', 'impactful', 'wireless', 'transparent', 'next-generation', 'cutting-edge', 'user-centric', 'visionary', 'customized', 'ubiquitous', 'plug-and-play', 'collaborative', 'compelling', 'holistic', 'rich'
+        ),
+        array(
+            'synergies', 'web-readiness', 'paradigms', 'markets', 'partnerships', 'infrastructures', 'platforms', 'initiatives', 'channels', 'eyeballs', 'communities', 'ROI', 'solutions', 'e-tailers', 'e-services', 'action-items', 'portals', 'niches', 'technologies', 'content', 'vortals', 'supply-chains', 'convergence', 'relationships', 'architectures', 'interfaces', 'e-markets', 'e-commerce', 'systems', 'bandwidth', 'infomediaries', 'models', 'mindshare', 'deliverables', 'users', 'schemas', 'networks', 'applications', 'metrics', 'e-business', 'functionalities', 'experiences', 'webservices', 'methodologies'
+        )
+    );
+
+    protected static $companyPrefix = array('Asociación', 'Centro', 'Corporación', 'Empresa', 'Gestora', 'Global', 'Grupo', 'Viajes', 'Air');
+    protected static $companySuffix = array('e Hijo', 'e Hija', 'e Hijos', 'y Asoc.', 'y Flia.', 'SRL', 'SA', 'S. de H.');
+
+    /**
+     * @example 'Grupo'
+     */
+    public static function companyPrefix()
+    {
+        return static::randomElement(static::$companyPrefix);
+    }
+
+    /**
+     * @example 'Robust full-range hub'
+     */
+    public function catchPhrase()
+    {
+        $result = array();
+        foreach (static::$catchPhraseWords as &$word) {
+            $result[] = static::randomElement($word);
+        }
+
+        return join($result, ' ');
+    }
+
+    /**
+     * @example 'integrate extensible convergence'
+     */
+    public function bs()
+    {
+        $result = array();
+        foreach (static::$bsWords as &$word) {
+            $result[] = static::randomElement($word);
+        }
+
+        return join($result, ' ');
+    }
+}

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 22 - 0
vendor/fzaninotto/faker/src/Faker/Provider/es_ES/Person.php


+ 29 - 0
vendor/fzaninotto/faker/src/Faker/Provider/es_ES/PhoneNumber.php

@@ -0,0 +1,29 @@
+<?php
+
+namespace Faker\Provider\es_ES;
+
+class PhoneNumber extends \Faker\Provider\PhoneNumber
+{
+    protected static $formats = array(
+        '+34 9## ## ####',
+        '+34 9## ######',
+        '+34 9########',
+        '+34 9##-##-####',
+        '+34 9##-######',
+        '9## ## ####',
+        '9## ######',
+        '9########',
+        '9##-##-####',
+        '9##-######',
+        '+34 6## ## ####',
+        '+34 6## ######',
+        '+34 6########',
+        '+34 6##-##-####',
+        '+34 6##-######',
+        '6## ## ####',
+        '6## ######',
+        '6########',
+        '6##-##-####',
+        '6##-######',
+    );
+}

+ 85 - 0
vendor/fzaninotto/faker/src/Faker/Provider/fi_FI/Address.php

@@ -0,0 +1,85 @@
+<?php
+
+namespace Faker\Provider\fi_FI;
+
+class Address extends \Faker\Provider\Address
+{
+    protected static $cityPrefix = array('Pohjois', 'Etelä', 'Itä', 'Länsi', 'Uusi', 'Uus');
+    protected static $citySuffix = array('kylä', 'niemi', 'järvi', 'joki', 'lampi', 'mäki', 'vesi', 'niemi', 'harju', 'lahti', 'harju', 'salmi', 'koski', 'pudas', 'saari');
+    protected static $buildingNumber = array('####', '###', '##', '#', '#');
+    protected static $streetSuffix = array(
+        'tie', 'kuja', 'polku', 'kierros', 'kulma', 'katu', 'kaarre', 'kaari', 'rinne', 'kaarto', 'haka', 'silta', 'rinne', 'töyry'
+    );
+    protected static $postcode = array('#####');
+    protected static $state = array(
+        'Ahvenanmaa', 'Etelä-Karjala', 'Etelä-Pohjanmaa', 'Etelä-Savo', 'Kainuu', 'Kanta-Häme', 'Keski-Pohjanmaa', 'Keski-Suomi', 'Kymenlaakso', 'Lappi', 'Pirkanmaa', 'Pohjanmaa', 'Pohjois-Karjala', 'Pohjois-Pohjanmaa', 'Pohjois-Savo', 'Päijät-Häme', 'Satakunta', 'Uusimaa', 'Varsinais-Suomi'
+    );
+    protected static $country = array(
+        'Afganistan', 'Alankomaat', 'Albania', 'Algeria', 'Andorra', 'Angola', 'Antigua ja Barbuda', 'Argentiina', 'Armenia', 'Australia', 'Azerbaidẑan',
+        'Bahama', 'Bahrain', 'Bangladesh', 'Barbados', 'Belgia', 'Belize', 'Benin', 'Bhutan', 'Bolivia', 'Bosnia ja Hertsegovina', 'Botswana', 'Brasilia', 'Brunel', 'Bulgaria', 'Burkina Faso', 'Burundi',
+        'Chile', 'Costa Rica',
+        'Djibouti', 'Dominica', 'Dominikaaninen tasavalta',
+        'Ecuador', 'Egypti', 'El Salvador', 'Eritrea', 'Espanja', 'Etelä-Afrikka', 'Etelä-Korea', 'Etelä-Sudan', 'Etiopia', 'Fidẑi', 'Filippiinit',
+        'Gabon', 'Gambia', 'Georgia', 'Ghana', 'Grenada', 'Guatemala', 'Guinea-Bissau', 'Guinea', 'Guyana',
+        'Haiti', 'Honduras',
+        'Indonesia', 'Intia', 'Irak', 'Iran', 'Irlanti', 'Islanti', 'Israel', 'Italia', 'Itä-Timor', 'Itävalta',
+        'Jamaika', 'Japani', 'Jemen', 'Jordania',
+        'Kambodẑa', 'Kamerun', 'Kanada', 'Kap Verde', 'Kazakstan', 'Kenia', 'Keski-Afrikan tasavalta', 'Kiina', 'Kirgisia', 'Kiribati', 'Kolumbia', 'Komorit', 'Kongon demokraattinen tasavalta', 'Kongon tasavalta', 'Kosovo', 'Kreikka', 'Kroatia', 'Kuuba', 'Kuwait', 'Kypros',
+        'Laos', 'Latvia', 'Lesotho', 'Libanon', 'Liberai', 'Libya', 'Lichtenstein', 'Liettua', 'Luxemburg',
+        'Madagaskar', 'Makedonia', 'Malawi', 'Malediivit', 'Malesia', 'Mali', 'Malta', 'Marokko', 'Marshallinsaaret', 'Mauritania', 'Mauritius', 'Meksiko', 'Mikronesia', 'Moldova', 'Monaco', 'Mongolia', 'Montenegro', 'Mosambik', 'Myanmar',
+        'Namibia', 'Nauru', 'Nepal', 'Nicaragua', 'Nigeria', 'Niger', 'Norja', 'Norsunluurannikko',
+        'Oman',
+        'Pakistan', 'Palau', 'Panama', 'Papua-Uusi-Guinea', 'Paraguay', 'Peru', 'Pohjois-Korea', 'Portugali', 'Puola', 'Päiväntasaajan Guinea',
+        'Qatar',
+        'Ranska', 'Romania', 'Ruanda', 'Ruotsi',
+        'Saint Kitts ja Nevis', 'Saint Lucia', 'Saint Vincent ja Grenadiinit', 'Saksa', 'Salomonsaaret', 'Sambia', 'Samoa', 'San Marino', 'São Tomé ja Príncipe', 'Saudi-Arabia', 'Senegal', 'Serbia', 'Seychellit', 'Sierra Leone', 'Singapore', 'Slovakia', 'Somalia', 'Sri Lanka', 'Sudan', 'Suomi', 'Suriname', 'Swazimaa', 'Sveitsi', 'Syyria',
+        'Tadẑikistan', 'Tansania', 'Tanska', 'Thaimaa', 'Togo', 'Tonga', 'Trinidad ja Tobago', 'Tšad', 'Tšekki', 'Tunisia', 'Turkki', 'Turkmenistan', 'Tuvalu',
+        'Uganda', 'Ukraina', 'Unkari', 'Uruguay', 'Uusi-Seelanti', 'Uzbekistan',
+        'Valko-Venäjä', 'Vanuatu', 'Vatikaanivaltio', 'Venzuela', 'Venäjä', 'Vietnam', 'Viro',
+        'Yhdistyneet Arabiemiirikunnat', 'Yhdistynyt kuningaskunta', 'Yhdysvallat',
+        'Zimbabwe'
+    );
+    protected static $cityFormats = array(
+        '{{cityPrefix}}-{{firstName}}{{citySuffix}}',
+        '{{cityPrefix}}-{{firstName}}',
+        '{{firstName}}{{citySuffix}}',
+        '{{lastName}}{{citySuffix}}',
+    );
+    protected static $streetNameFormats = array(
+        '{{firstName}}{{streetSuffix}}',
+        '{{lastName}}{{streetSuffix}}'
+    );
+    protected static $streetAddressFormats = array(
+        '{{streetName}} {{buildingNumber}}',
+        '{{streetName}} {{buildingNumber}} {{secondaryAddress}}'
+    );
+    protected static $addressFormats = array(
+        "{{streetAddress}}\n{{postcode}} {{city}}, {{state}}",
+        "{{streetAddress}}\n{{postcode}} {{city}}",
+    );
+    protected static $secondaryAddressFormats = array('###');
+
+    /**
+     * @example 'Pohjois'
+     */
+    public static function cityPrefix()
+    {
+        return static::randomElement(static::$cityPrefix);
+    }
+
+    /**
+     * @example '123'
+     */
+    public static function secondaryAddress()
+    {
+        return static::numerify(static::randomElement(static::$secondaryAddressFormats));
+    }
+
+    /**
+     * @example 'Pohjois-Pohjanmaa'
+     */
+    public static function state()
+    {
+        return static::randomElement(static::$state);
+    }
+}

+ 64 - 0
vendor/fzaninotto/faker/src/Faker/Provider/fi_FI/Company.php

@@ -0,0 +1,64 @@
+<?php
+
+namespace Faker\Provider\fi_FI;
+
+class Company extends \Faker\Provider\Company
+{
+    protected static $formats = array(
+        '{{lastName}} {{companySuffix}}',
+        '{{lastName}}-{{lastName}}',
+        '{{lastName}}, {{lastName}} and {{lastName}}'
+    );
+
+    protected static $catchPhraseWords = array(
+        array(
+            'Ainoa', 'Adaptiivinen', 'Automatisoitu', 'Avoin', 'Avoimen lähdekoodin', 'Digitalisoitu', 'Dynaaminen', 'Erikoistunut', 'Ennakoiva', 'Ergonominen', 'Hallittu', 'Hajautettu', 'Horisontaalinen', 'Integroitu', 'Innovatiivinen', 'Jaettava', 'Keskittynyt', 'Käyttäjäystävällinen', 'Laajenettu', 'Laajennettava', 'Lievittävä', 'Maailmanlaajuinen', 'Muokattava', 'Monitoroitu', 'Monikerroksinen', 'Ohjelmoitava', 'Optimoitu', 'Organisoitu', 'Orgaaninen', 'Rinnastettava', 'Räätälöitävä', 'Saumaton', 'Tasapainotettava', 'Täysin yhteensopiva', 'Yhteensopiva', 'Yksinomainen', 'Vaiheittainen', 'Virtuaalinen', 'Visionäärinen', 'Valinnainen', 'Verkostoitunut'
+        ),
+        array(
+            '24/7', '3. sukupolven', '4. sukupolven', '5. sukupolven', '6. sukupolven', 'alueellinen', 'analysoiva', 'assymmetrinen', 'asynkroninen', 'asiakaslähtöinen', 'dynaaminen', 'globaali', 'heuristinen', 'hybridi', 'inkrementaalinen', 'interaktiivinen', 'kahtiajakautuva', 'kaksisuuntainen', 'konkreettinen', 'korkean tason', 'logistinen', 'johdonmukainen', 'maksimaalinen', 'moniajettava', 'multimedia', 'optimaalinen', 'optimoiva', 'omistautunut', 'paikallinen', 'reaaliaikainen', 'seuraavan sukupolven', 'skaalautuva', 'systeeminen'
+        ),
+        array(
+            'algoritmi', 'yhteisö', 'analysaattori', 'sovellus', 'lähestymistapa', 'arkkitehtuuri', 'arkisto', 'ryhmä', 'sovitin', 'benchmark', 'kapasiteetti', 'tietokanta', 'piiri', 'emulaatio', 'konsepti', 'firmware', 'rakenne', 'funktio', 'rauta', 'help-desk', 'hierarkia', 'hubi', 'implementaatio', 'intranet', 'malli', 'ohjelmisto', 'ratkaisu', 'strategia', 'menestys', 'projekti', 'tuote', 'tuki', 'www-sivusto', 'synergia', 'protokolla', 'koodaus', 'ennuste', 'joustavuus', 'extranet', 'salaus', 'kompleksisuus', 'ydin', 'asenne', 'liitto', 'internetratkaisu', 'asennus', 'monitorointi', 'infrastruktuuri'
+        )
+    );
+
+    protected static $bsWords = array(
+        array(
+            'implementoi', 'käyttää', 'integroi', 'optimoi', 'kehittää', 'muuntaa', 'omaksuu', 'mahdollistaa', 'orkestoi', 'uudelleenkeksii', 'kerää', 'kokoaa', 'kasvattaa', 'parantaa', 'helpottaa', 'toimittaa', 'antaa', 'täyttää', 'vapauttaa', 'ajaa', 'jatkaa', 'mullistaa', 'iteroi', 'generoi', 'hyödyntää', 'brandaa', 'muokkaa', 'kasvattaa', 'kytkee', 'innovoi', 'viljelee', 'visualisoi'
+        ),
+        array(
+            'maailmanluokan', '24/7', 'maailmanlaajuisia', 'interaktiivisia', 'seksikkäitä', 'rikkaita', 'visionäärisiä', 'parhaita', 'viraaleja', 'dynaamisia', 'strategisia', 'vallankumouksellisia', '24/365', 'e-bisnes', 'virtuaalisia', 'intuitiivisia', 'ennakoivia', 'kitkattomia', 'jaettuja', 'reaaliaikaisia', 'huippuluokan', 'tehokkaita', 'suorituskykyisiä', 'pystyviä', 'laajennettavissa olevia', 'venyviä', 'yhteisvaikutteisia', 'seuraavan sukupolven', 'plug-and-play', 'yhteistyökykyisiä', 'kustomoituja', 'langattomia', 'selkeitä', 'avoimen lähdekoodin'
+        ),
+        array(
+            'kanavia', 'silmämunia', 'ratkaisuja', 'e-palveluja', 'portaaleja', 'teknologioita', 'käyttäjiä', 'verkkoja', 'palveluita', 'ohjelmia', 'web-ohjelmistoja', 'kokemuksia', 'systeemejä', 'rajapintoja', 'yhteisöjä', 'markkinarakoja', 'skeemoja', 'arkkitehtuureja', 'malleja', 'sisältöä', 'mainoksia'
+        )
+    );
+
+    protected static $companySuffix = array('OY', 'AB', 'OY AB', 'RY', 'OYj', 'Tmi.', 'Inc.', 'Ltd');
+
+    /**
+     * @example 'Ainoa 3.sukupolven ohjelmisto'
+     */
+    public function catchPhrase()
+    {
+        $result = array();
+        foreach (static::$catchPhraseWords as &$word) {
+            $result[] = static::randomElement($word);
+        }
+
+        return join($result, ' ');
+    }
+
+    /**
+     * @example 'hyödyntää maailmanlaajuisia yhteisöjä'
+     */
+    public function bs()
+    {
+        $result = array();
+        foreach (static::$bsWords as &$word) {
+            $result[] = static::randomElement($word);
+        }
+
+        return join($result, ' ');
+    }
+}

+ 10 - 0
vendor/fzaninotto/faker/src/Faker/Provider/fi_FI/Internet.php

@@ -0,0 +1,10 @@
+<?php
+
+namespace Faker\Provider\fi_FI;
+
+class Internet extends \Faker\Provider\Internet
+{
+    protected static $safeEmailTld = array('org', 'com', 'net', 'fi');
+    protected static $freeEmailDomain = array('gmail.com', 'yahoo.com', 'hotmail.com', 'jippii.fi', 'luukku.com');
+    protected static $tld = array('com', 'com', 'com', 'com', 'com', 'com', 'biz', 'info', 'net', 'org', 'fi');
+}

+ 75 - 0
vendor/fzaninotto/faker/src/Faker/Provider/fi_FI/Person.php

@@ -0,0 +1,75 @@
+<?php
+
+namespace Faker\Provider\fi_FI;
+
+class Person extends \Faker\Provider\Person
+{
+    protected static $formats = array(
+        '{{firstName}} {{lastName}}',
+        '{{firstName}} {{lastName}}',
+        '{{firstName}} {{lastName}}',
+        '{{firstName}} {{lastName}}',
+        '{{firstName}} {{lastName}}',
+        '{{prefix}} {{firstName}} {{lastName}}'
+    );
+
+    protected static $firstName = array(
+        'Aada', 'Aamu', 'Ada', 'Aina', 'Aino', 'Aliina', 'Aliisa', 'Amanda', 'Amalia', 'Amelia', 'Amira', 'Anissa', 'Anna', 'Anne', 'Anni', 'Anniina', 'Annilotta', 'Annu', 'Aune', 'Asta', 'Aura', 'Aurora', 'Aake', 'Aapeli', 'Aapo', 'Aappo', 'Aarni', 'Aaro', 'Aatto', 'Aatu', 'Aki', 'Akseli', 'Aku', 'Aleksi', 'Anssi', 'Antti', 'Antton', 'Ari', 'Arttu', 'Artturi', 'Atte', 'Anita', 'Anu', 'Antero', 'Atte',
+        'Beeda', 'Briitta', 'Bella',
+        'Cara', 'Celina', 'Christa', 'Clara', 'Christel', 'Cornelia',
+        'Daniel', 'Dani',
+        'Eeli', 'Eelis', 'Eemeli', 'Eero', 'Eetu', 'Ekku', 'Elias', 'Eljas', 'Esa', 'Elmo', 'Emil', 'Eerika', 'Eeva', 'Eevi', 'Elea', 'Eliina', 'Elina', 'Elisa', 'Elise', 'Ella', 'Ellen', 'Elviira', 'Emma', 'Emmaliina', 'Emmi', 'Emilia', 'Enna', 'Enni', 'Ennika', 'Eveliina', 'Eva', 'Eija', 'Elma', 'Erja', 'Essi', 'Erkki', 'Erkko',
+        'Fanni', 'Fiona',
+        'Hampus', 'Hannu', 'Harri', 'Heikki', 'Henri', 'Hermanni', 'Hanna', 'Helinä', 'Helmi', 'Helmiina', 'Henna', 'Henniina', 'Hertta', 'Hilda', 'Hilja', 'Hilla', 'Hilma', 'Hilppa', 'Heli', 'Heidi',
+        'Iia', 'Iida', 'Iina', 'Iiris', 'Iita', 'Ilona', 'Inka', 'Inkeri', 'Inna', 'Isabella', 'Iiro', 'Ilja', 'Ilmari', 'Isto',
+        'Jaakko', 'Jake', 'Jami', 'Jani', 'Janne', 'Jarno', 'Jere', 'Jermia', 'Jeremy', 'Jesper', 'Jesse', 'Jimi', 'Jirko', 'Joel', 'Joakim', 'Joni', 'Jooa', 'Joona', 'Joonas', 'Joonatan', 'Juho', 'Jore', 'Juha', 'Jukka', 'Julius', 'Junnu', 'Justus', 'Jusu', 'Juuso', 'Jade', 'Jadessa', 'Janette', 'Janika', 'Janina', 'Janita', 'Janna', 'Janni', 'Jasmiina', 'Jemina', 'Jenna', 'Jenika', 'Jenni', 'Jessica', 'Johanna', 'Jonna', 'Julia', 'Juttamari', 'Juulia', 'Jari', 'Jussi',
+        'Kaisla', 'Karla', 'Kaste', 'Katri', 'Kati', 'Kia', 'Kalle', 'Karri', 'Kasperi', 'Kauto', 'Kimi', 'Konsta', 'Kristian', 'Kaija', 'Kaisu', 'Katja', 'Kirsi', 'Krista',
+        'Lari', 'Lassi', 'Lauri', 'Leevi', 'Leo', 'Levin', 'Luca', 'Lukas', 'Luukas', 'Laura', 'Lila', 'Linnea', 'Lotta', 'Loviisa', 'Lumina', 'Lea',
+        'Maia', 'Maija', 'Maiju', 'Maisa', 'Malla', 'Mari', 'Maria', 'Martta', 'Matleena', 'Meeri', 'Meri', 'Mette', 'Mia', 'Minna', 'Miina', 'Milla', 'Mimi', 'Mimmu', 'Mimosa', 'Minea', 'Minttu', 'Mira', 'Mirella', 'Magnus', 'Markus', 'Matias', 'Matti', 'Miika', 'Mika', 'Mikael', 'Miska', 'Maarit', 'Mirva', 'Marko', 'Mikko',
+        'Neo', 'Niklas', 'Niko', 'Nico', 'Nuutti', 'Nea', 'Neea', 'Nella', 'Nelli', 'Nia', 'Niina', 'Ninni', 'Noora', 'Nadja', 'Natalia',
+        'Oliivia', 'Olivia', 'Oona', 'Oliver', 'Onni', 'Oskari', 'Ossi', 'Otto', 'Olga', 'Outi', 'Osmo',
+        'Paavo', 'Patrik', 'Paulus', 'Peetu', 'Pekko', 'Pyry', 'Pauliina', 'Peppi', 'Petra', 'Pihla', 'Piia', 'Pinja', 'Pirkko', 'Paula', 'Pia', 'Päivi', 'Pasi', 'Pekka', 'Petteri', 'Petri', 'Pertti',
+        'Riia', 'Riikka', 'Riina', 'Ronja', 'Roosa', 'Rami', 'Rasmus', 'Riku', 'Roni', 'Roope', 'Reetta', 'Reeta', 'Ritva', 'Risto',
+        'Saku', 'Sami', 'Sampo', 'Samu', 'Samuel', 'Samuli', 'Santeri', 'Santtu', 'Simo,', 'Sisu', 'Sanna', 'Sari', 'Satu', 'Sirpa', 'Susanna', 'Seija', 'Siru', 'Sauli',
+        'Taneli', 'Teemu', 'Teppo', 'Tero', 'Tommi', 'Tomi', 'Topi', 'Tuomas', 'Tuomo', 'Touko', 'Tuukka', 'Taika', 'Taru', 'Tara', 'Tiia', 'Tiiu', 'Tinja', 'Tanja', 'Terhi', 'Tiina', 'Tea', 'Tatu', 'Teijo', 'Timo', 'Tuukka',
+        'Unto', 'Urho',
+        'Veera', 'Venla', 'Viivi', 'Vilja', 'Vilma', 'Valtteri', 'Veeti', 'Veikko', 'Veli', 'Vilho', 'Vili', 'Viljo', 'Ville',
+        'Wiljami', 'Werneri', 'Wilma'
+    );
+
+    protected static $lastName = array(
+        'Aakula', 'Aalto', 'Aaltonen', 'Aarnio', 'Aaronen', 'Aavikkola', 'Ahmala', 'Aho', 'Ahokas', 'Ahola', 'Ahomaa', 'Ahonen', 'Ahoniemi', 'Ahopelto', 'Ahovaara', 'Ahtila', 'Ahtiluoto', 'Ahtio', 'Ahtisaari', 'Ahto', 'Ahtola', 'Ahtonen', 'Ahtorinne', 'Aija', 'Aijala', 'Ainola', 'Aitio', 'Aitolahti', 'Aitomaa', 'Aittasalmi', 'Akkala', 'Akkanen', 'Alahuhta', 'Alajoki', 'Alajärvi', 'Alanen', 'Alatalo', 'Alasalmi', 'Alapuro', 'Alhola', 'Alijoki', 'Ankkala', 'Ankkuri', 'Annala', 'Annunen', 'Anttila', 'Anttinen', 'Anttonen', 'Ara', 'Arhila', 'Arhinmäki', 'Arhosuo,', 'Arinen', 'Arjamaa', 'Arjanen', 'Arkkila', 'Armio', 'Arnio', 'Aronen', 'Arosuo', 'Arponen', 'Arvola', 'Asikainen', 'Astala', 'Attila', 'Aunela', 'Aura', 'Auramies', 'Auranen', 'Autio', 'Auvinen', 'Auvola', 'Avonius', 'Avotie',
+        'Bräysy',
+        'Davidsainen', 'Dufva',
+        'Eerikäinen', 'Eerola', 'Einel', 'Eino', 'Einola', 'Einonen', 'Ekman', 'Ekola', 'Ellilä', 'Ellinen', 'Elomaa', 'Eloharju', 'Eloranta', 'Eno', 'Enola', 'Enäjärvi', 'Erkinjuntti', 'Erkkilä', 'Erkkinen', 'Erkko', 'Erkkola', 'Ernamo', 'Erola', 'Eronen', 'Ervola', 'Eräharju', 'Erämaja', 'Eränen', 'Eskelinen', 'Eskelä', 'Eskola', 'Evelä', 'Evilä',
+        'Filppula', 'Finni', 'Frändilä', 'Fränti',
+        'Haahka', 'Haahkola', 'Haanpää', 'Haapakorpi', 'Haapala', 'Haapanen', 'Haaparanta', 'Haapasalmi', 'Haapasalo', 'Haapkylä', 'Haapoja', 'Haataja', 'Haavisto', 'Haikala', 'Haikara', 'Hakala', 'Hakkarainen', 'Hakki', 'Hakula', 'Halinen', 'Halkola', 'Halkonen', 'Halla', 'Hallaper', 'Hallapuro', 'Hallikainen', 'Hallila', 'Hallonen', 'Halme', 'Halmela', 'Halmelahti', 'Halonen', 'Halttunen', 'Hammas', 'Hanhela', 'Hanhinen', 'Hannula', 'Hannunen', 'Hapola', 'Harjamäki', 'Harju', 'Harjula', 'Harjunpää', 'Harkimo', 'Hautakangas', 'Hautakoski', 'Hautala', 'Hautamäki', 'Haverinen', 'Havukoski', 'Heikkilä', 'Heikkinen', 'Heimola', 'Heinälä', 'Heiskanen', 'Heiskari', 'Helenius', 'Helinen', 'Helismaa', 'Helmel', 'Helovirta', 'Helppolainen', 'Helstel', 'Hellgren', 'Hentinen', 'Hento', 'Hepomäki', 'Heponen', 'Herranen', 'Hervanta', 'Hervanto', 'Hekkaharju', 'Hiesu', 'Hietala', 'Hietanen', 'Hiltunen', 'Heintikainen', 'Hirvelä', 'Hirvi', 'Hirvikangas', 'Hirvonen', 'Hoikkala', 'Hoikkanen', 'Holappa', 'Holkeri', 'Hongisto', 'Honkanen', 'Hovi', 'Huhta', 'Huhtala', 'Hukkala', 'Huopainen', 'Huotari', 'Huovinen', 'Huttunen', 'Huuhka', 'Huurinainen', 'Huusko', 'Huvinen', 'Hyppölä', 'Hyppönen', 'Hytölä', 'Hyypiä', 'Hyyppä', 'Häkkinen', 'Häkämies', 'Hämäläinen', 'Hänninen', 'Härkönen',
+        'Ihalainen', 'Ikola', 'Ikonen', 'Ilmarinen', 'Ilomäki', 'Iloniemi', 'Ilvesniemi', 'Immonen', 'Inkeri', 'Inkinen', 'Isoluoma', 'Isomäki', 'Isotalo', 'Itkonen', 'Itävaara', 'Itävuori',
+        'Jaakkola', 'Jaakkonen', 'Jaakonmaa', 'Jaatinen', 'Jakkila', 'Jalonen', 'Jauhiainen', 'Jauho', 'Joenhaara', 'Johto', 'Jokelainen', 'Jokihaara', 'Jokimies', 'Jokinen', 'Jortikka', 'Joru', 'Junkkari', 'Juntti', 'Juppi', 'Jurva', 'Jurvala', 'Jurvanen', 'Jussila', 'Juustinen', 'Juuti', 'Juvanen', 'Juvonen', 'Jylhä', 'Jänis', 'Jäppinen', 'Järvelä', 'Jääskeläinen',
+        'Kaakko', 'Kaikkonen', 'Kainulainen', 'Kaista', 'Kaivola', 'Kakkola', 'Kakkonen', 'Kalinainen', 'Kalkkinen', 'Kalliala', 'Kallio', 'Kaillomäki', 'Kalmo', 'Kalvo', 'Kamari', 'Kamppinen', 'Kanala', 'Kangaskorte', 'Kangassalo', 'Kannelmaa', 'Kannelmäki', 'Kantele', 'Kantola', 'Kapanen', 'Karalahti', 'Karhu', 'Karjalainen', 'Karpela', 'Karppinen', 'Karukoski', 'Karvonen', 'Katainen', 'Kataja', 'Kauhala', 'Kaukovaara', 'Kauppala', 'Kauppinen', 'Kaurismäki', 'Kekkonen', 'Kerava', 'Kerttula', 'Keskinen', 'Keskioja', 'Ketola', 'Ketonen', 'Kettula', 'Kieli', 'Kiianen', 'Kiille', 'Kimalainen', 'Kiiski', 'Kinnula', 'Kinnunen', 'Kiskonen', 'Kissala', 'Kivi', 'Kiviniemi', 'Kivistö', 'Koirala', 'Koivisto', 'Koivula', 'Koivulehto', 'Koivuniemi', 'Kokkonen', 'Kolehmainen', 'Komulainen', 'Konttinen', 'Kontunen', 'Korhonen', 'Koriseva', 'Kortesjärvi', 'Koskela', 'Koskelainen', 'Kosonen', 'Kotanen', 'Koukkula', 'Kouvonen', 'Kovalainen', 'Krapu', 'Krekelä', 'Kujala', 'Kujanpää', 'Kukkala', 'Kukkamäki', 'Kukkonen', 'Kultala', 'Kumpula', 'Kumpulainen', 'Kunnas', 'Kuoppala', 'Kuosmanen', 'Kurkela', 'Kurki', 'Kuusijärvi', 'Kyllönen', 'Kynsijärvi', 'Kynsilehto', 'Kärki', 'Kärkkäinen',
+        'Laakkola', 'Laakkonen', 'Laakso', 'Laaksonen', 'Laatikainen', 'Lahdenpää', 'Laine', 'Lainela', 'Lakka', 'Lampinen', 'Lappalainen', 'Lassinen', 'Laurila', 'Lauronen', 'Lavola', 'Lehmälä', 'Lehtimäki', 'Lehtinen', 'Lehtisalo', 'Lehto', 'Lehtonen', 'Leino', 'Lepistö', 'Lepomäki', 'Leppilampi', 'Leppäkorpi', 'Leppälä', 'Leppävirta', 'Leskinen', 'Liimatainen', 'Lind', 'Linnala', 'Linnamäki', 'Lippo', 'Litmanen', 'Litvala', 'Liukkonen', 'Loiri', 'Lukkari', 'Lumme', 'Luoma', 'Luukkonen', 'Lyly', 'Lyytikäinen', 'Lähteenmäki', 'Lämsä',
+        'Maahinen', 'Made', 'Maijala', 'Makkonen', 'Malmi', 'Malmivaara', 'Mannila', 'Manninen', 'Mannonen', 'Mansikka-aho', 'Mansikkaoja', 'Marila', 'Marjala', 'Marjamäki', 'Marjola', 'Marjomaa', 'Marjonen', 'Markkanen', 'Markkula', 'Markuksela', 'Markus', 'Martikainen', 'Marttinen', 'Masala', 'Masanen', 'Matomäki', 'Mattila', 'Maunula', 'Maunola', 'Melasniemi', 'Merelä', 'Merilä', 'Meriläinen', 'Merimaa', 'Metsoja', 'Metsälampi', 'Metsäoja', 'Mielonen', 'Miettinen', 'Mikkola', 'Mikkonen', 'Muhonen', 'Mujunen', 'Murola', 'Mustapää', 'Mustonen', 'Muurinen', 'Myllymäki', 'Myllypuro', 'Myllys', 'Mylläri', 'Mäenpää', 'Mäkelä', 'Mäki', 'Mäkinen', 'Mäntylä', 'Määttä', 'Möttönen',
+        'Naula', 'Naulapää', 'Neuvonen', 'Nevala', 'Niemelä', 'Niemi', 'Nieminen', 'Niemistö', 'Niinimaa', 'Niinistö', 'Niiranen', 'Nikkanen', 'Nikkilä', 'Nikula', 'Nikulainen', 'Niskala', 'Nisukangas', 'Niukkanen', 'Nokelainen', 'Nokkonen', 'Notkonen', 'Nousiainen', 'Nukka', 'Nummelin', 'Nuotio', 'Nurkkala', 'Nurmela', 'Nurmi', 'Nurminiemi', 'Nurminen', 'Nuutti', 'Nykänen', 'Nyman', 'Närvälä', 'Näätänen',
+        'Oikkonen', 'Oikonen', 'Oinonen', 'Oja', 'Ojala', 'Ojamäki', 'Ojanen', 'Ojaniemi', 'Oksala', 'Oksanen', 'Ollikainen', 'Ollila', 'Ollinen', 'Oravainen', 'Oravala', 'Otsamo', 'Outinen', 'Ovaska',
+        'Paajanen', 'Paakkanen', 'Paananen', 'Paasikivi', 'Paasilinna', 'Paasonen', 'Paavola', 'Pahajoki', 'Pahkasalo', 'Pajumäki', 'Pajunen', 'Pakarinen', 'Pakkala', 'Pakola', 'Pallas', 'Paloheimo', 'Palola', 'Palomäki', 'Parkkonen', 'Pekkala', 'Pekkarinen', 'Pelkonen', 'Peltomaa', 'Pennanen', 'Pennilä', 'Pentikäinen', 'Penttilä', 'Perniö', 'Pesola', 'Pesonen', 'Peuranen', 'Peuraniemi', 'Pietilä', 'Piippola', 'Piirainen', 'Pikkarainen', 'Pirttijärvi', 'Pirttikangas', 'Pitkämäki', 'Pohtamo', 'Porkkala', 'Poronen', 'Poropudas', 'Puhakainenä', 'Puhakka', 'Pukkila', 'Pulli', 'Puolakka', 'Puuperä', 'Pyykkö', 'Pyykkönen', 'Päivälä', 'Päivärinta', 'Pääkkönen', 'Pöllönen', 'Pöntinen', 'Pöysti',
+        'Raappana', 'Raatikainen', 'Raatila', 'Rahka', 'Rahkala', 'Raiskio', 'Raitanen', 'Raittila', 'Rajamäki', 'Ramu', 'Ranta', 'Rantamaa', 'Rapala', 'Rasila', 'Rasmus', 'Rauhala', 'Rauhanen', 'Rautaporras', 'Rautavirta', 'Rautio', 'Rehu', 'Reinikainen', 'Reinikka', 'Rekomaa', 'Repo', 'Repola', 'Riihimäki', 'Riikonen', 'Rimmanen', 'Rinne', 'Rinta', 'Rintamäki', 'Ristilä', 'Ritari', 'Rokko', 'Ronkainen', 'Roponen', 'Ruhanen', 'Rumpunen', 'Runtti', 'Ruohoniemi', 'Ruonala', 'Ruonansuu', 'Ruotsalainen', 'Ruuhonen', 'Ruuskari', 'Ruusula', 'Ruutti', 'Ryhänen', 'Ryti', 'Ryysyläinen', 'Räikkönen', 'Räisänen', 'Räsänen',
+        'Saanila', 'Saarela', 'Saarenheimo', 'Saari', 'Saarikivi', 'Saarnio', 'Saarnivaara', 'Saastamoinen', 'Saikkonen', 'Saksala', 'Salenius', 'Salmela', 'Salmelainen', 'Salo', 'Salolainen', 'Salonen', 'Saloranta', 'Samulin', 'Sannala', 'Santanen', 'Saraste', 'Sarasvuo', 'Saukko', 'Savioja', 'Savolainen', 'Selänne', 'Seppelin', 'Seppänen', 'Seppälä', 'Servo', 'Setänen', 'Siekkinen', 'Sievinen', 'Sihvonen', 'Siira', 'Siltonen', 'Sikala', 'Silakka', 'Sillanpää', 'Siltala', 'Silvennoinen', 'Simo', 'Simonen', 'Sinnemäki', 'Sipilä', 'Sipola', 'Sirkesalo', 'Sirviö', 'Raiski', 'Soikkeli', 'Soini', 'Sonninen', 'Soppela', 'Sorajoki', 'Sormunen', 'Sorsa', 'Suhonen', 'Suikkala', 'Summanen', 'Suomela', 'Suominen', 'Suosalo', 'Susiluoto', 'Sutinen', 'Suuronen', 'Suutarinen', 'Suvela', 'Sydänmäki', 'Syrjä', 'Syrjälä', 'Säkkinen', 'Särkkä',
+        'Taavettila', 'Taavila', 'Taavitsainen', 'Taipale', 'Takkala', 'Takkula', 'Tamminen', 'Tammisto', 'Tanskanen', 'Tapio', 'Tapola', 'Tarvainen', 'Taskinen', 'Tastula', 'Tauriainen', 'Tenkanen', 'Teppo', 'Tervo', 'Tervonen', 'Teräsniska', 'Tiainen', 'Tiilikainen', 'Timonen', 'Toijala', 'Toikkanen', 'Toivanen', 'Tokkola', 'Tolonen', 'Torkkeli', 'Tuisku', 'Tukiainen', 'Tulkki', 'Tuomela', 'Tuominen', 'Tuomisto', 'Tuppurainen', 'Turpeinen', 'Turunen', 'Tuutti', 'Tynkkynen', 'Typpö', 'Tyrninen', 'Törrö', 'Törrönen',
+        'Ukkola', 'Ulvila', 'Unhola', 'Uosukainen', 'Urhonen', 'Uronen', 'Urpalainen', 'Urpilainen', 'Utriainen', 'Uusikari', 'Uusikylä', 'Uusisalmi', 'Uusitalo',
+        'Vaara', 'Vahala', 'Vahanen', 'Vahvanen', 'Vainio', 'Valjakka', 'Valo', 'Valtanen', 'Vanhanen', 'Vanhoja', 'Varjus', 'Vartiainen', 'Vasala', 'Vauhkonen', 'Veijonen', 'Veini', 'Vennala', 'Vennamo', 'Vepsäläinen', 'Vesa', 'Vesuri', 'Veteläinen', 'Vierikko', 'Vihtanen', 'Viikate', 'Viinanen', 'Viinikka', 'Vilhola', 'Viljanen', 'Vilkkula', 'Vilpas', 'Virkkula', 'Virkkunen', 'Virolainen', 'Virtala', 'Voutilainen', 'Vuokko', 'Vuorenpää', 'Vuorikoski', 'Vuorinen', 'Vähälä', 'Väisälä', 'Väisänen', 'Välimaa', 'Välioja', 'Väyrynen', 'Väätänen',
+        'Wettenranta', 'Wiitanen', 'Wirtanen', 'Wiskari',
+        'Ylijälä', 'Yliannala', 'Ylijoki', 'Ylikangas', 'Ylioja', 'Ylitalo', 'Ylppö', 'Yläjoki', 'Yrjänen', 'Yrjänä', 'Yrjölä', 'Yrttiaho', 'Yömaa',
+        'Äijälä', 'Ämmälä', 'Änäkkälä', 'Äyräs', 'Äärynen',
+        'Översti', 'Öysti', 'Öörni'
+    );
+
+    private static $prefix = array('Hra.', 'Rva.', 'Nti.', 'Tri.');
+
+    /**
+     * @example 'Hra.'
+     */
+    public static function prefix()
+    {
+        return static::randomElement(static::$prefix);
+    }
+}

+ 20 - 0
vendor/fzaninotto/faker/src/Faker/Provider/fi_FI/PhoneNumber.php

@@ -0,0 +1,20 @@
+<?php
+
+namespace Faker\Provider\fi_FI;
+
+class PhoneNumber extends \Faker\Provider\PhoneNumber
+{
+    protected static $formats = array(
+        '+358 (40) ### ####',
+        '+358 (50) ### ####',
+        '+358 40 ### ####',
+        '+358 50 ### ####',
+        '040 ### ####',
+        '050 ### ####',
+        '###-########',
+        '### #######',
+        '040-#######',
+        '050-#######',
+        '(###) #######'
+    );
+}

+ 137 - 0
vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Address.php

@@ -0,0 +1,137 @@
+<?php
+
+namespace Faker\Provider\fr_FR;
+
+class Address extends \Faker\Provider\Address
+{
+    protected static $citySuffix = array('Ville', 'Bourg', '-les-Bains', '-sur-Mer', '-la-Forêt', 'boeuf', 'nec', 'dan');
+    protected static $streetPrefix = array('rue', 'rue', 'chemin', 'avenue', 'boulevard');
+    protected static $cityFormats = array(
+        '{{lastName}}',
+        '{{lastName}}',
+        '{{lastName}}',
+        '{{lastName}}',
+        '{{lastName}}{{citySuffix}}',
+        '{{lastName}}{{citySuffix}}',
+        '{{lastName}}{{citySuffix}}',
+        '{{lastName}}-sur-{{lastName}}',
+    );
+    protected static $streetNameFormats = array(
+        '{{streetPrefix}} {{lastName}}',
+        '{{streetPrefix}} {{firstName}} {{lastName}}',
+        '{{streetPrefix}} de {{lastName}}',
+    );
+    protected static $streetAddressFormats = array(
+        '{{streetName}}',
+        '{{buildingNumber}}, {{streetName}}',
+        '{{buildingNumber}}, {{streetName}}',
+        '{{buildingNumber}}, {{streetName}}',
+        '{{buildingNumber}}, {{streetName}}',
+        '{{buildingNumber}}, {{streetName}}',
+    );
+    protected static $addressFormats = array(
+        "{{streetAddress}}\n{{postcode}} {{city}}",
+    );
+
+    protected static $buildingNumber = array('%', '%#', '%#', '%#', '%##');
+    protected static $postcode = array('#####', '## ###');
+
+    protected static $country = array(
+        'Afghanistan', 'Afrique du sud', 'Albanie', 'Algérie', 'Allemagne', 'Andorre', 'Angola', 'Anguilla', 'Antarctique', 'Antigua et Barbuda', 'Antilles néerlandaises', 'Arabie saoudite', 'Argentine', 'Arménie', 'Aruba', 'Australie', 'Autriche', 'Azerbaïdjan', 'Bahamas', 'Bahrain', 'Bangladesh', 'Belgique', 'Belize', 'Benin', 'Bermudes (Les)', 'Bhoutan', 'Biélorussie', 'Bolivie', 'Bosnie-Herzégovine', 'Botswana', 'Bouvet (Îles)', 'Brunei', 'Brésil', 'Bulgarie', 'Burkina Faso', 'Burundi', 'Cambodge', 'Cameroun', 'Canada', 'Cap Vert', 'Cayman (Îles)', 'Chili', 'Chine (Rép. pop.)', 'Christmas (Île)', 'Chypre', 'Cocos (Îles)', 'Colombie', 'Comores', 'Cook (Îles)', 'Corée du Nord', 'Corée, Sud', 'Costa Rica', 'Croatie', 'Cuba', 'Côte d\'Ivoire', 'Danemark', 'Djibouti', 'Dominique', 'Égypte', 'El Salvador', 'Émirats arabes unis', 'Équateur', 'Érythrée', 'Espagne', 'Estonie', 'États-Unis', 'Ethiopie', 'Falkland (Île)', 'Fidji (République des)', 'Finlande', 'France', 'Féroé (Îles)', 'Gabon',
+        'Gambie', 'Ghana', 'Gibraltar', 'Grenade', 'Groenland', 'Grèce', 'Guadeloupe', 'Guam', 'Guatemala', 'Guinée', 'Guinée Equatoriale', 'Guinée-Bissau', 'Guyane', 'Guyane française', 'Géorgie', 'Géorgie du Sud et Sandwich du Sud (Îles)', 'Haïti', 'Heard et McDonald (Îles)', 'Honduras', 'Hong Kong', 'Hongrie', 'Îles Mineures Éloignées des États-Unis', 'Inde', 'Indonésie', 'Irak', 'Iran', 'Irlande', 'Islande', 'Israël', 'Italie', 'Jamaïque', 'Japon', 'Jordanie', 'Kazakhstan', 'Kenya', 'Kirghizistan', 'Kiribati', 'Koweit', 'La Barbad', 'Laos', 'Lesotho', 'Lettonie', 'Liban', 'Libye', 'Libéria', 'Liechtenstein', 'Lithuanie', 'Luxembourg', 'Macau', 'Macédoine', 'Madagascar', 'Malaisie', 'Malawi', 'Maldives (Îles)', 'Mali', 'Malte', 'Mariannes du Nord (Îles)', 'Maroc', 'Marshall (Îles)', 'Martinique', 'Maurice', 'Mauritanie', 'Mayotte', 'Mexique', 'Micronésie (États fédérés de)', 'Moldavie', 'Monaco', 'Mongolie', 'Montserrat', 'Mozambique', 'Myanmar', 'Namibie', 'Nauru', 'Nepal',
+        'Nicaragua', 'Niger', 'Nigeria', 'Niue', 'Norfolk (Îles)', 'Norvège', 'Nouvelle Calédonie', 'Nouvelle-Zélande', 'Oman', 'Ouganda', 'Ouzbékistan', 'Pakistan', 'Palau', 'Panama', 'Papouasie-Nouvelle-Guinée', 'Paraguay', 'Pays-Bas', 'Philippines', 'Pitcairn (Îles)', 'Pologne', 'Polynésie française', 'Porto Rico', 'Portugal', 'Pérou', 'Qatar', 'Roumanie', 'Royaume-Uni', 'Russie', 'Rwanda', 'Rép. Dém. du Congo', 'République centrafricaine', 'République Dominicaine', 'République tchèque', 'Réunion (La)', 'Sahara Occidental', 'Saint Pierre et Miquelon', 'Saint Vincent et les Grenadines', 'Saint-Kitts et Nevis', 'Saint-Marin (Rép. de)', 'Sainte Hélène', 'Sainte Lucie', 'Samoa', 'Samoa', 'Seychelles', 'Sierra Leone', 'Singapour', 'Slovaquie', 'Slovénie', 'Somalie', 'Soudan', 'Sri Lanka', 'Suisse', 'Suriname', 'Suède', 'Svalbard et Jan Mayen (Îles)', 'Swaziland', 'Syrie', 'São Tomé et Príncipe (Rép.)', 'Sénégal', 'Tadjikistan', 'Taiwan', 'Tanzanie', 'Tchad',
+        'Territoire britannique de l\'océan Indien', 'Territoires français du sud', 'Thailande', 'Timor', 'Togo', 'Tokelau', 'Tonga', 'Trinité et Tobago', 'Tunisie', 'Turkménistan', 'Turks et Caïques (Îles)', 'Turquie', 'Tuvalu', 'Ukraine', 'Uruguay', 'Vanuatu', 'Vatican (Etat du)', 'Venezuela', 'Vierges (Îles)', 'Vierges britanniques (Îles)', 'Vietnam', 'Wallis et Futuna (Îles)', 'Yemen', 'Yougoslavie', 'Zambie', 'Zaïre', 'Zimbabwe'
+    );
+
+    private static $regions = array(
+        'Alsace', 'Aquitaine', 'Auvergne', 'Bourgogne', 'Bretagne', 'Centre', 'Champagne-Ardenne',
+        'Corse', 'Franche-Comté', 'Île-de-France', 'Languedoc-Roussillon', 'Limousin',
+        'Lorraine', 'Midi-Pyrénées', 'Nord-Pas-de-Calais', 'Basse-Normandie', 'Haute-Normandie',
+        'Pays-de-Loire', 'Picardie', 'Poitou-Charentes', "Province-Alpes-Côte d'Azur", 'Rhone-Alpes',
+        'Guadeloupe', 'Martinique', 'Guyane', 'Réunion', 'Saint-Pierre-et-Miquelon', 'Mayotte',
+        'Saint-Barthélémy', 'Saint-Martin', 'Wallis-et-Futuna', 'Polynésie française', 'Nouvelle-Calédonie'
+    );
+
+    private static $departments = array(
+        array('01' => 'Ain'), array('02' => 'Aisne'), array('03' => 'Allier'), array('04' => 'Alpes-de-Haute-Provence'), array('05' => 'Hautes-Alpes'),
+        array('06' => 'Alpes-Maritimes'), array('07' => 'Ardèche'), array('08' => 'Ardennes'), array('09' => 'Ariège'), array('10' => 'Aube'),
+        array('11' => 'Aude'), array('12' => 'Aveyron'), array('13' => 'Bouches-du-Rhône'), array('14' => 'Calvados'), array('15' => 'Cantal'),
+        array('16' => 'Charente'), array('17' => 'Charente-Maritime'), array('18' => 'Cher'), array('19' => 'Corrèze'), array('2A' => 'Corse-du-Sud'),
+        array('2B' => 'Haute-Corse'), array('21' => "Côte-d'Or"), array('22' => "Côtes-d'Armor"), array('23' => 'Creuse'), array('24' => 'Dordogne'),
+        array('25' => 'Doubs'), array('26' => 'Drôme'), array('27' => 'Eure'), array('28' => 'Eure-et-Loir'), array('29' => 'Finistère'), array('30' => 'Gard'),
+        array('31' => 'Haute-Garonne'), array('32' => 'Gers'), array('33' => 'Gironde'), array('34' => 'Hérault'), array('35' => 'Ille-et-Vilaine'),
+        array('36' => 'Indre'), array('37' => 'Indre-et-Loire'), array('38' => 'Isère'), array('39' => 'Jura'), array('40' => 'Landes'), array('41' => 'Loir-et-Cher'),
+        array('42' => 'Loire'), array('43' => 'Haute-Loire'), array('44' => 'Loire-Atlantique'), array('45' => 'Loiret'), array('46' => 'Lot'),
+        array('47' => 'Lot-et-Garonne'), array('48' => 'Lozère'), array('49' => 'Maine-et-Loire'), array('50' => 'Manche'), array('51' => 'Marne'),
+        array('52' => 'Haute-Marne'), array('53' => 'Mayenne'), array('54' => 'Meurthe-et-Moselle'), array('55' => 'Meuse'), array('56' => 'Morbihan'),
+        array('57' => 'Moselle'), array('58' => 'Nièvre'), array('59' => 'Nord'), array('60' => 'Oise'), array('61' => 'Orne'), array('62' => 'Pas-de-Calais'),
+        array('63' => 'Puy-de-Dôme'), array('64' => 'Pyrénées-Atlantiques'), array('65' => 'Hautes-Pyrénées'), array('66' => 'Pyrénées-Orientales'),
+        array('67' => 'Bas-Rhin'), array('68' => 'Haut-Rhin'), array('69' => 'Rhône'), array('70' => 'Haute-Saône'), array('71' => 'Saône-et-Loire'),
+        array('72' => 'Sarthe'), array('73' => 'Savoie'), array('74' => 'Haute-Savoie'), array('75' => 'Paris'), array('76' => 'Seine-Maritime'),
+        array('77' => 'Seine-et-Marne'), array('78' => 'Yvelines'), array('79' => 'Deux-Sèvres'), array('80' => 'Somme'), array('81' => 'Tarn'),
+        array('82' => 'Tarn-et-Garonne'), array('83' => 'Var'), array('84' => 'Vaucluse'), array('85' => 'Vendée'), array('86' => 'Vienne'),
+        array('87' => 'Haute-Vienne'), array('88' => 'Vosges'), array('89' => 'Yonne'), array('90' => 'Territoire de Belfort'), array('91' => 'Essonne'),
+        array('92' => 'Hauts-de-Seine'), array('93' => 'Seine-Saint-Denis'), array('94' => 'Val-de-Marne'), array('95' => "Val-d'Oise"),
+        array('971' => 'Guadeloupe'), array('972' => 'Martinique'), array('973' => 'Guyane'), array('974' => 'La Réunion'), array('976' => 'Mayotte')
+     );
+
+     /**
+     * @example 'rue'
+     */
+    public static function streetPrefix()
+    {
+        return static::randomElement(static::$streetPrefix);
+    }
+
+    /**
+     * Randomly returns a french region.
+     *
+     * @example 'Guadeloupe'
+     *
+     * @return string
+     */
+    public static function region()
+    {
+        return static::randomElement(static::$regions);
+    }
+
+    /**
+     * Randomly returns a french department ('departmentNumber' => 'departmentName').
+     *
+     * @example array('2B' => 'Haute-Corse')
+     *
+     * @return array
+     */
+    public static function department()
+    {
+        return static::randomElement(static::$departments);
+    }
+
+    /**
+     * Randomly returns a french department name.
+     *
+     * @example 'Ardèche'
+     *
+     * @return string
+     */
+    public static function departmentName()
+    {
+        $randomDepartmentName = array_values(static::department());
+
+        return $randomDepartmentName[0];
+    }
+
+    /**
+     * Randomly returns a french department number.
+     *
+     * @example '59'
+     *
+     * @return string
+     */
+    public static function departmentNumber()
+    {
+        $randomDepartmentNumber = array_keys(static::department());
+
+        return $randomDepartmentNumber[0];
+    }
+}

+ 221 - 0
vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Company.php

@@ -0,0 +1,221 @@
+<?php
+
+namespace Faker\Provider\fr_FR;
+
+class Company extends \Faker\Provider\Company
+{
+    /**
+     * @var array French company name formats.
+     */
+    protected static $formats = array(
+        '{{lastName}} {{companySuffix}}',
+        '{{lastName}} {{lastName}} {{companySuffix}}',
+        '{{lastName}}',
+        '{{lastName}}',
+    );
+
+    /**
+     * @var array French catch phrase formats.
+     */
+    protected static $catchPhraseFormats = array(
+        '{{catchPhraseNoun}} {{catchPhraseVerb}} {{catchPhraseAttribute}}',
+    );
+
+    /**
+     * @var array French nouns (used by the catch phrase format).
+     */
+    protected static $noun = array(
+        'la sécurité', 'le plaisir', 'le confort', 'la simplicité', "l'assurance", "l'art", 'le pouvoir', 'le droit',
+        'la possibilité', "l'avantage", 'la liberté'
+    );
+
+    /**
+     * @var array French verbs (used by the catch phrase format).
+     */
+    protected static $verb = array(
+        'de rouler', "d'avancer", "d'évoluer", 'de changer', "d'innover", 'de louer', "d'atteindre vos buts",
+        'de concrétiser vos projets'
+    );
+
+    /**
+     * @var array End of sentences (used by the catch phrase format).
+     */
+    protected static $attribute = array(
+        'de manière efficace', 'plus rapidement', 'plus facilement', 'plus simplement', 'en toute tranquilité',
+        'avant-tout', 'autrement', 'naturellement', 'à la pointe', 'sans soucis', "à l'état pur",
+        'à sa source', 'de manière sûre', 'en toute sécurité'
+    );
+
+    /**
+     * @var array Company suffixes.
+     */
+    protected static $companySuffix = array('SA', 'S.A.', 'SARL', 'S.A.R.L.', 'S.A.S.', 'et Fils');
+
+    /**
+     * Returns a random catch phrase noun.
+     *
+     * @return string
+     */
+    public function catchPhraseNoun()
+    {
+        return static::randomElement(static::$noun);
+    }
+
+    /**
+     * Returns a random catch phrase attribute.
+     *
+     * @return string
+     */
+    public function catchPhraseAttribute()
+    {
+        return static::randomElement(static::$attribute);
+    }
+
+    /**
+     * Returns a random catch phrase verb.
+     *
+     * @return string
+     */
+    public function catchPhraseVerb()
+    {
+        return static::randomElement(static::$verb);
+    }
+
+    /**
+     * Generates a french catch phrase.
+     *
+     * @return string
+     */
+    public function catchPhrase()
+    {
+        do {
+            $format = static::randomElement(static::$catchPhraseFormats);
+            $catchPhrase = ucfirst($this->generator->parse($format));
+
+            if ($this->isCatchPhraseValid($catchPhrase)) {
+                break;
+            }
+        } while (true);
+
+        return $catchPhrase;
+    }
+
+    /**
+     * Generates a siret number (14 digits) that passes the Luhn check. 
+     * Use $maxSequentialDigits to make sure the digits at position 2 to 5 are not zeros. 
+     * @see http://en.wikipedia.org/wiki/Luhn_algorithm
+     * @param int $maxSequentialDigits The maximum number of digits for the sequential number (> 0 && <= 4).
+     * @return string
+     */
+    public static function siret($maxSequentialDigits = 2)
+    {
+        
+        if ($maxSequentialDigits > 4 || $maxSequentialDigits <= 0) {
+            $maxSequentialDigits = 2;
+        }
+        
+        $controlDigit = mt_rand(0, 9);
+        $siret = $sum = $controlDigit;
+        
+        $position = 2;
+        for ($i = 0; $i < $maxSequentialDigits; $i++) {
+            
+            $sequentialDigit = mt_rand(0, 9);
+            $isEven = $position++ % 2 === 0;
+            
+            $tmp = $isEven ? $sequentialDigit * 2 : $sequentialDigit;
+            if ($tmp >= 10) $tmp -= 9;
+            $sum += $tmp;
+            
+            $siret = $sequentialDigit . $siret;
+            
+        }
+        
+        $siret = str_pad($siret, 5, '0', STR_PAD_LEFT);
+        
+        $position = 6;
+        for ($i = 0; $i < 7; $i++) {
+            
+            $digit = mt_rand(0, 9);
+            $isEven = $position++ % 2 === 0;
+            
+            $tmp = $isEven ? $digit * 2 : $digit;
+            if ($tmp >= 10) $tmp -= 9;
+            $sum += $tmp;
+            
+            $siret = $digit . $siret;
+            
+        }
+        
+        $mod = $sum % 10;
+        if ($mod === 0) {
+            $siret = '00' . $siret;
+        } else {
+            // Use the odd position to avoid multiplying by two
+            $siret = '0' . (10 - $mod) . $siret;
+        }
+        
+        return preg_replace("/([0-9]{3})([0-9]{3})([0-9]{3})([0-9]{5})/", "$1 $2 $3 $4", $siret);
+        
+    }
+
+    /**
+     * Generates a siren number (9 digits) that passes the Luhn check. 
+     * @see http://en.wikipedia.org/wiki/Luhn_algorithm
+     * @return string
+     */
+    public static function siren()
+    {
+        $siren = '';
+        $sum = 0;
+        for ($i = 9; $i > 1; $i--) {
+            
+            $digit = mt_rand(0, 9);
+            $isEven = $i % 2 === 0;
+            
+            $tmp = $isEven ? $digit * 2 : $digit;
+            if ($tmp >= 10) $tmp -= 9;
+            $sum += $tmp;
+            
+            $siren = $digit . $siren;
+            
+        }
+        
+        $mod = $sum % 10;
+        if ($mod === 0) {
+            $siren = '0' . $siren;
+        } else {
+            $siren = (10 - $mod) . $siren;
+        }
+        
+        return preg_replace("/([0-9]{3})([0-9]{3})([0-9]{3})/", "$1 $2 $3", $siren);
+        
+    }
+
+    /**
+     * @var array An array containing string which should not appear twice in a catch phrase.
+     */
+    protected static $wordsWhichShouldNotAppearTwice = array('sécurité', 'simpl');
+
+    /**
+     * Validates a french catch phrase.
+     *
+     * @param string $catchPhrase The catch phrase to validate.
+     *
+     * @return boolean (true if valid, false otherwise)
+     */
+    protected static function isCatchPhraseValid($catchPhrase)
+    {
+        foreach (static::$wordsWhichShouldNotAppearTwice as $word) {
+            // Fastest way to check if a piece of word does not appear twice.
+            $beginPos = strpos($catchPhrase, $word);
+            $endPos = strrpos($catchPhrase, $word);
+
+            if ($beginPos !== false && $beginPos != $endPos) {
+                return false;
+            }
+        }
+
+        return true;
+    }
+}

+ 46 - 0
vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Internet.php

@@ -0,0 +1,46 @@
+<?php
+
+namespace Faker\Provider\fr_FR;
+
+class Internet extends \Faker\Provider\Internet
+{
+    protected static $safeEmailTld = array('com', 'net', 'fr', 'fr');
+    protected static $freeEmailDomain = array('voila.fr', 'gmail.com', 'hotmail.fr', 'yahoo.fr', 'laposte.net', 'free.fr', 'sfr.fr', 'orange.fr', 'bouygtel.fr', 'club-internet.fr', 'dbmail.com', 'live.com', 'ifrance.com', 'noos.fr', 'tele2.fr', 'tiscali.fr', 'wanadoo.fr');
+    protected static $tld = array('com', 'com', 'com', 'net', 'org', 'fr', 'fr', 'fr');
+
+    /**
+     * Converts French characters to their ASCII representation
+     *
+     * @return string
+     */
+    private static function toAscii($string)
+    {
+        $from = array('à', 'À', 'ç', 'Ç', 'é', 'É', 'è', 'È', 'ë', 'Ë', 'ï', 'Ï', 'î', 'Î', 'ô', 'Ô', 'ù', 'Ù');
+        $to   = array('a', 'A', 'c', 'c', 'e', 'E', 'e', 'E', 'e', 'E', 'i', 'I', 'i', 'I', 'o', 'O', 'u', 'U');
+
+        return str_replace($from, $to, $string);
+    }
+
+    /**
+     * @example 'jdoe'
+     */
+    public function userName()
+    {
+        $format = static::randomElement(static::$userNameFormats);
+
+        return static::toLower(static::toAscii(static::bothify($this->generator->parse($format))));
+    }
+
+    /**
+     * @example 'faber'
+     */
+    public function domainWord()
+    {
+        $company = $this->generator->format('company');
+        $companyElements = explode(' ', $company);
+        $company = $companyElements[0];
+        $company = preg_replace('/\W/', '', $company);
+
+        return static::toLower(static::toAscii($company));
+    }
+}

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 26 - 0
vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Person.php


+ 43 - 0
vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/PhoneNumber.php

@@ -0,0 +1,43 @@
+<?php
+
+namespace Faker\Provider\fr_FR;
+
+class PhoneNumber extends \Faker\Provider\PhoneNumber
+{
+    // Phone numbers can't start by 00, 07, or 09 in France
+    // 01 is the most common prefix
+    protected static $formats = array(
+        '+33 (0)1 ## ## ## ##',
+        '+33 (0)1 ## ## ## ##',
+        '+33 (0)2 ## ## ## ##',
+        '+33 (0)3 ## ## ## ##',
+        '+33 (0)4 ## ## ## ##',
+        '+33 (0)5 ## ## ## ##',
+        '+33 (0)6 ## ## ## ##',
+        '+33 (0)8 ## ## ## ##',
+        '+33 1 ## ## ## ##',
+        '+33 1 ## ## ## ##',
+        '+33 2 ## ## ## ##',
+        '+33 3 ## ## ## ##',
+        '+33 4 ## ## ## ##',
+        '+33 5 ## ## ## ##',
+        '+33 6 ## ## ## ##',
+        '+33 8 ## ## ## ##',
+        '01########',
+        '01########',
+        '02########',
+        '03########',
+        '04########',
+        '05########',
+        '06########',
+        '08########',
+        '01 ## ## ## ##',
+        '01 ## ## ## ##',
+        '02 ## ## ## ##',
+        '03 ## ## ## ##',
+        '04 ## ## ## ##',
+        '05 ## ## ## ##',
+        '06 ## ## ## ##',
+        '08 ## ## ## ##',
+    );
+}

+ 99 - 0
vendor/fzaninotto/faker/src/Faker/Provider/it_IT/Address.php

@@ -0,0 +1,99 @@
+<?php
+
+namespace Faker\Provider\it_IT;
+
+require_once __DIR__ . '/../Address.php';
+
+class Address extends \Faker\Provider\Address
+{
+    protected static $cityPrefix = array('San', 'Borgo', 'Sesto', 'Quarto', 'Settimo');
+    protected static $citySuffix = array('a mare', 'lido', 'ligure', 'del friuli', 'salentino', 'calabro', 'veneto', 'nell\'emilia', 'umbro', 'laziale', 'terme', 'sardo');
+    protected static $buildingNumber = array('###', '##', '#');
+    protected static $streetSuffix = array(
+        'Piazza', 'Strada', 'Via', 'Borgo', 'Contrada', 'Rotonda', 'Incrocio'
+    );
+    protected static $postcode = array('#####');
+    protected static $state = array(
+        'Agrigento', 'Alessandria', 'Ancona', 'Aosta', 'Arezzo', 'Ascoli Piceno', 'Asti', 'Avellino', 'Bari', 'Barletta-Andria-Trani', 'Belluno', 'Benevento', 'Bergamo', 'Biella', 'Bologna', 'Bolzano', 'Brescia', 'Brindisi', 'Cagliari', 'Caltanissetta', 'Campobasso', 'Carbonia-Iglesias', 'Caserta', 'Catania', 'Catanzaro', 'Chieti', 'Como', 'Cosenza', 'Cremona', 'Crotone', 'Cuneo', 'Enna', 'Fermo', 'Ferrara', 'Firenze', 'Foggia', 'Forlì-Cesena', 'Frosinone', 'Genova', 'Gorizia', 'Grosseto', 'Imperia', 'Isernia', 'La Spezia', 'L\'Aquila', 'Latina', 'Lecce', 'Lecco', 'Livorno', 'Lodi', 'Lucca', 'Macerata', 'Mantova', 'Massa-Carrara', 'Matera', 'Messina', 'Milano', 'Modena', 'Monza e della Brianza', 'Napoli', 'Novara', 'Nuoro', 'Olbia-Tempio', 'Oristano', 'Padova', 'Palermo', 'Parma', 'Pavia', 'Perugia', 'Pesaro e Urbino', 'Pescara', 'Piacenza', 'Pisa', 'Pistoia', 'Pordenone', 'Potenza', 'Prato', 'Ragusa', 'Ravenna', 'Reggio Calabria', 'Reggio Emilia', 'Rieti', 'Rimini', 'Roma', 'Rovigo', 'Salerno', 'Medio Campidano', 'Sassari', 'Savona', 'Siena', 'Siracusa', 'Sondrio', 'Taranto', 'Teramo', 'Terni', 'Torino', 'Ogliastra', 'Trapani', 'Trento', 'Treviso', 'Trieste', 'Udine', 'Varese', 'Venezia', 'Verbano-Cusio-Ossola', 'Vercelli', 'Verona', 'Vibo Valentia', 'Vicenza', 'Viterbo'
+    );
+    protected static $stateAbbr = array(
+        'AG', 'AL', 'AN', 'AO', 'AR', 'AP', 'AT', 'AV', 'BA', 'BT', 'BL', 'BN', 'BG', 'BI', 'BO', 'BZ', 'BS', 'BR', 'CA', 'CL', 'CB', 'CI', 'CE', 'CT', 'CZ', 'CH', 'CO', 'CS', 'CR', 'KR', 'CN', 'EN', 'FM', 'FE', 'FI', 'FG', 'FC', 'FR', 'GE', 'GO', 'GR', 'IM', 'IS', 'SP', 'AQ', 'LT', 'LE', 'LC', 'LI', 'LO', 'LU', 'MC', 'MN', 'MS', 'MT', 'ME', 'MI', 'MO', 'MB', 'NA', 'NO', 'NU', 'OT', 'OR', 'PD', 'PA', 'PR', 'PV', 'PG', 'PU', 'PE', 'PC', 'PI', 'PT', 'PN', 'PZ', 'PO', 'RG', 'RA', 'RC', 'RE', 'RI', 'RN', 'RM', 'RO', 'SA', 'VS', 'SS', 'SV', 'SI', 'SR', 'SO', 'TA', 'TE', 'TR', 'TO', 'OG', 'TP', 'TN', 'TV', 'TS', 'UD', 'VA', 'VE', 'VB', 'VC', 'VR', 'VV', 'VI', 'VT'
+    );
+    protected static $country = array(
+        'Afghanistan', 'Albania', 'Algeria', 'American Samoa', 'Andorra', 'Angola', 'Anguilla', 'Antartide (territori a sud del 60° parallelo)', 'Antigua e Barbuda', 'Argentina', 'Armenia', 'Aruba', 'Australia', 'Austria', 'Azerbaijan',
+        'Bahamas', 'Bahrain', 'Bangladesh', 'Barbados', 'Bielorussia', 'Belgio', 'Belize', 'Benin', 'Bermuda', 'Bhutan', 'Bolivia', 'Bosnia e Herzegovina', 'Botswana', 'Bouvet Island (Bouvetoya)', 'Brasile', 'Territorio dell\'arcipelago indiano', 'Isole Vergini Britanniche', 'Brunei Darussalam', 'Bulgaria', 'Burkina Faso', 'Burundi',
+        'Cambogia', 'Cameroon', 'Canada', 'Capo Verde', 'Isole Cayman', 'Repubblica Centrale Africana', 'Chad', 'Cile', 'Cina', 'Isola di Pasqua', 'Isola di Cocos (Keeling)', 'Colombia', 'Comoros', 'Congo', 'Isole Cook', 'Costa Rica', 'Costa d\'Avorio', 'Croazia', 'Cuba', 'Cipro', 'Repubblica Ceca',
+        'Danimarca', 'Gibuti', 'Repubblica Dominicana',
+        'Equador', 'Egitto', 'El Salvador', 'Guinea Equatoriale', 'Eritrea', 'Estonia', 'Etiopia',
+        'Isole Faroe', 'Isole Falkland (Malvinas)', 'Fiji', 'Finlandia', 'Francia', 'Guyana Francese', 'Polinesia Francese', 'Territori Francesi del sud',
+        'Gabon', 'Gambia', 'Georgia', 'Germania', 'Ghana', 'Gibilterra', 'Grecia', 'Groenlandia', 'Grenada', 'Guadalupa', 'Guam', 'Guatemala', 'Guernsey', 'Guinea', 'Guinea-Bissau', 'Guyana',
+        'Haiti', 'Heard Island and McDonald Islands', 'Città del Vaticano', 'Honduras', 'Hong Kong', 'Ungheria',
+        'Islanda', 'India', 'Indonesia', 'Iran', 'Iraq', 'Irlanda', 'Isola di Man', 'Israele', 'Italia',
+        'Giamaica', 'Giappone', 'Jersey', 'Giordania',
+        'Kazakhstan', 'Kenya', 'Kiribati', 'Korea', 'Kuwait', 'Republicca Kirgiza',
+        'Repubblica del Laos', 'Latvia', 'Libano', 'Lesotho', 'Liberia', 'Libyan Arab Jamahiriya', 'Liechtenstein', 'Lituania', 'Lussemburgo',
+        'Macao', 'Macedonia', 'Madagascar', 'Malawi', 'Malesia', 'Maldive', 'Mali', 'Malta', 'Isole Marshall', 'Martinica', 'Mauritania', 'Mauritius', 'Mayotte', 'Messico', 'Micronesia', 'Moldova', 'Principato di Monaco', 'Mongolia', 'Montenegro', 'Montserrat', 'Marocco', 'Mozambico', 'Myanmar',
+        'Namibia', 'Nauru', 'Nepal', 'Antille Olandesi', 'Olanda', 'Nuova Caledonia', 'Nuova Zelanda', 'Nicaragua', 'Niger', 'Nigeria', 'Niue', 'Isole Norfolk', 'Northern Mariana Islands', 'Norvegia',
+        'Oman',
+        'Pakistan', 'Palau', 'Palestina', 'Panama', 'Papua Nuova Guinea', 'Paraguay', 'Peru', 'Filippine', 'Pitcairn Islands', 'Polonia', 'Portogallo', 'Porto Rico',
+        'Qatar',
+        'Reunion', 'Romania', 'Russia', 'Rwanda',
+        'San Bartolomeo', 'Sant\'Elena', 'Saint Kitts and Nevis', 'Saint Lucia', 'Saint Martin', 'Saint Pierre and Miquelon', 'Saint Vincent and the Grenadines', 'Samoa', 'San Marino', 'Sao Tome and Principe', 'Arabia Saudita', 'Senegal', 'Serbia', 'Seychelles', 'Sierra Leone', 'Singapore', 'Slovenia', 'Isole Solomon', 'Somalia', 'Sud Africa', 'Georgia del sud e South Sandwich Islands', 'Spagna', 'Sri Lanka', 'Sudan', 'Suriname', 'Svalbard & Jan Mayen Islands', 'Swaziland', 'Svezia', 'Svizzera', 'Siria',
+        'Taiwan', 'Tajikistan', 'Tanzania', 'Tailandia', 'Timor-Leste', 'Togo', 'Tokelau', 'Tonga', 'Trinidad e Tobago', 'Tunisia', 'Turchia', 'Turkmenistan', 'Isole di Turks and Caicos', 'Tuvalu',
+        'Uganda', 'Ucraina', 'Emirati Arabi Uniti', 'Regno Unito', 'Stati Uniti d\'America', 'United States Minor Outlying Islands', 'Isole Vergini Statunitensi', 'Uruguay', 'Uzbekistan',
+        'Vanuatu', 'Venezuela', 'Vietnam',
+        'Wallis and Futuna', 'Western Sahara',
+        'Yemen',
+        'Zambia', 'Zimbabwe'
+    );
+    protected static $cityFormats = array(
+        '{{cityPrefix}} {{firstName}} {{citySuffix}}',
+        '{{cityPrefix}} {{firstName}}',
+        '{{firstName}} {{citySuffix}}',
+        '{{lastName}} {{citySuffix}}',
+    );
+    protected static $streetNameFormats = array(
+        '{{streetSuffix}} {{firstName}}',
+        '{{streetSuffix}} {{lastName}}'
+    );
+    protected static $streetAddressFormats = array(
+        '{{streetName}} {{buildingNumber}}',
+        '{{streetName}} {{buildingNumber}} {{secondaryAddress}}',
+    );
+    protected static $addressFormats = array(
+        "{{streetAddress}}\n{{city}}, {{postcode}} {{state}} ({{stateAbbr}})",
+    );
+    protected static $secondaryAddressFormats = array('Appartamento ##', 'Piano #');
+
+    /**
+     * @example 'East'
+     */
+    public static function cityPrefix()
+    {
+        return static::randomElement(static::$cityPrefix);
+    }
+
+    /**
+     * @example 'Appt. 350'
+     */
+    public static function secondaryAddress()
+    {
+        return static::numerify(static::randomElement(static::$secondaryAddressFormats));
+    }
+
+    /**
+     * @example 'California'
+     */
+    public static function state()
+    {
+        return static::randomElement(static::$state);
+    }
+
+    /**
+     * @example 'CA'
+     */
+    public static function stateAbbr()
+    {
+        return static::randomElement(static::$stateAbbr);
+    }
+}

+ 66 - 0
vendor/fzaninotto/faker/src/Faker/Provider/it_IT/Company.php

@@ -0,0 +1,66 @@
+<?php
+
+namespace Faker\Provider\it_IT;
+
+require_once __DIR__ . '/../Company.php';
+
+class Company extends \Faker\Provider\Company
+{
+    protected static $formats = array(
+        '{{lastName}} {{companySuffix}}',
+        '{{lastName}}-{{lastName}} {{companySuffix}}',
+        '{{lastName}}, {{lastName}} e {{lastName}} {{companySuffix}}'
+    );
+
+    protected static $catchPhraseWords = array(
+        array(
+            'Abilità', 'Access', 'Adattatore', 'Algoritmo', 'Alleanza', 'Analizzatore', 'Applicazione', 'Approccio', 'Architettura', 'Archivio', 'Intelligenza artificiale', 'Array', 'Attitudine', 'Benchmark', 'Capacità', 'Sfida', 'Circuito', 'Collaborazione', 'Complessità', 'Concetto', 'Conglomerato', 'Contingenza', 'Core', 'Database', 'Data-warehouse', 'Definizione', 'Emulazione', 'Codifica', 'Criptazione', 'Firmware', 'Flessibilità', 'Previsione', 'Frame', 'framework', 'Funzione', 'Funzionalità', 'Interfaccia grafica', 'Hardware', 'Help-desk', 'Gerarchia', 'Hub', 'Implementazione', 'Infrastruttura', 'Iniziativa', 'Installazione', 'Set di istruzioni', 'Interfaccia', 'Soluzione internet', 'Intranet', 'Conoscenza base', 'Matrici', 'Matrice', 'Metodologia', 'Middleware', 'Migrazione', 'Modello', 'Moderazione', 'Monitoraggio', 'Moratoria', 'Rete', 'Architettura aperta', 'Sistema aperto', 'Orchestrazione', 'Paradigma', 'Parallelismo', 'Policy', 'Portale', 'Struttura di prezzo', 'Prodotto', 'Produttività', 'Progetto', 'Proiezione', 'Protocollo', 'Servizio clienti', 'Software', 'Soluzione', 'Standardizzazione', 'Strategia', 'Struttura', 'Successo', 'Sovrastruttura', 'Supporto', 'Sinergia', 'Task-force', 'Finestra temporale', 'Strumenti', 'Utilizzazione', 'Sito web', 'Forza lavoro'
+        ),
+        array(
+            'adattiva', 'avanzata', 'migliorata', 'assimilata', 'automatizzata', 'bilanciata', 'centralizzata', 'compatibile', 'configurabile', 'cross-platform', 'decentralizzata', 'digitalizzata', 'distribuita', 'piccola', 'ergonomica', 'esclusiva', 'espansa', 'estesa', 'configurabile', 'fondamentale', 'orizzontale', 'implementata', 'innovativa', 'integrata', 'intuitiva', 'inversa', 'gestita', 'obbligatoria', 'monitorata', 'multi-canale', 'multi-laterale', 'open-source', 'operativa', 'ottimizzata', 'organica', 'persistente', 'polarizzata', 'proattiva', 'programmabile', 'progressiva', 'reattiva', 'riallineata', 'ricontestualizzata', 'ridotta', 'robusta', 'sicura', 'condivisibile', 'stand-alone', 'switchabile', 'sincronizzata', 'sinergica', 'totale', 'universale', 'user-friendly', 'versatile', 'virtuale', 'visionaria'
+        ),
+        array(
+            '24 ore', '24/7', 'terza generazione', 'quarta generazione', 'quinta generazione', 'sesta generazione', 'asimmetrica', 'asincrona', 'background', 'bi-direzionale', 'biforcata', 'bottom-line', 'coerente', 'coesiva', 'composita', 'sensibile al contesto', 'basta sul contesto', 'basata sul contenuto', 'dedicata', 'didattica', 'direzionale', 'discreta', 'dinamica', 'eco-centrica', 'esecutiva', 'esplicita', 'full-range', 'globale', 'euristica', 'alto livello', 'olistica', 'omogenea', 'ibrida', 'impattante', 'incrementale', 'intangibile', 'interattiva', 'intermediaria', 'locale', 'logistica', 'massimizzata', 'metodica', 'mission-critical', 'mobile', 'modulare', 'motivazionale', 'multimedia', 'multi-tasking', 'nazionale', 'neutrale', 'nextgeneration', 'non-volatile', 'object-oriented', 'ottima', 'ottimizzante', 'radicale', 'real-time', 'reciproca', 'regionale', 'responsiva', 'scalabile', 'secondaria', 'stabile', 'statica', 'sistematica', 'sistemica', 'tangibile', 'terziaria', 'uniforme', 'valore aggiunto'
+        )
+    );
+
+    protected static $bsWords = array(
+        array(
+            'partnerships', 'comunità', 'ROI', 'soluzioni', 'e-services', 'nicchie', 'tecnologie', 'contenuti', 'supply-chains', 'convergenze', 'relazioni', 'architetture', 'interfacce', 'mercati', 'e-commerce', 'sistemi', 'modelli', 'schemi', 'reti', 'applicazioni', 'metriche', 'e-business', 'funzionalità', 'esperienze', 'webservices', 'metodologie'
+        ),
+        array(
+            'implementate', 'utilizzo', 'integrate', 'ottimali', 'evolutive', 'abilitate', 'reinventate', 'aggregate', 'migliorate', 'incentivate', 'monetizzate', 'sinergizzate', 'strategiche', 'deploy', 'marchi', 'accrescitive', 'target', 'sintetizzate', 'spedizioni', 'massimizzate', 'innovazione', 'guida', 'estensioni', 'generate', 'exploit', 'transizionali', 'matrici', 'ricontestualizzate'
+        ),
+        array(
+            'valore aggiunto', 'verticalizzate', 'proattive', 'forti', 'rivoluzionari', 'scalabili', 'innovativi', 'intuitivi', 'strategici', 'e-business', 'mission-critical', '24/7', 'globali', 'B2B', 'B2C', 'granulari', 'virtuali', 'virali', 'dinamiche', 'magnetiche', 'web', 'interattive', 'sexy', 'back-end', 'real-time', 'efficienti', 'front-end', 'distributivi', 'estensibili', 'mondiali', 'open-source', 'cross-platform', 'sinergiche', 'out-of-the-box', 'enterprise', 'integrate', 'di impatto', 'wireless', 'trasparenti', 'next-generation', 'cutting-edge', 'visionari', 'plug-and-play', 'collaborative', 'olistiche', 'ricche'
+        )
+    );
+
+    protected static $companySuffix = array('SPA', 'e figli', 'Group', 's.r.l.');
+
+    /**
+     * @example 'Robust full-range hub'
+     */
+    public function catchPhrase()
+    {
+        $result = array();
+        foreach (static::$catchPhraseWords as &$word) {
+            $result[] = static::randomElement($word);
+        }
+
+        return join($result, ' ');
+    }
+
+    /**
+     * @example 'integrate extensible convergence'
+     */
+    public function bs()
+    {
+        $result = array();
+        foreach (static::$bsWords as &$word) {
+            $result[] = static::randomElement($word);
+        }
+
+        return join($result, ' ');
+    }
+}

+ 10 - 0
vendor/fzaninotto/faker/src/Faker/Provider/it_IT/Internet.php

@@ -0,0 +1,10 @@
+<?php
+
+namespace Faker\Provider\it_IT;
+
+class Internet extends \Faker\Provider\Internet
+{
+    protected static $safeEmailTld = array('org', 'com', 'net', 'it');
+    protected static $freeEmailDomain = array('gmail.com', 'yahoo.com', 'hotmail.com', 'email.it', 'libero.it', 'yahoo.it');
+    protected static $tld = array('com', 'com', 'com', 'net', 'org', 'it', 'it', 'it');
+}

+ 84 - 0
vendor/fzaninotto/faker/src/Faker/Provider/it_IT/Person.php

@@ -0,0 +1,84 @@
+<?php
+
+namespace Faker\Provider\it_IT;
+
+require_once __DIR__ . '/../Person.php';
+
+class Person extends \Faker\Provider\Person
+{
+    protected static $formats = array(
+        '{{firstName}} {{lastName}}',
+        '{{firstName}} {{lastName}}',
+        '{{firstName}} {{lastName}}',
+        '{{firstName}} {{lastName}}',
+        '{{firstName}} {{lastName}}',
+        '{{prefix}} {{firstName}} {{lastName}}',
+        '{{firstName}} {{lastName}}',
+        '{{prefix}} {{firstName}} {{lastName}}'
+    );
+
+    protected static $firstName = array(
+        'Aaron', 'Akira', 'Alberto', 'Alessandro', 'Alighieri', 'Amedeo', 'Amos', 'Anselmo', 'Antonino', 'Arcibaldo', 'Armando', 'Artes',
+        'Audenico', 'Ausonio', 'Bacchisio', 'Battista', 'Bernardo', 'Boris', 'Caio', 'Carlo', 'Cecco', 'Cirino', 'Cleros', 'Costantino',
+        'Damiano', 'Danny', 'Davide', 'Demian', 'Dimitri', 'Domingo', 'Dylan', 'Edilio', 'Egidio', 'Elio', 'Emanuel', 'Enrico', 'Ercole',
+        'Ermes', 'Ethan', 'Eusebio', 'Evangelista', 'Fabiano', 'Ferdinando', 'Fiorentino', 'Flavio', 'Fulvio', 'Gabriele', 'Gastone', 'Germano',
+        'Giacinto', 'Gianantonio', 'Gianleonardo', 'Gianmarco', 'Gianriccardo', 'Gioacchino', 'Giordano', 'Giuliano', 'Graziano', 'Guido', 'Harry',
+        'Iacopo', 'Ilario', 'Ione', 'Italo', 'Jack', 'Jari', 'Joey', 'Joseph', 'Kai', 'Kociss', 'Laerte', 'Lauro', 'Leonardo', 'Liborio', 'Lorenzo',
+        'Ludovico', 'Maggiore', 'Manuele', 'Mariano', 'Marvin', 'Matteo', 'Mauro', 'Michael', 'Mirco', 'Modesto', 'Muzio', 'Nabil', 'Nathan',
+        'Nick', 'Noah', 'Odino', 'Olo', 'Oreste', 'Osea', 'Pablo', 'Patrizio', 'Piererminio', 'Pierfrancesco', 'Piersilvio', 'Priamo', 'Quarto',
+        'Quirino', 'Radames', 'Raniero', 'Renato', 'Rocco', 'Romeo', 'Rosalino', 'Rudy', 'Sabatino', 'Samuel', 'Santo', 'Sebastian', 'Serse',
+        'Silvano', 'Sirio', 'Tancredi', 'Terzo', 'Timoteo', 'Tolomeo', 'Trevis', 'Ubaldo', 'Ulrico', 'Valdo', 'Neri',
+        'Vinicio', 'Walter', 'Xavier', 'Yago', 'Zaccaria', 'Abramo', 'Adriano', 'Alan', 'Albino', 'Alessio', 'Alighiero',
+        'Amerigo', 'Anastasio', 'Antimo', 'Antonio', 'Arduino', 'Aroldo', 'Arturo', 'Augusto', 'Avide', 'Baldassarre', 'Bettino',
+        'Bortolo', 'Caligola', 'Carmelo', 'Celeste', 'Ciro', 'Costanzo', 'Dante', 'Danthon', 'Davis', 'Demis', 'Dindo',
+        'Domiziano', 'Edipo', 'Egisto', 'Eliziario', 'Emidio', 'Enzo', 'Eriberto', 'Erminio', 'Ettore', 'Eustachio', 'Fabio', 'Fernando',
+        'Fiorenzo', 'Folco', 'Furio', 'Gaetano', 'Gavino', 'Gerlando', 'Giacobbe', 'Giancarlo', 'Gianmaria', 'Giobbe', 'Giorgio', 'Giulio',
+        'Gregorio', 'Hector', 'Ian', 'Ippolito', 'Ivano', 'Jacopo', 'Jarno', 'Joannes', 'Joshua', 'Karim', 'Kris', 'Lamberto',
+        'Lazzaro', 'Leone', 'Lino', 'Loris', 'Luigi', 'Manfredi', 'Marco', 'Marino', 'Marzio', 'Mattia', 'Max', 'Michele', 'Mirko', 'Moreno',
+        'Nadir', 'Nazzareno', 'Nestore', 'Nico', 'Noel', 'Odone', 'Omar', 'Orfeo', 'Osvaldo', 'Pacifico', 'Pericle', 'Pietro', 'Primo',
+        'Quasimodo', 'Radio', 'Raoul', 'Renzo', 'Rodolfo', 'Romolo', 'Rosolino', 'Rufo', 'Sabino', 'Sandro', 'Sasha', 'Secondo', 'Sesto',
+        'Silverio', 'Siro', 'Tazio', 'Teseo', 'Timothy', 'Tommaso', 'Tristano', 'Umberto', 'Ariel', 'Artemide', 'Assia', 'Azue', 'Benedetta',
+        'Bibiana', 'Brigitta', 'Carmela', 'Cassiopea', 'Cesidia', 'Cira', 'Clea', 'Cleopatra', 'Clodovea', 'Concetta', 'Cosetta', 'Cristyn',
+        'Damiana', 'Danuta', 'Deborah', 'Demi', 'Diamante', 'Diana', 'Donatella', 'Doriana', 'Edvige', 'Elda', 'Elga', 'Elsa', 'Emilia', 'Enrica',
+        'Erminia', 'Eufemia', 'Evita', 'Fatima', 'Felicia', 'Filomena', 'Flaviana', 'Fortunata', 'Gelsomina', 'Genziana', 'Giacinta', 'Gilda',
+        'Giovanna', 'Giulietta', 'Grazia', 'Guendalina', 'Helga', 'Ileana', 'Ingrid', 'Irene', 'Isabel', 'Isira', 'Ivonne', 'Jelena', 'Jole',
+        'Claudia', 'Kayla', 'Kristel', 'Laura', 'Lucia', 'Lia', 'Lidia', 'Lisa', 'Loredana', 'Loretta', 'Luce', 'Lucrezia', 'Luna', 'Maika',
+        'Marcella', 'Maria', 'Mariagiulia', 'Marianita', 'Mariapia', 'Marieva', 'Marina', 'Maristella', 'Maruska', 'Matilde', 'Mecren',
+        'Mercedes', 'Mietta', 'Miriana', 'Miriam', 'Monia', 'Morgana', 'Naomi', 'Nayade', 'Nicoletta', 'Ninfa', 'Noemi', 'Nunzia', 'Olimpia',
+        'Oretta', 'Ortensia', 'Penelope', 'Piccarda', 'Prisca', 'Rebecca', 'Rita', 'Rosalba', 'Rosaria', 'Rosita', 'Ruth', 'Samira',
+        'Sarita', 'Selvaggia', 'Shaira', 'Sibilla', 'Soriana', 'Sue ellen', 'Thea', 'Tosca', 'Ursula', 'Vania', 'Vera',
+        'Vienna', 'Violante', 'Vitalba', 'Zelida'
+    );
+
+    protected static $lastName = array(
+        'Rossi', 'Russo', 'Ferrari', 'Esposito', 'Bianchi', 'Romano', 'Colombo', 'Ricci', 'Marino', 'Greco', 'Bruno', 'Gallo', 'Conti',
+        'De luca', 'Mancini', 'Costa', 'Giordano', 'Rizzo', 'Lombardi', 'Moretti', 'Barbieri', 'Fontana', 'Santoro', 'Mariani',
+        'Rinaldi', 'Caruso', 'Ferrara', 'Galli', 'Martini', 'Leone', 'Longo', 'Gentile', 'Martinelli', 'Vitale', 'Lombardo', 'Serra',
+        'Coppola', 'De Santis', 'D\'angelo', 'Marchetti', 'Parisi', 'Villa', 'Conte', 'Ferraro', 'Ferri', 'Fabbri', 'Bianco',
+        'Marini', 'Grasso', 'Valentini', 'Messina', 'Sala', 'De Angelis', 'Gatti', 'Pellegrini', 'Palumbo', 'Sanna', 'Farina',
+        'Rizzi', 'Monti', 'Cattaneo', 'Morelli', 'Amato', 'Silvestri', 'Mazza', 'Testa', 'Grassi', 'Pellegrino', 'Carbone',
+        'Giuliani', 'Benedetti', 'Barone', 'Rossetti', 'Caputo', 'Montanari', 'Guerra', 'Palmieri', 'Bernardi', 'Martino', 'Fiore',
+        'De rosa', 'Ferretti', 'Bellini', 'Basile', 'Riva', 'Donati', 'Piras', 'Vitali', 'Battaglia', 'Sartori', 'Neri', 'Costantini',
+        'Milani', 'Pagano', 'Ruggiero', 'Sorrentino', 'D\'amico', 'Orlando', 'Damico', 'Negri'
+    );
+
+    private static $prefix = array('Sig.', 'Dott.', 'Dr.', 'Ing.');
+
+    private static $suffix = array();
+
+    /**
+     * @example 'Mrs.'
+     */
+    public static function prefix()
+    {
+        return static::randomElement(static::$prefix);
+    }
+
+    /**
+     * @example 'PhD'
+     */
+    public static function suffix()
+    {
+        return static::randomElement(static::$suffix);
+    }
+}

+ 23 - 0
vendor/fzaninotto/faker/src/Faker/Provider/it_IT/PhoneNumber.php

@@ -0,0 +1,23 @@
+<?php
+
+namespace Faker\Provider\it_IT;
+
+require_once __DIR__ . '/../PhoneNumber.php';
+
+class PhoneNumber extends \Faker\Provider\PhoneNumber
+{
+    protected static $formats = array(
+        '+## ### ## ## ####',
+        '+## ## #######',
+        '+## ## ########',
+        '+## ### #######',
+        '+## ### ########',
+        '+## #### #######',
+        '+## #### ########',
+        // According to http://it.wikipedia.org/wiki/Prefisso_telefonico#Elenco_degli_indicativi_in_Italia.2C_a_San_Marino_e_nel_Vaticano
+        '0## ### ####',
+        '+39 0## ### ###',
+        '3## ### ###',
+        '+39 3## ### ###'
+    );
+}

+ 106 - 0
vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/Address.php

@@ -0,0 +1,106 @@
+<?php
+
+namespace Faker\Provider\nl_BE;
+
+class Address extends \Faker\Provider\Address
+{
+    protected static $postcode = array('####');
+
+    protected static $streetAddressFormats = array(
+        '{{streetName}} {{buildingNumber}}'
+    );
+
+    protected static $streetNameFormats = array('{{lastName}}{{streetSuffix}}');
+
+    protected static $cityFormats = array('{{cityName}}');
+
+    protected static $addressFormats = array(
+        "{{streetAddress}}\n {{postcode}} {{city}}",
+    );
+
+    protected static $streetSuffix = array(
+        'baan', 'boulevard', 'dreef', 'hof', 'laan', 'pad', 'ring', 'singel', 'steeg', 'straat', 'weg',
+    );
+
+    /**
+     * Export of BAG (http://bag.vrom.nl/)
+     * last updated 2012/11/09
+     *
+     * @var array
+     */
+    protected static $cityNames = array(
+        'Aalst', 'Aarlen', 'Aarschot', 'Aat', 'Andenne', 'Antoing', 'Antwerpen', 'Bastenaken', 'Beringen',
+        'Beaumont', 'Beauraing', 'Bergen', 'Bilzen', 'Binche', 'Blankenberge', 'Borgloon', 'Borgworm', 'Bouillon',
+        'Bree', 'Brugge', 'Brussel', 'Charleroi', 'Châtelet', 'Chièvres', 'Chimay', 'Chiny', 'Ciney', 'Couvin',
+        'Damme', 'Deinze', 'Dendermonde', 'Diest', 'Diksmuide', 'Dilsen-Stokkem', 'Dinant', 'Doornik', 'Durbuy',
+        'Edingen', 'Eeklo', 'Eupen', 'Fleurus', 'Florenville', 'Fontaine-l\'Evêque', 'Fosses-la-Ville', 'Geel',
+        'Geldenaken', 'Gembloers', 'Genepiën', 'Genk', 'Gent', 'Geraardsbergen', 'Gistel', '\'s-Gravenbrakel',
+        'Halen', 'Halle', 'Hamont-Achel', 'Hannuit', 'Harelbeke', 'Hasselt', 'Herentals', 'Herk-de-Stad', 'Herstal',
+        'Herve', 'Hoei', 'Hoogstraten', 'Houffalize', 'Ieper', 'Izegem', 'Komen-Waasten', 'Kortrijk', 'La Louvière',
+        'La Roche-en-Ardenne', 'Landen', 'Le Rœulx', 'Lessen', 'Leuze-en-Hainaut', 'Leuven', 'Lier', 'Limburg',
+        'Lo-Reninge', 'Lokeren', 'Lommel', 'Luik', 'Maaseik', 'Malmedy', 'Marche-en-Famenne', 'Mechelen', 'Menen',
+        'Mesen', 'Moeskroen', 'Mortsel', 'Namen', 'Neufchâteau', 'Nieuwpoort', 'Nijvel', 'Ninove', 'Oostende',
+        'Ottignies', 'Oudenaarde', 'Oudenburg', 'Peer', 'Péruwelz', 'Philippeville', 'Poperinge', 'Rochefort',
+        'Roeselare', 'Ronse', 'Saint-Ghislain', 'Saint-Hubert', 'Sankt Vith', 'Scherpenheuvel-Zichem', 'Seraing',
+        'Sint-Niklaas', 'Sint-Truiden', 'Spa', 'Stavelot', 'Thuin', 'Tielt', 'Tienen', 'Tongeren', 'Torhout',
+        'Turnhout', 'Verviers', 'Veurne', 'Vilvoorde', 'Virton', 'Walcourt', 'Waregem', 'Waver', 'Wervik', 'Wezet',
+        'Zinnik', 'Zottegem', 'Zoutleeuw'
+    );
+
+    protected static $state = array(
+        'Antwerpen', 'Limburg', 'Oost-Vlaanderen', 'Vlaams-Brabant', 'West-Vlaanderen',
+        'Henegouwen', 'Luik', 'Luxemburg', 'Namen', 'Waals-Brabant'
+    );
+
+    protected static $country = array(
+        'Afghanistan', 'Albanië', 'Algerije', 'Amerikaans-Samoa', 'Andorra', 'Angola', 'Amerikaanse Virgineilanden',
+        'Anguilla', 'Antartica', 'Antigua en Barbuda', 'Argentinië', 'Armenië', 'Aruba', 'Australië', 'Azerbeidzjan',
+        'Bahamas', 'Bahrein', 'Bangladesh', 'Barbados', 'België', 'Belize', 'Benin', 'Bermuda', 'Bhutan', 'Bolivia',
+        'Bosnië-Herzegovina', 'Botswana', 'Bouvet Eiland (Bouvetoya)', 'Brazilië', 'Britse Maagdeneilanden',
+        'Brunei Darussalam', 'Bulgarije', 'Burkina Faso', 'Burundi', 'Cambodja', 'Canada',
+        'Centraal-Afrikaanse Republiek', 'Chili', 'China', 'Christmaseiland', 'Cocoseilanden', 'Colombia', 'Comoren',
+        'Congo', 'Cookeilanden', 'Costa Rica', 'Cuba', 'Cyprus', 'Denemarken', 'Djibouti', 'Dominica',
+        'Dominicaanse Republiek', 'Duitsland', 'Ecuador', 'Egypte', 'El salvador', 'Equatoriaal-Guinea', 'Eritrea',
+        'Estland', 'Ethiopië', 'Faroe Eilanden', 'Falklandeilanden', 'Fiji', 'Finland', 'Frankrijk', 'Frans-Guyana',
+        'Frans-Polynesië', 'Franse Zuidelijke en Antarctische Gebieden', 'Gabon', 'Gambia', 'Georgië', 'Ghana',
+        'Gibraltar', 'Griekenland', 'Groenland', 'Grenada', 'Guadeloupe', 'Guam', 'Guatemala', 'Guernsey', 'Guinee',
+        'Guinee-Bissau', 'Guyana', 'Haïti', 'Heard en McDonaldeilanden', 'Honduras', 'Hong Kong', 'Hongarije',
+        'IJsland', 'India', 'Indonesië', 'Iran', 'Irak', 'Ierland', 'Man', 'Israel', 'Ivoorkust', 'Italië', 'Jamaica',
+        'Japan', 'Jersey', 'Jordanië', 'Jemen', 'Kazachstan', 'Kenia',
+        'Kleinere afgelegen eilanden van de Verenigde staten', 'Kiribati', 'Korea', 'Koeweit', 'Kirgizië', 'Kameroen',
+        'Kaapverdië', 'Kaaimaneilanden', 'Kroatië', 'Laos', 'Letland', 'Libanon', 'Lesotho', 'Liberia', 'Libië',
+        'Liechtenstein', 'Litouwen', 'Luxemburg', 'Macau', 'Macedonië', 'Madagascar', 'Malawi', 'Maleisië', 'Maldiven',
+        'Mali', 'Malta', 'Marshalleilanden', 'Martinique', 'Mauritus', 'Mauritania', 'Mayotte', 'Mexico', 'Micronesië',
+        'Moldavië', 'Monaco', 'Mongolië', 'Montenegro', 'Monsterrat', 'Marokko', 'Mozambique', 'Myanmar', 'Namibië',
+        'Nauru', 'Nepal', 'Nederlandse Antillen', 'Nederland', 'Nieuw-Caledonië', 'Nieuw-Zeeland', 'Nicaragua',
+        'Niger', 'Nigeria', 'Niue', 'Norfolk', 'Noordelijke Marianen', 'Noorwegen', 'Oman', 'Oostenrijk', 'Oeganda',
+        'Oekraïne', 'Oezbakistan', 'Pakistan', 'Palau', 'Palestina', 'Panama', 'Papoea-Nieuw-Guinea', 'Paraguay',
+        'Peru', 'Filipijnen', 'Pitcairneilanden', 'Polen', 'Portugal', 'Puerto Rico', 'Qatar', 'Réunion', 'Roemenië',
+        'Rusland', 'Rwanda', 'Rwanda', 'Sint-Bartholomeus', 'Sint-Helena', 'Saint Kitts en Nevis', 'Saint Lucia',
+        'Sint Maarten', 'Saint-Pierre en Miquelon', 'Saint Vincent en de Grenadines', 'Samoa', 'San Marino',
+        'Sao Toma en Principe', 'Saoedi-Arabië', 'Senegal', 'Servië', 'Seychellen', 'Sierra Leone', 'Singapore',
+        'Slovenië', 'Salomonseilanden', 'Somalië', 'Spanje', 'Sri Lanka', 'Soedan', 'Suriname',
+        'Spitsbergen en Jan Mayen', 'Swaziland', 'Zweden', 'Zwitserland', 'Syrië', 'Taiwan', 'Tadzjikistan',
+        'Tanzania', 'Thailand', 'Tsjaad', 'Timor-Leste', 'Togo', 'Tokelau-eilanden', 'Tonga', 'Trinidad en Trobago',
+        'Tunesië', 'Turkije', 'Turkmenistan', 'Turks- en Caicoseilanden', 'Tuvalu', 'Tsjechische Republiek',
+        'Uruguay', 'Vanuatu', 'Venezuela', 'Verenigde Arabische Emiraten', 'Verenigd Koninkrijk',
+        'Verenigde Staten van Amerika', 'Vaticaanstad', 'Vietnam', 'Wallis en Futuna', 'Westerlijke Shara',
+        'Wit-Rusland', 'Zambia', 'Zuid-Afrika', 'Zuid-Georgia en de Zuidelijke Sandwicheilanden', 'Zimbabwe'
+    );
+
+    /**
+     * @example 'Gelderland'
+     */
+    public static function state()
+    {
+        return static::randomElement(static::$state);
+    }
+
+    /**
+     * @see parent
+     */
+    public function cityName()
+    {
+        return static::randomElement(static::$cityNames);
+    }
+}

+ 13 - 0
vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/Company.php

@@ -0,0 +1,13 @@
+<?php
+
+namespace Faker\Provider\nl_BE;
+
+class Company extends \Faker\Provider\Company
+{
+    protected static $formats = array(
+        '{{lastName}} {{companySuffix}}',
+        '{{lastName}}',
+    );
+
+    protected static $companySuffix = array('VZW', 'Comm.V', 'VOF', 'BVBA', 'EBVBA', 'ESV', 'NV', 'Comm.VA', 'CVOA', 'CVBA', '& Zonen', '& Zn');
+}

+ 46 - 0
vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/Internet.php

@@ -0,0 +1,46 @@
+<?php
+
+namespace Faker\Provider\nl_BE;
+
+class Internet extends \Faker\Provider\Internet
+{
+    protected static $safeEmailTld = array('com', 'net', 'be', 'be');
+    protected static $freeEmailDomain = array('gmail.com', 'hotmail.com', 'yahoo.com', 'advalvas.be');
+    protected static $tld = array('com', 'com', 'com', 'net', 'org', 'be', 'be', 'be');
+
+    /**
+     * Converts French characters to their ASCII representation
+     *
+     * @return string
+     */
+    private static function toAscii($string)
+    {
+        $from = array('à', 'À', 'ç', 'Ç', 'é', 'É', 'è', 'È', 'ë', 'Ë', 'ï', 'Ï', 'î', 'Î', 'ô', 'Ô', 'ù', 'Ù');
+        $to   = array('a', 'A', 'c', 'c', 'e', 'E', 'e', 'E', 'e', 'E', 'i', 'I', 'i', 'I', 'o', 'O', 'u', 'U');
+
+        return str_replace($from, $to, $string);
+    }
+
+    /**
+     * @example 'jdoe'
+     */
+    public function userName()
+    {
+        $format = static::randomElement(static::$userNameFormats);
+
+        return static::toLower(static::toAscii(static::bothify($this->generator->parse($format))));
+    }
+
+    /**
+     * @example 'faber'
+     */
+    public function domainWord()
+    {
+        $company = $this->generator->format('company');
+        $companyElements = explode(' ', $company);
+        $company = $companyElements[0];
+        $company = preg_replace('/\W/', '', $company);
+
+        return static::toLower(static::toAscii($company));
+    }
+}

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 11 - 0
vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/Person.php


+ 21 - 0
vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/PhoneNumber.php

@@ -0,0 +1,21 @@
+<?php
+
+namespace Faker\Provider\nl_BE;
+
+class PhoneNumber extends \Faker\Provider\PhoneNumber
+{
+    protected static $formats = array(
+        '+32(0)########',
+        '+32(0)### ######',
+        '+32(0)# #######',
+        '0#########',
+        '0### ######',
+        '0### ### ###',
+        '0### ## ## ##',
+        '0## ######',
+        '0## ## ## ##',
+        '0# #######',
+        '0# ### ## ##',
+    );
+
+}

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 33 - 0
vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/Address.php


+ 15 - 0
vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/Company.php

@@ -0,0 +1,15 @@
+<?php
+
+namespace Faker\Provider\nl_NL;
+
+class Company extends \Faker\Provider\Company
+{
+    protected static $formats = array(
+        '{{lastName}} {{companySuffix}}',
+        '{{lastName}} {{lastName}} {{companySuffix}}',
+        '{{lastName}}',
+        '{{lastName}}',
+    );
+
+    protected static $companySuffix = array('VOF', 'CV', 'LLP', 'BV', 'NV', 'IBC', 'CSL', 'EESV', 'SE', 'CV', 'Stichting', '& Zonen', '& Zn');
+}

+ 10 - 0
vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/Internet.php

@@ -0,0 +1,10 @@
+<?php
+
+namespace Faker\Provider\nl_NL;
+
+class Internet extends \Faker\Provider\Internet
+{
+    protected static $safeEmailTld = array('com', 'net', 'nl', 'nl');
+    protected static $freeEmailDomain = array('gmail.com', 'hotmail.nl', 'live.nl', 'yahoo.nl');
+    protected static $tld = array('com', 'com', 'com', 'net', 'org', 'nl', 'nl', 'nl');
+}

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 18 - 0
vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/Person.php


+ 35 - 0
vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/PhoneNumber.php

@@ -0,0 +1,35 @@
+<?php
+
+namespace Faker\Provider\nl_NL;
+
+class PhoneNumber extends \Faker\Provider\PhoneNumber
+{
+    protected static $formats = array(
+        '+31(0)#########',
+        '+31(0)### ######',
+        '+31(0)## #######',
+        '+31(0)6 ########',
+        '+31#########',
+        '+31### ######',
+        '+31## #######',
+        '+316 ########',
+        '0#########',
+        '0### ######',
+        '0## #######',
+        '06 ########',
+        '(0###) ######',
+        '(0##) #######',
+
+        '+31(0)###-######',
+        '+31(0)##-#######',
+        '+31(0)6-########',
+        '+31###-######',
+        '+31##-#######',
+        '+316-########',
+        '0###-######',
+        '0##-#######',
+        '06-########',
+        '(0###)-######',
+        '(0##)-#######',
+    );
+}

+ 38 - 0
vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/Internet.php

@@ -0,0 +1,38 @@
+<?php
+
+namespace Faker\Provider\pl_PL;
+
+class Internet extends \Faker\Provider\Internet
+{
+    protected static $safeEmailTld = array('com', 'pl');
+
+    protected static $freeEmailDomain = array('gmail.com', 'yahoo.com', 'wp.pl', 'onet.pl', 'interia.pl', 'gazeta.pl');
+
+    protected static $tld = array('pl', 'pl', 'pl', 'pl', 'pl', 'pl', 'com', 'info', 'net', 'org', 'com.pl', 'com.pl');
+
+    /**
+     * Converts polish characters to their ASCII representation
+     *
+     * @return string
+     */
+    private function toAscii($string)
+    {
+        $from = array('ą', 'Ą', 'ć', 'Ć', 'ę', 'Ę', 'ł', 'Ł', 'ó', 'Ó', 'ś', 'Ś', 'ż', 'Ż', 'ź', 'Ź', 'ń', 'Ń');
+        $to   = array('a', 'A', 'c', 'C', 'e', 'E', 'l', 'L', 'o', 'O', 's', 'S', 'z', 'Z', 'z', 'Z', 'n', 'n');
+
+        return str_replace($from, $to, $string);
+    }
+
+    public function email()
+    {
+        return $this->toAscii(parent::email());
+    }
+
+    /**
+     * @example 'dominika16'
+     */
+    public function userName()
+    {
+        return $this->toAscii(parent::userName());
+    }
+}

+ 54 - 0
vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/Person.php

@@ -0,0 +1,54 @@
+<?php
+
+namespace Faker\Provider\pl_PL;
+
+class Person extends \Faker\Provider\Person
+{
+    protected static $formats = array(
+        '{{firstName}} {{lastName}}',
+        '{{firstName}} {{lastName}}',
+        '{{firstName}} {{lastName}}',
+        '{{firstName}} {{lastName}}',
+        '{{firstName}} {{lastName}}',
+        '{{prefix}} {{firstName}} {{lastName}}',
+        '{{firstName}} {{lastName}}',
+        '{{prefix}} {{prefix}} {{firstName}} {{lastName}}',
+    );
+
+    protected static $firstName = array(
+        'Adam', 'Adrian', 'Agata', 'Alan', 'Aleksander', 'Aleksandra', 'Alicja', 'Amelia', 'Anna', 'Antoni', 'Antonina',
+        'Błażej', 'Barbara', 'Bartłomiej', 'Bartosz', 'Blanka', 'Damian', 'Daniel', 'Daria', 'Dawid', 'Dominik', 'Dominika',
+        'Emilia', 'Fabian', 'Filip', 'Franciszek', 'Gabriel', 'Gabriela', 'Hanna', 'Hubert', 'Iga', 'Igor', 'Izabela',
+        'Jagoda', 'Jakub', 'Jan', 'Joanna', 'Julia', 'Justyna', 'Kacper', 'Kamil', 'Kamila', 'Karol', 'Karolina', 'Katarzyna',
+        'Kinga', 'Klaudia', 'Konrad', 'Kornelia', 'Krystian', 'Krzysztof', 'Ksawery', 'Laura', 'Lena', 'Maciej', 'Magdalena',
+        'Małgorzata', 'Maja', 'Maksymilian', 'Malwina', 'Marcel', 'Marcin', 'Maria', 'Marta', 'Martyna', 'Mateusz', 'Micha',
+        'Michał', 'Michalina', 'Miko', 'Mikołaj', 'Milena', 'Miłosz', 'Nadia', 'Natalia', 'Nikodem', 'Nikola', 'Nina',
+        'Oliwia', 'Oliwier', 'Oskar', 'Patrycja', 'Patryk', 'Paulina', 'Pawe', 'Paweł', 'Piotr', 'Pola', 'Rafał', 'Roksana',
+        'Sandra', 'Sebastian', 'Stanisław', 'Szymon', 'Tomasz', 'Tymoteusz', 'Łukasz', 'Weronika', 'Wiktor', 'Wiktoria',
+        'Wojciech', 'Zofia', 'Zuzanna',
+    );
+
+    protected static $lastName = array(
+        'Nowak', 'Kowalski', 'Wiśniewski', 'Dąbrowski', 'Lewandowski', 'Wójcik', 'Kamiński', 'Kowalczyk', 'Zieliński', 'Szymański',
+        'Woźniak', 'Kozłowski', 'Jankowski', 'Wojciechowski', 'Kwiatkowski', 'Kaczmarek', 'Mazur', 'Krawczyk', 'Piotrowski',
+        'Grabowski', 'Nowakowski', 'Pawłowski', 'Michalski', 'Nowicki', 'Adamczyk', 'Dudek', 'Zając', 'Wieczorek', 'Jabłoński',
+        'Król', 'Majewski', 'Olszewski', 'Jaworski', 'Wróbel', 'Malinowski', 'Pawlak', 'Witkowski', 'Walczak', 'Stępień',
+        'Górski', 'Rutkowski', 'Michalak', 'Sikora', 'Ostrowski', 'Baran', 'Duda', 'Szewczyk', 'Tomaszewski', 'Pietrzak',
+        'Marciniak', 'Wróblewski', 'Zalewski', 'Jakubowski', 'Jasiński', 'Zawadzki', 'Sadowski', 'Bąk', 'Chmielewski',
+        'Włodarczyk', 'Borkowski', 'Czarnecki', 'Sawicki', 'Sokołowski', 'Urbański', 'Kubiak', 'Maciejewski', 'Szczepański',
+        'Kucharski', 'Wilk', 'Kalinowski', 'Lis', 'Mazurek', 'Wysocki', 'Adamski', 'Kaźmierczak', 'Wasilewski', 'Sobczak',
+        'Czerwiński', 'Andrzejewski', 'Cieślak', 'Głowacki', 'Zakrzewski', 'Kołodziej', 'Sikorski', 'Krajewski', 'Gajewski',
+        'Szymczak', 'Szulc', 'Baranowski', 'Laskowski', 'Brzeziński', 'Makowski', 'Ziółkowski', 'Przybylski', 'Domański',
+        'Nowacki', 'Borowski', 'Błaszczyk', 'Chojnacki', 'Ciesielski',
+    );
+
+    private static $prefix = array('mgr','inż.', 'dr', 'doc.');
+
+    /**
+     * @example 'mgr'
+     */
+    public static function prefix()
+    {
+        return static::randomElement(static::$prefix);
+    }
+}

+ 14 - 0
vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/PhoneNumber.php

@@ -0,0 +1,14 @@
+<?php
+
+namespace Faker\Provider\pl_PL;
+
+class PhoneNumber extends \Faker\Provider\PhoneNumber
+{
+    protected static $formats = array(
+        '+## ### ### ####',
+        '### ### ###',
+        '#########',
+        '(##) ### ## ##',
+        '+##(##)#######',
+    );
+}

+ 132 - 0
vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Address.php

@@ -0,0 +1,132 @@
+<?php
+
+namespace Faker\Provider\pt_BR;
+
+class Address extends \Faker\Provider\Address
+{
+    protected static $cityPrefix = array('São', 'Porto', 'Vila', 'Santa');
+    protected static $citySuffix = array('do Norte', 'do Leste', 'do Sul', 'd\'Oeste');
+    protected static $streetPrefix = array(
+        'Av.', 'Avenida', 'R.', 'Rua', 'Travessa', 'Largo'
+    );
+    protected static $buildingNumber = array('#####', '####', '###', '##', '#');
+    protected static $postcode = array('#####-###');
+    protected static $state = array(
+        'Acre', 'Alagoas', 'Amapá', 'Amazonas', 'Bahia', 'Ceará',
+        'Distrito Federal', 'Espírito Santo', 'Goiás', 'Maranhão',
+        'Mato Grosso', 'Mato Grosso do Sul', 'Minas Gerais', 'Pará', 'Paraíba',
+        'Paraná', 'Pernambuco', 'Piauí', 'Rio de Janeiro',
+        'Rio Grande do Norte', 'Rio Grande do Sul', 'Rondônia', 'Roraima',
+        'Santa Catarina', 'São Paulo', 'Sergipe', 'Tocantins'
+    );
+    protected static $stateAbbr = array(
+        'AC', 'AL', 'AP', 'AM', 'BA', 'CE', 'DF', 'ES', 'GO', 'MA', 'MT', 'MS',
+        'MG', 'PA', 'PB', 'PR', 'PE', 'PI', 'RJ', 'RN', 'RS', 'RO', 'RR', 'SC',
+        'SP', 'SE', 'TO'
+    );
+    protected static $country = array(
+        'Afeganistão', 'África do Sul', 'Albânia', 'Alemanha', 'Andorra',
+        'Angola', 'Antigua e Barbuda', 'Arabia Saudita', 'Argélia',
+        'Argentina', 'Armênia', 'Austrália', 'Áustria', 'Azerbaijão',
+        'Bahamas', 'Bangladesh', 'Barbados', 'Barein', 'Belize', 'Benin',
+        'Bielorrússia', 'Birmânia', 'Bolívia', 'Bósnia e Herzegovina',
+        'Botsuana', 'Brasil', 'Brunei', 'Bulgária', 'Burkina Faso',
+        'Burundi', 'Butão', 'Bélgica', 'Cabo Verde', 'Camboja', 'Camarões',
+        'Canadá', 'Cazaquistão', 'Chad', 'Chile', 'China', 'Chipre',
+        'Colômbia', 'Comoras', 'Congo', 'Coréia do Norte', 'Coréia do Sul',
+        'Costa Rica', 'Costa do Marfim', 'Croácia', 'Cuba', 'Dinamarca',
+        'Djibouti', 'Domênica', 'Equador', 'Egito', 'El Salvador',
+        'Emirados Árabes Unidos', 'Eritrea', 'Eslováquia', 'Eslovênia',
+        'Espanha', 'Estados Unidos da América', 'Estônia', 'Etiópia',
+        'Filipinas', 'Finlândia', 'Fiji','França', 'Gabão', 'Gâmbia',
+        'Georgia', 'Gana', 'Granada', 'Grécia', 'Guatemala',
+        'Guiné Equatorial', 'Guiné Bissau', 'Guiana', 'Haiti', 'Honduras',
+        'Hungria', 'Índia', 'Indonésia', 'Iraque', 'Irlanda', 'Irã',
+        'Islândia', 'Ilhas Marshall', 'Ilhas Maurício', 'Ilhas Salomão',
+        'Ilhas Samoa', 'Israel', 'Itália', 'Jamaica', 'Japão', 'Jordânia',
+        'Kiribati', 'Kwait', 'Laos', 'Lesoto', 'Letônia', 'Libéria', 'Líbia',
+        'Liechtenstein', 'Lituânia', 'Luxemburgo', 'Líbano', 'Macedônia',
+        'Madagascar', 'Malásia', 'Malauí', 'Maldivas', 'Mali', 'Malta',
+        'Marrocos', 'Mauritânia', 'Micronésia', 'Moldávia', 'Mongólia',
+        'Montenegro', 'Moçambique', 'México', 'Mônaco', 'Namíbia', 'Nauru',
+        'Nepal', 'Nicarágua', 'Nigéria', 'Noruega', 'Nova Guiné',
+        'Nova Zelândia', 'Níger', 'Omã', 'Qatar', 'Quênia','Quirguistão',
+        'Paquistão', 'Palaos', 'Panamá', 'Papua Nova Guiné', 'Paraguai',
+        'Países Baixos', 'Peru', 'Polônia', 'Portugal', 'Reino Unido',
+        'Reino Unido da Grã Bretanha e Irlanda do Norte',
+        'República Centroafricana', 'República Checa',
+        'República Democrática do Congo', 'República Dominicana', 'Ruanda',
+        'Romênia', 'Rússia', 'San Cristõvao e Neves', 'San Marino',
+        'São Vicente e as Granadinas', 'Santa Luzia', 'São Tomé e Príncipe',
+        'Senegal', 'Sérvia', 'Seychelles', 'Serra Leoa', 'Singapura', 'Síria',
+        'Somália', 'Sri Lanka', 'Suazilândia', 'Sudão', 'Suécia', 'Suiça',
+        'Suriname', 'Tailândia', 'Tanzânia', 'Tajiquistão', 'Timor Leste',
+        'Togo', 'Tonga', 'Trinidad e Tobago', 'Turcomenistão', 'Turquia',
+        'Tuvalu', 'Tunísia', 'Ucrânia', 'Uganda', 'Uruguai', 'Uzbequistão',
+        'Vaticano', 'Vanuatu', 'Venezuela', 'Vietnã', 'Yemen', 'Zâmbia',
+        'Zimbábue'
+    );
+    protected static $cityFormats = array(
+        '{{cityPrefix}} {{firstName}} {{citySuffix}}',
+        '{{cityPrefix}} {{firstName}}',
+        '{{firstName}} {{citySuffix}}',
+        '{{lastName}} {{citySuffix}}',
+    );
+    protected static $streetNameFormats = array(
+        '{{streetPrefix}} {{firstName}}',
+        '{{streetPrefix}} {{lastName}}',
+        '{{streetPrefix}} {{firstName}} {{lastName}}'
+    );
+    protected static $streetAddressFormats = array(
+        '{{streetName}}, {{buildingNumber}}',
+        '{{streetName}}, {{buildingNumber}}. {{secondaryAddress}}',
+    );
+    protected static $addressFormats = array(
+        "{{postcode}}, {{streetAddress}}\n{{city}} - {{stateAbbr}}",
+    );
+    protected static $secondaryAddressFormats = array(
+        'Bloco A', 'Bloco B', 'Bloco C', 'Bc. # Ap. ##', 'Bc. ## Ap. ##',
+        '#º Andar', '##º Andar', '###º Andar', 'Apto #', 'Apto ##', 'Apto ###',
+        'Apto ####', 'F', 'Fundos', 'Anexo'
+    );
+
+    /**
+     * @example 'Avenida'
+     */
+    public static function streetPrefix()
+    {
+        return static::randomElement(static::$streetPrefix);
+    }
+
+    /**
+     * @example 'São'
+     */
+    public static function cityPrefix()
+    {
+        return static::randomElement(static::$cityPrefix);
+    }
+
+    /**
+     * @example '6º Andar'
+     */
+    public static function secondaryAddress()
+    {
+        return static::numerify(static::randomElement(static::$secondaryAddressFormats));
+    }
+
+    /**
+     * @example 'Brasília'
+     */
+    public static function state()
+    {
+        return static::randomElement(static::$state);
+    }
+
+    /**
+     * @example 'DF'
+     */
+    public static function stateAbbr()
+    {
+        return static::randomElement(static::$stateAbbr);
+    }
+}

+ 66 - 0
vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Company.php

@@ -0,0 +1,66 @@
+<?php
+
+namespace Faker\Provider\pt_BR;
+
+class Company extends \Faker\Provider\Company
+{
+    protected static $formats = array(
+        '{{lastName}} {{companySuffix}}',
+        '{{lastName}}-{{lastName}}',
+        '{{lastName}} e {{lastName}}',
+        '{{lastName}} de {{lastName}}',
+        '{{lastName}}, {{lastName}} e {{lastName}}'
+    );
+
+    protected static $catchPhraseWords = array(
+        array(
+            'Adaptive', 'Advanced', 'Ameliorated', 'Assimilated', 'Automated', 'Balanced', 'Business-focused', 'Centralized', 'Cloned', 'Compatible', 'Configurable', 'Cross-group', 'Cross-platform', 'Customer-focused', 'Customizable', 'Decentralized', 'De-engineered', 'Devolved', 'Digitized', 'Distributed', 'Diverse', 'Down-sized', 'Enhanced', 'Enterprise-wide', 'Ergonomic', 'Exclusive', 'Expanded', 'Extended', 'Facetoface', 'Focused', 'Front-line', 'Fully-configurable', 'Function-based', 'Fundamental', 'Future-proofed', 'Grass-roots', 'Horizontal', 'Implemented', 'Innovative', 'Integrated', 'Intuitive', 'Inverse', 'Managed', 'Mandatory', 'Monitored', 'Multi-channelled', 'Multi-lateral', 'Multi-layered', 'Multi-tiered', 'Networked', 'Object-based', 'Open-architected', 'Open-source', 'Operative', 'Optimized', 'Optional', 'Organic', 'Organized', 'Persevering', 'Persistent', 'Phased', 'Polarised', 'Pre-emptive', 'Proactive', 'Profit-focused', 'Profound', 'Programmable', 'Progressive', 'Public-key', 'Quality-focused', 'Reactive', 'Realigned', 'Re-contextualized', 'Re-engineered', 'Reduced', 'Reverse-engineered', 'Right-sized', 'Robust', 'Seamless', 'Secured', 'Self-enabling', 'Sharable', 'Stand-alone', 'Streamlined', 'Switchable', 'Synchronised', 'Synergistic', 'Synergized', 'Team-oriented', 'Total', 'Triple-buffered', 'Universal', 'Up-sized', 'Upgradable', 'User-centric', 'User-friendly', 'Versatile', 'Virtual', 'Visionary', 'Vision-oriented'
+        ),
+        array(
+            '24hour', '24/7', '3rdgeneration', '4thgeneration', '5thgeneration', '6thgeneration', 'actuating', 'analyzing', 'assymetric', 'asynchronous', 'attitude-oriented', 'background', 'bandwidth-monitored', 'bi-directional', 'bifurcated', 'bottom-line', 'clear-thinking', 'client-driven', 'client-server', 'coherent', 'cohesive', 'composite', 'context-sensitive', 'contextually-based', 'content-based', 'dedicated', 'demand-driven', 'didactic', 'directional', 'discrete', 'disintermediate', 'dynamic', 'eco-centric', 'empowering', 'encompassing', 'even-keeled', 'executive', 'explicit', 'exuding', 'fault-tolerant', 'foreground', 'fresh-thinking', 'full-range', 'global', 'grid-enabled', 'heuristic', 'high-level', 'holistic', 'homogeneous', 'human-resource', 'hybrid', 'impactful', 'incremental', 'intangible', 'interactive', 'intermediate', 'leadingedge', 'local', 'logistical', 'maximized', 'methodical', 'mission-critical', 'mobile', 'modular', 'motivating', 'multimedia', 'multi-state', 'multi-tasking', 'national', 'needs-based', 'neutral', 'nextgeneration', 'non-volatile', 'object-oriented', 'optimal', 'optimizing', 'radical', 'real-time', 'reciprocal', 'regional', 'responsive', 'scalable', 'secondary', 'solution-oriented', 'stable', 'static', 'systematic', 'systemic', 'system-worthy', 'tangible', 'tertiary', 'transitional', 'uniform', 'upward-trending', 'user-facing', 'value-added', 'web-enabled', 'well-modulated', 'zeroadministration', 'zerodefect', 'zerotolerance'
+        ),
+        array(
+            'ability', 'access', 'adapter', 'algorithm', 'alliance', 'analyzer', 'application', 'approach', 'architecture', 'archive', 'artificialintelligence', 'array', 'attitude', 'benchmark', 'budgetarymanagement', 'capability', 'capacity', 'challenge', 'circuit', 'collaboration', 'complexity', 'concept', 'conglomeration', 'contingency', 'core', 'customerloyalty', 'database', 'data-warehouse', 'definition', 'emulation', 'encoding', 'encryption', 'extranet', 'firmware', 'flexibility', 'focusgroup', 'forecast', 'frame', 'framework', 'function', 'functionalities', 'GraphicInterface', 'groupware', 'GraphicalUserInterface', 'hardware', 'help-desk', 'hierarchy', 'hub', 'implementation', 'info-mediaries', 'infrastructure', 'initiative', 'installation', 'instructionset', 'interface', 'internetsolution', 'intranet', 'knowledgeuser', 'knowledgebase', 'localareanetwork', 'leverage', 'matrices', 'matrix', 'methodology', 'middleware', 'migration', 'model', 'moderator', 'monitoring', 'moratorium', 'neural-net', 'openarchitecture', 'opensystem', 'orchestration', 'paradigm', 'parallelism', 'policy', 'portal', 'pricingstructure', 'processimprovement', 'product', 'productivity', 'project', 'projection', 'protocol', 'securedline', 'service-desk', 'software', 'solution', 'standardization', 'strategy', 'structure', 'success', 'superstructure', 'support', 'synergy', 'systemengine', 'task-force', 'throughput', 'time-frame', 'toolset', 'utilisation', 'website', 'workforce'
+        )
+    );
+
+    protected static $bsWords = array(
+        array(
+            'implement', 'utilize', 'integrate', 'streamline', 'optimize', 'evolve', 'transform', 'embrace', 'enable', 'orchestrate', 'leverage', 'reinvent', 'aggregate', 'architect', 'enhance', 'incentivize', 'morph', 'empower', 'envisioneer', 'monetize', 'harness', 'facilitate', 'seize', 'disintermediate', 'synergize', 'strategize', 'deploy', 'brand', 'grow', 'target', 'syndicate', 'synthesize', 'deliver', 'mesh', 'incubate', 'engage', 'maximize', 'benchmark', 'expedite', 'reintermediate', 'whiteboard', 'visualize', 'repurpose', 'innovate', 'scale', 'unleash', 'drive', 'extend', 'engineer', 'revolutionize', 'generate', 'exploit', 'transition', 'e-enable', 'iterate', 'cultivate', 'matrix', 'productize', 'redefine', 'recontextualize'
+        ),
+        array(
+            'clicks-and-mortar', 'value-added', 'vertical', 'proactive', 'robust', 'revolutionary', 'scalable', 'leading-edge', 'innovative', 'intuitive', 'strategic', 'e-business', 'mission-critical', 'sticky', 'one-to-one', '24/7', 'end-to-end', 'global', 'B2B', 'B2C', 'granular', 'frictionless', 'virtual', 'viral', 'dynamic', '24/365', 'best-of-breed', 'killer', 'magnetic', 'bleeding-edge', 'web-enabled', 'interactive', 'dot-com', 'sexy', 'back-end', 'real-time', 'efficient', 'front-end', 'distributed', 'seamless', 'extensible', 'turn-key', 'world-class', 'open-source', 'cross-platform', 'cross-media', 'synergistic', 'bricks-and-clicks', 'out-of-the-box', 'enterprise', 'integrated', 'impactful', 'wireless', 'transparent', 'next-generation', 'cutting-edge', 'user-centric', 'visionary', 'customized', 'ubiquitous', 'plug-and-play', 'collaborative', 'compelling', 'holistic', 'rich'
+        ),
+        array(
+            'synergies', 'web-readiness', 'paradigms', 'markets', 'partnerships', 'infrastructures', 'platforms', 'initiatives', 'channels', 'eyeballs', 'communities', 'ROI', 'solutions', 'e-tailers', 'e-services', 'action-items', 'portals', 'niches', 'technologies', 'content', 'vortals', 'supply-chains', 'convergence', 'relationships', 'architectures', 'interfaces', 'e-markets', 'e-commerce', 'systems', 'bandwidth', 'infomediaries', 'models', 'mindshare', 'deliverables', 'users', 'schemas', 'networks', 'applications', 'metrics', 'e-business', 'functionalities', 'experiences', 'webservices', 'methodologies'
+        )
+    );
+
+    protected static $companySuffix = array('e Filho', 'e Filha', 'e Filhos', 'e Associados', 'e Flia.', 'SRL', 'SA', 'S. de H.');
+
+    /**
+     * @example 'Robust full-range hub'
+     */
+    public function catchPhrase()
+    {
+        $result = array();
+        foreach (static::$catchPhraseWords as &$word) {
+            $result[] = static::randomElement($word);
+        }
+
+        return join($result, ' ');
+    }
+
+    /**
+     * @example 'integrate extensible convergence'
+     */
+    public function bs()
+    {
+        $result = array();
+        foreach (static::$bsWords as &$word) {
+            $result[] = static::randomElement($word);
+        }
+
+        return join($result, ' ');
+    }
+}

Daži faili netika attēloti, jo izmaiņu fails ir pārāk liels