Repository: Devskiller/jfairy Branch: master Commit: 3123ff418b55 Files: 219 Total size: 807.4 KB Directory structure: gitextract_g7twkl10/ ├── .editorconfig ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.yml │ │ ├── feature_request.yml │ │ └── new_locale.yml │ └── workflows/ │ ├── build.yml │ └── release.yml ├── .gitignore ├── .mvn/ │ └── wrapper/ │ └── maven-wrapper.properties ├── .sdkmanrc ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src/ ├── main/ │ ├── java/ │ │ └── com/ │ │ └── devskiller/ │ │ └── jfairy/ │ │ ├── Bootstrap.java │ │ ├── Fairy.java │ │ ├── FairyFactory.java │ │ ├── FairyFactoryImpl.java │ │ ├── LocaleSpecificProviders.java │ │ ├── LocaleSpecificProvidersFactory.java │ │ ├── UniqueEnforcer.java │ │ ├── UniqueFairy.java │ │ ├── UniqueGenerationException.java │ │ ├── data/ │ │ │ ├── DataMaster.java │ │ │ └── MapBasedDataMaster.java │ │ ├── package-info.java │ │ └── producer/ │ │ ├── BaseProducer.java │ │ ├── DateProducer.java │ │ ├── RandomGenerator.java │ │ ├── TimeProvider.java │ │ ├── VATIdentificationNumberProvider.java │ │ ├── company/ │ │ │ ├── Company.java │ │ │ ├── CompanyFactory.java │ │ │ ├── CompanyFactoryImpl.java │ │ │ ├── CompanyProperties.java │ │ │ ├── CompanyProvider.java │ │ │ ├── DefaultCompanyProvider.java │ │ │ └── locale/ │ │ │ ├── br/ │ │ │ │ └── BrVATIdentificationNumberProvider.java │ │ │ ├── de/ │ │ │ │ └── DeVATIdentificationNumberProvider.java │ │ │ ├── en/ │ │ │ │ └── EnVATIdentificationNumberProvider.java │ │ │ ├── es/ │ │ │ │ └── EsVATIdentificationNumberProvider.java │ │ │ ├── fr/ │ │ │ │ └── FrVATIdentificationNumberProvider.java │ │ │ ├── ka/ │ │ │ │ └── KaVATIdentificationNumberProvider.java │ │ │ ├── pl/ │ │ │ │ └── PlVATIdentificationNumberProvider.java │ │ │ ├── sk/ │ │ │ │ └── SkVATIdentificationNumberProvider.java │ │ │ ├── sv/ │ │ │ │ └── SvVATIdentificationNumberProvider.java │ │ │ ├── tr/ │ │ │ │ └── TrVATIdentificationNumberProvider.java │ │ │ └── zh/ │ │ │ └── ZhVATIdentificationNumberProvider.java │ │ ├── net/ │ │ │ ├── IPNumberProducer.java │ │ │ └── NetworkProducer.java │ │ ├── payment/ │ │ │ ├── CreditCard.java │ │ │ ├── CreditCardProvider.java │ │ │ ├── DefaultIBANProvider.java │ │ │ ├── IBAN.java │ │ │ ├── IBANFactory.java │ │ │ ├── IBANFactoryImpl.java │ │ │ ├── IBANProperties.java │ │ │ └── IBANProvider.java │ │ ├── person/ │ │ │ ├── AbstractAddressProvider.java │ │ │ ├── Address.java │ │ │ ├── AddressProvider.java │ │ │ ├── CompanyEmailProvider.java │ │ │ ├── Country.java │ │ │ ├── DefaultPersonProvider.java │ │ │ ├── EmailProvider.java │ │ │ ├── NationalIdentificationNumber.java │ │ │ ├── NationalIdentificationNumberFactory.java │ │ │ ├── NationalIdentificationNumberProperties.java │ │ │ ├── NationalIdentificationNumberProvider.java │ │ │ ├── NationalIdentityCardNumberProvider.java │ │ │ ├── PassportNumberProvider.java │ │ │ ├── Person.java │ │ │ ├── PersonFactory.java │ │ │ ├── PersonFactoryImpl.java │ │ │ ├── PersonProperties.java │ │ │ ├── PersonProvider.java │ │ │ └── locale/ │ │ │ ├── AbstractAddress.java │ │ │ ├── ContinentalAddress.java │ │ │ ├── NoNationalIdentificationNumberFactory.java │ │ │ ├── br/ │ │ │ │ ├── BrAddress.java │ │ │ │ ├── BrAddressProvider.java │ │ │ │ ├── BrNationalIdentityCardNumberProvider.java │ │ │ │ └── BrPassportNumberProvider.java │ │ │ ├── de/ │ │ │ │ ├── DeAddress.java │ │ │ │ ├── DeAddressProvider.java │ │ │ │ ├── DeNationalIdentityCardNumberProvider.java │ │ │ │ └── DePassportNumberProvider.java │ │ │ ├── en/ │ │ │ │ ├── EnAddress.java │ │ │ │ ├── EnAddressProvider.java │ │ │ │ ├── EnNationalIdentityCardNumberProvider.java │ │ │ │ └── EnPassportNumberProvider.java │ │ │ ├── es/ │ │ │ │ ├── EsAddress.java │ │ │ │ ├── EsAddressProvider.java │ │ │ │ ├── EsNationalIdentityCardNumberProvider.java │ │ │ │ └── EsPassportNumberProvider.java │ │ │ ├── fr/ │ │ │ │ ├── FrAddress.java │ │ │ │ ├── FrAddressProvider.java │ │ │ │ ├── FrNationalIdentityCardNumberProvider.java │ │ │ │ └── FrPassportNumberProvider.java │ │ │ ├── ka/ │ │ │ │ ├── KaAddress.java │ │ │ │ ├── KaAddressProvider.java │ │ │ │ ├── KaNationalIdentityCardNumberProvider.java │ │ │ │ └── KaPassportNumberProvider.java │ │ │ ├── pl/ │ │ │ │ ├── PlAddress.java │ │ │ │ ├── PlAddressProvider.java │ │ │ │ ├── PlNationalIdentificationNumberFactory.java │ │ │ │ ├── PlNationalIdentificationNumberProvider.java │ │ │ │ ├── PlNationalIdentityCardNumberProvider.java │ │ │ │ └── PlPassportNumberProvider.java │ │ │ ├── sk/ │ │ │ │ ├── SkAddress.java │ │ │ │ ├── SkAddressProvider.java │ │ │ │ ├── SkNationalIdentificationNumberFactory.java │ │ │ │ ├── SkNationalIdentificationNumberProvider.java │ │ │ │ ├── SkNationalIdentityCardNumberProvider.java │ │ │ │ └── SkPassportNumberProvider.java │ │ │ ├── sv/ │ │ │ │ ├── SvAddress.java │ │ │ │ ├── SvAddressProvider.java │ │ │ │ ├── SvNationalIdentificationNumberFactory.java │ │ │ │ ├── SvNationalIdentificationNumberProvider.java │ │ │ │ ├── SvNationalIdentityCardNumberProvider.java │ │ │ │ └── SvPassportNumberProvider.java │ │ │ ├── tr/ │ │ │ │ ├── TrAddress.java │ │ │ │ ├── TrAddressProvider.java │ │ │ │ ├── TrNationalIdentityCardNumberProvider.java │ │ │ │ └── TrPassportNumberProvider.java │ │ │ └── zh/ │ │ │ ├── ZhAddress.java │ │ │ ├── ZhAddressProvider.java │ │ │ ├── ZhNationalIdentityCardNumberProvider.java │ │ │ └── ZhPassportNumberProvider.java │ │ ├── text/ │ │ │ ├── TextProducer.java │ │ │ └── TextProducerInternal.java │ │ └── util/ │ │ ├── AlphaNumberSystem.java │ │ ├── LanguageCode.java │ │ ├── StringUtils.java │ │ ├── ValidateUtils.java │ │ ├── ZhFairyUtil.java │ │ └── package-info.java │ └── resources/ │ ├── jfairy.yml │ ├── jfairy_br.yml │ ├── jfairy_de.yml │ ├── jfairy_en.yml │ ├── jfairy_es.yml │ ├── jfairy_fr.yml │ ├── jfairy_it.yml │ ├── jfairy_ka.yml │ ├── jfairy_pl.yml │ ├── jfairy_sk.yml │ ├── jfairy_sv.yml │ ├── jfairy_tr.yml │ └── jfairy_zh.yml └── test/ ├── groovy/ │ ├── com/ │ │ └── devskiller/ │ │ └── jfairy/ │ │ ├── FairyDeSpec.groovy │ │ ├── FairyFrSpec.groovy │ │ ├── FairyKaSpec.groovy │ │ ├── FairyModuleSpec.groovy │ │ ├── FairySpec.groovy │ │ ├── FairyZhSpec.groovy │ │ ├── UniqueEnforcerSpec.groovy │ │ ├── UniqueFairySpec.groovy │ │ ├── data/ │ │ │ └── MapBasedDataMasterSpec.groovy │ │ └── producer/ │ │ ├── BaseProducerSpec.groovy │ │ ├── CompanySpec.groovy │ │ ├── DateProducerSpec.groovy │ │ ├── TextSpec.groovy │ │ ├── company/ │ │ │ └── locale/ │ │ │ ├── CompanyProviderSpec.groovy │ │ │ ├── br/ │ │ │ │ └── BrVATIdentificationNumberProviderSpec.groovy │ │ │ ├── de/ │ │ │ │ └── DeVATIdentificationNumberProviderSpec.groovy │ │ │ ├── en/ │ │ │ │ └── EnVATIdentificationNumberProviderSpec.groovy │ │ │ ├── es/ │ │ │ │ └── EsVATIdentificationNumberProviderSpec.groovy │ │ │ ├── ka/ │ │ │ │ └── KaVATIdentificationNumberProviderSpec.groovy │ │ │ ├── pl/ │ │ │ │ └── PlVATIdentificationNumberProviderSpec.groovy │ │ │ ├── se/ │ │ │ │ └── SvVATIdentificationNumberProviderSpec.groovy │ │ │ ├── sk/ │ │ │ │ └── SkVATIdentificationNumberProviderSpec.groovy │ │ │ └── tr/ │ │ │ └── TrVATIdentificationNumberProviderSpec.groovy │ │ ├── net/ │ │ │ └── NetworkSpec.groovy │ │ ├── payment/ │ │ │ ├── CreditCardProviderSpec.groovy │ │ │ └── IBANSpec.groovy │ │ ├── person/ │ │ │ ├── CompanyEmailProviderSpec.groovy │ │ │ ├── EmailProviderSpec.groovy │ │ │ ├── PersonSpec.groovy │ │ │ └── locale/ │ │ │ ├── br/ │ │ │ │ ├── BrAddressSpec.groovy │ │ │ │ └── BrNationalIdentityCardNumberProviderSpec.groovy │ │ │ ├── de/ │ │ │ │ ├── DeAddressSpec.groovy │ │ │ │ ├── DeNationalIdentityCardNumberProviderSpec.groovy │ │ │ │ └── DePassportNumberProviderSpec.groovy │ │ │ ├── en/ │ │ │ │ ├── EnAddressSpec.groovy │ │ │ │ ├── EnNationalIdentityCardNumberProviderSpec.groovy │ │ │ │ └── EnPassportNumberProviderSpec.groovy │ │ │ ├── es/ │ │ │ │ ├── EsAddressSpec.groovy │ │ │ │ ├── EsNationalIdentityCardNumberProviderSpec.groovy │ │ │ │ └── EsPassportNumberProviderSpec.groovy │ │ │ ├── ka/ │ │ │ │ ├── KaAddressSpec.groovy │ │ │ │ ├── KaNationalIdentityCardNumberProviderSpec.groovy │ │ │ │ └── KaPassportNumberProviderSpec.groovy │ │ │ ├── pl/ │ │ │ │ ├── PlAddressSpec.groovy │ │ │ │ ├── PlNationalIdentificationNumberSpec.groovy │ │ │ │ ├── PlNationalIdentityCardNumberProviderSpec.groovy │ │ │ │ ├── PlPassportNumberProviderSpec.groovy │ │ │ │ └── PlPersonSpec.groovy │ │ │ ├── sk/ │ │ │ │ ├── SkAddressSpec.groovy │ │ │ │ └── SkPersonSpec.groovy │ │ │ ├── sv/ │ │ │ │ ├── SvAddressSpec.groovy │ │ │ │ ├── SvNationalIdentificationNumberProviderSpec.groovy │ │ │ │ ├── SvNationalIdentityCardNumberProviderSpec.groovy │ │ │ │ ├── SvPassportNumberProviderSpec.groovy │ │ │ │ └── SvPersonSpec.groovy │ │ │ └── tr/ │ │ │ ├── TrAddressSpec.groovy │ │ │ └── TrNationalIdentityCardNumberProviderSpec.groovy │ │ └── util/ │ │ └── AlphaNumberSystemSpec.groovy │ └── snippets/ │ ├── Foo.groovy │ ├── SampleSnippet.groovy │ └── TextSnippet.groovy ├── java/ │ └── com/ │ └── devskiller/ │ └── jfairy/ │ └── producer/ │ ├── RandomGeneratorTest.java │ └── util/ │ ├── AlphaNumberSystemTest.java │ ├── StringUtilsTest.java │ └── ValidateUtilsTest.java └── resources/ ├── simplelogger.properties └── team/ └── checkstyle-rules.xml ================================================ FILE CONTENTS ================================================ ================================================ FILE: .editorconfig ================================================ # EditorConfig — https://editorconfig.org root = true # ── Defaults for all files ──────────────────────────────────────────────────── [*] indent_style = tab indent_size = 4 end_of_line = lf charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true # ── Markdown ────────────────────────────────────────────────────────────────── # Trailing spaces are significant in Markdown (line break); keep them. [*.md] trim_trailing_whitespace = false max_line_length = off # ── Shell scripts ───────────────────────────────────────────────────────────── [*.sh] indent_size = 2 ================================================ FILE: .github/ISSUE_TEMPLATE/bug_report.yml ================================================ name: Bug Report description: Report a bug in jFairy labels: ["bug"] body: - type: input id: version attributes: label: jFairy version placeholder: "0.8.0" validations: required: true - type: input id: java-version attributes: label: Java version placeholder: "17" validations: required: true - type: textarea id: description attributes: label: Description description: What happened and what did you expect? validations: required: true - type: textarea id: reproduction attributes: label: How to reproduce description: Minimal code to reproduce the issue render: java ================================================ FILE: .github/ISSUE_TEMPLATE/feature_request.yml ================================================ name: Feature Request description: Suggest a new feature or improvement labels: ["enhancement"] body: - type: textarea id: description attributes: label: Description description: What would you like to see added or changed? validations: required: true - type: textarea id: use-case attributes: label: Use case description: Why do you need this? What problem does it solve? ================================================ FILE: .github/ISSUE_TEMPLATE/new_locale.yml ================================================ name: New Locale description: Request or offer support for a new language/country labels: ["locale"] body: - type: input id: locale attributes: label: Language / Country placeholder: "e.g. Turkish (TR)" validations: required: true - type: checkboxes id: willing attributes: label: Contribution options: - label: I'm willing to submit a PR for this locale ================================================ FILE: .github/workflows/build.yml ================================================ name: Build on: push: branches: [ master ] pull_request: branches: [ master ] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Set up JDK 17 uses: actions/setup-java@v4 with: java-version: '17' distribution: 'temurin' cache: maven - name: Build and test run: ./mvnw package ================================================ FILE: .github/workflows/release.yml ================================================ name: Release on: push: tags: - 'v*' jobs: release: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Set up JDK 17 uses: actions/setup-java@v4 with: java-version: '17' distribution: 'temurin' cache: 'maven' server-id: central server-username: MAVEN_USERNAME server-password: MAVEN_PASSWORD gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }} gpg-passphrase: GPG_PASSPHRASE - name: Extract version from tag id: get_version run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT - name: Build and deploy to Maven Central run: | mvn -B clean deploy -P release \ -Drevision=${{ steps.get_version.outputs.VERSION }} \ -DskipTests env: MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }} MAVEN_PASSWORD: ${{ secrets.OSSRH_TOKEN }} GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} - name: Create GitHub Release uses: softprops/action-gh-release@v1 with: generate_release_notes: true files: | **/target/*.jar !**/target/*-sources.jar !**/target/*-javadoc.jar ================================================ FILE: .gitignore ================================================ ### Maven ### target/ ### IntelliJ ### *.iml *.ipr *.iws .idea/ out/ ### Eclipse ### /.classpath /.project /.settings /bin/ ### Other ### .flattened-pom.xml ================================================ FILE: .mvn/wrapper/maven-wrapper.properties ================================================ wrapperVersion=3.3.4 distributionType=only-script distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.14/apache-maven-3.9.14-bin.zip ================================================ FILE: .sdkmanrc ================================================ # Enable auto-env through sdkman auto-answer # sdkman_auto_env=true java=17.0.18-tem ================================================ FILE: CODE_OF_CONDUCT.md ================================================ # Contributor Covenant Code of Conduct ## Our Pledge We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, caste, color, religion, or sexual identity and orientation. We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community. ## Our Standards Examples of behavior that contributes to a positive environment for our community include: * Demonstrating empathy and kindness toward other people * Being respectful of differing opinions, viewpoints, and experiences * Giving and gracefully accepting constructive feedback * Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience * Focusing on what is best not just for us as individuals, but for the overall community Examples of unacceptable behavior include: * The use of sexualized language or imagery, and sexual attention or advances of any kind * Trolling, insulting or derogatory comments, and personal or political attacks * Public or private harassment * Publishing others' private information, such as a physical or email address, without their explicit permission * Other conduct which could reasonably be considered inappropriate in a professional setting ## Enforcement Responsibilities Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful. Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate. ## Scope This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. ## Enforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at https://github.com/SkillPanel/jfairy/issues. All complaints will be reviewed and investigated promptly and fairly. All community leaders are obligated to respect the privacy and security of the reporter of any incident. ## Enforcement Guidelines Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct: ### 1. Correction **Community Impact**: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community. **Consequence**: A private, written warning from community leaders, providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested. ### 2. Warning **Community Impact**: A violation through a single incident or series of actions. **Consequence**: A warning with consequences for continued behavior. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban. ### 3. Temporary Ban **Community Impact**: A serious violation of community standards, including sustained inappropriate behavior. **Consequence**: A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban. ### 4. Permanent Ban **Community Impact**: Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals. **Consequence**: A permanent ban from any sort of public interaction within the community. ## Attribution This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.1, available at [https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. Community Impact Guidelines were inspired by [Mozilla's code of conduct enforcement ladder][Mozilla CoC]. For answers to common questions about this code of conduct, see the FAQ at [https://www.contributor-covenant.org/faq][FAQ]. Translations are available at [https://www.contributor-covenant.org/translations][translations]. [homepage]: https://www.contributor-covenant.org [v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html [Mozilla CoC]: https://github.com/mozilla/diversity [FAQ]: https://www.contributor-covenant.org/faq [translations]: https://www.contributor-covenant.org/translations ================================================ FILE: CONTRIBUTING.md ================================================ # Contributing to jFairy We welcome contributions! Here's how to get started. ## Getting Started 1. Fork the repository 2. Clone your fork: `git clone https://github.com/YOUR_USERNAME/jfairy.git` 3. Create a branch: `git checkout -b feat/your-feature` 4. Make your changes 5. Run tests: `./mvnw test` 6. Push and open a Pull Request ## Requirements - Java 17+ - Maven 4 (included via `./mvnw` wrapper) ## Adding a New Locale 1. Create `src/main/resources/jfairy_XX.yml` with names, cities, streets, etc. 2. Add provider classes in `src/main/java/.../producer/person/locale/xx/` - `XxAddress` + `XxAddressProvider` - `XxNationalIdentityCardNumberProvider` - `XxPassportNumberProvider` 3. Add VAT provider in `src/main/java/.../producer/company/locale/xx/` 4. Add `XX` to `LanguageCode` enum and `Country` enum 5. Wire in `LocaleSpecificProvidersFactory` (add case + factory method) 6. Add tests See existing locales (e.g., `br`, `sk`) for reference. ## Guidelines - Follow existing code style - Write tests for new functionality - Use `baseProducer` for random values (not `Math.random()` or `RandomStringUtils`) to keep seed determinism - Keep commits focused — one logical change per commit - Use [Conventional Commits](https://www.conventionalcommits.org/) format ## Running Tests ```bash ./mvnw test ``` ================================================ FILE: LICENSE ================================================ Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: You must give any other recipients of the Work or Derivative Works a copy of this License; and You must cause any modified files to carry prominent notices stating that You changed the files; and You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ================================================ FILE: README.md ================================================ # jFairy by Devskiller [](https://github.com/SkillPanel/jfairy/actions/workflows/build.yml) [](https://central.sonatype.com/artifact/com.devskiller/jfairy) [](https://javadoc.io/doc/com.devskiller/jfairy) Java fake data generator. According to Wikipedia: > Fairyland, in folklore, is the fabulous land or abode of fairies or fays. ## Installation Add the following dependency to your `pom.xml`: ```xml com.devskiller jfairy 0.8.2 ``` ## Usage ### Creating simple objects ```java Fairy fairy = Fairy.create(); Person person = fairy.person(); System.out.println(person.getFirstName()); // Chloe System.out.println(person.getLastName()); // Barker System.out.println(person.getEmail()); // barker@yahoo.com System.out.println(person.getTelephoneNumber()); // 690-950-802 System.out.println(person.getJobTitle()); // Software Developer Person adultMale = fairy.person(PersonProperties.male(), PersonProperties.minAge(21)); System.out.println(adultMale.isMale()); // true System.out.println(adultMale.getDateOfBirth()); // at least 21 years earlier ``` ### Creating related objects ```java Fairy fairy = Fairy.create(); Company company = fairy.company(); System.out.println(company.getName()); // Robuten Associates System.out.println(company.getUrl()); // http://www.robuteniaassociates.com Person salesman = fairy.person(PersonProperties.withCompany(company)); System.out.println(salesman.getFullName()); // Juan Camacho System.out.println(salesman.getCompanyEmail()); // juan.camacho@robuteniaassociates.com ``` ## Supported locales | Locale | Language tag | |:---------------------|:------------:| | English (default) | `en` | | Polish | `pl` | | German | `de` | | French | `fr` | | Spanish | `es` | | Swedish | `sv` | | Chinese | `zh` | | Georgian | `ka` | | Italian | `it` | | Brazilian Portuguese | `br` | | Slovak | `sk` | | Turkish | `tr` | ```java Fairy enFairy = Fairy.create(); // Locale.ENGLISH is default Fairy plFairy = Fairy.create(Locale.forLanguageTag("pl")); // Polish version Fairy brFairy = Fairy.create(Locale.forLanguageTag("br")); // Brazilian version ``` ## Unique values ```java UniqueFairy unique = fairy.unique(); Person p1 = unique.person(); // unique by email Person p2 = unique.person(); // different email than p1 Company c = unique.company(); // unique by name ``` For custom uniqueness keys: ```java UniqueEnforcer unique = UniqueEnforcer.of(fairy::person, Person::getFullName); Person p = unique.next(); ``` ## Thread safety `Fairy` objects are not designed for concurrent use by multiple threads. It is recommended to create a separate `Fairy` instance for each thread. While some methods might appear safe, the underlying `Random` implementation can lead to contention and poor performance. Creating dedicated instances ensures both thread safety and optimal execution speed. ## JUnit 5 Extension If you use JUnit 5, check out [jfairy-junit-extension](https://github.com/SkillPanel/jfairy-junit-extension) — an extension that allows injecting jFairy-generated objects directly into test method parameters. ## Building This project uses Maven and can be built using the provided wrapper: ```bash ./mvnw ``` ================================================ FILE: mvnw ================================================ #!/bin/sh # ---------------------------------------------------------------------------- # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. # ---------------------------------------------------------------------------- # ---------------------------------------------------------------------------- # Apache Maven Wrapper startup batch script, version 3.3.4 # # Optional ENV vars # ----------------- # JAVA_HOME - location of a JDK home dir, required when download maven via java source # MVNW_REPOURL - repo url base for downloading maven distribution # MVNW_USERNAME/MVNW_PASSWORD - user and password for downloading maven # MVNW_VERBOSE - true: enable verbose log; debug: trace the mvnw script; others: silence the output # ---------------------------------------------------------------------------- set -euf [ "${MVNW_VERBOSE-}" != debug ] || set -x # OS specific support. native_path() { printf %s\\n "$1"; } case "$(uname)" in CYGWIN* | MINGW*) [ -z "${JAVA_HOME-}" ] || JAVA_HOME="$(cygpath --unix "$JAVA_HOME")" native_path() { cygpath --path --windows "$1"; } ;; esac # set JAVACMD and JAVACCMD set_java_home() { # For Cygwin and MinGW, ensure paths are in Unix format before anything is touched if [ -n "${JAVA_HOME-}" ]; then if [ -x "$JAVA_HOME/jre/sh/java" ]; then # IBM's JDK on AIX uses strange locations for the executables JAVACMD="$JAVA_HOME/jre/sh/java" JAVACCMD="$JAVA_HOME/jre/sh/javac" else JAVACMD="$JAVA_HOME/bin/java" JAVACCMD="$JAVA_HOME/bin/javac" if [ ! -x "$JAVACMD" ] || [ ! -x "$JAVACCMD" ]; then echo "The JAVA_HOME environment variable is not defined correctly, so mvnw cannot run." >&2 echo "JAVA_HOME is set to \"$JAVA_HOME\", but \"\$JAVA_HOME/bin/java\" or \"\$JAVA_HOME/bin/javac\" does not exist." >&2 return 1 fi fi else JAVACMD="$( 'set' +e 'unset' -f command 2>/dev/null 'command' -v java )" || : JAVACCMD="$( 'set' +e 'unset' -f command 2>/dev/null 'command' -v javac )" || : if [ ! -x "${JAVACMD-}" ] || [ ! -x "${JAVACCMD-}" ]; then echo "The java/javac command does not exist in PATH nor is JAVA_HOME set, so mvnw cannot run." >&2 return 1 fi fi } # hash string like Java String::hashCode hash_string() { str="${1:-}" h=0 while [ -n "$str" ]; do char="${str%"${str#?}"}" h=$(((h * 31 + $(LC_CTYPE=C printf %d "'$char")) % 4294967296)) str="${str#?}" done printf %x\\n $h } verbose() { :; } [ "${MVNW_VERBOSE-}" != true ] || verbose() { printf %s\\n "${1-}"; } die() { printf %s\\n "$1" >&2 exit 1 } trim() { # MWRAPPER-139: # Trims trailing and leading whitespace, carriage returns, tabs, and linefeeds. # Needed for removing poorly interpreted newline sequences when running in more # exotic environments such as mingw bash on Windows. printf "%s" "${1}" | tr -d '[:space:]' } scriptDir="$(dirname "$0")" scriptName="$(basename "$0")" # parse distributionUrl and optional distributionSha256Sum, requires .mvn/wrapper/maven-wrapper.properties while IFS="=" read -r key value; do case "${key-}" in distributionUrl) distributionUrl=$(trim "${value-}") ;; distributionSha256Sum) distributionSha256Sum=$(trim "${value-}") ;; esac done <"$scriptDir/.mvn/wrapper/maven-wrapper.properties" [ -n "${distributionUrl-}" ] || die "cannot read distributionUrl property in $scriptDir/.mvn/wrapper/maven-wrapper.properties" case "${distributionUrl##*/}" in maven-mvnd-*bin.*) MVN_CMD=mvnd.sh _MVNW_REPO_PATTERN=/maven/mvnd/ case "${PROCESSOR_ARCHITECTURE-}${PROCESSOR_ARCHITEW6432-}:$(uname -a)" in *AMD64:CYGWIN* | *AMD64:MINGW*) distributionPlatform=windows-amd64 ;; :Darwin*x86_64) distributionPlatform=darwin-amd64 ;; :Darwin*arm64) distributionPlatform=darwin-aarch64 ;; :Linux*x86_64*) distributionPlatform=linux-amd64 ;; *) echo "Cannot detect native platform for mvnd on $(uname)-$(uname -m), use pure java version" >&2 distributionPlatform=linux-amd64 ;; esac distributionUrl="${distributionUrl%-bin.*}-$distributionPlatform.zip" ;; maven-mvnd-*) MVN_CMD=mvnd.sh _MVNW_REPO_PATTERN=/maven/mvnd/ ;; *) MVN_CMD="mvn${scriptName#mvnw}" _MVNW_REPO_PATTERN=/org/apache/maven/ ;; esac # apply MVNW_REPOURL and calculate MAVEN_HOME # maven home pattern: ~/.m2/wrapper/dists/{apache-maven-,maven-mvnd--}/ [ -z "${MVNW_REPOURL-}" ] || distributionUrl="$MVNW_REPOURL$_MVNW_REPO_PATTERN${distributionUrl#*"$_MVNW_REPO_PATTERN"}" distributionUrlName="${distributionUrl##*/}" distributionUrlNameMain="${distributionUrlName%.*}" distributionUrlNameMain="${distributionUrlNameMain%-bin}" MAVEN_USER_HOME="${MAVEN_USER_HOME:-${HOME}/.m2}" MAVEN_HOME="${MAVEN_USER_HOME}/wrapper/dists/${distributionUrlNameMain-}/$(hash_string "$distributionUrl")" exec_maven() { unset MVNW_VERBOSE MVNW_USERNAME MVNW_PASSWORD MVNW_REPOURL || : exec "$MAVEN_HOME/bin/$MVN_CMD" "$@" || die "cannot exec $MAVEN_HOME/bin/$MVN_CMD" } if [ -d "$MAVEN_HOME" ]; then verbose "found existing MAVEN_HOME at $MAVEN_HOME" exec_maven "$@" fi case "${distributionUrl-}" in *?-bin.zip | *?maven-mvnd-?*-?*.zip) ;; *) die "distributionUrl is not valid, must match *-bin.zip or maven-mvnd-*.zip, but found '${distributionUrl-}'" ;; esac # prepare tmp dir if TMP_DOWNLOAD_DIR="$(mktemp -d)" && [ -d "$TMP_DOWNLOAD_DIR" ]; then clean() { rm -rf -- "$TMP_DOWNLOAD_DIR"; } trap clean HUP INT TERM EXIT else die "cannot create temp dir" fi mkdir -p -- "${MAVEN_HOME%/*}" # Download and Install Apache Maven verbose "Couldn't find MAVEN_HOME, downloading and installing it ..." verbose "Downloading from: $distributionUrl" verbose "Downloading to: $TMP_DOWNLOAD_DIR/$distributionUrlName" # select .zip or .tar.gz if ! command -v unzip >/dev/null; then distributionUrl="${distributionUrl%.zip}.tar.gz" distributionUrlName="${distributionUrl##*/}" fi # verbose opt __MVNW_QUIET_WGET=--quiet __MVNW_QUIET_CURL=--silent __MVNW_QUIET_UNZIP=-q __MVNW_QUIET_TAR='' [ "${MVNW_VERBOSE-}" != true ] || __MVNW_QUIET_WGET='' __MVNW_QUIET_CURL='' __MVNW_QUIET_UNZIP='' __MVNW_QUIET_TAR=v # normalize http auth case "${MVNW_PASSWORD:+has-password}" in '') MVNW_USERNAME='' MVNW_PASSWORD='' ;; has-password) [ -n "${MVNW_USERNAME-}" ] || MVNW_USERNAME='' MVNW_PASSWORD='' ;; esac if [ -z "${MVNW_USERNAME-}" ] && command -v wget >/dev/null; then verbose "Found wget ... using wget" wget ${__MVNW_QUIET_WGET:+"$__MVNW_QUIET_WGET"} "$distributionUrl" -O "$TMP_DOWNLOAD_DIR/$distributionUrlName" || die "wget: Failed to fetch $distributionUrl" elif [ -z "${MVNW_USERNAME-}" ] && command -v curl >/dev/null; then verbose "Found curl ... using curl" curl ${__MVNW_QUIET_CURL:+"$__MVNW_QUIET_CURL"} -f -L -o "$TMP_DOWNLOAD_DIR/$distributionUrlName" "$distributionUrl" || die "curl: Failed to fetch $distributionUrl" elif set_java_home; then verbose "Falling back to use Java to download" javaSource="$TMP_DOWNLOAD_DIR/Downloader.java" targetZip="$TMP_DOWNLOAD_DIR/$distributionUrlName" cat >"$javaSource" <<-END public class Downloader extends java.net.Authenticator { protected java.net.PasswordAuthentication getPasswordAuthentication() { return new java.net.PasswordAuthentication( System.getenv( "MVNW_USERNAME" ), System.getenv( "MVNW_PASSWORD" ).toCharArray() ); } public static void main( String[] args ) throws Exception { setDefault( new Downloader() ); java.nio.file.Files.copy( java.net.URI.create( args[0] ).toURL().openStream(), java.nio.file.Paths.get( args[1] ).toAbsolutePath().normalize() ); } } END # For Cygwin/MinGW, switch paths to Windows format before running javac and java verbose " - Compiling Downloader.java ..." "$(native_path "$JAVACCMD")" "$(native_path "$javaSource")" || die "Failed to compile Downloader.java" verbose " - Running Downloader.java ..." "$(native_path "$JAVACMD")" -cp "$(native_path "$TMP_DOWNLOAD_DIR")" Downloader "$distributionUrl" "$(native_path "$targetZip")" fi # If specified, validate the SHA-256 sum of the Maven distribution zip file if [ -n "${distributionSha256Sum-}" ]; then distributionSha256Result=false if [ "$MVN_CMD" = mvnd.sh ]; then echo "Checksum validation is not supported for maven-mvnd." >&2 echo "Please disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." >&2 exit 1 elif command -v sha256sum >/dev/null; then if echo "$distributionSha256Sum $TMP_DOWNLOAD_DIR/$distributionUrlName" | sha256sum -c - >/dev/null 2>&1; then distributionSha256Result=true fi elif command -v shasum >/dev/null; then if echo "$distributionSha256Sum $TMP_DOWNLOAD_DIR/$distributionUrlName" | shasum -a 256 -c >/dev/null 2>&1; then distributionSha256Result=true fi else echo "Checksum validation was requested but neither 'sha256sum' or 'shasum' are available." >&2 echo "Please install either command, or disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." >&2 exit 1 fi if [ $distributionSha256Result = false ]; then echo "Error: Failed to validate Maven distribution SHA-256, your Maven distribution might be compromised." >&2 echo "If you updated your Maven version, you need to update the specified distributionSha256Sum property." >&2 exit 1 fi fi # unzip and move if command -v unzip >/dev/null; then unzip ${__MVNW_QUIET_UNZIP:+"$__MVNW_QUIET_UNZIP"} "$TMP_DOWNLOAD_DIR/$distributionUrlName" -d "$TMP_DOWNLOAD_DIR" || die "failed to unzip" else tar xzf${__MVNW_QUIET_TAR:+"$__MVNW_QUIET_TAR"} "$TMP_DOWNLOAD_DIR/$distributionUrlName" -C "$TMP_DOWNLOAD_DIR" || die "failed to untar" fi # Find the actual extracted directory name (handles snapshots where filename != directory name) actualDistributionDir="" # First try the expected directory name (for regular distributions) if [ -d "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain" ]; then if [ -f "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain/bin/$MVN_CMD" ]; then actualDistributionDir="$distributionUrlNameMain" fi fi # If not found, search for any directory with the Maven executable (for snapshots) if [ -z "$actualDistributionDir" ]; then # enable globbing to iterate over items set +f for dir in "$TMP_DOWNLOAD_DIR"/*; do if [ -d "$dir" ]; then if [ -f "$dir/bin/$MVN_CMD" ]; then actualDistributionDir="$(basename "$dir")" break fi fi done set -f fi if [ -z "$actualDistributionDir" ]; then verbose "Contents of $TMP_DOWNLOAD_DIR:" verbose "$(ls -la "$TMP_DOWNLOAD_DIR")" die "Could not find Maven distribution directory in extracted archive" fi verbose "Found extracted Maven distribution directory: $actualDistributionDir" printf %s\\n "$distributionUrl" >"$TMP_DOWNLOAD_DIR/$actualDistributionDir/mvnw.url" mv -- "$TMP_DOWNLOAD_DIR/$actualDistributionDir" "$MAVEN_HOME" || [ -d "$MAVEN_HOME" ] || die "fail to move MAVEN_HOME" clean || : exec_maven "$@" ================================================ FILE: mvnw.cmd ================================================ <# : batch portion @REM ---------------------------------------------------------------------------- @REM Licensed to the Apache Software Foundation (ASF) under one @REM or more contributor license agreements. See the NOTICE file @REM distributed with this work for additional information @REM regarding copyright ownership. The ASF licenses this file @REM to you under the Apache License, Version 2.0 (the @REM "License"); you may not use this file except in compliance @REM with the License. You may obtain a copy of the License at @REM @REM http://www.apache.org/licenses/LICENSE-2.0 @REM @REM Unless required by applicable law or agreed to in writing, @REM software distributed under the License is distributed on an @REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY @REM KIND, either express or implied. See the License for the @REM specific language governing permissions and limitations @REM under the License. @REM ---------------------------------------------------------------------------- @REM ---------------------------------------------------------------------------- @REM Apache Maven Wrapper startup batch script, version 3.3.4 @REM @REM Optional ENV vars @REM MVNW_REPOURL - repo url base for downloading maven distribution @REM MVNW_USERNAME/MVNW_PASSWORD - user and password for downloading maven @REM MVNW_VERBOSE - true: enable verbose log; others: silence the output @REM ---------------------------------------------------------------------------- @IF "%__MVNW_ARG0_NAME__%"=="" (SET __MVNW_ARG0_NAME__=%~nx0) @SET __MVNW_CMD__= @SET __MVNW_ERROR__= @SET __MVNW_PSMODULEP_SAVE=%PSModulePath% @SET PSModulePath= @FOR /F "usebackq tokens=1* delims==" %%A IN (`powershell -noprofile "& {$scriptDir='%~dp0'; $script='%__MVNW_ARG0_NAME__%'; icm -ScriptBlock ([Scriptblock]::Create((Get-Content -Raw '%~f0'))) -NoNewScope}"`) DO @( IF "%%A"=="MVN_CMD" (set __MVNW_CMD__=%%B) ELSE IF "%%B"=="" (echo %%A) ELSE (echo %%A=%%B) ) @SET PSModulePath=%__MVNW_PSMODULEP_SAVE% @SET __MVNW_PSMODULEP_SAVE= @SET __MVNW_ARG0_NAME__= @SET MVNW_USERNAME= @SET MVNW_PASSWORD= @IF NOT "%__MVNW_CMD__%"=="" ("%__MVNW_CMD__%" %*) @echo Cannot start maven from wrapper >&2 && exit /b 1 @GOTO :EOF : end batch / begin powershell #> $ErrorActionPreference = "Stop" if ($env:MVNW_VERBOSE -eq "true") { $VerbosePreference = "Continue" } # calculate distributionUrl, requires .mvn/wrapper/maven-wrapper.properties $distributionUrl = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionUrl if (!$distributionUrl) { Write-Error "cannot read distributionUrl property in $scriptDir/.mvn/wrapper/maven-wrapper.properties" } switch -wildcard -casesensitive ( $($distributionUrl -replace '^.*/','') ) { "maven-mvnd-*" { $USE_MVND = $true $distributionUrl = $distributionUrl -replace '-bin\.[^.]*$',"-windows-amd64.zip" $MVN_CMD = "mvnd.cmd" break } default { $USE_MVND = $false $MVN_CMD = $script -replace '^mvnw','mvn' break } } # apply MVNW_REPOURL and calculate MAVEN_HOME # maven home pattern: ~/.m2/wrapper/dists/{apache-maven-,maven-mvnd--}/ if ($env:MVNW_REPOURL) { $MVNW_REPO_PATTERN = if ($USE_MVND -eq $False) { "/org/apache/maven/" } else { "/maven/mvnd/" } $distributionUrl = "$env:MVNW_REPOURL$MVNW_REPO_PATTERN$($distributionUrl -replace "^.*$MVNW_REPO_PATTERN",'')" } $distributionUrlName = $distributionUrl -replace '^.*/','' $distributionUrlNameMain = $distributionUrlName -replace '\.[^.]*$','' -replace '-bin$','' $MAVEN_M2_PATH = "$HOME/.m2" if ($env:MAVEN_USER_HOME) { $MAVEN_M2_PATH = "$env:MAVEN_USER_HOME" } if (-not (Test-Path -Path $MAVEN_M2_PATH)) { New-Item -Path $MAVEN_M2_PATH -ItemType Directory | Out-Null } $MAVEN_WRAPPER_DISTS = $null if ((Get-Item $MAVEN_M2_PATH).Target[0] -eq $null) { $MAVEN_WRAPPER_DISTS = "$MAVEN_M2_PATH/wrapper/dists" } else { $MAVEN_WRAPPER_DISTS = (Get-Item $MAVEN_M2_PATH).Target[0] + "/wrapper/dists" } $MAVEN_HOME_PARENT = "$MAVEN_WRAPPER_DISTS/$distributionUrlNameMain" $MAVEN_HOME_NAME = ([System.Security.Cryptography.SHA256]::Create().ComputeHash([byte[]][char[]]$distributionUrl) | ForEach-Object {$_.ToString("x2")}) -join '' $MAVEN_HOME = "$MAVEN_HOME_PARENT/$MAVEN_HOME_NAME" if (Test-Path -Path "$MAVEN_HOME" -PathType Container) { Write-Verbose "found existing MAVEN_HOME at $MAVEN_HOME" Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD" exit $? } if (! $distributionUrlNameMain -or ($distributionUrlName -eq $distributionUrlNameMain)) { Write-Error "distributionUrl is not valid, must end with *-bin.zip, but found $distributionUrl" } # prepare tmp dir $TMP_DOWNLOAD_DIR_HOLDER = New-TemporaryFile $TMP_DOWNLOAD_DIR = New-Item -Itemtype Directory -Path "$TMP_DOWNLOAD_DIR_HOLDER.dir" $TMP_DOWNLOAD_DIR_HOLDER.Delete() | Out-Null trap { if ($TMP_DOWNLOAD_DIR.Exists) { try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null } catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" } } } New-Item -Itemtype Directory -Path "$MAVEN_HOME_PARENT" -Force | Out-Null # Download and Install Apache Maven Write-Verbose "Couldn't find MAVEN_HOME, downloading and installing it ..." Write-Verbose "Downloading from: $distributionUrl" Write-Verbose "Downloading to: $TMP_DOWNLOAD_DIR/$distributionUrlName" $webclient = New-Object System.Net.WebClient if ($env:MVNW_USERNAME -and $env:MVNW_PASSWORD) { $webclient.Credentials = New-Object System.Net.NetworkCredential($env:MVNW_USERNAME, $env:MVNW_PASSWORD) } [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 $webclient.DownloadFile($distributionUrl, "$TMP_DOWNLOAD_DIR/$distributionUrlName") | Out-Null # If specified, validate the SHA-256 sum of the Maven distribution zip file $distributionSha256Sum = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionSha256Sum if ($distributionSha256Sum) { if ($USE_MVND) { Write-Error "Checksum validation is not supported for maven-mvnd. `nPlease disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." } Import-Module $PSHOME\Modules\Microsoft.PowerShell.Utility -Function Get-FileHash if ((Get-FileHash "$TMP_DOWNLOAD_DIR/$distributionUrlName" -Algorithm SHA256).Hash.ToLower() -ne $distributionSha256Sum) { Write-Error "Error: Failed to validate Maven distribution SHA-256, your Maven distribution might be compromised. If you updated your Maven version, you need to update the specified distributionSha256Sum property." } } # unzip and move Expand-Archive "$TMP_DOWNLOAD_DIR/$distributionUrlName" -DestinationPath "$TMP_DOWNLOAD_DIR" | Out-Null # Find the actual extracted directory name (handles snapshots where filename != directory name) $actualDistributionDir = "" # First try the expected directory name (for regular distributions) $expectedPath = Join-Path "$TMP_DOWNLOAD_DIR" "$distributionUrlNameMain" $expectedMvnPath = Join-Path "$expectedPath" "bin/$MVN_CMD" if ((Test-Path -Path $expectedPath -PathType Container) -and (Test-Path -Path $expectedMvnPath -PathType Leaf)) { $actualDistributionDir = $distributionUrlNameMain } # If not found, search for any directory with the Maven executable (for snapshots) if (!$actualDistributionDir) { Get-ChildItem -Path "$TMP_DOWNLOAD_DIR" -Directory | ForEach-Object { $testPath = Join-Path $_.FullName "bin/$MVN_CMD" if (Test-Path -Path $testPath -PathType Leaf) { $actualDistributionDir = $_.Name } } } if (!$actualDistributionDir) { Write-Error "Could not find Maven distribution directory in extracted archive" } Write-Verbose "Found extracted Maven distribution directory: $actualDistributionDir" Rename-Item -Path "$TMP_DOWNLOAD_DIR/$actualDistributionDir" -NewName $MAVEN_HOME_NAME | Out-Null try { Move-Item -Path "$TMP_DOWNLOAD_DIR/$MAVEN_HOME_NAME" -Destination $MAVEN_HOME_PARENT | Out-Null } catch { if (! (Test-Path -Path "$MAVEN_HOME" -PathType Container)) { Write-Error "fail to move MAVEN_HOME" } } finally { try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null } catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" } } Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD" ================================================ FILE: pom.xml ================================================ 4.0.0 com.devskiller jfairy ${revision} jFairy Java fake data generator https://github.com/Devskiller/jfairy 2013 Apache 2 https://www.apache.org/licenses/LICENSE-2.0.txt repo A business-friendly OSS license jkubrynski Jakub Kubrynski mariuszs Mariusz Smykuła szpak Marcin Zajączkowski olga.maciaszek Olga Maciaszek-Sharma kdebski85 Krzysztof Dębski spannm Markus Spann scm:git:https://github.com/Devskiller/jfairy scm:git:git@github.com:Devskiller/jfairy https://github.com/Devskiller/jfairy HEAD GitHub Issues https://github.com/Devskiller/jfairy/issues GitHub Actions https://github.com/SkillPanel/jfairy/actions central Central Repository https://central.sonatype.com/api/v1/publisher central Central Repository Snapshots https://central.sonatype.com/api/v1/publisher 0.8.3-SNAPSHOT 17 UTF-8 UTF-8 yyyy-MM-dd HH:mm:ss z 3.0.1 1.0.0 2.0.17 1.8.4 1.10.1 2.4-groovy-4.0 4.0.31 1.18.8 3.5 5.14.3 3.6.1 0.10.0 3.6.0 3.15.0 4.3.0 3.1.4 3.6.2 2.42.0 1.7.3 4.3.1 3.2.8 0.8.14 3.12.0 3.5.0 3.3.1 3.5.0 4.0.0 3.4.0 3.5.5 2.21.0 org.snakeyaml snakeyaml-engine ${dep.snakeyaml-engine.version} org.jspecify jspecify ${dep.jspecify.version} org.slf4j slf4j-api ${dep.slf4j.version} de.speedbanking iban-commons ${dep.iban-commons.version} commons-validator commons-validator ${dep.commons-validator.version} test commons-logging commons-logging org.slf4j slf4j-simple ${dep.slf4j.version} test org.spockframework spock-core ${dep.spock.version} test org.apache.groovy groovy ${dep.groovy.version} test net.bytebuddy byte-buddy ${dep.byte-buddy.version} test org.objenesis objenesis ${dep.objenesis.version} test org.junit.jupiter junit-jupiter ${dep.junit-jupiter.version} test clean verify com.github.ekryd.sortpom sortpom-maven-plugin ${dep.plugin.sortpom.version} false false -1 org.apache.maven.plugins maven-resources-plugin ${dep.plugin.resources.version} org.codehaus.mojo build-helper-maven-plugin ${dep.plugin.build-helper.version} add-test-source add-test-source generate-test-sources ${project.basedir}/src/test/java org.apache.maven.plugins maven-compiler-plugin ${dep.plugin.compiler.version} ${javaVersion} true true -XDcompilePolicy=simple -XDaddTypeAnnotationsToSymbol=true --should-stop=ifError=FLOW -Xplugin:ErrorProne -Xep:MissingSummary:WARN -Xep:InvalidBlockTag:WARN -J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED -J--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED -J--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED -J--add-exports=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED -J--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED -J--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED -J--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED -J--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED -J--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED -J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED com.google.errorprone error_prone_core ${dep.plugin.error-prone.version} org.codehaus.gmavenplus gmavenplus-plugin ${dep.plugin.gmavenplus.version} ${project.basedir}/src/test/groovy **/*.groovy compileTests org.apache.maven.plugins maven-enforcer-plugin ${dep.plugin.enforcer.version} [3.9.0,) [${javaVersion},) Please always define Maven plugin versions true org.apache.maven.plugins:maven-clean-plugin, org.apache.maven.plugins:maven-dependency-plugin, org.apache.maven.plugins:maven-install-plugin, org.apache.maven.plugins:maven-site-plugin default-enforce enforce validate org.apache.maven.plugins maven-checkstyle-plugin ${dep.plugin.checkstyle.version} ${project.basedir}/src/test/resources/team/checkstyle-rules.xml true true true true checkstyle-check check verify org.apache.maven.plugins maven-surefire-plugin ${dep.plugin.surefire.version} **/*Spec.java **/*Test.java org.eluder.coveralls coveralls-maven-plugin ${dep.plugin.coveralls.version} org.jacoco jacoco-maven-plugin ${dep.plugin.jacoco.version} prepare-agent prepare-agent org.codehaus.mojo flatten-maven-plugin ${dep.plugin.flatten.version} ${project.build.directory} true oss flatten flatten prepare-package flatten-clean clean clean org.apache.maven.plugins maven-jar-plugin ${dep.plugin.jar.version} false true false false true true false true ${maven.build.timestamp} ${project.url} ${project.inceptionYear} org.apache.maven.plugins maven-deploy-plugin ${dep.plugin.deploy.version} true org.apache.maven.plugins maven-release-plugin ${dep.plugin.release.version} release org.codehaus.mojo versions-maven-plugin ${dep.plugin.versions.version} regex .*(?i)(alpha|beta|rc|cr|preview|milestone|[mb][0-9]+).* fast false true true true errorprone-fatal check.fail-errorprone true org.apache.maven.plugins maven-compiler-plugin -Werror release org.apache.maven.plugins maven-gpg-plugin ${dep.plugin.gpg.version} sign-artifacts sign verify org.apache.maven.plugins maven-source-plugin ${dep.plugin.source.version} attach-sources jar-no-fork org.apache.maven.plugins maven-javadoc-plugin ${dep.plugin.javadoc.version} none attach-javadocs jar org.sonatype.central central-publishing-maven-plugin ${dep.plugin.central-publishing.version} true central true published central-publish publish deploy ================================================ FILE: src/main/java/com/devskiller/jfairy/Bootstrap.java ================================================ package com.devskiller.jfairy; import java.io.IOException; import java.util.Locale; import java.util.function.Supplier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.devskiller.jfairy.data.DataMaster; import com.devskiller.jfairy.data.MapBasedDataMaster; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.DateProducer; import com.devskiller.jfairy.producer.RandomGenerator; import com.devskiller.jfairy.producer.TimeProvider; import com.devskiller.jfairy.producer.company.CompanyFactory; import com.devskiller.jfairy.producer.company.CompanyFactoryImpl; import com.devskiller.jfairy.producer.net.IPNumberProducer; import com.devskiller.jfairy.producer.payment.CreditCardProvider; import com.devskiller.jfairy.producer.payment.IBANFactory; import com.devskiller.jfairy.producer.payment.IBANFactoryImpl; import com.devskiller.jfairy.producer.person.PersonFactory; import com.devskiller.jfairy.producer.person.PersonFactoryImpl; import com.devskiller.jfairy.producer.text.TextProducerInternal; /** *

* Using a {@link #builder()}, you can configure the following fields: *

*

    *
  • locale: Specifies the locale for the random data file.
  • *
  • filePrefix: Specifies the file prefix. * (So if you specify "jfairy" here and English for Locale, the data file will be * "jfairy_en.yml" under the classpath.) *
  • *
  • random: The Random object to use.
  • *
  • randomSeed: A specific random seed to use. Use this if you want the resulting * data to be deterministic based on it, such as if you want the same test * ID in a database to always result in the same fake name. *
  • *
*

* Obviously, don't set both random and randomSeed, only the last one you set will * actually take effect. * * @author Jakub Kubrynski * @author Olga Maciaszek-Sharma */ public final class Bootstrap { private static final Logger LOG = LoggerFactory.getLogger(Bootstrap.class); private static final String DATA_FILE_PREFIX = "jfairy"; private Bootstrap() { } public static Fairy createFairy(DataMaster dataMaster, Locale locale, RandomGenerator randomGenerator) { LOG.debug("Creating Fairy instance for locale {}", locale); // Create base components BaseProducer baseProducer = new BaseProducer(randomGenerator); TimeProvider timeProvider = new TimeProvider(); DateProducer dateProducer = new DateProducer(baseProducer, timeProvider); // Create locale-specific providers LocaleSpecificProviders localeProviders = LocaleSpecificProvidersFactory.createProvidersForLocale( locale, dataMaster, baseProducer, dateProducer); // Create company factory first (needed by PersonFactory) CompanyFactory companyFactory = new CompanyFactoryImpl( baseProducer, dataMaster, localeProviders.vatIdentificationNumberProvider() ); // Create person factory PersonFactory personFactory = new PersonFactoryImpl( dataMaster, dateProducer, baseProducer, localeProviders.addressProvider(), localeProviders.nationalIdentificationNumberFactory(), localeProviders.nationalIdentityCardNumberProvider(), localeProviders.passportNumberProvider(), timeProvider, companyFactory ); IBANFactory ibanFactory = new IBANFactoryImpl(baseProducer, dataMaster); // Create other producers CreditCardProvider creditCardProvider = new CreditCardProvider(dataMaster, baseProducer, dateProducer); TextProducerInternal textProducerInternal = new TextProducerInternal(dataMaster, baseProducer); IPNumberProducer ipNumberProducer = new IPNumberProducer(baseProducer); // Create fairy factory FairyFactory fairyFactory = new FairyFactoryImpl( textProducerInternal, baseProducer, personFactory, ipNumberProducer, dateProducer, creditCardProvider, companyFactory, ibanFactory ); LOG.trace("Fairy components initialized"); return fairyFactory.createFairy(); } private static void fillDefaultDataMaster(MapBasedDataMaster dataMaster, Locale locale, String filePrefix) { try { String baseFile = filePrefix + ".yml"; String localeFile = filePrefix + "_" + locale.getLanguage() + ".yml"; LOG.debug("Loading data resources: {}, {}", baseFile, localeFile); dataMaster.readResources(baseFile); dataMaster.readResources(localeFile); } catch (IOException ex) { LOG.error("Failed to load data resources for locale {}", locale); throw new IllegalStateException(ex); } } /** * Creates a Builder that will let you configure a Fairy's fields one by one. * * @return a Builder instance. */ public static Builder builder() { return new Builder(); } /** * Use this factory method to create dataset containing default jfairy.yml and jfairy_{langCode}.yml files * merged with custom files with the same name * * @return Fairy instance */ public static Fairy create() { return builder().build(); } /** * Use this factory method to create dataset containing default jfairy.yml and jfairy_{langCode}.yml files * merged with custom files with the same name * * @param locale will be used to assess langCode for data file * @return Fairy instance */ public static Fairy create(Locale locale) { return builder().withLocale(locale).build(); } /** * Use this factory method to create your own dataset overriding bundled one * * @param locale will be used to assess langCode for data file * @param dataFilePrefix prefix of the data file - final pattern will be jfairy.yml and dataFilePrefix_{langCode}.yml * @return Fairy instance */ public static Fairy create(Locale locale, String dataFilePrefix) { return builder().withLocale(locale) .withFilePrefix(dataFilePrefix) .build(); } public static Fairy create(Supplier dataMaster, Locale locale) { return builder().withDataMasterProvider(dataMaster).withLocale(locale).build(); } public static final class Builder { private Locale locale = Locale.ENGLISH; private String filePrefix = DATA_FILE_PREFIX; private RandomGenerator randomGenerator = new RandomGenerator(); private DataMaster dataMaster; private MapBasedDataMaster getDefaultDataMaster(BaseProducer baseProducer) { return new MapBasedDataMaster(baseProducer); } private Builder() { } /** * Sets the locale for the resulting Fairy. * * @param locale The Locale to set. * @return the same Builder (for chaining). */ public Builder withLocale(Locale locale) { this.locale = locale; return this; } /** * Sets the data file prefix for the resulting Fairy. * * @param filePrefix The prefix of the file (such as "jfairy" for "jfairy_en.yml"). * @return the same Builder (for chaining). */ public Builder withFilePrefix(String filePrefix) { this.filePrefix = filePrefix; return this; } /** * Sets the random seed to use to pick things randomly. (If you set this, you will always * get the same result when you generate things.) * * @param randomSeed The random seed to use. * @return the same Builder (for chaining). */ public Builder withRandomSeed(int randomSeed) { LOG.debug("Using fixed random seed: {}", randomSeed); this.randomGenerator = new RandomGenerator(randomSeed); return this; } /** * Sets a custom DataMaster implementation. * * @param dataMasterProvider The DataMaster supplier to use. * @return the same Builder (for chaining). */ public Builder withDataMasterProvider(Supplier dataMasterProvider) { this.dataMaster = dataMasterProvider.get(); return this; } /** * Returns the completed Fairy. * * @return Fairy instance */ public Fairy build() { if (dataMaster == null) { BaseProducer baseProducer = new BaseProducer(randomGenerator); dataMaster = getDefaultDataMaster(baseProducer); fillDefaultDataMaster((MapBasedDataMaster) dataMaster, locale, filePrefix); } return createFairy(dataMaster, locale, randomGenerator); } } } ================================================ FILE: src/main/java/com/devskiller/jfairy/Fairy.java ================================================ /* * Copyright (c) 2013 Codearte */ package com.devskiller.jfairy; import java.util.Locale; import java.util.function.Supplier; import com.devskiller.jfairy.data.DataMaster; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.DateProducer; import com.devskiller.jfairy.producer.company.Company; import com.devskiller.jfairy.producer.company.CompanyFactory; import com.devskiller.jfairy.producer.company.CompanyProperties; import com.devskiller.jfairy.producer.net.NetworkProducer; import com.devskiller.jfairy.producer.payment.CreditCard; import com.devskiller.jfairy.producer.payment.CreditCardProvider; import com.devskiller.jfairy.producer.payment.IBAN; import com.devskiller.jfairy.producer.payment.IBANFactory; import com.devskiller.jfairy.producer.payment.IBANProperties; import com.devskiller.jfairy.producer.person.Person; import com.devskiller.jfairy.producer.person.PersonFactory; import com.devskiller.jfairy.producer.person.PersonProperties; import com.devskiller.jfairy.producer.text.TextProducer; public final class Fairy { private final TextProducer textProducer; private final PersonFactory personFactory; private final NetworkProducer networkProducer; private final BaseProducer baseProducer; private final DateProducer dateProducer; private final CreditCardProvider creditCardProvider; private final CompanyFactory companyFactory; private final IBANFactory ibanFactory; Fairy(TextProducer textProducer, PersonFactory personFactory, NetworkProducer networkProducer, BaseProducer baseProducer, DateProducer dateProducer, CreditCardProvider creditCardProvider, CompanyFactory companyFactory, IBANFactory ibanFactory) { this.textProducer = textProducer; this.personFactory = personFactory; this.networkProducer = networkProducer; this.baseProducer = baseProducer; this.dateProducer = dateProducer; this.creditCardProvider = creditCardProvider; this.companyFactory = companyFactory; this.ibanFactory = ibanFactory; } public static Fairy create() { return Bootstrap.create(); } public static Fairy create(Locale locale) { return Bootstrap.create(locale); } public static Fairy create(Supplier dataMasterProvider, Locale locale) { return Bootstrap.create(dataMasterProvider, locale); } public static Bootstrap.Builder builder() { return Bootstrap.builder(); } /** * Use this method for generating texts * * @return A {@link com.devskiller.jfairy.producer.text.TextProducer} instance */ public TextProducer textProducer() { return textProducer; } /** * Use this method for fake persons * * @param personProperties desired person features * @return A {@link com.devskiller.jfairy.producer.person.Person} instance */ public Person person(PersonProperties.PersonProperty... personProperties) { return personFactory.producePersonProvider(personProperties).get(); } /** * Use this method to generate fake company * * @param companyProperties desired company features * @return A {@link com.devskiller.jfairy.producer.company.CompanyProvider} instance */ public Company company(CompanyProperties.CompanyProperty... companyProperties) { return companyFactory.produceCompany(companyProperties).get(); } /** * Use this method for get standard tools * * @return A {@link com.devskiller.jfairy.producer.BaseProducer} instance */ public BaseProducer baseProducer() { return baseProducer; } public DateProducer dateProducer() { return dateProducer; } /** * Use this method for generating IBAN (International Bank Account Number) * * @return A {@link com.devskiller.jfairy.producer.payment.IBAN} instance */ public IBAN iban() { return ibanFactory.produceIBANProvider().get(); } /** * Use this method for generating IBAN (International Bank Account Number) * * @param properties desired IBAN features * @return A {@link com.devskiller.jfairy.producer.payment.IBAN} instance */ public IBAN iban(IBANProperties.Property... properties) { return ibanFactory.produceIBANProvider(properties).get(); } public CreditCard creditCard() { return creditCardProvider.get(); } public NetworkProducer networkProducer() { return networkProducer; } /** * Returns a {@link UniqueFairy} that ensures generated objects are unique * by their natural key (email for Person, name for Company, etc.). * * @return A {@link UniqueFairy} instance */ public UniqueFairy unique() { return new UniqueFairy(this, UniqueEnforcer.DEFAULT_MAX_RETRIES); } /** * Returns a {@link UniqueFairy} with custom max retries. * * @param maxRetries maximum generation attempts before throwing * @return A {@link UniqueFairy} instance */ public UniqueFairy unique(int maxRetries) { return new UniqueFairy(this, maxRetries); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/FairyFactory.java ================================================ package com.devskiller.jfairy; /** * @author Jakub Kubrynski */ interface FairyFactory { Fairy createFairy(); } ================================================ FILE: src/main/java/com/devskiller/jfairy/FairyFactoryImpl.java ================================================ package com.devskiller.jfairy; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.DateProducer; import com.devskiller.jfairy.producer.company.CompanyFactory; import com.devskiller.jfairy.producer.net.IPNumberProducer; import com.devskiller.jfairy.producer.net.NetworkProducer; import com.devskiller.jfairy.producer.payment.CreditCardProvider; import com.devskiller.jfairy.producer.payment.IBANFactory; import com.devskiller.jfairy.producer.person.PersonFactory; import com.devskiller.jfairy.producer.text.TextProducer; import com.devskiller.jfairy.producer.text.TextProducerInternal; class FairyFactoryImpl implements FairyFactory { private final TextProducerInternal textProducerInternal; private final BaseProducer baseProducer; private final PersonFactory personFactory; private final IPNumberProducer ipNumberProducer; private final DateProducer dateProducer; private final CreditCardProvider creditCardProvider; private final CompanyFactory companyFactory; private final IBANFactory ibanFactory; FairyFactoryImpl(TextProducerInternal textProducerInternal, BaseProducer baseProducer, PersonFactory personFactory, IPNumberProducer ipNumberProducer, DateProducer dateProducer, CreditCardProvider creditCardProvider, CompanyFactory companyFactory, IBANFactory ibanFactory) { this.textProducerInternal = textProducerInternal; this.baseProducer = baseProducer; this.personFactory = personFactory; this.ipNumberProducer = ipNumberProducer; this.dateProducer = dateProducer; this.creditCardProvider = creditCardProvider; this.companyFactory = companyFactory; this.ibanFactory = ibanFactory; } @Override public Fairy createFairy() { TextProducer textProducer = new TextProducer(textProducerInternal, baseProducer); NetworkProducer networkProducer = new NetworkProducer(ipNumberProducer); return new Fairy(textProducer, personFactory, networkProducer, baseProducer, dateProducer, creditCardProvider, companyFactory, ibanFactory); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/LocaleSpecificProviders.java ================================================ package com.devskiller.jfairy; import com.devskiller.jfairy.producer.VATIdentificationNumberProvider; import com.devskiller.jfairy.producer.person.AddressProvider; import com.devskiller.jfairy.producer.person.NationalIdentificationNumberFactory; import com.devskiller.jfairy.producer.person.NationalIdentityCardNumberProvider; import com.devskiller.jfairy.producer.person.PassportNumberProvider; /** * Container for locale-specific provider implementations */ record LocaleSpecificProviders( NationalIdentificationNumberFactory nationalIdentificationNumberFactory, NationalIdentityCardNumberProvider nationalIdentityCardNumberProvider, VATIdentificationNumberProvider vatIdentificationNumberProvider, AddressProvider addressProvider, PassportNumberProvider passportNumberProvider) { } ================================================ FILE: src/main/java/com/devskiller/jfairy/LocaleSpecificProvidersFactory.java ================================================ package com.devskiller.jfairy; import java.util.Locale; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.devskiller.jfairy.data.DataMaster; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.DateProducer; import com.devskiller.jfairy.producer.company.locale.br.BrVATIdentificationNumberProvider; import com.devskiller.jfairy.producer.company.locale.de.DeVATIdentificationNumberProvider; import com.devskiller.jfairy.producer.company.locale.en.EnVATIdentificationNumberProvider; import com.devskiller.jfairy.producer.company.locale.es.EsVATIdentificationNumberProvider; import com.devskiller.jfairy.producer.company.locale.fr.FrVATIdentificationNumberProvider; import com.devskiller.jfairy.producer.company.locale.ka.KaVATIdentificationNumberProvider; import com.devskiller.jfairy.producer.company.locale.pl.PlVATIdentificationNumberProvider; import com.devskiller.jfairy.producer.company.locale.sk.SkVATIdentificationNumberProvider; import com.devskiller.jfairy.producer.company.locale.sv.SvVATIdentificationNumberProvider; import com.devskiller.jfairy.producer.company.locale.tr.TrVATIdentificationNumberProvider; import com.devskiller.jfairy.producer.company.locale.zh.ZhVATIdentificationNumberProvider; import com.devskiller.jfairy.producer.person.NationalIdentificationNumberFactory; import com.devskiller.jfairy.producer.person.locale.NoNationalIdentificationNumberFactory; import com.devskiller.jfairy.producer.person.locale.br.BrAddressProvider; import com.devskiller.jfairy.producer.person.locale.br.BrNationalIdentityCardNumberProvider; import com.devskiller.jfairy.producer.person.locale.br.BrPassportNumberProvider; import com.devskiller.jfairy.producer.person.locale.de.DeAddressProvider; import com.devskiller.jfairy.producer.person.locale.de.DeNationalIdentityCardNumberProvider; import com.devskiller.jfairy.producer.person.locale.de.DePassportNumberProvider; import com.devskiller.jfairy.producer.person.locale.en.EnAddressProvider; import com.devskiller.jfairy.producer.person.locale.en.EnNationalIdentityCardNumberProvider; import com.devskiller.jfairy.producer.person.locale.en.EnPassportNumberProvider; import com.devskiller.jfairy.producer.person.locale.es.EsAddressProvider; import com.devskiller.jfairy.producer.person.locale.es.EsNationalIdentityCardNumberProvider; import com.devskiller.jfairy.producer.person.locale.es.EsPassportNumberProvider; import com.devskiller.jfairy.producer.person.locale.fr.FrAddressProvider; import com.devskiller.jfairy.producer.person.locale.fr.FrNationalIdentityCardNumberProvider; import com.devskiller.jfairy.producer.person.locale.fr.FrPassportNumberProvider; import com.devskiller.jfairy.producer.person.locale.ka.KaAddressProvider; import com.devskiller.jfairy.producer.person.locale.ka.KaNationalIdentityCardNumberProvider; import com.devskiller.jfairy.producer.person.locale.ka.KaPassportNumberProvider; import com.devskiller.jfairy.producer.person.locale.pl.PlAddressProvider; import com.devskiller.jfairy.producer.person.locale.pl.PlNationalIdentificationNumberFactory; import com.devskiller.jfairy.producer.person.locale.pl.PlNationalIdentityCardNumberProvider; import com.devskiller.jfairy.producer.person.locale.pl.PlPassportNumberProvider; import com.devskiller.jfairy.producer.person.locale.sk.SkAddressProvider; import com.devskiller.jfairy.producer.person.locale.sk.SkNationalIdentificationNumberFactory; import com.devskiller.jfairy.producer.person.locale.sk.SkNationalIdentityCardNumberProvider; import com.devskiller.jfairy.producer.person.locale.sk.SkPassportNumberProvider; import com.devskiller.jfairy.producer.person.locale.sv.SvAddressProvider; import com.devskiller.jfairy.producer.person.locale.sv.SvNationalIdentificationNumberFactory; import com.devskiller.jfairy.producer.person.locale.sv.SvNationalIdentityCardNumberProvider; import com.devskiller.jfairy.producer.person.locale.sv.SvPassportNumberProvider; import com.devskiller.jfairy.producer.person.locale.tr.TrAddressProvider; import com.devskiller.jfairy.producer.person.locale.tr.TrNationalIdentityCardNumberProvider; import com.devskiller.jfairy.producer.person.locale.tr.TrPassportNumberProvider; import com.devskiller.jfairy.producer.person.locale.zh.ZhAddressProvider; import com.devskiller.jfairy.producer.person.locale.zh.ZhNationalIdentityCardNumberProvider; import com.devskiller.jfairy.producer.person.locale.zh.ZhPassportNumberProvider; import com.devskiller.jfairy.producer.util.LanguageCode; /** * Factory for creating locale-specific provider implementations */ final class LocaleSpecificProvidersFactory { private static final Logger LOG = LoggerFactory.getLogger(LocaleSpecificProvidersFactory.class); private LocaleSpecificProvidersFactory() { } static LocaleSpecificProviders createProvidersForLocale(Locale locale, DataMaster dataMaster, BaseProducer baseProducer, DateProducer dateProducer) { LanguageCode code; try { code = LanguageCode.valueOf(locale.getLanguage().toUpperCase(Locale.ROOT)); } catch (IllegalArgumentException ex) { LOG.warn("Unknown locale {}", locale); code = LanguageCode.EN; } return switch (code) { case PL -> createPlProviders(dataMaster, baseProducer, dateProducer); case EN -> createEnProviders(dataMaster, baseProducer); case ES -> createEsProviders(dataMaster, baseProducer); case FR -> createFrProviders(dataMaster, baseProducer); case IT -> createItProviders(dataMaster, baseProducer); case SK -> createSkProviders(dataMaster, baseProducer, dateProducer); case SV -> createSvProviders(dataMaster, baseProducer, dateProducer); case ZH -> createZhProviders(dataMaster, baseProducer); case DE -> createDeProviders(dataMaster, baseProducer); case KA -> createKaProviders(dataMaster, baseProducer); case BR -> createBrProviders(dataMaster, baseProducer); case TR -> createTrProviders(dataMaster, baseProducer); }; } private static LocaleSpecificProviders createPlProviders(DataMaster dataMaster, BaseProducer baseProducer, DateProducer dateProducer) { return new LocaleSpecificProviders( new PlNationalIdentificationNumberFactory(baseProducer, dateProducer), new PlNationalIdentityCardNumberProvider(dateProducer, baseProducer), new PlVATIdentificationNumberProvider(baseProducer), new PlAddressProvider(dataMaster, baseProducer), new PlPassportNumberProvider(baseProducer) ); } private static LocaleSpecificProviders createSkProviders(DataMaster dataMaster, BaseProducer baseProducer, DateProducer dateProducer) { return new LocaleSpecificProviders( new SkNationalIdentificationNumberFactory(baseProducer, dateProducer), new SkNationalIdentityCardNumberProvider(dateProducer, baseProducer), new SkVATIdentificationNumberProvider(baseProducer), new SkAddressProvider(dataMaster, baseProducer), new SkPassportNumberProvider(baseProducer) ); } private static LocaleSpecificProviders createEnProviders(DataMaster dataMaster, BaseProducer baseProducer) { return new LocaleSpecificProviders( new NoNationalIdentificationNumberFactory(), new EnNationalIdentityCardNumberProvider(baseProducer), new EnVATIdentificationNumberProvider(baseProducer), new EnAddressProvider(dataMaster, baseProducer), new EnPassportNumberProvider(baseProducer) ); } /** * Creates providers for French locale. * * @param dataMaster data source * @param baseProducer base producer * @return French specific providers */ private static LocaleSpecificProviders createFrProviders(DataMaster dataMaster, BaseProducer baseProducer) { return new LocaleSpecificProviders( new NoNationalIdentificationNumberFactory(), new FrNationalIdentityCardNumberProvider(baseProducer), new FrVATIdentificationNumberProvider(baseProducer), new FrAddressProvider(dataMaster, baseProducer), new FrPassportNumberProvider(baseProducer) ); } /** * Creates providers for Italian locale. *

* Note: Currently uses English fallbacks. * * @param dataMaster data source * @param baseProducer base producer * @return Italian specific providers */ private static LocaleSpecificProviders createItProviders(DataMaster dataMaster, BaseProducer baseProducer) { return new LocaleSpecificProviders( new NoNationalIdentificationNumberFactory(), new EnNationalIdentityCardNumberProvider(baseProducer), new EnVATIdentificationNumberProvider(baseProducer), new EnAddressProvider(dataMaster, baseProducer), new EnPassportNumberProvider(baseProducer) ); } private static LocaleSpecificProviders createEsProviders(DataMaster dataMaster, BaseProducer baseProducer) { return new LocaleSpecificProviders( new NoNationalIdentificationNumberFactory(), new EsNationalIdentityCardNumberProvider(baseProducer), new EsVATIdentificationNumberProvider(baseProducer), new EsAddressProvider(dataMaster, baseProducer), new EsPassportNumberProvider(baseProducer) ); } private static LocaleSpecificProviders createSvProviders(DataMaster dataMaster, BaseProducer baseProducer, DateProducer dateProducer) { NationalIdentificationNumberFactory nationalIdFactory = new SvNationalIdentificationNumberFactory(baseProducer, dateProducer); return new LocaleSpecificProviders( nationalIdFactory, new SvNationalIdentityCardNumberProvider(baseProducer), new SvVATIdentificationNumberProvider(baseProducer, dateProducer, nationalIdFactory), new SvAddressProvider(dataMaster, baseProducer), new SvPassportNumberProvider(baseProducer) ); } private static LocaleSpecificProviders createZhProviders(DataMaster dataMaster, BaseProducer baseProducer) { return new LocaleSpecificProviders( new NoNationalIdentificationNumberFactory(), new ZhNationalIdentityCardNumberProvider(baseProducer), new ZhVATIdentificationNumberProvider(), new ZhAddressProvider(dataMaster, baseProducer), new ZhPassportNumberProvider(baseProducer) ); } private static LocaleSpecificProviders createDeProviders(DataMaster dataMaster, BaseProducer baseProducer) { return new LocaleSpecificProviders( new NoNationalIdentificationNumberFactory(), new DeNationalIdentityCardNumberProvider(baseProducer), new DeVATIdentificationNumberProvider(baseProducer), new DeAddressProvider(dataMaster, baseProducer), new DePassportNumberProvider(baseProducer) ); } private static LocaleSpecificProviders createKaProviders(DataMaster dataMaster, BaseProducer baseProducer) { return new LocaleSpecificProviders( new NoNationalIdentificationNumberFactory(), new KaNationalIdentityCardNumberProvider(baseProducer), new KaVATIdentificationNumberProvider(baseProducer), new KaAddressProvider(dataMaster, baseProducer), new KaPassportNumberProvider(baseProducer) ); } private static LocaleSpecificProviders createBrProviders(DataMaster dataMaster, BaseProducer baseProducer) { return new LocaleSpecificProviders( new NoNationalIdentificationNumberFactory(), new BrNationalIdentityCardNumberProvider(baseProducer), new BrVATIdentificationNumberProvider(baseProducer), new BrAddressProvider(dataMaster, baseProducer), new BrPassportNumberProvider() ); } private static LocaleSpecificProviders createTrProviders(DataMaster dataMaster, BaseProducer baseProducer) { return new LocaleSpecificProviders( new NoNationalIdentificationNumberFactory(), new TrNationalIdentityCardNumberProvider(baseProducer), new TrVATIdentificationNumberProvider(baseProducer), new TrAddressProvider(dataMaster, baseProducer), new TrPassportNumberProvider(baseProducer) ); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/UniqueEnforcer.java ================================================ package com.devskiller.jfairy; import java.util.HashSet; import java.util.Objects; import java.util.Set; import java.util.function.Function; import java.util.function.Supplier; /** * Wraps a generator to ensure unique values based on a key extractor. * Throws {@link UniqueGenerationException} after max retries. * *

This class is not thread-safe. Each thread should use its own instance.

* *
{@code
 * Fairy fairy = Fairy.create();
 * UniqueEnforcer unique = UniqueEnforcer.of(fairy::person, Person::getEmail);
 * Person p1 = unique.next(); // guaranteed unique email
 * Person p2 = unique.next(); // different email than p1
 * unique.reset();            // clear history
 * }
* * @param type of generated object */ public final class UniqueEnforcer { static final int DEFAULT_MAX_RETRIES = 10_000; private final Supplier defaultGenerator; private final Function keyExtractor; private final int maxRetries; private final Set seen = new HashSet<>(); private UniqueEnforcer(Supplier defaultGenerator, Function keyExtractor, int maxRetries) { this.defaultGenerator = Objects.requireNonNull(defaultGenerator, "generator must not be null"); this.keyExtractor = Objects.requireNonNull(keyExtractor, "keyExtractor must not be null"); if (maxRetries < 1) { throw new IllegalArgumentException("maxRetries must be positive, got: " + maxRetries); } this.maxRetries = maxRetries; } public static UniqueEnforcer of(Supplier generator, Function keyExtractor) { return new UniqueEnforcer<>(generator, keyExtractor, DEFAULT_MAX_RETRIES); } public static UniqueEnforcer of(Supplier generator, Function keyExtractor, int maxRetries) { return new UniqueEnforcer<>(generator, keyExtractor, maxRetries); } public T next() { return next(defaultGenerator); } /** * Generate a unique value using a custom supplier, tracking uniqueness * in the same seen-set as {@link #next()}. */ public T next(Supplier generator) { for (int i = 0; i < maxRetries; i++) { T value = generator.get(); Object key = keyExtractor.apply(value); if (seen.add(key)) { return value; } } throw new UniqueGenerationException( "Could not generate a unique value after " + maxRetries + " retries. " + seen.size() + " unique values were generated before exhaustion."); } public void reset() { seen.clear(); } public int size() { return seen.size(); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/UniqueFairy.java ================================================ package com.devskiller.jfairy; import com.devskiller.jfairy.producer.company.Company; import com.devskiller.jfairy.producer.company.CompanyProperties; import com.devskiller.jfairy.producer.payment.CreditCard; import com.devskiller.jfairy.producer.payment.IBAN; import com.devskiller.jfairy.producer.payment.IBANProperties; import com.devskiller.jfairy.producer.person.Person; import com.devskiller.jfairy.producer.person.PersonProperties; /** * Convenience wrapper that ensures generated objects are unique by their * natural key (email for Person, name for Company, etc.). * *

Uniqueness is tracked per entity type. A person email will not conflict * with a company name. Call {@link #reset()} to clear all tracked values.

* *

This class is not thread-safe. Store the reference and reuse it — * calling {@code fairy.unique()} in a loop creates independent instances * with no shared tracking.

* *
{@code
 * UniqueFairy unique = fairy.unique();
 * Person p1 = unique.person();  // unique by email
 * Person p2 = unique.person();  // different email than p1
 * Company c = unique.company(); // unique by name
 * unique.reset();
 * }
*/ public final class UniqueFairy { private final Fairy fairy; private final UniqueEnforcer personEnforcer; private final UniqueEnforcer companyEnforcer; private final UniqueEnforcer ibanEnforcer; private final UniqueEnforcer creditCardEnforcer; UniqueFairy(Fairy fairy, int maxRetries) { this.fairy = fairy; this.personEnforcer = UniqueEnforcer.of(fairy::person, Person::getEmail, maxRetries); this.companyEnforcer = UniqueEnforcer.of(fairy::company, Company::getName, maxRetries); // Lambda needed: fairy::iban is ambiguous (overloaded no-arg and vararg) this.ibanEnforcer = UniqueEnforcer.of(() -> fairy.iban(), IBAN::getIbanNumber, maxRetries); this.creditCardEnforcer = UniqueEnforcer.of(fairy::creditCard, CreditCard::getCardNumber, maxRetries); } public Person person(PersonProperties.PersonProperty... personProperties) { if (personProperties.length == 0) { return personEnforcer.next(); } return personEnforcer.next(() -> fairy.person(personProperties)); } public Company company(CompanyProperties.CompanyProperty... companyProperties) { if (companyProperties.length == 0) { return companyEnforcer.next(); } return companyEnforcer.next(() -> fairy.company(companyProperties)); } public IBAN iban(IBANProperties.Property... properties) { if (properties.length == 0) { return ibanEnforcer.next(); } return ibanEnforcer.next(() -> fairy.iban(properties)); } public CreditCard creditCard() { return creditCardEnforcer.next(); } public void reset() { personEnforcer.reset(); companyEnforcer.reset(); ibanEnforcer.reset(); creditCardEnforcer.reset(); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/UniqueGenerationException.java ================================================ package com.devskiller.jfairy; public class UniqueGenerationException extends RuntimeException { private static final long serialVersionUID = 1L; public UniqueGenerationException(String message) { super(message); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/data/DataMaster.java ================================================ package com.devskiller.jfairy.data; import java.util.List; import com.devskiller.jfairy.producer.util.LanguageCode; /** * Providing access to localized data used by producers. *

* This master component acts as the central registry for retrieving * strings and structured data based on specific keys and language codes. * * @author Olga Maciaszek-Sharma * @since 23.04.15 */ public interface DataMaster { /** * Returns a single string value associated with the given key. * * @param key the unique identifier for the data entry * @return the string value found for the key */ String getString(String key); /** * Returns a list of strings associated with the given key. * * @param key the unique identifier for the data entries * @return a list of string values found for the key */ List getStringList(String key); /** * Retrieves structured data of a specific type and converts it to the requested class. * * @param dataKey the root key for the data search * @param type the specific sub-type or category * @param resultClass the class type to which the result should be cast * @param the type of the result object * @return an instance of the requested type containing the values */ T getValuesOfType(String dataKey, String type, Class resultClass); /** * Selects a random string value from the entries associated with the given key. * * @param key the unique identifier for the data list * @return a randomly selected string value */ String getRandomValue(String key); /** * Returns the language code currently used by this data master. * * @return the active LanguageCode */ LanguageCode getLanguage(); } ================================================ FILE: src/main/java/com/devskiller/jfairy/data/MapBasedDataMaster.java ================================================ /* * Copyright (c) 2013 Codearte */ package com.devskiller.jfairy.data; import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.util.Enumeration; import java.util.HashMap; import java.util.List; import java.util.Locale; import java.util.Map; import org.snakeyaml.engine.v2.api.Load; import org.snakeyaml.engine.v2.api.LoadSettings; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.util.LanguageCode; import com.devskiller.jfairy.producer.util.ValidateUtils; public class MapBasedDataMaster implements DataMaster { public static final String LANGUAGE_TAG = "language"; private final BaseProducer baseProducer; private final Map dataSource = new CaseInsensitiveMap(); public MapBasedDataMaster(BaseProducer baseProducer) { this.baseProducer = baseProducer; } /** * Returns list (null safe) of elements for desired key from dataSource files * * @param key desired node key * @return list of elements for desired key * @throws IllegalArgumentException if no element for key has been found */ @SuppressWarnings("unchecked") @Override public List getStringList(String key) { return getData(key, List.class); } @Override @SuppressWarnings("unchecked") public T getValuesOfType(String dataKey, final String type, final Class resultClass) { Map> data = getData(dataKey, Map.class); List entries = data.get(type); return baseProducer.randomElement(entries); } /** * Returns element (null safe) for desired key from dataSource files * * @param key desired node key * @return string element for desired key * @throws IllegalArgumentException if no element for key has been found */ @Override public String getString(String key) { return getData(key, String.class); } @Override public String getRandomValue(String key) { return baseProducer.randomElement(getStringList(key)); } @Override public LanguageCode getLanguage() { String tag = getString(LANGUAGE_TAG).toUpperCase(Locale.ROOT); try { return LanguageCode.valueOf(tag); } catch (IllegalArgumentException ex) { throw new IllegalArgumentException("Unknown language tag: " + tag, ex); } } @SuppressWarnings("unchecked") T getData(String key, Class type) { ValidateUtils.notNull(key, "key cannot be null"); ValidateUtils.notNull(type, "type cannot be null"); Object element = dataSource.get(key); ValidateUtils.isTrue(element != null, "No such key: %s", key); ValidateUtils.isTrue(type.isAssignableFrom(element.getClass()), "Element under desired key has incorrect type - should be %s", type.getSimpleName()); return (T) element; } //fixme - should be package-private public void readResources(String path) throws IOException { Enumeration resources = getClass().getClassLoader().getResources(path); if (!resources.hasMoreElements()) { throw new IllegalArgumentException(String.format("File %s was not found on classpath", path)); } final LoadSettings loadSettings = LoadSettings.builder().build(); while (resources.hasMoreElements()) { final Load load = new Load(loadSettings); final URL url = resources.nextElement(); try (InputStream is = url.openStream()) { @SuppressWarnings("unchecked") final Map data = (Map) load.loadFromInputStream(is); appendData(data); } } } private void appendData(Map data) { dataSource.putAll(data); } private static final class CaseInsensitiveMap extends HashMap { private static final long serialVersionUID = 1L; @Override @SuppressWarnings("unchecked") public Object put(String key, Object value) { String loweredKey = key.toLowerCase(Locale.ROOT); Object valueToInsert = value; if (value instanceof Map) { valueToInsert = new CaseInsensitiveMap(); ((CaseInsensitiveMap) valueToInsert).putAll((Map) value); } return super.put(loweredKey, valueToInsert); } @Override public void putAll(Map map) { for (Map.Entry entry : map.entrySet()) { put(entry.getKey(), entry.getValue()); } } @Override public Object get(Object key) { return super.get(((String) key).toLowerCase(Locale.ROOT)); } } } ================================================ FILE: src/main/java/com/devskiller/jfairy/package-info.java ================================================ /** * Core package of the jFairy library. *

* This package contains the main entry points for the library, such as the {@link com.devskiller.jfairy.Fairy} * facade and the {@link com.devskiller.jfairy.Bootstrap} class for initialization. *

* The {@link com.devskiller.jfairy.FairyFactory} provides mechanisms to create localized instances * of the data generators. */ @NullMarked package com.devskiller.jfairy; import org.jspecify.annotations.NullMarked; ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/BaseProducer.java ================================================ package com.devskiller.jfairy.producer; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class BaseProducer { private final RandomGenerator random; public BaseProducer(RandomGenerator random) { this.random = random; } /** * Generates random boolean * * @return random boolean */ public boolean trueOrFalse() { return random.nextBoolean(); } /** * Returns random element from passed List * * @param element generic type * @param elements list to process * @return random list element */ public T randomElement(List elements) { return elements.get(randomBetween(0, elements.size() - 1)); } /** * Returns random element from passed vararg * * @param elements objects to process * @return random element */ public String randomElement(String... elements) { return randomElement(Arrays.asList(elements)); } /** * Returns random enum value * * @param element generic type * @param enumType enum class * @return random enum value */ public > T randomElement(Class enumType) { return enumType.getEnumConstants()[randomBetween(0, enumType.getEnumConstants().length - 1)]; } /** * Creates new list being random subset of the passed list * * @param element generic type * @param elements list to process * @param count returned list size * @return sublist of the elements list */ public List randomElements(List elements, int count) { if (elements.size() >= count) { return extractRandomList(elements, count); } else { List randomElements = new ArrayList<>(extractRandomList(elements, count % elements.size())); do { randomElements.addAll(extractRandomList(elements, elements.size())); } while (randomElements.size() < count); return randomElements; } } private List extractRandomList(List elements, int count) { return random.shuffle(elements).subList(0, count); } /** * Returns random int value * * @param min value of the random number to be returned. Must be positive. * @param max value of the random number to be returned. Must be positive. * @return random {@code int} value between {@code min} (inclusive) and {@code max} (inclusive) */ public int randomBetween(int min, int max) { return random.nextInt(min, max); } /** * Returns random int value * * @param max value of the random number to be returned. Must be positive. * @return random {@code int} value between 0 (inclusive) and {@code max} (inclusive) */ public int randomInt(int max) { return randomBetween(0, max); } //TODO: MZA: Duplication - should be merged into one method when consistent logic will be determined public char randomBetween(char min, char max) { return (char) randomBetween((int) min, (int) max); } /** * Returns random long value from a range (including both range boundaries). * It required to satisfied condition min <= max. * * @param min lower bound of a range * @param max higher bound of a range * @return pseudorandom {@code long} value between {@code mon} (inclusive) and {@code max} (inclusive) */ public long randomBetween(long min, long max) { return random.nextLong(min, max); } /** * Returns random double value * * @param min value of the random number to be returned. Must be positive. * @param max value of the random number to be returned. Must be positive. * @return random {@code double} value between {@code min} (inclusive) and {@code max} (inclusive) */ public double randomBetween(double min, double max) { return random.nextDouble(min, max); } public String randomNumeric(int length) { return random.randomNumeric(length); } public String randomAlphabetic(int length) { return random.randomAlphabetic(length); } public String randomAlphanumeric(int length) { return random.randomAlphanumeric(length); } /** * Replaces all {@code '?'} characters with random chars from [a - z] range * * @param letterString text to process * @return text with replaces {@code '?'} chars */ public String letterify(String letterString) { return letterify(letterString, 'a', 'z'); } /** * Replaces all {@code '?'} characters with random chars from [{@code from} - {@code to}] range * * @param letterString text to process * @param from start of the range * @param to end of the range * @return text with replaced {@code '?'} chars */ public String letterify(String letterString, char from, char to) { return replaceSymbolWithCharsFromTo(letterString, '?', from, to); } /** * Replaces all {@code '#'} characters with random numbers from [0 - 9] range * * @param numberString text to process * @return text with replaced '#' characters */ public String numerify(String numberString) { return numerify(numberString, 0, 9); } /** * Replaces all {@code '#'} characters with random numbers from [{@code from} - {@code to}] range * * @param numberString text to process * @param from start of the range * @param to end of the range * @return text with replaced '#' characters */ public String numerify(String numberString, int from, int to) { return replaceSymbolWithCharsFromTo(numberString, '#', Character.forDigit(from, 10), Character.forDigit(to, 10)); } /** * Processes text with {@code numerify()} and {@code letterify()} methods * * @param string text to process * @return text with replaced '#' and '?' characters */ public String bothify(String string) { return letterify(numerify(string)); } /** * Replaces occurrence of a specific symbol with a random character within the given range. * * @param string the template string containing symbols to be replaced * @param symbol the character to look for in the template * @param from the lower bound (inclusive) of the random character range * @param to the upper bound (inclusive) of the random character range * @return a new string with all symbols replaced by random characters */ private String replaceSymbolWithCharsFromTo(String string, char symbol, char from, char to) { StringBuilder result = new StringBuilder(); for (int i = 0; i < string.length(); i++) { char c = string.charAt(i); if (c == symbol) { result.append(randomBetween(from, to)); } else { result.append(c); } } return result.toString(); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/DateProducer.java ================================================ /* * Copyright (c) 2013. Codearte */ package com.devskiller.jfairy.producer; import java.time.Instant; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.Month; import java.time.Period; import java.time.ZoneOffset; import com.devskiller.jfairy.producer.util.ValidateUtils; import static java.time.temporal.TemporalAdjusters.firstDayOfYear; import static java.time.temporal.TemporalAdjusters.lastDayOfYear; public class DateProducer { static final int SECONDS_BEFORE_TO_BE_IN_THE_PAST = 1; private final BaseProducer baseProducer; private final TimeProvider timeProvider; public DateProducer(BaseProducer baseProducer, TimeProvider timeProvider) { this.baseProducer = baseProducer; this.timeProvider = timeProvider; } public LocalDateTime randomDateInThePast(int maxYearsEarlier) { ValidateUtils.isTrue(maxYearsEarlier >= 0, "%d has to be >= 0", maxYearsEarlier); LocalDateTime currentDate = timeProvider.getCurrentTime(); LocalDateTime latestDateInThePast = currentDate.minusSeconds(SECONDS_BEFORE_TO_BE_IN_THE_PAST); LocalDateTime maxYearsEarlierDate = currentDate.minusYears(maxYearsEarlier); return randomDateBetweenTwoDates(maxYearsEarlierDate, latestDateInThePast); } public LocalDateTime randomDateBetweenYearAndNow(int fromYear) { int actualYear = timeProvider.getCurrentYear(); return randomDateInThePast(actualYear - fromYear); } public LocalDate randomDateBetweenTwoDates(LocalDate from, LocalDate to) { long epochDay = baseProducer.randomBetween(from.toEpochDay(), to.toEpochDay()); return LocalDate.ofEpochDay(epochDay); } public LocalDateTime randomDateBetweenTwoDates(LocalDateTime from, LocalDateTime to) { long between = baseProducer.randomBetween(from.toInstant(ZoneOffset.UTC).toEpochMilli(), to.toInstant(ZoneOffset.UTC).toEpochMilli()); return LocalDateTime.ofInstant(Instant.ofEpochMilli(between), ZoneOffset.UTC); } public LocalDateTime randomDateBetweenYears(int fromYear, int toYear) { ValidateUtils.isTrue(fromYear <= toYear, "%d has to be <= %d", fromYear, toYear); LocalDateTime fromDate = getDateForFirstDayForGivenYear(fromYear); LocalDateTime toDate = getDateForLastDayForGivenYear(toYear); return randomDateBetweenTwoDates(fromDate, toDate); } private LocalDateTime getDateForLastDayForGivenYear(int year) { return LocalDateTime.of(year, Month.JANUARY, 1, 23, 59).with(lastDayOfYear()); } private LocalDateTime getDateForFirstDayForGivenYear(int year) { return LocalDateTime.of(year, Month.JANUARY, 1, 0, 0).with(firstDayOfYear()); } public LocalDateTime randomDateBetweenNowAndFuturePeriod(Period futurePeriod) { LocalDateTime now = timeProvider.getCurrentTime(); return randomDateBetweenTwoDates(now, now.plus(futurePeriod)); } public LocalDateTime randomDateInTheFuture(int years) { return randomDateBetweenNowAndFuturePeriod(Period.ofYears(years)); } public LocalDateTime randomDateInTheFuture() { return randomDateInTheFuture(100); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/RandomGenerator.java ================================================ package com.devskiller.jfairy.producer; import java.util.Collections; import java.util.List; import java.util.Random; /** * Source of random data for all jFairy producers. *

* This class encapsulates a {@link Random} instance to ensure determinism * when a fixed seed is provided. */ public class RandomGenerator { private static final String NUMERIC_CHARS = "0123456789"; private static final String ALPHA_CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; private static final String ALPHANUMERIC_CHARS = NUMERIC_CHARS + ALPHA_CHARS; private final Random random; /** * Creates a new generator with a default seed. */ public RandomGenerator() { this.random = new Random(); } /** * Creates a new generator with a fixed seed for deterministic behavior. * * @param seed the initial seed */ public RandomGenerator(int seed) { this.random = new Random(seed); } /** * Returns the next pseudorandom boolean value. * * @return a random boolean */ public boolean nextBoolean() { return random.nextBoolean(); } /** * Randomly permutes the specified list. * * @param the type of elements in the list * @param elements the list to be shuffled * @return the shuffled list */ public List shuffle(List elements) { Collections.shuffle(elements, random); return elements; } /** * Returns a random integer between min and max (inclusive). * * @param min lower bound (inclusive) * @param max upper bound (inclusive) * @return a random integer */ public int nextInt(int min, int max) { return min == max ? min : random.nextInt(min, max + 1); } /** * Returns a random long between min and max (inclusive). * * @param min lower bound (inclusive) * @param max upper bound (inclusive) * @return a random long */ public long nextLong(long min, long max) { return min == max ? min : random.nextLong(min, max + 1); } /** * Returns a random double between min (inclusive) and max (exclusive). * * @param min lower bound (inclusive) * @param max upper bound (exclusive) * @return a random double */ public double nextDouble(double min, double max) { return min == max ? min : random.nextDouble(min, max); } /** * Generates a random numeric string. * * @param length desired length * @return string of digits */ public String randomNumeric(int length) { return randomString(length, NUMERIC_CHARS); } /** * Generates a random alphabetic string (upper-case ASCII). * * @param length desired length * @return string of letters */ public String randomAlphabetic(int length) { return randomString(length, ALPHA_CHARS); } /** * Generates a random alphanumeric string (upper-case ASCII). * * @param length desired length * @return string of digits and letters */ public String randomAlphanumeric(int length) { return randomString(length, ALPHANUMERIC_CHARS); } private String randomString(int length, String alphabet) { if (length < 0) { throw new IllegalArgumentException("length must be >= 0, got: " + length); } StringBuilder sb = new StringBuilder(length); for (int i = 0; i < length; i++) { sb.append(alphabet.charAt(random.nextInt(alphabet.length()))); } return sb.toString(); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/TimeProvider.java ================================================ /* * Copyright (c) 2013. Codearte */ package com.devskiller.jfairy.producer; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.ZoneId; public class TimeProvider { public int getCurrentYear() { return getCurrentTime().getYear(); } public LocalDateTime getCurrentTime() { return LocalDateTime.now(ZoneId.systemDefault()); } public LocalDate getCurrentDate() { return LocalDate.now(ZoneId.systemDefault()); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/VATIdentificationNumberProvider.java ================================================ /* * Copyright (c) 2013 Codearte and authors */ package com.devskiller.jfairy.producer; import java.util.function.Supplier; /** * VAT identification number (VATIN) * * @author mariuszs * @since 02.11.13. */ public interface VATIdentificationNumberProvider extends Supplier { @Override String get(); } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/company/Company.java ================================================ package com.devskiller.jfairy.producer.company; public class Company { private final String name; private final String domain; private final String email; private final String vatIdentificationNumber; public Company(String name, String domain, String email, String vatIdentificationNumber) { this.name = name; this.domain = domain; this.email = email; this.vatIdentificationNumber = vatIdentificationNumber; } public String getName() { return name; } public String getUrl() { return "http://www." + domain; } public String getEmail() { return email + "@" + domain; } public String getDomain() { return domain; } public String getVatIdentificationNumber() { return vatIdentificationNumber; } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/company/CompanyFactory.java ================================================ package com.devskiller.jfairy.producer.company; public interface CompanyFactory { CompanyProvider produceCompany(CompanyProperties.CompanyProperty... companyProperties); } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/company/CompanyFactoryImpl.java ================================================ package com.devskiller.jfairy.producer.company; import com.devskiller.jfairy.data.DataMaster; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.VATIdentificationNumberProvider; public class CompanyFactoryImpl implements CompanyFactory { private final BaseProducer baseProducer; private final DataMaster dataMaster; private final VATIdentificationNumberProvider vatIdentificationNumberProvider; public CompanyFactoryImpl(BaseProducer baseProducer, DataMaster dataMaster, VATIdentificationNumberProvider vatIdentificationNumberProvider) { this.baseProducer = baseProducer; this.dataMaster = dataMaster; this.vatIdentificationNumberProvider = vatIdentificationNumberProvider; } @Override public CompanyProvider produceCompany(CompanyProperties.CompanyProperty... companyProperties) { return new DefaultCompanyProvider(baseProducer, dataMaster, vatIdentificationNumberProvider, companyProperties); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/company/CompanyProperties.java ================================================ package com.devskiller.jfairy.producer.company; public final class CompanyProperties { private CompanyProperties() { } public abstract static class CompanyProperty { public abstract void apply(CompanyProvider company); public static CompanyProperty withName(final String name) { return new CompanyProperty() { @Override public void apply(CompanyProvider companyProvider) { companyProvider.setName(name); } }; } public static CompanyProperty withDomain(final String domain) { return new CompanyProperty() { @Override public void apply(CompanyProvider companyProvider) { companyProvider.setDomain(domain); } }; } public static CompanyProperty withEmail(final String email) { return new CompanyProperty() { @Override public void apply(CompanyProvider companyProvider) { companyProvider.setEmail(email); } }; } public static CompanyProperty withVatIdentificationNumber(final String vatIdentificationNumber) { return new CompanyProperty() { @Override public void apply(CompanyProvider companyProvider) { companyProvider.setVatIdentificationNumber(vatIdentificationNumber); } }; } } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/company/CompanyProvider.java ================================================ package com.devskiller.jfairy.producer.company; import java.util.function.Supplier; public interface CompanyProvider extends Supplier { String DOMAIN = "domains"; String COMPANY_SUFFIX = "companySuffixes"; String COMPANY_NAME = "companyNames"; String COMPANY_EMAIL = "companyEmails"; @Override Company get(); void generateName(); void generateDomain(); void generateEmail(); void generateVatIdentificationNumber(); void setName(String name); void setDomain(String domain); void setEmail(String email); void setVatIdentificationNumber(String vatIdentificationNumber); } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/company/DefaultCompanyProvider.java ================================================ package com.devskiller.jfairy.producer.company; import java.util.Locale; import com.devskiller.jfairy.data.DataMaster; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.VATIdentificationNumberProvider; import static com.devskiller.jfairy.producer.util.StringUtils.deleteWhitespace; import static com.devskiller.jfairy.producer.util.StringUtils.escapeNonAscii; import static com.devskiller.jfairy.producer.util.StringUtils.latinize; import static com.devskiller.jfairy.producer.util.StringUtils.strip; public class DefaultCompanyProvider implements CompanyProvider { protected String name; protected String domain; protected String email; protected String vatIdentificationNumber; protected final BaseProducer baseProducer; protected final DataMaster dataMaster; protected final VATIdentificationNumberProvider vatIdentificationNumberProvider; public DefaultCompanyProvider(BaseProducer baseProducer, DataMaster dataMaster, VATIdentificationNumberProvider vatIdentificationNumberProvider, CompanyProperties.CompanyProperty... companyProperties) { this.baseProducer = baseProducer; this.dataMaster = dataMaster; this.vatIdentificationNumberProvider = vatIdentificationNumberProvider; for (CompanyProperties.CompanyProperty companyProperty : companyProperties) { companyProperty.apply(this); } } @Override public Company get() { generateName(); generateDomain(); generateEmail(); generateVatIdentificationNumber(); return new Company(name, domain, email, vatIdentificationNumber); } @Override public void generateName() { if (name != null) { return; } name = dataMaster.getRandomValue(COMPANY_NAME); if (baseProducer.trueOrFalse()) { name += " " + dataMaster.getRandomValue(COMPANY_SUFFIX); } } /** * In case of the illegal hostname characters in company name * and truncate it if it is too long (length > 10) after escape *

* It is compatible with other non-latin language and will not change the original result for latin language. *

* P.S. Actually the best way for Chinese here is to use phonetic writing (so as Japanese or Korean) */ @Override public void generateDomain() { if (domain != null) { return; } String host = latinize(strip(deleteWhitespace(name.toLowerCase(Locale.ROOT)), ".").replace("/", "")); int len1 = host.length(); host = escapeNonAscii(host).replaceAll("\\\\u", ""); int len2 = host.length(); if (len2 > len1 && len2 > 10) { host = host.substring(0, 10); } domain = host + "." + dataMaster.getRandomValue(DOMAIN); } @Override public void generateEmail() { if (email != null) { return; } email = dataMaster.getRandomValue(COMPANY_EMAIL); } @Override public void generateVatIdentificationNumber() { if (vatIdentificationNumber != null) { return; } vatIdentificationNumber = vatIdentificationNumberProvider.get(); } @Override public void setName(String name) { this.name = name; } @Override public void setDomain(String domain) { this.domain = domain; } @Override public void setEmail(String email) { this.email = email; } @Override public void setVatIdentificationNumber(String vatIdentificationNumber) { this.vatIdentificationNumber = vatIdentificationNumber; } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/company/locale/br/BrVATIdentificationNumberProvider.java ================================================ package com.devskiller.jfairy.producer.company.locale.br; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.VATIdentificationNumberProvider; /** * Brazilian CNPJ (Cadastro Nacional da Pessoa Jurídica) generator. */ public class BrVATIdentificationNumberProvider implements VATIdentificationNumberProvider { private final BaseProducer baseProducer; public BrVATIdentificationNumberProvider(BaseProducer baseProducer) { this.baseProducer = baseProducer; } @Override public String get() { int[] digits = new int[12]; for (int i = 0; i < 8; i++) { digits[i] = baseProducer.randomBetween(0, 9); } digits[8] = 0; digits[9] = 0; digits[10] = 0; digits[11] = 1; int d1 = calculateCheckDigit(digits, 12); int d2 = calculateCheckDigit(digits, d1, 13); return String.format("%d%d.%d%d%d.%d%d%d/%d%d%d%d-%d%d", digits[0], digits[1], digits[2], digits[3], digits[4], digits[5], digits[6], digits[7], digits[8], digits[9], digits[10], digits[11], d1, d2); } private static final int[] WEIGHTS = {6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2}; private int calculateCheckDigit(int[] digits, int length) { int sum = 0; for (int i = 0; i < length; i++) { sum += digits[i] * WEIGHTS[WEIGHTS.length - length + i]; } int remainder = 11 - (sum % 11); return remainder >= 10 ? 0 : remainder; } private int calculateCheckDigit(int[] digits, int previousDigit, int length) { int sum = 0; for (int i = 0; i < digits.length; i++) { sum += digits[i] * WEIGHTS[WEIGHTS.length - length + i]; } sum += previousDigit * WEIGHTS[WEIGHTS.length - 1]; int remainder = 11 - (sum % 11); return remainder >= 10 ? 0 : remainder; } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/company/locale/de/DeVATIdentificationNumberProvider.java ================================================ package com.devskiller.jfairy.producer.company.locale.de; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.VATIdentificationNumberProvider; /** * German VAT identification number (Umsatzsteuer-Identifikationsnummer or USt-IdNr.) *

* VAT identification number * * @author Roland Weisleder */ public class DeVATIdentificationNumberProvider implements VATIdentificationNumberProvider { private static final String VALID_NUMBER_PATTERN = "^[0-9]{9}$"; private final BaseProducer baseProducer; public DeVATIdentificationNumberProvider(BaseProducer baseProducer) { this.baseProducer = baseProducer; } @Override public String get() { return baseProducer.randomNumeric(9); } public boolean isValid(String vatIdentificationNumber) { return vatIdentificationNumber.matches(VALID_NUMBER_PATTERN); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/company/locale/en/EnVATIdentificationNumberProvider.java ================================================ package com.devskiller.jfairy.producer.company.locale.en; import java.util.Set; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.VATIdentificationNumberProvider; import com.devskiller.jfairy.producer.util.StringUtils; /** * American VAT Identification Number (known as Employer Identification Number or EIN in the United States) *

* Employer Identification Number * * @author Olga Maciaszek-Sharma * @since 21.03.15 */ public class EnVATIdentificationNumberProvider implements VATIdentificationNumberProvider { private static final int EIN_LENGTH = 10; private static final int HYPHEN_INDEX = 2; private static final int SERIAL_NUMBER_LENGTH = 7; private static final int SERIAL_NUMBER_INDEX = 3; private static final int AREA_NUMBER_LENGTH = 2; private final BaseProducer baseProducer; private static final Set EXCLUDED_NUMBERS = Set.of(7, 8, 9, 17, 18, 19, 28, 29, 41, 47, 49, 69, 70, 79, 89, 96, 97); public EnVATIdentificationNumberProvider(BaseProducer baseProducer) { this.baseProducer = baseProducer; } @Override public String get() { char[] ein = new char[EIN_LENGTH]; fillHyphen(ein); fillAreaNumber(ein); fillSerialNumber(ein); return String.valueOf(ein); } private void fillSerialNumber(char[] ein) { String number = String.valueOf(baseProducer.randomBetween(1, 9999)); char[] digits = StringUtils.leftPad(number, SERIAL_NUMBER_LENGTH, "0").toCharArray(); System.arraycopy(digits, 0, ein, SERIAL_NUMBER_INDEX, digits.length); } private void fillAreaNumber(char[] ein) { int number; do { number = baseProducer.randomBetween(0, 99); } while (EXCLUDED_NUMBERS.contains(number)); char[] digits = StringUtils.leftPad(Integer.toString(number), AREA_NUMBER_LENGTH, "0").toCharArray(); System.arraycopy(digits, 0, ein, 0, digits.length); } private void fillHyphen(char[] ein) { ein[HYPHEN_INDEX] = '-'; } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/company/locale/es/EsVATIdentificationNumberProvider.java ================================================ package com.devskiller.jfairy.producer.company.locale.es; import java.util.Locale; import java.util.regex.Pattern; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.VATIdentificationNumberProvider; import com.devskiller.jfairy.producer.person.Country; /** * Spanish VAT Identification Number (known as Número de Identificación Fiscal (for freelancers) or Código de Identificación Fiscal (for companies) in Spain) *

* VAT identification number */ public class EsVATIdentificationNumberProvider implements VATIdentificationNumberProvider { private static final String REGEX_CIF = "^[A-Z][0-9]{2}[0-9]{5}([KPQSABEH]|[0-9]|[A-Z])$"; private final BaseProducer baseProducer; private final Pattern regexCif; private final Locale primaryLocale = Country.Spain.getPrimaryLocale(); public EsVATIdentificationNumberProvider(BaseProducer baseProducer) { this.baseProducer = baseProducer; this.regexCif = Pattern.compile(REGEX_CIF); } @Override public String get() { return String.format("%s%s%s", baseProducer.randomAlphabetic(1).toUpperCase(primaryLocale), baseProducer.randomNumeric(7), baseProducer.randomAlphanumeric(1).toUpperCase(primaryLocale)); } public boolean isValid(String cif) { return this.regexCif.matcher(cif).matches(); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/company/locale/fr/FrVATIdentificationNumberProvider.java ================================================ package com.devskiller.jfairy.producer.company.locale.fr; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.VATIdentificationNumberProvider; import com.devskiller.jfairy.producer.person.Country; /** * Provider for French VAT identification numbers (TVA intracommunautaire). *

* Format: FR + 2 digits (key) + 9 digits (SIREN).
* The "SIREN" satisfies the Luhn algorithm. * * @author Markus Spann * @since 0.8.3 */ public class FrVATIdentificationNumberProvider implements VATIdentificationNumberProvider { private final BaseProducer baseProducer; public FrVATIdentificationNumberProvider(BaseProducer baseProducer) { this.baseProducer = baseProducer; } @Override public String get() { String siren = generateLuhnCompliantSiren(); int key = (12 + 3 * (Integer.parseInt(siren) % 97)) % 97; return Country.France.getCode() + String.format("%02d%s", key, siren); } /** * Generates a 9-digit SIREN number that satisfies the Luhn algorithm. * * @return a valid 9-digit SIREN string */ private String generateLuhnCompliantSiren() { int[] digits = new int[9]; int sum = 0; // generate first 8 digits in a single random call String base = baseProducer.randomNumeric(8); for (int i = 0; i < 8; i++) { digits[i] = Character.digit(base.charAt(i), 10); } // calculate Luhn sum for the first 8 digits // for a 9-digit number, doubling every second digit from the right // means doubling digits at indices 7, 5, 3, 1 (0-based from left). for (int i = 0; i < 8; i++) { int digit = digits[i]; if (i % 2 != 0) { digit *= 2; if (digit > 9) { digit -= 9; } } sum += digit; } // calculate and set the check digit (9th digit) int checkDigit = (10 - (sum % 10)) % 10; digits[8] = checkDigit; // build the resulting string StringBuilder sb = new StringBuilder(9); for (int d : digits) { sb.append(d); } return sb.toString(); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/company/locale/ka/KaVATIdentificationNumberProvider.java ================================================ package com.devskiller.jfairy.producer.company.locale.ka; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.VATIdentificationNumberProvider; public class KaVATIdentificationNumberProvider implements VATIdentificationNumberProvider { private final BaseProducer baseProducer; public KaVATIdentificationNumberProvider(BaseProducer baseProducer) { this.baseProducer = baseProducer; } @Override public String get() { return baseProducer.randomElement("2", "4") + baseProducer.numerify("########"); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/company/locale/pl/PlVATIdentificationNumberProvider.java ================================================ package com.devskiller.jfairy.producer.company.locale.pl; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.VATIdentificationNumberProvider; import com.devskiller.jfairy.producer.util.StringUtils; /** * Polish VAT Identification Number (known as NIP Numer Identyfikacji Podatkowej in Poland) *

* VAT identification number */ public class PlVATIdentificationNumberProvider implements VATIdentificationNumberProvider { private static final Logger LOG = LoggerFactory.getLogger(PlVATIdentificationNumberProvider.class); // ex 1234563218 private static final int NIP_LENGTH = 10; // ex 123-456-32-18 private static final int FORMATTED_NIP_LENGTH = 13; private static final int[] CODES = { 101, 102, 103, 104, 105, 106, 107, 108, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 121, 122, 123, 124, 125, 126, 127, 128, 129, 131, 132, 133, 134, 135, 136, 137, 138, 139, 141, 142, 143, 144, 145, 146, 147, 148, 149, 151, 152, 153, 154, 155, 156, 157, 158, 159, 161, 162, 163, 164, 165, 166, 167, 168, 169, 171, 172, 173, 174, 175, 176, 177, 178, 179, 181, 182, 183, 184, 185, 186, 187, 188, 189, 191, 192, 193, 194, 195, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 207, 208, 209, 211, 212, 213, 214, 215, 216, 217, 218, 219, 221, 222, 223, 224, 225, 226, 227, 228, 229, 231, 232, 233, 234, 235, 236, 237, 238, 239, 241, 242, 243, 244, 245, 246, 247, 248, 249, 251, 252, 253, 254, 255, 256, 257, 258, 259, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 279, 281, 282, 283, 284, 285, 286, 287, 288, 289, 291, 292, 293, 294, 295, 296, 297, 298, 301, 302, 311, 312, 313, 314, 315, 316, 317, 318, 319, 321, 322, 323, 324, 325, 326, 327, 328, 329, 331, 332, 333, 334, 335, 336, 337, 338, 339, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 353, 354, 355, 356, 357, 358, 359, 361, 362, 363, 364, 365, 366, 367, 368, 369, 371, 372, 373, 374, 375, 376, 377, 378, 379, 381, 382, 383, 384, 385, 386, 387, 388, 389, 391, 392, 393, 394, 395, 396, 397, 398, 399, 411, 412, 413, 414, 415, 416, 417, 418, 419, 421, 422, 423, 424, 425, 426, 427, 428, 429, 431, 432, 433, 434, 435, 436, 437, 438, 439, 441, 442, 443, 444, 445, 446, 447, 448, 449, 451, 452, 453, 454, 455, 456, 457, 458, 459, 461, 462, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 476, 477, 478, 479, 481, 482, 483, 484, 485, 486, 487, 488, 489, 491, 492, 493, 494, 495, 496, 497, 498, 499, 501, 502, 503, 504, 505, 506, 507, 508, 509, 511, 512, 513, 514, 516, 519, 521, 522, 523, 524, 525, 526, 527, 528, 529, 531, 532, 533, 534, 535, 536, 537, 538, 539, 541, 542, 543, 544, 545, 546, 547, 548, 549, 551, 552, 553, 554, 555, 556, 557, 558, 559, 561, 562, 563, 564, 565, 566, 567, 568, 569, 571, 572, 573, 574, 575, 576, 577, 578, 579, 581, 582, 583, 584, 585, 586, 587, 588, 589, 591, 592, 593, 594, 595, 596, 597, 598, 599, 601, 602, 603, 604, 605, 606, 607, 608, 609, 611, 612, 613, 614, 615, 616, 617, 618, 619, 621, 622, 623, 624, 625, 626, 627, 628, 629, 631, 632, 633, 634, 635, 636, 637, 638, 639, 641, 642, 643, 644, 645, 646, 647, 648, 649, 651, 652, 653, 654, 655, 656, 657, 658, 659, 661, 662, 663, 664, 665, 666, 667, 668, 669, 671, 672, 673, 674, 675, 676, 677, 678, 679, 681, 682, 683, 684, 685, 686, 687, 688, 689, 691, 692, 693, 694, 695, 696, 697, 698, 699, 701, 711, 712, 713, 714, 715, 716, 717, 718, 719, 721, 722, 723, 724, 725, 726, 727, 728, 729, 731, 732, 733, 734, 735, 736, 737, 738, 739, 741, 742, 743, 744, 745, 746, 747, 748, 749, 751, 752, 753, 754, 755, 756, 757, 758, 759, 761, 762, 763, 764, 765, 766, 767, 768, 769, 771, 772, 773, 774, 775, 776, 777, 778, 779, 781, 782, 783, 784, 785, 786, 787, 788, 789, 791, 792, 793, 794, 795, 796, 797, 798, 799, 811, 812, 813, 814, 815, 816, 817, 818, 819, 821, 822, 823, 824, 825, 826, 827, 828, 829, 831, 832, 833, 834, 835, 836, 837, 838, 839, 841, 842, 843, 844, 845, 846, 847, 848, 849, 851, 852, 853, 854, 855, 856, 857, 858, 859, 861, 862, 863, 864, 865, 866, 867, 868, 869, 871, 872, 873, 874, 875, 876, 877, 878, 879, 881, 882, 883, 884, 885, 886, 887, 888, 889, 891, 892, 893, 894, 895, 896, 897, 898, 899, 911, 912, 913, 914, 915, 916, 917, 918, 919, 921, 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937, 938, 939, 941, 942, 943, 944, 945, 946, 947, 948, 949, 951, 952, 953, 954, 955, 956, 957, 958, 959, 961, 962, 963, 964, 965, 966, 967, 968, 969, 971, 972, 973, 974, 975, 976, 977, 978, 979, 981, 982, 983, 984, 985, 986, 987, 988, 989, 991, 992, 993, 994, 995, 996, 997, 998 }; private static final int[] WEIGHTS = {6, 5, 7, 2, 3, 4, 5, 6, 7}; // 123______8 private static final int SERIAL_NUMBER_SIZE = 6; private static final int MAX_SERIAL_NUMBER = 999999; // 1234563_18 private static final int CHECKSUM_CHAR_INDEX = 9; static final int MODULO11 = 11; public static final int TEN = 10; private final BaseProducer baseProducer; public PlVATIdentificationNumberProvider(BaseProducer baseProducer) { this.baseProducer = baseProducer; } @Override public String get() { int checkSum; String number; do { number = generateNumber(); checkSum = calculateChecksum(number); // numbers with checkSum == 10 are invalid } while (checkSum == TEN); return number + checkSum; } private String generateNumber() { String prefix = String.valueOf(CODES[baseProducer.randomInt(CODES.length - 1)]); String number = StringUtils.leftPad(String.valueOf(baseProducer.randomInt(MAX_SERIAL_NUMBER)), SERIAL_NUMBER_SIZE, "0"); return prefix + number; } // TODO: Move to separate module public static boolean isValid(String nip) { String normalizedNip = normalizeNip(nip); if (normalizedNip.length() != NIP_LENGTH) { return false; } try { int checksum = calculateChecksum(normalizedNip); return checksum == normalizedNip.charAt(CHECKSUM_CHAR_INDEX) - '0'; } catch (NumberFormatException ex) { LOG.debug("Invalid nip {}", nip, ex); return false; } } private static String normalizeNip(String value) { if (value.length() == FORMATTED_NIP_LENGTH) { return value.replaceAll("-", ""); } return value; } private static int calculateChecksum(String nip) { char[] chars = nip.toCharArray(); int sum = 0; for (int i = 0; i < WEIGHTS.length; i++) { sum += (chars[i] - '0') * WEIGHTS[i]; } return sum % MODULO11; } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/company/locale/sk/SkVATIdentificationNumberProvider.java ================================================ package com.devskiller.jfairy.producer.company.locale.sk; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.VATIdentificationNumberProvider; import com.devskiller.jfairy.producer.util.StringUtils; /** * Slovak VAT Identification Number (known as NIP) *

* VAT identification number */ public class SkVATIdentificationNumberProvider implements VATIdentificationNumberProvider { private static final Logger LOG = LoggerFactory.getLogger(SkVATIdentificationNumberProvider.class); // ex 1234563218 private static final int NIP_LENGTH = 10; // ex 123-456-32-18 private static final int FORMATTED_NIP_LENGTH = 13; private static final int[] CODES = { 101, 102, 103, 104, 105, 106, 107, 108, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 121, 122, 123, 124, 125, 126, 127, 128, 129, 131, 132, 133, 134, 135, 136, 137, 138, 139, 141, 142, 143, 144, 145, 146, 147, 148, 149, 151, 152, 153, 154, 155, 156, 157, 158, 159, 161, 162, 163, 164, 165, 166, 167, 168, 169, 171, 172, 173, 174, 175, 176, 177, 178, 179, 181, 182, 183, 184, 185, 186, 187, 188, 189, 191, 192, 193, 194, 195, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 207, 208, 209, 211, 212, 213, 214, 215, 216, 217, 218, 219, 221, 222, 223, 224, 225, 226, 227, 228, 229, 231, 232, 233, 234, 235, 236, 237, 238, 239, 241, 242, 243, 244, 245, 246, 247, 248, 249, 251, 252, 253, 254, 255, 256, 257, 258, 259, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 279, 281, 282, 283, 284, 285, 286, 287, 288, 289, 291, 292, 293, 294, 295, 296, 297, 298, 301, 302, 311, 312, 313, 314, 315, 316, 317, 318, 319, 321, 322, 323, 324, 325, 326, 327, 328, 329, 331, 332, 333, 334, 335, 336, 337, 338, 339, 341, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 353, 354, 355, 356, 357, 358, 359, 361, 362, 363, 364, 365, 366, 367, 368, 369, 371, 372, 373, 374, 375, 376, 377, 378, 379, 381, 382, 383, 384, 385, 386, 387, 388, 389, 391, 392, 393, 394, 395, 396, 397, 398, 399, 411, 412, 413, 414, 415, 416, 417, 418, 419, 421, 422, 423, 424, 425, 426, 427, 428, 429, 431, 432, 433, 434, 435, 436, 437, 438, 439, 441, 442, 443, 444, 445, 446, 447, 448, 449, 451, 452, 453, 454, 455, 456, 457, 458, 459, 461, 462, 463, 464, 465, 466, 467, 468, 469, 471, 472, 473, 474, 475, 476, 477, 478, 479, 481, 482, 483, 484, 485, 486, 487, 488, 489, 491, 492, 493, 494, 495, 496, 497, 498, 499, 501, 502, 503, 504, 505, 506, 507, 508, 509, 511, 512, 513, 514, 516, 519, 521, 522, 523, 524, 525, 526, 527, 528, 529, 531, 532, 533, 534, 535, 536, 537, 538, 539, 541, 542, 543, 544, 545, 546, 547, 548, 549, 551, 552, 553, 554, 555, 556, 557, 558, 559, 561, 562, 563, 564, 565, 566, 567, 568, 569, 571, 572, 573, 574, 575, 576, 577, 578, 579, 581, 582, 583, 584, 585, 586, 587, 588, 589, 591, 592, 593, 594, 595, 596, 597, 598, 599, 601, 602, 603, 604, 605, 606, 607, 608, 609, 611, 612, 613, 614, 615, 616, 617, 618, 619, 621, 622, 623, 624, 625, 626, 627, 628, 629, 631, 632, 633, 634, 635, 636, 637, 638, 639, 641, 642, 643, 644, 645, 646, 647, 648, 649, 651, 652, 653, 654, 655, 656, 657, 658, 659, 661, 662, 663, 664, 665, 666, 667, 668, 669, 671, 672, 673, 674, 675, 676, 677, 678, 679, 681, 682, 683, 684, 685, 686, 687, 688, 689, 691, 692, 693, 694, 695, 696, 697, 698, 699, 701, 711, 712, 713, 714, 715, 716, 717, 718, 719, 721, 722, 723, 724, 725, 726, 727, 728, 729, 731, 732, 733, 734, 735, 736, 737, 738, 739, 741, 742, 743, 744, 745, 746, 747, 748, 749, 751, 752, 753, 754, 755, 756, 757, 758, 759, 761, 762, 763, 764, 765, 766, 767, 768, 769, 771, 772, 773, 774, 775, 776, 777, 778, 779, 781, 782, 783, 784, 785, 786, 787, 788, 789, 791, 792, 793, 794, 795, 796, 797, 798, 799, 811, 812, 813, 814, 815, 816, 817, 818, 819, 821, 822, 823, 824, 825, 826, 827, 828, 829, 831, 832, 833, 834, 835, 836, 837, 838, 839, 841, 842, 843, 844, 845, 846, 847, 848, 849, 851, 852, 853, 854, 855, 856, 857, 858, 859, 861, 862, 863, 864, 865, 866, 867, 868, 869, 871, 872, 873, 874, 875, 876, 877, 878, 879, 881, 882, 883, 884, 885, 886, 887, 888, 889, 891, 892, 893, 894, 895, 896, 897, 898, 899, 911, 912, 913, 914, 915, 916, 917, 918, 919, 921, 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937, 938, 939, 941, 942, 943, 944, 945, 946, 947, 948, 949, 951, 952, 953, 954, 955, 956, 957, 958, 959, 961, 962, 963, 964, 965, 966, 967, 968, 969, 971, 972, 973, 974, 975, 976, 977, 978, 979, 981, 982, 983, 984, 985, 986, 987, 988, 989, 991, 992, 993, 994, 995, 996, 997, 998 }; private static final int[] WEIGHTS = {6, 5, 7, 2, 3, 4, 5, 6, 7}; // 123______8 private static final int SERIAL_NUMBER_SIZE = 6; private static final int MAX_SERIAL_NUMBER = 999999; // 1234563_18 private static final int CHECKSUM_CHAR_INDEX = 9; static final int MODULO11 = 11; public static final int TEN = 10; private final BaseProducer baseProducer; public SkVATIdentificationNumberProvider(BaseProducer baseProducer) { this.baseProducer = baseProducer; } @Override public String get() { int checkSum; String number; do { number = generateNumber(); checkSum = calculateChecksum(number); // numbers with checkSum == 10 are invalid } while (checkSum == TEN); return number + checkSum; } private String generateNumber() { String prefix = String.valueOf(CODES[baseProducer.randomInt(CODES.length - 1)]); String number = StringUtils.leftPad(String.valueOf(baseProducer.randomInt(MAX_SERIAL_NUMBER)), SERIAL_NUMBER_SIZE, "0"); return prefix + number; } public static boolean isValid(String nip) { String normalizedNip = normalizeNip(nip); if (normalizedNip.length() != NIP_LENGTH) { return false; } try { int checksum = calculateChecksum(normalizedNip); return checksum == normalizedNip.charAt(CHECKSUM_CHAR_INDEX) - '0'; } catch (NumberFormatException ex) { LOG.debug("Invalid nip {}", nip, ex); return false; } } private static String normalizeNip(String value) { if (value.length() == FORMATTED_NIP_LENGTH) { return value.replaceAll("-", ""); } return value; } private static int calculateChecksum(String nip) { char[] chars = nip.toCharArray(); int sum = 0; for (int i = 0; i < WEIGHTS.length; i++) { sum += (chars[i] - '0') * WEIGHTS[i]; } return sum % MODULO11; } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/company/locale/sv/SvVATIdentificationNumberProvider.java ================================================ package com.devskiller.jfairy.producer.company.locale.sv; import java.time.LocalDate; import java.time.ZoneId; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.DateProducer; import com.devskiller.jfairy.producer.VATIdentificationNumberProvider; import com.devskiller.jfairy.producer.person.NationalIdentificationNumberFactory; import com.devskiller.jfairy.producer.person.NationalIdentificationNumberProvider; import com.devskiller.jfairy.producer.util.StringUtils; import static com.devskiller.jfairy.producer.person.NationalIdentificationNumberProperties.dateOfBirth; import static com.devskiller.jfairy.producer.person.locale.sv.SvNationalIdentificationNumberProvider.calculateChecksum; /** * Swedish VAT Identification Number (known as Momsnummer in Sweden) *

* VAT identification number */ public class SvVATIdentificationNumberProvider implements VATIdentificationNumberProvider { private static final int VAT_IDENTIFICATION_NUMBER_LENGTH = 14; private static final int SOLE_TRADER_UPPER_AGE_LIMIT = 16; private static final int SOLE_TRADER_LOWER_AGE_LIMIT = 100; private static final String SE = "SE"; private final BaseProducer baseProducer; private final DateProducer dateProducer; private final NationalIdentificationNumberFactory nationalIdentificationNumberFactory; public SvVATIdentificationNumberProvider(BaseProducer baseProducer, DateProducer dateProducer, NationalIdentificationNumberFactory nationalIdentificationNumberFactory) { this.baseProducer = baseProducer; this.dateProducer = dateProducer; this.nationalIdentificationNumberFactory = nationalIdentificationNumberFactory; } @Override public String get() { boolean isSoleTrader = baseProducer.trueOrFalse(); // Approximately 50% probability of a company to be of type sole trader (enskild firma) if (isSoleTrader) { return generateVatNumberForSoleTrader(); } int randomGroupNumber = baseProducer.randomElement(GroupNumber.class).getValue(); String randomNumericBetween20And99 = StringUtils.leftPad(String.valueOf(baseProducer.randomBetween(20, 99)), 2, "0"); String organizationNumberWithoutChecksum = randomGroupNumber + baseProducer.randomNumeric(1) + randomNumericBetween20And99 + baseProducer.randomNumeric(5); String organizationNumber = organizationNumberWithoutChecksum + calculateChecksum(organizationNumberWithoutChecksum); return SE + organizationNumber + "01"; } private String generateVatNumberForSoleTrader() { LocalDate now = LocalDate.now(ZoneId.systemDefault()); LocalDate lowerAgeLimit = now.minusYears(SOLE_TRADER_LOWER_AGE_LIMIT); LocalDate upperAgeLimit = now.minusYears(SOLE_TRADER_UPPER_AGE_LIMIT); LocalDate dateOfBirth = dateProducer.randomDateBetweenTwoDates(lowerAgeLimit, upperAgeLimit); NationalIdentificationNumberProvider nationalIdentificationNumberProvider = nationalIdentificationNumberFactory.produceNationalIdentificationNumberProvider( dateOfBirth(dateOfBirth)); String personalIdentityNumber = nationalIdentificationNumberProvider.get().getValue(); return SE + personalIdentityNumber.replace("-", "") + "01"; } public static boolean isValid(String vatIdentificationNumber) { int length = vatIdentificationNumber.length(); if (length != VAT_IDENTIFICATION_NUMBER_LENGTH) { return false; } int checksum = Integer.parseInt(Character.toString(vatIdentificationNumber.charAt(length - 3))); int checkDigit = calculateChecksum(vatIdentificationNumber.substring(2, vatIdentificationNumber.length() - 2)); return checkDigit == checksum; } /** * Group number used to determine the first numer in a swedish organization number * Enum is translated from swedish wiki ... */ private enum GroupNumber { ESTATE(1), // Dödsbon STATE_OR_COUNTY_OR_MUNICIPALITY_OR_PARISH(2), // Stat, landsting, kommuner, församlingar FOREIGN_COMPANY(3), // Utländska företag som bedriver näringsverksamhet eller äger fastigheter i Sverige LIMITED_COMPANY(5), // Aktiebolag PARTNERSHIP(6), // Enkelt bolag ECONOMIC_ASSOCIATION(7), // Ekonomiska föreningar NON_PROFIT_ASSOCIATION_OR_FOUNDATION(8), // Ideella föreningar och stiftelser TRADING_COMPANY_OR_LIMITED_COMPANY_OR_PARTNERSHIP(9); // Handelsbolag, kommanditbolag och enkla bolag private final int value; GroupNumber(int value) { this.value = value; } int getValue() { return value; } } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/company/locale/tr/TrVATIdentificationNumberProvider.java ================================================ package com.devskiller.jfairy.producer.company.locale.tr; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.VATIdentificationNumberProvider; /** * Turkish VKN (Vergi Kimlik Numarası) generator. * 10 digits. * Last digit is a check digit. */ public class TrVATIdentificationNumberProvider implements VATIdentificationNumberProvider { private final BaseProducer baseProducer; public TrVATIdentificationNumberProvider(BaseProducer baseProducer) { this.baseProducer = baseProducer; } @Override public String get() { int[] digits = new int[10]; for (int i = 0; i < 9; i++) { digits[i] = baseProducer.randomBetween(0, 9); } int sum = 0; for (int i = 0; i < 9; i++) { int p = (digits[i] + 10 - (i + 1)) % 10; if (p == 9) { sum += 9; } else { int q = (int) (p * Math.pow(2, 9 - i)) % 9; sum += q; } } int c1 = (10 - (sum % 10)) % 10; digits[9] = c1; StringBuilder sb = new StringBuilder(); for (int digit : digits) { sb.append(digit); } return sb.toString(); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/company/locale/zh/ZhVATIdentificationNumberProvider.java ================================================ package com.devskiller.jfairy.producer.company.locale.zh; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.RandomGenerator; import com.devskiller.jfairy.producer.VATIdentificationNumberProvider; import com.devskiller.jfairy.producer.util.ZhFairyUtil; /** * com.devskiller.jfairy.producer.company.locale.zh.ZhVATIdentificationNumberProvider *

* 6 digit for area location, 9 char (0-9A-Z) for organization code (2 char for business type, 2 char for industry type, 5 char for order number), total 15 digit * * @author lhfcws * @since 2017/3/1 */ public class ZhVATIdentificationNumberProvider implements VATIdentificationNumberProvider { private static final BaseProducer BASE_PRODUCER = new BaseProducer(new RandomGenerator()); @Override public String get() { StringBuilder vatBuilder = new StringBuilder(); vatBuilder.append(BASE_PRODUCER.randomElement(ZhFairyUtil.PROV_LIST)); vatBuilder.append(ZhFairyUtil.getRandomNumStr(BASE_PRODUCER, ZhFairyUtil.CITY_MAX, 2)); vatBuilder.append(ZhFairyUtil.getRandomNumStr(BASE_PRODUCER, ZhFairyUtil.DISTRICT_MAX, 2)); vatBuilder.append(getChars(9)); return vatBuilder.toString(); } private char getChar() { int rndNum = BASE_PRODUCER.randomBetween(0, 35); if (rndNum < 10) { return (char) (49 + rndNum); } else { return (char) (65 + rndNum - 10); } } private String getChars(int paddingSize) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < paddingSize; i++) { sb.append(getChar()); } return sb.toString(); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/net/IPNumberProducer.java ================================================ package com.devskiller.jfairy.producer.net; import com.devskiller.jfairy.producer.BaseProducer; public class IPNumberProducer { private static final int MAX = 0xFF; private final BaseProducer baseProducer; public IPNumberProducer(BaseProducer baseProducer) { this.baseProducer = baseProducer; } public String generate() { return String.format("%s.%s.%s.%s", ipNumberPart(), ipNumberPart(), ipNumberPart(), ipNumberPart()); } private int ipNumberPart() { return baseProducer.randomInt(MAX); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/net/NetworkProducer.java ================================================ package com.devskiller.jfairy.producer.net; /** * TODO: Add emails */ public class NetworkProducer { private final IPNumberProducer ipNumberProducer; public NetworkProducer(IPNumberProducer ipNumberProducer) { this.ipNumberProducer = ipNumberProducer; } public String ipAddress() { return ipNumberProducer.generate(); } /** * Generates a faked URL based on the current IP address. *

* The domain name is derived by mapping the digits of the IP address * to characters starting from 'a'. * * @param isHttps specifies whether to use the {@code https} or {@code http} protocol * @return a formatted URL string, e.g., "https://abcdefghij.com" */ public String url(boolean isHttps) { String mergedIp = ipAddress().replace(".", ""); StringBuilder domainBuilder = new StringBuilder(mergedIp.length()); for (int i = 0; i < mergedIp.length(); i++) { char digitChar = mergedIp.charAt(i); // Character.digit is safer and more predictable than getNumericValue int numericValue = Character.digit(digitChar, 10); if (numericValue != -1) { domainBuilder.append((char) (numericValue + 'a')); } } String protocol = "http"; if (isHttps) { protocol += "s"; } return protocol + "://" + domainBuilder + ".com"; } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/payment/CreditCard.java ================================================ package com.devskiller.jfairy.producer.payment; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; /** * Representation of a faked credit card with its essential security and expiry data. *

* This class holds information about the card vendor, number, CVV code, * and the expiration date. It is designed as an immutable object. * * @author jkubrynski@gmail.com * @since 2013-11-17 */ public class CreditCard { private final String cardVendor; private final String cardNumber; private final String cvv; private final LocalDateTime expiryDate; public CreditCard(String cardVendor, String cardNumber, String cvv, LocalDateTime expiryDate) { this.cardVendor = cardVendor; this.cardNumber = cardNumber; this.cvv = cvv; this.expiryDate = expiryDate; } public String getVendor() { return cardVendor; } public String getCardNumber() { return cardNumber; } public String getCvv() { return cvv; } public LocalDateTime getExpiryDate() { return expiryDate; } public String getExpiryDateAsString() { return String.format("%02d/%s", expiryDate.getMonthValue(), DateTimeFormatter.ofPattern("uu").format(expiryDate)); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/payment/CreditCardProvider.java ================================================ package com.devskiller.jfairy.producer.payment; import java.time.LocalDateTime; import java.time.Period; import java.util.function.Supplier; import com.devskiller.jfairy.data.DataMaster; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.DateProducer; public class CreditCardProvider implements Supplier { private static final Period DEFAULT_VALIDITY = Period.ofMonths(36); private static final String DATA_KEY = "creditCardPrefixes"; private static final String CARD_VENDOR = "Visa"; private final DataMaster dataMaster; private final BaseProducer baseProducer; private final DateProducer dateProducer; public CreditCardProvider(DataMaster dataMaster, BaseProducer baseProducer, DateProducer dateProducer) { this.dataMaster = dataMaster; this.baseProducer = baseProducer; this.dateProducer = dateProducer; } @Override public CreditCard get() { String randomNumber = generateNumber(); LocalDateTime expiryDate = dateProducer.randomDateBetweenNowAndFuturePeriod(DEFAULT_VALIDITY); return new CreditCard(CARD_VENDOR, randomNumber, baseProducer.numerify("###"), expiryDate); } private String generateNumber() { Integer prefix = dataMaster.getValuesOfType(DATA_KEY, CARD_VENDOR, Integer.class); String stringPrefix = String.valueOf(prefix); StringBuilder builder = new StringBuilder(stringPrefix); builder.append("#".repeat(Math.max(0, 15 - stringPrefix.length()))); return completeNumber(baseProducer.numerify(builder.toString())); } /** * Completes a credit card number by calculating and appending a checksum digit. *

* Uses a variation of the Luhn algorithm where every second digit is doubled. * If doubling results in a number greater than 9, the digits are summed. * * @param creditCardNumber the partial credit card number to complete * @return the full credit card number including the checksum digit * @throws IllegalArgumentException if the input contains non-digit characters */ private String completeNumber(String creditCardNumber) { int sum = 0; for (int i = 0; i < creditCardNumber.length(); i++) { int n = Character.digit(creditCardNumber.charAt(i), 10); if (n == -1) { throw new IllegalArgumentException("Invalid character in credit card number"); } if (i % 2 == 0) { n *= 2; if (n > 9) { // For n > 9 (e.g., 10-18), digit sum is equivalent to n - 9 n -= 9; } } sum += n; } int checksum = (sum * 9) % 10; return creditCardNumber + checksum; } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/payment/DefaultIBANProvider.java ================================================ package com.devskiller.jfairy.producer.payment; import java.util.List; import java.util.Optional; import de.speedbanking.iban.Iban; import de.speedbanking.iban.IbanRegistry; import de.speedbanking.iban.RandomIban; import org.jspecify.annotations.Nullable; import com.devskiller.jfairy.data.DataMaster; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.person.Country; /** * ALPHA: Under development */ public class DefaultIBANProvider implements IBANProvider { protected final DataMaster dataMaster; protected final BaseProducer baseProducer; protected String countryCode; public DefaultIBANProvider(BaseProducer baseProducer, DataMaster dataMaster, IBANProperties.Property... properties) { this.dataMaster = dataMaster; this.baseProducer = baseProducer; for (IBANProperties.Property property : properties) { property.apply(this); } } @Override public @Nullable IBAN get() { fillCountryCode(); IbanRegistry reg = IbanRegistry.getByCode(countryCode); if (reg == null) { return null; } Iban iban = RandomIban.of(countryCode); return new IBAN(iban.getAccountNumber(), iban.getCheckDigits(), iban.getBankCode(), iban.getBban(), iban.getCountryCode(), iban.getNationalCheckDigit(), iban.toString()); } @Override public void fillCountryCode() { if (countryCode == null) { List countries = Country.findCountryForLanguage(dataMaster.getLanguage()); Country country = baseProducer.randomElement(countries); IbanRegistry r = IbanRegistry.getByCode(country.getCode()); countryCode = Optional.ofNullable(r).map(IbanRegistry::name).orElse(null); } } @Override public void setCountry(String country) { this.countryCode = country; } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/payment/IBAN.java ================================================ package com.devskiller.jfairy.producer.payment; public class IBAN { private final String accountNumber; private final String checkDigit; private final String bankCode; private final String bban; private final String country; private final String nationalCheckDigit; private final String ibanNumber; public IBAN(String accountNumber, String checkDigit, String bankCode, String bban, String country, String nationalCheckDigit, String ibanNumber) { this.accountNumber = accountNumber; this.checkDigit = checkDigit; this.bankCode = bankCode; this.bban = bban; this.country = country; this.nationalCheckDigit = nationalCheckDigit; this.ibanNumber = ibanNumber; } public String getAccountNumber() { return accountNumber; } public String getCheckDigit() { return checkDigit; } public String getBankCode() { return bankCode; } public String getBban() { return bban; } public String getCountry() { return country; } public String getNationalCheckDigit() { return nationalCheckDigit; } public String getIbanNumber() { return ibanNumber; } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/payment/IBANFactory.java ================================================ package com.devskiller.jfairy.producer.payment; public interface IBANFactory { IBANProvider produceIBANProvider(IBANProperties.Property... properties); } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/payment/IBANFactoryImpl.java ================================================ package com.devskiller.jfairy.producer.payment; import com.devskiller.jfairy.data.DataMaster; import com.devskiller.jfairy.producer.BaseProducer; public class IBANFactoryImpl implements IBANFactory { private final BaseProducer baseProducer; private final DataMaster dataMaster; public IBANFactoryImpl(BaseProducer baseProducer, DataMaster dataMaster) { this.baseProducer = baseProducer; this.dataMaster = dataMaster; } @Override public IBANProvider produceIBANProvider(IBANProperties.Property... properties) { return new DefaultIBANProvider(baseProducer, dataMaster, properties); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/payment/IBANProperties.java ================================================ package com.devskiller.jfairy.producer.payment; import java.util.HashMap; import java.util.Map; import de.speedbanking.iban.IbanRegistry; import com.devskiller.jfairy.producer.util.LanguageCode; public final class IBANProperties { private static final Map COUNTRIES = new HashMap<>(); static { COUNTRIES.put(LanguageCode.PL, IbanRegistry.PL); COUNTRIES.put(LanguageCode.EN, IbanRegistry.GB); COUNTRIES.put(LanguageCode.ES, IbanRegistry.ES); COUNTRIES.put(LanguageCode.FR, IbanRegistry.FR); COUNTRIES.put(LanguageCode.KA, IbanRegistry.GE); COUNTRIES.put(LanguageCode.IT, IbanRegistry.IT); COUNTRIES.put(LanguageCode.DE, IbanRegistry.DE); COUNTRIES.put(LanguageCode.SK, IbanRegistry.SK); COUNTRIES.put(LanguageCode.SV, IbanRegistry.SV); } private IBANProperties() { } public abstract static class Property { public abstract void apply(IBANProvider provider); } public static Property country(final String country) { return new Property() { @Override public void apply(IBANProvider provider) { provider.setCountry(country); } }; } public static Property language(final String language) { return new Property() { @Override public void apply(IBANProvider provider) { provider.setCountry(countryFromLanguage(language)); } }; } private static String countryFromLanguage(String lang) { return COUNTRIES.entrySet().stream() .filter(locale -> locale.getKey().name().equals(lang)) .map(Map.Entry::getValue) .map(IbanRegistry::name) .findFirst() .orElse("PL"); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/payment/IBANProvider.java ================================================ package com.devskiller.jfairy.producer.payment; import java.util.function.Supplier; public interface IBANProvider extends Supplier { @Override IBAN get(); void fillCountryCode(); void setCountry(String country); } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/AbstractAddressProvider.java ================================================ package com.devskiller.jfairy.producer.person; import com.devskiller.jfairy.data.DataMaster; import com.devskiller.jfairy.producer.BaseProducer; public abstract class AbstractAddressProvider implements AddressProvider { private static final String POSTAL_CODE_FORMAT = "postal_code"; private static final String CITY = "city"; private static final String STREET = "street"; protected final BaseProducer baseProducer; protected final DataMaster dataMaster; public AbstractAddressProvider(DataMaster dataMaster, BaseProducer baseProducer) { this.baseProducer = baseProducer; this.dataMaster = dataMaster; } public String getCity() { return dataMaster.getRandomValue(CITY); } public String getPostalCode() { String postalCodeFormat = dataMaster.getRandomValue(POSTAL_CODE_FORMAT); return baseProducer.numerify(postalCodeFormat); } public String getStreet() { return dataMaster.getRandomValue(STREET); } public String getStreetNumber() { return String.valueOf(baseProducer.randomBetween(1, 199)); } public String getApartmentNumber() { return baseProducer.trueOrFalse() ? String.valueOf(baseProducer.randomBetween(1, 350)) : ""; } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/Address.java ================================================ package com.devskiller.jfairy.producer.person; public interface Address { String getStreet(); String getStreetNumber(); String getApartmentNumber(); String getPostalCode(); String getCity(); String getAddressLine1(); String getAddressLine2(); } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/AddressProvider.java ================================================ package com.devskiller.jfairy.producer.person; import java.util.function.Supplier; public interface AddressProvider extends Supplier

{ @Override Address get(); } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/CompanyEmailProvider.java ================================================ package com.devskiller.jfairy.producer.person; import java.util.function.Supplier; import com.devskiller.jfairy.producer.company.Company; import static com.devskiller.jfairy.producer.util.StringUtils.latinize; import static com.devskiller.jfairy.producer.util.StringUtils.lowerCase; public class CompanyEmailProvider implements Supplier { private final String firstName; private final String lastName; private final Company company; public CompanyEmailProvider(String firstName, String lastName, Company company) { this.firstName = firstName; this.lastName = lastName; this.company = company; } @Override public String get() { String email = lowerCase(firstName + '.' + lastName + '@' + company.getDomain()).replaceAll(" ", "."); return latinize(email); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/Country.java ================================================ package com.devskiller.jfairy.producer.person; import java.util.Arrays; import java.util.List; import java.util.Locale; import java.util.stream.Collectors; import com.devskiller.jfairy.producer.util.LanguageCode; public enum Country { Poland("PL", LanguageCode.PL), UnitedKingdom("GB", LanguageCode.EN), Australia("AU", LanguageCode.EN), USA("US", LanguageCode.EN), Canada("CA", LanguageCode.EN, LanguageCode.FR), Spain("ES", LanguageCode.ES), France("FR", LanguageCode.FR), Georgia("GE", LanguageCode.KA), Italy("IT", LanguageCode.IT), Germany("DE", LanguageCode.DE), Sweden("SE", LanguageCode.SV), China("CN", LanguageCode.ZH), Brazil("BR", LanguageCode.BR), Slovakia("SK", LanguageCode.SK), Turkey("TR", LanguageCode.TR); // ISO 3166 code private final String code; // ISO 639-1 @SuppressWarnings("ImmutableEnumChecker") private final LanguageCode[] languages; Country(String code, LanguageCode... language) { this.code = code; this.languages = language == null ? new LanguageCode[0] : Arrays.copyOf(language, language.length); } public String getCode() { return code; } /** * Returns the primary Java Locale for this country. *

* This method uses the first associated language code and the country's ISO code * to create a {@code Locale} using the modern {@code Locale.of()} factory. * * @return the primary {@link java.util.Locale} for this country * @throws IllegalStateException if no languages are associated with the country */ public Locale getPrimaryLocale() { if (languages.length == 0) { throw new IllegalStateException("No languages defined for country " + name()); } return new Locale(languages[0].name().toLowerCase(Locale.ROOT), code); } public static List findCountryForLanguage(LanguageCode language) { return Arrays.stream(Country.values()) .filter(country -> List.of(country.languages).contains(language)) .collect(Collectors.toList()); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/DefaultPersonProvider.java ================================================ package com.devskiller.jfairy.producer.person; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.ZoneId; import java.time.temporal.ChronoUnit; import java.util.List; import com.devskiller.jfairy.data.DataMaster; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.DateProducer; import com.devskiller.jfairy.producer.TimeProvider; import com.devskiller.jfairy.producer.company.Company; import com.devskiller.jfairy.producer.company.CompanyFactory; import static com.devskiller.jfairy.producer.util.StringUtils.latinize; import static com.devskiller.jfairy.producer.util.StringUtils.lowerCase; public class DefaultPersonProvider implements PersonProvider { protected Person.Sex sex; protected String telephoneNumberFormat; protected String mobileTelephoneNumberFormat; protected Integer age; protected LocalDate dateOfBirth; protected Company company; protected Address address; protected String firstName; protected String middleName; protected String lastName; protected String email; protected String username; protected String telephoneNumber; protected String mobileTelephoneNumber; protected String password; protected String companyEmail; protected String nationalIdentityCardNumber; protected String nationalIdentificationNumber; protected String passportNumber; protected String jobTitle; protected Country nationality; protected final DataMaster dataMaster; protected final DateProducer dateProducer; protected final BaseProducer baseProducer; protected final NationalIdentificationNumberFactory nationalIdentificationNumberFactory; protected final NationalIdentityCardNumberProvider nationalIdentityCardNumberProvider; protected final AddressProvider addressProvider; protected final CompanyFactory companyFactory; protected final TimeProvider timeProvider; protected final PassportNumberProvider passportNumberProvider; public DefaultPersonProvider(DataMaster dataMaster, DateProducer dateProducer, BaseProducer baseProducer, AddressProvider addressProvider, NationalIdentificationNumberFactory nationalIdentificationNumberFactory, NationalIdentityCardNumberProvider nationalIdentityCardNumberProvider, PassportNumberProvider passportNumberProvider, TimeProvider timeProvider, CompanyFactory companyFactory, PersonProperties.PersonProperty... personProperties) { this.dataMaster = dataMaster; this.dateProducer = dateProducer; this.baseProducer = baseProducer; this.nationalIdentificationNumberFactory = nationalIdentificationNumberFactory; this.nationalIdentityCardNumberProvider = nationalIdentityCardNumberProvider; this.addressProvider = addressProvider; this.passportNumberProvider = passportNumberProvider; this.companyFactory = companyFactory; this.timeProvider = timeProvider; for (PersonProperties.PersonProperty personProperty : personProperties) { personProperty.apply(this, baseProducer); } } @Override public Person get() { generateSex(); generateCompany(); generateFirstName(); generateMiddleName(); generateLastName(); generateEmail(); generateUsername(); generateTelephoneNumber(); generateAge(); generateDateOfBirth(); generateCompanyEmail(); generatePassword(); generateNationalIdentityCardNumber(); generateNationalIdentificationNumber(); generatePassportNumber(); generateAddress(); generateJobTitle(); generateNationality(); generateMobileTelephoneNumber(); return new Person(firstName, middleName, lastName, address, email, username, password, sex, telephoneNumber, mobileTelephoneNumber, dateOfBirth, age, nationalIdentityCardNumber, nationalIdentificationNumber, passportNumber, company, companyEmail, jobTitle, nationality); } @Override public void generateSex() { if (sex != null) { return; } sex = baseProducer.trueOrFalse() ? Person.Sex.MALE : Person.Sex.FEMALE; } @Override public void generateCompany() { if (company != null) { return; } company = companyFactory.produceCompany().get(); } @Override public void generateFirstName() { if (firstName != null) { return; } firstName = dataMaster.getValuesOfType(FIRST_NAME, sex.name(), String.class); } @Override public void generateMiddleName() { if (middleName != null) { return; } middleName = baseProducer.trueOrFalse() ? dataMaster.getValuesOfType(FIRST_NAME, sex.name(), String.class) : ""; } @Override public void generateLastName() { if (lastName != null) { return; } lastName = dataMaster.getValuesOfType(LAST_NAME, sex.name(), String.class); } @Override public void generateEmail() { if (email != null) { return; } EmailProvider emailProvider = new EmailProvider(dataMaster, baseProducer, firstName, lastName); email = emailProvider.get(); } @Override public void generateUsername() { if (username != null) { return; } if (baseProducer.trueOrFalse()) { username = lowerCase(latinize(firstName.substring(0, 1) + lastName)); } else { username = lowerCase(latinize(firstName + lastName.substring(0, 1))); } } @Override public void generateTelephoneNumber() { if (telephoneNumber != null) { return; } if (telephoneNumberFormat == null) { telephoneNumberFormat = dataMaster.getRandomValue(TELEPHONE_NUMBER_FORMATS); } telephoneNumber = baseProducer.numerify(telephoneNumberFormat); } @Override public void generateMobileTelephoneNumber() { if (mobileTelephoneNumber != null) { return; } if (mobileTelephoneNumberFormat == null) { mobileTelephoneNumberFormat = dataMaster.getRandomValue(TELEPHONE_NUMBER_FORMATS); } mobileTelephoneNumber = baseProducer.numerify(mobileTelephoneNumberFormat); } @Override public void generateAge() { if (dateOfBirth != null) { age = (int) ChronoUnit.YEARS.between(dateOfBirth, LocalDateTime.now(ZoneId.systemDefault())); } else { if (age != null) { return; } age = baseProducer.randomBetween(MIN_AGE, MAX_AGE); } } @Override public void generateDateOfBirth() { if (dateOfBirth != null) { return; } LocalDate maxDate = timeProvider.getCurrentDate().minusYears(age); LocalDate minDate = maxDate.minusYears(1).plusDays(1); dateOfBirth = dateProducer.randomDateBetweenTwoDates(minDate, maxDate); } @Override public void generateCompanyEmail() { if (companyEmail != null) { return; } CompanyEmailProvider companyEmailProvider = new CompanyEmailProvider(firstName, lastName, company); companyEmail = companyEmailProvider.get(); } @Override public void generatePassword() { if (password != null) { return; } StringBuilder passwordPattern = new StringBuilder(); for (int i = baseProducer.randomBetween(6, 14); i > 0; i--) { passwordPattern.append(baseProducer.randomElement("?", "#")); } password = baseProducer.bothify(passwordPattern.toString()); } @Override public void generateNationalIdentityCardNumber() { if (nationalIdentityCardNumber != null) { return; } nationalIdentityCardNumber = nationalIdentityCardNumberProvider.get(); } @Override public void generateNationalIdentificationNumber() { if (nationalIdentificationNumber != null) { return; } nationalIdentificationNumber = nationalIdentificationNumberFactory.produceNationalIdentificationNumberProvider( NationalIdentificationNumberProperties.dateOfBirth(dateOfBirth), NationalIdentificationNumberProperties.sex(sex)).get().getValue(); } @Override public void generateAddress() { if (address != null) { return; } address = addressProvider.get(); } @Override public void generatePassportNumber() { if (passportNumber != null) { return; } passportNumber = passportNumberProvider.get(); } @Override public void generateJobTitle() { if (jobTitle != null) { return; } jobTitle = dataMaster.getRandomValue(JOB_TITLE); } private void generateNationality() { List countries = Country.findCountryForLanguage(dataMaster.getLanguage()); nationality = !countries.isEmpty() ? baseProducer.randomElement(countries) : Country.UnitedKingdom; } @Override public void setTelephoneNumberFormat(String telephoneFormat) { telephoneNumberFormat = telephoneFormat; } @Override public void setMobileTelephoneNumberFormat(String mobileTelephoneNumberFormat) { this.mobileTelephoneNumberFormat = mobileTelephoneNumberFormat; } @Override public void setSex(Person.Sex sex) { this.sex = sex; } @Override public void setAge(int age) { this.age = age; } @Override public void setCompany(Company company) { this.company = company; } @Override public void setFirstName(String firstName) { this.firstName = firstName; } @Override public void setMiddleName(String middleName) { this.middleName = middleName; } @Override public void setLastName(String lastName) { this.lastName = lastName; } @Override public void setEmail(String email) { this.email = email; } @Override public void setUsername(String username) { this.username = username; } @Override public void setTelephoneNumber(String telephoneNumber) { this.telephoneNumber = telephoneNumber; } @Override public void setMobileTelephoneNumber(String telephoneNumber) { this.telephoneNumber = telephoneNumber; } @Override public void setDateOfBirth(LocalDate dateOfBirth) { this.dateOfBirth = dateOfBirth; } @Override public void setPassword(String password) { this.password = password; } @Override public void setAddress(Address address) { this.address = address; } @Override public void setCompanyEmail(String companyEmail) { this.companyEmail = companyEmail; } @Override public void setNationalIdentityCardNumber(String nationalIdentityCardNumber) { this.nationalIdentityCardNumber = nationalIdentityCardNumber; } @Override public void setNationalIdentificationNumber(String nationalIdentificationNumber) { this.nationalIdentificationNumber = nationalIdentificationNumber; } @Override public void setPassportNumber(String passportNumber) { this.passportNumber = passportNumber; } @Override public void setJobTitle(String jobTitle) { this.jobTitle = jobTitle; } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/EmailProvider.java ================================================ package com.devskiller.jfairy.producer.person; import java.util.function.Supplier; import com.devskiller.jfairy.data.DataMaster; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.util.StringUtils; import static com.devskiller.jfairy.producer.person.PersonProvider.PERSONAL_EMAIL; import static com.devskiller.jfairy.producer.util.StringUtils.latinize; import static com.devskiller.jfairy.producer.util.StringUtils.lowerCase; public class EmailProvider implements Supplier { private final DataMaster dataMaster; private final BaseProducer baseProducer; private final String firstName; private final String lastName; public EmailProvider(DataMaster dataMaster, BaseProducer baseProducer, String firstName, String lastName) { this.dataMaster = dataMaster; this.baseProducer = baseProducer; this.firstName = firstName; this.lastName = lastName; } @Override public String get() { String prefix = switch (baseProducer.randomBetween(1, 3)) { case 1 -> StringUtils.replace(firstName + lastName, " ", ""); case 2 -> StringUtils.replace(firstName + "." + lastName, " ", "."); case 3 -> StringUtils.replace(lastName, " ", ""); default -> throw new IllegalStateException("Unexpected value: " + baseProducer.randomBetween(1, 3)); }; String email = lowerCase(prefix + '@' + dataMaster.getRandomValue(PERSONAL_EMAIL)); return latinize(email); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/NationalIdentificationNumber.java ================================================ package com.devskiller.jfairy.producer.person; public class NationalIdentificationNumber { private final String value; public NationalIdentificationNumber(String value) { this.value = value; } public String getValue() { return value; } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/NationalIdentificationNumberFactory.java ================================================ package com.devskiller.jfairy.producer.person; public interface NationalIdentificationNumberFactory { NationalIdentificationNumberProvider produceNationalIdentificationNumberProvider(NationalIdentificationNumberProperties.Property... properties); } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/NationalIdentificationNumberProperties.java ================================================ package com.devskiller.jfairy.producer.person; import java.time.LocalDate; public final class NationalIdentificationNumberProperties { private NationalIdentificationNumberProperties() { } public abstract static class Property { public abstract void apply(NationalIdentificationNumberProvider nationalIdentificationNumberProvider); } public static Property dateOfBirth(final LocalDate dateOfBirth) { return new Property() { @Override public void apply(NationalIdentificationNumberProvider nationalIdentificationNumberProvider) { nationalIdentificationNumberProvider.setIssueDate(dateOfBirth); } }; } public static Property sex(final Person.Sex sex) { return new Property() { @Override public void apply(NationalIdentificationNumberProvider nationalIdentificationNumberProvider) { nationalIdentificationNumberProvider.setSex(sex); } }; } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/NationalIdentificationNumberProvider.java ================================================ package com.devskiller.jfairy.producer.person; import java.time.LocalDate; import java.util.function.Supplier; public interface NationalIdentificationNumberProvider extends Supplier { @Override NationalIdentificationNumber get(); void setIssueDate(LocalDate dateOfBirth); void setSex(Person.Sex sex); } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/NationalIdentityCardNumberProvider.java ================================================ package com.devskiller.jfairy.producer.person; import java.util.function.Supplier; public interface NationalIdentityCardNumberProvider extends Supplier { @Override String get(); } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/PassportNumberProvider.java ================================================ package com.devskiller.jfairy.producer.person; import java.util.function.Supplier; /** * Provider for generating localized or random passport numbers. *

* This functional interface extends {@link Supplier} to provide a standardized * way of retrieving passport identification strings for different locales. * * @author Olga Maciaszek-Sharma * @since 21.02.15 */ public interface PassportNumberProvider extends Supplier { @Override String get(); } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/Person.java ================================================ package com.devskiller.jfairy.producer.person; import java.time.LocalDate; import com.devskiller.jfairy.producer.company.Company; import static com.devskiller.jfairy.producer.person.Person.Sex.FEMALE; import static com.devskiller.jfairy.producer.person.Person.Sex.MALE; public class Person { public enum Sex { MALE, FEMALE } private final Address address; private final String firstName; private final String middleName; private final String lastName; private final String email; private final String username; private final String password; private final Sex sex; private final String telephoneNumber; private final String mobileTelephoneNumber; private final LocalDate dateOfBirth; private final Integer age; private final Company company; private final String companyEmail; private final String nationalIdentityCardNumber; private final String nationalIdentificationNumber; private final String passportNumber; private final String jobTitle; private final Country nationality; public Person(String firstName, String middleName, String lastName, Address address, String email, String username, String password, Sex sex, String telephoneNumber, String mobileTelephoneNumber, LocalDate dateOfBirth, Integer age, String nationalIdentityCardNumber, String nationalIdentificationNumber, String passportNumber, Company company, String companyEmail, String jobTitle, Country nationality) { this.nationalIdentityCardNumber = nationalIdentityCardNumber; this.address = address; this.firstName = firstName; this.middleName = middleName; this.lastName = lastName; this.email = email; this.username = username; this.password = password; this.sex = sex; this.telephoneNumber = telephoneNumber; this.mobileTelephoneNumber = mobileTelephoneNumber; this.dateOfBirth = dateOfBirth; this.age = age; this.nationalIdentificationNumber = nationalIdentificationNumber; this.company = company; this.companyEmail = companyEmail; this.passportNumber = passportNumber; this.jobTitle = jobTitle; this.nationality = nationality; } public String getNationalIdentificationNumber() { return nationalIdentificationNumber; } public String getFirstName() { return firstName; } public String getMiddleName() { return middleName; } public String getLastName() { return lastName; } public String getEmail() { return email; } public String getUsername() { return username; } public String getPassword() { return password; } public String getFullName() { return firstName + " " + lastName; } public boolean isMale() { return sex == MALE; } public boolean isFemale() { return sex == FEMALE; } public Sex getSex() { return sex; } public String getTelephoneNumber() { return telephoneNumber; } public String getMobileTelephoneNumber() { return mobileTelephoneNumber; } public LocalDate getDateOfBirth() { return dateOfBirth; } public int getAge() { return age; } public String getNationalIdentityCardNumber() { return nationalIdentityCardNumber; } public String getCompanyEmail() { return companyEmail; } public Address getAddress() { return address; } public Company getCompany() { return company; } public String getPassportNumber() { return passportNumber; } public String getJobTitle() { return jobTitle; } public Country getNationality() { return nationality; } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/PersonFactory.java ================================================ package com.devskiller.jfairy.producer.person; /** * Created by Jakub Kubrynski / 2014-05-26 */ public interface PersonFactory { PersonProvider producePersonProvider(PersonProperties.PersonProperty... personProperties); } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/PersonFactoryImpl.java ================================================ package com.devskiller.jfairy.producer.person; import com.devskiller.jfairy.data.DataMaster; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.DateProducer; import com.devskiller.jfairy.producer.TimeProvider; import com.devskiller.jfairy.producer.company.CompanyFactory; public class PersonFactoryImpl implements PersonFactory { private final DataMaster dataMaster; private final DateProducer dateProducer; private final BaseProducer baseProducer; private final AddressProvider addressProvider; private final NationalIdentificationNumberFactory nationalIdentificationNumberFactory; private final NationalIdentityCardNumberProvider nationalIdentityCardNumberProvider; private final PassportNumberProvider passportNumberProvider; private final TimeProvider timeProvider; private final CompanyFactory companyFactory; public PersonFactoryImpl(DataMaster dataMaster, DateProducer dateProducer, BaseProducer baseProducer, AddressProvider addressProvider, NationalIdentificationNumberFactory nationalIdentificationNumberFactory, NationalIdentityCardNumberProvider nationalIdentityCardNumberProvider, PassportNumberProvider passportNumberProvider, TimeProvider timeProvider, CompanyFactory companyFactory) { this.dataMaster = dataMaster; this.dateProducer = dateProducer; this.baseProducer = baseProducer; this.addressProvider = addressProvider; this.nationalIdentificationNumberFactory = nationalIdentificationNumberFactory; this.nationalIdentityCardNumberProvider = nationalIdentityCardNumberProvider; this.passportNumberProvider = passportNumberProvider; this.timeProvider = timeProvider; this.companyFactory = companyFactory; } @Override public PersonProvider producePersonProvider(PersonProperties.PersonProperty... personProperties) { return new DefaultPersonProvider(dataMaster, dateProducer, baseProducer, addressProvider, nationalIdentificationNumberFactory, nationalIdentityCardNumberProvider, passportNumberProvider, timeProvider, companyFactory, personProperties); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/PersonProperties.java ================================================ package com.devskiller.jfairy.producer.person; import java.time.LocalDate; import java.util.Optional; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.company.Company; /** * Static factory for creating {@link PersonProperty} instances to customize person generation. *

* This class provides a fluent interface to define specific attributes like age, * gender, or contact details that should be applied during the person creation process. * * @author jkubrynski@gmail.com * @since 2013-11-16 */ public final class PersonProperties { private static Optional minimumAge = Optional.empty(); private static Optional maximumAge = Optional.empty(); private PersonProperties() { } public abstract static class PersonProperty { public abstract void apply(PersonProvider person, BaseProducer baseProducer); } public static PersonProperty male() { return new PersonProperty() { @Override public void apply(PersonProvider person, BaseProducer baseProducer) { person.setSex(Person.Sex.MALE); } }; } public static PersonProperty female() { return new PersonProperty() { @Override public void apply(PersonProvider person, BaseProducer baseProducer) { person.setSex(Person.Sex.FEMALE); } }; } public static PersonProperty ageBetween(final int minAge, final int maxAge) { return new PersonProperty() { @Override public void apply(PersonProvider person, BaseProducer baseProducer) { person.setAge(baseProducer.randomBetween(minAge, maxAge)); minimumAge = Optional.of(minAge); maximumAge = Optional.of(maxAge); } }; } public static PersonProperty minAge(final int minAge) { minimumAge = Optional.of(minAge); return ageBetween(minAge, maximumAge.orElse(PersonProvider.MAX_AGE)); } public static PersonProperty maxAge(final int maxAge) { maximumAge = Optional.of(maxAge); return ageBetween(minimumAge.orElse(PersonProvider.MIN_AGE), maxAge); } public static PersonProperty telephoneFormat(final String telephoneFormat) { return new PersonProperty() { @Override public void apply(PersonProvider person, BaseProducer baseProducer) { person.setTelephoneNumberFormat(telephoneFormat); } }; } public static PersonProperty mobileTelephoneFormat(final String mobileTelephoneNumberFormat) { return new PersonProperty() { @Override public void apply(PersonProvider person, BaseProducer baseProducer) { person.setMobileTelephoneNumberFormat(mobileTelephoneNumberFormat); } }; } public static PersonProperty withCompany(final Company company) { return new PersonProperty() { @Override public void apply(PersonProvider personProvider, BaseProducer baseProducer) { personProvider.setCompany(company); } }; } public static PersonProperty withAddress(final Address address) { return new PersonProperty() { @Override public void apply(PersonProvider personProvider, BaseProducer baseProducer) { personProvider.setAddress(address); } }; } public static PersonProperty withFirstName(final String firstName) { return new PersonProperty() { @Override public void apply(PersonProvider personProvider, BaseProducer baseProducer) { personProvider.setFirstName(firstName); } }; } public static PersonProperty withMiddleName(final String middleName) { return new PersonProperty() { @Override public void apply(PersonProvider personProvider, BaseProducer baseProducer) { personProvider.setMiddleName(middleName); } }; } public static PersonProperty withLastName(final String lastName) { return new PersonProperty() { @Override public void apply(PersonProvider personProvider, BaseProducer baseProducer) { personProvider.setLastName(lastName); } }; } public static PersonProperty withEmail(final String email) { return new PersonProperty() { @Override public void apply(PersonProvider personProvider, BaseProducer baseProducer) { personProvider.setEmail(email); } }; } public static PersonProperty withUsername(final String username) { return new PersonProperty() { @Override public void apply(PersonProvider personProvider, BaseProducer baseProducer) { personProvider.setUsername(username); } }; } public static PersonProperty withTelephoneNumber(final String telephoneNumber) { return new PersonProperty() { @Override public void apply(PersonProvider personProvider, BaseProducer baseProducer) { personProvider.setTelephoneNumber(telephoneNumber); } }; } public static PersonProperty withMobileTelephoneNumber(final String mobileTelephoneNumber) { return new PersonProperty() { @Override public void apply(PersonProvider personProvider, BaseProducer baseProducer) { personProvider.setMobileTelephoneNumber(mobileTelephoneNumber); } }; } public static PersonProperty withDateOfBirth(final LocalDate dateOfBirth) { return new PersonProperty() { @Override public void apply(PersonProvider personProvider, BaseProducer baseProducer) { personProvider.setDateOfBirth(dateOfBirth); } }; } public static PersonProperty withAge(final Integer age) { return new PersonProperty() { @Override public void apply(PersonProvider personProvider, BaseProducer baseProducer) { personProvider.setAge(age); } }; } public static PersonProperty withPassword(final String password) { return new PersonProperty() { @Override public void apply(PersonProvider personProvider, BaseProducer baseProducer) { personProvider.setPassword(password); } }; } public static PersonProperty withCompanyEmail(final String companyEmail) { return new PersonProperty() { @Override public void apply(PersonProvider personProvider, BaseProducer baseProducer) { personProvider.setCompanyEmail(companyEmail); } }; } public static PersonProperty withNationalIdentityCardNumber(final String nationalIdentityCardNumber) { return new PersonProperty() { @Override public void apply(PersonProvider personProvider, BaseProducer baseProducer) { personProvider.setNationalIdentityCardNumber(nationalIdentityCardNumber); } }; } public static PersonProperty withNationalIdentificationNumber(final String nationalIdentificationNumber) { return new PersonProperty() { @Override public void apply(PersonProvider personProvider, BaseProducer baseProducer) { personProvider.setNationalIdentificationNumber(nationalIdentificationNumber); } }; } public static PersonProperty withPassportNumber(final String passportNumber) { return new PersonProperty() { @Override public void apply(PersonProvider personProvider, BaseProducer baseProducer) { personProvider.setPassportNumber(passportNumber); } }; } public static PersonProperty withJobTitle(final String jobTitle) { return new PersonProperty() { @Override public void apply(PersonProvider personProvider, BaseProducer baseProducer) { personProvider.setJobTitle(jobTitle); } }; } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/PersonProvider.java ================================================ package com.devskiller.jfairy.producer.person; import java.time.LocalDate; import java.util.function.Supplier; import com.devskiller.jfairy.producer.company.Company; public interface PersonProvider extends Supplier { int MIN_AGE = 1; int MAX_AGE = 100; String FIRST_NAME = "firstNames"; String LAST_NAME = "lastNames"; String PERSONAL_EMAIL = "personalEmails"; String TELEPHONE_NUMBER_FORMATS = "telephone_number_formats"; String JOB_TITLE = "jobTitles"; @Override Person get(); void generateSex(); void generateCompany(); void generateFirstName(); void generateMiddleName(); void generateLastName(); void generateEmail(); void generateUsername(); void generateTelephoneNumber(); void generateMobileTelephoneNumber(); void generateAge(); void generateDateOfBirth(); void generateCompanyEmail(); void generatePassword(); void generateJobTitle(); void generateNationalIdentityCardNumber(); void generateNationalIdentificationNumber(); void generateAddress(); void generatePassportNumber(); void setTelephoneNumberFormat(String telephoneFormat); void setMobileTelephoneNumberFormat(String telephoneFormat); void setSex(Person.Sex sex); void setAge(int age); void setCompany(Company company); void setFirstName(String firstName); void setMiddleName(String middleName); void setLastName(String lastName); void setEmail(String email); void setUsername(String username); void setTelephoneNumber(String telephoneNumber); void setMobileTelephoneNumber(String telephoneNumber); void setDateOfBirth(LocalDate dateOfBirth); void setPassword(String password); void setAddress(Address address); void setCompanyEmail(String companyEmail); void setNationalIdentityCardNumber(String nationalIdentityCardNumber); void setNationalIdentificationNumber(String nationalIdentificationNumber); void setPassportNumber(String passportNumber); void setJobTitle(String jobTitle); } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/AbstractAddress.java ================================================ package com.devskiller.jfairy.producer.person.locale; import com.devskiller.jfairy.producer.person.Address; /** * A base of all addresses. It carries all needed fields, but leaves most of the formatting to subclasses. */ public abstract class AbstractAddress implements Address { protected final String street; protected final String streetNumber; protected final String apartmentNumber; protected final String postalCode; protected final String city; public AbstractAddress(String street, String streetNumber, String apartmentNumber, String postalCode, String city) { this.street = street; this.streetNumber = streetNumber; this.postalCode = postalCode; this.city = city; this.apartmentNumber = apartmentNumber; } @Override public String getStreet() { return street; } @Override public String getStreetNumber() { return streetNumber; } @Override public String getApartmentNumber() { return apartmentNumber; } @Override public String getPostalCode() { return postalCode; } @Override public String getCity() { return city; } @Override public abstract String getAddressLine1(); @Override public abstract String getAddressLine2(); @Override public String toString() { return getAddressLine1() + System.lineSeparator() + getAddressLine2(); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/ContinentalAddress.java ================================================ package com.devskiller.jfairy.producer.person.locale; import static com.devskiller.jfairy.producer.util.StringUtils.isNotBlank; /** * An address format typical for European countries but the UK and ex-Soviet union. */ public abstract class ContinentalAddress extends AbstractAddress { public ContinentalAddress(String street, String streetNumber, String apartmentNumber, String postalCode, String city) { super(street, streetNumber, apartmentNumber, postalCode, city); } protected abstract String getApartmentMark(); protected String getStreetNumberSeparator() { return " "; } @Override public String getAddressLine1() { return street + getStreetNumberSeparator() + streetNumber + (isNotBlank(apartmentNumber) ? getApartmentMark() + apartmentNumber : ""); } @Override public String getAddressLine2() { return postalCode + " " + city; } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/NoNationalIdentificationNumberFactory.java ================================================ package com.devskiller.jfairy.producer.person.locale; import java.time.LocalDate; import com.devskiller.jfairy.producer.person.NationalIdentificationNumber; import com.devskiller.jfairy.producer.person.NationalIdentificationNumberFactory; import com.devskiller.jfairy.producer.person.NationalIdentificationNumberProperties; import com.devskiller.jfairy.producer.person.NationalIdentificationNumberProvider; import com.devskiller.jfairy.producer.person.Person; public class NoNationalIdentificationNumberFactory implements NationalIdentificationNumberFactory { @Override public NoNationalIdentificationNumberProvider produceNationalIdentificationNumberProvider(NationalIdentificationNumberProperties.Property... properties) { return new NoNationalIdentificationNumberProvider(); } public static class NoNationalIdentificationNumberProvider implements NationalIdentificationNumberProvider { @Override public NationalIdentificationNumber get() { return new NationalIdentificationNumber(""); } @Override public void setIssueDate(LocalDate dateOfBirth) { } @Override public void setSex(Person.Sex sex) { } } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/br/BrAddress.java ================================================ package com.devskiller.jfairy.producer.person.locale.br; import com.devskiller.jfairy.producer.person.locale.ContinentalAddress; public class BrAddress extends ContinentalAddress { public BrAddress(String streetNumber, String street, String apartmentNumber, String postalCode, String city) { super(street, streetNumber, apartmentNumber, postalCode, city); } @Override protected String getStreetNumberSeparator() { return ", "; } @Override protected String getApartmentMark() { return " APT "; } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/br/BrAddressProvider.java ================================================ package com.devskiller.jfairy.producer.person.locale.br; import com.devskiller.jfairy.data.DataMaster; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.person.AbstractAddressProvider; public class BrAddressProvider extends AbstractAddressProvider { public BrAddressProvider(DataMaster dataMaster, BaseProducer baseProducer) { super(dataMaster, baseProducer); } @Override public BrAddress get() { return new BrAddress(getStreetNumber(), getStreet(), getApartmentNumber(), getPostalCode(), getCity()); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/br/BrNationalIdentityCardNumberProvider.java ================================================ package com.devskiller.jfairy.producer.person.locale.br; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.person.NationalIdentityCardNumberProvider; /** * Brazilian CPF (Cadastro de Pessoas Físicas) generator. */ public class BrNationalIdentityCardNumberProvider implements NationalIdentityCardNumberProvider { private final BaseProducer baseProducer; public BrNationalIdentityCardNumberProvider(BaseProducer baseProducer) { this.baseProducer = baseProducer; } @Override public String get() { int[] digits = new int[9]; for (int i = 0; i < 9; i++) { digits[i] = baseProducer.randomBetween(0, 9); } int d1 = calculateCheckDigit(digits, 9); int d2 = calculateCheckDigit(digits, d1, 10); return String.format("%d%d%d.%d%d%d.%d%d%d-%d%d", digits[0], digits[1], digits[2], digits[3], digits[4], digits[5], digits[6], digits[7], digits[8], d1, d2); } private int calculateCheckDigit(int[] digits, int length) { int sum = 0; for (int i = 0; i < length; i++) { sum += digits[i] * (length + 1 - i); } int remainder = 11 - (sum % 11); return remainder >= 10 ? 0 : remainder; } private int calculateCheckDigit(int[] digits, int previousDigit, int length) { int sum = 0; for (int i = 0; i < digits.length; i++) { sum += digits[i] * (length + 1 - i); } sum += previousDigit * 2; int remainder = 11 - (sum % 11); return remainder >= 10 ? 0 : remainder; } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/br/BrPassportNumberProvider.java ================================================ package com.devskiller.jfairy.producer.person.locale.br; import com.devskiller.jfairy.producer.person.PassportNumberProvider; public class BrPassportNumberProvider implements PassportNumberProvider { @Override public String get() { return "BR" + String.format("%07d", (int) (Math.random() * 10000000)); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/de/DeAddress.java ================================================ package com.devskiller.jfairy.producer.person.locale.de; import com.devskiller.jfairy.producer.person.locale.ContinentalAddress; public class DeAddress extends ContinentalAddress { public DeAddress(String streetNumber, String street, String apartmentNumber, String city, String postalCode) { super(street, streetNumber, apartmentNumber, postalCode, city); } @Override protected String getApartmentMark() { return ", "; } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/de/DeAddressProvider.java ================================================ package com.devskiller.jfairy.producer.person.locale.de; import com.devskiller.jfairy.data.DataMaster; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.person.AbstractAddressProvider; public class DeAddressProvider extends AbstractAddressProvider { public DeAddressProvider(DataMaster dataMaster, BaseProducer baseProducer) { super(dataMaster, baseProducer); } @Override public DeAddress get() { return new DeAddress(getStreetNumber(), getStreet(), getApartmentNumber(), getCity(), getPostalCode()); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/de/DeNationalIdentityCardNumberProvider.java ================================================ package com.devskiller.jfairy.producer.person.locale.de; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.person.NationalIdentityCardNumberProvider; /** * German Identity Card (known as Personalausweis) *

* German identity card * * @author Roland Weisleder */ public class DeNationalIdentityCardNumberProvider implements NationalIdentityCardNumberProvider { private static final String[] ID_CARD_TYPE_LETTERS = {"L", "M", "N", "P", "R", "T", "V", "W", "X", "Y"}; private static final String VALID_NUMBER_PATTERN = "^[LMNPRTVWXY][0-9]{8}$"; private final BaseProducer baseProducer; public DeNationalIdentityCardNumberProvider(BaseProducer baseProducer) { this.baseProducer = baseProducer; } @Override public String get() { return baseProducer.randomElement(ID_CARD_TYPE_LETTERS) + baseProducer.randomNumeric(8); } public boolean isValid(String nationalIdentityCardNumber) { return nationalIdentityCardNumber.matches(VALID_NUMBER_PATTERN); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/de/DePassportNumberProvider.java ================================================ package com.devskiller.jfairy.producer.person.locale.de; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.person.PassportNumberProvider; /** * German passport (known as Reisepass) *

* German passport * * @author Roland Weisleder */ public class DePassportNumberProvider implements PassportNumberProvider { private static final String[] PASSPORT_TYPE_LETTERS = {"C", "F", "G", "H", "J", "K"}; private static final String VALID_NUMBER_PATTERN = "^[CFGHJK][0-9]{8}$"; private final BaseProducer baseProducer; public DePassportNumberProvider(BaseProducer baseProducer) { this.baseProducer = baseProducer; } @Override public String get() { return baseProducer.randomElement(PASSPORT_TYPE_LETTERS) + baseProducer.randomNumeric(8); } public boolean isValid(String passportNumber) { return passportNumber.matches(VALID_NUMBER_PATTERN); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/en/EnAddress.java ================================================ package com.devskiller.jfairy.producer.person.locale.en; import com.devskiller.jfairy.producer.person.locale.AbstractAddress; import static com.devskiller.jfairy.producer.util.StringUtils.isNotBlank; public class EnAddress extends AbstractAddress { public EnAddress(String streetNumber, String street, String apartmentNumber, String city, String postalCode) { super(street, streetNumber, apartmentNumber, postalCode, city); } @Override public String getAddressLine1() { return streetNumber + " " + street + (isNotBlank(apartmentNumber) ? " APT " + apartmentNumber : ""); } @Override public String getAddressLine2() { return city + " " + postalCode; } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/en/EnAddressProvider.java ================================================ package com.devskiller.jfairy.producer.person.locale.en; import com.devskiller.jfairy.data.DataMaster; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.person.AbstractAddressProvider; public class EnAddressProvider extends AbstractAddressProvider { public EnAddressProvider(DataMaster dataMaster, BaseProducer baseProducer) { super(dataMaster, baseProducer); } @Override public EnAddress get() { return new EnAddress(getStreetNumber(), getStreet(), getApartmentNumber(), getCity(), getPostalCode()); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/en/EnNationalIdentityCardNumberProvider.java ================================================ package com.devskiller.jfairy.producer.person.locale.en; import java.util.List; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.person.NationalIdentityCardNumberProvider; import com.devskiller.jfairy.producer.util.StringUtils; /** * English National Identity Card Number (known as Social Security Number) * * @author Olga Maciaszek-Sharma * @since 15.03.15 */ public class EnNationalIdentityCardNumberProvider implements NationalIdentityCardNumberProvider { private static final int SSN_LENGTH = 11; private static final int AREA_NUMBER_LENGTH = 3; private static final int GROUP_NUMBER_LENGTH = 2; private static final int GROUP_NUMBER_INDEX = 4; private static final List HYPHEN_INDEXES = List.of(3, 6); private static final int SERIAL_NUMBER_LENGTH = 4; private static final int SERIAL_NUMBER_INDEX = 7; private final BaseProducer baseProducer; public EnNationalIdentityCardNumberProvider(BaseProducer baseProducer) { this.baseProducer = baseProducer; } @Override public String get() { char[] ssn = new char[SSN_LENGTH]; fillHyphens(ssn); fillAreaNumber(ssn); fillGroupNumber(ssn); fillSerialNumber(ssn); return String.valueOf(ssn); } private void fillHyphens(char[] ssn) { for (Integer index : HYPHEN_INDEXES) { ssn[index] = '-'; } } private void fillAreaNumber(char[] ssn) { String number; do { number = String.valueOf(baseProducer.randomBetween(1, 899)); } while ("666".equals(number)); char[] digits = StringUtils.leftPad(number, AREA_NUMBER_LENGTH, "0").toCharArray(); System.arraycopy(digits, 0, ssn, 0, digits.length); } private void fillGroupNumber(char[] ssn) { String number = String.valueOf(baseProducer.randomBetween(1, 99)); char[] digits = StringUtils.leftPad(number, GROUP_NUMBER_LENGTH, "0").toCharArray(); System.arraycopy(digits, 0, ssn, GROUP_NUMBER_INDEX, digits.length); } private void fillSerialNumber(char[] ssn) { String number = String.valueOf(baseProducer.randomBetween(1, 9999)); char[] digits = StringUtils.leftPad(number, SERIAL_NUMBER_LENGTH, "0").toCharArray(); System.arraycopy(digits, 0, ssn, SERIAL_NUMBER_INDEX, digits.length); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/en/EnPassportNumberProvider.java ================================================ package com.devskiller.jfairy.producer.person.locale.en; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.person.PassportNumberProvider; public class EnPassportNumberProvider implements PassportNumberProvider { private final BaseProducer baseProducer; public EnPassportNumberProvider(BaseProducer baseProducer) { this.baseProducer = baseProducer; } @Override public String get() { return baseProducer.randomAlphanumeric(9); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/es/EsAddress.java ================================================ package com.devskiller.jfairy.producer.person.locale.es; import com.devskiller.jfairy.producer.person.locale.ContinentalAddress; public class EsAddress extends ContinentalAddress { public EsAddress(String street, String streetNumber, String apartmentNumber, String postalCode, String city) { super(street, streetNumber, apartmentNumber, postalCode, city); } @Override protected String getStreetNumberSeparator() { return ", "; } @Override public String getApartmentMark() { return " "; } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/es/EsAddressProvider.java ================================================ package com.devskiller.jfairy.producer.person.locale.es; import com.devskiller.jfairy.data.DataMaster; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.person.AbstractAddressProvider; public class EsAddressProvider extends AbstractAddressProvider { public EsAddressProvider(DataMaster dataMaster, BaseProducer baseProducer) { super(dataMaster, baseProducer); } @Override public EsAddress get() { return new EsAddress(getStreet(), getStreetNumber(), getApartmentNumber(), getPostalCode(), getCity()); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/es/EsNationalIdentityCardNumberProvider.java ================================================ package com.devskiller.jfairy.producer.person.locale.es; import java.util.Locale; import java.util.regex.Pattern; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.person.Country; import com.devskiller.jfairy.producer.person.NationalIdentityCardNumberProvider; /** * Spanish National Identity Card Number (known as Documento Nacional de Identidad or DNI) * * @author graux * @since 26/04/2015 * Documento Nacional de Identidad (DNI) Español */ public class EsNationalIdentityCardNumberProvider implements NationalIdentityCardNumberProvider { private static final String REGEX_DNI = "^\\d{8}([-]?)[A-Z]$"; private final BaseProducer baseProducer; private final Pattern regexDni; private final Locale primaryLocale = Country.Spain.getPrimaryLocale(); public EsNationalIdentityCardNumberProvider(BaseProducer baseProducer) { this.baseProducer = baseProducer; this.regexDni = Pattern.compile(REGEX_DNI); } @Override public String get() { return String.format("%s-%s", baseProducer.randomNumeric(8), baseProducer.randomAlphabetic(1).toUpperCase(primaryLocale)); } public boolean isValid(String dni) { return this.regexDni.matcher(dni).matches(); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/es/EsPassportNumberProvider.java ================================================ package com.devskiller.jfairy.producer.person.locale.es; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.person.PassportNumberProvider; public class EsPassportNumberProvider implements PassportNumberProvider { private final BaseProducer baseProducer; public EsPassportNumberProvider(BaseProducer baseProducer) { this.baseProducer = baseProducer; } @Override public String get() { return baseProducer.randomAlphanumeric(9); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/fr/FrAddress.java ================================================ package com.devskiller.jfairy.producer.person.locale.fr; import com.devskiller.jfairy.producer.person.locale.ContinentalAddress; public class FrAddress extends ContinentalAddress { public FrAddress(String streetNumber, String street, String apartmentNumber, String postalCode, String city) { super(street, streetNumber, apartmentNumber, postalCode, city); } @Override protected String getApartmentMark() { return " Apt "; } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/fr/FrAddressProvider.java ================================================ package com.devskiller.jfairy.producer.person.locale.fr; import com.devskiller.jfairy.data.DataMaster; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.person.AbstractAddressProvider; public class FrAddressProvider extends AbstractAddressProvider { public FrAddressProvider(DataMaster dataMaster, BaseProducer baseProducer) { super(dataMaster, baseProducer); } @Override public FrAddress get() { return new FrAddress(getStreetNumber(), getStreet(), getApartmentNumber(), getPostalCode(), getCity()); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/fr/FrNationalIdentityCardNumberProvider.java ================================================ package com.devskiller.jfairy.producer.person.locale.fr; import java.time.Year; import java.time.ZoneId; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.person.NationalIdentityCardNumberProvider; /** * Provider for French National Identity Card numbers (Carte Nationale * d’Identité - CNI). * *

* Generates a 12-character alphanumeric string following the biometric format * introduced in 2021: *

    *
  • Department code (2 digits, 01-95)
  • *
  • Year of issuance (last 2 digits)
  • *
  • Month of issuance (01-12)
  • *
  • Random serial (6 alphanumeric characters)
  • *
* * @author Markus Spann * @since 0.8.3 */ public class FrNationalIdentityCardNumberProvider implements NationalIdentityCardNumberProvider { private final BaseProducer baseProducer; public FrNationalIdentityCardNumberProvider(BaseProducer baseProducer) { this.baseProducer = baseProducer; } @Override public String get() { // department (01-95) int dept = baseProducer.randomBetween(1, 95); // year (last two digits, from 2021 to current year) int currentYear = Year.now(ZoneId.systemDefault()).getValue() % 100; int year = baseProducer.randomBetween(21, currentYear); // month (01-12) int month = baseProducer.randomBetween(1, 12); // random suffix (6 alphanumeric chars) String suffix = baseProducer.randomAlphanumeric(6); return String.format("%02d%02d%02d%s", dept, year, month, suffix); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/fr/FrPassportNumberProvider.java ================================================ package com.devskiller.jfairy.producer.person.locale.fr; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.person.PassportNumberProvider; /** * Provider for French Passport numbers. *

* Generates a 9-character alphanumeric string following the French biometric * passport format: 2 digits, 2 uppercase letters, and 5 digits (e.g., 12AB12345). * * @author Markus Spann * @since 0.8.3 */ public class FrPassportNumberProvider implements PassportNumberProvider { private final BaseProducer baseProducer; public FrPassportNumberProvider(BaseProducer baseProducer) { this.baseProducer = baseProducer; } @Override public String get() { return baseProducer.randomNumeric(2) + baseProducer.randomAlphabetic(2) + baseProducer.randomNumeric(5); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/ka/KaAddress.java ================================================ package com.devskiller.jfairy.producer.person.locale.ka; import com.devskiller.jfairy.producer.person.locale.AbstractAddress; import static com.devskiller.jfairy.producer.util.StringUtils.isNotBlank; public class KaAddress extends AbstractAddress { public KaAddress(String street, String streetNumber, String apartmentNumber, String postalCode, String city) { super(street, streetNumber, apartmentNumber, postalCode, city); } @Override public String getAddressLine1() { return postalCode + ", " + city; } @Override public String getAddressLine2() { return street + " №" + streetNumber + (isNotBlank(apartmentNumber) ? ", ბინა " + apartmentNumber : ""); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/ka/KaAddressProvider.java ================================================ package com.devskiller.jfairy.producer.person.locale.ka; import com.devskiller.jfairy.data.DataMaster; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.person.AbstractAddressProvider; public class KaAddressProvider extends AbstractAddressProvider { public KaAddressProvider(DataMaster dataMaster, BaseProducer baseProducer) { super(dataMaster, baseProducer); } @Override public KaAddress get() { return new KaAddress(getStreet(), getStreetNumber(), getApartmentNumber(), getPostalCode(), getCity()); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/ka/KaNationalIdentityCardNumberProvider.java ================================================ package com.devskiller.jfairy.producer.person.locale.ka; import java.util.Locale; import java.util.function.Supplier; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.person.Country; import com.devskiller.jfairy.producer.person.NationalIdentityCardNumberProvider; public class KaNationalIdentityCardNumberProvider implements NationalIdentityCardNumberProvider { private static class OldCardNumberProvider implements NationalIdentityCardNumberProvider { private static final char[] GEORGIAN_CHAR = "აბგდევზთიკლმნოპჟრსტუფქღყშჩცძწჭხჯჰ".toCharArray(); private final BaseProducer baseProducer; OldCardNumberProvider(BaseProducer baseProducer) { this.baseProducer = baseProducer; } @Override public String get() { char geChar = GEORGIAN_CHAR[baseProducer.randomInt(GEORGIAN_CHAR.length - 1)]; return "N" + geChar + baseProducer.numerify("#######"); } } private static class NewCardNumberProvider implements NationalIdentityCardNumberProvider { private static final String NEW_CARD_MASK = "##??#####"; private final BaseProducer baseProducer; private final Locale primaryLocale = Country.Georgia.getPrimaryLocale(); NewCardNumberProvider(BaseProducer baseProducer) { this.baseProducer = baseProducer; } @Override public String get() { return baseProducer.bothify(NEW_CARD_MASK).toUpperCase(primaryLocale); } } private final Supplier formatPicker; public KaNationalIdentityCardNumberProvider(BaseProducer baseProducer) { NationalIdentityCardNumberProvider oldCardNumberProvider = new OldCardNumberProvider(baseProducer); NationalIdentityCardNumberProvider newCardNumberProvider = new NewCardNumberProvider(baseProducer); formatPicker = () -> baseProducer.trueOrFalse() ? oldCardNumberProvider : newCardNumberProvider; } @Override public String get() { NationalIdentityCardNumberProvider numberProvider = formatPicker.get(); return numberProvider.get(); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/ka/KaPassportNumberProvider.java ================================================ package com.devskiller.jfairy.producer.person.locale.ka; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.person.PassportNumberProvider; public class KaPassportNumberProvider implements PassportNumberProvider { private final BaseProducer baseProducer; public KaPassportNumberProvider(BaseProducer baseProducer) { this.baseProducer = baseProducer; } // District codes are not reachable at the moment. private String getDistrictCode() { return baseProducer.numerify("##"); } // A system of Ministry of Inferior Office codes is not known at the moment. private String getStateOfficeCode() { return baseProducer.numerify("###"); } private String getNationalPersonalIdentificationNumber() { return baseProducer.numerify("######"); } @Override public String get() { String districtCode = getDistrictCode(); return districtCode + getStateOfficeCode() + getNationalPersonalIdentificationNumber(); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/pl/PlAddress.java ================================================ package com.devskiller.jfairy.producer.person.locale.pl; import com.devskiller.jfairy.producer.person.locale.ContinentalAddress; public class PlAddress extends ContinentalAddress { public PlAddress(String street, String streetNumber, String apartmentNumber, String postalCode, String city) { super(street, streetNumber, apartmentNumber, postalCode, city); } @Override protected String getApartmentMark() { return ", "; } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/pl/PlAddressProvider.java ================================================ package com.devskiller.jfairy.producer.person.locale.pl; import com.devskiller.jfairy.data.DataMaster; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.person.AbstractAddressProvider; public class PlAddressProvider extends AbstractAddressProvider { public PlAddressProvider(DataMaster dataMaster, BaseProducer baseProducer) { super(dataMaster, baseProducer); } @Override public PlAddress get() { return new PlAddress(getStreet(), getStreetNumber(), getApartmentNumber(), getPostalCode(), getCity()); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/pl/PlNationalIdentificationNumberFactory.java ================================================ package com.devskiller.jfairy.producer.person.locale.pl; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.DateProducer; import com.devskiller.jfairy.producer.person.NationalIdentificationNumberFactory; import com.devskiller.jfairy.producer.person.NationalIdentificationNumberProperties; public class PlNationalIdentificationNumberFactory implements NationalIdentificationNumberFactory { private final BaseProducer baseProducer; private final DateProducer dateProducer; public PlNationalIdentificationNumberFactory(BaseProducer baseProducer, DateProducer dateProducer) { this.baseProducer = baseProducer; this.dateProducer = dateProducer; } @Override public PlNationalIdentificationNumberProvider produceNationalIdentificationNumberProvider(NationalIdentificationNumberProperties.Property... properties) { return new PlNationalIdentificationNumberProvider(dateProducer, baseProducer, properties); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/pl/PlNationalIdentificationNumberProvider.java ================================================ package com.devskiller.jfairy.producer.person.locale.pl; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.DateProducer; import com.devskiller.jfairy.producer.person.NationalIdentificationNumber; import com.devskiller.jfairy.producer.person.NationalIdentificationNumberProperties; import com.devskiller.jfairy.producer.person.NationalIdentificationNumberProvider; import com.devskiller.jfairy.producer.person.Person; /** * Polish National Identification Number (known as PESEL - Powszechny Elektroniczny System Ewidencji Ludności) *

* Universal Electronic System for Registration of the Population in Poland. * The number consists of 11 digits and includes information about birth date and sex. * More info: PESEL */ public class PlNationalIdentificationNumberProvider implements NationalIdentificationNumberProvider { private static final int NATIONAL_IDENTIFICATION_NUMBER_LENGTH = 11; private static final int VALIDITY_IN_YEARS = 10; private static final int[] PERIOD_WEIGHTS = {80, 0, 20, 40, 60}; private static final int PERIOD_FACTOR = 100; private static final int BEGIN_YEAR = 1800; private static final int[] WEIGHTS = {1, 3, 7, 9, 1, 3, 7, 9, 1, 3}; private static final int MAX_SERIAL_NUMBER = 999; private static final int TEN = 10; private static final int[] SEX_FIELDS = {0, 2, 4, 6, 8}; private final BaseProducer baseProducer; private final DateProducer dateProducer; private LocalDate issueDate; private Person.Sex sex; /** * Initializes a new provider for Polish PESEL numbers *

* @param dateProducer provider for generating dates * @param baseProducer provider for random numbers and booleans * @param properties optional properties to constrain the generated number */ public PlNationalIdentificationNumberProvider(DateProducer dateProducer, BaseProducer baseProducer, NationalIdentificationNumberProperties.Property... properties) { this.dateProducer = dateProducer; this.baseProducer = baseProducer; with(properties); } /** * Applies specific properties to the provider *

* @param properties array of properties like sex or birth date */ public void with(NationalIdentificationNumberProperties.Property[] properties) { for (NationalIdentificationNumberProperties.Property property : properties) { property.apply(this); } } /** * Generates a random Polish National Identification Number *

* @return a new NationalIdentificationNumber instance containing the PESEL */ @Override public NationalIdentificationNumber get() { if (issueDate == null) { issueDate = dateProducer.randomDateInThePast(VALIDITY_IN_YEARS).toLocalDate(); } if (sex == null) { sex = baseProducer.trueOrFalse() ? Person.Sex.MALE : Person.Sex.FEMALE; } return new NationalIdentificationNumber(generate()); } private String generate() { int month = calculateMonth(issueDate.getMonthValue(), issueDate.getYear()); int day = issueDate.getDayOfMonth(); int serialNumber = baseProducer.randomInt(MAX_SERIAL_NUMBER); int sexCode = calculateSexCode(sex); String nationalIdentificationNumber = String.format("%s%02d%02d%03d%d", DateTimeFormatter.ofPattern("uu").format(issueDate), month, day, serialNumber, sexCode); return nationalIdentificationNumber + calculateChecksum(nationalIdentificationNumber); } @Override public void setIssueDate(LocalDate issueDate) { this.issueDate = issueDate; } @Override public void setSex(Person.Sex sex) { this.sex = sex; } /** * Verifies the validity of a given PESEL number based on its length and checksum *

* @param nationalIdentificationNumber the PESEL string to verify * @return true if the number is valid, false otherwise */ public static boolean isValid(String nationalIdentificationNumber) { int size = nationalIdentificationNumber.length(); if (size != NATIONAL_IDENTIFICATION_NUMBER_LENGTH) { return false; } int checksum = Integer.parseInt(nationalIdentificationNumber.substring(size - 1)); int checkDigit = calculateChecksum(nationalIdentificationNumber); return checkDigit == checksum; } private int calculateMonth(int month, int year) { return month + PERIOD_WEIGHTS[(year - BEGIN_YEAR) / PERIOD_FACTOR]; } private int calculateSexCode(Person.Sex sex) { return SEX_FIELDS[baseProducer.randomInt(SEX_FIELDS.length - 1)] + (sex == Person.Sex.MALE ? 1 : 0); } private static int calculateChecksum(String nationalIdentificationNumber) { int sum = 0; int i = 0; for (int weight : WEIGHTS) { int digit = Character.digit(nationalIdentificationNumber.charAt(i++), 10); sum += digit * weight; } int checksum = (sum % TEN); if (0 == checksum) { return 0; } return TEN - checksum; } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/pl/PlNationalIdentityCardNumberProvider.java ================================================ package com.devskiller.jfairy.producer.person.locale.pl; import java.time.LocalDate; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.DateProducer; import com.devskiller.jfairy.producer.person.NationalIdentityCardNumberProvider; import com.devskiller.jfairy.producer.util.AlphaNumberSystem; import com.devskiller.jfairy.producer.util.ValidateUtils; import static com.devskiller.jfairy.producer.util.StringUtils.leftPad; /** * Polish Identity Card Number *

* Polish identity card */ public class PlNationalIdentityCardNumberProvider implements NationalIdentityCardNumberProvider { static final int ISSUING_BEGIN = 2000; private static final int[] WEIGHTS = new int[]{7, 3, 1, 0, 7, 3, 1, 7, 3}; private static final int CHECKSUM_INDEX = 3; private static final int DIGITS_PART_SIZE = 5; static final int MAX_DIGITS_PART_VALUE = 99999; static final int LETTER_WEIGHT = 45; private static final int LETTERS_PART_SIZE = 3; private static final int LETTER_VALUE_MODIFIER = 10; private static final int ALPHABET_SIZE = 26; private static final int BASE_TEN = 10; private final DateProducer dateProducer; private final BaseProducer baseProducer; public PlNationalIdentityCardNumberProvider(DateProducer dateProducer, BaseProducer baseProducer) { this.dateProducer = dateProducer; this.baseProducer = baseProducer; } @Override public String get() { LocalDate dateTime = dateProducer.randomDateBetweenYearAndNow(ISSUING_BEGIN).toLocalDate(); return get(dateTime); } public String get(LocalDate date) { ValidateUtils.isTrue(date.getYear() >= ISSUING_BEGIN, "Polish ID was introduced in 2000"); char[] id = new char[WEIGHTS.length]; fillLettersPart(date.getYear(), id); fillDigitsPart(id); char checksum = calculateChecksum(id); id[CHECKSUM_INDEX] = checksum; return String.copyValueOf(id); } public boolean isValid(String id) { int checksum = calculateChecksum(id.toCharArray()); return id.charAt(CHECKSUM_INDEX) == checksum; } private char calculateChecksum(char[] id) { int index = 0; int checksum = 0; for (int weight : WEIGHTS) { int value = 0; if (index < CHECKSUM_INDEX) { value = id[index] - 'A' + LETTER_VALUE_MODIFIER; } else if (index > CHECKSUM_INDEX) { value = id[index] - '0'; } index++; checksum += weight * value; } return String.valueOf(checksum % BASE_TEN).charAt(0); } private void fillDigitsPart(char[] id) { String num = String.valueOf(baseProducer.randomInt(MAX_DIGITS_PART_VALUE)); char[] digits = leftPad(num, DIGITS_PART_SIZE, '0').toCharArray(); System.arraycopy(digits, 0, id, CHECKSUM_INDEX + 1, digits.length); } private void fillLettersPart(int year, char[] id) { int maxPrefix = (year - ISSUING_BEGIN) * LETTER_WEIGHT; int range = baseProducer.randomBetween(maxPrefix, maxPrefix + LETTER_WEIGHT); String prefix = AlphaNumberSystem.convertToString(range, ALPHABET_SIZE); char[] charArray = leftPad(prefix, LETTERS_PART_SIZE, 'A').toCharArray(); System.arraycopy(charArray, 0, id, 0, charArray.length); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/pl/PlPassportNumberProvider.java ================================================ package com.devskiller.jfairy.producer.person.locale.pl; import java.util.Collections; import java.util.LinkedHashMap; import java.util.Locale; import java.util.Map; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.person.PassportNumberProvider; import com.devskiller.jfairy.producer.util.AlphaNumberSystem; /** * Provider for Polish passport numbers. *

* A Polish passport number consists of 9 characters: 2 uppercase letters followed by 7 digits. * The third character (index 2) is a checksum digit calculated based on the other positions. */ public class PlPassportNumberProvider implements PassportNumberProvider { private static final int CHECKSUM_INDEX = 2; private static final int PASSPORT_NUMBER_LENGTH = 9; private static final int RADIX_TEN = 10; /** Map to store numeric values for letters A-Z (A=10, B=11, etc.) */ private static final Map LETTER_DIGITS = generateLetterDigits(); private static final int[] WEIGHTS = {7, 3, 9, 1, 7, 3, 1, 7, 3}; private final BaseProducer baseProducer; /** * Creates a new provider instance. *

* @param baseProducer the producer used for random data generation */ public PlPassportNumberProvider(BaseProducer baseProducer) { this.baseProducer = baseProducer; } /** * Generates a mapping of characters to their numeric values for checksum calculation. *

* @return an unmodifiable map of characters to integers */ private static Map generateLetterDigits() { int baseNum = 10; Map map = new LinkedHashMap<>(); for (Character letter : AlphaNumberSystem.generateAlphabetList()) { map.put(letter, baseNum++); } return Collections.unmodifiableMap(map); } /** * Returns a randomly generated Polish passport number. *

* @return a valid 9-character passport number string */ @Override public String get() { char[] passport = new char[PASSPORT_NUMBER_LENGTH]; fillSeries(passport); fillDigits(passport); fillChecksum(passport); return String.valueOf(passport); } /** * Calculates and sets the checksum digit at the appropriate index. *

* @param passport the character array representing the passport number */ private void fillChecksum(char[] passport) { // when generating, the checksum index itself must be ignored int checkSum = calculateTotalWeight(passport, true); passport[CHECKSUM_INDEX] = Character.forDigit(checkSum % RADIX_TEN, RADIX_TEN); } /** * Fills the first two positions with random uppercase letters. *

* @param passport the character array to modify */ private void fillSeries(char[] passport) { char[] randomSeries = baseProducer.randomAlphabetic(2).toUpperCase(Locale.ROOT).toCharArray(); System.arraycopy(randomSeries, 0, passport, 0, randomSeries.length); } /** * Fills the numeric positions of the passport number. *

* @param passport the character array to modify */ private void fillDigits(char[] passport) { char[] randomDigits = baseProducer.randomNumeric(6).toCharArray(); System.arraycopy(randomDigits, 0, passport, 3, randomDigits.length); } /** * Validates the checksum of a Polish passport number. *

* @param passportNumber the 9-character passport number to validate * @return true if the checksum is correct, false otherwise */ public static boolean isPassportCheckSumValid(String passportNumber) { if (passportNumber == null || passportNumber.length() != PASSPORT_NUMBER_LENGTH) { return false; } char[] passport = passportNumber.toCharArray(); // when validating, the checksum index (weight 9) must be included return calculateTotalWeight(passport, false) % RADIX_TEN == 0; } /** * Calculates the sum of weighted values for all characters in the passport number. *

* @param passport the character array of the passport * @param ignoreChecksumIndex whether to skip the checksum digit during calculation * @return the calculated weighted sum */ private static int calculateTotalWeight(char[] passport, boolean ignoreChecksumIndex) { int totalWeight = 0; for (int i = 0; i < PASSPORT_NUMBER_LENGTH; i++) { if (ignoreChecksumIndex && i == CHECKSUM_INDEX) { continue; } int value; if (i < 2) { value = LETTER_DIGITS.getOrDefault(passport[i], 0); } else { // use digit for strict base-10 interpretation value = Character.digit(passport[i], RADIX_TEN); } totalWeight += value * WEIGHTS[i]; } return totalWeight; } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/sk/SkAddress.java ================================================ package com.devskiller.jfairy.producer.person.locale.sk; import com.devskiller.jfairy.producer.person.locale.ContinentalAddress; public class SkAddress extends ContinentalAddress { public SkAddress(String street, String streetNumber, String apartmentNumber, String postalCode, String city) { super(street, streetNumber, apartmentNumber, postalCode, city); } @Override protected String getApartmentMark() { return ", "; } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/sk/SkAddressProvider.java ================================================ package com.devskiller.jfairy.producer.person.locale.sk; import com.devskiller.jfairy.data.DataMaster; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.person.AbstractAddressProvider; public class SkAddressProvider extends AbstractAddressProvider { public SkAddressProvider(DataMaster dataMaster, BaseProducer baseProducer) { super(dataMaster, baseProducer); } @Override public SkAddress get() { return new SkAddress(getStreet(), getStreetNumber(), getApartmentNumber(), getPostalCode(), getCity()); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/sk/SkNationalIdentificationNumberFactory.java ================================================ package com.devskiller.jfairy.producer.person.locale.sk; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.DateProducer; import com.devskiller.jfairy.producer.person.NationalIdentificationNumberFactory; import com.devskiller.jfairy.producer.person.NationalIdentificationNumberProperties; public class SkNationalIdentificationNumberFactory implements NationalIdentificationNumberFactory { private final BaseProducer baseProducer; private final DateProducer dateProducer; public SkNationalIdentificationNumberFactory(BaseProducer baseProducer, DateProducer dateProducer) { this.baseProducer = baseProducer; this.dateProducer = dateProducer; } @Override public SkNationalIdentificationNumberProvider produceNationalIdentificationNumberProvider(NationalIdentificationNumberProperties.Property... properties) { return new SkNationalIdentificationNumberProvider(dateProducer, baseProducer, properties); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/sk/SkNationalIdentificationNumberProvider.java ================================================ package com.devskiller.jfairy.producer.person.locale.sk; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.DateProducer; import com.devskiller.jfairy.producer.person.NationalIdentificationNumber; import com.devskiller.jfairy.producer.person.NationalIdentificationNumberProperties; import com.devskiller.jfairy.producer.person.NationalIdentificationNumberProvider; import com.devskiller.jfairy.producer.person.Person; import static java.lang.String.format; /** * Slovak National Identification Number (known as Rodne cislo) *

* Based on the same algorithm as Polish PESEL * More info: PESEL */ public class SkNationalIdentificationNumberProvider implements NationalIdentificationNumberProvider { private static final int NATIONAL_IDENTIFICATION_NUMBER_LENGTH = 11; private static final int VALIDITY_IN_YEARS = 10; private static final int[] PERIOD_WEIGHTS = {80, 0, 20, 40, 60}; private static final int PERIOD_FACTOR = 100; private static final int BEGIN_YEAR = 1800; private static final int[] WEIGHTS = {1, 3, 7, 9, 1, 3, 7, 9, 1, 3}; private static final int MAX_SERIAL_NUMBER = 999; private static final int TEN = 10; private static final int[] SEX_FIELDS = {0, 2, 4, 6, 8}; private final BaseProducer baseProducer; private final DateProducer dateProducer; private LocalDate issueDate; private Person.Sex sex; public SkNationalIdentificationNumberProvider(DateProducer dateProducer, BaseProducer baseProducer, NationalIdentificationNumberProperties.Property... properties) { this.dateProducer = dateProducer; this.baseProducer = baseProducer; with(properties); } public void with(NationalIdentificationNumberProperties.Property[] properties) { for (NationalIdentificationNumberProperties.Property property : properties) { property.apply(this); } } @Override public NationalIdentificationNumber get() { if (issueDate == null) { issueDate = dateProducer.randomDateInThePast(VALIDITY_IN_YEARS).toLocalDate(); } if (sex == null) { sex = baseProducer.trueOrFalse() ? Person.Sex.MALE : Person.Sex.FEMALE; } return new NationalIdentificationNumber(generate()); } private String generate() { int month = calculateMonth(issueDate.getMonthValue(), issueDate.getYear()); int day = issueDate.getDayOfMonth(); int serialNumber = baseProducer.randomInt(MAX_SERIAL_NUMBER); int sexCode = calculateSexCode(sex); String nationalIdentificationNumber = format("%s%02d%02d%03d%d", DateTimeFormatter.ofPattern("uu").format(issueDate), month, day, serialNumber, sexCode); return nationalIdentificationNumber + calculateChecksum(nationalIdentificationNumber); } @Override public void setIssueDate(LocalDate issueDate) { this.issueDate = issueDate; } @Override public void setSex(Person.Sex sex) { this.sex = sex; } public static boolean isValid(String nationalIdentificationNumber) { int size = nationalIdentificationNumber.length(); if (size != NATIONAL_IDENTIFICATION_NUMBER_LENGTH) { return false; } int checksum = Integer.parseInt(nationalIdentificationNumber.substring(size - 1)); int checkDigit = calculateChecksum(nationalIdentificationNumber); return checkDigit == checksum; } private int calculateMonth(int month, int year) { return month + PERIOD_WEIGHTS[(year - BEGIN_YEAR) / PERIOD_FACTOR]; } private int calculateSexCode(Person.Sex sex) { return SEX_FIELDS[baseProducer.randomInt(SEX_FIELDS.length - 1)] + (sex == Person.Sex.MALE ? 1 : 0); } private static int calculateChecksum(String nationalIdentificationNumber) { int sum = 0; int i = 0; for (int weight : WEIGHTS) { int digit = Character.digit(nationalIdentificationNumber.charAt(i++), 10); sum += digit * weight; } int checksum = (sum % TEN); if (0 == checksum) { return 0; } return TEN - checksum; } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/sk/SkNationalIdentityCardNumberProvider.java ================================================ package com.devskiller.jfairy.producer.person.locale.sk; import java.time.LocalDate; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.DateProducer; import com.devskiller.jfairy.producer.person.NationalIdentityCardNumberProvider; import com.devskiller.jfairy.producer.util.AlphaNumberSystem; import com.devskiller.jfairy.producer.util.StringUtils; /** * Slovak Identity Card Number *

* Based on the same format as Polish identity card * Polish identity card */ public class SkNationalIdentityCardNumberProvider implements NationalIdentityCardNumberProvider { static final int ISSUING_BEGIN = 2000; private static final int[] WEIGHTS = new int[]{7, 3, 1, 0, 7, 3, 1, 7, 3}; private static final int CHECKSUM_INDEX = 3; private static final int DIGITS_PART_SIZE = 5; static final int MAX_DIGITS_PART_VALUE = 99999; static final int LETTER_WEIGHT = 45; private static final int LETTERS_PART_SIZE = 3; private static final int LETTER_VALUE_MODIFIER = 10; private static final int ALPHABET_SIZE = 26; private static final int BASE_TEN = 10; private final DateProducer dateProducer; private final BaseProducer baseProducer; public SkNationalIdentityCardNumberProvider(DateProducer dateProducer, BaseProducer baseProducer) { this.dateProducer = dateProducer; this.baseProducer = baseProducer; } @Override public String get() { LocalDate dateTime = dateProducer.randomDateBetweenYearAndNow(ISSUING_BEGIN).toLocalDate(); return get(dateTime); } public String get(LocalDate date) { if (date.getYear() < ISSUING_BEGIN) { throw new IllegalArgumentException("Slovak ID card was introduced in 2000"); } char[] id = new char[WEIGHTS.length]; fillLettersPart(date.getYear(), id); fillDigitsPart(id); char checksum = calculateChecksum(id); id[CHECKSUM_INDEX] = checksum; return String.copyValueOf(id); } public boolean isValid(String id) { int checksum = calculateChecksum(id.toCharArray()); return id.charAt(CHECKSUM_INDEX) == checksum; } private char calculateChecksum(char[] id) { int index = 0; int checksum = 0; for (int weight : WEIGHTS) { int value = 0; if (index < CHECKSUM_INDEX) { value = id[index] - 'A' + LETTER_VALUE_MODIFIER; } else if (index > CHECKSUM_INDEX) { value = id[index] - '0'; } index++; checksum += weight * value; } return String.valueOf(checksum % BASE_TEN).charAt(0); } private void fillDigitsPart(char[] id) { String num = String.valueOf(baseProducer.randomInt(MAX_DIGITS_PART_VALUE)); char[] digits = StringUtils.leftPad(num, DIGITS_PART_SIZE, '0').toCharArray(); System.arraycopy(digits, 0, id, CHECKSUM_INDEX + 1, digits.length); } private void fillLettersPart(int year, char[] id) { int maxPrefix = (year - ISSUING_BEGIN) * LETTER_WEIGHT; int range = baseProducer.randomBetween(maxPrefix, maxPrefix + LETTER_WEIGHT); String prefix = AlphaNumberSystem.convertToString(range, ALPHABET_SIZE); char[] charArray = StringUtils.leftPad(prefix, LETTERS_PART_SIZE, 'A').toCharArray(); System.arraycopy(charArray, 0, id, 0, charArray.length); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/sk/SkPassportNumberProvider.java ================================================ package com.devskiller.jfairy.producer.person.locale.sk; import java.util.Collections; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.person.PassportNumberProvider; import com.devskiller.jfairy.producer.util.AlphaNumberSystem; /** * Slovak Passport Number Provider. *

* The passport number consists of 9 characters: 2 letters, 1 checksum digit, and 6 digits. */ public class SkPassportNumberProvider implements PassportNumberProvider { private static final int CHECKSUM_INDEX = 2; private static final int PASSPORT_NUMBER_LENGTH = 9; private static final int RADIX_TEN = 10; private static final int[] WEIGHTS = {7, 3, 9, 1, 7, 3, 1, 7, 3}; /** Map to store numeric values for letters A-Z (A=10, B=11, etc.) */ private static final Map LETTER_DIGITS = generateLetterDigits(); private final BaseProducer baseProducer; public SkPassportNumberProvider(BaseProducer baseProducer) { this.baseProducer = baseProducer; } private static Map generateLetterDigits() { int baseNum = 10; List alphabet = AlphaNumberSystem.generateAlphabetList(); Map map = new LinkedHashMap<>(alphabet.size()); for (Character letter : alphabet) { map.put(letter, baseNum++); } return Collections.unmodifiableMap(map); } @Override public String get() { char[] passport = new char[PASSPORT_NUMBER_LENGTH]; fillSeries(passport); fillDigits(passport); fillChecksum(passport); return String.valueOf(passport); } private void fillChecksum(char[] passport) { int checkSum = calculateTotalWeight(passport); // the checksum digit itself is the remainder mod 10 passport[CHECKSUM_INDEX] = Character.forDigit(checkSum % RADIX_TEN, RADIX_TEN); } private void fillSeries(char[] passport) { for (int i = 0; i < 2; i++) { passport[i] = (char) ('A' + baseProducer.randomInt(26)); } } private void fillDigits(char[] passport) { for (int i = 3; i < PASSPORT_NUMBER_LENGTH; i++) { passport[i] = (char) ('0' + baseProducer.randomInt(RADIX_TEN)); } } /** * Validates the checksum of a Slovak passport number *

* @param passportNumber the 9-character passport number string * @return true if the checksum is valid */ public static boolean isPassportCheckSumValid(String passportNumber) { if (passportNumber == null || passportNumber.length() != PASSPORT_NUMBER_LENGTH) { return false; } char[] passport = passportNumber.toCharArray(); return calculateTotalWeight(passport) % RADIX_TEN == 0; } private static int calculateTotalWeight(char[] passport) { int totalWeight = 0; for (int i = 0; i < PASSPORT_NUMBER_LENGTH; i++) { if (i == CHECKSUM_INDEX) { continue; } int value; if (i < 2) { value = LETTER_DIGITS.getOrDefault(passport[i], 0); } else { // errorprone: using digit(c, 10) for strict decimal interpretation value = Character.digit(passport[i], RADIX_TEN); } totalWeight += value * WEIGHTS[i]; } return totalWeight; } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/sv/SvAddress.java ================================================ package com.devskiller.jfairy.producer.person.locale.sv; import com.devskiller.jfairy.producer.person.locale.ContinentalAddress; public class SvAddress extends ContinentalAddress { public SvAddress(String street, String streetNumber, String apartmentNumber, String postalCode, String city) { super(street, streetNumber, apartmentNumber, postalCode, city); } @Override public String getApartmentMark() { return " Lgh "; } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/sv/SvAddressProvider.java ================================================ package com.devskiller.jfairy.producer.person.locale.sv; import com.devskiller.jfairy.data.DataMaster; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.person.AbstractAddressProvider; public class SvAddressProvider extends AbstractAddressProvider { public SvAddressProvider(DataMaster dataMaster, BaseProducer baseProducer) { super(dataMaster, baseProducer); } @Override public SvAddress get() { return new SvAddress(getStreet(), getStreetNumber(), getApartmentNumber(), getPostalCode(), getCity()); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/sv/SvNationalIdentificationNumberFactory.java ================================================ package com.devskiller.jfairy.producer.person.locale.sv; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.DateProducer; import com.devskiller.jfairy.producer.person.NationalIdentificationNumberFactory; import com.devskiller.jfairy.producer.person.NationalIdentificationNumberProperties; public class SvNationalIdentificationNumberFactory implements NationalIdentificationNumberFactory { private final BaseProducer baseProducer; private final DateProducer dateProducer; public SvNationalIdentificationNumberFactory(BaseProducer baseProducer, DateProducer dateProducer) { this.baseProducer = baseProducer; this.dateProducer = dateProducer; } @Override public SvNationalIdentificationNumberProvider produceNationalIdentificationNumberProvider(NationalIdentificationNumberProperties.Property... properties) { return new SvNationalIdentificationNumberProvider(dateProducer, baseProducer, properties); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/sv/SvNationalIdentificationNumberProvider.java ================================================ package com.devskiller.jfairy.producer.person.locale.sv; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.DateProducer; import com.devskiller.jfairy.producer.person.NationalIdentificationNumber; import com.devskiller.jfairy.producer.person.NationalIdentificationNumberProperties; import com.devskiller.jfairy.producer.person.NationalIdentificationNumberProvider; import com.devskiller.jfairy.producer.person.Person; import static java.lang.String.format; /** * Swedish National Identification Number (known as Personal Identity Number or Personnummer in sweden) *

* Personal identity number (Sweden) *

* E.g. * 870508-5853 *

* The left part of the hyphen consists of the date of birth and the right part consist of * three random numbers + one check digit. */ public class SvNationalIdentificationNumberProvider implements NationalIdentificationNumberProvider { private static final int NATIONAL_IDENTIFICATION_NUMBER_LENGTH = 11; private static final int VALIDITY_IN_YEARS = 120; private static final int[] WEIGHTS = {2, 1, 2, 1, 2, 1, 2, 1, 2}; private static final int MAX_SERIAL_NUMBER = 99; private static final int TEN = 10; private static final int[] SEX_FIELDS = {0, 2, 4, 6, 8}; private final BaseProducer baseProducer; private final DateProducer dateProducer; private LocalDate issueDate; private Person.Sex sex; public SvNationalIdentificationNumberProvider(DateProducer dateProducer, BaseProducer baseProducer, NationalIdentificationNumberProperties.Property... properties) { this.dateProducer = dateProducer; this.baseProducer = baseProducer; with(properties); } public void with(NationalIdentificationNumberProperties.Property[] properties) { for (NationalIdentificationNumberProperties.Property property : properties) { property.apply(this); } } @Override public NationalIdentificationNumber get() { if (issueDate == null) { issueDate = dateProducer.randomDateInThePast(VALIDITY_IN_YEARS).toLocalDate(); } if (sex == null) { sex = baseProducer.trueOrFalse() ? Person.Sex.MALE : Person.Sex.FEMALE; } return new NationalIdentificationNumber(generate()); } private String generate() { int serialNumber = baseProducer.randomInt(MAX_SERIAL_NUMBER); int sexCode = calculateSexCode(sex); String nationalIdentificationNumber = format("%s%s%s-%02d%d", DateTimeFormatter.ofPattern("uu").format(issueDate), DateTimeFormatter.ofPattern("MM").format(issueDate), DateTimeFormatter.ofPattern("dd").format(issueDate), serialNumber, sexCode); return nationalIdentificationNumber + calculateChecksum(nationalIdentificationNumber); } @Override public void setIssueDate(LocalDate issueDate) { this.issueDate = issueDate; } @Override public void setSex(Person.Sex sex) { this.sex = sex; } public static boolean isValid(String nationalIdentificationNumber) { int size = nationalIdentificationNumber.length(); if (size != NATIONAL_IDENTIFICATION_NUMBER_LENGTH) { return false; } int checksum = Integer.parseInt(nationalIdentificationNumber.substring(size - 1)); int checkDigit = calculateChecksum(nationalIdentificationNumber); return checkDigit == checksum; } private int calculateSexCode(Person.Sex sex) { return SEX_FIELDS[baseProducer.randomInt(SEX_FIELDS.length - 1)] + (sex == Person.Sex.MALE ? 1 : 0); } public static int calculateChecksum(String nationalIdentificationNumber) { String nationalIdentificationNumberWithoutHyphen = nationalIdentificationNumber.replace("-", ""); int sum = 0; int i = 0; for (int weight : WEIGHTS) { int digit = Character.digit(nationalIdentificationNumberWithoutHyphen.charAt(i++), 10); int product = digit * weight; sum += (product / 10) + (product % 10); } if (sum % 10 == 0) { return 0; } return TEN - (sum % 10); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/sv/SvNationalIdentityCardNumberProvider.java ================================================ package com.devskiller.jfairy.producer.person.locale.sv; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.person.NationalIdentityCardNumberProvider; /** * Swedish Identity Card Number (random number implementation) */ public class SvNationalIdentityCardNumberProvider implements NationalIdentityCardNumberProvider { private final BaseProducer baseProducer; public SvNationalIdentityCardNumberProvider(BaseProducer baseProducer) { this.baseProducer = baseProducer; } @Override public String get() { return baseProducer.randomNumeric(8); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/sv/SvPassportNumberProvider.java ================================================ package com.devskiller.jfairy.producer.person.locale.sv; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.person.PassportNumberProvider; /** * Swedish Passport Number (random number implementation) */ public class SvPassportNumberProvider implements PassportNumberProvider { private final BaseProducer baseProducer; public SvPassportNumberProvider(BaseProducer baseProducer) { this.baseProducer = baseProducer; } @Override public String get() { return baseProducer.randomNumeric(8); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/tr/TrAddress.java ================================================ package com.devskiller.jfairy.producer.person.locale.tr; import com.devskiller.jfairy.producer.person.locale.ContinentalAddress; public class TrAddress extends ContinentalAddress { public TrAddress(String streetNumber, String street, String apartmentNumber, String postalCode, String city) { super(street, streetNumber, apartmentNumber, postalCode, city); } @Override protected String getStreetNumberSeparator() { return " No: "; } @Override protected String getApartmentMark() { return " Daire: "; } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/tr/TrAddressProvider.java ================================================ package com.devskiller.jfairy.producer.person.locale.tr; import com.devskiller.jfairy.data.DataMaster; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.person.AbstractAddressProvider; public class TrAddressProvider extends AbstractAddressProvider { public TrAddressProvider(DataMaster dataMaster, BaseProducer baseProducer) { super(dataMaster, baseProducer); } @Override public TrAddress get() { return new TrAddress(getStreetNumber(), getStreet(), getApartmentNumber(), getPostalCode(), getCity()); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/tr/TrNationalIdentityCardNumberProvider.java ================================================ package com.devskiller.jfairy.producer.person.locale.tr; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.person.NationalIdentityCardNumberProvider; /** * Turkish T.C. Kimlik No generator. * 11 digits. * 1st digit cannot be 0. * 10th digit = ((sum(1,3,5,7,9) * 7) - sum(2,4,6,8)) % 10. * 11th digit = (sum(1..10)) % 10. */ public class TrNationalIdentityCardNumberProvider implements NationalIdentityCardNumberProvider { private final BaseProducer baseProducer; public TrNationalIdentityCardNumberProvider(BaseProducer baseProducer) { this.baseProducer = baseProducer; } @Override public String get() { int[] digits = new int[11]; digits[0] = baseProducer.randomBetween(1, 9); for (int i = 1; i < 9; i++) { digits[i] = baseProducer.randomBetween(0, 9); } int oddSum = digits[0] + digits[2] + digits[4] + digits[6] + digits[8]; int evenSum = digits[1] + digits[3] + digits[5] + digits[7]; int d10 = ((oddSum * 7) - evenSum) % 10; if (d10 < 0) { d10 += 10; } digits[9] = d10; int totalSum = 0; for (int i = 0; i < 10; i++) { totalSum += digits[i]; } digits[10] = totalSum % 10; StringBuilder sb = new StringBuilder(); for (int digit : digits) { sb.append(digit); } return sb.toString(); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/tr/TrPassportNumberProvider.java ================================================ package com.devskiller.jfairy.producer.person.locale.tr; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.person.PassportNumberProvider; public class TrPassportNumberProvider implements PassportNumberProvider { private final BaseProducer baseProducer; public TrPassportNumberProvider(BaseProducer baseProducer) { this.baseProducer = baseProducer; } @Override public String get() { return "U" + String.format("%08d", baseProducer.randomBetween(1, 99999999)); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/zh/ZhAddress.java ================================================ package com.devskiller.jfairy.producer.person.locale.zh; import com.devskiller.jfairy.producer.person.locale.AbstractAddress; /** * com.devskiller.jfairy.producer.person.locale.zh.ZhAddress * * @author lhfcws * @since 2017/3/2 */ public class ZhAddress extends AbstractAddress { private static final String CITY = "市"; private static final String NUMBER = "号"; private static final String ROOM = "房"; private static final String POSTCODE = "邮编"; public ZhAddress(String streetNumber, String street, String apartmentNumber, String city, String postalCode) { super(street, streetNumber, apartmentNumber, postalCode, city); } @Override public String getAddressLine1() { String line = city + CITY + street + streetNumber + NUMBER; if (!apartmentNumber.isEmpty()) { return line + " " + apartmentNumber + ROOM; } else { return line; } } @Override public String getAddressLine2() { return POSTCODE + " " + postalCode; } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/zh/ZhAddressProvider.java ================================================ package com.devskiller.jfairy.producer.person.locale.zh; import com.devskiller.jfairy.data.DataMaster; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.person.AbstractAddressProvider; import com.devskiller.jfairy.producer.person.Address; /** * com.devskiller.jfairy.producer.person.locale.zh.ZhAddressProvider * * @author lhfcws * @since 2017/3/2 */ public class ZhAddressProvider extends AbstractAddressProvider { public ZhAddressProvider(DataMaster dataMaster, BaseProducer baseProducer) { super(dataMaster, baseProducer); } @Override public Address get() { return new ZhAddress(getStreetNumber(), getStreet(), getApartmentNumber(), getCity(), getPostalCode()); } @Override public String getApartmentNumber() { if (baseProducer.trueOrFalse()) { String floor = String.valueOf(baseProducer.randomInt(38)); String room = "0" + baseProducer.randomInt(8); return floor + room; } else { return ""; } } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/zh/ZhNationalIdentityCardNumberProvider.java ================================================ package com.devskiller.jfairy.producer.person.locale.zh; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.DateProducer; import com.devskiller.jfairy.producer.TimeProvider; import com.devskiller.jfairy.producer.person.NationalIdentityCardNumberProvider; import com.devskiller.jfairy.producer.util.ZhFairyUtil; /** * Chinese National Identity Card Number, total 18 digits * * @author Lhfcws * @since 27.02.17 */ public class ZhNationalIdentityCardNumberProvider implements NationalIdentityCardNumberProvider { /** * The last 4 digit is an order number from 0001 to 9999 */ private static final int ORDER_MAX = 9999; private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("yyyyMMdd"); private final BaseProducer baseProducer; private final DateProducer dateProducer; public ZhNationalIdentityCardNumberProvider(BaseProducer baseProducer) { this.baseProducer = baseProducer; this.dateProducer = new DateProducer(baseProducer, new TimeProvider()); } @Override public String get() { StringBuilder idBuilder = new StringBuilder(); idBuilder.append(baseProducer.randomElement(ZhFairyUtil.PROV_LIST)); idBuilder.append(ZhFairyUtil.getRandomNumStr(baseProducer, ZhFairyUtil.CITY_MAX, 2)); idBuilder.append(ZhFairyUtil.getRandomNumStr(baseProducer, ZhFairyUtil.DISTRICT_MAX, 2)); idBuilder.append(getBirthDate()); idBuilder.append(ZhFairyUtil.getRandomNumStr(baseProducer, ORDER_MAX, 4)); return idBuilder.toString(); } private String getBirthDate() { LocalDateTime birthDate = this.dateProducer.randomDateInThePast(50); return FORMATTER.format(birthDate); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/zh/ZhPassportNumberProvider.java ================================================ package com.devskiller.jfairy.producer.person.locale.zh; import com.devskiller.jfairy.producer.BaseProducer; import com.devskiller.jfairy.producer.person.PassportNumberProvider; /** * com.devskiller.jfairy.producer.person.locale.zh.ZhPassportNumberProvider * * @author lhfcws * @since 2017/3/2 */ public class ZhPassportNumberProvider implements PassportNumberProvider { private final BaseProducer baseProducer; public ZhPassportNumberProvider(BaseProducer baseProducer) { this.baseProducer = baseProducer; } @Override public String get() { return baseProducer.randomAlphanumeric(9); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/text/TextProducer.java ================================================ /* * Copyright (c) 2013 Codearte */ package com.devskiller.jfairy.producer.text; import java.util.ArrayList; import java.util.List; import com.devskiller.jfairy.producer.BaseProducer; import static com.devskiller.jfairy.producer.util.StringUtils.joinWithSpace; import static com.devskiller.jfairy.producer.util.StringUtils.left; public class TextProducer { private static final int DEFAULT_WORD_COUNT = 3; private static final int DEFAULT_WORD_COUNT_IN_SENTENCE = 3; private static final int DEFAULT_SENTENCE_COUNT = 3; private static final int SENTENCE_COUNT_PRECISION_MIN = 1; private static final int SENTENCE_COUNT_PRECISION_MAX = 3; private final TextProducerInternal textProducerInternal; private final BaseProducer baseProducer; private int limit = 0; public TextProducer(TextProducerInternal textProducerInternal, BaseProducer baseProducer) { this.textProducerInternal = textProducerInternal; this.baseProducer = baseProducer; } public TextProducer limitedTo(int limit) { this.limit = limit; return this; } public String result(String result) { if (limit > 0) { return left(result, limit); } else { return result; } } public String loremIpsum() { return result(textProducerInternal.loremIpsum()); } public String text() { return result(textProducerInternal.text()); } public String word() { return result(word(DEFAULT_WORD_COUNT)); } public String word(int count) { return result(textProducerInternal.cleanWords(count)); } public String latinWord() { return result(latinWord(DEFAULT_WORD_COUNT)); } public String latinWord(int count) { return result(textProducerInternal.cleanLatinWords(count)); } public String latinSentence() { return result(latinSentence(DEFAULT_SENTENCE_COUNT)); } public String latinSentence(int wordCount) { return result(textProducerInternal.latinSentence(wordCount)); } public String sentence() { return result(sentence(DEFAULT_WORD_COUNT_IN_SENTENCE)); } public String sentence(int wordCount) { return result(textProducerInternal.sentence(wordCount)); } private List sentences(int sentenceCount) { List sentences = new ArrayList<>(sentenceCount); for (int i = 0; i < sentenceCount; i++) { sentences.add(sentence()); } return sentences; } public String paragraph() { return result(paragraph(DEFAULT_SENTENCE_COUNT)); } public String paragraph(int sentenceCount) { return result(joinWithSpace(sentences(sentenceCount + baseProducer.randomBetween(SENTENCE_COUNT_PRECISION_MIN, SENTENCE_COUNT_PRECISION_MAX)))); } /** * Generates random string with desired length * * @param charsCount string length * @return random string */ public String randomString(int charsCount) { return textProducerInternal.randomString(charsCount); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/text/TextProducerInternal.java ================================================ /* * Copyright (c) 2013. Codearte */ package com.devskiller.jfairy.producer.text; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import com.devskiller.jfairy.data.DataMaster; import com.devskiller.jfairy.producer.BaseProducer; import static com.devskiller.jfairy.producer.util.StringUtils.capitalize; import static com.devskiller.jfairy.producer.util.StringUtils.joinWithSpace; import static com.devskiller.jfairy.producer.util.StringUtils.replaceChars; import static com.devskiller.jfairy.producer.util.StringUtils.split; import static com.devskiller.jfairy.producer.util.StringUtils.uncapitalize; /** * Internal component for generating and formatting random text, sentences, and words. *

* This class handles the low-level string manipulations for both standard and * Latin-based (Lorem Ipsum) text generation. * * @author jkubrynski@gmail.com * @since 2013-11-16 */ public class TextProducerInternal { private static final String LOREM_IPSUM = "loremIpsum"; private static final String TEXT = "text"; private static final String ALPHABET = "alphabet"; private static final int WORD_COUNT_PRECISION_IN_SENTENCE = 6; private final BaseProducer baseProducer; private final String loremIpsum; private final String text; private final List words; private final String alphabet; private final int maxAlphabetIndex; private final List latinWords; public TextProducerInternal(DataMaster dataMaster, BaseProducer baseProducer) { this.baseProducer = baseProducer; loremIpsum = dataMaster.getString(LOREM_IPSUM); text = dataMaster.getString(TEXT); words = new ArrayList<>(Arrays.asList(split(text, ' '))); latinWords = new ArrayList<>(Arrays.asList(split(loremIpsum, ' '))); alphabet = dataMaster.getString(ALPHABET); maxAlphabetIndex = alphabet.length() - 1; } /** * Returns the raw Lorem Ipsum template string. * * @return the full lorem ipsum text */ public String loremIpsum() { return loremIpsum; } /** * Generates a space-separated string of random words. * * @param words source list of words * @param count base number of words * @param precision maximum additional random words to add * @return a string containing the random words */ public String rawWords(List words, int count, int precision) { List result = readRawWords(words, count, precision); return joinWithSpace(result); } /** * Returns a list of cleaned Latin words without punctuation. * * @param count number of words to return * @return a space-separated string of lowercase Latin words */ public String cleanLatinWords(int count) { return cleanWords(latinWords, count); } /** * Returns a list of cleaned standard words without punctuation. * * @param count number of words to return * @return a space-separated string of lowercase words */ public String cleanWords(int count) { return cleanWords(words, count); } private String cleanWords(List words, int count) { List result = new ArrayList<>(); for (String part : readRawWords(words, count, 0)) { // efficiently remove punctuation and lowercase result.add(uncapitalize(replaceChars(part, "., ", ""))); } return joinWithSpace(result); } /** * Generates a random string of a specific length using the configured alphabet. * * @param charsCount the desired length of the string * @return a random string */ public String randomString(int charsCount) { StringBuilder sb = new StringBuilder(charsCount); for (int i = 0; i < charsCount; i++) { sb.append(alphabet.charAt(baseProducer.randomInt(maxAlphabetIndex))); } return sb.toString(); } private List readRawWords(List words, int count, int precision) { return baseProducer.randomElements(words, baseProducer.randomBetween(count, count + precision)); } /** * Returns the raw standard text template. * * @return the base text string */ public String text() { return text; } /** * Generates a formatted sentence from standard words. * * @param wordCount number of words in the sentence * @return a formatted sentence */ public String sentence(int wordCount) { return sentence(words, wordCount); } /** * Generates a formatted sentence from Latin words. * * @param wordCount number of words in the sentence * @return a formatted Latin sentence */ public String latinSentence(int wordCount) { return sentence(latinWords, wordCount); } private String sentence(List words, int wordCount) { String randomWords = rawWords(words, wordCount, WORD_COUNT_PRECISION_IN_SENTENCE); if (randomWords == null || randomWords.isEmpty()) { return "."; } // simplified logic: capitalize and ensure proper ending String result = capitalize(randomWords).trim(); // clean up trailing commas from random selection if (result.endsWith(",")) { result = result.substring(0, result.length() - 1); } // enforce single trailing period if (!result.endsWith(".")) { result += "."; } return result; } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/util/AlphaNumberSystem.java ================================================ package com.devskiller.jfairy.producer.util; import java.util.ArrayList; import java.util.Collections; import java.util.List; /** * Utility class for alpha-numeric system operations. *

* Provides methods to handle alphabet-based numbering and conversions. */ public final class AlphaNumberSystem { private static final int ALPHABET_SIZE = 26; private AlphaNumberSystem() { throw new UnsupportedOperationException( "Utility class " + getClass().getSimpleName() + " cannot be instantiated"); } /** * Generates an immutable list of all uppercase alphabet characters. *

* @return an unmodifiable list of characters from A to Z */ public static List generateAlphabetList() { List alphabetList = new ArrayList<>(ALPHABET_SIZE); for (char letter = 'A'; letter <= 'Z'; letter++) { alphabetList.add(letter); } return Collections.unmodifiableList(alphabetList); } /** * Converts a given number to a string representation based on the provided radix. *

* The conversion maps values to the uppercase alphabet (A-Z). * * @param numberToConvert the non-negative integer value to convert * @param base the radix to be used for conversion (1-26) * @return a string representation of the number * @throws IllegalArgumentException if numberToConvert is negative or base is out of range */ public static String convertToString(final int numberToConvert, final int base) { if (numberToConvert < 0) { throw new IllegalArgumentException("Number to convert must be non-negative"); } if (base <= 0 || base > ALPHABET_SIZE) { throw new IllegalArgumentException("Base must be between 1 and " + ALPHABET_SIZE); } // Use a safe buffer size for the conversion // For base 1, the length is the number itself; for others it's log based. int bufferLength = (base == 1) ? Math.max(1, numberToConvert) : (int) (Math.log(Math.max(1, numberToConvert)) / Math.log(base)) + 1; final char[] buffer = new char[bufferLength]; int charPosition = buffer.length - 1; int number = numberToConvert; if (number == 0) { buffer[charPosition--] = 'A'; } else if (base == 1) { for (int i = 0; i < numberToConvert; i++) { buffer[charPosition--] = 'A'; } } else { while (number > 0) { buffer[charPosition--] = (char) ('A' + (number % base)); number /= base; } } return new String(buffer, charPosition + 1, buffer.length - charPosition - 1); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/util/LanguageCode.java ================================================ package com.devskiller.jfairy.producer.util; /** * Supported language and country codes for data localization. *

* This enumeration defines the available locales for which the producers * can generate localized data like names, addresses, or company details. * * @author Olga Maciaszek-Sharma * @since 21.03.15 */ public enum LanguageCode { PL, EN, ES, FR, KA, IT, DE, SV, ZH, BR, SK, TR } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/util/StringUtils.java ================================================ package com.devskiller.jfairy.producer.util; import java.text.Normalizer; import java.util.List; import java.util.Locale; import org.jspecify.annotations.Nullable; /** * Utility class providing string manipulation helpers used throughout jFairy. * *

Methods are intentionally minimal: only functionality actually required by * the library is implemented. The API deliberately mirrors the subset of * {@code org.apache.commons.lang3.StringUtils} that was in use, so migration * of call-sites is mechanical. * *

Null-handling contract: every method that accepts a {@link String} * parameter documents its null-behavior explicitly. Methods annotated * {@code @Nullable} on the parameter accept {@code null}; all others require * non-null input and will throw {@link NullPointerException} if passed * {@code null}. * * @author Markus Spann * @since 2026/03/14 */ public final class StringUtils { /** Prevent instantiation of this utility class. */ private StringUtils() { throw new UnsupportedOperationException( "Utility class " + getClass().getSimpleName() + " cannot be instantiated"); } // ------------------------------------------------------------------------- // Blank / empty checks // ------------------------------------------------------------------------- /** * Returns {@code true} when the string is neither {@code null}, nor empty, * nor contains only whitespace characters. * * @param s the string to check; may be {@code null} * @return {@code true} if {@code s} has at least one non-whitespace character */ public static boolean isNotBlank(@Nullable String s) { return s != null && !s.isBlank(); } /** * Returns {@code true} when the string is neither {@code null} nor empty * (length zero). A string containing only whitespace is considered * not empty. * * @param s the string to check; may be {@code null} * @return {@code true} if {@code s} is non-null and has length > 0 */ public static boolean isNotEmpty(@Nullable String s) { return s != null && !s.isEmpty(); } // ------------------------------------------------------------------------- // Case conversion // ------------------------------------------------------------------------- /** * Converts all characters in {@code s} to lower case using the rules of the * default locale. * * @param s the string to convert; must not be {@code null} * @return lower-case version of {@code s} */ public static String lowerCase(String s) { return s.toLowerCase(Locale.ROOT); } /** * Capitalizes the first character of {@code s} (converts it to upper case) * and leaves the rest unchanged. * * @param s the string to capitalize; must not be {@code null} * @return the string with its first character in upper case, or {@code s} * unchanged if it is empty */ public static String capitalize(String s) { if (s.isEmpty()) { return s; } return Character.toUpperCase(s.charAt(0)) + s.substring(1); } /** * Un-capitalizes the first character of {@code s} (converts it to lower * case) and leaves the rest unchanged. * * @param s the string to un-capitalize; must not be {@code null} * @return the string with its first character in lower case, or {@code s} * unchanged if it is empty */ public static String uncapitalize(String s) { if (s.isEmpty()) { return s; } return Character.toLowerCase(s.charAt(0)) + s.substring(1); } // ------------------------------------------------------------------------- // Padding // ------------------------------------------------------------------------- /** * Left-pads {@code s} with the character {@code padChar} until its length * reaches {@code size}. If {@code s} is already at least {@code size} * characters long, it is returned unchanged. * * @param s the string to pad; must not be {@code null} * @param size the desired minimum length * @param padChar the padding character * @return the padded string */ public static String leftPad(String s, int size, char padChar) { int pads = size - s.length(); if (pads <= 0) { return s; } return String.valueOf(padChar).repeat(pads) + s; } /** * Left-pads {@code s} with the first character of {@code padStr} until its * length reaches {@code size}. If {@code s} is already at least {@code size} * characters long, it is returned unchanged. * * @param s the string to pad; must not be {@code null} * @param size the desired minimum length * @param padStr the padding string (only the first character is used); * must not be {@code null} or empty * @return the padded string */ public static String leftPad(String s, int size, String padStr) { return leftPad(s, size, padStr.charAt(0)); } // ------------------------------------------------------------------------- // Trimming / stripping // ------------------------------------------------------------------------- /** * Removes leading and trailing occurrences of any character in * {@code stripChars} from {@code s}. * *

Example: {@code strip("...hello...", ".")} returns {@code "hello"}. * * @param s the string to strip; must not be {@code null} * @param stripChars the characters to strip; must not be {@code null} * @return the stripped string */ public static String strip(String s, String stripChars) { int start = 0; int end = s.length(); while (start < end && stripChars.indexOf(s.charAt(start)) >= 0) { start++; } while (end > start && stripChars.indexOf(s.charAt(end - 1)) >= 0) { end--; } return s.substring(start, end); } /** * Removes all whitespace characters from {@code s}. * *

Whitespace is defined by {@link Character#isWhitespace(int)}. * * @param s the string; must not be {@code null} * @return the string with all whitespace removed */ public static String deleteWhitespace(String s) { int len = s.length(); StringBuilder sb = new StringBuilder(len); for (int i = 0; i < len; i++) { char c = s.charAt(i); if (!Character.isWhitespace(c)) { sb.append(c); } } return sb.length() == len ? s : sb.toString(); } // ------------------------------------------------------------------------- // Splitting / joining // ------------------------------------------------------------------------- /** * Splits {@code s} on the given delimiter character and returns the parts * as an array. Unlike {@link String#split(String)} this method never * discards trailing empty strings (equivalent to passing {@code -1} as the * limit to {@link String#split(String, int)}). * *

Example: {@code split("a b c", ' ')} returns {@code ["a", "b", "c"]}. * * @param s the string to split; must not be {@code null} * @param separator the delimiter character * @return array of parts; never {@code null}, never empty */ public static String[] split(String s, char separator) { return s.split(String.valueOf(separator), -1); } /** * Joins the elements of {@code parts} with a single space character between * each element. * *

Example: {@code joinWithSpace(List.of("hello", "world"))} returns * {@code "hello world"}. * * @param parts the list of strings to join; must not be {@code null} * @return the joined string; an empty string if {@code parts} is empty */ public static String joinWithSpace(List parts) { return String.join(" ", parts); } // ------------------------------------------------------------------------- // Substring operations // ------------------------------------------------------------------------- /** * Returns the left-most {@code len} characters of {@code s}, or {@code s} * itself if its length is less than or equal to {@code len}. * * @param s the string; must not be {@code null} * @param len the maximum number of characters to return; must be >= 0 * @return the left-most {@code len} characters */ public static String left(String s, int len) { if (len >= s.length()) { return s; } return s.substring(0, len); } /** * Removes the given {@code suffix} from the end of {@code s}, if present. * If {@code s} does not end with {@code suffix}, it is returned unchanged. * * @param s the string; must not be {@code null} * @param suffix the suffix to remove; must not be {@code null} * @return the string without the trailing suffix */ public static String removeEnd(String s, String suffix) { if (s.endsWith(suffix)) { return s.substring(0, s.length() - suffix.length()); } return s; } /** * Returns {@code true} if {@code s} ends with {@code suffix}. * Equivalent to {@link String#endsWith} but provided for API symmetry with * the other methods in this class. * * @param s the string; must not be {@code null} * @param suffix the suffix; must not be {@code null} * @return {@code true} if {@code s} ends with {@code suffix} */ public static boolean endsWith(String s, String suffix) { return s.endsWith(suffix); } // ------------------------------------------------------------------------- // Search / replace // ------------------------------------------------------------------------- /** * Replaces all occurrences of {@code searchString} with {@code replacement} * in {@code s}. * * @param s the source string; must not be {@code null} * @param searchString the literal string to search for; must not be * {@code null} * @param replacement the replacement string; must not be {@code null} * @return the modified string, or {@code s} if no occurrences were found */ public static String replace(String s, String searchString, String replacement) { return s.replace(searchString, replacement); } /** * Replaces all characters in {@code s} that appear in {@code searchChars} * with the corresponding character at the same index in * {@code replaceChars}. * *

Characters in {@code searchChars} that have no corresponding entry in * {@code replaceChars} are deleted from the result. * *

Example: {@code replaceChars("hello.world, ", "., ", "---")} returns * {@code "hello-world-"}. * * @param s the string; must not be {@code null} * @param searchChars the characters to search for; must not be {@code null} * @param replaceChars the replacement characters; may be shorter than * {@code searchChars} * @return the modified string */ public static String replaceChars(String s, String searchChars, String replaceChars) { StringBuilder sb = new StringBuilder(s.length()); for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); int idx = searchChars.indexOf(c); if (idx < 0) { // character not in search set – keep as-is sb.append(c); } else if (idx < replaceChars.length()) { // character has a replacement sb.append(replaceChars.charAt(idx)); } // else: character is in search set but beyond replaceChars length – delete it } return sb.toString(); } // ------------------------------------------------------------------------- // Unicode / accent stripping // ------------------------------------------------------------------------- /** * Converts accented and special characters to their ASCII equivalents, * e.g. for use in email addresses, usernames or domain names. * *

Handles characters that survive Unicode NFD normalization: * {@code ß} becomes {@code ss}, {@code ł/Ł} becomes {@code l/L}. * * @param s the string to process; must not be {@code null} * @return the latinized string */ public static String latinize(String s) { if (s.isEmpty()) { return s; } // handle special characters that survive NFD normalization String result = s.replace("ł", "l") .replace("Ł", "L") .replace("ß", "ss"); // decompose and filter remaining diacritics String normalized = Normalizer.normalize(result, Normalizer.Form.NFD); StringBuilder sb = new StringBuilder(normalized.length()); for (int i = 0; i < normalized.length(); i++) { char c = normalized.charAt(i); // Character.getType(c) == Character.NON_SPACING_MARK corresponds to \p{Mn} if (Character.getType(c) != Character.NON_SPACING_MARK) { sb.append(c); } } return sb.toString(); } // ------------------------------------------------------------------------- // Non-ASCII escaping // ------------------------------------------------------------------------- /** * Escapes all non-ASCII characters in {@code input} as Unicode escape sequences. *

* ASCII characters (codepoints 0x00–0x7F) are passed through unchanged. * Returns {@code null} when {@code input} is {@code null}. * * @param input the string to escape; may be {@code null} * @return the escaped string, or {@code null} if {@code input} is {@code null} */ public static @Nullable String escapeNonAscii(@Nullable String input) { if (input == null) { return null; } StringBuilder sb = new StringBuilder(input.length()); for (int i = 0; i < input.length(); i++) { char c = input.charAt(i); if (c > 0x7f) { sb.append(String.format("\\u%04x", (int) c)); } else { sb.append(c); } } return sb.toString(); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/util/ValidateUtils.java ================================================ package com.devskiller.jfairy.producer.util; import org.jspecify.annotations.Nullable; /** * Utility class providing argument-validation helpers. * *

Methods throw {@link IllegalArgumentException} on failure. * * @author Markus Spann * @since 2026/03/14 */ public final class ValidateUtils { /** Prevent instantiation of this utility class. */ private ValidateUtils() { throw new UnsupportedOperationException( "Utility class " + getClass().getSimpleName() + " cannot be instantiated"); } /** * Validates that {@code value} is not {@code null}. * * @param the type of the object being validated * @param value the value to check * @param message the detail message used in the exception; may contain * {@link String#format} placeholders * @param args optional arguments for {@code message} * @return {@code value}, guaranteed non-null, for convenient inline use * @throws IllegalArgumentException if {@code value} is {@code null} */ @SuppressWarnings("AnnotateFormatMethod") public static T notNull(@Nullable T value, String message, Object... args) { if (value == null) { throw new IllegalArgumentException( args.length == 0 ? message : String.format(message, args)); } return value; } /** * Validates that {@code expression} is {@code true}. * * @param expression the boolean expression to check * @param message the detail message used in the exception; may contain * {@link String#format} placeholders * @param args optional arguments for {@code message} * @throws IllegalArgumentException if {@code expression} is {@code false} */ @SuppressWarnings("AnnotateFormatMethod") public static void isTrue(boolean expression, String message, Object... args) { if (!expression) { throw new IllegalArgumentException( args.length == 0 ? message : String.format(message, args)); } } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/util/ZhFairyUtil.java ================================================ package com.devskiller.jfairy.producer.util; import java.util.List; import com.devskiller.jfairy.producer.BaseProducer; /** * com.devskiller.jfairy.producer.util.ZhFairyUtil * * @author lhfcws * @since 2017/3/10 */ public final class ZhFairyUtil { private ZhFairyUtil() {} /** * Codes of China provinces */ public static final List PROV_LIST = List.of( "11", // Beijing "12", // Tianjin "13", // Hebei "14", // Shanxi "15", // Neimenggu "21", // Liaoning "22", // Jilin "23", // Heilongjiang "31", // Shanghai "32", // Jiangsu "33", // Zhejiang "34", // Anhui "35", // Fujian "36", // Jiangxi "41", // Henan "42", // Hubei "43", // Hunan "44", // Guangdong "45", // Guangxi "46", // Hainan "50", // Chongqing "51", // Sichuan "52", // Guizhou "53", // Yunnan "54", // Xizang "61", // Shaanxi "62", // Gansu "63", // Qinghai "64", // Ningxia "65", // Xinjiang "71", // Taiwan "81", // Hong Kong "82" // Macau ); /** * Max code of city */ public static final int CITY_MAX = 30; /** * Max code of city district */ public static final int DISTRICT_MAX = 12; /** * Get random number from 1 to max in 0 leading string format. * @param baseProducer BaseProducer * @param max upper bound of number * @param paddingSize padding size * @return A number smaller than #max with #paddingSize digits in string format */ public static String getRandomNumStr(BaseProducer baseProducer, int max, int paddingSize) { int rndNum = baseProducer.randomBetween(1, max); StringBuilder numStr = new StringBuilder("" + rndNum); while (numStr.length() < paddingSize) { numStr.insert(0, "0"); } return numStr.toString(); } } ================================================ FILE: src/main/java/com/devskiller/jfairy/producer/util/package-info.java ================================================ /** * Internal utility classes for the jFairy fake data producer. * *

This package contains stateless helper utilities used across the library: *

    *
  • {@link com.devskiller.jfairy.producer.util.StringUtils} – string manipulation * (padding, trimming, case conversion, accent stripping, joining, splitting, …)
  • *
  • {@link com.devskiller.jfairy.producer.util.ValidateUtils} – argument validation * ({@code notNull}, {@code isTrue})
  • *
  • {@link com.devskiller.jfairy.producer.util.AlphaNumberSystem} – base-26 encoding * used for identity-card number generation
  • *
* *

All classes in this package are not part of the public API and may * change without notice between releases. */ @NullMarked package com.devskiller.jfairy.producer.util; import org.jspecify.annotations.NullMarked; ================================================ FILE: src/main/resources/jfairy.yml ================================================ creditCardPrefixes: { Visa: [4] } lastNames: { male: [Abbott, Acevedo, Acosta, Adams, Adkins, Aguilar, Aguirre, Albert, Alexander, Alford, Allen, Allison, Alston, Alvarado, Alvarez, Anderson, Andrews, Anthony, Armstrong, Arnold, Ashley, Atkins, Atkinson, Austin, Avery, Avila, Ayala, Ayers, Bailey, Baird, Baker, Baldwin, Ball, Ballard, Banks, Barber, Barker, Barlow, Barnes, Barnett, Barr, Barrera, Barrett, Barron, Barry, Bartlett, Barton, Bass, Bates, Battle, Bauer, Baxter, Beach, Bean, Beard, Beasley, Beck, Becker, Bell, Bender, Benjamin, Bennett, Benson, Bentley, Benton, Berg, Berger, Bernard, Berry, Best, Bird, Bishop, Black, Blackburn, Blackwell, Blair, Blake, Blanchard, Blankenship, Blevins, Bolton, Bond, Bonner, Booker, Boone, Booth, Bowen, Bowers, Bowman, Boyd, Boyer, Boyle, Bradford, Bradley, Bradshaw, Brady, Branch, Bray, Brennan, Brewer, Bridges, Briggs, Bright, Britt, Brock, Brooks, Brown, Browning, Bruce, Bryan, Bryant, Buchanan, Buck, Buckley, Buckner, Bullock, Burch, Burgess, Burke, Burks, Burnett, Burns, Burris, Burt, Burton, Bush, Butler, Byers, Byrd, Cabrera, Cain, Calderon, Caldwell, Calhoun, Callahan, Camacho, Cameron, Campbell, Campos, Cannon, Cantrell, Cantu, Cardenas, Carey, Carlson, Carney, Carpenter, Carr, Carrillo, Carroll, Carson, Carter, Carver, Case, Casey, Cash, Castaneda, Castillo, Castro, Cervantes, Chambers, Chan, Chandler, Chaney, Chang, Chapman, Charles, Chase, Chavez, Chen, Cherry, Christensen, Christian, Church, Clark, Clarke, Clay, Clayton, Clements, Clemons, Cleveland, Cline, Cobb, Cochran, Coffey, Cohen, Cole, Coleman, Collier, Collins, Colon, Combs, Compton, Conley, Conner, Conrad, Contreras, Conway, Cook, Cooke, Cooley, Cooper, Copeland, Cortez, Cote, Cotton, Cox, Craft, Craig, Crane, Crawford, Crosby, Cross, Cruz, Cummings, Cunningham, Curry, Curtis, Dale, Dalton, Daniel, Daniels, Daugherty, Davenport, David, Davidson, Davis, Dawson, Day, Dean, Decker, Dejesus, Delacruz, Delaney, Deleon, Delgado, Dennis, Diaz, Dickerson, Dickson, Dillard, Dillon, Dixon, Dodson, Dominguez, Donaldson, Donovan, Dorsey, Dotson, Douglas, Downs, Doyle, Drake, Dudley, Duffy, Duke, Duncan, Dunlap, Dunn, Duran, Durham, Dyer, Eaton, Edwards, Elliott, Ellis, Ellison, Emerson, England, English, Erickson, Espinoza, Estes, Estrada, Evans, Everett, Ewing, Farley, Farmer, Farrell, Faulkner, Ferguson, Fernandez, Ferrell, Fields, Figueroa, Finch, Finley, Fischer, Fisher, Fitzgerald, Fitzpatrick, Fleming, Fletcher, Flores, Flowers, Floyd, Flynn, Foley, Forbes, Ford, Foreman, Foster, Fowler, Fox, Francis, Franco, Frank, Franklin, Franks, Frazier, Frederick, Freeman, French, Frost, Fry, Frye, Fuentes, Fuller, Fulton, Gaines, Gallagher, Gallegos, Galloway, Gamble, Garcia, Gardner, Garner, Garrett, Garrison, Garza, Gates, Gay, Gentry, George, Gibbs, Gibson, Gilbert, Giles, Gill, Gillespie, Gilliam, Gilmore, Glass, Glenn, Glover, Goff, Golden, Gomez, Gonzales, Gonzalez, Good, Goodman, Goodwin, Gordon, Gould, Graham, Grant, Graves, Gray, Green, Greene, Greer, Gregory, Griffin, Griffith, Grimes, Gross, Guerra, Guerrero, Guthrie, Gutierrez, Guy, Guzman, Hahn, Hale, Haley, Hall, Hamilton, Hammond, Hampton, Hancock, Haney, Hansen, Hanson, Hardin, Harding, Hardy, Harmon, Harper, Harrell, Harrington, Harris, Harrison, Hart, Hartman, Harvey, Hatfield, Hawkins, Hayden, Hayes, Haynes, Hays, Head, Heath, Hebert, Henderson, Hendricks, Hendrix, Henry, Hensley, Henson, Herman, Hernandez, Herrera, Herring, Hess, Hester, Hewitt, Hickman, Hicks, Higgins, Hill, Hines, Hinton, Hobbs, Hodge, Hodges, Hoffman, Hogan, Holcomb, Holden, Holder, Holland, Holloway, Holman, Holmes, Holt, Hood, Hooper, Hoover, Hopkins, Hopper, Horn, Horne, Horton, House, Houston, Howard, Howe, Howell, Hubbard, Huber, Hudson, Huff, Huffman, Hughes, Hull, Humphrey, Hunt, Hunter, Hurley, Hurst, Hutchinson, Hyde, Ingram, Irwin, Jackson, Jacobs, Jacobson, James, Jarvis, Jefferson, Jenkins, Jennings, Jensen, Jimenez, Johns, Johnson, Johnston, Jones, Jordan, Joseph, Joyce, Joyner, Juarez, Justice, Kane, Kaufman, Keith, Keller, Kelley, Kelly, Kemp, Kennedy, Kent, Kerr, Key, Kidd, Kim, King, Kinney, Kirby, Kirk, Kirkland, Klein, Kline, Knapp, Knight, Knowles, Knox, Koch, Kramer, Lamb, Lambert, Lancaster, Landry, Lane, Lang, Langley, Lara, Larsen, Larson, Lawrence, Lawson, Le, Leach, Leblanc, Lee, Leon, Leonard, Lester, Levine, Levy, Lewis, Lindsay, Lindsey, Little, Livingston, Lloyd, Logan, Long, Lopez, Lott, Love, Lowe, Lowery, Lucas, Luna, Lynch, Lynn, Lyons, Macdonald, Macias, Mack, Madden, Maddox, Maldonado, Malone, Mann, Manning, Marks, Marquez, Marsh, Marshall, Martin, Martinez, Mason, Massey, Mathews, Mathis, Matthews, Maxwell, May, Mayer, Maynard, Mayo, Mays, Mcbride, Mccall, Mccarthy, Mccarty, Mcclain, Mcclure, Mcconnell, Mccormick, Mccoy, Mccray, Mccullough, Mcdaniel, Mcdonald, Mcdowell, Mcfadden, Mcfarland, Mcgee, Mcgowan, Mcguire, Mcintosh, Mcintyre, Mckay, Mckee, Mckenzie, Mckinney, Mcknight, Mclaughlin, Mclean, Mcleod, Mcmahon, Mcmillan, Mcneil, Mcpherson, Meadows, Medina, Mejia, Melendez, Melton, Mendez, Mendoza, Mercado, Mercer, Merrill, Merritt, Meyer, Meyers, Michael, Middleton, Miles, Miller, Mills, Miranda, Mitchell, Molina, Monroe, Montgomery, Montoya, Moody, Moon, Mooney, Moore, Morales, Moran, Moreno, Morgan, Morin, Morris, Morrison, Morrow, Morse, Morton, Moses, Mosley, Moss, Mueller, Mullen, Mullins, Munoz, Murphy, Murray, Myers, Nash, Navarro, Neal, Nelson, Newman, Newton, Nguyen, Nichols, Nicholson, Nielsen, Nieves, Nixon, Noble, Noel, Nolan, Norman, Norris, Norton, Nunez, Obrien, Ochoa, Oconnor, Odom, Odonnell, Oliver, Olsen, Olson, Oneal, Oneil, Oneill, Orr, Ortega, Ortiz, Osborn, Osborne, Owen, Owens, Pace, Pacheco, Padilla, Page, Palmer, Park, Parker, Parks, Parrish, Parsons, Pate, Patel, Patrick, Patterson, Patton, Paul, Payne, Pearson, Peck, Pena, Pennington, Perez, Perkins, Perry, Peters, Petersen, Peterson, Petty, Phelps, Phillips, Pickett, Pierce, Pittman, Pitts, Pollard, Poole, Pope, Porter, Potter, Potts, Powell, Powers, Pratt, Preston, Price, Prince, Pruitt, Puckett, Pugh, Quinn, Ramirez, Ramos, Ramsey, Randall, Randolph, Rasmussen, Ratliff, Ray, Raymond, Reed, Reese, Reeves, Reid, Reilly, Reyes, Reynolds, Rhodes, Rice, Rich, Richard, Richards, Richardson, Richmond, Riddle, Riggs, Riley, Rios, Rivas, Rivera, Rivers, Roach, Robbins, Roberson, Roberts, Robertson, Robinson, Robles, Rocha, Rodgers, Rodriguez, Rodriquez, Rogers, Rojas, Rollins, Roman, Romero, Rosa, Rosales, Rosario, Rose, Ross, Roth, Rowe, Rowland, Roy, Ruiz, Rush, Russell, Russo, Rutledge, Ryan, Salas, Salazar, Salinas, Sampson, Sanchez, Sanders, Sandoval, Santana, Santiago, Santos, Sargent, Saunders, Savage, Sawyer, Schmidt, Schneider, Schroeder, Schultz, Schwartz, Scott, Sears, Sellers, Serrano, Sexton, Shaffer, Shannon, Sharp, Sharpe, Shaw, Shelton, Shepard, Shepherd, Sheppard, Sherman, Shields, Short, Silva, Simmons, Simon, Simpson, Sims, Singleton, Skinner, Slater, Sloan, Small, Smith, Snider, Snow, Snyder, Solis, Solomon, Sosa, Soto, Sparks, Spears, Spence, Spencer, Stafford, Stanley, Stanton, Stark, Steele, Stein, Stephens, Stephenson, Stevens, Stevenson, Stewart, Stokes, Stone, Stout, Strickland, Strong, Stuart, Suarez, Sullivan, Summers, Sutton, Swanson, Sweeney, Sweet, Sykes, Talley, Tanner, Tate, Taylor, Terrell, Terry, Thomas, Thompson, Thornton, Tillman, Todd, Torres, Townsend, Tran, Travis, Trevino, Trujillo, Tucker, Turner, Tyler, Tyson, Underwood, Valdez, Valencia, Valentine, Valenzuela, Vance, Vang, Vargas, Vasquez, Vaughan, Vaughn, Vazquez, Vega, Velasquez, Velazquez, Velez, Villarreal, Vincent, Vinson, Wade, Wagner, Walker, Wall, Wallace, Waller, Walls, Walsh, Walter, Walters, Walton, Ward, Ware, Warner, Warren, Washington, Waters, Watkins, Watson, Watts, Weaver, Webb, Weber, Webster, Weeks, Weiss, Welch, Wells, West, Wheeler, Whitaker, White, Whitehead, Whitfield, Whitley, Whitney, Wiggins, Wilcox, Wilder, Wiley, Wilkerson, Wilkins, Wilkinson, William, Williams, Williamson, Willis, Wilson, Winters, Wise, Witt, Wolf, Wolfe, Wong, Wood, Woodard, Woods, Woodward, Wooten, Workman, Wright, Wyatt, Wynn, Yang, Yates, York, Young, Zamora, Zimmerman], female: [Abbott, Acevedo, Acosta, Adams, Adkins, Aguilar, Aguirre, Albert, Alexander, Alford, Allen, Allison, Alston, Alvarado, Alvarez, Anderson, Andrews, Anthony, Armstrong, Arnold, Ashley, Atkins, Atkinson, Austin, Avery, Avila, Ayala, Ayers, Bailey, Baird, Baker, Baldwin, Ball, Ballard, Banks, Barber, Barker, Barlow, Barnes, Barnett, Barr, Barrera, Barrett, Barron, Barry, Bartlett, Barton, Bass, Bates, Battle, Bauer, Baxter, Beach, Bean, Beard, Beasley, Beck, Becker, Bell, Bender, Benjamin, Bennett, Benson, Bentley, Benton, Berg, Berger, Bernard, Berry, Best, Bird, Bishop, Black, Blackburn, Blackwell, Blair, Blake, Blanchard, Blankenship, Blevins, Bolton, Bond, Bonner, Booker, Boone, Booth, Bowen, Bowers, Bowman, Boyd, Boyer, Boyle, Bradford, Bradley, Bradshaw, Brady, Branch, Bray, Brennan, Brewer, Bridges, Briggs, Bright, Britt, Brock, Brooks, Brown, Browning, Bruce, Bryan, Bryant, Buchanan, Buck, Buckley, Buckner, Bullock, Burch, Burgess, Burke, Burks, Burnett, Burns, Burris, Burt, Burton, Bush, Butler, Byers, Byrd, Cabrera, Cain, Calderon, Caldwell, Calhoun, Callahan, Camacho, Cameron, Campbell, Campos, Cannon, Cantrell, Cantu, Cardenas, Carey, Carlson, Carney, Carpenter, Carr, Carrillo, Carroll, Carson, Carter, Carver, Case, Casey, Cash, Castaneda, Castillo, Castro, Cervantes, Chambers, Chan, Chandler, Chaney, Chang, Chapman, Charles, Chase, Chavez, Chen, Cherry, Christensen, Christian, Church, Clark, Clarke, Clay, Clayton, Clements, Clemons, Cleveland, Cline, Cobb, Cochran, Coffey, Cohen, Cole, Coleman, Collier, Collins, Colon, Combs, Compton, Conley, Conner, Conrad, Contreras, Conway, Cook, Cooke, Cooley, Cooper, Copeland, Cortez, Cote, Cotton, Cox, Craft, Craig, Crane, Crawford, Crosby, Cross, Cruz, Cummings, Cunningham, Curry, Curtis, Dale, Dalton, Daniel, Daniels, Daugherty, Davenport, David, Davidson, Davis, Dawson, Day, Dean, Decker, Dejesus, Delacruz, Delaney, Deleon, Delgado, Dennis, Diaz, Dickerson, Dickson, Dillard, Dillon, Dixon, Dodson, Dominguez, Donaldson, Donovan, Dorsey, Dotson, Douglas, Downs, Doyle, Drake, Dudley, Duffy, Duke, Duncan, Dunlap, Dunn, Duran, Durham, Dyer, Eaton, Edwards, Elliott, Ellis, Ellison, Emerson, England, English, Erickson, Espinoza, Estes, Estrada, Evans, Everett, Ewing, Farley, Farmer, Farrell, Faulkner, Ferguson, Fernandez, Ferrell, Fields, Figueroa, Finch, Finley, Fischer, Fisher, Fitzgerald, Fitzpatrick, Fleming, Fletcher, Flores, Flowers, Floyd, Flynn, Foley, Forbes, Ford, Foreman, Foster, Fowler, Fox, Francis, Franco, Frank, Franklin, Franks, Frazier, Frederick, Freeman, French, Frost, Fry, Frye, Fuentes, Fuller, Fulton, Gaines, Gallagher, Gallegos, Galloway, Gamble, Garcia, Gardner, Garner, Garrett, Garrison, Garza, Gates, Gay, Gentry, George, Gibbs, Gibson, Gilbert, Giles, Gill, Gillespie, Gilliam, Gilmore, Glass, Glenn, Glover, Goff, Golden, Gomez, Gonzales, Gonzalez, Good, Goodman, Goodwin, Gordon, Gould, Graham, Grant, Graves, Gray, Green, Greene, Greer, Gregory, Griffin, Griffith, Grimes, Gross, Guerra, Guerrero, Guthrie, Gutierrez, Guy, Guzman, Hahn, Hale, Haley, Hall, Hamilton, Hammond, Hampton, Hancock, Haney, Hansen, Hanson, Hardin, Harding, Hardy, Harmon, Harper, Harrell, Harrington, Harris, Harrison, Hart, Hartman, Harvey, Hatfield, Hawkins, Hayden, Hayes, Haynes, Hays, Head, Heath, Hebert, Henderson, Hendricks, Hendrix, Henry, Hensley, Henson, Herman, Hernandez, Herrera, Herring, Hess, Hester, Hewitt, Hickman, Hicks, Higgins, Hill, Hines, Hinton, Hobbs, Hodge, Hodges, Hoffman, Hogan, Holcomb, Holden, Holder, Holland, Holloway, Holman, Holmes, Holt, Hood, Hooper, Hoover, Hopkins, Hopper, Horn, Horne, Horton, House, Houston, Howard, Howe, Howell, Hubbard, Huber, Hudson, Huff, Huffman, Hughes, Hull, Humphrey, Hunt, Hunter, Hurley, Hurst, Hutchinson, Hyde, Ingram, Irwin, Jackson, Jacobs, Jacobson, James, Jarvis, Jefferson, Jenkins, Jennings, Jensen, Jimenez, Johns, Johnson, Johnston, Jones, Jordan, Joseph, Joyce, Joyner, Juarez, Justice, Kane, Kaufman, Keith, Keller, Kelley, Kelly, Kemp, Kennedy, Kent, Kerr, Key, Kidd, Kim, King, Kinney, Kirby, Kirk, Kirkland, Klein, Kline, Knapp, Knight, Knowles, Knox, Koch, Kramer, Lamb, Lambert, Lancaster, Landry, Lane, Lang, Langley, Lara, Larsen, Larson, Lawrence, Lawson, Le, Leach, Leblanc, Lee, Leon, Leonard, Lester, Levine, Levy, Lewis, Lindsay, Lindsey, Little, Livingston, Lloyd, Logan, Long, Lopez, Lott, Love, Lowe, Lowery, Lucas, Luna, Lynch, Lynn, Lyons, Macdonald, Macias, Mack, Madden, Maddox, Maldonado, Malone, Mann, Manning, Marks, Marquez, Marsh, Marshall, Martin, Martinez, Mason, Massey, Mathews, Mathis, Matthews, Maxwell, May, Mayer, Maynard, Mayo, Mays, Mcbride, Mccall, Mccarthy, Mccarty, Mcclain, Mcclure, Mcconnell, Mccormick, Mccoy, Mccray, Mccullough, Mcdaniel, Mcdonald, Mcdowell, Mcfadden, Mcfarland, Mcgee, Mcgowan, Mcguire, Mcintosh, Mcintyre, Mckay, Mckee, Mckenzie, Mckinney, Mcknight, Mclaughlin, Mclean, Mcleod, Mcmahon, Mcmillan, Mcneil, Mcpherson, Meadows, Medina, Mejia, Melendez, Melton, Mendez, Mendoza, Mercado, Mercer, Merrill, Merritt, Meyer, Meyers, Michael, Middleton, Miles, Miller, Mills, Miranda, Mitchell, Molina, Monroe, Montgomery, Montoya, Moody, Moon, Mooney, Moore, Morales, Moran, Moreno, Morgan, Morin, Morris, Morrison, Morrow, Morse, Morton, Moses, Mosley, Moss, Mueller, Mullen, Mullins, Munoz, Murphy, Murray, Myers, Nash, Navarro, Neal, Nelson, Newman, Newton, Nguyen, Nichols, Nicholson, Nielsen, Nieves, Nixon, Noble, Noel, Nolan, Norman, Norris, Norton, Nunez, Obrien, Ochoa, Oconnor, Odom, Odonnell, Oliver, Olsen, Olson, Oneal, Oneil, Oneill, Orr, Ortega, Ortiz, Osborn, Osborne, Owen, Owens, Pace, Pacheco, Padilla, Page, Palmer, Park, Parker, Parks, Parrish, Parsons, Pate, Patel, Patrick, Patterson, Patton, Paul, Payne, Pearson, Peck, Pena, Pennington, Perez, Perkins, Perry, Peters, Petersen, Peterson, Petty, Phelps, Phillips, Pickett, Pierce, Pittman, Pitts, Pollard, Poole, Pope, Porter, Potter, Potts, Powell, Powers, Pratt, Preston, Price, Prince, Pruitt, Puckett, Pugh, Quinn, Ramirez, Ramos, Ramsey, Randall, Randolph, Rasmussen, Ratliff, Ray, Raymond, Reed, Reese, Reeves, Reid, Reilly, Reyes, Reynolds, Rhodes, Rice, Rich, Richard, Richards, Richardson, Richmond, Riddle, Riggs, Riley, Rios, Rivas, Rivera, Rivers, Roach, Robbins, Roberson, Roberts, Robertson, Robinson, Robles, Rocha, Rodgers, Rodriguez, Rodriquez, Rogers, Rojas, Rollins, Roman, Romero, Rosa, Rosales, Rosario, Rose, Ross, Roth, Rowe, Rowland, Roy, Ruiz, Rush, Russell, Russo, Rutledge, Ryan, Salas, Salazar, Salinas, Sampson, Sanchez, Sanders, Sandoval, Santana, Santiago, Santos, Sargent, Saunders, Savage, Sawyer, Schmidt, Schneider, Schroeder, Schultz, Schwartz, Scott, Sears, Sellers, Serrano, Sexton, Shaffer, Shannon, Sharp, Sharpe, Shaw, Shelton, Shepard, Shepherd, Sheppard, Sherman, Shields, Short, Silva, Simmons, Simon, Simpson, Sims, Singleton, Skinner, Slater, Sloan, Small, Smith, Snider, Snow, Snyder, Solis, Solomon, Sosa, Soto, Sparks, Spears, Spence, Spencer, Stafford, Stanley, Stanton, Stark, Steele, Stein, Stephens, Stephenson, Stevens, Stevenson, Stewart, Stokes, Stone, Stout, Strickland, Strong, Stuart, Suarez, Sullivan, Summers, Sutton, Swanson, Sweeney, Sweet, Sykes, Talley, Tanner, Tate, Taylor, Terrell, Terry, Thomas, Thompson, Thornton, Tillman, Todd, Torres, Townsend, Tran, Travis, Trevino, Trujillo, Tucker, Turner, Tyler, Tyson, Underwood, Valdez, Valencia, Valentine, Valenzuela, Vance, Vang, Vargas, Vasquez, Vaughan, Vaughn, Vazquez, Vega, Velasquez, Velazquez, Velez, Villarreal, Vincent, Vinson, Wade, Wagner, Walker, Wall, Wallace, Waller, Walls, Walsh, Walter, Walters, Walton, Ward, Ware, Warner, Warren, Washington, Waters, Watkins, Watson, Watts, Weaver, Webb, Weber, Webster, Weeks, Weiss, Welch, Wells, West, Wheeler, Whitaker, White, Whitehead, Whitfield, Whitley, Whitney, Wiggins, Wilcox, Wilder, Wiley, Wilkerson, Wilkins, Wilkinson, William, Williams, Williamson, Willis, Wilson, Winters, Wise, Witt, Wolf, Wolfe, Wong, Wood, Woodard, Woods, Woodward, Wooten, Workman, Wright, Wyatt, Wynn, Yang, Yates, York, Young, Zamora, Zimmerman] } jobTitles: [Project Manager, Software Developer, Designer, QA Engineer, DevOps Engineer, Scrum Master, Business Analyst, Data Scientist, Product Owner, System Administrator] loremIpsum: Lorem ipsum dolor sit amet, consectetur adipisicing elit. Proin nibh augue, suscipit a, scelerisque sed, lacinia in, mi. Cras vel lorem. Etiam pellentesque aliquet tellus. Phasellus pharetra nulla ac diam. Quisque semper justo at risus. Donec venenatis, turpis vel hendrerit interdum, dui ligula ultricies purus, sed posuere libero dui id orci. Nam congue, pede vitae dapibus aliquet, elit magna vulputate arcu, vel tempus metus leo non est. Etiam sit amet lectus quis est congue mollis. Phasellus congue lacus eget neque. Phasellus ornare, ante vitae consectetuer consequat, purus sapien ultricies dolor, et mollis pede metus eget nisi. Praesent sodales velit quis augue. Cras suscipit, urna at aliquam rhoncus, urna quam viverra nisi, in interdum massa nibh nec erat. language: 'PL' ================================================ FILE: src/main/resources/jfairy_br.yml ================================================ alphabet: abcdefghijklmnopqrstuvwxyz domains: [ com.br, br, app.br, blog, net.br ] firstNames: { male: [ José, João, Antônio, Francisco, Carlos, Paulo, Pedro, Lucas, Luiz, Marcos, Luis, Gabriel, Rafael, Daniel, Marcelo, Bruno, Eduardo, Felipe, Raimundo, Rodrigo, Nelson, Manoel, Geraldo, Roberto, Mario, Joaquim, Jorge, Sebastião, Diego, Guilherme, Fernando, Davi, Rafael, Andre, Anderson, Márcio, Gustavo, Fábio, Júlio, Renato, Alex, Igor, Douglas, Vínicios, Ricardo, Leonardo, Robson, Wilson, Mauro, Jonas, Vicente, Nicolas, Osmar, Artur, Moises, Wagner, Pablo, Willian, Ivan, Celso, Breno, Junior, Sidnei, Jaime, Alisson, Ronaldo, Romário, Neymar, Nilton, Nilson, Murilo, Sandro, Isaias, Raul, Alcides, Gean, Bernado, Arlindo, Rodolfo, Armando, Lucio, Clovis, Itamar, Magno, Vilson, Dirceu, Jonata, Enzo, Afonso, Romulo, Airton, Weliton, Ednaldo, Vilmar, Rivaldo, Juan, Abel, Tite, Savio, Roni ], female: [ Maria, Juraci, Lucimar, Ana, Jaci, Alcione, Ivanir, Nadir, Edir, Leoni, Edi, Valdete, Reni, Eurides, Rosimar, Clair, Antonia, Francisca, Iraci, Irani, Iris, Luzimar, Geneci, Erli, Sirlei, Fernanda, Nelci, Rosinei, Gabriela, Bruna, Taina, Adria, Darli, Derci, Silva, Joseli, Juracy, Delci, Joceli, Evanir, Elis, Adriana, Rafaela, Raimunda, Edenir, Vitoria, Gabriele, Rosemar, Solimar, Ivani, Juliana, Marlei, Marley, Daniele, Gessi, Vanir, Doraci, Aline, Marcia, Irismar, Josefa, Elci, Jessica, Amanda, Renata, Raquel, Nerci, Julia, Elionai, Camila, Luana, Jacy, Eduarda, Denir, Leonor, Luciana, Gerci, Patricia, Mariana, Leticia, Erci, Iva, Jane, Cristiane, Conceicao, Aquila, Elienai, Cleidimar, Guiomar, Michele, Paula, Sirley, Silvani, Rosario, Dagmar, Daniela, Fabiana, Beatriz, Santana, Alessandra, Carla, Edy, Vanessa, Larissa, Claudia, Eroni, Luz, Lori, Joseni, Edione, Laureci, Dalci, Jaqueline ] } lastNames: { male: [ Agostinho, Aguiar, Albuquerque, Alegria, Alencastro, Almada, Almeida, Alves, Alves, Alvim, Amorim, Andrade, Antunes, Aparício, Apolinário, Aragão, Araújo, Araújo, Arruda, Assis, Assunção, Ávila, Azambuja, Baptista, Barbosa, Barreto, Barros, Barros, Beira-Mar, Belchior, Belém, Bernardes, Bittencourt, Boaventura, Bonfim, Botelho, Brites, Brito, Caetano, Caldeira, Calixto, Camacho, Camilo, Campos, Capelo, Cardoso, Cardoso, Carvalho, Carvalho, Castro, Castro, Cavalcante, Cavalcanti, Chaves, Conceição, Córdoba, Corte Real, Cortês, Costa, Coutinho, Crespo, Cunha, Curado, Custódio, D’Ávila, da Conceição, da Costa, da Cruz, da Cunha, da Luz, da Mata, da Mota, da Paz, da Rocha, da Rosa, Damásio, Dantas, das Neves, Dias, Dias, Dinís, Domingues, Dorneles, dos Reis, Drumond, Duarte, Escobar, Espinosa, Esteves, Evangelista, Farias, Farias, Félix, Fernandes, Fernandes, Ferrari, Ferreira, Figueiredo, Figueiroa, Flores, Fogaça, Fogaça, Freitas, Freitas, Frutuoso, Furtado, Galvão, Garcia, Gaspar, Gentil, Geraldes, Gil, Godinho, Góis, Gomes, Gomes, Gomes, Gonçalves, Gonzaga, Goulart, Gouveia, Guedes, Guimarães, Guterres, Hernandes, Hilário, Hipólito, Ibrahim, Ilha, Infante, Jaques, Jesus, Jesus, Jordão, Lacerda, Lancastre, Leiria, Lessa, Lima, Lopes, Machado, Maciel, Magalhães, Maia, Maldonado, Marinho, Marques, Martins, Martins, Martins, Medeiros, Meireles, Mello, Melo, Mendes, Mendes, Mendes, Menezes, Mesquita, Modesto, Monteiro, Monteiro, Moraes, Morais, Moreira, Moreira, Morgado, Moura, Moura, Muniz, Nascimento, Neves, Nóbrega, Nogueira, Nogueira, Novaes, Novais, Nunes, Oliveira, Oliveira, Ornélas, Ourique, Pacheco, Padilha, Paiva, Paraíso, Paris, Peixoto, Peixoto, Peralta, Pereira, Pereira, Peres, Pilar, Pimenta, Pinheiro, Pinto, Pires, Portela, Porto, Quaresma, Quarteira, Queiroz, Ramires, Ramos, Ramos, Rebelo, Resende, Rezende, Ribeiro, Ribeiro, Ribeiro, Rocha, Rodrigues, Rodrigues, Salazar, Sales, Sales, Salgado, Salgueiro, Sampaio, Sanches, Santana, Santos, Silva, Silveira, Siqueira, Soares, Souza, Subtil, Tavares, Taveira, Teixeira, Teixeira, Teles, Torres, Trindade, Varela, Vargas, Vasconcelos, Vasques, Veiga, Veloso, Viana, Vidal, Vieira, Vieira, Vilela, Xavier, Ximenes, Xisco, Zagalo, Zaganelli, Zanette ], female: [ Agostinho, Aguiar, Albuquerque, Alegria, Alencastro, Almada, Almeida, Alves, Alves, Alvim, Amorim, Andrade, Antunes, Aparício, Apolinário, Aragão, Araújo, Araújo, Arruda, Assis, Assunção, Ávila, Azambuja, Baptista, Barbosa, Barreto, Barros, Barros, Beira-Mar, Belchior, Belém, Bernardes, Bittencourt, Boaventura, Bonfim, Botelho, Brites, Brito, Caetano, Caldeira, Calixto, Camacho, Camilo, Campos, Capelo, Cardoso, Cardoso, Carvalho, Carvalho, Castro, Castro, Cavalcante, Cavalcanti, Chaves, Conceição, Córdoba, Corte Real, Cortês, Costa, Coutinho, Crespo, Cunha, Curado, Custódio, D’Ávila, da Conceição, da Costa, da Cruz, da Cunha, da Luz, da Mata, da Mota, da Paz, da Rocha, da Rosa, Damásio, Dantas, das Neves, Dias, Dias, Dinís, Domingues, Dorneles, dos Reis, Drumond, Duarte, Escobar, Espinosa, Esteves, Evangelista, Farias, Farias, Félix, Fernandes, Fernandes, Ferrari, Ferreira, Figueiredo, Figueiroa, Flores, Fogaça, Fogaça, Freitas, Freitas, Frutuoso, Furtado, Galvão, Garcia, Gaspar, Gentil, Geraldes, Gil, Godinho, Góis, Gomes, Gomes, Gomes, Gonçalves, Gonzaga, Goulart, Gouveia, Guedes, Guimarães, Guterres, Hernandes, Hilário, Hipólito, Ibrahim, Ilha, Infante, Jaques, Jesus, Jesus, Jordão, Lacerda, Lancastre, Leiria, Lessa, Lima, Lopes, Machado, Maciel, Magalhães, Maia, Maldonado, Marinho, Marques, Martins, Martins, Martins, Medeiros, Meireles, Mello, Melo, Mendes, Mendes, Mendes, Menezes, Mesquita, Modesto, Monteiro, Monteiro, Moraes, Morais, Moreira, Moreira, Morgado, Moura, Moura, Muniz, Nascimento, Neves, Nóbrega, Nogueira, Nogueira, Novaes, Novais, Nunes, Oliveira, Oliveira, Ornélas, Ourique, Pacheco, Padilha, Paiva, Paraíso, Paris, Peixoto, Peixoto, Peralta, Pereira, Pereira, Peres, Pilar, Pimenta, Pinheiro, Pinto, Pires, Portela, Porto, Quaresma, Quarteira, Queiroz, Ramires, Ramos, Ramos, Rebelo, Resende, Rezende, Ribeiro, Ribeiro, Ribeiro, Rocha, Rodrigues, Rodrigues, Salazar, Sales, Sales, Salgado, Salgueiro, Sampaio, Sanches, Santana, Santos, Silva, Silveira, Siqueira, Soares, Souza, Subtil, Tavares, Taveira, Teixeira, Teixeira, Teles, Torres, Trindade, Varela, Vargas, Vasconcelos, Vasques, Veiga, Veloso, Viana, Vidal, Vieira, Vieira, Vilela, Xavier, Ximenes, Xisco, Zagalo, Zaganelli, Zanette ] } personalEmails: [ gmail.com, hotmail.com, yahoo.com.br, uol.com.br ] companyNames: [ Bar, Sapataria, Mercado, Padaria, Supermercado, Farmácia, Drogaria, Loja de Conveniência, Posto de Gasolina, Açougue, Mercearia, Restaurante, Perfumaria, Loja de Roupas, Mercado Central, Lanchonete, Loja de 1.99, Atacado, Mecânica, Autopeças, Basar, Açaí, Academia, Ótica, Brinquedoteca, FastFood, Boate, Boteco ] companySuffixes: [ LTDA, Loja, Consultoria, Inc., Industria] companyEmails: [ info, contato, escritorio, faleconosco ] text: Este hipertexto, isto é, matriz de textos potencializados em um duplo-devir virtualizante, visa proporcionar uma combinatória proto-semântica de um discurso proposicional a partir de um universo de possíveis. Sua instauração epistemológica é traçada a posteriori pela necessidade de construir-se um conhecimento teórico escamoteado em uma base glossofônica da interioridade da razão, em conssonância com a tex-tualidade apofântica sinteticamente determinável em sua exterioridade do Ser. telephone_number_formats: [ '##-####-####' ] postal_code: [ '#####-###' ] city: [ São Paulo, Rio de Janeiro, Salvador, Brasília, Fortaleza, Belo Horizonte, Manaus, Curitiba, Recife, Porto Alegre, Unaí ] street: [ Rua Gonçalo de Carvalho, Rua das Pedras, Vieira Souto, Avenida Paulista, Rua XV de Novembro, Avenida Pedro Basso, Rua Marcelino Champagnat, Avenida Júlio Castilhos, Rua Bento Gonçalves, Rua da Aurora, Rua Portugal, Avenida Silvio Carlos Viana, Avenida Dante Michelini, Avenida Getúlio Vargas, Rua do Mucugê ] country: [ 'Brasil' ] language: 'BR' ================================================ FILE: src/main/resources/jfairy_de.yml ================================================ alphabet: aäbcdefghijklmnoöpqrsßtuüvwxyz domains: [de, eu, com, info, net, org] companyNames: [Aachener Gold-Ankauf, ABC Autoglas, Abschleppdienst Becker, Abtsäcker, Acelis, Ackermann's Der Dorfbäcker, Activ Schuhe, ADFC Fahrrad Info Zentrum, Adler Landmaschinen, Adrenalin, Aeskulap Apotheke, Afsa`s Afro Shop, AGON, AGWB Auto Nord, AH Kaufmann, Ahrweiler Straße, Airport Business Park, AK Autoteile Hattingen, A. Krämer, Aktiv Markt Rubin, Akzente Galerie, Albatros Apotheke, Albig, aldi, Alef, Alexandras Haarstudio, Alimentari i vini, Allee-Bäckerei, alles natur, Allround-Kiosk, Alpengroßmarkt, Alpinsportzentrale, al teatro, Alten und Klausen, Alte Windmühle, Altstadt-Bäckerei Richter, Altzincer Supermarket, Ambrosino, American-Shop, Amica Ambiente, Am Mühlanger, Anatomie, Änderungs-Atelier, Änderungsschneiderei Dilek, Andette, Andreas Hake, Andree, Anette Kaltenbach, Angelikas kleines Nähstübchen, Angelsport Gräfe, Anglia English Bookshop, Anja Mateschke, Ankes Haarstübchen, Anna Naturwaren, Anson's, Antike-Fundgrube, Antiquariat Zeisig, Antiquitäten Walter Breier, An und Verkauf Rostock, Apanage, Apollo, Apotheke am Doberaner Platz, Apple, Aquarium Rhynern, Arcor, Arians, Arlt, Arnold Bueroeinrichtung, Aro Teppiche, Tapeten, art club, Arthur Johannsen, Arto Team, AS Automobile, Asia Market, assenso, Astus Gamestore, Atelier Berghoff, Atlantis, A.T.S. Autohaus, atzert weber, AudioVideum, Audizentrum Dresden, Aue-Markt, Aufzüge, Augen Optik Begrich, Augenoptik Gräfe, Augusten-Apotheke, Auot Bartsch, Ausserhausverkauf, Autoagentur Potsdam, Auto Bapistella, Autocenter Neuried, Autoeck Mittelbach, AutoFIT, Autoforum Häfner, Autogas, Autoglas Sauerland, Autohandel Swoboda, Autohaus Albersdorf, Autolackiererei Theis, Autoland L&S, Automarkt Eibach, Automobile Appel, Automobilforum, Autopark Wöhner, Autoprofi Frey, Autoreparatur Fritsch, Autoservice Bernd Stich, Autowerkstatt Stettner, avanti, AVIA-Tankstelle, AWG Junior Store, AYK Sonnenstudio, B1 Baumarkt, Babarosa, Baby Kinder Jugendmoden, Bacchus, Back-Art, Bäck Drive, Bäcker Bresan, Backerei Foester, Bäckerlädle, Backhaus Bross, Backshop Gaese, Backstube Die Ähre, backwerk, Baden-Auto, Badmöbel 1b Verkauf, Baehr, Bags and more, Bahn- und Reiseagentur, Bäkerei Czech, Bäko Bäckereizubehör, ballet pauls, Balu, Bang & Olufson, Barbara's Heissmangel, Barber Shop, Bärenstark, Barnert, Bartholomé, Basement, Bastelbedarf, Bati Markt, Bauer, Bauerncafe, Bauernmarkt am Lindchen, Baufirma Gräser, Bauhof der Stadt Hemau, Baumann Haushalt Elektro, Baumarkt OBI, Baumgärtner, Baumschule Demuth, Bau-Spezi, Baustoffe Vertrieb Neu-Ulm, Baustoff Schneider, Bauunternehmung Mahlberg, Bavaria Automobile, Bäz Optik, Bear's & Friends, Bebion Blumen, Becker + Flöge, Beckmann & Schönherr, Behmann, Beiersdorfer Landbäckerei, Beireis-Apotheke, Bekleidungshaus Müller, Bella Rosa, Belmodi, Benetton Moden, Benslips, Bereket Supermarkt, Berghausener Blumentopf, Bergrath, Berkmüller, Berlin Story, Bernhard Guck, Berr, Bertram VidovicFriseursalon, Besser, Bestattungen D. Schulz, Bestattungshaus Haller, Bestellcenter Monika Hund, Betriebsgelände, Betten Fritz, Better2Gether, Beuer, Beyer Optik, bici, Biel, Bierfabrik, Biewa Getränkemarkt, Big Lebowski, Bike&More, Bike&Ride, Bilderbogen, bilgro, Bilster Berg Drive Resort, Bingo's Allerlei, Biobäckerei und Café Meffert, Bio-Eier, Biohof Böhme, Bioland Brungs Hofladen, BioMarkt Eppendorf, Birgit's Bauernladen, Birkholz Bäckerei & Stehcafé, Bisquitte, Biwer, Blackfoot Outdoor Shop, Bläserforum, Blaumann, Blessenohl, Blitz Foto, bloom's, Blumberg Mann + Mode, Blumen 2000, Blumenfachgeschäft Kleeblatt, Blumengalerie Hofer, Blumengeschäft bei Kaufland, Blumenhändler, Blumenhaus Augustaanlage, blumenhäusel (home by ASA), Blumenhof Dohmeyer, Blumenladen Ernst, BlumenMehr, Blumenstübchen, Blumenstudio Wendt, blume & stil, Blütenwerkstatt, BMW Autohaus Märtin, Bocks, BodenseeCenter, Body & Soul, Boetius, Böhlje-Sander Hilde Blumen, Boize Center, Bolten, Bonbonwasser, Bonner Küchenstudio, bonus markt, Bootsmann, Borchert Raum+Idee, Born Center, Bosbach IT-Services, Boschert, Bosh car service Ritzkowski, Bötsch, Boutique 88, B&Q Hair Design, Brandau, Brandt's Wohnwelt, Brauerei Neunspringe, Bräunig, Brautmode, Bredemeier, Bremer, Brennerei Wißler, Briefzentrum Deutsche Post, Brille 2, Brillen Fendt, Brillenmacher, Britz, Brogsitters, Brot-Boutique, Brotkorb Hatz, Bruder, Brüning, Bruno Kehder Friseursalon, Büch, Bucher, Bücherei Klein, Bücher & Kunst, Bücherschrank, Buchhandlung am Andelsbach, Buch & Kunst Hoffmann, Buchner, BUDNI, BUGO, Bülte, Bundesfinanzdirektion Mitte, Büning, buran01, Bürgerhaus Wiegleben, Burg Wäscherei/ Änderung, Bürobedarf Heim, bürohaus Janssen, Büro Schreibwaren, Buschkühle, Buss, Elektro, Butterfly three, BWW Pro Car, cab Bücherstudio, Café Adalbert, Cafe & Bäckerei Schrunz, cafeleven, C&A KidsStore, call_shop, Campbell, Camping und Freizeit Loppien, Canstatter Fässle, Cap-Markt Tamar, Caravan Thein, Car-factory, Cari-markt, Carl-Thiem-Apotheke, Carpark Audi Ahrensburg, Carsch-Haus, Carusell, Casa Natura, Caspar Fashion, Cavatappi, C. David, Cellini, Centik, Cesar Markt, Chanel, Charlott, chelsea, chicco di caffè, Chiribiri, Chris Lewis Hair Dressing, Christian Meiling, Christliche Bücherstube, Chrysler & Jeep, Cinderella, Citroën, City Blumen, CitySchuh, CJ Möbel Jaeger, Classen, Claude Cosmetics, Claudi's Blumenscheune, Clemens Galerien, Clown Backshop, cobero, Coiffeur Blickfang, Coko Cut, Colonia Shop, COMA Verbrauchermarkt, Comic-Laden, Computer Center Bünde, Conditorei am Oberhof, Confiserie Mélanie, Connys Frisurenatelier, Contessa, coop, Copy Factory, Copythek & Druckservice, Coroneo Hairdesign, cosmetics, cove & co., crea time, creHAARtiv, Cron & Lanz, CS-Meyer, Culinarium, Cut Ab, Cutedrale, CutStudio55, Cycle-Basar, Czerny-Apotheke, Dahlhoff Feinkost, Dalladas, Dance Inn, DÄNISCHES BETTENLAGER, Daphne Europe, Das Backhäusl, das.geschenk, Dat Eifel-Hüsje, Dawood Hair-Style, D'Bücherladen, Decatlon, Deepend, De gode Backstuv, Deichfrisör, Déja vu, Deko-Traum, Delikata, Delta Markt, Demm, Denker, Dent Wizard, Derpart Reisebüro Fahrmbacher, Destille & Tee, Deuter Outlet, Diakonie-Laden, Di Bö, Die Autowerkstatt, Dienstleistungspark Trimonte, Dieter's Brotkorb, DigiTrends!, Dimsat, Dirk Gerike, Discount Friseur, ditsch, Dive Community, dm Drogerie Markt, Dokuz Schneider, Doll's Zoo-Markt, Domiell, Donau-Ries-Werkstätten, Döpke, Dorfbrunnen, Dorfladen Neuburg, Döringer's Backstube, Dornheim, Dosch, DPD-Depot, Drapalla, Dreescher Markt, Dreißig, Dress, Driesener Apotheke, Drogerie Fritsch, Drogeriemarkt DM, DruckerBuffet, Druckhaus Lampe, Drunter und Drüber, D`tal Markt, Dün-Fleisch, Durchblick, Dusa Mosner, DVD XXL Discount, E aktiv Markt Brockhage, E. Arnold & König, eat&art Bäckerei&Konditorei, Ebersbacher Wachswaren, Ebner, Ecke Automobile, Eckstein - Beckshop, edeka, Eden's Fahrradinsel, Edonas Quni, Efferoth, Eggers, ehemaliger Klinikbereich I, ehem. LPG-Gelände, Ehrenstein-Apotheke, Eichenlaub, Eickhoff, Eine-Welt Laden, Einkaufsladen Luell, Einkaufszentrum Wust, Einrichtungshaus Steckel, Eiscafé Cellino, Eiscafe Venezia, Eisen-Feustel, Eis Firenze, eisweiler und temme, EKZ Gerberpark, Elbers, Electronic Revival Company, Elektro Andresen, Elektronikvertrieb Köhler, ELG Holzhandwerk, Elka Kaufhaus, Ella´s Büdchen, Elmar Sollfrank, Elshoff, Emendörfer, Emmerich, Emster-Schänke, engbers, Engelshaar und Teufelslocke, ENOTECA dell´Arte, Enztal-Express Reinigung, EP Donner, Epicerne Sociale, EP Raatz, EP Weinreich, Erdmann Ihr Zweiradprofi, Erichsen, Erlebniswelt Modellbahn, Ernst-August-Apotheke, Ernstin's family, Erotic Gigant, Erste Edeldestillerie, Erwin Weber, Escherle, ESPRIT Factory-Store, Esso Messerschmidt, ESW-Werkstattladen Allerhand, Euhus, Euro Dance Center, Euronics Schulte, Europa Reisen, Eurozone, Evelyn Jabs, E.Vogell, Exakt, Expert Arndt, Exquisit Reinigung Ehrenböck, Fa. Bergmüller (Boden), Fahrad Schult, Fahrrad Biehla, Fahrradcenter Specht‎, Fahrradhaus Möckel, FAHR'RADladen, Fahrradservice Doreen Leider, Fahrradverleih Lindemann, Fahrschule Elch, Fahrzeugbau Köpf, Fahrzeugtechnik Krueger, fair Kaufhaus, Faller, Fantomas 2000, Farbenkrauth, Farben Walter, Fasche, Fashion Uder, Fat Lady, F. Danne, FEGRO Großhandel, Feinbäckerei, feine Pralinen, Feinkost Delizie, Felder, Fels + Eis, Fernsehmeister Schulz, Ferraro-Moto, Festruhe, Feza Reisebüro, Fiat Gierlinger, Fiebiger, Figaro, Filiz, Fingerz, Firma Sauter, FISCHBACH, Fischerei Lasner, Fischers Brot & Zeit, Fisch Haus, Fischräucherei, Fischzucht Barchfeld, FitLine, fixme Laden, Flair Fashion, flash, Fleicher Scheinpflug, Fleischerei Baum, Fleischers Fahrrad Oase, Flick, Fliesen-Kreativ, Flohmatz, Florales & mehr, Floristik Art & Ambiente, flotte Fietse, Flugplatz, Föhr-Amrumer Immobilien, foncia, Ford, Forellenzucht Völmlesmühle, Forstenrieder-Lotto-Lad'l, FORUM, Fotoatelier Christiane, Foto Doppheide & Kollow, Fotohaus Seeger, Fotostudio 9mal13, Frank, Frankenwein-Centrum, Frank´s Einkaufseck, Franz Heinje, Fraunhofer-Institute, Fred Frisör, Freestyler, Freie Tankstelle, Freisingers Saure Ecke, Fresena-Apotheke, Fressnapf Tierzubehör, Frey Wille, Frida's Bioladen, Friedhofgärtner Kreuselberg, Friesisches Theehaus, Frische Eck, Frischemarkt Jungblut, Frischmarkt Breuer, Friseur 2000 (Meyer), Friseure Befurt, Friseursalon Bärbel Kernchen, Friseurstudio Monika & Sandy, Friseurteam Hefner, Frisiersalon Claudia, Frisör Albert, Frisörensen, FRISTO, Frisurenmode Dorner, Fritz Baustoffe, FRIWA Küchen, Fröllje Bäckerei, FRT Textilreinigung, Früchte-Krämer, Fruchthaus am Markt, Früh Optik Uhren Schmuck, Fuidl, FUNDUS, Funtasstisch, Fürther Dorfladen, Fußpflegestudio, Futuro, Gabis Getränkemarkt, Gaby's Haarstudio, Galaria Kaufhof, Galerie am Kloster, Galina Friseursalon, Gamestop, Gänseblümchen, Garage 53, Gardinen & Dekostudio, Garger, Gartenbau Koll, Gartencentrum Fuchs-Birkenhof, Gartenpflanzen Walz, GartenWerk Dukat, Gärtnerei Arkenau, Gärtner Leuchten, Gasthaus Loos, Gaststätte Zum Bahnhof, Gazelle, Gebers, Gebrauchtwagenhaus Mitro, Geers Hörakustik, Gegenwind, Geiers Drink in, Geißhalden, Geldautomat, Gemischtwaren Kunstreich, Gemüse & Obst, Gensler, Georg Pflefka, Geräucherte Forellen, Gerds Comicladen, Gern Reisen, Gerth am Lappan, Geschenke Wohnaccesoires, Gesundbrunnen-Center, Getraenke und Mehr, Getränkecenter Kessler, Getränkefachverlag Rowira, Getränkehandel Daum, Getränkemarkt Betke, Getränkerakete, Getränkeshop Paul, Gewerbepark Dietmannsried, Geyener Fahrradladen, GHW electronic 2000, Giesbrecht Service, Gilliar, Ginzler, Gitarren Laden, Glamorous Friseur & Kosmetik, Glaserei Franz Raab, Gläsers Gartenwelt, Glas Schmidt, Gleumes, Globus Drive, Glöckenbäckerei, glückssträhne, Gnaier, Gödde Schuhe, Goetheapotheke, Golchert, Goldene Schere, Goldnaht-Sanli, Goldschmiede Denner, Gold+Silberschmiede, Goll, Görres, Gotter, Götz Fahrzeugreparatur, G-Punkt, Graf Beust I, Gramann, Gras, Grau Schreibwaren, Gregor Kaszuba, Griesbeck Zweiräder, GRIMM Küchen, Grombach, GROSS 1866, Großmanns Minimarkt, Gründig, Grüner Leichtsinn, Grüninger, GS agri Baustoffe, GTÜ - Häberle, Guhn Kfz-Meisterwerkstatt, Gummert, Günter, Güntzel Feinkost, Gusto Antico, Güterverkerszentrum, G+W Autoservice, Haaratelier Souzan, Haardesign Steinfeldt, HAARFABRIK, Haargold, Haarmoden Krebs, Haar Paradies, Haarsträubend, Haarstudio Anne, Haarstyling Götze, Haarwaii, Haas Kies, Habla, Hackländer, Hafen, hagebaucentrum Artern, Hagebaumarkt Swerts, Hagenkötter, Hahners Einkaufszentrum, Hainichener Bäckerei, hairBell, Haircules, Hairdesign Jasmin Wagner, Hair Factory, HairGuide, hairline, Hairsisters, Hairstyle by Karina, Hairteam Excellent, Hake, Hallermeier, Hamburger Hofladen, Hammer Heimtex Fachmarkt, Hamwarde - Wiershop, Handy Insel, Hanle, Hanrieder, Hansecenter, Hans Frick, Hapag-Lloyd-Reisebüro, Happy Preis, Harbauer-Optik, Hark, Harmonie Bäckerei, Harry Wolf, Hartmann Holzmarkt, Harzer Weingut Kirmann, Hauck, hauptsache, Haus der Dienste, Häuser, Häutle, H & B Bäckerei, HeadwayJobcenter, Hecker's Sohn, Heeren, Heidbüchel, Heidjer Tee & Kaffeehus, Heike's Blumenladen, Heilemann, Heimbach Fleischerei, Heine, Heinrich Brandmeier, Heinz Letsch, Heißmangel Anni König, Heizungsbau Fischer, Heldmann, Helix Pflanzen, Hellweg-Baumarkt, Helmrich, HEM Expert, Henftling, Hennig´s Backstube, Henssler, Herberth Getränkehandel, Herder-Bude, Herkules Fachmarkt, Hermann Schmidt, Hermle Malerbetrieb, Herrenfrisör, Herrenzimmer, Hertie (geschlossen), He-Schu, hetsch Optik, Heu und Holz, HGerry Weber, Hiebers FrischeCenter, HiFi Erthel, HIKO-Candles, Hilla Haarteam, Himmel & Erde Blumenladen, Hintermayer, Hirsch-Apotheke, Historische Bauelemente, HIT Troisdorf-Sieglar, HM Racing Werkstatt, hobbyfly.de, Höche, Höderath, Hof Brüggemann, Hofgeschäft Gut Stegen, Hofmann Inge, Hofpfisterei Trudering, Högl, Hohmann, HolAb!, Holiday Reise Service, Hollister, Holstein's Backhaus, Holz & Baustoffkompanie (HBK), Holzfachmarkt Brandt, Holzhauser, Holzland Kern, Holzofenbäckerei Paul Bailer, Holzwarth, Home & Beauty Store, Honda Fensel, Höner, Honsel, Hoppert, Horex, Hörgeräte Meckler, Hornbach Moers, Hörstudio Fröhling, Hosen Löhr, Hotfiel, Houtmanns, H. Rühl Sportbekleidung, H.Tille, Hubertusapotheke, Huesmann, Huhn, humanic, Hundertwasserhaus, Hundshalde, Husqvarna Motorrad Zentrum, Hut & Kindermoden, Hyundai Autohaus Turowski, I.B. Mahler Textilpflege, idee, Ihr Bäckerjunge GmbH‎, IHW Park, ILANGA Wine Bar, Ilmbacher Hof, Il Sogno, Imbiss Skaterpoint, Imkerei Englert, Immobilien Westerwald, IN-Bus, InDrink, Industriegebiet Wengerohr-Süd, INFAM, Inges Haarmonie, Ingrid´s Haarstudio, INN-Kaufhaus, Inspiration, Intercoiffeur Fuchs, International Mini Supermarkt, Intersport Beike, inturia, Irene Schmucker, Irmscher PC, Isleker Imbiss, IVECO SERVICE Bergler, JÄCKER'S Getränkepool, Jacobs Eck, Jagels, Jahreszeiten Naturkost, Jako Sportbedarf, Jan Lay, Janssen & Kruse, Jasmin Thai-Massage, Jazzy, JEANS DELUXE, Jeetzel-Optik, Jennys Haarstudio, Jimbo-Tank, Joachim Grub, Joel Style Friseur, Johannes Sterzenbach, Johnson, Jörgs Weinshop, Josef Seibel, Joyce Merlet Puppenklinik, JUMBO ZOO-MARKT, Jung van Matt, Juri Zitrone, JUWA, Juwelier Büttke, Kaaksburg, Kadens Einkaufscenter, Kaffee Kontor, Kahlo Ramschladen, Kaiser's, Kaktus Tattoo & Piercing, Kallenbach, Kamera-Spezialwerkstatt, Kämmerei, Kampfkunstgalerie, Kankel, Käppeleswiesen, Karawane Reisen, Karin Labudda, Karl Ernst, Karlolack, Karnbaum, Karosseriebau Wachtveitl, Karstadt Stammhaus, Karussel, Kasenbacher, Käsmeier, Kästner Optik, Katja-Katrin Kewitz, Kaufe Musik Recordstore, Kaufhaus Jonass, Kaufland Glauchau, kaufpark, Kaushaus X, Keidel's Hof, Kellerhoff, Kemal's, Kenny S., Kerling's Feinbäckerei, Kerstin's Laden, Keti's Änderungsschneiderei, KFP Klassik Garage, KFZ Fersen, Kia Autohaus Wolf, Kida-Paradies, Kiesewetter, Kif Kif, kik Textildiscount, Kilbinger Neuss, Kinderausstatter, Kindermoden Lollipepp, Kinzig Corner, Kiosk Am Atzumer Busch, Kipfelsberger, Kirk's Drive-In, kiss berry, K & K, K+K-Markt, Kladow Center, Kläranlage Dresden-Kaditz, Klärwerk und Bauhof Tangstedt, Klaus Kocher, Klavier Kern, Kleff Haarstudio, Kleine Bäckerei, (kleiner) Famila, Klein KFZ Reparaturen, Klemm Car service, Klimastudio Magdeburg, Klinkenthalzentrum, Kloppenburg, Klostermann & Diekmann, Klumps, K!MO, Knauß, Knoblauch e.K., Knospe Naturkost, Knut Sander, Koch Goldschmied, Koepke, Kohler Automobile, Kojer, Koller+Schwemmer, kolor, Konditorei Behrens, König, Königsparfümerie, Konsum Kaufhalle, KOPA Computer, Kopier & Druckshop, Koppen Bäckerei, Körner & Tee, Kosmetik Christina Simoneit, Kosmetikstudio Passion, kostbar, Kral, Kranich Apotheke, Krause Markt, Kraut&Rüben, Kretschmann, Kreyen-Centrum, Kristall-Palast, Krone, Krügers Getränkewelt, Kruses Hofmilch, Küche & Keller, Küchenhaus am Rhein, Küchen-Möbel-Passage, Küchentechnik Kahle, Kuckertz, Kühler Ragge, Kumar's Minimarkt, Kunstgewerbe Georg Lindner, Kunstmann, Kunterbunt Spielwaren, Kurapotheke, Kurt Kox Grabmalkunst, Kuse, KUWE Raumausstattung, La Barrique Weinland, Lackner, Lädele, Lady Chick, Lagerhaus, Laib & Seele, Lamm Apotheke, LAMY, Landbäckerei Grundmann, Landbierparadies, Landfleischerei Grafe, Landgärtnerei Beyer, Landkarten Büchereck, Landmarkt Thaler, Landmetzgerei Bitsch, Landmetzger Lex, Langensiepen Kurt H. Blumen, Langrzik Jürgen, Las Vegas, Lauer, Laurél, Lebascha Naturkost, Lebensmittel bei Mustafa, Le Coupe, Lederhandel, Leder-Shop, Leggewie, Lehnacker, Leipziger Baumwollspinnerei, Lekkerland, Len-Fra, Leo Lammers Schuhmacherei, L'Epicerie, Lese Laden, Les Vernis Naturnagelkosmetik, Level 5, Ley Sanitätshaus, Licht Kraus, Lidl (Erlensee), Liebehenschel, Liebscher, Lila Leeze, Lilu, Lindau & Kindler, Lindenhof Bauernmarkt, Lindner, Metzgerei, Linoleum Rau, Listmann, Living2, L&N Textilien, Lock up, LOGO, Lohners Backshop, Lollypop, Lorenzen, Losse T., Lotto Annahmestelle, LOUIS, Löwencenter, LPG Untermossau, Lübbering, Lucias Hairfashion, Ludger Böckenholt, Lueg sportiva, Luisen Apotheke, Luna Reinigung, Lustige Lahnluft, Lutzes Backstube, Lydia´s Modeeck, Macaron, MAC Jeans, Madeleine Wied, Magdalenen-Apotheke, magicX, MAHAG Nutzfahrzeuge, Maier, Mainroller, Majolika Firmenpark, Mancala, Manfroid, Mannamia, Man Nutzfahrzeuge AG‎, Manuelas Frisierstube, Marc Cain, Marco's Zweirad-Shop, Margot Enzhammer, Marie Luise Börmel, Mario Gisbers, Marisol, Markant Nah & Frisch, Markgrafen-Getränkemarkt, Markt-Apotheke, Markthaus, Marktkieker Bohne, Markus Hamperl KFZ-Service, Marmor Roppelt, Martha & Lotte, Martini-Park, Marwede, Mäser Modell & Technick, Massa Musterhaus, Matheis&Klose, Matratzen Outlet, Matthias Neubauer, Mätzkow, Maurers Bäckerei, Max-Bahr-Baumarkt, Mayers Frischemarkt, Mazda Autohaus Kaschmieder, McClean, McPolster McDream, Mechau, Medien Corner, mediterraneo, Mega Bike, Mehringhöfe, Meiers Backstube, MeinersenVideo, Meirandres, Meister Kaffee, Meller's Bioland-Hof, Menges, Menz, Mercedes/Bosch, Merkur Reiseland, Merz Gemüse, Messe Niederrhein, Metallbau Pölker, Metro Cash & Carry, Metzen Sonderposten, Metzgerei am Steinberg, Metzger Treuter, Meyborg, Meyersche Buchhandlung, Mezzo Pezzo, Michael Meyer, Michelle's Specilities, Microtrend, Mielke, Mike Kühn, Milchpilz, Miller Waldemar, Minhs Asia Markt, Mini-Markt am Mühlenteich, Miong Seyb Kosmetik, MISCO Germany Inc., Mister Maker, Mitsubishi;Seat, Miyabi, Mlx Obermeier, MM`s Haarwerkstatt, Mobauplus Bauzentrum Becker, Möbel Bock, Möbelhaus Müller & Co., Mobilcom Shop Augsburg, Mochel, Mode bei Marte, Modehaus Brack, Modellbahn Broders, Modellbau-Fachmarkt, Modell Pelzer, moderne Schuhreparatur, Modetreff Heidi, mod's hair, Mohren Apotheke, Möller, Momo Kindersachen, monokel, Montimare, Mordhorst & Bockendahl, Mormann, moshi home, MOTOitaliano, Motoren-Service, Motorradbekleidung Louis, Motorrad Herzer, Motor Sport Ries, movies, Mr. Brown, M.STRUNK, Mucom, Mühlenbäckerei Fick, Mühle Schuwer, Müller, Münchner Fingerhut, Münzen, Museumshop Dujardin, Musik Aktiv Schallenberg, Musikhaus Husum, Mutterwerk, My Baker, Mythologische Spielwaren, Nachfülltinte, Naesert Fleischwaren, Nagelstudio Heck, Nagler Technik, nahkauf Langsdorf, Nähstube Cevik, Nahversorgungszentrum, Nails Diamant, Nanuk, Natoshop, Nature's Food Naturkost, Naturkost Baldham, Naturkostladen Südstadt, Naturland-Hof Ruhl, Naumburger Reifenmarkt, Nehberg, Nennhuber, Nestle, Netto Discont, Neue Apotheke, Neukauf Reisen, Neustadt Centrum Halle, New Millenium Int, Nicolas Scholz, Niebuhr, Niehaves Bäckerei, Nietmann & Höß, Nill Wohnen, Nissan Haake, Nizik & Bauer, No. 7 Schulbedarf, nola-Chemie, Nooricom, Nordertor-Apotheke, Nordstadt Kiosk, Nösel, Notzinger Lädle, NP-Discount, Nürnberger Versicherung, Nyhues, Oasis, Ober Kubsborn, OBI Lindlar, Obst Blumen, Obsthof Enders, Ockenfuß, Oecotop, Oevenumer Backstube Mengel, Office Port Bonn, Ohler, Oil & Vinegar, Oktoberkinder, Old Krempel Ltd., Oliver Böttcher, Ölwechselservice Richter, Ommer, Only Store, Opel-Autohaus, Opel, GM, Ford, optic art, Optik am Rathaus, Optiker, Optikstudio Lamm GmbH‎, Optimal Renner, Orlemann, Orthopädie, Osnatel, Ostermann, Oststadt Super-Bio-Markt, Ottilie Wegener, Otto Meinert, Outdoor-Shop, Overmeyer, Packetshop, Page, Paletti, Panagiota, Panser, Paperpoint, Papeterie Wolf, Papier Reiss, pappert, Parati, Parfümerie Er+Sie, Parfumerie Profumo, Parkett-Forum, Party Service Gabriel, Passage an den Beeten, Patiserie La Minzbrueck, Paulig, Paul Suckow, Pax Bakery, PC-Loeh, Pedalritter, Pelze Drews, Pennings, Penny-Markt Dahn, People2Power, perfect skin, Permoser Eck, Pestel, Peter Göck, Peterno Radsport, Peters Fashion, Petra Reuther, Petra's Shop, Peugeot, Pfankuch, Pfeifle, Pfisterer, Pflanzenmarkt Seemühle, Pfoten im Revier, Philippi, PhoneFlat, Photo Müller, Physiotherapie Katrin Welz, Pianohaus Schwägerl, Pichler, Piechaczek, Pietät Martha Herrig, PimperBikes, Pistoria, Pixy Fotostudio, Planen Kimmik, Plaste+Elaste, Play & Watch, Pleuger, plus, Pneuhage Reifendienste, Podium, point S, Polo, Polster Pit, pony club hairdressers, Porsche Zentrum Berlin, Porta, Pösna-Park, Postshop, Potthoffs, Praise Christlicher Buchladen, Preisparadies 2000, Prenz'l Apotheke, Presse Heyer, Press P&B Books, Prima Flora, PrintArt, Priss, ProBoarding Kitesurfschule, pro fashion, Profi-Lützen, project H, ProOptik, Provinzial Robert Hoffmann, PS-Sport Werkstatt, Pulli-Shop, Punto Uno, Pusdorfer Radwerkstatt, Pythagoras, Quarzwerke Frechen, Querbeet Bioladen, Quick Shoes, Raab Karcher Baustoffe, Rad ab!, RäderWerk, Radhaus Berlin, Radio Bremberg, Radlager Dresden, Radl Huber, Radsport Carda, Raer, Raidt's Getränkehof, Rail Electronic, Rajeethan Traders, Ramer, Rank, Rathaus-Drogerie, RATIO Grossmarkt, Ratzek, Raumausstatter, Raumausstattung Dieter Wolf, R-bikes, Real, real; Media Markt, Rebschule Schmitt, Recyclinghof Bergedorf, redoffice, Reformhaus Dahmen, Regenbogen Apotheke, Regines Nähparadies, Reich KFZ, Reifen Böwing, Reifendienst Tanski, Reiffeisen, Reiner-Bike, Reinigung, Reinigungscenter Ding, Reipo, Reiseclub Cottbus, Reisemakler, Reisestudio, Reißenwebers Backstuben, Relles Mühle, Renata Späte Bierverlag Thiel, Renner büro actuell e.K., Renus Mate, Reptilien-Insel, Retter Schmuck und Uhren, RevierRad (tri-mobil), Rexhausen, Rhein-Energie Kundenzentrum, Rhode, Richard Wagner Apotheke, Richter's Fahrradlädchen, Riechard Kraftfahrzeuge, Rieser, Rinderbesamung, Rinklin Biomarkt, Ritchie, RN Gebäudereinigung, Robert Ley Classics, Rockers Bikeshop, Rogner's Backstube, Rohrhofer, Roland, Rollstuhl WC offen, Rondell Apotheke, RosaReich, Rosenbohm, Rosenrot, Rosi's Boutique, Roßbach-MC, Rossschlächterei Christen, Roth, Rotkehlchen Beauty Nest, Rotzoll, R&S Automobile, R+T-Werkzeugverleih, Ruda, Rudolf Konik Metallhandel, Rügener Bauernmarkt, Ruma, Rund ums Korn, Rupprecht, Russ Jesinger, SAAB, Subaru, Sabbaz, Sabrinas Haarstudio, Safa Mode, Sägewerk Kaa, Saki Haircut, Salon 58, Salzladen, Samet Telecom, Sandmann - Hyundai, Sänger, Sanitätshaus am Oberen Tor, Santen, Sari Berner, Sattelfest, Sauer Bäcker, Sawis Getränkemarkt, SB Back Shop, SBK Supermarkt, Schachenmeier, Schaller Bäcker, Scharly's Getränke SB, Schätzmüller, Scheck-In Center, Scheitle, Schenk, Scherl, Scheu + Weber, Schiemer, Schilbock, Schimmel, Schirmer, Hertle Autoteile, Schlachterei Schwarz Cranz, Schlauchomat, Schlecker Shop, Schlemmer, Schleufe, Schlocker, Schloss-Sport, Schlüsseldienst Hühnke, Schmankerl-Metzger, Schmid Bestattungen, Schmidt Getränkemarkt, Schmidt's Minigarage, Schmuckatelier Sign710, Schmuck Schroll, Schnarre, Schneider & Berger, Schneidermarkt, Schnellmarkt, Schnipp Schnapp, Schnittstelle 89, Schokoladen Haus Wienold, Scholz Haare, Schönegger Käsealm, Schönheitspflege Für Mich, Schöpf, Schrade, Schreib Shop, Schreibwaren Edelbuer, Schreiner Brillen, Schrittes Landschlachterei, Schröpf, Schucker Rennräder, Schuhaus Schulz, Schuh-Center, Schuhe Schlienkamp, Schuhgarten Rosenbaum, Schuhhaus Bayer, Schuhhof, Schuhladen Müller, Schuhmacher Meister, Schuhmode Schüle, Schuhpiraten, Schulle, Schulze, Schuppelius, Schuster Zwick, Schwaaz Vere-Buchhandlung, Schwahn-Optik, Schwanenweiher, Schwarzer Weg, Schweicher Fahrradladen, Schwericke, Schwolgau, script, Seat Beckmann, Secondhand, Second Life, Seehas-Center, Seestern Apotheke, Sehform, Seidenstraße, Selbachs, SELGROS, Senfkorn Weltladen, Senseason Friseur, Service-Center für Tiere, Sesselberg, SexDiscount, SHB Spielzeugland, Shenron Handel, Shoe Jean, SHOPIN, Sibo, Sieben, Siefert, Sieler, Siemes Schuhhandel, Sigi Renner Friseuere, Sila Thai Massage, Silke Vité, SIMMEL, Simon´s Cafe, Singer & Pfaff, Sirius, Sitt & Satt, SK-Bikes, Skiservice Höckl, Skoda Autohaus Rüdiger, Slam Records, smartino, Sobi, Soffies kleiner Supermarkt, Solaris, Solingen, Solvay Pharmaceuticals, Sonderposten Baumarkt, Sonjas Hairdesign, Sonnenhofladen, Sonnenstudio Heliopolis, Sonntag, SOSO Spirits, Souvenirs Geschenke, Spargelhof Hofladen, Sparkasse/Schulte's, Späti, Speckhardt, Speed Concept, Spenglerei Schober, SPIELE MAX, Spielpalast Calbe, Spielwaren Deuring, Spielzeug föhr alle, Spinatwachtel Tee & Naturkost, Spohr, Sport Ankirchner, Sportplatz, Sportshop Sattler, springgarden, Sroka&Langowski, Stäbelow I, Stadtbächerei Kühl, Stadtbäckerei Siemens, Stadtcafe Rosenow, städtisches Straßenbauamt, Stadtwerke Bochum, Stahlwaren Steinöckel, Stangelmayer, Starck, Star Lounge Kosmetik, Statravel, Staufen-Buchhandlung, Steeb Männermode, Stefan Rössler, Steffi's Blütenzauber, Stehcafé Kiosk, Steigerwaldbäckerei Oppel, Steineckes Bäcker, Steinkabinett, Steins, Stempel-Eckstein, Stephans, Sterntaler, St. Georg, Stiegele, StilArt, Stimpfle, Stöberstube, Stoffe&Kurzwaren, Stoff Schnäppchenmarkt, Stoltenberg, Storchenhof, Stottrop, Strandboutique Maritim, Straßenmeisterei Sandersdorf, Strauss Innovations, Street, tolle Schuhe, Strickwaren-Zentrale, Strohmeier, Strunk, Stüber & Reuner, Studio Donath, Stuhlflechterei Karekla, Stüwe, Stylissimo Hair and Nail, Südfleisch, Südstadtcenter, Sultan, Sun Box, Sunshine Sonnenstudio, Super Biomarkt, Supermercado Español, Sürken, Süßes Lädchen, Suzuki, Swars, Sylvia's Haarkult, tabacon - Lotto, Tabakshop Heidl, Tabakwaren Peter Abele, Tabula, Tailor, Talbäckerei, Tandem Personallogistik, Tankshop Druschke, Tante Market, Tarzan Automobile, Tatt Bäckerei, Taubenberger, Taya Autoteile, TDI Shop, Teamsport, Teddi, TEDI Euro Discount, Tee Fortuna, Tee, Holz und Seidenstübchen, tegut... Getränkemarkt, tekNET Computer, Telekom Shop Coburg, Temo-Markt, Teppich Hopf Raumgestaltung, Terbuyken, Ter Veen, TEVI Markt, Textilhaus Prigge, Textilpflege Barbara, Textil-Reinigung Vangelis, TGK Theresa, Theaterkostümhaus Wagner, Theiner, Theo Voss, Thibo, Thieshoper Brink, Thomas Philips, Thommy's Modellbauecke, Ticketpalette, Tierhandlung, Tiggelkamp, Timy's Friseure, tinten-flash, Tippkötter, Tischlerei Böttke, Titus Apotheke, T-Mobile, Todt, Tomas Malchau, Toms Car HiFi, Toni Haarmoden, Tony's Barbiere, toom-Getränkemarkt, Top Bau, Töpferei Potzblitz, TopHair, Toscana, Totto Lotto Kiosk, Toyota Autohaus Eitel, Toys´R us, Trabold, Tragbar, Trapp, Travel Free Shop, treff3000, Treitinger, Trendhair, Trend Shop, Treude, Trigema Werksverkauf, Trinkhalle Stefanie, Trionauten, Troika, Trossbach, Tsantsa, T+S Reisebüro, Tüller, Tüv Beckingen, TV SAT Thieme, Typosatz, Uhrenatelier, Uhren&Schmuck, Uhren & Schmuck Stritzinger, Ulla Popkeu, Ulrich Jahncke, Umkircher Fahrrad Lädele, Uni Bikes, UNited Colores of Benetton, Unlimited Hair & Care, Unterelchingen, Urdenbacher Bauernlädchen, Uschi, Ute Jonas, Uwe Kauermann, Vabene, Valentina's Schuhe, Vangelis, Vaterstettener Früchtehaus, Veigel Wohnen, Velomobile, Velo West, Vera's Copyshop, Vermietungsbüro, Verwaltung, Vey Schuhmacher, Viborg, Video-Center Prenzlau, VideoMaxx, Videothek Ebert, Videoverleih Jehnichen, Vieracker, Villigster Frischemarkt, Vinothek, VIO Berlin, Visage & Harmonie, Vital-Apotheke, VITO, Vivo, Vodafone Mobilfunk, Vögele Mode, Vogt Mode, Völkl, Volkswagen Automobile Hamburg, vollgut, Volvo Rebmann, Von Der Weppen, Vor Hair Nach Hair, Votec Bikes, VW Audi, wachsjacke24 outlet, Waffen Krauser, Waizmann Mode, Waldkiosk, Wallbrück (Renault), Walther, Wandschneider, Warsen, Wäschehaus Kroes, Wäscherei Gürtler Martina, Waschgalerie, Waschsalon Waschkorb, Wasserbetten, Watzmann-Laden, Weck Eck, Wegmann, Weichberghalle, Weiherhammer Gewerbegebiet, Weinbastion, Weinbuch, Wein-Galerie, Weingut Backendorf, Weinhandlung Dilger, Weinhaus Alte Wache, Weinkellerei Schlossgarten, Weinstube, Weis, Weißer, Weko, Weltladen & Umwelthaus, Wendorff, Werbeagentur Schäfer, Werkmarkt Eisenfinger, Werkstatt (ex ARAL-Tkst.), Werksverkauf Metten, Werner Dauth Modellbau, Werner's Radshop, Wertstoffhof Friedrichstadt, West, Westfalen, Wetterau Apotheke, WfbM Gärtnerei, Wibra Lebensmittelmarkt, Wiechel, Wienshop, Wiessmeier, Wildelau, Wilhelm, Wilholt, Willicher Uniformhaus, Willi Spiller Toyota, Wimmer, Wind und Wetter, Winski, Winzergenossenschaft Lorch, Wirsing, Wissmacher, Wittinger Pflanzenhof, W&J Mini-Markt, Wochenmarkt (Mi./Sa.), Wohlsdorff Zigarettenhaus, WohnFunktion, Wohnparadies Schlötelburg, Wolfenbütteler Backhaus, Wolfgang Temburg, Wolf Wurstwaren, Wolling, Woolworth, Wörlitz, Woyton, Wümme Bäckerei Sammann, Würmtaler Bekleidung, Wurtz, W+W Cars, Xara, Xpresso, XXX-Lutz, Yazicioglu Market, YIL-PA, Ypsilon, Zachert, Zanken, Zauberkiste, Zeeh Zeitschriften, Zeilgalerie, Zeitschriften Lotto Hefele, Zeitungsladen;Lotto, Zentral-Apotheke, Zeug, Ziegler, Zigarrenhaus Kiechle, Zimmermann, Zink Fahrrad, Zirngibl Bestattungen, Zollamt, Zoo & Angelcenter Rupp, Zoohandlung, Zoom Shop, Zuck & Kaun, Zum Grünen Thal, Zünkler, Zweirad Bönicke, Zweiradcenter Intress, Zweiradhaus Hütt, Zwickelbauer] companySuffixes: [GmbH, AG, OHG, UG, gGmbH, GbR, GmbH & Co. KG, KG, gAG] companyEmails: [info, contact, mail] firstNames: male: [Aaron, Abraham, Achaz, Achim, Adalbert, Adam, Adelbert, Adelfried, Adelhard, Adi, Adolf, Adolph, Adrian, Agilbert, Agilmar, Alban, Albert, Albin, Albrecht, Alex, Alexander, Alf, Alfhard, Alfinus, Alfons, Alfred, Alfried, Alhard, Allmar, Alois, Aloisius, Aloys, Aloysius, Alphonsus, Alrik, Altfried, Alwin, Amadeus, Ambros, Ambrosius, Andreas, Andree, Andy, Annik, Anrich, Ansbert, Anselm, Ansgar, Anton, Antonius, Arend, Aribert, Arist, Arkadius, Armin, Arnbert, Arnd, Arndt, Arne, Arnfred, Arnfried, Arnhart, Arnim, Arno, Arnold, Arnolf, Arnt, Arnulf, Aron, Arthur, Artur, Arved, Arwed, Arwid, Arwin, Ascan, August, Augustin, Augustinus, Augustus, Axel, Baldur, Balthasar, Baptist, Bardo, Barnabas, Bartho, Barthold, Bartold, Bartosch, Bastian, Beat, Benedict, Benedikt, Benediktus, Benjamin, Benno, Bernd, Berndt, Bernfried, Bernhard, Bernhardin, Bernhardt, Bernhart, Berni, Berno, Bernold, Bernulf, Bernward, Bert, Berthold, Berti, Bertin, Bertl, Bertold, Bertolt, Bertram, Bertwald, Bertwin, Birk, Blasius, Bodmar, Bodo, Bodomar, Bolko, Bonifaz, Boris, Borwin, Botho, Boto, Brandolf, Bringfried, Bruno, Burchard, Burckhard, Burckhardt, Burgfried, Burghard, Burghardt, Burghart, Burkard, Burkardt, Burkhard, Burkhardt, Burkhart, Cai, Carl, Carlheinz, Carsten, Caspar, Cay, Cersten, Chris, Christfried, Christhard, Christhardt, Christhart, Christhelm, Christian, Christmut, Christof, Christoph, Christopher, Christopherus, Christophorus, Christward, Claudius, Claus, Clemens, Conrad, Constantin, Corbinian, Cord, Cordian, Cordt, Cornelius, Cornell, Cuno, Curd, Curt, Cyrill, Dagobert, Dagomar, Damian, Daniel, Dankfried, Dankhard, Dankmar, Dankward, Dankwart, Danny, Darius, David, Degenhard, Degenhardt, Degenhart, Delf, Denis, Dennis, Denny, Desiderius, Dethard, Detlef, Detlev, Detmar, Detrich, Didi, Diemo, Dierk, Dietbald, Dietbert, Dieter, Dieterich, Dietfried, Dietgar, Dietger, Diethard, Diethardt, Diethart, Diethelm, Diether, Diethmar, Dietmar, Dietmund, Dietolf, Dietram, Dietrich, Dietwald, Dietwalt, Dietwolf, Dietwulf, Dietz, Dimitri, Dionys, Dirk, Ditmar, Dittmar, Dominic, Dominik, Dominikus, Donat, Donatus, Eberhard, Eberhardt, Eberhart, Eckard, Eckardt, Eckart, Eckbert, Eckehard, Eckehardt, Eckehart, Eckert, Eckfried, Eckhard, Eckhardt, Eckhart, Eckhold, Eddi, Edelbert, Edelfried, Edelhard, Edelmut, Edelwald, Edgar, Edmar, Edmund, Eduard, Eduardt, Edwin, Egbert, Egidius, Eginald, Eginhard, Eginhardt, Egmont, Egomar, Egon, Ehrenfried, Ehrenreich, Ehrhard, Ehrhardt, Ehrmut, Eik, Eike, Einhard, Einhardt, Eitelbert, Eitelfritz, Ekhard, Ekhardt, Ekkard, Ekkardt, Ekkart, Ekkehard, Ekkehardt, Ekkehart, Elbert, Elkmar, Elmar, Emanuel, Emeram, Emerich, Emil, Emmeram, Emmeran, Emmerich, Engelbert, Engelbrecht, Engelhard, Engelhardt, Engelmar, Englbert, Enrico, Erdfried, Erdmann, Erdwin, Erfried, Erhard, Erhardt, Erhart, Eric, Erich, Erik, Erk, Erkmar, Erlfried, Ermenfried, Erni, Erno, Ernst, Ernstfried, Erwin, Eugen, Eustachius, Ewald, Eyck, Fabian, Falk, Falkhard, Falkmar, Falko, Felix, Finn, Ferdi, Ferdinand, Ferdinandus, Ferfried, Ferhard, Ferhart, Fidelius, Florentin, Florentius, Florenz, Florian, Folker, Folkhard, Folkhardt, Folkhart, Folko, Follrich, Frank, Frankmut, Franz, Franziskus, Franzl, Franzpeter, Fred, Freddy, Freimund, Freimut, Freimuth, Freiwald, Fridolin, Fridulf, Fried, Friedbald, Friedberg, Friedbert, Friedebert, Friedeborn, Friedel, Friedemann, Friedemar, Frieder, Friedewald, Friedhard, Friedhardt, Friedhart, Friedhelm, Friedhold, Friedl, Friedlieb, Friedmar, Friedmut, Friedmuth, Friedolf, Friedolin, Friedrich, Friedwald, Friedwin, Frithjof, Fritz, Frohmund, Frohmut, Frohwald, Frowin, Gabriel, Gangolf, Gebhard, Gebhart, Gelbert, Georg, Gerald, Gerd, Gerdfried, Gerdt, Gereon, Gerfried, Gerhard, Gerhardt, Gerhart, Gerlach, German, Germar, Germo, Germut, Gernfried, Gernod, Gernot, Gernulf, Gero, Gerold, Gerolf, Gerrit, Gert, Gerthold, Gertmund, Gertwin, Gerwald, Gerwin, Giesbert, Gisbert, Giselbert, Giselher, Gismar, Godo, Golo, Gordian, Goswin, Gottfried, Gotthard, Gotthardt, Gotthart, Gotthelf, Gotthilf, Gotthold, Gottlieb, Gottlob, Gottreich, Gottwald, Gottwaldt, Gottwalt, Gregor, Grimbert, Guido, Gundhard, Gundhart, Gundmar, Gundolf, Gunfried, Gunhard, Gunnar, Gunter, Gunthard, Gunther, Guntmar, Guntram, Gustav, Gustel, Gustl, Hadubert, Hagen, Haimo, Hanfried, Hannes, Hanno, Hanns, Hannsgeorg, Hannspeter, Hans, Hansdieter, Hansfried, Hansfriedrich, Hansgeorg, Hansgerd, Hansheinz, Hanshelmut, Hanshermann, Hansi, Hansjakob, Hansjoachim, Hansjochen, Hanskarl, Hansl, Hansludwig, Hansmartin, Hansotto, Hanspeter, Hanswalter, Hanswerner, Hanswilhelm, Hanswolf, Harald, Hardi, Hardo, Hardy, Hariolf, Harri, Harribert, Harro, Harry, Hartfried, Hartger, Hartlieb, Hartmann, Hartmund, Hartmut, Hartmuth, Hartwald, Hartwig, Hartwin, Hasko, Hasso, Hatto, Haug, Haymo, Heidebert, Heiderich, Heidfried, Heiko, Heilmuth, Heilwig, Heimar, Heimbert, Heimfrid, Heimhart, Heimo, Heimwald, Heiner, Heinfried, Heini, Heino, Heinolf, Heinrich, Heintje, Heinz, Heinzdieter, Heinzfried, Heinzhermann, Heinzkarl, Heinzpeter, Heinzwerner, Helbert, Helfred, Helfrid, Helfried, Helge, Helgert, Helgomar, Hellfried, Hellmut, Hellmuth, Helm, Helmar, Helmbrecht, Helmfried, Helmo, Helmrich, Hellmuth, Helmut, Helmuth, Helmward, Helwart, Helwig, Helwin, Hendrik, Henning, Henrik, Henry, Herald, Herbert, Herfried, Herger, Heribert, Herko, Hermann, Hermfried, Herold, Herrmann, Herwald, Herward, Herwart, Herwarth, Herwig, Heyko, Heyo, Hieronimus, Hieronymus, Hilar, Hilarius, Hildebert, Hildebrand, Hildemar, Hildmar, Hilfried, Hilmar, Hippolytus, Hoimar, Holger, Holk, Holm, Holmer, Horst, Horstfried, Horstmar, Hubert, Hubertus, Hugo, Humbert, Ignatz, Ignaz, Ilrich, Immanuel, Ingbert, Ingfried, Inghard, Ingmar, Ingo, Ingobert, Ingolf, Ingomar, Ingowart, Ingram, Inkmar, Innozenz, Ireneus, Irmfried, Irmin, Irminfried, Irmo, Isbert, Isfried, Isidor, Iven, Ivo, Jacob, Jakob, Jan, Jannik, Janfried, Jannick, Jean, Jens, Jo, Joachim, Jobst, Jochen, Joel, Johann, Johannes, Jonas, Jonathan, Jonny, Jons, Joscha, Joschka, Josef, Joseph, Jost, Josua, Julian, Julius, Jupp, Just, Justus, Kai, Kajetan, Karl, Karlernst, Karleugen, Karlfried, Karlfrieder, Karlfriedrich, Karlgeorg, Karlhans, Karlheiner, Karlheinrich, Karlheinz, Karlhorst, Karli, Karlmann, Karlotto, Karlpeter, Karsten, Kasimir, Kaspar, Kay, Kersten, Kevin, Kilian, Klaudius, Klaus, Klausdieter, Klauspeter, Klemens, Knut, Knuth, Konrad, Konradin, Konstantin, Korbinian, Kord, Kornelius, Kristian, Kruno, Kunibert, Kuno, Kurd, Kurt, Kurth, Lambert, Landolf, Lars, Laurentius, Laurenz, Leander, Leberecht, Lebrecht, Lenard, Lenz, Leo, Leon, Leonhard, Leonhardt, Leopold, Leuthold, Lewin, Liborius, Liebhard, Liebhardt, Lienard, Lienhard, Lienhardt, Lindmar, Linhart, Lois, Loisl, Lorenz, Lothar, Louis, Lucas, Ludger, Ludolf, Ludwig, Luitpold, Luitwin, Lukas, Lutz, Maic, Maik, Malte, Manfred, Manfried, Manhard, Manhardt, Manhold, Manuel, Marbod, Marc, Marcel, Marcellus, Marco, Marcus, Marfried, Margolf, Marian, Mario, Marius, Mark, Marko, Markolf, Markus, Markward, Markwart, Marold, Martin, Marzel, Marzellus, Mathias, Mathis, Matthias, Maurus, Max, Maximilian, Maximillian, Maxl, Mayk, Medard, Medardus, Meik, Meikel, Meinard, Meinfried, Meinhard, Meinhart, Meinold, Meinolf, Meinrad, Meinulf, Melchior, Merten, Micha, Michael, Michel, Michl, Mike, Mirco, Mirko, Mischel, Moritz, Nathanael, Neidhard, Neidhardt, Neithard, Neithart, Nepomuk, Nick, Nicki, Nicky, Nico, Nicolas, Nicolaus, Niels, Niklas, Niklaus, Niko, Nikodem, Nikodemus, Nikolas, Nikolaus, Nils, Norbert, Nordfried, Norfried, Norman, Norwin, Notfried, Notker, Nunzius, Odilo, Olaf, Olf, Oliver, Olli, Ornulf, Ortfried, Ortmund, Ortwin, Oskar, Osmund, Oswald, Oswin, Otbert, Otfried, Otger, Otheinrich, Othmar, Otmar, Ottfried, Otthard, Otthart, Otthein, Ottheinrich, Ottheinz, Otthold, Ottkar, Ottmar, Otto, Ottobert, Ottokar, Ottomar, Ottwin, Otwald, Otwin, Pankratius, Pankraz, Pascal, Patrick, Paul, Paulfried, Paulinus, Paulus, Peter, Philip, Philipp, Phillip, Phillipp, Phillippus, Pierre, Pirmin, Pius, Quintus, Quirin, Raik, Raimar, Raimer, Raimond, Raimund, Rainald, Rainer, Rainhard, Rainhardt, Rainmund, Ralf, Ralph, Randolf, Randolph, Raphael, Rasso, Raymund, Reginbert, Reginhardt, Reimo, Reimund, Reinald, Reinar, Reinbert, Reiner, Reinfried, Reinhard, Reinhardt, Reinhart, Reinhold, Reinholdt, Reinmar, Reino, Reinold, Reinulf, Reinwald, Rembert, Remigius, Renald, Renatus, Renold, Rezzo, Richard, Rico, Rigbert, Rigo, Rigobert, Rimbert, Ringo, Robby, Robert, Roberto, Rochus, Roderich, Roger, Roland, Rolf, Roman, Romanus, Ronald, Ronny, Roselius, Rotger, Rothmund, Rouven, Ruben, Rudenz, Rudger, Rudi, Rudolf, Rudolph, Runald, Runfried, Rupert, Rupertus, Ruppert, Rupprecht, Ruprecht, Rutger, Ruthard, Samuel, Sascha, Schorsch, Sebald, Sebastian, Seibold, Sepp, Seppl, Sergius, Severin, Sibrand, Sidonius, Siegbert, Siegenot, Siegert, Siegfrid, Siegfried, Sieghard, Sieghardt, Sieghart, Sieghelm, Siegmar, Siegmund, Siegulf, Siegwald, Siegward, Siegwart, Sigbert, Sigenot, Sigfrid, Sigfried, Siggi, Sighard, Sighart, Sighelm, Sigi, Sigisbert, Sigishelm, Sigismund, Sigmar, Sigmund, Sigmut, Sigolf, Sigurd, Sigward, Sigwart, Silvester, Silvio, Simon, Simpert, Sixtus, Sonnfried, Sonnhard, Sonnhardt, Stanislaus, Stefan, Steff, Steffan, Steffen, Steph, Stephan, Stephanus, Steve, Steven, Sturmhard, Sturmius, Sven, Swen, Sylvester, Sylvio, Sylvius, Tankred, Tassilo, Tell, Thankmar, Thassilo, Theo, Theobald, Theobert, Theodor, Theofried, Theohold, Theophil, Theophilus, Thielo, Thiemo, Thilo, Thomas, Thoralf, Thorsten, Tiberius, Tiburtius, Tiemo, Til, Till, Tillmann, Tilman, Tilmann, Tilo, Tim, Timmo, Timo, Timon, Timotheus, Tino, Titus, Tobias, Tom, Tommy, Toni, Tony, Toralf, Torben, Torge, Torsten, Traugott, Trauhard, Treufried, Treuhard, Treuhart, Tristan, Trudbert, Trutz, Udo, Ulf, Ulfried, Uli, Ulli, Ullrich, Ulrich, Ulvi, Ulwin, Uranius, Urban, Ursus, Utho, Uto, Utto, Utz, Uve, Uwe, Valentin, Valerian, Veit, Veith, Velten, Viktor, Vincenz, Vinzent, Vinzenz, Vitalis, Vitus, Volkard, Volkart, Volkbert, Volker, Volkhard, Volkhardt, Volkhart, Volkher, Volkmar, Volkrad, Volkward, Volkwart, Vollrath, Volrad, Walbert, Waldemar, Waldfried, Walfried, Walter, Walther, Walti, Warnfried, Wastl, Wedig, Wedigo, Weikhard, Welf, Welfhard, Wendel, Wendelin, Wendelinus, Wendemar, Wennemar, Wenzel, Werner, Wernfried, Wernhard, Wernher, Wichard, Wido, Wiegand, Wiegbert, Wieghart, Wieland, Wiethold, Wigand, Wigbert, Wiglaf, Wilbert, Wilbrand, Wilbrandt, Wilderich, Wilfrid, Wilfried, Wilhard, Wilhardt, Wilhelm, Willehad, Willhart, Willi, Willibald, Willibert, Willmar, Willrich, Willy, Wilmar, Wilmhard, Wilmut, Winand, Winfrid, Winfried, Wingolf, Winnimar, Winrich, Withold, Witmar, Wittmar, Wladislaus, Woldemar, Wolf, Wolfbert, Wolfdieter, Wolfdietrich, Wolfeckart, Wolff, Wolfgang, Wolfhard, Wolfhardt, Wolfhart, Wolfhelm, Wolfhermann, Wolfmar, Wolfram, Wolfrid, Wolfried, Wolrad, Wulf, Wulfhard, Wulfhardt, Wunibald, Wunnibald, Xaver, Xaverius, York, Zacharias, Zeno] female: [Adela, Adele, Adelgund, Adelgunde, Adelheid, Adelheide, Adelina, Adelinde, Adeline, Adeltraud, Adeltraut, Adina, Adolfa, Adolfine, Adriana, Adriane, Aenne, Agata, Agatha, Agathe, Agnes, Agnieszka, Albertine, Albina, Albine, Aleksandra, Alena, Alexa, Alexandra, Alheid, Alheide, Alheidis, Alice, Alicia, Alicja, Alida, Alin, Alina, Alinde, Aline, Alix, Alla, Alma, Almtrud, Almut, Almute, Almuth, Aloisia, Aloysia, Alrun, Altraud, Altrud, Alwina, Alwine, Amalia, Amalie, Amanda, Amelie, Amely, Amrei, Ana, Anastasia, Andrea, Anemone, Aneta, Anett, Anette, Anfriede, Angela, Angelica, Angelika, Angelina, Angelique, Anica, Anika, Anita, Anja, Anje, Anka, Anke, Ann, Anna, Annabell, Annagret, Annakatrin, Annalena, Anna-Lena, Annalene, Annalies, Annaliese, Anna-Luise, Annamaria, Anna-Maria, Annamarie, Anna-Marie, Annarose, Anne, Änne, Annedore, Annedoris, Annedorle, Annegold, Annegret, Annegrete, Annegreth, Anneheide, Annehild, Annehilde, Annekathrin, Anne-Kathrin, Annekatrin, Anne-Katrin, Anneke, Annekristin, Annelen, Annelene, Anneli, Annelie, Annelies, Anneliese, Annelinde, Annelise, Annelore, Annelotte, Anneluise, Annely, Annemargret, Annemaria, Annemarie, Anne-Marie, Annemie, Annemirl, Annerike, Anneros, Annerose, Anne-Rose, Anneruth, Annetraud, Annetraude, Annetrud, Annetrude, Annett, Annette, Anni, Annie, Annika, Annina, Annita, Annkathrin, Ann-Kathrin, Annkatrin, Anny, Anouschka, Ansgard, Antja, Antje, Antoinette, Antonia, Antonie, Antonietta, Antonina, Anuschka, Apollonia, Arabella, Ariane, Arite, Arlinde, Armgard, Arnhild, Arntraud, Arzu, Aslind, Asta, Astrid, Augusta, Auguste, Augustine, Aurelia, Aynur, Ayse, Aysel, Ayten, Babett, Babette, Babsi, Barbara, Bärbel, Barbi, Barbli, Beata, Beate, Beatrice, Beatrix, Belina, Belinda, Benedicta, Benedikta, Benita, Berenike, Berit, Berna, Bernadette, Bernadine, Berngard, Bernhardine, Bernhild, Bernhilde, Berta, Bertfriede, Bertha, Berthilde, Bertina, Bertlinde, Bertwalda, Betina, Betti, Bettina, Betty, Bianca, Bianka, Biggi, Biggy, Birga, Birge, Birghild, Birgid, Birgit, Birgitt, Birgitta, Birglinde, Birke, Birkhild, Birte, Birthe, Blanka, Borka, Bozena, Branka, Brigitta, Brigitte, Bringfriede, Brit, Brita, Britt, Britta, Bruna, Brunhild, Brunhilda, Brunhilde, Brunhildis, Bruni, Burga, Burgel, Burghild, Burghilde, Burgis, Burglind, Burglinde, Burgunda, Burgunde, Burkhild, Cäcilia, Cäcilie, Camilla, Canan, Caren, Carin, Carina, Carla, Carmela, Carmen, Carmine, Carola, Carolin, Carolina, Caroline, Carsta, Caterina, Catharina, Catherina, Catherine, Cathleen, Cathrin, Catrin, Cecilia, Celia, Centa, Cersten, Chantal, Charlotte, Christa, Christamaria, Christa-Maria, Christel, Christella, Christfriede, Christhild, Christhilde, Christiana, Christiane, Christin, Christina, Christine, Christl, Christliebe, Christsolde, Cilli, Cilly, Cindy, Cirsten, Claire, Clara, Cläre, Clarissa, Claudia, Clementine, Clivia, Clotilde, Concetta, Connie, Conny, Constance, Constanze, Cora, Cordelia, Cordula, Corina, Corinna, Corinne, Cornelia, Cosima, Crescentia, Cristina, Cynthia, Dagmar, Dahlia, Dajana, Damaris, Dana, Danica, Daniela, Daniele, Danielle, Danuta, Daphne, Daria, Debora, Deborah, Dela, Delia, Denise, Desiree, Diana, Diane, Diemut, Dietburg, Dietgard, Diethild, Diethilde, Dietlind, Dietlinde, Dietmute, Dina, Dinah, Dolores, Donata, Donate, Dora, Doraline, Dorchen, Dore, Doreen, Dorena, Dorette, Dorina, Doris, Dorit, Dorith, Doritha, Doritta, Dorkas, Dorle, Dorlies, Dorlinde, Dorlis, Doro, Dorota, Dorothe, Dorothea, Dorothee, Dörte, Dörthe, Dragica, Dunja, Edda, Edelburg, Edelfriede, Edelgard, Edelinde, Edeltraud, Edeltraude, Edeltraudt, Edeltraut, Edeltrud, Edeltrudis, Edit, Edith, Editha, Edwina, Edwine, Effi, Ehrengard, Ehrentraud, Ehrentraut, Ehrentrud, Ehrentrudis, Eike, Eileen, Ekaterina, Ela, Elena, Eleni, Elenore, Eleonora, Eleonore, Elfgard, Elfgund, Elfi, Elfie, Elfrieda, Elfriede, Elfrun, Elfy, Elgard, Elgine, Eli, Elia, Elif, Elisa, Elisabet, Elisabeth, Elisabetha, Elise, Elizabeth, Elke, Ella, Ellen, Ellengard, Ellentraud, Elli, Ellinor, Elly, Elma, Elrike, Elsa, Elsabe, Elsbeth, Else, Elselore, Elselotte, Elsemarie, Elsgard, Elvira, Elvire, Elwine, Elwira, Elzbieta, Emilia, Emilie, Emine, Emma, Emmaliese, Emmi, Emmy, Engelberta, Erdheide, Erdmute, Erdmuthe, Erica, Erika, Erkhild, Erla, Erlgard, Erltrud, Erlwine, Ermelinde, Ermenhild, Erna, Ernestine, Ernstine, Ester, Esther, Etta, Eugenia, Eugenie, Eunike, Eva, Evalinde, Evamaria, Eva-Maria, Evamarie, Eva-Marie, Evangelia, Evchen, Evelin, Evelinde, Eveline, Evelore, Evelyn, Evelyne, Evi, Ewa, Ewalda, Fabiane, Fabienne, Fadime, Fanny, Fatima, Fatma, Fee, Feli, Felicia, Felicitas, Felizia, Felizitas, Ferdinande, Filippina, Filiz, Finchen, Fine, Fini, Flora, Florence, Florentine, Florine, Framhild, Franca, Francesca, Francoise, Franka, Franzi, Franziska, Frauke, Frederike, Freia, Freya, Frida, Fridegund, Friderika, Friderike, Fridoline, Frieda, Friedburg, Friedeborg, Friedeburg, Friedegard, Friedegund, Friedegunde, Friedericke, Friederike, Friederun, Friedgard, Friedhild, Friedhilde, Friedl, Friedlenchen, Friedlies, Friedliese, Friedlind, Friedlinde, Friedoline, Friedrun, Frigga, Fritzi, Frohlinde, Frohmut, Frowine, Gabi, Gabriela, Gabriele, Gabriella, Gaby, Galina, Gefion, Genia, Genoveva, Georgia, Georgine, Geraldine, Gerborg, Gerburg, Gerda, Gerdhild, Gerdhilde, Gerdi, Gerfriede, Gerheide, Gerhild, Gerhilde, Gerlind, Gerlinda, Gerlinde, Gerolda, Gerritdina, Gerta, Gerthilde, Gerti, Gertraud, Gertraude, Gertraut, Gertraute, Gertrud, Gertrude, Gertrudis, Gertrudt, Gesa, Gesche, Gesine, Geza, Giesela, Gieselind, Gila, Gilda, Gina, Giovanna, Gisa, Gisela, Giselind, Giseltraud, Gislind, Gislinde, Gitta, Gitte, Gitti, Giuseppina, Gloria, Godelind, Goldina, Goldine, Goldtraud, Gönül, Gordana, Gotelind, Gotlind, Gottfrieda, Gottfriede, Gottholde, Grazyna, Greta, Gretchen, Grete, Gretel, Gretl, Gretlies, Griseldis, Grit, Gritt, Gritta, Gudrun, Gudula, Gülay, Gülsen, Gülten, Gunda, Gundel, Gundela, Gundemarie, Gundhild, Gundhilde, Gundi, Gundula, Gunhild, Gunhilde, Gunthild, Gustel, Gusti, Gustl, Hadburg, Hadmut, Hadmuthe, Hadumod, Hadwig, Halina, Hanife, Hanna, Hannah, Hannchen, Hanne, Hannegret, Hannelene, Hannelie, Hanneliese, Hannelore, Hanne-Lore, Hannelotte, Hannemarie, Hannerose, Hannetraud, Hanni, Hannmeike, Hanny, Haralda, Harda, Harriet, Hatice, Hedda, Hedi, Hedwig, Hedy, Heide, Heidegard, Heidegret, Heidegunde, Heidelies, Heideliese, Heidelind, Heidelinde, Heideline, Heidelore, Heidemaria, Heidemarie, Heide-Marie, Heiderose, Heidetraud, Heidi, Heidrun, Heidy, Heike, Heilwig, Heimgard, Heimtraud, Helen, Helena, Helene, Helga, Helgard, Helgrid, Heliane, Hella, Hellgard, Helma, Helmgard, Helmine, Helmtraud, Helmtraut, Helmtrud, Helrike, Heltrud, Henni, Henny, Henri, Henriette, Henrike, Herlind, Herlinde, Herma, Hermelinda, Hermelinde, Hermi, Hermine, Herta, Hertha, Hertraud, Herwiga, Herzlinde, Hetty, Hilda, Hildburg, Hildburga, Hilde, Hildeburg, Hildegard, Hildegardt, Hildegart, Hildegund, Hildegunde, Hildelies, Hildelind, Hildemarie, Hilderose, Hildetraud, Hildrun, Hildtraud, Hilgrun, Hilma, Hiltraud, Hiltraut, Hiltrud, Hiltrude, Hiltrun, Holdina, Holle, Huberta, Hubertina, Hubertine, Hulda, Huldine, Hülya, Ida, Idamarie, Ignatia, Ignazia, Ildiko, Ilka, Ilona, Ilonka, Ilsa, Ilsabe, Ilse, Ilsedore, Ilsefriede, Ilsegard, Ilsegret, Ilselore, Ilsemarie, Ilseruth, Ilsetraud, Ilsetraut, Imelda, Imke, Ina, Ines, Inga, Inge, Ingeborg, Ingeburg, Ingedore, Ingelene, Ingelies, Ingelinde, Ingelore, Ingelotte, Ingemarie, Ingerose, Ingeruth, Ingetraud, Ingetraut, Ingetrud, Ingolde, Ingrid, Ingried, Ingrun, Ingunde, Inka, Inken, Inna, Insa, Ira, Irena, Irene, Irina, Iris, Irlanda, Irma, Irmela, Irmelie, Irmelin, Irmelinde, Irmengard, Irmengild, Irmentraud, Irmentraut, Irmfriede, Irmgard, Irmgarda, Irmgardt, Irmhild, Irmhilde, Irmi, Irmingard, Irmintraud, Irmlind, Irmlinde, Irmtraud, Irmtraut, Irmtrud, Irmtrude, Isa, Isabel, Isabell, Isabella, Isabelle, Isedore, Iselore, Isgard, Ishild, Ishilde, Ismene, Isolde, Ivana, Ivanka, Ivette, Ivonne, Iwona, Jacqueline, Jadwiga, Jana, Jane, Janet, Janett, Janette, Janin, Janina, Janine, Janna, Jannine, Jaqueline, Jasmin, Jasmina, Jeanett, Jeanette, Jeannette, Jeannine, Jelena, Jennifer, Jenny, Jessica, Jessika, Jo, Joana, Joanna, Johanna, Johanne, Johannette, Jolanda, Jolande, Jolanta, Jolante, Jolantha, Jolanthe, Josefa, Josefine, Josepha, Josephina, Josephine, Judith, Juditha, Julia, Juliana, Juliane, Julie, Justina, Justine, Jutta, Kareen, Karen, Karena, Karin, Karina, Karla, Karola, Karolin, Karolina, Karoline, Karsta, Kassandra, Kata, Katalin, Katarina, Katarzyna, Käte, Katerina, Katharina, Katharine, Käthe, Katherina, Kathi, Käthi, Kathleen, Kathrein, Kathrin, Kathrina, Kathrinchen, Kathy, Kati, Katja, Katrein, Katrin, Katrina, Katy, Kersten, Kerstin, Kira, Kirsten, Kirstin, Klara, Kläre, Klarissa, Klaudia, Klementine, Klothilde, Klothildis, Klotilde, Konstanze, Kora, Kordelia, Kordula, Korinna, Kornelia, Kreszentia, Kreszenz, Kreszenzia, Kriemhild, Kriemhilde, Krimhild, Krimhilde, Krista, Kristiane, Kristin, Kristina, Kristine, Krystyna, Kunigunda, Kunigunde, Kyra, Laila, Lara, Larissa, Laura, Lea, Leila, Lena, Lene, Leni, Lenore, Leokadia, Leongard, Leonharda, Leoni, Leonie, Leonore, Leopoldina, Leopoldine, Lerke, Leyla, Lia, Liane, Lidia, Lidija, Lidwina, Liebgard, Liebgunde, Liesa, Liesbeth, Lieschen, Liesegret, Liesel, Lieselene, Lieselore, Lieselotte, Liesgret, Liesl, Lili, Lilia, Lilian, Liliana, Liliane, Lilibeth, Lilija, Lilli, Lilly, Lilo, Lily, Lina, Linda, Linde, Lindemarie, Lindhilde, Linhilde, Lintrud, Lioba, Lisa, Lisanne, Lisbeth, Lise, Lisel, Liselore, Liselotte, Lisette, Lisl, Lissi, Lissy, Ljiljana, Ljubica, Ljudmila, Lona, Loni, Lore, Lorelies, Loreliese, Loremarie, Loretta, Lotte, Lottelore, Lottemaria, Lotti, Louise, Lucia, Lucie, Ludmila, Ludmilla, Ludwiga, Ludwina, Luisa, Luise, Luitgard, Luitgart, Luka, Luzia, Luzie, Lydia, Lysann, Madeleine, Madita, Madleine, Madlen, Magarete, Magda, Magdalena, Magdalene, Magret, Magrit, Maike, Maja, Maleen, Malgorzata, Malve, Malwine, Mandy, Mania, Manja, Manuela, Mara, Marcella, Mareen, Marei, Mareike, Mareile, Maren, Marena, Marfriede, Marga, Margaret, Margareta, Margarete, Margareth, Margaretha, Margarethe, Margarita, Margaritta, Margit, Margita, Margitta, Margitte, Margot, Margret, Margreth, Margrid, Margrit, Margund, Margunde, Marhild, Maria, Maria-Luise, Mariana, Marianna, Marianne, Maria-Theresia, Marica, Marie, Mariechen, Mariedore, Mariegret, Mariele, Marielene, Marielies, Marieliese, Marielouise, Marie-Louise, Marieluise, Marie-Luise, Marietheres, Marie-Theres, Marie-Therese, Marietraud, Marietta, Marija, Marika, Marilen, Marilene, Marilu, Marina, Marinette, Mariola, Marion, Marisa, Marit, Marita, Maritta, Marjan, Marleen, Marlen, Marlene, Marli, Marlies, Marliese, Marlinde, Marlis, Marlit, Marlitt, Marta, Martha, Martina, Martine, Martrud, Mary, Marzena, Mathilde, Maxi, Maxie, Maximiliane, Maya, Mechthild, Mechthilde, Mechtild, Mechtilde, Meike, Meinfriede, Melanie, Melinda, Melisande, Melissa, Melita, Melitta, Meral, Mercedes, Merlind, Merlinde, Meryem, Meta, Mia, Michaela, Michaele, Michelle, Milena, Milica, Milka, Milli, Mina, Minna, Mira, Mirella, Miriam, Mirja, Mirjam, Mirjana, Miroslawa, Mona, Monica, Monika, Monique, Monja, Muthild, Myriam, Myrjam, Myrta, Nada, Nadeschda, Nadeshda, Nadia, Nadin, Nadine, Nadja, Nancy, Nanni, Natali, Natalia, Natalie, Natalija, Natalja, Natascha, Nathalie, Nelli, Nelly, Nermin, Nevenka, Nicola, Nicole, Nikola, Nina, Noa, Nora, Nordrun, Norma, Nortrud, Nortrun, Notburg, Notburga, Nuran, Nuray, Nurten, Oda, Olav, Olena, Olga, Olinde, Olivia, Ortraud, Ortrud, Ortrun, Oslinde, Otti, Ottilia, Ottilie, Oxana, Pamela, Paola, Pascale, Patricia, Patrizia, Paula, Paulina, Pauline, Peggy, Petra, Philine, Philipine, Philomena, Pia, Poldi, Polina, Priska, Rabea, Radegundis, Radmila, Rahel, Raimunde, Raingardis, Raisa, Raissa, Ramona, Raphaela, Rathgunde, Rauthgundis, Rebecca, Rebecka, Rebekka, Regelinde, Regelindis, Regina, Regine, Reglind, Reglindis, Reinburga, Reinfriede, Reingard, Reinhardine, Reinhild, Reinhilde, Reinhildis, Reinholdine, Reinlinde, Reintraud, Reintraut, Relindis, Rena, Renata, Renate, Reni, Renilde, Reny, Resel, Resi, Resie, Resilotte, Rhiane, Ria, Riana, Ribana, Ricarda, Richarda, Richardis, Rilana, Rita, Romana, Romi, Rommy, Romy, Rosa, Rosalia, Rosalie, Rosalinde, Rosa-Maria, Rosamarie, Rose, Rosegret, Rosegunde, Rosehilde, Rosel, Roselene, Roselette, Roselies, Roseliese, Roselind, Roselinde, Roseline, Roselore, Roselotte, Rosely, Rosemaria, Rosemarie, Rose-Marie, Rosemie, Rosetraut, Rosi, Rosie, Rosina, Rosita, Rositta, Rosl, Roslinda, Roslinde, Rosmarie, Roswita, Roswitha, Rotraud, Rotraut, Rudolfina, Runhild, Ruth, Ruthild, Ruthilde, Sabina, Sabinchen, Sabine, Sabrina, Sabrine, Sahra, Samira, Sandra, Sandy, Sanna, Sara, Sarah, Sarina, Saskia, Scholastika, Schwanhild, Selina, Selma, Semra, Senta, Serafine, Serpil, Sevim, Sibel, Sibilla, Sibille, Sibyl, Sibylla, Sibylle, Sidonie, Siegberta, Siegbritta, Siegfrieda, Siegfriede, Siegharda, Sieghild, Sieghilde, Sieglind, Sieglinde, Siegrid, Siegried, Siegrun, Siegtraud, Siggi, Sighild, Sighilde, Sigi, Siglind, Siglinde, Sigrid, Sigrun, Sigtraud, Sigtrud, Sigunde, Sigune, Silja, Silke, Silva, Silvana, Silvia, Simona, Simone, Simperta, Sina, Sinaida, Sindy, Siska, Sissy, Slavica, Sofia, Sofie, Solveig, Songül, Sonia, Sonja, Sonngard, Sonnhild, Sonnhilde, Sophia, Sophie, Stefani, Stefania, Stefanie, Steffi, Steffie, Stella, Stephania, Stephanie, Stilla, Sunhild, Susan, Susana, Susann, Susanna, Susanne, Suse, Susen, Susette, Susi, Suzanne, Svea, Svenja, Svetlana, Swanhild, Swanhilde, Swantje, Swetlana, Sybil, Sybill, Sybilla, Sybille, Sylke, Sylvana, Sylvelin, Sylvia, Sylvie, Sylwia, Tabea, Tamara, Tania, Tanja, Tatiana, Tatjana, Telse, Teresa, Thea, Theda, Thekla, Theobalda, Theodeline, Theodolinde, Theodora, Theodore, Theolinde, Theres, Theresa, Therese, Theresia, Thilde, Thurid, Thusnelda, Tilla, Tilli, Tilly, Tina, Traude, Traudel, Traudi, Traudl, Traudlinde, Trautchen, Traute, Trauthilde, Trautlind, Trautlinde, Trinchen, Trixi, Trude, Trudel, Trudi, Tülay, Türkan, Ula, Ulfrida, Ulla, Ulrike, Undine, Unette, Urda, Ursel, Ursl, Ursula, Ursulina, Urszula, Urta, Urte, Urthe, Uschi, Uta, Ute, Utta, Valentina, Valentine, Valeri, Valeria, Valerie, Valeska, Vanessa, Vera, Verena, Verona, Veronica, Veronika, Veronique, Vesna, Victoria, Viktoria, Viola, Violetta, Virginia, Viviane, Vreneli, Vreni, Vroni, Walburg, Walburga, Walda, Waldburga, Waldburgis, Waldfriede, Waldtraud, Waldtraut, Walentina, Walfriede, Walli, Wally, Waltraud, Waltraut, Waltrud, Waltrude, Waltrudis, Wanda, Wencke, Wendela, Wendelgard, Wendelin, Wendeline, Wenke, Wera, Werngard, Wernhild, Wibke, Wiebke, Wilfriede, Wilgard, Wilhelma, Wilhelmine, Wilja, Willma, Wilma, Wiltraud, Wiltraut, Wiltrud, Wiltrude, Wiltrudis, Winfriede, Wintrud, Witta, Wolfgard, Wolfhilde, Xenia, Yasemin, Yasmin, Yvette, Yvonne, Zdenka, Zehra, Zenta, Zenzi, Zeynep, Zilli, Zita, Zofia] lastNames: male: [Abel, Abele, Abels, Abraham, Abt, Achatz, Achenbach, Acker, Ackermann, Adam, Adams, Adler, Adolf, Adolph, Adrian, Ahlers, Ahrens, Aigner, Alber, Albers, Albert, Albrecht, Alex, Alexander, Alles, Alt, Althaus, Althoff, Altmann, Altmeyer, Amann, Amend, Ammann, Ammon, Anders, Andersen, Andreas, Andres, Andresen, Anger, Angerer, Angermann, Anton, Apel, Appel, Appelt, Arend, Arendt, Arens, Arlt, Armbruster, Arndt, Arnold, Arslan, Artmann, Aschenbrenner, Asmus, Assmann, Aßmann, Auer, Augustin, Aust, Aydin, Bach, Bacher, Bächle, Bachmann, Bachmeier, Back, Bäcker, Backes, Backhaus, Bade, Bader, Baer, Bahr, Bähr, Baier, Baldauf, Balke, Baltes, Balzer, Bamberger, Bangert, Bär, Baron, Bartel, Bartels, Bartelt, Barth, Barthel, Bartl, Bartmann, Bartsch, Bartz, Barz, Basler, Bast, Bastian, Bätz, Bauch, Bauer, Bäuerle, Baum, Baumann, Baumbach, Baumeister, Baumer, Bäumer, Baumert, Baumgart, Baumgärtel, Baumgarten, Baumgartner, Baumgärtner, Bäumler, Baur, Bausch, Bayer, Becher, Becht, Bechtel, Bechtold, Beck, Becker, Beckers, Beckert, Beckmann, Beer, Beermann, Beetz, Behling, Behm, Behn, Behnke, Behr, Behrend, Behrends, Behrendt, Behrens, Behringer, Behrmann, Beier, Beil, Bell, Beller, Bellmann, Belz, Bendel, Bender, Bendig, Benecke, Benner, Benning, Bensch, Benz, Berberich, Berens, Berg, Bergemann, Bergen, Berger, Bergmann, Bergner, Berlin, Bernard, Berndt, Berner, Bernhard, Bernhardt, Berthold, Bertram, Bertsch, Best, Bethge, Bethke, Betz, Beutel, Beutler, Beyer, Bichler, Bickel, Bieber, Biedermann, Biehl, Bielefeld, Bienert, Bier, Biermann, Biller, Binder, Birk, Birke, Birkholz, Birkner, Birner, Bischof, Bischoff, Bitter, Bittner, Bitzer, Blank, Blanke, Blankenburg, Blaschke, Blau, Blechschmidt, Blessing, Bley, Bloch, Block, Blohm, Blome, Bluhm, Blum, Blume, Blümel, Blumenthal, Bochmann, Bock, Böck, Böcker, Böckmann, Bode, Boden, Bogner, Bohl, Bohlen, Böhler, Bohlmann, Bohm, Böhm, Böhme, Böhmer, Bohn, Bohne, Böhner, Bohnert, Böhnke, Bohr, Böhringer, Böker, Boldt, Boll, Boller, Bollmann, Bolte, Bolz, Bongartz, Böning, Bönisch, Bonk, Bonn, Boos, Bopp, Borchardt, Borchers, Borchert, Börger, Borgmann, Bork, Bormann, Born, Bornemann, Börner, Borowski, Borrmann, Bosch, Bösch, Böse, Bosse, Both, Bothe, Bott, Böttcher, Böttger, Böttner, Boy, Bracht, Brack, Brand, Brandenburg, Brandes, Brandl, Brandner, Brandstetter, Brandt, Brauer, Bräuer, Braun, Braune, Brauner, Bräutigam, Brecht, Brede, Brehm, Brehmer, Breidenbach, Breier, Breit, Breitenbach, Bremer, Brendel, Brennecke, Brenner, Bretschneider, Brettschneider, Breu, Breuer, Breunig, Breyer, Brill, Brink, Brinker, Brinkmann, Brix, Brock, Bröcker, Brockmann, Bröker, Brosch, Brose, Bruch, Brück, Brucker, Brückmann, Bruckner, Brückner, Bruder, Brüggemann, Brugger, Brühl, Bruhn, Brummer, Brümmer, Brune, Brüning, Brunke, Brunner, Bruns, Brust, Buch, Büchel, Bucher, Buchholz, Büchler, Buchmann, Buchner, Büchner, Buchwald, Buck, Bücker, Budde, Buhl, Bühler, Bühner, Buhr, Bülow, Bunge, Bünger, Bunk, Burg, Burger, Bürger, Burghardt, Burk, Burkard, Burkart, Burkert, Burkhard, Burkhardt, Burkhart, Bürkle, Burmeister, Burmester, Busch, Busche, Büscher, Buschmann, Buse, Büsing, Buss, Buß, Busse, Bußmann, Büttner, Butz, Carl, Carstens, Carstensen, Caspari, Casper, Celik, Christ, Christian, Christiansen, Christmann, Christoph, Clasen, Claßen, Claus, Clausen, Clauß, Claußen, Clemens, Coenen, Cohrs, Conrad, Conradi, Cordes, Cornelius, Cramer, Cremer, Czech, Dahl, Dahlke, Dahlmann, Dahm, Dahmen, Dahms, Dallmann, Damm, Dammann, Daniel, Daniels, Dannenberg, Danner, Daub, Daum, David, de, Debus, Decker, Deckert, Degen, Degenhardt, Degner, Dehn, Deininger, Demir, Demmer, Demuth, Denecke, Dengler, Denk, Denker, Deppe, Derksen, Dettmann, Dettmer, Deutsch, Deutschmann, Dewald, Dick, Dickmann, Dieckmann, Diederich, Diederichs, Diedrich, Diefenbach, Diehl, Diekmann, Diel, Diemer, Diener, Dierkes, Dierks, Dietel, Dieterich, Dieterle, Dietl, Dietrich, Dietz, Dietze, Dietzel, Dill, Dillmann, Dinkel, Dinter, Dippel, Dirks, Distler, Dittmann, Dittmar, Dittmer, Dittrich, Dobler, Dogan, Döhler, Dohmen, Döhring, Dohrmann, Dold, Doll, Döll, Dombrowski, Domke, Donath, Donner, Dörfler, Döring, Dorn, Dorner, Dörner, Dörr, Dorsch, Dose, Dost, Dräger, Drechsel, Drechsler, Drees, Dreher, Dreier, Drescher, Dressel, Dressler, Dreßler, Drewes, Drews, Drexler, Dreyer, Dröge, Droste, Dück, Duda, Dudek, Dunkel, Dunker, Düring, Dürr, Duwe, Dyck, Ebel, Ebeling, Eberhard, Eberhardt, Eberl, Eberle, Eberlein, Ebert, Ebner, Eck, Eckardt, Eckart, Eckel, Ecker, Eckert, Eckhardt, Eckhoff, Eckl, Eckstein, Edel, Edelmann, Eder, Edler, Effenberger, Eger, Egger, Eggers, Eggert, Egner, Ehlers, Ehlert, Ehmann, Ehrenberg, Ehret, Ehrhardt, Ehrich, Ehrlich, Ehrmann, Eibl, Eich, Eichholz, Eichhorn, Eichinger, Eichler, Eichmann, Eichner, Eickhoff, Eifler, Eilers, Eisele, Eisenmann, Eismann, Eisner, Eitel, Eller, Elsner, Emde, Emmerich, Emmert, Emrich, Ender, Enderle, Enders, Endres, Engel, Engelbrecht, Engelhard, Engelhardt, Engelke, Engelmann, Engels, Engert, Engl, Engler, Englert, Enke, Epp, Epple, Eppler, Erb, Erbe, Erben, Erdmann, Erhard, Erhardt, Erler, Ernst, Ertel, Ertl, Esch, Escher, Esser, Eßer, Essig, Euler, Evers, Ewald, Ewers, Ewert, Exner, Faber, Fabian, Falk, Falke, Falkenberg, Faller, Färber, Faßbender, Fast, Fath, Faulhaber, Faust, Fechner, Fehr, Fehrenbach, Feige, Feil, Feiler, Feist, Felber, Feld, Feldhaus, Feldmann, Feldmeier, Feller, Fellner, Fels, Fendt, Fengler, Fenske, Fenzl, Ferber, Ferstl, Fett, Fetzer, Fey, Fichtner, Fick, Fiebig, Fiedler, Figge, Findeisen, Finger, Fink, Finkbeiner, Finke, Fisch, Fischbach, Fischer, Fitz, Fix, Flach, Flaig, Fleck, Fleckenstein, Fleischer, Fleischhauer, Fleischmann, Flemming, Flick, Flohr, Flügel, Flügge, Focke, Forster, Förster, Forstner, Förtsch, Fox, Frahm, Franck, Frank, Franke, Franken, Franz, Franzen, Franzke, Frech, Freese, Frei, Freiberg, Freier, Freitag, Frenz, Frenzel, Frerichs, Frese, Freudenberg, Freund, Frey, Freyer, Freytag, Frick, Fricke, Friebe, Friedel, Friedemann, Friedl, Friedmann, Friedrich, Friedrichs, Fries, Friese, Friesen, Frieß, Frings, Frisch, Fritsch, Fritsche, Fritz, Fritze, Fritzsch, Fritzsche, Fröhlich, Fromm, Fromme, Frost, Früh, Frühauf, Fuchs, Fuhr, Führer, Fuhrmann, Funk, Funke, Fürst, Fuß, Fütterer, Gabel, Gabler, Gäbler, Gabriel, Gaida, Gaiser, Gall, Galle, Ganser, Ganter, Ganz, Garbe, Gärtner, Gassner, Gaßner, Gast, Gaul, Gaus, Gebauer, Gebel, Gebert, Gebhard, Gebhardt, Gehlen, Gehrig, Gehring, Gehrke, Gehrmann, Geib, Geier, Geiger, Geis, Geisler, Geiß, Geissler, Geißler, Geist, Gellert, Gentner, Genz, Georg, George, Georgi, Geppert, Gerber, Gerdes, Gerhard, Gerhards, Gerhardt, Gericke, Gerke, Gerken, Gerlach, Gerling, Germann, Gerner, Gerstner, Gerth, Gessner, Geßner, Geyer, Giebel, Gies, Giese, Giesecke, Giesen, Gilbert, Gille, Gilles, Glas, Glaser, Gläser, Glaß, Glatz, Gleich, Gleißner, Glock, Glöckner, Glück, Göbel, Gödde, Gödecke, Goebel, Goerke, Goertz, Göhler, Gohlke, Göhring, Gold, Goldbach, Goldberg, Goldmann, Goldschmidt, Goll, Goller, Göller, Göllner, Golz, Gölz, Göpfert, Görg, Görgen, Göring, Görlich, Görner, Görtz, Götte, Gottfried, Gotthardt, Gottschalk, Gottschlich, Gottschling, Gottwald, Götz, Götze, Gräber, Grabow, Grabowski, Gradl, Graf, Gräf, Grafe, Gräfe, Grahl, Gramlich, Grams, Graß, Graßl, Grätz, Grau, Graupner, Greb, Grebe, Greger, Gregor, Greif, Greiner, Grell, Grenz, Greulich, Greve, Grewe, Griebel, Grieger, Gries, Griese, Grill, Grimm, Grimmer, Grobe, Gröger, Groh, Grohmann, Groll, Gronau, Gröne, Grosch, Gross, Groß, Grosse, Große, Grosser, Großer, Großkopf, Grossmann, Großmann, Grote, Groth, Grothe, Grube, Gruber, Gruhn, Grün, Grünberg, Grund, Grundmann, Gruner, Grüner, Grunert, Grunewald, Grünewald, Grunwald, Grünwald, Grützner, Guhl, Gundlach, Gunkel, Günter, Günther, Günzel, Gürtler, Guse, Guth, Gutjahr, Gutmann, Gutsche, Güttler, Gutzeit, Haack, Haag, Haak, Haake, Haarmann, Haas, Haase, Habel, Haberkorn, Haberl, Haberland, Häberle, Habermann, Hack, Hackbarth, Hackenberg, Hacker, Häcker, Hackl, Hackmann, Häfele, Hafner, Häfner, Hagedorn, Hagel, Hägele, Hagemann, Hagen, Hager, Hahn, Hahne, Hähnel, Haider, Haimerl, Hain, Hake, Haller, Hallmann, Hamacher, Hamann, Hamm, Hammann, Hammel, Hammer, Hammerschmidt, Hammes, Hampe, Hampel, Handke, Hänel, Hanf, Hanisch, Hanke, Hannemann, Hannig, Hans, Hänsch, Hansel, Hänsel, Hansen, Hansmann, Hantke, Happel, Harder, Hardt, Häring, Harms, Harnisch, Harrer, Härtel, Harter, Harth, Hartig, Hartl, Härtl, Hartmann, Hartung, Hartwich, Hartwig, Hase, Hass, Haß, Hasse, Hassel, Hau, Hauber, Haubold, Hauck, Hauer, Haufe, Haug, Hauk, Hauke, Haupt, Hauptmann, Haus, Hauschild, Hauser, Häuser, Häusler, Hausmann, Hausner, Häußler, Haußmann, Haustein, Heber, Hecht, Heck, Heckel, Hecker, Heckmann, Hedrich, Heer, Heese, Hegemann, Heger, Heid, Heide, Heidemann, Heiden, Heidenreich, Heider, Heidrich, Heidt, Heigl, Heil, Heiland, Heilig, Heilmann, Heim, Heimann, Hein, Heindl, Heine, Heinecke, Heinemann, Heinen, Heinicke, Heinig, Heinisch, Heinke, Heinlein, Heinrich, Heinrichs, Heins, Heintz, Heinz, Heinze, Heinzel, Heinzelmann, Heinzmann, Heise, Heiser, Heisig, Heiß, Heitmann, Heitz, Heizmann, Helbig, Helbing, Held, Heldt, Helfrich, Hell, Heller, Hellmann, Hellmich, Hellmuth, Hellwig, Helm, Helmer, Helmke, Helms, Hemmer, Hempel, Hendricks, Hengst, Henke, Henkel, Henn, Henne, Hennecke, Hennemann, Hennig, Henning, Henninger, Hennings, Henrich, Henrichs, Henschel, Hense, Hensel, Henseler, Hentschel, Henze, Hepp, Heppner, Herb, Herber, Herbert, Herbst, Herdt, Herget, Hering, Hermann, Hermanns, Hermes, Herold, Herr, Herrmann, Hertel, Herter, Hertlein, Hertwig, Herwig, Herz, Herzberg, Herzig, Herzog, Hess, Heß, Hesse, Hessel, Heßler, Hettich, Hetzel, Heuer, Heumann, Heuser, Hey, Heyer, Heymann, Heyn, Heyne, Hieber, Hielscher, Hierl, Hilbert, Hilbig, Hild, Hildebrand, Hildebrandt, Hildenbrand, Hilger, Hilgers, Hill, Hille, Hillebrand, Hillenbrand, Hiller, Hillmann, Hilmer, Hilpert, Himmel, Hinkel, Hinrichs, Hinrichsen, Hintz, Hintze, Hinz, Hinze, Hinzmann, Hipp, Hirsch, Hirschfeld, Hirschmann, Hirt, Hirth, Hoch, Hochmuth, Hock, Hof, Hofbauer, Hofer, Höfer, Hoff, Hoffmann, Hoffmeister, Höfler, Höfling, Hofmann, Hofmeister, Hofstetter, Höft, Höger, Hohl, Hohmann, Hohn, Höhn, Höhne, Holl, Höll, Holland, Holler, Höller, Hollmann, Hollstein, Holm, Hölscher, Holst, Holstein, Holtkamp, Holtmann, Holtz, Holz, Holzapfel, Hölzel, Holzer, Hölzer, Holzinger, Hölzl, Holzmann, Holzner, Holzwarth, Homann, Hommel, Hönig, Hopf, Höpfner, Hopp, Hoppe, Höppner, Hörl, Hörmann, Horn, Hörner, Hornig, Hornung, Horst, Horstmann, Horvath, Hotz, Hoyer, Huber, Hubert, Hübner, Hübsch, Huck, Hufnagel, Hug, Hügel, Huhn, Hüls, Hülsmann, Hummel, Hümmer, Hund, Hundertmark, Hundt, Hunger, Huppertz, Husemann, Husmann, Huth, Hüther, Hutter, Hütter, Hüttner, Ihle, Ilg, Imhof, Irmer, Irrgang, Israel, Jablonski, Jäckel, Jacob, Jacobi, Jacobs, Jacobsen, Jaeger, Jäger, Jahn, Jahnke, Jahns, Jäkel, Jakob, Jakobi, Jakobs, Jänicke, Janik, Janke, Jankowski, Jansen, Janson, Janssen, Janßen, Janz, Janzen, Jäschke, Jasper, Jauch, Jehle, Jensen, Jentsch, Jentzsch, Jeschke, Jeske, Jesse, Jessen, Joachim, Jobst, Jochum, Johann, Johannes, Johannsen, John, Jonas, Joos, Jordan, Jörg, Joseph, Jost, Jünemann, Jung, Jungbluth, Junge, Jünger, Junghans, Jüngling, Jungmann, Junk, Junker, Jürgens, Jürgensen, Just, Jüttner, Kaczmarek, Kaden, Käfer, Kahl, Kahle, Kähler, Kahlert, Kaiser, Kalb, Kalinowski, Kalisch, Kallenbach, Kaltenbach, Kaluza, Kaminski, Kamm, Kammer, Kammerer, Kämmerer, Kamp, Kampe, Kämpf, Kampmann, Kamps, Kania, Kanzler, Kapp, Kappel, Kappes, Kappler, Kaps, Karcher, Karg, Karger, Karl, Karle, Karsten, Käser, Kaspar, Kasper, Kast, Kasten, Kastl, Kastner, Kästner, Katz, Katzer, Kauer, Kaufhold, Kaufmann, Kaul, Kautz, Kaya, Kayser, Keck, Kegel, Kehl, Kehr, Kehrer, Keil, Keim, Keitel, Keller, Kellermann, Kellner, Kelm, Kemmer, Kempe, Kemper, Kempf, Keppler, Kerber, Kerkhoff, Kern, Kerner, Kerscher, Kersten, Kersting, Kessel, Kessler, Keßler, Ketterer, Kettler, Kettner, Kick, Kiefer, Kiel, Kienle, Kienzle, Kiesel, Kiesewetter, Kießling, Kilian, Kilic, Kimmel, Kind, Kinder, Kindermann, Kindler, Kinzel, Kipp, Kirch, Kircher, Kirchhof, Kirchhoff, Kirchner, Kirsch, Kirschbaum, Kirschner, Kirst, Kirstein, Kirsten, Kissel, Kistner, Kittel, Klaas, Klages, Klaiber, Klapper, Klar, Klasen, Klassen, Klatt, Klaus, Kleber, Klee, Kleemann, Klein, Kleine, Kleiner, Kleinert, Kleinhans, Kleinschmidt, Klement, Klemm, Klenk, Klett, Kley, Kliem, Klier, Kling, Klingbeil, Klinge, Klingenberg, Klinger, Klingler, Klink, Klinke, Klinkhammer, Klocke, Klöckner, Kloos, Klos, Klose, Kloss, Kloß, Klostermann, Kloth, Klotz, Klug, Kluge, Klumpp, Kluth, Knab, Knabe, Knapp, Knappe, Knauer, Knauf, Knaus, Knebel, Knecht, Knittel, Knoblauch, Knobloch, Knoch, Knoche, Knödler, Knoll, Knoop, Knop, Knopf, Knopp, Knorr, Knoth, Knott, Knüppel, Knuth, Kober, Koch, Köcher, Kock, Koenen, Kögel, Kögler, Kohl, Köhl, Kohler, Köhler, Kohlmann, Kohn, Köhn, Köhne, Kohnen, Kolb, Kolbe, Kolbeck, Kolberg, Kölbl, Koll, Koller, Köller, Kölling, Kollmann, Köllner, Kolodziej, Kölsch, König, Königs, Konrad, Koop, Koopmann, Kopf, Köpke, Kopp, Koppe, Köppe, Köppel, Köppen, Köppl, Korb, Körber, Korn, Körner, Korte, Korth, Kortmann, Koslowski, Kost, Köster, Kösters, Köstler, Kothe, Kötter, Kowalewski, Kowalski, Kracht, Kraemer, Krafft, Kraft, Krah, Krahl, Krahn, Kramer, Krämer, Krammer, Kramp, Krampe, Kranz, Krapf, Krapp, Kratz, Kratzer, Kraus, Krause, Krauss, Krauß, Krauße, Krawczyk, Krebs, Kreft, Kreis, Krell, Kremer, Kremser, Krenz, Kress, Kreß, Kretschmann, Kretschmer, Kretz, Kretzer, Kretzschmar, Kreutz, Kreutzer, Kreuz, Kreuzer, Krey, Krieg, Kriegel, Krieger, Krings, Kröber, Kröger, Krohn, Kroll, Kröll, Kromer, Krone, Kröner, Kropf, Kropp, Krug, Krüger, Krull, Krumm, Krupp, Kruppa, Kruse, Kube, Kübler, Kuch, Küchler, Kuck, Kück, Kugel, Kugler, Kügler, Kuhl, Kühl, Kuhlmann, Kuhn, Kühn, Kühne, Kühnel, Kühner, Kuhnert, Kühnert, Kühnle, Kuhnt, Kuhr, Kullmann, Kümmel, Kummer, Kunath, Kunde, Kunert, Kunkel, Kunst, Kuntz, Kuntze, Kunz, Kunze, Künzel, Kunzmann, Küper, Kupfer, Kupka, Küpper, Küppers, Kürschner, Kurth, Kurtz, Kurz, Kusch, Kuschel, Küster, Küsters, Kutscher, Kutz, Kutzner, Lachmann, Lackner, Ladwig, Lambert, Lambertz, Lambrecht, Lamm, Lammers, Lampe, Lampert, Lamprecht, Landgraf, Landmann, Landwehr, Lang, Langbein, Lange, Langen, Langenbach, Langer, Langguth, Langhammer, Langhans, Langner, Lanz, Laskowski, Lau, Laub, Laube, Lauber, Laue, Lauer, Laufer, Laumann, Lautenschläger, Lauterbach, Laux, Lay, Leber, Lechner, Leder, Lederer, Lehmann, Lehmkuhl, Lehnen, Lehner, Lehnert, Lehr, Leibold, Leicht, Leinweber, Leipold, Leis, Leistner, Leitner, Lembke, Lemke, Lemm, Lemmer, Lenk, Lennartz, Lentz, Lenz, Lenzen, Leonhard, Leonhardt, Leopold, Lerch, Lesch, Leupold, Leuschner, Lewandowski, Lex, Ley, Licht, Lichtenberg, Lieb, Liebe, Liebert, Liebich, Liebig, Liebl, Liebmann, Liebscher, Lieder, Liedtke, Liese, Lieske, Lietz, Limbach, Limmer, Lind, Linde, Lindemann, Linden, Lindenau, Lindenberg, Linder, Lindner, Link, Linke, Linn, Linnemann, Linz, Lipinski, Lipp, Lippert, Lippmann, Lippold, List, Loch, Locher, Lochner, Löffler, Lohmann, Lohr, Löhr, Lohse, Loibl, Loos, Loose, Lorenz, Lorenzen, Lösch, Löser, Loth, Lotz, Löw, Löwe, Löwen, Lübben, Lübke, Lucas, Lucht, Lück, Lücke, Lüdecke, Lüdemann, Lüders, Ludewig, Lüdtke, Ludwig, Luft, Lühr, Lührs, Lukas, Lüke, Lüth, Luther, Lutter, Lutz, Lux, Maack, Maas, Maaß, Maaßen, Mack, Mader, Mäder, Mager, Mahler, Mahn, Mahnke, Mahr, Mai, Maier, Mainka, Mair, Maisch, Maiwald, Majewski, Mandel, Mang, Mangold, Manke, Mann, Manske, Manthey, Manz, Marek, Mark, Markert, Markgraf, Markmann, Marks, Markus, Marquardt, Marschall, Marschner, Marten, Martens, Martin, Martini, Marx, März, Maschke, Mast, Matern, Matheis, Mathes, Matt, Mattern, Mattes, Matthes, Matthias, Matthies, Matthiesen, Matz, Matzke, Mau, Mauch, Maucher, Mauer, Maul, Maurer, Maus, May, Mayer, Mayerhofer, Mayr, Meder, Mehl, Mehler, Mehlhorn, Mehner, Mehnert, Meier, Meindl, Meinecke, Meinel, Meiners, Meinert, Meinhardt, Meinke, Meise, Meisel, Meiser, Meissner, Meißner, Meister, Meixner, Melcher, Melchior, Melzer, Mende, Menge, Mengel, Menges, Menke, Menne, Menz, Menzel, Merk, Merkel, Merker, Merkl, Merkle, Merten, Mertens, Mertes, Merz, Messer, Messerschmidt, Messner, Mester, Metz, Metzger, Metzler, Metzner, Meurer, Meusel, Meuser, Mewes, Mey, Meyer, Mezger, Michael, Michaelis, Michalski, Michel, Michels, Michl, Michler, Middendorf, Mielke, Mies, Milde, Mildner, Miller, Milz, Mischke, Mitschke, Mittag, Mittelstädt, Mittermeier, Mittmann, Möbius, Möbus, Mock, Möckel, Möhle, Mohr, Möhring, Moldenhauer, Molitor, Moll, Möller, Möllers, Möllmann, Mönch, Montag, Moog, Moor, Moos, Moosmann, Morgenroth, Morgenstern, Moritz, Mosch, Moser, Möser, Motz, Mucha, Mück, Mücke, Mueller, Mühl, Mühlbauer, Mühlberger, Mühle, Müller, Münch, Mund, Mundt, Münster, Munz, Münz, Muth, Mutschler, Nachtigall, Nadler, Nagel, Nägele, Nagler, Nagy, Naß, Nau, Naujoks, Naumann, Nebel, Neef, Neff, Neher, Nehls, Nehring, Neitzel, Nelles, Nestler, Neu, Neubauer, Neuber, Neuberger, Neubert, Neufeld, Neugebauer, Neuhaus, Neumaier, Neumann, Neumeier, Neumeister, Neumüller, Neuner, Ney, Nickel, Nickl, Nicolai, Niebuhr, Niedermeier, Niehaus, Niehoff, Niehues, Nielsen, Niemann, Niemeier, Niemeyer, Nienhaus, Niermann, Nies, Nießen, Niggemann, Niklas, Nikolaus, Nissen, Nitsch, Nitsche, Nitschke, Nitz, Nitzsche, Nix, Noack, Noe, Nolden, Noll, Nolte, Nolting, Nordmann, Novak, Nowack, Nowak, Nürnberger, Nußbaum, Ober, Oberländer, Oberle, Obermaier, Obermeier, Obst, Ochs, Oehler, Oehme, Oertel, Oestreich, Offermann, Ohl, Ohm, Olbrich, Oldenburg, Olschewski, Oltmanns, Opitz, Oppermann, Orlowski, Orth, Ortmann, Ortner, Oßwald, Ostendorf, Oster, Osterloh, Ostermann, Ostermeier, Ostertag, Oswald, Ott, Otte, Otten, Otto, Özdemir, Öztürk, Pabst, Pagel, Pahl, Pahlke, Palm, Panzer, Pape, Papke, Paschke, Patzelt, Patzer, Pätzold, Paul, Pauli, Pauls, Paulsen, Paulus, Pauly, Pausch, Pawlik, Pawlowski, Pech, Pecher, Peetz, Peitz, Pelz, Pelzer, Penner, Pesch, Peschel, Peschke, Peter, Petermann, Peters, Petersen, Petri, Petry, Petzold, Peukert, Pfaff, Pfau, Pfeffer, Pfeifer, Pfeiffer, Pfeil, Pfennig, Pfeuffer, Pfister, Pfisterer, Pfitzner, Pflaum, Pflug, Pflüger, Philipp, Philippi, Philipps, Pichler, Pick, Pickel, Piel, Pieper, Pietsch, Pietschmann, Pietzsch, Piller, Pilz, Pingel, Piontek, Piotrowski, Pitz, Plank, Plate, Plath, Platz, Plöger, Plötz, Plum, Pohl, Pohle, Pohlmann, Pöhlmann, Pollak, Pollmann, Polster, Polzin, Pongratz, Popp, Poppe, Pöschl, Poser, Posselt, Post, Poth, Pott, Potthoff, Pötzsch, Prager, Prange, Prause, Preis, Preiß, Prell, Preuss, Preuß, Priebe, Pries, Prill, Prinz, Probst, Prüfer, Puls, Pusch, Püschel, Puschmann, Putz, Pütz, Quade, Quandt, Quast, Raab, Raabe, Raasch, Rabe, Raddatz, Rademacher, Radermacher, Radke, Radloff, Radtke, Rahm, Rahn, Raith, Ramm, Ranft, Rank, Rapp, Rasch, Rasche, Raschke, Rath, Rathmann, Rau, Rauch, Rauer, Rauh, Raupach, Rausch, Rauscher, Rautenberg, Reber, Rebmann, Rech, Reck, Recktenwald, Reder, Redlich, Reese, Reetz, Reger, Reh, Rehbein, Rehberg, Rehm, Reich, Reichardt, Reichart, Reiche, Reichel, Reichelt, Reichenbach, Reichert, Reichl, Reichle, Reichmann, Reif, Reiff, Reil, Reim, Reimann, Reimer, Reimers, Rein, Reinartz, Reindl, Reinecke, Reineke, Reiner, Reiners, Reinert, Reinhard, Reinhardt, Reinhart, Reinhold, Reinicke, Reinke, Reinsch, Reis, Reisch, Reischl, Reiser, Reisinger, Reiss, Reiß, Reiter, Reith, Reitz, Rempel, Renken, Renner, Rentsch, Renz, Repp, Resch, Reschke, Rettig, Retzlaff, Reusch, Reuß, Reuter, Reuther, Reutter, Rhein, Richert, Richter, Rick, Rickert, Ridder, Rieck, Ried, Riedel, Rieder, Riedl, Riegel, Rieger, Riehl, Rieke, Riemann, Riemer, Ries, Riese, Rieß, Ring, Ringel, Rink, Rinke, Risch, Risse, Rist, Ritschel, Ritter, Ritz, Roch, Rode, Rödel, Roder, Röder, Rödiger, Roeder, Rogge, Rohde, Rohe, Röhl, Rohleder, Rohloff, Röhm, Rohmann, Rohr, Röhr, Rohrbach, Rohrer, Röhrig, Röhrs, Rolf, Roll, Röll, Rolle, Roller, Roloff, Rombach, Römer, Rommel, Roos, Rösch, Roscher, Rose, Rosemann, Rosenbaum, Rosenberg, Rosenberger, Rosendahl, Rosenkranz, Rosenthal, Röser, Rosin, Rösler, Rosner, Rösner, Ross, Roß, Roßbach, Rössler, Rößler, Roßmann, Rößner, Rost, Roth, Rothe, Rother, Rott, Rotter, Röttger, Rottmann, Ruck, Rücker, Rückert, Rüdiger, Rudloff, Rudolf, Rudolph, Ruf, Ruff, Ruge, Rüger, Ruhl, Rühl, Ruhland, Rühle, Rummel, Rump, Rumpf, Runge, Runkel, Ruoff, Rupp, Ruppel, Ruppert, Rupprecht, Rusch, Russ, Ruß, Rust, Rüter, Ruth, Rüther, Rütten, Rutz, Saathoff, Sacher, Sachs, Sachse, Sack, Sadowski, Sager, Sahin, Sahm, Sailer, Salewski, Saller, Salomon, Salzmann, Sand, Sander, Sanders, Sandmann, Sandner, Sänger, Saß, Sasse, Sattler, Sauer, Sauermann, Saur, Sauter, Sautter, Schaaf, Schaal, Schaar, Schaarschmidt, Schacht, Schad, Schade, Schädlich, Schaefer, Schäfer, Schäfers, Schaffer, Schäffer, Schäffler, Schaffner, Schaffrath, Schaible, Schalk, Schall, Schaller, Schanz, Schaper, Schardt, Scharf, Schatz, Schätzle, Schaub, Schauer, Scheck, Scheel, Scheele, Scheer, Scheerer, Scheffel, Scheffer, Scheffler, Scheibe, Scheibel, Scheid, Scheidt, Scheler, Schell, Schellenberg, Scheller, Schenk, Schenke, Schenkel, Schepers, Scherer, Scherf, Scheu, Scheuer, Scheuermann, Scheurer, Schewe, Schick, Schiebel, Schiefer, Schiele, Schiemann, Schier, Schießl, Schiffer, Schiffmann, Schild, Schill, Schiller, Schilling, Schillinger, Schimanski, Schimmel, Schimmelpfennig, Schimpf, Schindler, Schink, Schipper, Schirmer, Schlag, Schlecht, Schlegel, Schleich, Schleicher, Schlemmer, Schlenker, Schlesinger, Schley, Schlicht, Schlichting, Schlick, Schlömer, Schlosser, Schlösser, Schlüter, Schmalz, Schmelz, Schmelzer, Schmid, Schmidbauer, Schmidl, Schmidt, Schmidtke, Schmied, Schmiedel, Schmieder, Schmitt, Schmitz, Schmoll, Schmuck, Schnabel, Schneck, Schneider, Schneiders, Schnell, Schnelle, Schneller, Schnieders, Schnitzer, Schnitzler, Schnoor, Schnur, Schnurr, Schöbel, Schober, Schoch, Schock, Schöler, Scholl, Schöll, Scholten, Scholz, Scholze, Schön, Schönberg, Schönberger, Schönborn, Schöne, Schönemann, Schöner, Schönfeld, Schönfelder, Schönherr, Schöning, Schopf, Schöpf, Schorn, Schorr, Schott, Schöttler, Schötz, Schrade, Schrader, Schrage, Schramm, Schreck, Schreiber, Schreier, Schreiner, Schreiter, Schreyer, Schröder, Schroeder, Schroer, Schröer, Schroll, Schröter, Schroth, Schubert, Schuch, Schuchardt, Schuck, Schug, Schuh, Schuhmacher, Schuhmann, Schuldt, Schüle, Schuler, Schüler, Schülke, Schuller, Schüller, Schult, Schulte, Schulten, Schultes, Schultheis, Schultheiß, Schultz, Schultze, Schulz, Schulze, Schumacher, Schumann, Schümann, Schünemann, Schunk, Schupp, Schürer, Schurig, Schürmann, Schurr, Schüssler, Schüßler, Schuster, Schütt, Schütte, Schüttler, Schütz, Schütze, Schwab, Schwabe, Schwager, Schwaiger, Schwalbe, Schwalm, Schwan, Schwandt, Schwanke, Schwartz, Schwarz, Schwarze, Schwarzer, Schwarzkopf, Schweiger, Schweigert, Schweikert, Schweitzer, Schweizer, Schwenk, Schwenke, Schwerdtfeger, Schwind, Schwinn, Sebastian, Sedlmeier, Seeger, Seel, Seelig, Seeliger, Seemann, Seewald, Seger, Seibel, Seibert, Seibold, Seibt, Seidel, Seidl, Seidler, Seifert, Seiffert, Seifried, Seiler, Seitz, Seliger, Sell, Selle, Selzer, Semmler, Senf, Senft, Senger, Seubert, Seufert, Severin, Seyfarth, Sieben, Sieber, Siebert, Siefert, Sieg, Siegel, Sieger, Siegert, Siegl, Siegmund, Siekmann, Siemens, Siemer, Siemers, Siepmann, Sievers, Sievert, Siewert, Sigl, Sikora, Simon, Simons, Singer, Sinn, Sippel, Smith, Sobotta, Sohn, Söllner, Sommer, Sommerfeld, Sondermann, Sonnenberg, Sonntag, Sorg, Sorge, Sowa, Spahn, Spangenberg, Späth, Specht, Speck, Speer, Speicher, Speidel, Spengler, Sperber, Sperl, Sperlich, Sperling, Spiegel, Spieker, Spiekermann, Spielmann, Spies, Spieß, Spiller, Spindler, Spitz, Spitzer, Spörl, Sprenger, Springer, Staab, Stach, Stadler, Stahl, Staiger, Stamm, Stang, Stange, Stangl, Stapf, Stark, Starke, Staub, Stauch, Staudinger, Staudt, Stecher, Steck, Stefan, Steffan, Steffen, Steffens, Stegemann, Steger, Stegmaier, Stegmann, Stehle, Stehr, Steidle, Steiger, Steigerwald, Stein, Steinbach, Steinberg, Steinberger, Steinborn, Steinbrecher, Steiner, Steinert, Steinhauer, Steinhauser, Steinhoff, Steininger, Steinkamp, Steinke, Steinle, Steinmann, Steinmetz, Steinmüller, Stellmacher, Stelter, Stelzer, Stemmer, Stemmler, Stender, Stengel, Stenger, Stenzel, Stephan, Stern, Sternberg, Steuer, Stevens, Stich, Stickel, Stief, Stiefel, Stiegler, Stier, Stiller, Stingl, Stobbe, Stöber, Stock, Stöckel, Stocker, Stöcker, Stöckl, Stockmann, Stoffel, Stöhr, Stoiber, Stoll, Stolle, Stolte, Stolz, Stolze, Storch, Storck, Stork, Storm, Störmer, Storz, Stotz, Stöver, Strack, Stracke, Strasser, Straßer, Stratmann, Straub, Straube, Strauch, Strauss, Strauß, Strecker, Strehl, Streich, Streicher, Streit, Stricker, Strobel, Strobl, Stroh, Strohmeier, Strube, Struck, Strunk, Strunz, Stuber, Stüber, Stumm, Stumpe, Stumpf, Sturm, Stürmer, Stutz, Suhr, Süß, Sutter, Swoboda, Sydow, Szymanski, Tacke, Tamm, Tappe, Taube, Tauber, Taubert, Tausch, Teichert, Teichmann, Temme, Tempel, Tesch, Teschner, Teske, Tetzlaff, Teuber, Teubner, Teufel, Tewes, Tews, Thaler, Thamm, Theil, Theis, Theisen, Theiß, Thelen, Theobald, Thiede, Thiel, Thiele, Thielemann, Thielen, Thielmann, Thiem, Thiemann, Thieme, Thies, Thimm, Thom, Thoma, Thomann, Thomas, Thome, Thoms, Thomsen, Thon, Thöne, Thormann, Thum, Tiede, Tiedemann, Tiemann, Tietjen, Tietz, Tietze, Till, Tillmann, Timm, Timmermann, Tischer, Tischler, Tittel, Titze, Tolksdorf, Tölle, Tonn, Töpfer, Topp, Toth, Träger, Trapp, Traub, Traut, Trautmann, Trautwein, Treiber, Tremmel, Triebel, Tröger, Trommer, Trost, Tröster, Türk, Uhl, Uhlemann, Uhlig, Uhlmann, Uhrig, Ulbrich, Ulbricht, Ullmann, Ullrich, Ulmer, Ulrich, Umbach, Unger, Unruh, Urban, Utz, Valentin, Vater, Vaupel, Veit, Veith, Velten, Vetter, Vieth, Vogel, Vögele, Vogelsang, Voges, Vogl, Vogler, Vogt, Voigt, Voigtländer, Voit, Volk, Völkel, Völker, Volkert, Völkl, Volkmann, Volkmer, Voll, Vollmer, Vollrath, Volz, Vorwerk, Voss, Voß, Wachsmuth, Wachter, Wächter, Wacker, Wagener, Wagenknecht, Wagner, Wahl, Waibel, Walch, Wald, Waldmann, Walker, Wall, Wallner, Walter, Walther, Walz, Wanke, Wanner, Warnecke, Warnke, Wassermann, Weber, Weck, Wecker, Wedekind, Wedel, Wege, Wegener, Wegmann, Wegner, Wehner, Wehr, Wehrle, Wehrmann, Weichert, Weide, Weidemann, Weidinger, Weidlich, Weidmann, Weidner, Weigand, Weigel, Weigelt, Weigert, Weigl, Weihrauch, Weil, Weiland, Weiler, Weimann, Weimer, Wein, Weinberg, Weinberger, Weiner, Weinert, Weingärtner, Weinhold, Weinmann, Weinreich, Weinrich, Weinzierl, Weirich, Weis, Weise, Weiser, Weishaupt, Weiss, Weiß, Weißbach, Weiße, Weißenborn, Weisser, Weißer, Weißmann, Weitz, Weitzel, Welker, Weller, Wellmann, Welsch, Welte, Welter, Welz, Welzel, Wende, Wendel, Wendland, Wendler, Wendt, Wenger, Wenig, Weniger, Wenk, Wenz, Wenzel, Wenzl, Werle, Werner, Wernicke, Werth, Wesemann, Wessel, Wessels, Westermann, Westhoff, Westphal, Wetzel, Weyand, Weyer, Weyers, Wichert, Wichmann, Wick, Wicke, Widmann, Wiebe, Wiechert, Wiechmann, Wieczorek, Wiedemann, Wiedenmann, Wiedmann, Wiegand, Wiegel, Wiegmann, Wieland, Wiemann, Wiemer, Wiener, Wiens, Wiese, Wieser, Wiesmann, Wiesner, Wiest, Wilczek, Wild, Wilde, Wildner, Wilhelm, Wilhelmi, Wilk, Wilke, Wilken, Wilkens, Will, Wille, Willems, Willer, Willmann, Willms, Wilms, Wimmer, Windisch, Winkel, Winkelmann, Winkler, Winter, Winzer, Wirth, Wirtz, Wischnewski, Wisniewski, Witt, Witte, Wittek, Wittenberg, Wittich, Wittig, Wittke, Wittmann, Wittwer, Witzel, Witzke, Wohlfahrt, Wohlfarth, Wohlgemuth, Wöhrle, Wolf, Wölfel, Wolff, Wölfle, Wolfram, Wolfrum, Wölk, Woll, Wollmann, Wollny, Wollschläger, Wolter, Wolters, Wörle, Worm, Wörner, Wortmann, Wrede, Wrobel, Wulf, Wulff, Wunder, Wunderlich, Wunsch, Wünsch, Wünsche, Würfel, Wurm, Wurst, Wurster, Wüst, Wuttke, Yildirim, Yildiz, Yilmaz, Zabel, Zach, Zacharias, Zacher, Zahn, Zander, Zapf, Zauner, Zech, Zeh, Zeidler, Zeiler, Zeitler, Zell, Zeller, Zellner, Zenker, Zettl, Zieger, Ziegler, Zielinski, Zielke, Ziemann, Ziemer, Zimmer, Zimmerer, Zimmermann, Zink, Zinke, Zinn, Zipfel, Zitzmann, Zobel, Zoller, Zöller, Zöllner, Zorn, Zuber, Zühlke, Zwick] female: [Abel, Abele, Abels, Abraham, Abt, Achatz, Achenbach, Acker, Ackermann, Adam, Adams, Adler, Adolf, Adolph, Adrian, Ahlers, Ahrens, Aigner, Alber, Albers, Albert, Albrecht, Alex, Alexander, Alles, Alt, Althaus, Althoff, Altmann, Altmeyer, Amann, Amend, Ammann, Ammon, Anders, Andersen, Andreas, Andres, Andresen, Anger, Angerer, Angermann, Anton, Apel, Appel, Appelt, Arend, Arendt, Arens, Arlt, Armbruster, Arndt, Arnold, Arslan, Artmann, Aschenbrenner, Asmus, Assmann, Aßmann, Auer, Augustin, Aust, Aydin, Bach, Bacher, Bächle, Bachmann, Bachmeier, Back, Bäcker, Backes, Backhaus, Bade, Bader, Baer, Bahr, Bähr, Baier, Baldauf, Balke, Baltes, Balzer, Bamberger, Bangert, Bär, Baron, Bartel, Bartels, Bartelt, Barth, Barthel, Bartl, Bartmann, Bartsch, Bartz, Barz, Basler, Bast, Bastian, Bätz, Bauch, Bauer, Bäuerle, Baum, Baumann, Baumbach, Baumeister, Baumer, Bäumer, Baumert, Baumgart, Baumgärtel, Baumgarten, Baumgartner, Baumgärtner, Bäumler, Baur, Bausch, Bayer, Becher, Becht, Bechtel, Bechtold, Beck, Becker, Beckers, Beckert, Beckmann, Beer, Beermann, Beetz, Behling, Behm, Behn, Behnke, Behr, Behrend, Behrends, Behrendt, Behrens, Behringer, Behrmann, Beier, Beil, Bell, Beller, Bellmann, Belz, Bendel, Bender, Bendig, Benecke, Benner, Benning, Bensch, Benz, Berberich, Berens, Berg, Bergemann, Bergen, Berger, Bergmann, Bergner, Berlin, Bernard, Berndt, Berner, Bernhard, Bernhardt, Berthold, Bertram, Bertsch, Best, Bethge, Bethke, Betz, Beutel, Beutler, Beyer, Bichler, Bickel, Bieber, Biedermann, Biehl, Bielefeld, Bienert, Bier, Biermann, Biller, Binder, Birk, Birke, Birkholz, Birkner, Birner, Bischof, Bischoff, Bitter, Bittner, Bitzer, Blank, Blanke, Blankenburg, Blaschke, Blau, Blechschmidt, Blessing, Bley, Bloch, Block, Blohm, Blome, Bluhm, Blum, Blume, Blümel, Blumenthal, Bochmann, Bock, Böck, Böcker, Böckmann, Bode, Boden, Bogner, Bohl, Bohlen, Böhler, Bohlmann, Bohm, Böhm, Böhme, Böhmer, Bohn, Bohne, Böhner, Bohnert, Böhnke, Bohr, Böhringer, Böker, Boldt, Boll, Boller, Bollmann, Bolte, Bolz, Bongartz, Böning, Bönisch, Bonk, Bonn, Boos, Bopp, Borchardt, Borchers, Borchert, Börger, Borgmann, Bork, Bormann, Born, Bornemann, Börner, Borowski, Borrmann, Bosch, Bösch, Böse, Bosse, Both, Bothe, Bott, Böttcher, Böttger, Böttner, Boy, Bracht, Brack, Brand, Brandenburg, Brandes, Brandl, Brandner, Brandstetter, Brandt, Brauer, Bräuer, Braun, Braune, Brauner, Bräutigam, Brecht, Brede, Brehm, Brehmer, Breidenbach, Breier, Breit, Breitenbach, Bremer, Brendel, Brennecke, Brenner, Bretschneider, Brettschneider, Breu, Breuer, Breunig, Breyer, Brill, Brink, Brinker, Brinkmann, Brix, Brock, Bröcker, Brockmann, Bröker, Brosch, Brose, Bruch, Brück, Brucker, Brückmann, Bruckner, Brückner, Bruder, Brüggemann, Brugger, Brühl, Bruhn, Brummer, Brümmer, Brune, Brüning, Brunke, Brunner, Bruns, Brust, Buch, Büchel, Bucher, Buchholz, Büchler, Buchmann, Buchner, Büchner, Buchwald, Buck, Bücker, Budde, Buhl, Bühler, Bühner, Buhr, Bülow, Bunge, Bünger, Bunk, Burg, Burger, Bürger, Burghardt, Burk, Burkard, Burkart, Burkert, Burkhard, Burkhardt, Burkhart, Bürkle, Burmeister, Burmester, Busch, Busche, Büscher, Buschmann, Buse, Büsing, Buss, Buß, Busse, Bußmann, Büttner, Butz, Carl, Carstens, Carstensen, Caspari, Casper, Celik, Christ, Christian, Christiansen, Christmann, Christoph, Clasen, Claßen, Claus, Clausen, Clauß, Claußen, Clemens, Coenen, Cohrs, Conrad, Conradi, Cordes, Cornelius, Cramer, Cremer, Czech, Dahl, Dahlke, Dahlmann, Dahm, Dahmen, Dahms, Dallmann, Damm, Dammann, Daniel, Daniels, Dannenberg, Danner, Daub, Daum, David, de, Debus, Decker, Deckert, Degen, Degenhardt, Degner, Dehn, Deininger, Demir, Demmer, Demuth, Denecke, Dengler, Denk, Denker, Deppe, Derksen, Dettmann, Dettmer, Deutsch, Deutschmann, Dewald, Dick, Dickmann, Dieckmann, Diederich, Diederichs, Diedrich, Diefenbach, Diehl, Diekmann, Diel, Diemer, Diener, Dierkes, Dierks, Dietel, Dieterich, Dieterle, Dietl, Dietrich, Dietz, Dietze, Dietzel, Dill, Dillmann, Dinkel, Dinter, Dippel, Dirks, Distler, Dittmann, Dittmar, Dittmer, Dittrich, Dobler, Dogan, Döhler, Dohmen, Döhring, Dohrmann, Dold, Doll, Döll, Dombrowski, Domke, Donath, Donner, Dörfler, Döring, Dorn, Dorner, Dörner, Dörr, Dorsch, Dose, Dost, Dräger, Drechsel, Drechsler, Drees, Dreher, Dreier, Drescher, Dressel, Dressler, Dreßler, Drewes, Drews, Drexler, Dreyer, Dröge, Droste, Dück, Duda, Dudek, Dunkel, Dunker, Düring, Dürr, Duwe, Dyck, Ebel, Ebeling, Eberhard, Eberhardt, Eberl, Eberle, Eberlein, Ebert, Ebner, Eck, Eckardt, Eckart, Eckel, Ecker, Eckert, Eckhardt, Eckhoff, Eckl, Eckstein, Edel, Edelmann, Eder, Edler, Effenberger, Eger, Egger, Eggers, Eggert, Egner, Ehlers, Ehlert, Ehmann, Ehrenberg, Ehret, Ehrhardt, Ehrich, Ehrlich, Ehrmann, Eibl, Eich, Eichholz, Eichhorn, Eichinger, Eichler, Eichmann, Eichner, Eickhoff, Eifler, Eilers, Eisele, Eisenmann, Eismann, Eisner, Eitel, Eller, Elsner, Emde, Emmerich, Emmert, Emrich, Ender, Enderle, Enders, Endres, Engel, Engelbrecht, Engelhard, Engelhardt, Engelke, Engelmann, Engels, Engert, Engl, Engler, Englert, Enke, Epp, Epple, Eppler, Erb, Erbe, Erben, Erdmann, Erhard, Erhardt, Erler, Ernst, Ertel, Ertl, Esch, Escher, Esser, Eßer, Essig, Euler, Evers, Ewald, Ewers, Ewert, Exner, Faber, Fabian, Falk, Falke, Falkenberg, Faller, Färber, Faßbender, Fast, Fath, Faulhaber, Faust, Fechner, Fehr, Fehrenbach, Feige, Feil, Feiler, Feist, Felber, Feld, Feldhaus, Feldmann, Feldmeier, Feller, Fellner, Fels, Fendt, Fengler, Fenske, Fenzl, Ferber, Ferstl, Fett, Fetzer, Fey, Fichtner, Fick, Fiebig, Fiedler, Figge, Findeisen, Finger, Fink, Finkbeiner, Finke, Fisch, Fischbach, Fischer, Fitz, Fix, Flach, Flaig, Fleck, Fleckenstein, Fleischer, Fleischhauer, Fleischmann, Flemming, Flick, Flohr, Flügel, Flügge, Focke, Forster, Förster, Forstner, Förtsch, Fox, Frahm, Franck, Frank, Franke, Franken, Franz, Franzen, Franzke, Frech, Freese, Frei, Freiberg, Freier, Freitag, Frenz, Frenzel, Frerichs, Frese, Freudenberg, Freund, Frey, Freyer, Freytag, Frick, Fricke, Friebe, Friedel, Friedemann, Friedl, Friedmann, Friedrich, Friedrichs, Fries, Friese, Friesen, Frieß, Frings, Frisch, Fritsch, Fritsche, Fritz, Fritze, Fritzsch, Fritzsche, Fröhlich, Fromm, Fromme, Frost, Früh, Frühauf, Fuchs, Fuhr, Führer, Fuhrmann, Funk, Funke, Fürst, Fuß, Fütterer, Gabel, Gabler, Gäbler, Gabriel, Gaida, Gaiser, Gall, Galle, Ganser, Ganter, Ganz, Garbe, Gärtner, Gassner, Gaßner, Gast, Gaul, Gaus, Gebauer, Gebel, Gebert, Gebhard, Gebhardt, Gehlen, Gehrig, Gehring, Gehrke, Gehrmann, Geib, Geier, Geiger, Geis, Geisler, Geiß, Geissler, Geißler, Geist, Gellert, Gentner, Genz, Georg, George, Georgi, Geppert, Gerber, Gerdes, Gerhard, Gerhards, Gerhardt, Gericke, Gerke, Gerken, Gerlach, Gerling, Germann, Gerner, Gerstner, Gerth, Gessner, Geßner, Geyer, Giebel, Gies, Giese, Giesecke, Giesen, Gilbert, Gille, Gilles, Glas, Glaser, Gläser, Glaß, Glatz, Gleich, Gleißner, Glock, Glöckner, Glück, Göbel, Gödde, Gödecke, Goebel, Goerke, Goertz, Göhler, Gohlke, Göhring, Gold, Goldbach, Goldberg, Goldmann, Goldschmidt, Goll, Goller, Göller, Göllner, Golz, Gölz, Göpfert, Görg, Görgen, Göring, Görlich, Görner, Görtz, Götte, Gottfried, Gotthardt, Gottschalk, Gottschlich, Gottschling, Gottwald, Götz, Götze, Gräber, Grabow, Grabowski, Gradl, Graf, Gräf, Grafe, Gräfe, Grahl, Gramlich, Grams, Graß, Graßl, Grätz, Grau, Graupner, Greb, Grebe, Greger, Gregor, Greif, Greiner, Grell, Grenz, Greulich, Greve, Grewe, Griebel, Grieger, Gries, Griese, Grill, Grimm, Grimmer, Grobe, Gröger, Groh, Grohmann, Groll, Gronau, Gröne, Grosch, Gross, Groß, Grosse, Große, Grosser, Großer, Großkopf, Grossmann, Großmann, Grote, Groth, Grothe, Grube, Gruber, Gruhn, Grün, Grünberg, Grund, Grundmann, Gruner, Grüner, Grunert, Grunewald, Grünewald, Grunwald, Grünwald, Grützner, Guhl, Gundlach, Gunkel, Günter, Günther, Günzel, Gürtler, Guse, Guth, Gutjahr, Gutmann, Gutsche, Güttler, Gutzeit, Haack, Haag, Haak, Haake, Haarmann, Haas, Haase, Habel, Haberkorn, Haberl, Haberland, Häberle, Habermann, Hack, Hackbarth, Hackenberg, Hacker, Häcker, Hackl, Hackmann, Häfele, Hafner, Häfner, Hagedorn, Hagel, Hägele, Hagemann, Hagen, Hager, Hahn, Hahne, Hähnel, Haider, Haimerl, Hain, Hake, Haller, Hallmann, Hamacher, Hamann, Hamm, Hammann, Hammel, Hammer, Hammerschmidt, Hammes, Hampe, Hampel, Handke, Hänel, Hanf, Hanisch, Hanke, Hannemann, Hannig, Hans, Hänsch, Hansel, Hänsel, Hansen, Hansmann, Hantke, Happel, Harder, Hardt, Häring, Harms, Harnisch, Harrer, Härtel, Harter, Harth, Hartig, Hartl, Härtl, Hartmann, Hartung, Hartwich, Hartwig, Hase, Hass, Haß, Hasse, Hassel, Hau, Hauber, Haubold, Hauck, Hauer, Haufe, Haug, Hauk, Hauke, Haupt, Hauptmann, Haus, Hauschild, Hauser, Häuser, Häusler, Hausmann, Hausner, Häußler, Haußmann, Haustein, Heber, Hecht, Heck, Heckel, Hecker, Heckmann, Hedrich, Heer, Heese, Hegemann, Heger, Heid, Heide, Heidemann, Heiden, Heidenreich, Heider, Heidrich, Heidt, Heigl, Heil, Heiland, Heilig, Heilmann, Heim, Heimann, Hein, Heindl, Heine, Heinecke, Heinemann, Heinen, Heinicke, Heinig, Heinisch, Heinke, Heinlein, Heinrich, Heinrichs, Heins, Heintz, Heinz, Heinze, Heinzel, Heinzelmann, Heinzmann, Heise, Heiser, Heisig, Heiß, Heitmann, Heitz, Heizmann, Helbig, Helbing, Held, Heldt, Helfrich, Hell, Heller, Hellmann, Hellmich, Hellmuth, Hellwig, Helm, Helmer, Helmke, Helms, Hemmer, Hempel, Hendricks, Hengst, Henke, Henkel, Henn, Henne, Hennecke, Hennemann, Hennig, Henning, Henninger, Hennings, Henrich, Henrichs, Henschel, Hense, Hensel, Henseler, Hentschel, Henze, Hepp, Heppner, Herb, Herber, Herbert, Herbst, Herdt, Herget, Hering, Hermann, Hermanns, Hermes, Herold, Herr, Herrmann, Hertel, Herter, Hertlein, Hertwig, Herwig, Herz, Herzberg, Herzig, Herzog, Hess, Heß, Hesse, Hessel, Heßler, Hettich, Hetzel, Heuer, Heumann, Heuser, Hey, Heyer, Heymann, Heyn, Heyne, Hieber, Hielscher, Hierl, Hilbert, Hilbig, Hild, Hildebrand, Hildebrandt, Hildenbrand, Hilger, Hilgers, Hill, Hille, Hillebrand, Hillenbrand, Hiller, Hillmann, Hilmer, Hilpert, Himmel, Hinkel, Hinrichs, Hinrichsen, Hintz, Hintze, Hinz, Hinze, Hinzmann, Hipp, Hirsch, Hirschfeld, Hirschmann, Hirt, Hirth, Hoch, Hochmuth, Hock, Hof, Hofbauer, Hofer, Höfer, Hoff, Hoffmann, Hoffmeister, Höfler, Höfling, Hofmann, Hofmeister, Hofstetter, Höft, Höger, Hohl, Hohmann, Hohn, Höhn, Höhne, Holl, Höll, Holland, Holler, Höller, Hollmann, Hollstein, Holm, Hölscher, Holst, Holstein, Holtkamp, Holtmann, Holtz, Holz, Holzapfel, Hölzel, Holzer, Hölzer, Holzinger, Hölzl, Holzmann, Holzner, Holzwarth, Homann, Hommel, Hönig, Hopf, Höpfner, Hopp, Hoppe, Höppner, Hörl, Hörmann, Horn, Hörner, Hornig, Hornung, Horst, Horstmann, Horvath, Hotz, Hoyer, Huber, Hubert, Hübner, Hübsch, Huck, Hufnagel, Hug, Hügel, Huhn, Hüls, Hülsmann, Hummel, Hümmer, Hund, Hundertmark, Hundt, Hunger, Huppertz, Husemann, Husmann, Huth, Hüther, Hutter, Hütter, Hüttner, Ihle, Ilg, Imhof, Irmer, Irrgang, Israel, Jablonski, Jäckel, Jacob, Jacobi, Jacobs, Jacobsen, Jaeger, Jäger, Jahn, Jahnke, Jahns, Jäkel, Jakob, Jakobi, Jakobs, Jänicke, Janik, Janke, Jankowski, Jansen, Janson, Janssen, Janßen, Janz, Janzen, Jäschke, Jasper, Jauch, Jehle, Jensen, Jentsch, Jentzsch, Jeschke, Jeske, Jesse, Jessen, Joachim, Jobst, Jochum, Johann, Johannes, Johannsen, John, Jonas, Joos, Jordan, Jörg, Joseph, Jost, Jünemann, Jung, Jungbluth, Junge, Jünger, Junghans, Jüngling, Jungmann, Junk, Junker, Jürgens, Jürgensen, Just, Jüttner, Kaczmarek, Kaden, Käfer, Kahl, Kahle, Kähler, Kahlert, Kaiser, Kalb, Kalinowski, Kalisch, Kallenbach, Kaltenbach, Kaluza, Kaminski, Kamm, Kammer, Kammerer, Kämmerer, Kamp, Kampe, Kämpf, Kampmann, Kamps, Kania, Kanzler, Kapp, Kappel, Kappes, Kappler, Kaps, Karcher, Karg, Karger, Karl, Karle, Karsten, Käser, Kaspar, Kasper, Kast, Kasten, Kastl, Kastner, Kästner, Katz, Katzer, Kauer, Kaufhold, Kaufmann, Kaul, Kautz, Kaya, Kayser, Keck, Kegel, Kehl, Kehr, Kehrer, Keil, Keim, Keitel, Keller, Kellermann, Kellner, Kelm, Kemmer, Kempe, Kemper, Kempf, Keppler, Kerber, Kerkhoff, Kern, Kerner, Kerscher, Kersten, Kersting, Kessel, Kessler, Keßler, Ketterer, Kettler, Kettner, Kick, Kiefer, Kiel, Kienle, Kienzle, Kiesel, Kiesewetter, Kießling, Kilian, Kilic, Kimmel, Kind, Kinder, Kindermann, Kindler, Kinzel, Kipp, Kirch, Kircher, Kirchhof, Kirchhoff, Kirchner, Kirsch, Kirschbaum, Kirschner, Kirst, Kirstein, Kirsten, Kissel, Kistner, Kittel, Klaas, Klages, Klaiber, Klapper, Klar, Klasen, Klassen, Klatt, Klaus, Kleber, Klee, Kleemann, Klein, Kleine, Kleiner, Kleinert, Kleinhans, Kleinschmidt, Klement, Klemm, Klenk, Klett, Kley, Kliem, Klier, Kling, Klingbeil, Klinge, Klingenberg, Klinger, Klingler, Klink, Klinke, Klinkhammer, Klocke, Klöckner, Kloos, Klos, Klose, Kloss, Kloß, Klostermann, Kloth, Klotz, Klug, Kluge, Klumpp, Kluth, Knab, Knabe, Knapp, Knappe, Knauer, Knauf, Knaus, Knebel, Knecht, Knittel, Knoblauch, Knobloch, Knoch, Knoche, Knödler, Knoll, Knoop, Knop, Knopf, Knopp, Knorr, Knoth, Knott, Knüppel, Knuth, Kober, Koch, Köcher, Kock, Koenen, Kögel, Kögler, Kohl, Köhl, Kohler, Köhler, Kohlmann, Kohn, Köhn, Köhne, Kohnen, Kolb, Kolbe, Kolbeck, Kolberg, Kölbl, Koll, Koller, Köller, Kölling, Kollmann, Köllner, Kolodziej, Kölsch, König, Königs, Konrad, Koop, Koopmann, Kopf, Köpke, Kopp, Koppe, Köppe, Köppel, Köppen, Köppl, Korb, Körber, Korn, Körner, Korte, Korth, Kortmann, Koslowski, Kost, Köster, Kösters, Köstler, Kothe, Kötter, Kowalewski, Kowalski, Kracht, Kraemer, Krafft, Kraft, Krah, Krahl, Krahn, Kramer, Krämer, Krammer, Kramp, Krampe, Kranz, Krapf, Krapp, Kratz, Kratzer, Kraus, Krause, Krauss, Krauß, Krauße, Krawczyk, Krebs, Kreft, Kreis, Krell, Kremer, Kremser, Krenz, Kress, Kreß, Kretschmann, Kretschmer, Kretz, Kretzer, Kretzschmar, Kreutz, Kreutzer, Kreuz, Kreuzer, Krey, Krieg, Kriegel, Krieger, Krings, Kröber, Kröger, Krohn, Kroll, Kröll, Kromer, Krone, Kröner, Kropf, Kropp, Krug, Krüger, Krull, Krumm, Krupp, Kruppa, Kruse, Kube, Kübler, Kuch, Küchler, Kuck, Kück, Kugel, Kugler, Kügler, Kuhl, Kühl, Kuhlmann, Kuhn, Kühn, Kühne, Kühnel, Kühner, Kuhnert, Kühnert, Kühnle, Kuhnt, Kuhr, Kullmann, Kümmel, Kummer, Kunath, Kunde, Kunert, Kunkel, Kunst, Kuntz, Kuntze, Kunz, Kunze, Künzel, Kunzmann, Küper, Kupfer, Kupka, Küpper, Küppers, Kürschner, Kurth, Kurtz, Kurz, Kusch, Kuschel, Küster, Küsters, Kutscher, Kutz, Kutzner, Lachmann, Lackner, Ladwig, Lambert, Lambertz, Lambrecht, Lamm, Lammers, Lampe, Lampert, Lamprecht, Landgraf, Landmann, Landwehr, Lang, Langbein, Lange, Langen, Langenbach, Langer, Langguth, Langhammer, Langhans, Langner, Lanz, Laskowski, Lau, Laub, Laube, Lauber, Laue, Lauer, Laufer, Laumann, Lautenschläger, Lauterbach, Laux, Lay, Leber, Lechner, Leder, Lederer, Lehmann, Lehmkuhl, Lehnen, Lehner, Lehnert, Lehr, Leibold, Leicht, Leinweber, Leipold, Leis, Leistner, Leitner, Lembke, Lemke, Lemm, Lemmer, Lenk, Lennartz, Lentz, Lenz, Lenzen, Leonhard, Leonhardt, Leopold, Lerch, Lesch, Leupold, Leuschner, Lewandowski, Lex, Ley, Licht, Lichtenberg, Lieb, Liebe, Liebert, Liebich, Liebig, Liebl, Liebmann, Liebscher, Lieder, Liedtke, Liese, Lieske, Lietz, Limbach, Limmer, Lind, Linde, Lindemann, Linden, Lindenau, Lindenberg, Linder, Lindner, Link, Linke, Linn, Linnemann, Linz, Lipinski, Lipp, Lippert, Lippmann, Lippold, List, Loch, Locher, Lochner, Löffler, Lohmann, Lohr, Löhr, Lohse, Loibl, Loos, Loose, Lorenz, Lorenzen, Lösch, Löser, Loth, Lotz, Löw, Löwe, Löwen, Lübben, Lübke, Lucas, Lucht, Lück, Lücke, Lüdecke, Lüdemann, Lüders, Ludewig, Lüdtke, Ludwig, Luft, Lühr, Lührs, Lukas, Lüke, Lüth, Luther, Lutter, Lutz, Lux, Maack, Maas, Maaß, Maaßen, Mack, Mader, Mäder, Mager, Mahler, Mahn, Mahnke, Mahr, Mai, Maier, Mainka, Mair, Maisch, Maiwald, Majewski, Mandel, Mang, Mangold, Manke, Mann, Manske, Manthey, Manz, Marek, Mark, Markert, Markgraf, Markmann, Marks, Markus, Marquardt, Marschall, Marschner, Marten, Martens, Martin, Martini, Marx, März, Maschke, Mast, Matern, Matheis, Mathes, Matt, Mattern, Mattes, Matthes, Matthias, Matthies, Matthiesen, Matz, Matzke, Mau, Mauch, Maucher, Mauer, Maul, Maurer, Maus, May, Mayer, Mayerhofer, Mayr, Meder, Mehl, Mehler, Mehlhorn, Mehner, Mehnert, Meier, Meindl, Meinecke, Meinel, Meiners, Meinert, Meinhardt, Meinke, Meise, Meisel, Meiser, Meissner, Meißner, Meister, Meixner, Melcher, Melchior, Melzer, Mende, Menge, Mengel, Menges, Menke, Menne, Menz, Menzel, Merk, Merkel, Merker, Merkl, Merkle, Merten, Mertens, Mertes, Merz, Messer, Messerschmidt, Messner, Mester, Metz, Metzger, Metzler, Metzner, Meurer, Meusel, Meuser, Mewes, Mey, Meyer, Mezger, Michael, Michaelis, Michalski, Michel, Michels, Michl, Michler, Middendorf, Mielke, Mies, Milde, Mildner, Miller, Milz, Mischke, Mitschke, Mittag, Mittelstädt, Mittermeier, Mittmann, Möbius, Möbus, Mock, Möckel, Möhle, Mohr, Möhring, Moldenhauer, Molitor, Moll, Möller, Möllers, Möllmann, Mönch, Montag, Moog, Moor, Moos, Moosmann, Morgenroth, Morgenstern, Moritz, Mosch, Moser, Möser, Motz, Mucha, Mück, Mücke, Mueller, Mühl, Mühlbauer, Mühlberger, Mühle, Müller, Münch, Mund, Mundt, Münster, Munz, Münz, Muth, Mutschler, Nachtigall, Nadler, Nagel, Nägele, Nagler, Nagy, Naß, Nau, Naujoks, Naumann, Nebel, Neef, Neff, Neher, Nehls, Nehring, Neitzel, Nelles, Nestler, Neu, Neubauer, Neuber, Neuberger, Neubert, Neufeld, Neugebauer, Neuhaus, Neumaier, Neumann, Neumeier, Neumeister, Neumüller, Neuner, Ney, Nickel, Nickl, Nicolai, Niebuhr, Niedermeier, Niehaus, Niehoff, Niehues, Nielsen, Niemann, Niemeier, Niemeyer, Nienhaus, Niermann, Nies, Nießen, Niggemann, Niklas, Nikolaus, Nissen, Nitsch, Nitsche, Nitschke, Nitz, Nitzsche, Nix, Noack, Noe, Nolden, Noll, Nolte, Nolting, Nordmann, Novak, Nowack, Nowak, Nürnberger, Nußbaum, Ober, Oberländer, Oberle, Obermaier, Obermeier, Obst, Ochs, Oehler, Oehme, Oertel, Oestreich, Offermann, Ohl, Ohm, Olbrich, Oldenburg, Olschewski, Oltmanns, Opitz, Oppermann, Orlowski, Orth, Ortmann, Ortner, Oßwald, Ostendorf, Oster, Osterloh, Ostermann, Ostermeier, Ostertag, Oswald, Ott, Otte, Otten, Otto, Özdemir, Öztürk, Pabst, Pagel, Pahl, Pahlke, Palm, Panzer, Pape, Papke, Paschke, Patzelt, Patzer, Pätzold, Paul, Pauli, Pauls, Paulsen, Paulus, Pauly, Pausch, Pawlik, Pawlowski, Pech, Pecher, Peetz, Peitz, Pelz, Pelzer, Penner, Pesch, Peschel, Peschke, Peter, Petermann, Peters, Petersen, Petri, Petry, Petzold, Peukert, Pfaff, Pfau, Pfeffer, Pfeifer, Pfeiffer, Pfeil, Pfennig, Pfeuffer, Pfister, Pfisterer, Pfitzner, Pflaum, Pflug, Pflüger, Philipp, Philippi, Philipps, Pichler, Pick, Pickel, Piel, Pieper, Pietsch, Pietschmann, Pietzsch, Piller, Pilz, Pingel, Piontek, Piotrowski, Pitz, Plank, Plate, Plath, Platz, Plöger, Plötz, Plum, Pohl, Pohle, Pohlmann, Pöhlmann, Pollak, Pollmann, Polster, Polzin, Pongratz, Popp, Poppe, Pöschl, Poser, Posselt, Post, Poth, Pott, Potthoff, Pötzsch, Prager, Prange, Prause, Preis, Preiß, Prell, Preuss, Preuß, Priebe, Pries, Prill, Prinz, Probst, Prüfer, Puls, Pusch, Püschel, Puschmann, Putz, Pütz, Quade, Quandt, Quast, Raab, Raabe, Raasch, Rabe, Raddatz, Rademacher, Radermacher, Radke, Radloff, Radtke, Rahm, Rahn, Raith, Ramm, Ranft, Rank, Rapp, Rasch, Rasche, Raschke, Rath, Rathmann, Rau, Rauch, Rauer, Rauh, Raupach, Rausch, Rauscher, Rautenberg, Reber, Rebmann, Rech, Reck, Recktenwald, Reder, Redlich, Reese, Reetz, Reger, Reh, Rehbein, Rehberg, Rehm, Reich, Reichardt, Reichart, Reiche, Reichel, Reichelt, Reichenbach, Reichert, Reichl, Reichle, Reichmann, Reif, Reiff, Reil, Reim, Reimann, Reimer, Reimers, Rein, Reinartz, Reindl, Reinecke, Reineke, Reiner, Reiners, Reinert, Reinhard, Reinhardt, Reinhart, Reinhold, Reinicke, Reinke, Reinsch, Reis, Reisch, Reischl, Reiser, Reisinger, Reiss, Reiß, Reiter, Reith, Reitz, Rempel, Renken, Renner, Rentsch, Renz, Repp, Resch, Reschke, Rettig, Retzlaff, Reusch, Reuß, Reuter, Reuther, Reutter, Rhein, Richert, Richter, Rick, Rickert, Ridder, Rieck, Ried, Riedel, Rieder, Riedl, Riegel, Rieger, Riehl, Rieke, Riemann, Riemer, Ries, Riese, Rieß, Ring, Ringel, Rink, Rinke, Risch, Risse, Rist, Ritschel, Ritter, Ritz, Roch, Rode, Rödel, Roder, Röder, Rödiger, Roeder, Rogge, Rohde, Rohe, Röhl, Rohleder, Rohloff, Röhm, Rohmann, Rohr, Röhr, Rohrbach, Rohrer, Röhrig, Röhrs, Rolf, Roll, Röll, Rolle, Roller, Roloff, Rombach, Römer, Rommel, Roos, Rösch, Roscher, Rose, Rosemann, Rosenbaum, Rosenberg, Rosenberger, Rosendahl, Rosenkranz, Rosenthal, Röser, Rosin, Rösler, Rosner, Rösner, Ross, Roß, Roßbach, Rössler, Rößler, Roßmann, Rößner, Rost, Roth, Rothe, Rother, Rott, Rotter, Röttger, Rottmann, Ruck, Rücker, Rückert, Rüdiger, Rudloff, Rudolf, Rudolph, Ruf, Ruff, Ruge, Rüger, Ruhl, Rühl, Ruhland, Rühle, Rummel, Rump, Rumpf, Runge, Runkel, Ruoff, Rupp, Ruppel, Ruppert, Rupprecht, Rusch, Russ, Ruß, Rust, Rüter, Ruth, Rüther, Rütten, Rutz, Saathoff, Sacher, Sachs, Sachse, Sack, Sadowski, Sager, Sahin, Sahm, Sailer, Salewski, Saller, Salomon, Salzmann, Sand, Sander, Sanders, Sandmann, Sandner, Sänger, Saß, Sasse, Sattler, Sauer, Sauermann, Saur, Sauter, Sautter, Schaaf, Schaal, Schaar, Schaarschmidt, Schacht, Schad, Schade, Schädlich, Schaefer, Schäfer, Schäfers, Schaffer, Schäffer, Schäffler, Schaffner, Schaffrath, Schaible, Schalk, Schall, Schaller, Schanz, Schaper, Schardt, Scharf, Schatz, Schätzle, Schaub, Schauer, Scheck, Scheel, Scheele, Scheer, Scheerer, Scheffel, Scheffer, Scheffler, Scheibe, Scheibel, Scheid, Scheidt, Scheler, Schell, Schellenberg, Scheller, Schenk, Schenke, Schenkel, Schepers, Scherer, Scherf, Scheu, Scheuer, Scheuermann, Scheurer, Schewe, Schick, Schiebel, Schiefer, Schiele, Schiemann, Schier, Schießl, Schiffer, Schiffmann, Schild, Schill, Schiller, Schilling, Schillinger, Schimanski, Schimmel, Schimmelpfennig, Schimpf, Schindler, Schink, Schipper, Schirmer, Schlag, Schlecht, Schlegel, Schleich, Schleicher, Schlemmer, Schlenker, Schlesinger, Schley, Schlicht, Schlichting, Schlick, Schlömer, Schlosser, Schlösser, Schlüter, Schmalz, Schmelz, Schmelzer, Schmid, Schmidbauer, Schmidl, Schmidt, Schmidtke, Schmied, Schmiedel, Schmieder, Schmitt, Schmitz, Schmoll, Schmuck, Schnabel, Schneck, Schneider, Schneiders, Schnell, Schnelle, Schneller, Schnieders, Schnitzer, Schnitzler, Schnoor, Schnur, Schnurr, Schöbel, Schober, Schoch, Schock, Schöler, Scholl, Schöll, Scholten, Scholz, Scholze, Schön, Schönberg, Schönberger, Schönborn, Schöne, Schönemann, Schöner, Schönfeld, Schönfelder, Schönherr, Schöning, Schopf, Schöpf, Schorn, Schorr, Schott, Schöttler, Schötz, Schrade, Schrader, Schrage, Schramm, Schreck, Schreiber, Schreier, Schreiner, Schreiter, Schreyer, Schröder, Schroeder, Schroer, Schröer, Schroll, Schröter, Schroth, Schubert, Schuch, Schuchardt, Schuck, Schug, Schuh, Schuhmacher, Schuhmann, Schuldt, Schüle, Schuler, Schüler, Schülke, Schuller, Schüller, Schult, Schulte, Schulten, Schultes, Schultheis, Schultheiß, Schultz, Schultze, Schulz, Schulze, Schumacher, Schumann, Schümann, Schünemann, Schunk, Schupp, Schürer, Schurig, Schürmann, Schurr, Schüssler, Schüßler, Schuster, Schütt, Schütte, Schüttler, Schütz, Schütze, Schwab, Schwabe, Schwager, Schwaiger, Schwalbe, Schwalm, Schwan, Schwandt, Schwanke, Schwartz, Schwarz, Schwarze, Schwarzer, Schwarzkopf, Schweiger, Schweigert, Schweikert, Schweitzer, Schweizer, Schwenk, Schwenke, Schwerdtfeger, Schwind, Schwinn, Sebastian, Sedlmeier, Seeger, Seel, Seelig, Seeliger, Seemann, Seewald, Seger, Seibel, Seibert, Seibold, Seibt, Seidel, Seidl, Seidler, Seifert, Seiffert, Seifried, Seiler, Seitz, Seliger, Sell, Selle, Selzer, Semmler, Senf, Senft, Senger, Seubert, Seufert, Severin, Seyfarth, Sieben, Sieber, Siebert, Siefert, Sieg, Siegel, Sieger, Siegert, Siegl, Siegmund, Siekmann, Siemens, Siemer, Siemers, Siepmann, Sievers, Sievert, Siewert, Sigl, Sikora, Simon, Simons, Singer, Sinn, Sippel, Smith, Sobotta, Sohn, Söllner, Sommer, Sommerfeld, Sondermann, Sonnenberg, Sonntag, Sorg, Sorge, Sowa, Spahn, Spangenberg, Späth, Specht, Speck, Speer, Speicher, Speidel, Spengler, Sperber, Sperl, Sperlich, Sperling, Spiegel, Spieker, Spiekermann, Spielmann, Spies, Spieß, Spiller, Spindler, Spitz, Spitzer, Spörl, Sprenger, Springer, Staab, Stach, Stadler, Stahl, Staiger, Stamm, Stang, Stange, Stangl, Stapf, Stark, Starke, Staub, Stauch, Staudinger, Staudt, Stecher, Steck, Stefan, Steffan, Steffen, Steffens, Stegemann, Steger, Stegmaier, Stegmann, Stehle, Stehr, Steidle, Steiger, Steigerwald, Stein, Steinbach, Steinberg, Steinberger, Steinborn, Steinbrecher, Steiner, Steinert, Steinhauer, Steinhauser, Steinhoff, Steininger, Steinkamp, Steinke, Steinle, Steinmann, Steinmetz, Steinmüller, Stellmacher, Stelter, Stelzer, Stemmer, Stemmler, Stender, Stengel, Stenger, Stenzel, Stephan, Stern, Sternberg, Steuer, Stevens, Stich, Stickel, Stief, Stiefel, Stiegler, Stier, Stiller, Stingl, Stobbe, Stöber, Stock, Stöckel, Stocker, Stöcker, Stöckl, Stockmann, Stoffel, Stöhr, Stoiber, Stoll, Stolle, Stolte, Stolz, Stolze, Storch, Storck, Stork, Storm, Störmer, Storz, Stotz, Stöver, Strack, Stracke, Strasser, Straßer, Stratmann, Straub, Straube, Strauch, Strauss, Strauß, Strecker, Strehl, Streich, Streicher, Streit, Stricker, Strobel, Strobl, Stroh, Strohmeier, Strube, Struck, Strunk, Strunz, Stuber, Stüber, Stumm, Stumpe, Stumpf, Sturm, Stürmer, Stutz, Suhr, Süß, Sutter, Swoboda, Sydow, Szymanski, Tacke, Tamm, Tappe, Taube, Tauber, Taubert, Tausch, Teichert, Teichmann, Temme, Tempel, Tesch, Teschner, Teske, Tetzlaff, Teuber, Teubner, Teufel, Tewes, Tews, Thaler, Thamm, Theil, Theis, Theisen, Theiß, Thelen, Theobald, Thiede, Thiel, Thiele, Thielemann, Thielen, Thielmann, Thiem, Thiemann, Thieme, Thies, Thimm, Thom, Thoma, Thomann, Thomas, Thome, Thoms, Thomsen, Thon, Thöne, Thormann, Thum, Tiede, Tiedemann, Tiemann, Tietjen, Tietz, Tietze, Till, Tillmann, Timm, Timmermann, Tischer, Tischler, Tittel, Titze, Tolksdorf, Tölle, Tonn, Töpfer, Topp, Toth, Träger, Trapp, Traub, Traut, Trautmann, Trautwein, Treiber, Tremmel, Triebel, Tröger, Trommer, Trost, Tröster, Türk, Uhl, Uhlemann, Uhlig, Uhlmann, Uhrig, Ulbrich, Ulbricht, Ullmann, Ullrich, Ulmer, Ulrich, Umbach, Unger, Unruh, Urban, Utz, Valentin, Vater, Vaupel, Veit, Veith, Velten, Vetter, Vieth, Vogel, Vögele, Vogelsang, Voges, Vogl, Vogler, Vogt, Voigt, Voigtländer, Voit, Volk, Völkel, Völker, Volkert, Völkl, Volkmann, Volkmer, Voll, Vollmer, Vollrath, Volz, Vorwerk, Voss, Voß, Wachsmuth, Wachter, Wächter, Wacker, Wagener, Wagenknecht, Wagner, Wahl, Waibel, Walch, Wald, Waldmann, Walker, Wall, Wallner, Walter, Walther, Walz, Wanke, Wanner, Warnecke, Warnke, Wassermann, Weber, Weck, Wecker, Wedekind, Wedel, Wege, Wegener, Wegmann, Wegner, Wehner, Wehr, Wehrle, Wehrmann, Weichert, Weide, Weidemann, Weidinger, Weidlich, Weidmann, Weidner, Weigand, Weigel, Weigelt, Weigert, Weigl, Weihrauch, Weil, Weiland, Weiler, Weimann, Weimer, Wein, Weinberg, Weinberger, Weiner, Weinert, Weingärtner, Weinhold, Weinmann, Weinreich, Weinrich, Weinzierl, Weirich, Weis, Weise, Weiser, Weishaupt, Weiss, Weiß, Weißbach, Weiße, Weißenborn, Weisser, Weißer, Weißmann, Weitz, Weitzel, Welker, Weller, Wellmann, Welsch, Welte, Welter, Welz, Welzel, Wende, Wendel, Wendland, Wendler, Wendt, Wenger, Wenig, Weniger, Wenk, Wenz, Wenzel, Wenzl, Werle, Werner, Wernicke, Werth, Wesemann, Wessel, Wessels, Westermann, Westhoff, Westphal, Wetzel, Weyand, Weyer, Weyers, Wichert, Wichmann, Wick, Wicke, Widmann, Wiebe, Wiechert, Wiechmann, Wieczorek, Wiedemann, Wiedenmann, Wiedmann, Wiegand, Wiegel, Wiegmann, Wieland, Wiemann, Wiemer, Wiener, Wiens, Wiese, Wieser, Wiesmann, Wiesner, Wiest, Wilczek, Wild, Wilde, Wildner, Wilhelm, Wilhelmi, Wilk, Wilke, Wilken, Wilkens, Will, Wille, Willems, Willer, Willmann, Willms, Wilms, Wimmer, Windisch, Winkel, Winkelmann, Winkler, Winter, Winzer, Wirth, Wirtz, Wischnewski, Wisniewski, Witt, Witte, Wittek, Wittenberg, Wittich, Wittig, Wittke, Wittmann, Wittwer, Witzel, Witzke, Wohlfahrt, Wohlfarth, Wohlgemuth, Wöhrle, Wolf, Wölfel, Wolff, Wölfle, Wolfram, Wolfrum, Wölk, Woll, Wollmann, Wollny, Wollschläger, Wolter, Wolters, Wörle, Worm, Wörner, Wortmann, Wrede, Wrobel, Wulf, Wulff, Wunder, Wunderlich, Wunsch, Wünsch, Wünsche, Würfel, Wurm, Wurst, Wurster, Wüst, Wuttke, Yildirim, Yildiz, Yilmaz, Zabel, Zach, Zacharias, Zacher, Zahn, Zander, Zapf, Zauner, Zech, Zeh, Zeidler, Zeiler, Zeitler, Zell, Zeller, Zellner, Zenker, Zettl, Zieger, Ziegler, Zielinski, Zielke, Ziemann, Ziemer, Zimmer, Zimmerer, Zimmermann, Zink, Zinke, Zinn, Zipfel, Zitzmann, Zobel, Zoller, Zöller, Zöllner, Zorn, Zuber, Zühlke, Zwick] street: [Aalheitengraben, Abdenastraße, Abraham, Äbtissinsteig, Abt-Vitalis-Straße, Achenweg, Achterdörper Weg, Achtern Strand, Äckernkamp, Adalbert-Stifter-Weg, Adam-Pfeuffer-Straße, Adelgundenstraße, Adenauering, Adlerring, Adolf-Ehrtmann-Straße, AdresseFuchshofener Straße, Affenbergstraße, Aggensteinstraße, Agnes-Sapper-Straße, Ahlbecker Straße, Ahornhöhe, Ahrhutstraße, Aichener Straße, Aixer Straße, Alardusstraße, Albernauer Straße, Albert-Eise-Weg, Albertus-Magnus-Platz, Albrecht-Achilles-Straße, Aldinger Straße, Alexander-Pachmann-Straße, Alfert, Alfred-Dehlinger-Straße, Alldorn, Allerbecker Weg, Allhornstieg, Alma-Rogge-Weg, Almweg, Alpenblickstraße, Alsbacher Straße, Alsterring, Altbriesnitz, Alte Auer Straße, Altenberg, Altendettelsauer Straße, Altenhainerstraße, Altenrheiner Straße, Alter Bannweg, Altes Sonnenbad, Altgrabengässchen, Altjührdener Straße, Alt-Lübars, Altmurgweg, Altstädter Gasse, Alversloweg, Am Abendsberg, Ameke, Amelsbürener Straße, Amethyststraße, Ammerlandallee, Amtenbrinks Weg, Amthorstraße, Amtmann-Daniel-Straße, Anbaustraße, An den Behsen, Andreas-Hofer-Ring, Andreeplatz, Angelnweg, Angermunder Weg, Anhaltische Straße, Anlehen, Anna-Schneider-Steig, Annenhof, Annuntiatenbach, Anton-Aulke-Ring, Apeler Straße, Apollinarisstraße, Appelhof, ARAG-Platz, Arenastraße, Arheilger Kirchgasse, Arminiusweg, Arno-Holz-Straße, Aronweg, Arthur-Mahler-Straße, Arzbergweg, Aschebachstraße, Aschingerstraße, Asperger Straße, Atenser Allee, Atzelpfad, Auchertwiesenweg, Auenwinkel, Aueufer, Auf dem Berge, Aufderhöher Straße, Aufseßplatz, Augustaallee, August-Broemel-Straße, Augustinerbach, Aunham, Außenring, Äußere Löwenstraße, Autobahn A5, AWG-Siedlung, BAB44 Nord, Bach, Bächlingen, Bäckerberg, Backhausstraße, Baden Badener Straße, Badeteichstraße, Bad Sodener Straße, Bagers Weg, Bahnhofplatz 3, Lenggries, Bahnstraße-alt, Baikonurweg, Balatonstraße, Balger Straße, Ballig, Baltischer Weg, Banderbacher Straße, Bännjerstraße, Barbara-Kayser-Straße, Bardenitzer Dorfstraße, Bärenriegelweg, Bargerhof, Barkower Straße, Barnstorfer Straße, Bartelbergweg, Bartholomäusstraße, Basbergstraße, Basteistraße, Batteriegasse, Bauernallee, Bauernweide, Baumbachstraße, Baumhof, Bauordenstraße, Bavariaring, Bchsatraße, Bechsteinweg, Beckersheide, Beckwitzer Straße, Beerbuschstieg, Beethovenstraße, Behmweg, Bei den Kappen, Beienheimer Straße, Beim Billing, Beindestraße, Beitterstraße, Belfortstraße, Bellmannstraße, Bembürener Weg, Benedikterstraße, Benjamin-Vogelsdorff-Straße, Benno Schilde Platz, Bentenweg, Beratgerstraße, Berdumer Weg, Bergdorfstraße, Bergerweg, Berghamm, Bergische Landstraße, Bergmühlenwehr, Bergsteiner Straße, Berkelmannweg, Berliner Promenade, Bernauerstraße, Bernhard-Becker-Straße, Bernkottstraße, Berscheid, Berthelsdorfer Straße, Bertolt-Brecht-Weg, Besengaustraße, Bether Straße, Bettina-von-Arnim-Straße, Beueler Bahnhofsplatz, Beutenfeldstraße, Beyerbachstraße, Bgm.-Schelchshorn-Straße, Bicherouxstraße, Bieberer Straße, Bielastraße, Bienertstraße, Biernatzkistraße, Bietigheimer Straße, Bilker Straße, Billwerder Steindamm, Bingergasse, Binweg, Birkenbruch, Birkensteingasse, Birkesdorfer Straße, Birkwitzer Straße, Bischheimer Straße, Bischofsackerweg, Bischof-Wolfger-Straße, Bitscher Straße, Blaffert, Blankenhornstraße, Blatzheimer Weg, Blechenstraße, Bleichenweg, Bleigasse, Bliesaue, Blockfeldstraße, Blomestraße, Blumenhagener Straße, Bluntschlistraße, Böchinger Straße, Bockhacken, Bockmühlenweg, Bodanplatz, Bodenburgallee, Bodinusstraße, Boettgerstraße, Böhlener Straße, Böhmersweg, Bohnmühlgasse, Bokeler Weg, Bolbergweg, Bollenser Weg, Bolongarostraße, Bommersfeld, bonhoeferstraße, Bonnermannsfeld, Bontkirchener Straße, Borbecker Platz, Borgersstraße, Borinskistraße, Bornheimer Straße, Bornsdorf Hasenweg, Börsenplatz, Bosauer Straße, Boslerstraße, Bothestraße, Bottwarbahnstraße, Boxberg, Brabänderweg, Brackebuschstraße, Braigstraße, Bramkoppel, Brandenburger Weg, Brandkuhlenweg, Brandweidenweg, Brauereistraße, Braukämperstraße, Bräunlinger Straße, Brautschatztwete, Breddeweg, Bredkamp, Brehtonweg, Breitegrund, Breitenhölzer Straße, Breite Straße, Brelen, Bremersweg, Brennaborstraße, Brenscheid, Bretzfelder Straße, Brieselanger Straße, Brinker Feld, Brockamp, Brockstreck, Bröhlstraße, Brokforster Weg, Brommerstraße, Brookring, Brucher Straße, Brüchtenweg, Brückenkopf, Brücklmeierstraße, Brüder-Busch-Straße, Bruderwöhrdstraße, Bruggspergerstraße, Bruhnsstraße, Brunhildenstraße, Brunnenbühl, Brunnererweg, Brünnsteinstraße, Bruno-Tesch-Straße, Brüsselstraße, Buchauer Straße, Buchenberg, Buchenring, Buchheide, Buchloe, Buchwaldweg, Buckower Damm, Budentannenweg, Buflingsried, Bühler Straße, Bulachweg, Bulmannstraße, Bundesautobahn, Büningweg, Büppeler Weg, Burgackerweg, Bürgelstollen, Burgfriedenstraße, Burghofstraße, Burgmannsweg, Burgsteinfurter Damm, Bürgweg, Bürknersfelder Straße, Burtscheider Straße, Buschgarten, Buschrosenweg, Büsnauer Platz, Butendiek, Buttenwegle, Butzweilerstraße, Cäcilienstraße, Cambener Weg, Campus Ring, Cappeler Straße, Carl-Bobach-Straße, Carmauxstraße, Carusufer, Castroper Hellweg, Celní, Champagnatplatz, Charlottenhofstraße, Chemnitzer Weg, Chransdorfer Straße, Christian-Gau-Straße, Christinenweg, Christophorusstraße, Cimbernstraße, Clarenberg, Clausiusstraße, Clemensplatz, Cliener Straat, Coesfelder Berg, Colmdorfstraße, Condomer Straße, Consulentengasse, Cornelius-Münch-Weg, Cottbusser Platz, Creglingen, Cronheim, Culmer Straße, Curt-Querner-Straße, Dachbergstraße, Dackenheimer Straße, Dahlhok 22A, Daisbachtalstraße, Dallnstraße, Damerowstwiete, Dammstraße/Stiftstraße, Daniel-Eckhardt-Straße, Dannenkoppel, Daphnestraße, Dasbecker Weg, Daubhausstraße, David-Eisenmann-Straße, Debussyweg, Dechantshof, Deelböge, Degenfeldstraße, Deichelweg, Deilinghofer Straße, Deisterweg, Delbrücker Straße, Delling, Demmelweg, Dennekamp, Deppendorfer Straße, Derner Bahnstraße, Detlef-Bremer-Straße, Deumentenstraße, Deutschherrnufer, Deverweg, Dickampstraße, Diebelbachstraße, Diederser Weg, Diekamp, Diematsweg, Diepental, Diesdorfer Privatweg, Dieterlestraße, Dietrich-Buxtehude-Straße, Diezstraße, Dimitroffstraße, Dingwall Way, Dirlenbacher Weg, Disternicher Torwall, Ditzinger Straße, Döbernsche Straße, Dodo-Wildvang-Weg, Dohrener Weg, Doktorgäßchen, Doktor-Otto-Klemp-Straße, Doldenäcker, Dolmanstraße, Domfreihof, Dompeweg, Donatusweg, Donndorfer Straße, Doomerstraße, Dörenstraße, Dorfgärten, Dorfstraße, Dormettinger Straße, Dörndichweg, Dornkamp, Dorotheenstraße, Dorschhauser Weg, Dosmühle, Drachenfelsweg, Dr.-Alfred-Schwab-Platz, Dreiburgenblick, Dreikirchenstraße, Dreirosengasse, Dreuschendorf, Dringenberger Straße, Drosselbergstraße, Drusenbergstraße, Duchcovská, Duisburger Straße, Dunckerstraße, Dünner Straße, Dürener Straße, Dürrenbacher Hütte, Dusekestraße, Düstruper Heide, Dweerkamp, Ebbinghauser Weg, Ebereschenallee, Eberner Straße, Ebertystraße, Ebsdorfer Straße, Eckardistraße, Eckendorfer Straße, Eckertstraße, Ecksweg, Edelsteig, Edgar-Scheibe-Straße, Edmund-Rieß-Straße, Eduard-Klüber-Straße, Egarten, Egertenstraße, Eggenweg, Egidienplatz, Ehenbachstraße, Ehnernstraße, Ehrental, Eichberg, Eichelseeweg, Eichenhang, Eichenwäldchen, Eichhahnweg, Eiching, Eichstraße, Eickendorfer Straße, Eiderweg, Eigenheim Siedlung, Eimersweg, Einhäuschen-Querstraße, Einsteinring, Eisenbahnlängsweg, Eisenschmiedmühle, Eiskeller, Eitzenhamer Straße, Elbenkamp, Elbstraße, Elfenbeinweg, Elhardtplatz, Elisabeth-Mara-Straße, Elitz, Ellerbittweg, Ellharter Steig, Elly-Heuss-Knapp-Platz, Elmstraße, Elsborn, Elsteraue, Eltweg, Embser Dorfstraße, Emil-Erlenmeyer-Forum, Emmelhofer Straße, Emmi-Kurzke-Straße, Emser Platz, Endertstraße, Engelbosteler Damm, Engelsgasse, Enges Gründlein, Enkweg, Enstestraße, Enzensbergstraße, Eppelborner Ecke, Erasmusstraße, Erbsenstraße, Erdmannsweilerstraße, Erfweilerstraße, Erich-Halbauer-Weg, Erika-Köster-Straße, Erlacher Hauptstraße, Erlengang, Erlhagen, Ermischstraße, Ernst-Alban-Weg, Ernsweg, Ertmarweg, Erzbischof-Buchberger-Allee, Eschborner Landstraße, Eschengasse, Escherweg, Esenser Straße, Essenberger Straße, Esteweg, Ettersbergsiedlung, Etzwiesenberg, Eugen-Herrmann-Straße, Eulenbühlweg, Europa Allee, Eutschützer Höhe, Evreuxring, Externsteiner Straße, Fackenburger Allee, Fahrenbacher Straße, Fährgrund, Faktoreistraße, Falkenburgweg, Falkenweg, Falsterring, Färbergasse, Farrenstraße, Faule Birke, Fechnerstraße, Fehmarnstraße, Feierabendweg, Feldanger, Feldgärtenstraße, Feldmannshof, Feldtor, Felix-Wankel-Straße, Felsenkellerpromenade, Fensenhöhenweg, Ferdinand-Keller-Straße, Ferrowweg, Fettweide, Feuerseeplatz, Fichtelgebirgsstraße, Fiedelerplatz, Filkuhlweg, Finkenbacher Straße, Finkstroth, Firrelerstraße, Fischerbergstraße, Fischerring, Fischmarkt, Flachsbleiche, Flamweg, Fleck, Fleineheimer Straße, Fleschützer Straße, Fließenhardtstraße, Flögelinger Straße, Florinsmarkt, Flottbektal, Flünnertzdyk, Flütjenburgstraße, Fohlenkampstraße, Föhrthofweg, Forckestraße, Förriener-Loog, Förstergang, Forstinninger Straße, Fort Worth-Platz, Franckeplatz, Frankenholzer Weg, Frankfurter Straße, Franz-Bauer-Weg, Franzenstraße, Frauenbrunner Straße, Frauenplan, Fraukircher Weg, Freerbruchstraße, Freiburgstraße, Freigarten, Freiröttenbach, Frenkingstraße, Freudeneck, Freysestraße, Frieda-Seidlitz-Straße, Friedensallee, Friedersdorfer Weg, Friedleinstraße, Friedrich-Castelle-Straße, Friedrichsfelderstraße, Friedrichstädter Straße, Friesener Weg, Friller Straße, Fritz-Bockius-Straße, Frohnepfad, Fronau, Froschlake, Frühmeßweg, Fuchsgrube, Fuchsweg, Fuhrgabel, Füllgesweg, Funkenstraße, Fürstenberg, Fürst-Franz-Joseph-Straße, Furtredder, Gablonzer Straße, Gaemsgasse, Gailertsreuth, Galappmühler Straße, Gallberger Weg, Galmeistraße, Gangelsgarten, Gänserasen, Ganzhornstraße, Gardinger Weg, Garreler Straße, Gartenstadt, Gärtnerweg, Gässle, Gatherweg, Gaupel, Gebelsbergstraße, Gebrüder-Loewe-Straße, Geenenstraße, Geheimrat-Heß-Ring, Gehrtshorst, Geigerswäldele, Geisenheimer Straße, Geißhöhe, Gelber Kreidebusen, Gelnhäuser Straße, Geminiweg, General Wever Straße, Genslerstraße, Georg-Brötz-Straße, Georgenstraße, GEPA-Weg, Gerberschanze, Gerhard-Ellrodt-Straße, Gerhart-Hauptmann-Weg, Gerlindstraße, Gernbergweg, Gersbachtalstraße, Gerstenweg, Gertrud-Eysoldt-Straße, Geschwister-Scholl-Platz, Gesundbrunnen, Gewebering, Gewerbepark Cité, Geyersberger Straße, Giebelweg, Gieseckenkamp, Gießener Straße, Gilde, Gilmerich, Ginsterstraße, Giselastraße/Kaulbachstraße, Glain, Glasfabrikstraße, Glastener Straße, Gleichenstraße, Glemsstraße, Glindower Straße, Glockenpohl, Glower Straße, Glühwürmchenweg, Gneisenauring, Göddeldorf, Goeckingkstraße, Goffineweg, Goldackerweg, Goldene Linie, Goldmannstraße, Golfplatz, Gölzstraße, Goppeltweg, Görlitzer Weg, Gosdaer Dorfstraße, Gößmannsreuth, Gotische Straße, Gottfried-Hart-Straße, Gotthelf-Leimbach-Straße, Gottlieb-Olpp-Straße, Götzen, Goystraße, Grabensprung, Grädenerstraße, Graf-Beust-Allee, Gräfenhäuslinger Straße, Grandsberg, Gräsenweg, Grasreutweg, Graudenzer Weg, Gravestraße, Grefrahterstraße, Greinstraße, Grenzhausener Straße, Gretenmühle, Grevenhecke, Griesbachstraße, Grießemer Straße, Grimlinghauser Straße, Grinauer Weg, Grochlitzer Straße, Gromischweg, Gronowskistraße, Groppstraße, Groß Döbberner Straße, Große Bleichen, Großer Griechenmarkt, Großhecker Weg, Großmehringer Straße, Großstückweg, Grotekampstraße, Grubacker, Grubweg, Grunauer Straße, Gründlacher Straße, Grüne Hoffnung, Grüner Placken, Grünfeldstraße, Grünsberger Straße, Gruppenstraße, Guckai, Güglinger Straße, Güldenkamp, Gümpelhof, Gundlachstraße, Gunther-Plüschow-Straße, Gürtelstraße, Gustav-Esche-Straße, Gut Dreisborn, Güterhallenstraße, Gütlestraße, Guts-Muths-Weg, Gwinnerstraße, Haarbergweg, Haarstrang, Haberkamps Vöhde, Habichtsring, Hachumer Straße, Haddamarstraße, Haeselerstraße, Haferfeldring, Hafnersteige, Hagelstangestraße, Hagenfeldstraße, Hagentreppe, Hagspiel, Hahnengrundweg, Hahnscher Holzweg, Haidigestraße, Haimendorfer Straße, Hainer Pfad, Hainthalstraße, Halbestadt, Haldenweg, Halle-Kasseler Straße, Halligenplatz, Halsbeker Straße, Hambrgstraße, Hamerlestraße, Hammerbergweg, Hammersberg, Hammkamp, Handal, Hanebergstraße, Hangenkamp, Hannastraße, Hanns-Eisler-Weg, Hansaweg, Hans-Claßen-Straße, Hänselmannstraße, Hansgaß, Harald-Striewski-Straße, Hardenstraße, Hardtplätzchen, Harksheider Straße, Harpener Heide, Harscheider Weg, Hartensteiner Straße, Hartlweg, Hartwarder Bruchweg, Harztorwall, Haselnußring, Hasenbrucher Weg, Hasenlohe, Haslangstraße, Hasselbreite, Hasselwisch, Hatefeld, Hatzevennstraße, Hauendorf, Haumannplatz, Hauptmann-Schöningh-Straße, Hauptwieke, Hausdorffstraße, Hausgelänge, Hausmannstraße, Haustraße, Haverkampstraße, Hebbelplatz, Hechmecker Weg, Heckenrosenstraße, Hectorstraße, Hedwig-Dransfeld-Platz, Heeper Straße, Hees, Hegeberg, Heger-Tor-Wall, Hehnstraße, Heidebroichstraße, Heidelbeerweg, Heidener Straße, Heidersdorfer Straße, Heidhörnweg, Heidschnuckenweg, Heilenbecker Straße, Heiligenhäger Straße, Heiliggeiststraße, Heimatsberg, Heimersfeld, Heimstättensiedlung, Heiner-Moll-Weg, Hein-Minkenberg-Straße, Heinrich-Brauns-Straße, heinrichstraße, Heinz-Galinski-Straße, Heischhof, Heistergarten, Hektorstraße, Helene-Mayer-Weg, Helfkamp, Hellebardenweg, Heller Weg, Helmerslohne, Helmtrudenstraße, Heltenstraße, Hemmerder Hellweg, Henershuuch, Henkenbrinker Straße, Henningsgasse, Heppenser Straße, Herbert-Kadner-Straße, Herbstbenden, Herdsteig, Herisösch, Hermann-Aust-Straße, Hermannswinkel, Herman-Uhlig-Platz, Heroldsberg, Herrendeich, Herrenkrugstraße, Herrestraße, Herrmannstädter Straße, Herschelstraße, Hertzbergstraße, Herzhorner Straße, Herzog-Johann-Albrecht-Straße, Hesebergweg, Hessenbach, Hesslerweg, Hetzelgasse, Heubruchsweg, Heumadener Straße, Heutalsweg, Heyerhoffstraße, Hiddenseestraße, Hilbertstraße, Hildegundisallee, Hilgenbusch, Hiller-von-Gertingen-Straße, Hiltruper Straße, Himmelsleiter, Hinderpatt, Hinseler Feld, Hinter dem Garten, Hintere Fischergasse, Hinterfeldstraße, Hintermayrstraße, Hinterm Reiherholz, Hiroshimastraße, Hirschenbuckel, Hirschpaß, Hirtenkate, Hitfelder Straße, Hobrechtsfelder Chaussee, Höcherbergstraße, Hochkamp, Hochrißweg, Hochtalstraße, Hockenheimer Straße, Hoeteweg, Hofbrehnweg, Höfenstraße, Hofgarten, Hof Höfen, Hofmaler-Franz-Weg, Hofreuthackerstraße, Hofweg, Höger Weg, Hohe Brücke, Hohenborner Straße, Hohenfelde, Hohenhöveler Straße, Hohenreich, Hohenstauferallee, Hohenweidener Weg, Hoherodskopfstraße, Hohetorwall, Hohlenbergstraße, Höhne, Höhwiese, Holdereggenstraße, Holländergang, Höllenwisch, Höllgrundstraße, Holmweg, Holstenhofkamp, Holter, Holtingsweg, Holzäckerweg, Holzerweg, Holzheim, Hölzleswiesen, Holzvogtweg, Hömericherstraße, Honingser Straße, Hooge Weg, Hopfenleite, Hoppendamm, Horbacher Straße, Hördter Straße, Hörmannsdorf, Horner Hellweg, Hornmühlenweg, Horscheltstraße, Horst-Fitjer-Weg, Hörwegstraße, Hosterweg, Hövelchesweg, Hoxbachstraße, Hubäckerring, Hubertusstraße, Huchtinger Straße, Hudlerstraße, Hüfnerstraße, Hugo-Eckener-Straße, Hühnlesgasse, Hülsdauer Straße, Hülsmeyer Straße, Humlanger Straße, Humsterdorf, Hundshof, Hüngert, Hunsrückweg, Hurt, Husstäenweg, Hutmacherring, Hüttenkrattweg, Hutungstraße, Hygstetter Straße, Ida-Pfeiffer-Weg, Igelstraße, Ihausener Straße, II. Vereinsstraße, Illerdamm, Ilmweg, Ilzstraße, Im Alten Holz, Immanuel-Kant-Straße, Immelnbusch, Immentunsweg, Imolastraße, In den Ackern, Indrastraße, Industriezentrum, Ingolstädter Straße, Innere Brücke, Innerstetal, Institutsstraße, Iptinger Weg, Irrenloher Damm, Isebekstraße, Isernhägener Straße, Istanbulstraße, Itzsteinstraße, Jack Wolfskin Kreisel, Jadebusenweg, Jägerhofallee, Jägerweg, Jakob-Bader-Straße, Janhnstraße, Janusz-Korczak-Weg, Jean-Burger-Straße, Jeetzelgärten, Jenseits der Aue, Jeßnitz, Jilové Straße, Jochartweg, Johanna-Hofer-Weg, Johann-Casimier-Weg, Johannes-Bock-Straße, Johanneshof, Johannesplatz, Johanniskirchstraße, Jöhlinger Straße, Jollystraße, Jorindeweg, Josef-Eisenauer-Straße, Joseph Haumann Straße, J.-S.-Bach-Straße, Juelstraße, Jülicher Ring, Julius-Hatry-Straße, Juliuspromenade, Jungchenbüchel, Jungmannstraße, Junkerweg, Jürnweg, Jutta-Balk-Straße, Kachstedter Straße, Kafkastraße, Kahlertstraße, Kaipershof, Kaiser-Joseph-Straße, Kaiserstrasse, Kalands Gang, Kaldenkirchener Straße, Kalk-Mülheimerstraße, Kallinchener Chaussee, Kalteneggolsfeld, Kalugaer Straße, Kamerstücken, Kammerlachweg, Kampener Weg, Kamsbachweg, Känerbergstraße, Kantensiek, Kanzlerstraße, Kapeller Straße, Kaplan-Höfling-Straße, Kappenberger Damm, Kaptain-Lehmann-Straße, Kardinal-Faulhaber-Straße, Karkweg, Karl-Blessing-Straße, Karlheinz-Stockhausen-Platz, Karlshöhe, Karnaper Markt, Karolinger Ring, Karstenstraße, Käsereiweg, Kaspul, Kastelburgstraße, Kastsanienstraße, Katharina-Neufang-Straße, Käthe-Paulus-Weg, Kattenbeck, Kattrepelsbrücke, Katzensteinstraße, Kaufhausstraße, Kauschaer Straße, Kederbacherstraße, Kehlstraße, Keilmannstraße, Kellenhusener Weg, Kellinghusenstraße, Keltrisstraße, Kempstraße, Keppelner Straße, Kernbergstraße, Kerststraße, Kessenhammer, Ketterschwanger Straße, Kichender Dorfweg, Kieferbachstraße, Kieler Chaussee, Kienzlestraße, Kieshecker Weg, Kilian-Leib-Straße, Kimmichsweilerweg, Kinzigstraße, Kirchbenden, Kirchdornberger Straße, Kirchenstegel, Kirchhainer Straße, Kirchhörder Kopf, Kirchrainstraße, Kirchtalstraße, Kirkwrahe, Kirschborn, Kiskerstraße, Klabundring, Klappekuhlstraße, Klarmanns Kamp, Klausenpfad, Klävemannstraße, Kleersstraße, Kleinbergstraße, Kleine Bäckerstraße, Klein Eller, Kleiner Heerter Weg, Kleines Wegfährels, Kleinflintbeker Straße, Kleinheringen, Kleinnaundorfer Straße, Kleiststraße, Klettenberggürtel, KlgV 748, Klingenhagen, Klinkberg, Klippschloß, Klopfgasse, Klosterbredde, Klostermarkt, Klostrerstraße, Klus, Knabenkrautweg, Knauffstraße, Knieperdamm, Knochstraße, Knörrgasse, Kobelstraße, Kocherwaldstraße, Koelreuterstraße, Kohlbahn, Köhlerplatte, Kohlmarkt, Köhnenstraße, Kolbenholz, Kölfhamm, Kollerbachstraße, Köln-Berliner-Straße, Kolpingsplatz, Kommerweg, König-Heinrich-Weg, Königsber Straße, Königshausen, Königsstuhl, Königsworther Platz, Konrad-Duden-Weg, Konradsreuth, Konsteiner Straße, Kopenhagener Straße, Koppelbarg, Koppersstraße, Korbstück, Kornangers, Kornhausacker, Kortemickestraße, Köschinger Straße, Kostenz, Kothlehen, Köttersweg, Krabbenweg, Kräheneckstraße, Kraichgauplatz, Kramers Kamp, Kranichfelder Straße, Kranzweg, Krautgärten, Krebsmühle, Kreienkoppel, Krementzstraße, Kressbacher Straße, Kreuzäcker, Kreuzeckweg, Kreuzkämpchen, Kreuzstraße, Kriegerdankweg, Kringelkrug, Krochmannstraße, Krölstraße, Krönkenhagen, Kroosweg, Krottorfer Straße, Krumbach, Krummen, Krumperstraße, Krützkamp, Küchenschellenweg, Küdinghovener Straße, Kuhbachweg, Kühlenbergstraße, Kuhlworth, Kuhturmstraße, Küllersberg, Kummertsreuth, Kunigundenruhstraße, Kunzenweg, Kupferschmiedshof, Kurdamm, Kurmainzring, Kurt-Eisner-Straße, Kurzer Kamp, Kußmaulstraße, Küterdamm, Kyffhäuser, Labandstraße, Lachswehrallee, Laerheider Weg, Lahnbeckestraße, Lailensäckerstraße, Lambertsgarten, Lammersfeld, Lampesteig, Landeshäuser Straße, Landgut, Landreiterstraße, Landstuhler Straße, Langbaurghstraße, Langedammstraße, Langeloh, Langenbick, Langenfeldstraße, Langenkampstraße, Langenstraße, Langermannsweg, Lange Straße, Langfurchweg, Langseer Weg, Lankwitzer Straße, Lappenberg, Lassallestraße, Laubanger, Laubwaldstraße, Lauergasse, Lauheide, Lausaer Weg, Lautenstraße, Lautlinger Straße, Lea-Grundig-Straße, Lechtenberg, Leedenstraße, Leeswig, Lehener Straße, Lehmder Straße, Lehnbergring, Lehrer-Wirth-Straße, Leibuschstraße, Leimberg, Leinefelder Straße, Leinstraße, Leising, Leitershofer Straße, Lembergerweg, Lenbachplatz, Lengmoosstraße, Lenssenstraße, Leo-Graetz-Straße, Leonhard-Moll-Bogen, Leopoldplatz, Lerchenhöhe, Les-Epesses-Straße, Lettengasse, Leubnitzer Straße, Leukeweg, Leuterschacher Straße, Leverkurser Straße, Leyenstraße, Licher Berg, Lichtenfelser Straße, Lichthof, Liebenwalder Damm, Liebknechtstraße, Liehrstraße, Lieschensruh, Lietzenburger Straße, Lilienthalweg, Limberg, Lina-Schäfer-Straße, Lindelberg, Lindenbühl, Lindenhügel, Lindenthalstraße, Lindichstraße, Lingener Straße, Linsenhofer Berg, Linzgaublick, Lipplinger Straße, Liselotte-Rückert-Straße, Littenstraße, Löbberthang, Lobstädter Straße, Lochingerstraße, Loderslebener Straße, Löfftzstraße, Lohberger Straße, Loherstraße, Lohmarer Straße, Lohorster Straße, Lohteich, Lommatzscher Platz, Lonseer Straße, Loquarder Reihe, Lorenz-Schott-Straße, Lorscher Straße, Lossaer Straße, Lotichiusstraße, Louis-Beißel-Straße, Löwentorstraße, Lübbrechtser Straße, Lucaestraße, Lückenbachstraße, Lüdenscheider Straße, Ludolf-Camphausen-Straße, Ludwig-Eckert-Straße, Ludwigsluster Straße, Lug ins Land, Luisenburgstraße, Luitpoldpark, Lundenberg, Lüningshove, Lürriper Straße, Lüssweg, Lutherweg, Lütten Damm, Lüttje Weg, Lützenkircher Straße, Luzernefeld, Machtlfinger Straße, Madlower Straße, Magdeburger Tor, Mahden, Mahnertmühle, Maierbreite, Mailbachstraße, Mainfurt, Mainzlarer Straße, Malapertstraße, Mallnitzer Weg, Malterscheidtstraße, Mandelring, Mangoldtstraße, Manningaweg, Manzweg, Marco-Polo-Weg, Margarete-Wolf-Schlomm-Straße, Maria Beinberg, Marie-Eberth-Straße, Marienburger Weg, Marienklausenbrücke, Marienwerder Straße, Marker Allee, Markircher Straße, Markt, Marktstätte, Marlene-Dietrich-Straße, Marquardtstraße, Marsopstraße, Martfelder Weg, Martin-Fischel-Straße, Martinsplatz, Mary-Krebs-Straße, Masers, Mastener Weg, Mathias-Koch-Weg, Mattentwiete, Matthias-Langen-Straße, Mauerhecke, Maurenbrecherstraße, Mauthstraße, Maxburgweg, Max-Glomsda-Straße, Maxim Gorki Straße, Maybachufer, Mechthildweg, Meddingheide, Meeraner Straße, Meeschesteg, Mehrbachstraße, Meierdingsen, Meilitz, Meinhardswindener Straße, Meiselschachtweg, Meißnerstraße, Melatener Straße, Melkbrink, Melloh, Memmingerstraße, Mengsberger Straße, Menzelweg, Mergelfeld, Merkenicher Hauptstraße, Merschwiese, Merzhauser Straße, Messelweg, Mesterfeld, Metternichstraße, Metzinger Straße, Meyersweg, Michael-Gerber-Straße, Michelsberger Weg, Miebachstraße, Milbertshofener Platz, Millauerweg, Mimosenweg, Minna-Herzlieb-Straße, Mirastraße, Mittagleite, Mittelgasse, Mittelstädter Straße, Mitterlängstraße, Mittlerer Bauernwaldweg, Mittlere Uferstraße, Modemannstraße, Möhlenkamp, Mohrengäßle, Molière-Weg, Möllenhoffstraße, Molnerweg, Mönchebergstraße, Mönchshof, Monheimer Straße, Mönsterweg, Moorblöcken, Moorkieferweg, Moosalbstraße, Moosgrund, Morahtstieg, Morgensteig, Moritz-Kabaker-Straße, Morsbacher-Straße, Mosbacher Straße, Mosheimstraße, Mottenburger Twiete, MTS-Siedlung, Müggelheimer Damm, Mühlaustraße, Mühlenauel, Mühlenecke, Mühlenkopfstraße, Mühlenworth, Mühlhofstraße, Mühlsachsen, Mühlwiesenstraße, Mülheimer-Straße, Müller-Thurgau-Weg, Müncheberger Straße, Münchowstraße, Münkselfeld, Münsterstiege, Murgstraße, Muschelweg, Mußbacher Straße, Nachtigallentwiete, Nad Údolím, Nagoldtalstraße, Na Náspu, Nassachstraße, Nathusiusstraße, Nauener Straße, Nazarethkirchstraße, Nebenweg, Neckartenzlinger Straße, Neersbroich, Neidsteiner Straße, Nellessenstraße, Neptunring, Nesselrodestraße, Nettelnburger Straße, Neubauerweg, Neubrücker Straße, Neudorf-Klösterlich, Neue Friedhofstraße, Neuenburger Straße, Neuenhöfer Allee, Neuenwegstraße, Neufferstraße, Neuhauser Hauptstraße, Neuhöhe, Neulandplatz, Neumeyerstraße, Neunmorgenstraße, Neurodestraße, Neusser Feldweg, Neustraße, Neuwerkstraße, New-York-Straße, Nicolaus-von-Dreyse-Straße, Niederadener Straße, Niederende, Niederhofer Holz, Niedermayerstraße, Niedernstraße, Niederstedter Weg, Niedwiesenstraße, Niemannsweg, Nienhöfener Weg, Niesetalstraße, Niklastorstraße, Nikolaus Kopernikus Weg, Nimwegener Straße, Nivelsteiner Weg, Nohraer Weg, Nonnendammallee, Noorstraße, Norddeichweg, Norderney, Nordhaideplatz, Nordlandstraße, Nordoog, Nordwall, Nöschenröder Straße, Nottengartenweg, Nuhtetalstraße, Nussbaumstraße, Nütheimer Straße, Ob den Gärten, Oberasbacher Straße, Oberbreite, Oberdorf, Obere Brandstraße, Oberer Bogenweg, Oberes Griesfeld, Oberetscheid, Obergutstraße, Oberhöchstädter Weg, Oberkleener Straße, Oberlinder Straße, Obermühlberg, Oberntiefer Straße, Oberreithen, Oberseener Weg, Oberste-Wilms-Straße, Oberwallstraße, Ober-Wöllstädter-Straße, Occostraße, Ochtmersleber Weg, Odenheimer Straße, Odilienstraße, Oehrenstöcker Straße, Oemkenstraße, Oestertalstraße, Ofenbergstraße, Offinger Straße, Ohlendorffs Tannen, Ohmenheimer Straße, Öjendorfer Damm, Olbernhauer Straße, Oldenstädter Straße, Ölgrabenstraße, Olof Palme-Straße, Olvenstedter Platz, Oonwai, Opfinger Straße, Opperklappe, Orchideenstraße, Orlická, Ortenbergstraße, Ortsmühle, Osdorfer Straße, Oskar-Miller-Straße, Osnabrückstraße, Ostallee, Ostenfelder Straße, Osterbrook, Osterhof, Osterminnerweg, Osterstraße (Cityring), Ostfriesenstraße, Östliche Hauptstraße, Östringer Weg, Oswald-Bieber-Weg, Ottacker, Otterbach, Öttinger Straße, Otto-Braun-Straße, Otzbergstraße, Overhagener Weg, Paarener Dorfstraße, Padkamp, Palandweg, Palmwiesen, Pannhauser Straße, Papenberger Weg, Papierstraße, Paradeisstraße, Pareyer Weg, Parksee, Parzellenstraße, Passauerstraße, Pastor-Böhm-Straße, Pastorplatz, Paterkamp, Patschinserstraße, Paul-Bleisch-Straße, Paulinenplatz, Payerstraße, Pegauer, Pelkmanns Feld, Pennigbütteler Straße, Perchstetten, Perne, Pestalozzistraße, Peter-Fischer-Allee, Petersbrunner Straße, Petershalde, Petrirodaer Straße, Petzelstraße, Pfaffenbogen, Pfaffing, Pfälzische Straße, Pfarrecke, Pfarrer-Burger-Straße, Pfarrsiedlung, Pfegersäckerle, Pferdetränke, Pfistergrund, Pfluggasse, Pfullendorferstraße, Philipp-Merck-Weg, Pickelstraße, Piepers Feld, Pilgrimstein, Pinnasberg, Pirminiusstraße, Pivitsort, Planetenring, Plärrer, Platten, Platz der Diakonie, Plauenscher Ring, Pleiser Hecke, Plinz, Plötze, Podemuser Straße, Poghausener Grenzweg, Polcher Straße, Polliusweg, Pommrück, Poppenbergweg, Porschendorfer Weg, Portugieserweg, Possenheimer Straße, Posthof, Potgasse, Pötterweg, Praetoriusbogen, Prälat-Schuh-Weg, Praterweg, Prendener Straße, Pretzscher Straße, Prickenweide, Primelstraße, Prinzipalmarkt, Pritzl, Pröbstingstraße, Prof.-Settegast-Weg, Propsteikamp, Proviantstraße, Prüßmannstraße, Pülsener Straße, Püngelerstraße, Pußta, Pützchensweg, Quadtstraße, Queichtalstraße, Querensteder Straße, Quirinsstraße, Rabatzer Straße, Rabenweg, Raddasstraße, Räderloher Weg, Radstädter Weg, Rahel-Straus-Straße, Rahnsdorfer Straße, Raimundstraße, Raitersaicher Straße, Ramhofstraße, Ramsiner Straße, Rangstraße, Rappachstraße, Raschenstraße, Rastorfer Weg, Rathenauallee, Rathsfeld, Ratsteichstraße, Rauberstraße, Rauhöd, Raustetten, Ravolzhäuser Straße, Rebhuhnstraße, Rechtensteinstraße, Reclamstraße, Redmannweg, Reesestraße, Regensburger Platz, Reginhardstraße, Rehbocktal, Rehmkestraße, Reichartstraße, Reichenhardtstraße, Reichsburgstraße, Reifenhofstraße, Reimarstraße, Reinersstraße, Reinhartshofer Straße, Reinoldstraße, Reisenbacher Straße, Reismühler Weg, Reitlingstraße, Rekumer Straße, Rempenstraße, Renften, Renneweg, Rentforter Straße, Reschkestraße, Rethfelder Straße, Reumtengrüner Weg, Reutenen, Reutstraße, Rhedaer Straße, Rheindorferstraße, Rheinischer Ring, Rheinwaldstraße, Rhönhof, Richard-Dehmel-Straße, Richteringhove, Ricklingerstraße, Riedbrunnenstraße, Riedgaustraße, Riedseeweg, Riehler Straße, Rienzistraße, Riesenstraße, Riether Straße, Rimbacher Straße, Rindweg, Ringenwalder Straße, Ringstraße, Rischenweg, Ritterbrunnen, Ritterschaftsstraße, Ritzerstraße, Robert-Blum-Straße, Rochowstraße, Rodaer Weg, Rodemannskamp, Röderfeldweg, Rodinger Straße, Roesoll, Roggenstraße, Rohrachstraße, Rohrheimer Straße, Rohwedderstraße, Rolandufer, Rolloßweg, Römerhügelweg, Rommeestraße, Ronheiderberg, Rönsahler Straße, Rosa-Schubert-Straße, Rosellener Weg, Roseneck, Rosenkavalierplatz, Rosentor, Rösrather Straße, Rossertweg, Roßlaufstraße, Roßwette, Rotdornbogen, Rötelstraße, Rotenhöfer Weg, Roter Weingartenweg, Rothemühleweg, Röthenfeld, Röthgener Straße, Rotkamp, Rottachbergweg, Rotteroderstraße, Rottmannstraße, Rötzweg, Rübenkamp, Rücker Straße, Rüdersdorfer Straße, Rudolffstraße, Rudolphstraße, Rue du Canal, Rüggeberger Straße, Ruhlohkampweg, Ruhrtalstraße, Rumbecker Straße, Rundestraße, Rupert-Bodner-Straße, Ruppiner Straße, Ruschorter Hauptdeich, Rußstraße, Rüthener Weg, Rutzhofen, Saalburgweg, Saarburger Ring, Saathainer Straße, Sachsenhof, Sadelhof, Sagerweg, Sainbacher Straße, Salenhofweg, Salmannsweilergasse, Salzachstraße, Salzgäßchen, Salzunger Tor, Samstagstraße, Sandberg, Sandeler Straße, Sandgrabenweg, Sandkaulstraße, Sandsteinweg, San Gimignano-Weg, Sankt Birgittenhof, Sarataweg, Sassenburger Weg, Sattlergasse, Sauersgang, Sautterweg, Schaarberg, Schachtelhalmweg, Schaeuffelenstraße, Schäferhütte, Schäfflerbachstraße, Schafsteinweg, Schallenkamer Straße, Schanzengarten, Scharfenberger Straße, Scharnhorstring, Scharwinkelweg, Schauenstraße, Scheederstraße, Scheffoldstraße, Scheidestraße, Schellbergstraße, Schelmenlohe, Schenefelder Platz, Schepkerweg, Scherlingstraße, Scheuerleweg, Schichauweg, Schieferöschleweg, Schießberggraben, Schiessstraße, Schiffhornfeld, Schildower Straße, Schillershöhe, Schimmelreiterweg, Schirick, Schlachterstraße, Schlager Straße, Schlattgrabenstraße, Schleglergasse, Schleider Hauptstraße, Schleißweg, Schleswigstraße, Schlichtallee, Schlierenbachstraße, Schloitweg, Schloßbleiche, Schloßgartenweg, Schlößlestraße, Schloßstraße, Schluchterner Straße, Schlutuper Straße, Schmalholz, Schmeil-Weg, Schmettererstraße, Schmidtsgäßchen, Schmiedestrang, Schmittenstraße, Schmücke, Schnampelweg, Schneebergweg, Schneidergässle, Schnellweg, Schnitterwiese, Schoeppinger Straße, Schölling, Schönangerstraße, Schönböckener Straße, Schönebecker Straße, Schöner Blick, Schönheider Straße, Schönmühle, Schönwalder Straße, Schopflocher Straße, Schorfheidestraße, Schosserstraße, Schrägweg, Schrebersiedlung, Schricker Weg, Schrötteringksweg, Schuckertdamm, Schulbuschweg, Schulhof, Schulte-Heuthaus-Straße, Schultheißstraße, Schulzeweg, Schürenkamp, Schüsselkorb, Schüttenkamp, Schützendelle, Schützweg, Schwaber Straße, Schwaketenstraße, Schwammenauel, Schwangauer Straße, Schwarwaldstraße, Schwarze Ellergasse, Schwarzmattweg, Schwedengang, Schweigstraße, Schweitzerstraße, Schwemmstraße, Schweringer Straße, Schwesternstraße, Schwindstraße, Scribastraße, Sebastianstraße, Sedanplatz, Seebenischer Straße, Seegartenstraße, Seehofweg, Seelestraße, Seerandweg, Seewaldsiedlung, Seggerweg, Seidenberger Straße, Seifgrundstraße, Seitengasse, Selhorster Straße, Selm, Semiramisstraße, Sender Straße, Senior-Blumenberg-Gang, Sentastraße, Sernowstraße, Seubersdorf, Sextrostraße, Sichelstraße, Siebenbürgener Straße, Siebenschön, Siedenweg, Siedlung Neuglück, Siegelweg, Siegfriedplatz, Siehdichfürer, Sielower Grenzstraße, Siepen, Sieweckestraße, Silberbachstraße, Silberwaldstraße, Simeonistraße, Simon-Hegele-Straße, Simsseestraße, Sinner Weg, Sitten, Skelinghörn, Smartareal, Sodweg, Söhnleinstraße, Soldnerweg, Sollingstraße, Soltwischredder, Sommerhaldenstraße, Sommersberg, Sonnebergerstraße, Sonnenburger Weg, Sonnenrainweg, Sonniger Weg, Sophie-Charlotte-Platz, Sörensenstraße, Spaakallee, Spannbrink, Späthstraße, Specklstraße, Speldorfer Straße, Sperenberger Straße, Spicherenstraße, Spiekerooger Straße, Spielleite, Spinatweg, Spittaler Straße, Spitzenstraße, Spleet, Spormühle, Spraitbacher Straße, Sprengerstraße, Springorumallee 20, Sredzkistraße, Stadelhofen, Stadskanaal, Stadtgutweg, Stadtplatz, Staffel, Stahlzwingerweg, Stammannstraße, Stangenröder STraße, Stapelager Weg, Starkenburgring, Stattengasse, Staufenberger Straße, Stauseebogen, Stecheraweg, Steegstraße, Stefan-Schwer-Straße, Stegerstraße, Stehrstraße, Steigerweg, Steinachstraße, Steinbecker Meile, Steinbrede, Steinbusch, Steinerne Kirche, Steingarten, Steinhauerstraße, Steinhügel, Steinkopfinsel, Steinmühlstraße, Steinröhrenweg, Steint, Steirische Straße, Stemberg, Stengelstraße, Stephan-Jantzen-Straße, Sterkrader Str.75, Sternsgarten, Stettiner Straße, Steyrer Straße, St. Hubertus, Stiegenweg, Stifterstraße, Stiftungsstraße, Stirnberg, Stockbrunnengasse, Stockheimer Straße, Stocksweg, Stöhrerstraße, Stölpenhof, Stöntzscher Straße, Storchsgasse, Störtebeker Straße, Stranddistelweg, Straße 103, Strauer Straße, Streifenau, Stresemannplatz, Striepentwiete, Ströher Straße, Strousbergstraße, Struppiusstraße, Stubaier Straße, Stüblehof, Stüheweg, Stürzelweg, Südallee, Suder Allee, Suderoder Straße, Südhag, Südparkallee, Suedstraße, Sulburgring, Sülzbachstraße, Sülztorstraße, Sunnerkampstege, Susannenstraße, Suttoner Weg, Sydowstraße, Tabakblütenweg, Tafingerstraße, Talbach, Talpenberger Straße, Tangelner Straße, Tannenberg, Tannenriedweg, Tannweiler, Taschenturmstraße, Taubenbrunnwiesen, Täubners Gässchen, Tauschaer Straße, Teckstraße, Teglinger Hauptstraße, Teichwiese, Tellenweg, Templergraben, Teplinger Straße, Terzkastraße, Teufelsgraben, Texas Avenue, Thaliastraße, Theaterwall, Thelengraben, Theodor-Fetköter-Straße, Theo-Vondano-Straße, Thibautstraße, Thieplatz, Tholeyer Straße, Thomas-Müntzer-Hof, Thorenfeld, Thumberg, Thüringerstraße, Tichatscheckstraße, Tiefende, Tiefwerderweg, Tilbecker Straße 34, Timmenröder Straße, Tippelsberger Straße, Tittmannstraße, Todtmooserstraße, Tomburgstraße, Toni-Schumacher-Straße, Tonweg, Tornaer Straße, Tostedter Damm, Traifelbergstraße, Tränkstraße, Traubelstraße, Trautenaustraße, Treiberstraße, Trennfurter Straße, Treuenbrietzener Straße, Trienter Straße, Trimbergstraße, Trögelsbach, Trooststraße, Trübenbachstraße, Truttenseifen, Tucholskystraße, Tulpenstiege, Türkeistraße, Turmhofschacht, Türrschmidtstraße, Twellbachtal, Über dem Heckenfeld, Überlinger Weg, Udetstraße, Uesener Feldstraße, Uhlbacher Straße, Uhlichs Weg, Ulfilasstraße, Ulmer Weg, Ulrichstraße, Umhausener Weg, Unfaltstraße, unknown, Unteranger, Unter dem Ahorn, Untere Badgasse, Unterecke, Unterer Kalk, Unterhoferstraße, Unterloh, Unterm Hagen, Unternädringen, Unterscheidentaler Straße, Unterwaldener Straße, Up de Rieth, Upsalaer Straße, Urftstraße, Ursula-Haider-Straße, Usinger Straße, Utzweg, Vahrenort, Valentinusberg, van-Brackel-Straße, Varnbülerstraße, Vechtemoe, Veilchengrund, Velgen, Vennegärten, Verdiweg, Veronika-Zorn-Straße, Vetschauer Straße, Victoria-Ufer, Viehstraße, Vierhandbank, Vierzehnheilligen, Viktor-von-Scheffel-Straße, Vilshofener Straße, Vinsebecker Weg, Vital-Daelen-Straße, Vockestraße, Vogelhainweg, Vogelsangsberg, Voglerblick, Vogt-Wells-Kamp, Voigtweg, Völkersgasse, Volksfestplatz, Vollrath-Müller-Straße, Voltmerstraße, von-Behring-Straße, Vondersweg, Vor dem Ahlsberg, Vordere Marktstraße, Vörfken, Vormbrockweg, Vorschlehern, Vorwerksgasse, Voßhorst, Vuvenstraße, Wachberg, Wachteloh, Wackenbergstraße, Wagenburgstraße, Wägnerstraße, Wahnsdorfer Weg, Waisenhausdamm, Walburgerweg, Waldbröler Straße, Waldenburger Straße, Waldgasse, Walditz, Waldowstraße, Waldschlösschenpark, Waldvogtstraße, Wälkershof, Walldorfer Straße, Wallgäßchen, Wallsdorf, Walskamp, Walter-Flex-Straße, Waltersdorfer Chaussee, Walther-Hensel-Straße, Wambacher Mühle, Wandweg, Wannackerweg, Warbruckstraße, Warmbrunner Straße, Warschauer Straße, Wartheweg, Waschweg, Wasserfallstraße, Wassermühlenstraße, Waterfohr, Wattweg, Webersplatz, Weddigenweg, Weetenkamp, Wegenkamp, Weg zum Poethen, Wehlgarten, Wehrener Straße, Weichenbergerstraße, Weidebrunner Gasse, Weidener Viehweg, Weidenweg, Weifaer Straße, Weiherbühlstraße, Weiherwiese, Weiler Weg, Weinberghof, Weinhartstraße, Weinstraße Süd, Weiskircher Straße, Weißekreuzstraße, Weissenhof, Weißer Weg, Weißwaldstraße, Weittenauerstraße, Welfenweg, Wellersbergstraße, Welsbachstraße, Wembersweg, Wendelinusstraße, Wendessener Straße, Wengen, Wenneberg, Wenzelweg, Werderstraße, Werksstraße, Werner-Bock-Straße, Wernhardsberger Straße, Werstener Friedhofsstraße, Werzenkamp, Weserstrandstraße, Wessiszeller Straße, Westendring, Westerender Straße, Westerhoven, Wester Rott, Westfriesenstraße, Westmauer, Wethener Straße, Wetterstraße, Weuenstraße, Weyrauchstraße, Wichertsweg, Wickingstraße, Widmannstal, Wiecker Straße, Wiedenthal, Wiehagen, Wiemersheide, Wienstraße, Wieselerstraße, Wiesengarten, Wiesenteich, Wiesmannstraße, Wigandstaler Straße, Wildbahn, Wildensteinstraße, Wildpoltsweiler, Wilhelm-Ammon-Straße, Wilhelmine-Fey-Straße, Willebadessener Weg, William-Watt-Straße, Willi-Hannen-Straße, Willmannstraße, Willy Brandt Straße, Wilmsberg, Wilzenweg, Winde, Windhorster Weg, Windschläger Straße, Wingertsweg, Winkelschneise, Winnender Straße, Winterfeldstraße, Wintersheide, Wippert, Wirtsfeldstraße, Wismarstraße, Witneystraße, Wittenberger Weg, Wittgensteinstraße, Wittlinger Straße, Witzendorffstraße, Woerthstraße, Wohlwillstraße, Wohrtdrift, Wolfdrossel, Wolfgang-Döring-Straße, Wölfinger Straße, Wolfsbacher Straße, Wolfshainer Straße, Wolfsteiner Straße, Wolkersdorfer Berg, Wollseifener Straße, Wolzogenstraße, Wörishofer Straße, Worpsweder Straße, Wöstewohlde, Wührden, Wülflinger Straße, Wulmstorfer Wiesen, Wupperplatz, Wurmtal, Wurzelbauerstraße, Wüstenweg, Xaveriweg, Zacharias-Löbbecke-Straße, Zamboninistraße, Zaschendorfer Straße, Zauritzweg, Zedernholzweg, Zehntnerstraße, Zeise, Zelgmadenstraße, Zellrüglingen, Zentnerstraße, Zerzabelshofstraße, Zgorzelec, Ziegelhaldenstraße, Ziegelstadel, Ziegerhäuser, Zierkirschenstraße, Zimmerecke, Zinkbergweg, Zinsgrabenweg, Zirndorfer Weg, Zochstraße, Zollkamp, Zorgestraße, Zschonerblick, Zückwolfstraße, Zu den Lüften, Zuger Straße, Zum Alten Speicher, Zur Alten Burg, Züttlinger Straße, Zweiwiedenstraße, Zwickauer Straße, Zwirnerstraße, Zypressenstraße, Zypressenweg] postal_code: ['#####'] city: [Aalen-Unterkochen, Abens, Abstetterhof, Achern-Mösbach, Adelmannsfelden, Aderstedt, Affalterbach, Aglasterhausen, Ahlum, Ahorntal, Ahrensfelde-Blumberg, Aichach-Grießbeckerzell, Aidling, Aken OT Kleinzerbst, Albshausen, Alerheim, Alfdorf-Rienharz, Alfter, Allenbach Birkenfeld, Allershagen, Almena, Alsleben, Altdorf bei Nürtingen, Altenbach, Altendiez, Altenkrempe, Altenstadt a.d.Waldnaab, Alterthiem, Althengstett, Altlandsberg, Altnuifra, Alt-Schadow, Alvesen - Rosengarten, Alzey, Amerang, Ammerbuch - Pfäffingen, Ampfing, Andechs, Angelse, Ankum, Anröchte, Apen, Apensen, Ardesdorf, Arget, Arnoltice, Arnstadt, Arzbach, Aschaffenburg-Obernau, Aschersleben, Assel, Attendorn, Auerbach Vogtland, Augenarzt, Aukrug, Aurich-Plaggenburg, Aying-Peiss, Babelsberg, Bacharach, Bad Arolsen, Badem, Badenweiler, Badingen, Bahlen, Baiern, Balderschwang, Ballenstedt, Balve-Beckum, Bansin, Barderup, Bargeshagen, Barlohe, Barnisław, Barsinghausen Holtensen, Barum, Bassenheim, Baumholder, Bayreuth-Oberkonnersreuth, Bechtsbüttel, Bedburg, Beelitz OT Wittbrietzen, Beetzendorf, Behringen, Beilngries, Belgern, Bellin, Benediktbeuern, Bensersiel, Bentfeld, Berelin, Berge, Bergfelde, Bergisch Born, Berg Pfalz, Berkenbrück, Berlstedt, Bernau OT Schönow, Bernkastel, Bersteland Niewitz, Beselich-Schupbach, Bettbrunn, Betzigau, Beutersitz, Bexbach-Oberbexbach, Biblis, Biebergemünd, Biedenkopf-Eckelshausen, Bienenbüttel, Bietigheim, Billigheim-Ingenheim, Binz, Birkenau, Birkenwerder, Bischberg, Bischofsmais, Bismark Altmark, Bitburg Biersdorf, Bitzenhofen, Blattersleben, Bleckede OT Radegast, Blender, Blomberg, Blomesche Wildnis, Blunk, Bobingen, Bochum, Bockelkarthen, Bockhorst, Bodenkirchen, Bodnegg, Böhl, Böhmfeld, Bokelberge, Bollberg, Bomlitz, Bonn-Bad Godesberg;Bonn, Borchen-Dörenhagen, Börger, Borgwedel, Borna, Bornheim-Walberberg, Borrentin, Bösdorf, Bostel, Bourheim, Boxdorf, Brackenheim, Brakel, Brandenburg, Brannenburg, Bräunlingen, Brebel, Breege, Breidenbach-Oberdieten, Breitenbronn, Breitenworbis, Bremen-Grohn, Bremm, Bretsch, Brewitz, Brieske, Brilon-Nehden, Brodau, Brokstedt, Bruchhausen-Vilsen, Bruckbach, Brüggen Bracht, Brunnen, Bubach, Büchel, Buchen-Bödigheim, Buchholz in der Nordheide, Büddenstedt, Buggingen, Bühl-Sand, Bülkau, Bunsoh, Burgau, Burgdorf-Otze, Burghasungen, Burgkirchen an der Alz, Burg OT Parchau, Burgstädt, Burgwald-Ernsthausen, Burkersdorf, Burrweiler, Busdorf, Büsum, Buttenheim, Buxheim, Calbe, Calw-Holzbronn, Cappel, Carpin, Cham, Chieming, Claussnitz, Cochem, Colno, Cospeda, Cottbus, Cremlingen, Crispendorf, Cursdorf, Dachrieden, Dahl, Dahme Mark, Dalldorf, Dammdorf, Dangenstorf, Dannstadt, Darmstadt - Arheiligen, Darze, Dattenberg, Dautphetal, Dedensen, Deidesheim, Deißlingen-Lauffen, Delecke, Delmenhost, Derching, Dessau OT Mildensee, Dettenheim, Dettmannsdorf, Deutleben, Deyelsdorf OT Fäsekow, Diedrichshagen, Diemelstadt-Neudorf, Diera-Zehren OT Kleinzadel, Diespeck - Ehe, Dietenheim, Dietfurt an der Altmühl, Dietzhölztal, Dillingen an der Donau, Dinklage, Dirlewang, Dittenheim, Doberschütz, Dodau, Dollerup, Domsühl, Dönsdorf, Dorfen, Dornburg, Dörnitz, Dorstadt, Dortmund-Mengede, Dossenheim, Drage, Dranske, Drebber, Dreieich-Dreieichenhain, Dreileben, Dresden-Cossebaude, Driedorf, Drolshagen-Essinghausen, Dubro, Duesseldorf, Duisburg-Neumühl, Dummerstorf OT Bandelstorf, Dünstekoven, Düren-Gürzenich, Dürnau, Düsseldorf-Reisholz, Ebensäge, Eberhardzell, Ebersbach Sa., Eberstadt, Ebringen, Eching Weixerau, Eckental, Ecknach, Edersleben, Edertal-Edersee, Edesheim, Edinghausen, Egenhausen, Eggenstein-Loepoldshafen, Eging, Ehingen, Ehra-Lessien, Eibelshausen, Eichen, Eicherloh, Eickendorf, Eimen, Einhausen, Eisenach Hörschel, Eisingen, Eitorf-Baleroth, Elbtal, Elkenroth, Ellerhoop, Elmenhorst Lichtenhagen, Elsen, Elsterberg, Eltville, Emden, Emmendingen, Emmingen-Liptingen, Emstek, Engelade, Engelthal, Eningen, Ensdorf, Epfendorf, Epplings, Erdbach, Erftstadt, Erfurt-Mittelhausen, Eriskirch, Erlau, Erligheim, Ernstthal am Rennsteig, Erzbach, Eschenburg, Eschweiler, Eslohe-Bremke, Essem, Essen in Oldenburg, Estenfeld, Ettenheim, Etzelwang, Euskirchen, Eutingen im Gäu, Eydelstedt, Fahrenzhausen, Falkendorf, Fallersleben, Faulück, Feichten, Felde, Fellbach, Fermerswalde, Fichtelberg, Filsum - Lammertsfehn, Finsing Eicherloh, Fischbach, Fischenich, Fladungen, Flein, Flintsbach am Inn, Flörsheim-Dalsheim, Fockbek, Forbach-Rote Lache, Frammersbach, Frankenroda, Franzhäuschen, Frechen-Königsdorf, Freiamt, Freidling, Freigericht-Horbach, Freinberg-Hinding, Freistett, Frensdorf-Herrnsdorf, Freudenburg, Frickenhausen, Friedberg-Wiffertshausen, Friedland, Friedrichsgrün, Friedrichstadt, Frienstedt, Friesoythe-Markhausen, Fritzlar-Obermöllrich, Frohnhausen, Frontenhausen, Fuchstal, Fulda-Südend, Fürstenau, Furth, Füsing, Gachenbach, Gaggenau-Moosbronn, Gailsbach, Gammelby, Gangkofen, Garrel, Gartz Oder, Gäufelden, Gebstedt, Gefell, Gehren, Geilertshausen, Geisenhausen, Geithain, Gelnhausen-Höchst, Gemmrigheim, Gensungen, Gera, Geratskirchen, Geringswalde, Germerswang, Gerolfingen, Gersprenz, Gerswalde, Gessertshausen, Geyer OT, Gierenderhöhe, Giggenhausen, Gilserberg-Schönstein, Girod, Gladenbach-Erdhausen, Glashütte-Reinhardtsgrimma, Glehn, Gleidingen, Glienke, Glowe, Gmund Dürnbach, Gnotzheim, Göda, Göhren-Lebbin, Goldenstedt, Gollwitz, Gomadingen, Gondsroth, Göppingen-Faurndau, Görisried, Görnitz, Gosen-Neu Zittau, Gössenheim, Gotha, Göttingen, Gowens, Grabenstedt, Gräfenberg, Grafenstadl, Grafing bei München, Graitschen, Grän, Grasellenbach, Graupa, Greding, Greifswald, Gressow, Grevenkop, Griebnitz, Grillenberg, Gröden, Grömitz, Großbadegast, Groß-Bieberau, Großbreitenbach, Großdubrau OT Särchen, Großefehn - Spetzerfehn, Großenbrode, Großenkneten Haschenbrook, Großenwörden, Großhartau, Großheide-Ostermoordorf, Grossinzemoos, Großkoschen, Großlohma, Großobringen, Großrinderfeld-Schönfeld, Großweil, Grubschütz, Grünberg, Grundsteinheim, Grünheide, Grünstadt, Gstadt a.Chiemsee, Guderhandviertel, Gulde, Gumpelstadt, Gundelshofen, Günthersdorf, Gussow, Gutach Schwarzwaldbahn, Gut Panker, Gyhum, Haarenberg, Hackenstedt, Hagen a.T.W., Hagermarsch, Hähnichen, Haigerloch-Trillfingen, Haina-Löhlbach, Hainsbach, Haldenwang, Hallenberg, Hallig Langeneß, Haltern, Hambühren, Hamburg-Moorfleet, Hämelerwald, Hammelburg, Hamminkeln-Marienthal, Hanau-Steinheim, Hanfkolm, Hannover-Lahe, Happenbach, Hardegsen OT Trögen, Harlachberg, Harschbach, Hartenthal, Harzgerode, Haselünne, Häslingen, Haßleben, Hatten - Kirchhatten, Hatzenport, Haunsheim, Hausen Wied, Hauzenberg, Havixbeck, Heberndorf, Heckelberg-Brunow, Heerstedt, heidelberg, Heidenheim, Heidesee OT Gräbendorf, Heilbad Heiligenstadt, Heiligenbronn, Heiligenroth, Heiligenstein, Heimbuchenthal, Heinersreuth, Heitersheim, Helgoland, Hemau, Hemmelsdorf, Heng, Henningsdorf, Herbern, Herbrechtingen-Hausen, Herforst, Heringsand, Hermsdorf, Herrenberg, Herrnsdorf, Herten, Herzberg Elster, Herzogenaurach, Hesel - Neuemoor, Hessisch Oldendorf, Hetzerath, Heusenstamm, Hiddenhausen, Hildesheim, Hilgertshausen-Tandern, Hiltenfingen, Himmelpforten, Hinterhof, Hipstedt, Hirschberg-Großsachsen, Hirzenhain, Hochbrück, Hochheimam Main, Höchstädt an der Donau, Hockenheim, Hofbieber, Hofheim am Taunus, Hofstetten, Hohenacker, Hohendilching, Hohenhaslach, Hohenklingen, Hohennauen, Hohenschäftlarn, Hohenstein-Mackenrode, Hohenwarthe, Hohndorf, Hoisdorf, Hollenstedt, Holstenniendorf, Holzdorf, Holzkirchen, Homberg, Honigsee, Hopferbach, Hörafing, Hordorf Cremlingen, Hörlitz, Horn-Bad Meinberg Leopoldstal, Horressen, Hörstel, Hösbach, Höver, Hoyersburg, Huckstorf, Hügelsheim, Hundersingen, Hungen, Hürup, Hüttenberg-Rechtenbach, Ibbenbüren, Idstedt, Iggenhausen, Ihringen, Illingen-Hüttigweiler, Ilmenau-Roda, Ilsfeld, Immenstaad-Kippenhausen, Ingelfingen, Ingstetten, Insingen, Irlenbusch, Iserlohn-Rheinen, Israelsdorf, Ittlingen, Jabelitz, Jägershof, Jameln, Jarplund-Weding, Jeetzel, Jena-Maua, Jesberg Densberg, Jettingen, Joditz, Jonsdorf, Jübberde, Jülich, Jüterbog, Kahl a. Main, Kaisersesch, Kalchreuth, Kalkhorst, Kaltenkirchen, Kamenz-Wiesa, Kammlach, Kandern, Karben, Karlsdorf, Karlsruhe-Grünwettersbach, Karlstein a.Main, Karnin, Kassel, Käterhagen, Kaub, Kehl - Bodersweier, Kelberg, Kell am See, Kemberg, Kempen-Tönisberg, Kerken Aldekerk, Kerpen-Horrem, Ketten, Kicklingen, Kiel-Pries, Kindelbrück, Kirchbarkau, Kirchdorf an der Iller, Kirchentellinsfurt, Kirchheim bei München, Kirchlengern, Kirchseeon, Kirchzarten, Kirtorf, Kittlitz, Klanxbüll, Klein Bennebek, Kleinfurra, Kleinhelfendorf, Kleinrössen, Kleinsteinbach, Klensby, Klinga, Klingenthal, Klöden, Kloster Lehnin, Knappensee-Groß Särchen, Knottenried, Kochel, Köhlen, Kolkwitz, Köln, Köngen, Königsbrück, Königslutter am Elm, Königswartha, Konradsreuth, Konstanz-Fürstenberg, Körbecke, Kornhain, Korvin, Koßdorf, Kotzen OT Kriele, Kraftsdorf-Rüdersdorf, Krauchenwies, Krefeld-Uerdingen, Krempermoor, Kreuzle, Kriebstein OT Grünlichtenberg, Kritzmow, Kronau, Kronwinkl, Kropp-Heidbunge, Krumbeck, Krummin, Kuchen, Kühbach-Winden, Kuhs, Kummerfeld, Künzell, Kürnach, Kurort Seiffen, Küstelberg, Laage, Lachen-Speyerdorf, Lagesbüttel, Laipersdorf, Lampertheim, Landau an der Isar, Landolfshausen, Landshut, Langeloh, Langenberg, Langeneß, Langenhessen, Langenmosen, Langenscheid, Langenzenn, Langhagen, Langwedel, Lappersdorf, Latferde, Lauchhammer, Lauenberg, Lauf a.d. Pegnitz, Laufersweiler, Laussig, Lauterecken, Lautzenhausen, Lechbruck am See, Leer Ostfriesland, Legelshurst, Lehmkuhlen, Lehrte-H.Wald, Leiferde, Leinburg - Entenberg, Leipzig Engelsdorf, Leisnig, Lemförde, Lendsiedel, Lengerich, Lennestadt, Lenzen, Leopoldshafen, Lette, Leuna, Leutesdorf, Leverkusen-Quettingen, Lich-Steinstraß, Lichtenhain, Liebenau, Liebstadt OT Großröhrsdorf, Liepen, Liggersdorf, Limbach-Oberfrohna-Pleißa, Linda-Köthnitz, Lindenberg, Lindern, Lindstedt, Linnich, Linstow, Lippersdorf-Erdmannsdorf, Lippstadt-Esbeck, Löbau, Loch, Loffenau, Lohmar, Lohmen, Lohr a. Main, Loitz, Loop, Lörzweiler, Lotte, Lübbecke-Nettelstedt, Lübbenau Zerkwitz, Lubmin, Lüchow, Luckenwalde OT Kolzenburg, Lüdingworth, Ludwigshafen-Ruchheim, Lüftelberg, Lügde-Wörderfeld, Lüneburg, Lürschau, Lutherstadt Wittenberg, Lutter, Lützen OT Muschwitz, Macherbach, Magdeburg-Reform, Maibrun, Mainaschaff, Mainleus, Mainz-Kastel, Maitenbeth, Mallersdorf-Pfaffenberg, Mambach, Mangolding, Mansbach, March-Hugstetten, Marienfließ, Marienstedt, Markersdorf, Markkleeberg OT Wachau, Marktbreit, Marktl - Stammham, Marktsteft, Marl-Lenkerbeck, Marquardt, Marschall, Martinszell-Oberdorf, Marzling, Masserberg-Heubach, Mattenhofen, Maulbronn - Jungviehweide, Maxhütte Haidhof, Mechterstädt, Meddewade, Meerane, Meesiger, Meine, Meisenheim, Melle Bennien, Mellin, Memmendorf, Mengersgereuth-Hämmern, Meppen, Merklingen, Merzenhausen, Meßdorf, Metten, Metzelthin, Meußließen, Michelsdorf, Middoge, Mieste, Milkersdorf, Miltzow, Mintraching, Missunde, Mittelehrenbach, Mitterfirmiansreut, Moers, Möhnesee, Moisburg, Möllenhagen-Wendorf, Mömbris-Heimbach, Mönchsondheim, Mönkeberg, Monzelfeld, Moormerland - Hatshausen, Moosham, Morgenrot, Mörlenbach, Mosbach-Diedesheim, Möttingen, Müchnen, Mudersbach, Muggendorf, Mühlanger, Mühleithen, Mühlhausen Ortsteil Felchta, Mühltroff, Mülheim-an der Ruhr, Mumpf, München - Oberföhring, Münchweiler, Münsingen, Münster-Roxel, Murchin, Müschenbach, Mützen, Nackenheim, Nakendorf, Nassen, Nauheim, Nausitz, Neckarbischofsheim, Neckarwestheim, Negast, Neindorf, Nennslingen, Nerreth, Nestau, Nettersheim, Neu-Anspach-Hausen, Neubrandenburg-Weitin, Neuburg Mecklenburg, Neudrossenfeld, Neuenburg am Rhein, Neuenhaus, Neuenrade-Blintrop, Neue Tiefe, Neufinsing, Neuharlingersiel, Neuhausen a. d. F., Neuhengstett, Neukirch, Neulögow, Neumarkt-Sankt Veit, Neunkirchen am Brand, Neupotz, Neuruppin, Neuschönburg, Neuss-Holzheim, Neustadt am Main, Neustrelitz, Neuwittenbek, Nichel, Nideggen-Brück, Niederaula, Niederdorfelden, Nieder-Eschbach, Niedergottsau, Niederkassel-Mondorf, Niederlibbach, Niederndorf, Niederpöcking, Niedersonthofen, Niederzissen, Nienborstel, Niepars, Nieuweschans, Nittenau, Nohfelden-Gonnesweiler, Norddeich, Nordenham, Norderstapel, Nordhorn, Nordstrand, Nortrup, Nübel, Nünchritz OT Weißig, Nürtingen, Nuthe-Urstromtal, Oberalteich Bogen, Oberbachern, Oberboihingen, Oberdürrbach, Obererthal, Obergrombach, Oberharnsbach, Oberheldrungen, Oberhonnefeld-Gierend, Oberkail, Oberkrämer OT Bärenklau, Obermaiselstein, Obermotzing, Oberneukirchen, Oberostendorf, Oberreichenbach, Oberscheinfeld, Oberschwarzach, Oberstaufen-Thalkirchdorf, Obersulm-Eschenau, Obertiefenbach, Oberursel Taunus, Oberweschnegg, Oberwolfach, Ochtrup, Odenthal, Ödsbach, Oehna, Oelsnitz Erzgeb., Oerlinghausen, Oettingen, Offenbach-Bieber, Offstein, Ohlstadt, Öhringen - Michelbach, Oldenburg - Alexandersfeld, Oldenswort, Olsberg, Oppendorf, Ormont, Öschelbronn, Osnabrück - Sutthausen, Osten, Ostercappeln-Venne, Osternienburg, Osterwald Oberende, Ostheim, Ostritz, Ostseebad Dierhagen, Ottacker, Ottenhofen, Ottermoor, Ottmaring, Ovelgönne-Loyermoor, Owingen, Padborg, Paderborn-Sande, Palingen, Panketal OT Zepernick, Papendorf OT Sildemow, Parsau, Paska, Pattensen, Pechau, Peickwitz, Peiting, Penig OT Zinnberg, Pepelow, Perscheid, Petershagen-Lahde, Petzow, Pfäffingen, Pfeffingen, Pflach, Pforzheim, Pfrungen, Picher, Pillnitz, Pirmasens-Erlenbrunn, Planegg, Plau, Pleinfeld, Pliening, Plothen, Pogeez, Poing, Polsingen, Poppenhausen, Porta Westfalica-Hausberge, Pößneck, Potsdam-Babelsberg, Potsdam; Grube, Pöttmes, Preetz, Pressath, Preussisch Oldendorf, Prien am Chiemsee, Pristäblich, Pronstorf, Prüm, Pulheim-Brauweiler, Pulsnitz, Puttball, Pyrna, Queienfeld, Quittelsdorf, Rachelsbach, Radeburg, Radolfzell, Raduhn, Rahden, Raisdorf, Ramitz, Ramsen, Ranis, Raschau, Rastede - Hankhausen, Rastenberg, Rathjensdorf, Rattiszell, Rauhenebrach, Rech, Rechtmehring, Redefin, Referinghausen, Regnitzlosau, Rehhorst, Reichenau, Reichenhain, Reiffenhausen, Reinhardshagen, Reinsbüttel, Reischach, Reken, Remels, Remseck, Rengsdorf, Reppenstedt, Rettenbach, Reudnitz, Reutlingen-Sickenhause, Rheda-Wiedenbrück, Rheinbach-Oberdrees, Rheinbreitbach, Rheinhausen, Rheinzabern, Ribnitz Damgarten, Riedböhrungen, Riedering, Riehen, Riepen, Rietberg, Riezlerweg, Ringe Neugnadenfeld, Ringstraße, Risum-Lindholm, Röbel, Rockenhausen-Marienthal, Rodeberg, Röderaue, Rodewisch, Rödinghausen, Röhl, Rohr i.NB, Roitzsch, Römerstein, Ronnenberg, Rosdorf, Rosenfeld, Rosenthal-Bielatal, Roßbach, Roßwag, Rostock-Krummendorf, Rot am See, Rothemann, Rothenberg, Rothenburg Oberlausitz, Rothesütte, Rott am Inn, Rottenburg, Röttingen, Rövershagen, Rüde, Rüdesheim am Rhein, Ruhla, Rülzheim, Ruppertsberg, Rußheim, Rüthen-Oestereiden, Saalfeld Gorndorf, Sachsenburg, Saffig, Salderatzen, Salz, Salzhemmendorf, Samerberg, Sande, Sandhatten, Sankt Andreasberg, Sasbach, Sassnitz, Sattenhausen, Saupsdorf, Schacha, Schafstädt, Schallstadt, Scharfenberg, Schattin, Scheeßel-Abbendorf, Schelldorf, Schenkendöbern, Scherreuth, Schieder, Schifdorf, Schillingsfürst, Schinne, Schköna, Schlangen, Schleid, Schlesen, Schlieckau, Schlitz, Schloß Holte-Stukenbrock, Schlüchtern-Herolz, Schmalkalden OT Asbach, Schmersau, Schmiedeberg, Schmitten-Treisberg, Schnaittach-Hormersdorf, Schneizlreuth, Schöanich, Schöllkrippen, Schönau- Gebüg, Schönbrunn im Steigerwald, Schöneck, Schönewalde, Schönheide, Schönstedt, Schönwohld, Schöps, Schotten, Schrobenhausen-Sandizell, Schulpforte, Schüttorf, Schwäbisch Hall, Schwadenloch, Schwalbach-Elm, Schwandorf, Schwanstetten, Schwarzburg, Schwarzenberg, Schwebheim, Schweinfurt, Schwentinental, Schwerte, Schwiepke, Sechendorfq, Seebad Heringdsdorf, Seefeld, Seeheim- Jugenheim, Seelze, Seeshaupt, Seewald-Besenfeld, Seibersdorf am Inn, Selb, Selk, Selpin, Senden-Bösensell, Sennewitz, Seßlach, Seybothenreuth, Siebeldingen, Siegburg, Siegertsbrunn, Sienau, Sieversdorf, Sigmaringen-Laiz, Simmelsdorf, Simmersfeld, Sindorf, Sinn, Sinzig, Sitzenroda, Sohland, solingen, Soltau, Sommertshausen, Sonnefeld - Hassenberg, Sophienhof, Soven, Spantekow, Speinshart, Spiekeroog, Spreckel, Sprötze, Stadtallendorf, Stadtoldendorf, Stahnsdorf OT Güterfelde, Standenbühl, Starsow, Staufen, St. Blasien, Stedtfeld, Steibis, Steinau, Steinbach Taunus, Steinen, Steinhagen-Brockhagen, Steinigtwolmsdorf, Steißlingen, Steppach, Stettfeld, Stimpfach-Randenweiler, Stockach-Hoppetenzell, Stockstadt am Main, Stolberg-Breinig, Stolpen OT Helmsdorf, Stötten, Straach, Straßberg, Straubing, Streichmühle, Ströhen, Stubben, Stupferich, Stuttgart Bad Cannstatt, Stützengrün, Südbrookmerland, Süderholz, Sufferloh, Sulz, Sulzberg-Kühbach, Sülzetal, Sünching, Sünna, Süssen, Sylbach, Tacherting Lengloh, Talheim, Tangerhütte OT Mahlpfuhl, Tannenbergsthal, Tarnow, Tauche OT Ranzig, Tautendorf, Tegernau, Teisendorf, Temmen-Ringen, Teschow, Tetz, Teutschenthal OT Angersdorf, Thalheim, Tharandt, Thelkow, Thiendorf, Tholey-Bergweiler, Thülsfelde, Thurm, Tiefenthal, Timmendorfer Strand, Titmaringhausen, Todesfelde, Tökendorf, Töpen Mödlareuth, Tosterglope, Traisa, Trassenheide, Travenbrück, Trebgast, Treinfeld, Treppendorf, Tribsees, Triebischtal OT Groitzsch, Trier-Eitelsbach, Triftern, Trittau, Troisdorf-Eschmar, Trollenhagen, Tschernitz, Tuntenhausen, Tutow, Twistetal, Überlinen, Uchte, Udersleben, Uengershausen, Uhingen, Uhsmannsdorf, Ulm-Seligweile, Ummanz-Haide, Unna, Unterbachern, Unterdolling, Untergriesbach, Unterheinriet, Unterklausen, Untermünkheim, Unterreith, Unterschneidheim, Unterwattenbach, Upahl, Uplengen - Neudorf, Ursberg, Uslar, Utting, Varnsdorf, Veinau, Velden, Velpke, Verden Eitze, Vestenbergsgreuth, Vettlehoven, Vielau, Viersen-Dülken, Vils, Virneburg, Voerde, Vohburg, Voigtstedt, Volkfien, Vollmersweiler, Vomp, Vorrade, Waakirchen, Wachsenburggemeinde, Waddewarden, Wagenfeld-Ströhen, Waging a.S, Wahnsdorf, Waitzdorf, Waldachtal, Waldbuettelbrunn, Walderbach, Waldkappel, Waldmünchen, Waldstetten, Walldürn-Rippberg, Wallersdorf, Wallstawe, Waltenhausen, Walzbachtal-Wössingen, WAngen, Wanhöden, Warbsen, Wardow, Warmsen, Warstein, Warthausen, Wasserburg, Wasserzell, Waxweiler, Wedel, Wega, Wehr, Weibern, Weidenau, Weiden in der Oberpfalz, Weihenzell, Weilach, Weiler, Weilheim in Oberbayern, Weimar Lahn, Weinheim-Rippenweier, Weischlitz, Weissach im Tal, Weißenburg in Bayern, Weißensberg, Weißwasser, Weiterstadt-Braunshardt, Welldorf, Welschneudorf, Wendeburg, Wendisch Rietz, Wennigsen, Wensin, Werben OT Räbel, Werder Havel OT Petzow, Wernau, Wernsdorf, Werther b. Nordhausen, Wesendorf, Wessobrunn, Westerdeichstrich, Westerkappeln Velpe, Westerstede - Eggeloge, Westerstetten, Wetschen, Wetter Ruhr, Wetzendorf, Weyarn, Wiblingen, Wieda, Wiefelstede - Borbeck, Wiek, Wiesau, Wiesbaden-Schierstein, Wiesenfeld, Wiesenttal, Wiggensbach, Wildenau, Wilhelmsdorf, Wiligrad, Willingen Westerwald, Wilnsdorf, Wilstedt, Windeck-Au, Windischeschenbach, Winkelhaid, Winningen, Winterberg-Mollseifen, Winzerhausen, Wirges, Wistedt, Wittenberge OT Hinzdorf, Wittgensdorf, Wittmar, Witzighausen, Wohlsdorf, Wöhrden, Wolfen, Wolfsbehringen, Wolfshagen, Wolkramshausen, Wolpertstetten, Worbis, Wörrstadt, Wörth-Maximiliansau, Wriedel, Wulfen, Wulfshagenerhütten, Wunstorf, Wuppertal-Schöller, Würselen, Wussegel, Wusterhusen OT Gustebin, Wutha-Farnroda, Xanten-Lüttingen, Zackermühle, Zargleben, Zedtlitz, Zeil am Main, Zell a.d.Mosel, Zerbst, Zescha, Zeven, Ziegenhagen, Zierzow, Zimmern, Zittau, Zöllmen, Zotzenbach, Zschorna, Zurow, Zweibrücken, Zwiefelhof, Zwota] country: [Deutschland] personalEmails: [ gmail.com, yahoo.com, yahoo.de, gmx.de, gmx.com, web.de, t-online.de ] telephone_number_formats: ["0#########"] text: "Ihr naht euch wieder, schwankende Gestalten, Die früh sich einst dem trüben Blick gezeigt. Versuch ich wohl, euch diesmal festzuhalten? Fühl ich mein Herz noch jenem Wahn geneigt? Ihr drängt euch zu! nun gut, so mögt ihr walten, Wie ihr aus Dunst und Nebel um mich steigt; Mein Busen fühlt sich jugendlich erschüttert Vom Zauberhauch, der euren Zug umwittert. Ihr bringt mit euch die Bilder froher Tage, Und manche liebe Schatten steigen auf; Gleich einer alten, halbverklungnen Sage Kommt erste Lieb und Freundschaft mit herauf; Der Schmerz wird neu, es wiederholt die Klage Des Lebens labyrinthisch irren Lauf, Und nennt die Guten, die, um schöne Stunden Vom Glück getäuscht, vor mir hinweggeschwunden. Sie hören nicht die folgenden Gesänge, Die Seelen, denen ich die ersten sang; Zerstoben ist das freundliche Gedränge, Verklungen, ach! der erste Widerklang. Mein Lied ertönt der unbekannten Menge, Ihr Beifall selbst macht meinem Herzen bang, Und was sich sonst an meinem Lied erfreuet, Wenn es noch lebt, irrt in der Welt zerstreuet. Und mich ergreift ein längst entwöhntes Sehnen Nach jenem stillen, ernsten Geisterreich, Es schwebet nun in unbestimmten Tönen Mein lispelnd Lied, der Äolsharfe gleich, Ein Schauer faßt mich, Träne folgt den Tränen, Das strenge Herz, es fühlt sich mild und weich; Was ich besitze, seh ich wie im Weiten, Und was verschwand, wird mir zu Wirklichkeiten." language: 'DE' ================================================ FILE: src/main/resources/jfairy_en.yml ================================================ alphabet: abcdefghijklmnopqrstuvwxyz domains: [com, eu, biz] firstNames: { male: [Aaron, Adam, Adrian, Aiden, Alex, Alexander, Andrew, Angel, Anthony, Austin, Ayden, Benjamin, Bentley, Blake, Brandon, Brayden, Brody, Bryson, Caleb, Cameron, Carlos, Carson, Carter, Charles, Chase, Christian, Christopher, Colton, Connor, Cooper, Damian, Daniel, David, Dominic, Dylan, Easton, Eli, Elijah, Ethan, Evan, Gabriel, Gavin, Grayson, Henry, Hudson, Hunter, Ian, Isaac, Isaiah, Jace, Jack, Jackson, Jacob, James, Jason, Jaxon, Jayden, Jeremiah, John, Jonathan, Jordan, Jose, Joseph, Joshua, Josiah, Juan, Julian, Justin, Kayden, Kevin, Landon, Levi, Liam, Logan, Lucas, Luis, Luke, Mason, Matthew, Michael, Nathan, Nathaniel, Nicholas, Noah, Nolan, Oliver, Owen, Parker, Robert, Ryan, Ryder, Samuel, Sebastian, Thomas, Tristan, Tyler, William, Wyatt, Xavier, Zachary], female: [Aaliyah, Abigail, Addison, Alexa, Alexandra, Alexis, Allison, Alyssa, Amelia, Andrea, Anna, Annabelle, Aria, Ariana, Arianna, Ashley, Aubree, Aubrey, Audrey, Autumn, Ava, Avery, Bailey, Bella, Brianna, Brooklyn, Camila, Caroline, Charlotte, Chloe, Claire, Elizabeth, Ella, Ellie, Emily, Emma, Eva, Evelyn, Faith, Gabriella, Genesis, Gianna, Grace, Hailey, Hannah, Harper, Isabella, Jasmine, Jocelyn, Julia, Katherine, Kayla, Kaylee, Kennedy, Khloe, Kimberly, Kylie, Lauren, Layla, Leah, Lillian, Lily, London, Lucy, Lydia, Mackenzie, Madeline, Madelyn, Madison, Makayla, Maya, Melanie, Mia, Molly, Morgan, Naomi, Natalie, Nevaeh, Olivia, Peyton, Piper, Reagan, Riley, Samantha, Sarah, Savannah, Scarlett, Serenity, Skylar, Sofia, Sophia, Sophie, Stella, Sydney, Taylor, Trinity, Victoria, Violet, Zoe, Zoey] } lastNames: { male: [Abbott, Acevedo, Acosta, Adams, Adkins, Aguilar, Aguirre, Albert, Alexander, Alford, Allen, Allison, Alston, Alvarado, Alvarez, Anderson, Andrews, Anthony, Armstrong, Arnold, Ashley, Atkins, Atkinson, Austin, Avery, Avila, Ayala, Ayers, Bailey, Baird, Baker, Baldwin, Ball, Ballard, Banks, Barber, Barker, Barlow, Barnes, Barnett, Barr, Barrera, Barrett, Barron, Barry, Bartlett, Barton, Bass, Bates, Battle, Bauer, Baxter, Beach, Bean, Beard, Beasley, Beck, Becker, Bell, Bender, Benjamin, Bennett, Benson, Bentley, Benton, Berg, Berger, Bernard, Berry, Best, Bird, Bishop, Black, Blackburn, Blackwell, Blair, Blake, Blanchard, Blankenship, Blevins, Bolton, Bond, Bonner, Booker, Boone, Booth, Bowen, Bowers, Bowman, Boyd, Boyer, Boyle, Bradford, Bradley, Bradshaw, Brady, Branch, Bray, Brennan, Brewer, Bridges, Briggs, Bright, Britt, Brock, Brooks, Brown, Browning, Bruce, Bryan, Bryant, Buchanan, Buck, Buckley, Buckner, Bullock, Burch, Burgess, Burke, Burks, Burnett, Burns, Burris, Burt, Burton, Bush, Butler, Byers, Byrd, Cabrera, Cain, Calderon, Caldwell, Calhoun, Callahan, Camacho, Cameron, Campbell, Campos, Cannon, Cantrell, Cantu, Cardenas, Carey, Carlson, Carney, Carpenter, Carr, Carrillo, Carroll, Carson, Carter, Carver, Case, Casey, Cash, Castaneda, Castillo, Castro, Cervantes, Chambers, Chan, Chandler, Chaney, Chang, Chapman, Charles, Chase, Chavez, Chen, Cherry, Christensen, Christian, Church, Clark, Clarke, Clay, Clayton, Clements, Clemons, Cleveland, Cline, Cobb, Cochran, Coffey, Cohen, Cole, Coleman, Collier, Collins, Colon, Combs, Compton, Conley, Conner, Conrad, Contreras, Conway, Cook, Cooke, Cooley, Cooper, Copeland, Cortez, Cote, Cotton, Cox, Craft, Craig, Crane, Crawford, Crosby, Cross, Cruz, Cummings, Cunningham, Curry, Curtis, Dale, Dalton, Daniel, Daniels, Daugherty, Davenport, David, Davidson, Davis, Dawson, Day, Dean, Decker, Dejesus, Delacruz, Delaney, Deleon, Delgado, Dennis, Diaz, Dickerson, Dickson, Dillard, Dillon, Dixon, Dodson, Dominguez, Donaldson, Donovan, Dorsey, Dotson, Douglas, Downs, Doyle, Drake, Dudley, Duffy, Duke, Duncan, Dunlap, Dunn, Duran, Durham, Dyer, Eaton, Edwards, Elliott, Ellis, Ellison, Emerson, England, English, Erickson, Espinoza, Estes, Estrada, Evans, Everett, Ewing, Farley, Farmer, Farrell, Faulkner, Ferguson, Fernandez, Ferrell, Fields, Figueroa, Finch, Finley, Fischer, Fisher, Fitzgerald, Fitzpatrick, Fleming, Fletcher, Flores, Flowers, Floyd, Flynn, Foley, Forbes, Ford, Foreman, Foster, Fowler, Fox, Francis, Franco, Frank, Franklin, Franks, Frazier, Frederick, Freeman, French, Frost, Fry, Frye, Fuentes, Fuller, Fulton, Gaines, Gallagher, Gallegos, Galloway, Gamble, Garcia, Gardner, Garner, Garrett, Garrison, Garza, Gates, Gay, Gentry, George, Gibbs, Gibson, Gilbert, Giles, Gill, Gillespie, Gilliam, Gilmore, Glass, Glenn, Glover, Goff, Golden, Gomez, Gonzales, Gonzalez, Good, Goodman, Goodwin, Gordon, Gould, Graham, Grant, Graves, Gray, Green, Greene, Greer, Gregory, Griffin, Griffith, Grimes, Gross, Guerra, Guerrero, Guthrie, Gutierrez, Guy, Guzman, Hahn, Hale, Haley, Hall, Hamilton, Hammond, Hampton, Hancock, Haney, Hansen, Hanson, Hardin, Harding, Hardy, Harmon, Harper, Harrell, Harrington, Harris, Harrison, Hart, Hartman, Harvey, Hatfield, Hawkins, Hayden, Hayes, Haynes, Hays, Head, Heath, Hebert, Henderson, Hendricks, Hendrix, Henry, Hensley, Henson, Herman, Hernandez, Herrera, Herring, Hess, Hester, Hewitt, Hickman, Hicks, Higgins, Hill, Hines, Hinton, Hobbs, Hodge, Hodges, Hoffman, Hogan, Holcomb, Holden, Holder, Holland, Holloway, Holman, Holmes, Holt, Hood, Hooper, Hoover, Hopkins, Hopper, Horn, Horne, Horton, House, Houston, Howard, Howe, Howell, Hubbard, Huber, Hudson, Huff, Huffman, Hughes, Hull, Humphrey, Hunt, Hunter, Hurley, Hurst, Hutchinson, Hyde, Ingram, Irwin, Jackson, Jacobs, Jacobson, James, Jarvis, Jefferson, Jenkins, Jennings, Jensen, Jimenez, Johns, Johnson, Johnston, Jones, Jordan, Joseph, Joyce, Joyner, Juarez, Justice, Kane, Kaufman, Keith, Keller, Kelley, Kelly, Kemp, Kennedy, Kent, Kerr, Key, Kidd, Kim, King, Kinney, Kirby, Kirk, Kirkland, Klein, Kline, Knapp, Knight, Knowles, Knox, Koch, Kramer, Lamb, Lambert, Lancaster, Landry, Lane, Lang, Langley, Lara, Larsen, Larson, Lawrence, Lawson, Le, Leach, Leblanc, Lee, Leon, Leonard, Lester, Levine, Levy, Lewis, Lindsay, Lindsey, Little, Livingston, Lloyd, Logan, Long, Lopez, Lott, Love, Lowe, Lowery, Lucas, Luna, Lynch, Lynn, Lyons, Macdonald, Macias, Mack, Madden, Maddox, Maldonado, Malone, Mann, Manning, Marks, Marquez, Marsh, Marshall, Martin, Martinez, Mason, Massey, Mathews, Mathis, Matthews, Maxwell, May, Mayer, Maynard, Mayo, Mays, Mcbride, Mccall, Mccarthy, Mccarty, Mcclain, Mcclure, Mcconnell, Mccormick, Mccoy, Mccray, Mccullough, Mcdaniel, Mcdonald, Mcdowell, Mcfadden, Mcfarland, Mcgee, Mcgowan, Mcguire, Mcintosh, Mcintyre, Mckay, Mckee, Mckenzie, Mckinney, Mcknight, Mclaughlin, Mclean, Mcleod, Mcmahon, Mcmillan, Mcneil, Mcpherson, Meadows, Medina, Mejia, Melendez, Melton, Mendez, Mendoza, Mercado, Mercer, Merrill, Merritt, Meyer, Meyers, Michael, Middleton, Miles, Miller, Mills, Miranda, Mitchell, Molina, Monroe, Montgomery, Montoya, Moody, Moon, Mooney, Moore, Morales, Moran, Moreno, Morgan, Morin, Morris, Morrison, Morrow, Morse, Morton, Moses, Mosley, Moss, Mueller, Mullen, Mullins, Munoz, Murphy, Murray, Myers, Nash, Navarro, Neal, Nelson, Newman, Newton, Nguyen, Nichols, Nicholson, Nielsen, Nieves, Nixon, Noble, Noel, Nolan, Norman, Norris, Norton, Nunez, Obrien, Ochoa, Oconnor, Odom, Odonnell, Oliver, Olsen, Olson, Oneal, Oneil, Oneill, Orr, Ortega, Ortiz, Osborn, Osborne, Owen, Owens, Pace, Pacheco, Padilla, Page, Palmer, Park, Parker, Parks, Parrish, Parsons, Pate, Patel, Patrick, Patterson, Patton, Paul, Payne, Pearson, Peck, Pena, Pennington, Perez, Perkins, Perry, Peters, Petersen, Peterson, Petty, Phelps, Phillips, Pickett, Pierce, Pittman, Pitts, Pollard, Poole, Pope, Porter, Potter, Potts, Powell, Powers, Pratt, Preston, Price, Prince, Pruitt, Puckett, Pugh, Quinn, Ramirez, Ramos, Ramsey, Randall, Randolph, Rasmussen, Ratliff, Ray, Raymond, Reed, Reese, Reeves, Reid, Reilly, Reyes, Reynolds, Rhodes, Rice, Rich, Richard, Richards, Richardson, Richmond, Riddle, Riggs, Riley, Rios, Rivas, Rivera, Rivers, Roach, Robbins, Roberson, Roberts, Robertson, Robinson, Robles, Rocha, Rodgers, Rodriguez, Rodriquez, Rogers, Rojas, Rollins, Roman, Romero, Rosa, Rosales, Rosario, Rose, Ross, Roth, Rowe, Rowland, Roy, Ruiz, Rush, Russell, Russo, Rutledge, Ryan, Salas, Salazar, Salinas, Sampson, Sanchez, Sanders, Sandoval, Santana, Santiago, Santos, Sargent, Saunders, Savage, Sawyer, Schmidt, Schneider, Schroeder, Schultz, Schwartz, Scott, Sears, Sellers, Serrano, Sexton, Shaffer, Shannon, Sharp, Sharpe, Shaw, Shelton, Shepard, Shepherd, Sheppard, Sherman, Shields, Short, Silva, Simmons, Simon, Simpson, Sims, Singleton, Skinner, Slater, Sloan, Small, Smith, Snider, Snow, Snyder, Solis, Solomon, Sosa, Soto, Sparks, Spears, Spence, Spencer, Stafford, Stanley, Stanton, Stark, Steele, Stein, Stephens, Stephenson, Stevens, Stevenson, Stewart, Stokes, Stone, Stout, Strickland, Strong, Stuart, Suarez, Sullivan, Summers, Sutton, Swanson, Sweeney, Sweet, Sykes, Talley, Tanner, Tate, Taylor, Terrell, Terry, Thomas, Thompson, Thornton, Tillman, Todd, Torres, Townsend, Tran, Travis, Trevino, Trujillo, Tucker, Turner, Tyler, Tyson, Underwood, Valdez, Valencia, Valentine, Valenzuela, Vance, Vang, Vargas, Vasquez, Vaughan, Vaughn, Vazquez, Vega, Velasquez, Velazquez, Velez, Villarreal, Vincent, Vinson, Wade, Wagner, Walker, Wall, Wallace, Waller, Walls, Walsh, Walter, Walters, Walton, Ward, Ware, Warner, Warren, Washington, Waters, Watkins, Watson, Watts, Weaver, Webb, Weber, Webster, Weeks, Weiss, Welch, Wells, West, Wheeler, Whitaker, White, Whitehead, Whitfield, Whitley, Whitney, Wiggins, Wilcox, Wilder, Wiley, Wilkerson, Wilkins, Wilkinson, William, Williams, Williamson, Willis, Wilson, Winters, Wise, Witt, Wolf, Wolfe, Wong, Wood, Woodard, Woods, Woodward, Wooten, Workman, Wright, Wyatt, Wynn, Yang, Yates, York, Young, Zamora, Zimmerman], female: [Abbott, Acevedo, Acosta, Adams, Adkins, Aguilar, Aguirre, Albert, Alexander, Alford, Allen, Allison, Alston, Alvarado, Alvarez, Anderson, Andrews, Anthony, Armstrong, Arnold, Ashley, Atkins, Atkinson, Austin, Avery, Avila, Ayala, Ayers, Bailey, Baird, Baker, Baldwin, Ball, Ballard, Banks, Barber, Barker, Barlow, Barnes, Barnett, Barr, Barrera, Barrett, Barron, Barry, Bartlett, Barton, Bass, Bates, Battle, Bauer, Baxter, Beach, Bean, Beard, Beasley, Beck, Becker, Bell, Bender, Benjamin, Bennett, Benson, Bentley, Benton, Berg, Berger, Bernard, Berry, Best, Bird, Bishop, Black, Blackburn, Blackwell, Blair, Blake, Blanchard, Blankenship, Blevins, Bolton, Bond, Bonner, Booker, Boone, Booth, Bowen, Bowers, Bowman, Boyd, Boyer, Boyle, Bradford, Bradley, Bradshaw, Brady, Branch, Bray, Brennan, Brewer, Bridges, Briggs, Bright, Britt, Brock, Brooks, Brown, Browning, Bruce, Bryan, Bryant, Buchanan, Buck, Buckley, Buckner, Bullock, Burch, Burgess, Burke, Burks, Burnett, Burns, Burris, Burt, Burton, Bush, Butler, Byers, Byrd, Cabrera, Cain, Calderon, Caldwell, Calhoun, Callahan, Camacho, Cameron, Campbell, Campos, Cannon, Cantrell, Cantu, Cardenas, Carey, Carlson, Carney, Carpenter, Carr, Carrillo, Carroll, Carson, Carter, Carver, Case, Casey, Cash, Castaneda, Castillo, Castro, Cervantes, Chambers, Chan, Chandler, Chaney, Chang, Chapman, Charles, Chase, Chavez, Chen, Cherry, Christensen, Christian, Church, Clark, Clarke, Clay, Clayton, Clements, Clemons, Cleveland, Cline, Cobb, Cochran, Coffey, Cohen, Cole, Coleman, Collier, Collins, Colon, Combs, Compton, Conley, Conner, Conrad, Contreras, Conway, Cook, Cooke, Cooley, Cooper, Copeland, Cortez, Cote, Cotton, Cox, Craft, Craig, Crane, Crawford, Crosby, Cross, Cruz, Cummings, Cunningham, Curry, Curtis, Dale, Dalton, Daniel, Daniels, Daugherty, Davenport, David, Davidson, Davis, Dawson, Day, Dean, Decker, Dejesus, Delacruz, Delaney, Deleon, Delgado, Dennis, Diaz, Dickerson, Dickson, Dillard, Dillon, Dixon, Dodson, Dominguez, Donaldson, Donovan, Dorsey, Dotson, Douglas, Downs, Doyle, Drake, Dudley, Duffy, Duke, Duncan, Dunlap, Dunn, Duran, Durham, Dyer, Eaton, Edwards, Elliott, Ellis, Ellison, Emerson, England, English, Erickson, Espinoza, Estes, Estrada, Evans, Everett, Ewing, Farley, Farmer, Farrell, Faulkner, Ferguson, Fernandez, Ferrell, Fields, Figueroa, Finch, Finley, Fischer, Fisher, Fitzgerald, Fitzpatrick, Fleming, Fletcher, Flores, Flowers, Floyd, Flynn, Foley, Forbes, Ford, Foreman, Foster, Fowler, Fox, Francis, Franco, Frank, Franklin, Franks, Frazier, Frederick, Freeman, French, Frost, Fry, Frye, Fuentes, Fuller, Fulton, Gaines, Gallagher, Gallegos, Galloway, Gamble, Garcia, Gardner, Garner, Garrett, Garrison, Garza, Gates, Gay, Gentry, George, Gibbs, Gibson, Gilbert, Giles, Gill, Gillespie, Gilliam, Gilmore, Glass, Glenn, Glover, Goff, Golden, Gomez, Gonzales, Gonzalez, Good, Goodman, Goodwin, Gordon, Gould, Graham, Grant, Graves, Gray, Green, Greene, Greer, Gregory, Griffin, Griffith, Grimes, Gross, Guerra, Guerrero, Guthrie, Gutierrez, Guy, Guzman, Hahn, Hale, Haley, Hall, Hamilton, Hammond, Hampton, Hancock, Haney, Hansen, Hanson, Hardin, Harding, Hardy, Harmon, Harper, Harrell, Harrington, Harris, Harrison, Hart, Hartman, Harvey, Hatfield, Hawkins, Hayden, Hayes, Haynes, Hays, Head, Heath, Hebert, Henderson, Hendricks, Hendrix, Henry, Hensley, Henson, Herman, Hernandez, Herrera, Herring, Hess, Hester, Hewitt, Hickman, Hicks, Higgins, Hill, Hines, Hinton, Hobbs, Hodge, Hodges, Hoffman, Hogan, Holcomb, Holden, Holder, Holland, Holloway, Holman, Holmes, Holt, Hood, Hooper, Hoover, Hopkins, Hopper, Horn, Horne, Horton, House, Houston, Howard, Howe, Howell, Hubbard, Huber, Hudson, Huff, Huffman, Hughes, Hull, Humphrey, Hunt, Hunter, Hurley, Hurst, Hutchinson, Hyde, Ingram, Irwin, Jackson, Jacobs, Jacobson, James, Jarvis, Jefferson, Jenkins, Jennings, Jensen, Jimenez, Johns, Johnson, Johnston, Jones, Jordan, Joseph, Joyce, Joyner, Juarez, Justice, Kane, Kaufman, Keith, Keller, Kelley, Kelly, Kemp, Kennedy, Kent, Kerr, Key, Kidd, Kim, King, Kinney, Kirby, Kirk, Kirkland, Klein, Kline, Knapp, Knight, Knowles, Knox, Koch, Kramer, Lamb, Lambert, Lancaster, Landry, Lane, Lang, Langley, Lara, Larsen, Larson, Lawrence, Lawson, Le, Leach, Leblanc, Lee, Leon, Leonard, Lester, Levine, Levy, Lewis, Lindsay, Lindsey, Little, Livingston, Lloyd, Logan, Long, Lopez, Lott, Love, Lowe, Lowery, Lucas, Luna, Lynch, Lynn, Lyons, Macdonald, Macias, Mack, Madden, Maddox, Maldonado, Malone, Mann, Manning, Marks, Marquez, Marsh, Marshall, Martin, Martinez, Mason, Massey, Mathews, Mathis, Matthews, Maxwell, May, Mayer, Maynard, Mayo, Mays, Mcbride, Mccall, Mccarthy, Mccarty, Mcclain, Mcclure, Mcconnell, Mccormick, Mccoy, Mccray, Mccullough, Mcdaniel, Mcdonald, Mcdowell, Mcfadden, Mcfarland, Mcgee, Mcgowan, Mcguire, Mcintosh, Mcintyre, Mckay, Mckee, Mckenzie, Mckinney, Mcknight, Mclaughlin, Mclean, Mcleod, Mcmahon, Mcmillan, Mcneil, Mcpherson, Meadows, Medina, Mejia, Melendez, Melton, Mendez, Mendoza, Mercado, Mercer, Merrill, Merritt, Meyer, Meyers, Michael, Middleton, Miles, Miller, Mills, Miranda, Mitchell, Molina, Monroe, Montgomery, Montoya, Moody, Moon, Mooney, Moore, Morales, Moran, Moreno, Morgan, Morin, Morris, Morrison, Morrow, Morse, Morton, Moses, Mosley, Moss, Mueller, Mullen, Mullins, Munoz, Murphy, Murray, Myers, Nash, Navarro, Neal, Nelson, Newman, Newton, Nguyen, Nichols, Nicholson, Nielsen, Nieves, Nixon, Noble, Noel, Nolan, Norman, Norris, Norton, Nunez, Obrien, Ochoa, Oconnor, Odom, Odonnell, Oliver, Olsen, Olson, Oneal, Oneil, Oneill, Orr, Ortega, Ortiz, Osborn, Osborne, Owen, Owens, Pace, Pacheco, Padilla, Page, Palmer, Park, Parker, Parks, Parrish, Parsons, Pate, Patel, Patrick, Patterson, Patton, Paul, Payne, Pearson, Peck, Pena, Pennington, Perez, Perkins, Perry, Peters, Petersen, Peterson, Petty, Phelps, Phillips, Pickett, Pierce, Pittman, Pitts, Pollard, Poole, Pope, Porter, Potter, Potts, Powell, Powers, Pratt, Preston, Price, Prince, Pruitt, Puckett, Pugh, Quinn, Ramirez, Ramos, Ramsey, Randall, Randolph, Rasmussen, Ratliff, Ray, Raymond, Reed, Reese, Reeves, Reid, Reilly, Reyes, Reynolds, Rhodes, Rice, Rich, Richard, Richards, Richardson, Richmond, Riddle, Riggs, Riley, Rios, Rivas, Rivera, Rivers, Roach, Robbins, Roberson, Roberts, Robertson, Robinson, Robles, Rocha, Rodgers, Rodriguez, Rodriquez, Rogers, Rojas, Rollins, Roman, Romero, Rosa, Rosales, Rosario, Rose, Ross, Roth, Rowe, Rowland, Roy, Ruiz, Rush, Russell, Russo, Rutledge, Ryan, Salas, Salazar, Salinas, Sampson, Sanchez, Sanders, Sandoval, Santana, Santiago, Santos, Sargent, Saunders, Savage, Sawyer, Schmidt, Schneider, Schroeder, Schultz, Schwartz, Scott, Sears, Sellers, Serrano, Sexton, Shaffer, Shannon, Sharp, Sharpe, Shaw, Shelton, Shepard, Shepherd, Sheppard, Sherman, Shields, Short, Silva, Simmons, Simon, Simpson, Sims, Singleton, Skinner, Slater, Sloan, Small, Smith, Snider, Snow, Snyder, Solis, Solomon, Sosa, Soto, Sparks, Spears, Spence, Spencer, Stafford, Stanley, Stanton, Stark, Steele, Stein, Stephens, Stephenson, Stevens, Stevenson, Stewart, Stokes, Stone, Stout, Strickland, Strong, Stuart, Suarez, Sullivan, Summers, Sutton, Swanson, Sweeney, Sweet, Sykes, Talley, Tanner, Tate, Taylor, Terrell, Terry, Thomas, Thompson, Thornton, Tillman, Todd, Torres, Townsend, Tran, Travis, Trevino, Trujillo, Tucker, Turner, Tyler, Tyson, Underwood, Valdez, Valencia, Valentine, Valenzuela, Vance, Vang, Vargas, Vasquez, Vaughan, Vaughn, Vazquez, Vega, Velasquez, Velazquez, Velez, Villarreal, Vincent, Vinson, Wade, Wagner, Walker, Wall, Wallace, Waller, Walls, Walsh, Walter, Walters, Walton, Ward, Ware, Warner, Warren, Washington, Waters, Watkins, Watson, Watts, Weaver, Webb, Weber, Webster, Weeks, Weiss, Welch, Wells, West, Wheeler, Whitaker, White, Whitehead, Whitfield, Whitley, Whitney, Wiggins, Wilcox, Wilder, Wiley, Wilkerson, Wilkins, Wilkinson, William, Williams, Williamson, Willis, Wilson, Winters, Wise, Witt, Wolf, Wolfe, Wong, Wood, Woodard, Woods, Woodward, Wooten, Workman, Wright, Wyatt, Wynn, Yang, Yates, York, Young, Zamora, Zimmerman] } personalEmails: [gmail.com, yahoo.com, mail.com] companyNames: [Alist, Beans, Klein, Felics, Adapt, MemorTech, Porta, SuperMemo, Nonos, Vitae, Woods, Quisuc, Quicker, Interdem, Morsem, Datastore, Linger, Buapel, Terson, Gualas, Yrsa, Warst, Erntogra, Robutenia, QuickLink, Furba, Hostes, FlyHigh] companySuffixes: [Associates, Company, Consulting, Inc., Industries, Limited, LLC, Ltd] companyEmails: [info, contact, company, office] text: But I must explain to you how all this mistaken idea of denouncing of a pleasure and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of itself, because it is pain, but occasionally circumstances occur in which toil and pain can procure him some great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no annoying consequences, or one who avoids a pain that produces no resultant pleasure? telephone_number_formats: ['###-###-###', '###-###-####'] postal_code: ['#####'] city: [New York, Washington, San Francisco, Miami] street: [Atkins Avenue, Aster Court, Cove Lane, Ford Street, Highland Place, Herzi Street, Tabor Court, Stillwell Avenue, Summer Place, Washington Walk] country: ['Canada', 'USA', 'Poland'] language: 'EN' ================================================ FILE: src/main/resources/jfairy_es.yml ================================================ alphabet: aábcdeéfghiíjklmnñoópqrstuvwxyz domains: [es, cat, com, eu] firstNames: { male: [Francisco, Paco, Fran, Jose, Pepe, Antonio, Toni, Emilio, Carlos, Enrique, Manuel, Miguel, Javier, Xavi, Aaron, Alex, Alejandro, Pedro, David, Rubén, Rodrigo, Iván, Sergio, Adolfo, Fernando, Alberto, Álvaro, Alfonso], female: [Alejandra, Alex, Alicia, Ana, Julia, Carolina, Claudia, Sofia, Maria, Marta, Natalia, Olivia, Patricia, Paula, Veronica, Susana, Francisca, Mónica, Estefanía, Maria Cruz, Triana, Paz, Penelope, Elisa, Rebeca] } lastNames: { male: [Garcia, Lopez, Perez, Gonzalez, Sanchez, Martinez, Rodriguez, Fernandez, Gomez, Martin, Grau, Hernandez, Ruiz, Diaz, Alvarez, Jimenez, Moreno, Muñoz, Alonso, Gutierrez, Romero, Sanz, Torres, Suarez, Ramirez, Vazquez, Navarro, Dominguez, Ramos, Castro, Gil, Flores, Morales, Blanco, Serrano, Molina, Ortiz, Santos, Ortega, Morrell, Delgado, Mendez, Castillo, Marquez, Cruz, Medina, Herrera, Marin, Nunez, Vega, Iglesias, Rojas, Reyes, Luna, Campos, Rubio, Pena, Ferrer, Lozano, Garrido, Leon, Aguilar, Cano, Arias, Herrero, Gimenez, Fuentes, Diez], female: [Garcia, Lopez, Perez, Gonzalez, Sanchez, Martinez, Rodriguez, Fernandez, Gomez, Martin, Grau, Hernandez, Ruiz, Diaz, Alvarez, Jimenez, Moreno, Muñoz, Alonso, Gutierrez, Romero, Sanz, Torres, Suarez, Ramirez, Vazquez, Navarro, Dominguez, Ramos, Castro, Gil, Flores, Morales, Blanco, Serrano, Molina, Ortiz, Santos, Ortega, Morrell, Delgado, Mendez, Castillo, Marquez, Cruz, Medina, Herrera, Marin, Nunez, Vega, Iglesias, Rojas, Reyes, Luna, Campos, Rubio, Pena, Ferrer, Lozano, Garrido, Leon, Aguilar, Cano, Arias, Herrero, Gimenez, Fuentes, Diez] } personalEmails: [gmail.com, yahoo.com, yahoo.es, terra.es, telefonica.es, ono.es] companyNames: [Ibericatec, TecnoHispana, CatTech, Soluciones Martinez, Progreso e Innovación, InfoLoco, InfoLopez, TecnoSanchez, PerezPerez, BlueNube, Soluciones Marquez, Aselesic, TecnoMundo, Tecnolandia] companySuffixes: [S.A., S.L., S.Coop., S.L.N.E.] companyEmails: [info, contacto, principal, ventas, atencion] text: > Y, viéndole don Quijote de aquella manera, con muestras de tanta tristeza, le dijo: Sábete, Sancho, que no es un hombre más que otro si no hace más que otro. Todas estas borrascas que nos suceden son señales de que presto ha de serenar el tiempo y han de sucedernos bien las cosas; porque no es posible que el mal ni el bien sean durables, y de aquí se sigue que, habiendo durado mucho el mal, el bien está ya cerca. Así que, no debes congojarte por las desgracias que a mí me suceden, pues a ti no te cabe parte dellas. Y, viéndole don Quijote de aquella manera, con muestras de tanta tristeza, le dijo: Sábete, Sancho, que no es un hombre más que otro si no hace más que otro. telephone_number_formats: ['+34 6##-###-###', '+34 9#-###-####', '+34 97#-###-###'] postal_code: ['##.###'] city: [Madrid, Barcelona, Valencia, Sevilla, Zaragoza, Málaga, Murcia, Palma de Mallorca, Las Palmas de Gran Canaria, Bilbao, Alicante, Córdoba, Valladolid, Vigo, Gijón, Hospitalet de Llobregat, La Coruña, Vitoria, Granada, Elche, Oviedo, Badalona, Cartagena, Tarrasa, Jerez de la Frontera, Sabadell, Móstoles, Santa Cruz de Tenerife, Alcalá de Henares, Pamplona, Fuenlabrada, Almería, Leganés, San Sebastián, Burgos, Santander, Castellón de la Plana, Getafe, Albacete, Alcorcón, San Cristóbal de la Laguna, Logroño, Badajoz, Salamanca, Huelva, Lérida, Marbella, Tarragona, Dos Hermanas, León, Torrejón de Ardoz, Parla, Mataró, Cádiz, Santa Coloma de Gramanet, Algeciras, Jaén, Alcobendas, Orense, Reus, Telde, Baracaldo, Lugo, Gerona, San Fernando, Cáceres, Santiago de Compostela, Las Rozas de Madrid, Lorca, Roquetas de Mar, Torrevieja, Coslada, El Puerto de Santa María, San Cugat del Vallés, Talavera de la Reina, Cornellá de Llobregat, Ceuta, Melilla, Pozuelo de Alarcón, El Ejido, Guadalajara, Orihuela, Toledo, San Sebastián de los Reyes, San Baudilio de Llobregat, Pontevedra, Chiclana de la Frontera, Avilés, Torrente, Rivas-Vaciamadrid, Palencia, Arona, Guecho, Vélez-Málaga, Mijas, Gandía, Fuengirola, Manresa, Ciudad Real] street: [Mayor, Iglesia, Real, Nueva, San Jose, San Roque, San Juan, San Pedro, Colón, Vieja, Balmes, Doctor Gregorio Marañón, Doctor Esquerdo, Gran Vía, Alcalá, Cruz, Colegiata, Menendez Pelayo, Sagunto] country: ['España'] #, 'Argentina', 'Uruguay', 'Mexico', 'Chile', 'Colombia', 'Venezuela', 'Cuba', 'Ecuador', 'Honduras', 'Perú'] language: 'ES' ================================================ FILE: src/main/resources/jfairy_fr.yml ================================================ alphabet: aâàbcdeéèfghiïîjklmnoôöpqrstuùvwxyz domains: [fr, com, gouv.fr, net, org] companyNames: [AB Science, ABC Arbitrage, Acanthe Développement, Acteos, Actia Group, Adlpartner, Adocia, Aéroports De Paris, Affine, Afone, Air France, Akka Technologies, Albioma, Altamir, Alten, Altran Technologies, Anf Immobilier, Aperam Reg., April, Archos, Areva, Argan, Artprice Com, Ask, Assystem, Ast Groupe, Atari, Ateme, Aubay, Audika, Aufeminin, Aurea, Aures Technologies, Ausy, Avanquest, Avenir Finance, Avenir Telecom, Aviation Latecoere, Awox, Axway Software, Barbara Bui, Bastide Le Confort, Belier, Belvédère, Beneteau, Bic, Bigben Interactive, Biomerieux, Blue Solutions, Boiron, Bollore, Bonduelle, Bourbon, Bourse Direct, Business Et Décision, Cafom, Canal+, Capelli, Cast, Catana Group, Catering Intl Services, Cegedim, Cegereal, Cegid Group, CGG, Chargeurs, Cibox Interactive, CNP Assurances, Coface, Coheris, Compagnie Des Alpes, Cs Communicat. Syst, Dalet Rev. split, Dbv Technologies, Delta Plus Group, Derichebourg, Dernier, Devoteam, Dexia, Diagnostic Medical, Dnxcorp, Eca, Egide, Eiffage, Ekinops, Electricité Et Eaux Madagascar, Elior, Encres Dubuit, Eos Imaging, Eramet, Erytech Pharma, Esi Group, Esso, Euler Hermes Group, Eurazeo, Euro Disney, Euro Ressources, Eurofins Scientific, Euromedis Groupe, Euronext, Europacorp, Exel Industries A, Faiveley, Faurecia, Fermentalg, Fleury Michon, Fonc. Paris Nord, Foncière De Paris, Foncière Des Regions, Gameloft, Gascogne, Gaztrans. techn., Gea Grenobl. elect., Gecina Nominatif, Generix, Genfit, Genomic Vision, Genticel, Gerard Perrier Industrie, GFI Informatique, GL Events, GP Eurotunnel Rgpt, Groupe Crit, Groupe Flo, Groupe Fnac, Groupe Gorge, Groupe Open, Groupe Pizzorno Environnement, Guerbet, Guillemot, Haulotte Group, Havas, Hf Company, Hi Media, High Co, Hubwoo. com, Icade, ID Logistics, Ige + Xao, Imerys, Implanet, Infotel, Ingenico Group, Innate Pharma, Innelec Multimedia, Inside Secure, Interparfums, Intle Plant. heveas, Ipsen, Ipsos, It Link, Itesoft, Its Group, Jacquet Metal Sce, Jcdecaux Sa., Keyrus, Korian medica, Lacroix Sa, Lagardère Sca N, Lanson, Laurent Perrier, LDLC Com, Le Noble Age, Lectra, Lexibook Linguist., Linedata Services, Lisi, Lnc, Maisons France Confort, Manitou Bf, Manutan Intl, Mauna Kea Tech, Maurel Et Prom, Mcphy Energy, Mecelec, Medasys, Medtech, Memscap Regpt, Mercialys, Mersen, Metabolic Explorer, Metropole TV, MGI Coutier, Micropole, Mnd, Montaigne Fashion, Montupet, MPI, Mr Bricolage, N. Dentressangle, Nanobiotix, Naturex, Neopost, NetGem, Neurones, Nexans, Nexity, Nextradiotv, Nicox, NRJ Group, Numericable SFR, Oeneo, Ol Groupe, Onxeo, Orapi, Orco Property Group, Orege, Orpea, Paref, Parrot, Partouche, Pcas, Pharmagest Inter., Pierre Et Vacances, Pixium Vision, Plastic Omnium, Plastivaloire, Precia, Prologue, PSB Industries, Public Systeme Hop, Quantel, Recylex, Rémy Cointreau, Rentabiliweb Group, Rexel, Riber, Rubis, Saft, Sartorius Sted Bio, Scbsm, Seb, Sèche Environnement, Sequana Regpt, Sergeferrari Group, Sii, Soft Computing, Sogeclair, Soitec Silicon, Solocal Group, Solucom, Sopra Steria Group, Spir Communication, SQLI Regpt, St Dupont, Stallergenes, Stef, Stentys, Store Electronic, Supersonic Imagine, Sword Group, Synergie, Tarkett, Technicolor Rgpt, Téléperformance, Terreis, Tessi, TF1, Theolia, Thermador Groupe, Tivoly, Tonn. François Fres, Touax, Toupargel, Transgène, Trigano, Tunn Prado Caren, Txcell, U10, Ubisoft Entertain., Union Fin. France, Union Tech. infor., Valneva, Valtech Rev. split, Vet Affaires, Vetoquinol, Viadeo, Vicat, Vilmorin & Cie, Virbac, Vm Materiaux, Vranken pommery Monopole, Wendel, Xilam Animation, Ymagis, Zublin Immobiliere France] companySuffixes: [SA, SARL, EURL, SAS] companyEmails: [info, contact, mail, ventes, direction] firstNames: male: [Édouard, Élie, Émeric, Émile, Émilien, Épiphane, Éric, Étienne, Aaron, Abélard, Abdon, Abel, Abelin, Abondance, Abraham, Absalon, Acace, Achaire, Achille, Adéodat, Adalard, Adalbéron, Adalbald, Adalbert, Adalric, Adam, Adegrin, Adel, Adelin, Adelphe, Adenet, Adhémar, Adjutor, Adolphe, Adon, Adonis, Adraste, Adrien, Agénor, Agapet, Agathange, Agathon, Agilbert, Agnan, Agnel, Agrippin, Aignan, Aimé, Aimable, Alain, Albéric, Alban, Albert, Albertet, Albin, Alcée, Alcibiade, Alcide, Alcime, Aldémar, Aldéric, Aldebert, Aldegrin, Aldonce, Aldric, Aleaume, Alexandre, Alexis, Almine, Almire, Aloïs, Aloys, Alphée, Alphonse, Alpinien, Alverède, Amédée, Amélien, Amadis, Amalric, Amandin, Amant, Amaury, Amiel, Amour, Anaël, Anastase, Anatole, Ancelin, Andéol, Andelin, André, Angilbe, Angilbert, Angilran, Anglebert, Angoustan, Anicet, Anis, Annibal, Ansbert, Anselme, Antheaume, Anthelme, Anthime, Anthoine, Antide, Antoine, Antonin, Apollinaire, Apollon, Aquilin, Arcade, Archambaud, Archambeau, Archibald, Arian, Ariste, Aristide, Aristion, Armand, Armel, Armin, Arnalde, Arnaud, Arnauld, Arnault, Arnaut, Arnould, Arnoud, Arnoult, Arnout, Arolde, Arsène, Arthème, Arthaud, Arthur, Ascelin, Athanase, Athos, Aubert, Aubertin, Aubin, Aubry, Audebert, Audouin, Audran, Audric, Auguste, Augustin, Aurèle, Aurélien, Aurian, Auxence, Axel, Aymard, Aymeric, Aymon, Aymond, Azel, Bénigne, Béranger, Baptiste, Barnabé, Barthélemy, Basile, Bastien, Baudouin, Benjamin, Benoît, Bernard, Bertrand, Blaise, Bodon, Boniface, Bouchard, Brice, Brieuc, Bruno, Brunon, Côme, Cédric, Célestin, Célien, Césaire, César, Calixte, Calliste, Camélien, Camillien, Candide, Caribert, Carl, Carloman, Cassien, Chamas, Charles, Childebert, Chilpéric, Chrétien, Christian, Christodule, Christophe, Cléandre, Clément, Clarence, Claudien, Clotaire, Clovis, Colas, Colin, Constant, Constantin, Corentin, Cyprien, Cyriaque, Cyril, Désiré, Damien, Daniel, Dannick, David, Denis, Didier, Dieudonné, Dorian, Emmanuel, Ernest, Esteban, Eudes, Eudoxe, Eugène, Eusèbe, Eustache, Félicité, Félix, Fabien, Fabrice, Falba, Ferdinand, Fiacre, Firmin, Flavien, Flodoard, Florent, Florentin, Florian, Fortuné, Foulques, Frédéric, François, Francis, Franck, Fulbert, Fulcran, Fulgence, Gérald, Gérard, Géraud, Gaël, Gabin, Gabriel, Garnier, Gaspard, Gaston, Gatien, Gaud, Gautier, Geoffroy, Georges, Germain, Gervais, Ghislain, Gilbert, Gilles, Girart, Gislebert, Gondebaud, Gonthier, Gontran, Gonzague, Grégoire, Guérin, Gui, Guilhem, Guillaume, Gustave, Guy, Guyot, Gwenael, Hédelin, Hélier, Hardouin, Hector, Henri, Herbert, Herluin, Hervé, Hilaire, Hildebert, Hincmar, Honoré, Hubert, Hugo, Hugues, Igor, Innocent, Isidore, Jérôme, Jérémie, Jacques, Japhet, Jean, Jeannel, Jeannot, Joël, Joachim, Joanny, Job, Jocelyn, Johan, Jonas, Jonathan, Joseph, Josse, Josselin, Jourdain, Jude, Judicaël, Jules, Julien, Juste, Justin, Kevin, Kilian, Léandre, Léo, Léon, Léopold, Létaud, Lambert, Landry, Laurel, Laurent, Leu, Leufroy, Liétald, Lilian, Lionel, Loïc, Lorrain, Lothaire, Louis, Loup, Luc, Lucas, Lucien, Ludolphe, Ludovic, Médéric, Malo, Mamert, Manassès, Marc, Marceau, Marcel, Marcelin, Marius, Martin, Mathias, Mathieu, Mathis, Mathurin, Matthias, Matthieu, Maugis, Maurice, Mauricet, Max, Maxence, Maximilien, Mayeul, Mence, Merlin, Michel, Moïse, Morgan, Néhémie, Naël, Nathan, Naudet, Nestor, Nicolas, Noé, Noël, Noah, Norbert, Norgot, Normand, Océan, Octave, Odilon, Odon, Oger, Olivier, Oscar, Oxlene, Pépin, Pacôme, Pascal, Paterne, Patrice, Paul, Perceval, Philémon, Philibert, Philippe, Pierre, Prosper, Quentin, Régis, Réjean, Rémi, Rémy, Raoul, Raphaël, Raymond, René, Renaud, Reybaud, Richard, Robert, Roch, Rodolphe, Roger, Roland, Roméo, Romain, Romuald, Ronan, Roselin, Sébastien, Séverin, Salomon, Samuel, Savin, Serge, Sidoine, Sigebert, Sigismond, Silvère, Siméon, Simon, Sixte, Stéphan, Stéphane, Stanislas, Sylvain, Sylve, Sylvestre, Tancrède, Tanguy, Taurin, Théo, Théodebert, Théodore, Théodoric, Théophile, Théophraste, Thibault, Thibert, Thierry, Thomas, Timoléon, Timothée, Titien, Tonnin, Trajan, Tristan, Turold, Ulrich, Ulysse, Urbain, Valère, Valéry, Valentin, Venceslas, Victor, Victorien, Victorin, Vincent, Vital, Vivien, Vladimir, Waleran, Walerand, Wandrille, Xavier, Yann, Yannick, Yoann, Yves, Yvon, Zéphir, Zéphirin, Zéphyr, Zaché, Zacharie, Zakaria, Alix, Aloïse, Andoche, Ange, Angelin, Anicée, Anne, Archange, Ariel, Arsinoé, Céleste, Camille, Claude, Dominique, Dorothée, France, Hippolyte, Isabeau, Maxime, Philomène, Philothée, Sacha, Scholastique] female: [Édith, Éléonore, Élia, Éliette, Éliane, Élisabeth, Élise, Éloïse, Élodie, Émeline, Émelyne, Émilie, Éva, Évangéline, Ève, Évelyne, Aélis, Abélie, Abdonie, Abdonise, Abeline, Abelle, Abigaïl, Abigaëlle, Abigaelle, Acaciane, Acacie, Acanthe, Adèle, Adélaïde, Adélice, Adélie, Adalbaude, Adalsinde, Adegrine, Adeline, Adeltrude, Adolphie, Adonise, Adrastée, Adrehilde, Adrienne, Agathe, Agilberte, Aglaé, Agnès, Agnane, Agneflète, Agrippine, Aignane, Aimée, Alaine, Albérade, Albane, Alberte, Albertine, Albine, Alcidie, Alcine, Alcyone, Aldegonde, Aleth, Alexandrine, Alexane, Alexiane, Alexie, Alexine, Aliénor, Alice, Aliette, Aline, Alizé, Aloyse, Alphonsie, Alphonsine, Althée, Améliane, Amélie, Améthyste, Amaliane, Amalthée, Amande, Amandine, Amante, Amarande, Amaranthe, Amaryllis, Amarynthe, Ambre, Ambrine, Ambroisie, Ambroisine, Ameline, Aminte, Anémone, Anaïs, Anaëlle, Anastasia, Anastasiane, Anastasie, Anatolie, Anatoline, Anceline, Andrée, Angélique, Angadrême, Angela, Angeline, Angilberte, Anicette, Annabelle, Annette, Annick, Annie, Annonciade, Ansberte, Anstrudie, Anthelmette, Anthelmine, Antigone, Antoinette, Antonine, Aphélie, Aphrodite, Apolline, Apollonie, Aquiline, Arabelle, Arcadiane, Arcadie, Argine, Ariane, Aricie, Arielle, Arlette, Armance, Armande, Armandie, Armandine, Armeline, Armelle, Armide, Armine, Arminie, Arnaude, Arsènie, Artémis, Arthurine, Asceline, Astérie, Astarté, Astrée, Astride, Athénaïs, Athalie, Athanasie, Athina, Aubane, Aube, Aubertine, Aude, Audeline, Audette, Audrey, Augustine, Aulde, Aurélia, Aurélie, Aurélienne, Aure, Aurelle, Auriane, Aurore, Automne, Auxane, Aveline, Avigaïl, Avigaëlle, Avoye, Avril, Axeline, Axellane, Axelle, Aymardine, Aymonde, Azélie, Azalée, Azeline, Azelle, Béatrice, Béatrix, Bénédicte, Bérangère, Barbe, Bernadette, Berthe, Bertille, Beuve, Blanche, Blandine, Brigitte, Brunehaut, Brunehilde, Cécile, Célestine, Célia, Céline, Capucine, Carine, Caroline, Cassandre, Catherine, Chantal, Charlaine, Charline, Charlotte, Chloé, Christelle, Christiane, Christine, Chrystèle, Clémence, Clémentine, Claire, Clara, Claudie, Clotilde, Coline, Constance, Cora, Coralie, Coraline, Corentine, Corinne, Cosette, Cyrielle, Danièle, Danielle, Daphné, Daphnée, Delphine, Denise, Diane, Dieudonnée, Doriane, Dorice, Dorine, Douce, Edwige, Elena, Ella, Elsa, Emma, Emmanuelle, Emmelie, Emmeline, Ernestine, Estelle, Esther, Eugénie, Eulalie, Eusébie, Félicie, Fanny, Fantine, Faustine, Fernande, Fiona, Flavie, Flore, Florence, Florie, Fortunée, Françoise, Francia, Gaëlle, Gabrielle, Geneviève, Georgette, Gerberge, Germaine, Gertrude, Gisèle, Gisela, Giselle, Gladys, Guenièvre, Guilhemine, Guillemette, Gustaphine, Gustavine, Gwenaëlle, Gwendoline, Gwladys, Hélène, Héloïse, Harmonie, Hedwige, Henriette, Hermione, Hortense, Huguette, Inès, Ines, Ingrid, Irène, Irina, Iris, Isabelle, Isadora, Isaline, Iseult, Isis, Isolde, Iva, Jacinthe, Jacqueline, Jade, Janine, Jeanine, Jeanne, Jehanne, Jehane, Jessica, Joëlle, Jocelyne, Johane, Johanna, Joséphine, Judith, Julia, Julie, Juliette, Justine, Karen, Karine, Léa, Léna, Lénaïc, Lénaïck, Lénaïg, Léonie, Léonne, Laëticia, Laetitia, Laurène, Laura, Laurane, Laure, Laureline, Lauren, Laurence, Lauriane, Laurine, Leila, Lilou, Lison, Lorène, Lorane, Loreline, Lorelyne, Loriane, Lorraine, Lou, Louna, Lune, Lucie, Lucienne, Lucile, Lucille, Ludivine, Luna, Lydia, Lydie, Mégane, Mélanie, Mélina, Méline, Mélisande, Mélisandre, Mélisende, Mélissa, Mélissandre, Mélodie, Mélysandre, Maëlys, Madeleine, Madyson, Magali, Maguelone, Mahault, Mahaut, Malaury, Malhaury, Mallaury, Manon, Marceline, Margaux, Margot, Marguerite, Marie, Marine, Marion, Marlène, Marthe, Martine, Mathilde, Maud, Maureen, Mauricette, Michèle, Micheline, Mireille, Miriam, Moïsette, Monique, Morgane, Muriel, Murielle, Mylène, Myriam, Nadège, Nadia, Nadine, Naomi, Natalie, Nathalie, Nicci, Nicole, Nicolette, Noémie, Noëlie, Noëlla, Noëlle, Nolwen, Nolwenn, Noyale, Océane, Odette, Odile, Olga, Olive, Olivia, Olympe, Ophélie, Oriande, Oriane, Orlane, Ozanne, Pécine, Pélagie, Pénélope, Pétronille, Pascale, Pascaline, Paule, Paulette, Pauline, Perrine, Philippine, Primerose, Priscilla, Priscille, Pulchérie, Quitterie, Régine, Réjeanne, Rachel, Raphaëlle, Raymonde, Rebecca, Renée, Rolande, Rosalie, Rose, Roseline, Roselyne, Ségolène, Séverine, Sabine, Salomé, Sandrine, Sarah, Sibylle, Simone, Sixtine, Solène, Solange, Soleine, Solenn, Soline, Sophie, Stéphanie, Stela, Stella, Suzanne, Suzette, Suzie, Suzon, Sylvaine, Sylviane, Sylvie, Syrine, Tatiana, Théodora, Thérèse, Thaïs, Tiphaine, Ursule, Véronique, Valérie, Valentine, Vanessa, Victoire, Victoria, Victorine, Vinciane, Violette, Virginie, Viviane, Xavière, Yolande, Ysé, Ysaline, Yse, Yseult, Ysoie, Yvette, Yvonne, Zélie, Zéline, Zoé, Alix, Aloïse, Andoche, Ange, Angelin, Anicée, Anne, Archange, Ariel, Arsinoé, Céleste, Camille, Claude, Dominique, Dorothée, France, Hippolyte, Isabeau, Maxime, Philomène, Philothée, Sacha, Scholastique] lastNames: male: [ Martin, Bernard, Thomas, Petit, Robert, Richard, Durand, Dubois, Moreau, Laurent, Simon, Michel, Lefebvre, Leroy, Roux, David, Bertrand, Morel, Fournier, Girard, Bonnet, Dupont, Lambert, Fontaine, Rousseau, Vincent, Muller, Lefevre, Faure, Andre, Mercier, Blanc, Guerin, Boyer, Garnier, Chevalier, Francois, Legrand, Gauthier, Garcia, Perrin, Robin, Clement, Morin, Nicolas, Henry, Roussel, Mathieu, Gautier, Masson, Marchand, Duval, Denis, Dumont, Marie, Lemaire, Noel, Meyer, Dufour, Meunier, Brun, Blanchard, Giraud, Joly, Riviere, Lucas, Brunet, Rang, Gaillard, Barbier, Arnaud, Martinez, Gerard, Roche, Renard, Schmitt, Roy, Leroux, Colin, Vidal, Caron, Picard, Roger, Fabre, Aubert, Lemoine, Renaud, Dumas, Lacroix, Olivier, Philippe, Bourgeois, Pierre, Benoit, Rey, Leclerc, Payet, Rolland, Leclercq, Guillaume, Lecomte, Lopez, Jean, Dupuy, Guillot, Hubert, Berger, Carpentier, Sanchez, Dupuis, Moulin, Louis, Deschamps, Huet, Vasseur, Perez, Boucher, Fleury, Royer, Klein, Jacquet, Adam, Paris, Poirier, Marty, Aubry, Guyot, Carre, Charles, Renault, Charpentier, Menard, Maillard, Baron, Bertin, Rang, Bailly, Herve, Schneider, Fernandez, Le gall, Collet, Leger, Bouvier, Julien, Prevost, Millet, Perrot, Daniel, Le roux, Cousin, Germain, Breton, Besson, Langlois, Remy, Le goff, Pelletier, Leveque, Perrier, Leblanc, Barre, Lebrun, Marchal, Weber, Mallet, Hamon, Boulanger, Jacob, Monnier, Michaud, Rodriguez, Guichard, Gillet, Etienne, Grondin, Poulain, Tessier, Chevallier, Collin, Chauvin, Da silva, Bouchet, Gay, Lemaitre, Benard, Marechal, Humbert, Reynaud, Antoine, Hoarau, Perret, Barthelemy, Cordier, Pichon, Lejeune, Gilbert, Lamy, Delaunay, Pasquier, Carlier, Laporte, Gros, Hamel, Berthier, Letellier, Prevot, Grand, Grandjean, Benoist, Leblond, Gosselin, Leleu, Comte, Favier, Bellanger, Martinet, Billard, Rault, Geoffroy, Forestier, Blondeau, Roques, Ricard, Pommier, Boulet, Drouet, Poisson, Maire, Mounier, Gueguen, Combes, Huguet, Morand, Leonard, Ledoux, Prat, Dubreuil, Fortin, Ferre, Rigaud, Brossard, Picot, Granger, Merlin, Laval, Claude, Marquet, Mouton, Brault, Jeanne, Marc, Levasseur, Le roy, Guillemin, Bocquet, Constant, Pujol, Lavigne, Bauer, Hoffmann, Chatelain, Lacour, Jung, Jamet, Lallemand, Walter, Basset, Provost, Salaun, Rang, Tellier, Gibert, Martins, Rose, Navarro, Grange, Lepage, Bouquet, Keller, Techer, Jolly, Tournier, Guillard, Papin, Bataille, Lelong, Cartier, Leon, Champion, Dujardin, Dumoulin, Lasserre, Flament, Husson, Schmidt, Le bihan, Kieffer, Millot, Le guen, Ferry, Bourdin, Mangin, Gicquel, Cadet, Soulier, Mignot, Barret, Bureau, Leray, Fort, Barreau, Mas, Lafont, Bouchard, Jolivet, Savary, Foulon, Guillemot, Costa, Armand, Blaise, Binet, Montagne, Jullien, Berard, Vacher, Saunier, Dupin, Thiebaut, Schwartz, Felix, Sellier, Lagrange, Lefrancois, Andrieux, Lalanne, Berthet, Rang, Payen, Lavergne, Jouan, Cornet, Combe, Lang, Poulet, Granier, Zimmermann, Lebeau, Bayle, Vigneron, Terrier, Bon, Lecocq, Esnault, Bordes, Sarrazin, Le borgne, Jouve, Lauret, Le floch, Godefroy, Prieur, Lemarchand, Vernet, Vivier, Aubin, Faucher, Ducrocq, Dore, Lamotte, Thiery, Jacquemin, Arnould, Bastien, Thery, Couderc, Duchene, Quere, Chevrier, Cochet, Villard, Corre, Prost, Bois, Magnier, Monier, Grosjean, Tardy, Gimenez, Caillaud, Guignard, Lefranc, Beaumont, Le berre, Tissier, Rouxel, Bonnard, Le gal, Sergent, Crepin, Lesueur, Marques, Roth, Wolff, Buisson, Ollivier, Briand, Alexandre, Georges, Guillou, Besnard, Legros, Gonzalez, Coulon, Maillot, Albert, Camus, Delattre, Launay, Hebert, Lesage, Blanchet, Didier, Voisin, Pons, Bousquet, Coste, Vallee, Jacques, Martel, Maury, Raynaud, Barbe, Pascal, Bigot, Verdier, Charrier, Sauvage, Guillet, Mahe, Leduc, Lelievre, Gregoire, Joubert, Masse, Delmas, Morvan, Lebreton, Tanguy, Pineau, Lebon, Gaudin, Colas, Imbert, Paul, Raymond, Guillon, Brunel, Regnier, Ferrand, Hardy, Devaux, Courtois, Bodin, Chauvet, Allard, Blondel, Laine, Delorme, Seguin, Rang, Lenoir, Berthelot, Bonneau, Pereira, Thibault, Lacombe, Riou, Lagarde, Clerc, Bruneau, Godard, Vaillant, Couturier, Gomez, Jourdan, Pages, Valentin, Lombard, Mary, Blin, Texier, Rossi, Marion, Allain, Guilbert, Maurice, Baudry ] female: [ Martin, Bernard, Thomas, Petit, Robert, Richard, Durand, Dubois, Moreau, Laurent, Simon, Michel, Lefebvre, Leroy, Roux, David, Bertrand, Morel, Fournier, Girard, Bonnet, Dupont, Lambert, Fontaine, Rousseau, Vincent, Muller, Lefevre, Faure, Andre, Mercier, Blanc, Guerin, Boyer, Garnier, Chevalier, Francois, Legrand, Gauthier, Garcia, Perrin, Robin, Clement, Morin, Nicolas, Henry, Roussel, Mathieu, Gautier, Masson, Marchand, Duval, Denis, Dumont, Marie, Lemaire, Noel, Meyer, Dufour, Meunier, Brun, Blanchard, Giraud, Joly, Riviere, Lucas, Brunet, Rang, Gaillard, Barbier, Arnaud, Martinez, Gerard, Roche, Renard, Schmitt, Roy, Leroux, Colin, Vidal, Caron, Picard, Roger, Fabre, Aubert, Lemoine, Renaud, Dumas, Lacroix, Olivier, Philippe, Bourgeois, Pierre, Benoit, Rey, Leclerc, Payet, Rolland, Leclercq, Guillaume, Lecomte, Lopez, Jean, Dupuy, Guillot, Hubert, Berger, Carpentier, Sanchez, Dupuis, Moulin, Louis, Deschamps, Huet, Vasseur, Perez, Boucher, Fleury, Royer, Klein, Jacquet, Adam, Paris, Poirier, Marty, Aubry, Guyot, Carre, Charles, Renault, Charpentier, Menard, Maillard, Baron, Bertin, Rang, Bailly, Herve, Schneider, Fernandez, Le gall, Collet, Leger, Bouvier, Julien, Prevost, Millet, Perrot, Daniel, Le roux, Cousin, Germain, Breton, Besson, Langlois, Remy, Le goff, Pelletier, Leveque, Perrier, Leblanc, Barre, Lebrun, Marchal, Weber, Mallet, Hamon, Boulanger, Jacob, Monnier, Michaud, Rodriguez, Guichard, Gillet, Etienne, Grondin, Poulain, Tessier, Chevallier, Collin, Chauvin, Da silva, Bouchet, Gay, Lemaitre, Benard, Marechal, Humbert, Reynaud, Antoine, Hoarau, Perret, Barthelemy, Cordier, Pichon, Lejeune, Gilbert, Lamy, Delaunay, Pasquier, Carlier, Laporte, Gros, Hamel, Berthier, Letellier, Prevot, Grand, Grandjean, Benoist, Leblond, Gosselin, Leleu, Comte, Favier, Bellanger, Martinet, Billard, Rault, Geoffroy, Forestier, Blondeau, Roques, Ricard, Pommier, Boulet, Drouet, Poisson, Maire, Mounier, Gueguen, Combes, Huguet, Morand, Leonard, Ledoux, Prat, Dubreuil, Fortin, Ferre, Rigaud, Brossard, Picot, Granger, Merlin, Laval, Claude, Marquet, Mouton, Brault, Jeanne, Marc, Levasseur, Le roy, Guillemin, Bocquet, Constant, Pujol, Lavigne, Bauer, Hoffmann, Chatelain, Lacour, Jung, Jamet, Lallemand, Walter, Basset, Provost, Salaun, Rang, Tellier, Gibert, Martins, Rose, Navarro, Grange, Lepage, Bouquet, Keller, Techer, Jolly, Tournier, Guillard, Papin, Bataille, Lelong, Cartier, Leon, Champion, Dujardin, Dumoulin, Lasserre, Flament, Husson, Schmidt, Le bihan, Kieffer, Millot, Le guen, Ferry, Bourdin, Mangin, Gicquel, Cadet, Soulier, Mignot, Barret, Bureau, Leray, Fort, Barreau, Mas, Lafont, Bouchard, Jolivet, Savary, Foulon, Guillemot, Costa, Armand, Blaise, Binet, Montagne, Jullien, Berard, Vacher, Saunier, Dupin, Thiebaut, Schwartz, Felix, Sellier, Lagrange, Lefrancois, Andrieux, Lalanne, Berthet, Rang, Payen, Lavergne, Jouan, Cornet, Combe, Lang, Poulet, Granier, Zimmermann, Lebeau, Bayle, Vigneron, Terrier, Bon, Lecocq, Esnault, Bordes, Sarrazin, Le borgne, Jouve, Lauret, Le floch, Godefroy, Prieur, Lemarchand, Vernet, Vivier, Aubin, Faucher, Ducrocq, Dore, Lamotte, Thiery, Jacquemin, Arnould, Bastien, Thery, Couderc, Duchene, Quere, Chevrier, Cochet, Villard, Corre, Prost, Bois, Magnier, Monier, Grosjean, Tardy, Gimenez, Caillaud, Guignard, Lefranc, Beaumont, Le berre, Tissier, Rouxel, Bonnard, Le gal, Sergent, Crepin, Lesueur, Marques, Roth, Wolff, Buisson, Ollivier, Briand, Alexandre, Georges, Guillou, Besnard, Legros, Gonzalez, Coulon, Maillot, Albert, Camus, Delattre, Launay, Hebert, Lesage, Blanchet, Didier, Voisin, Pons, Bousquet, Coste, Vallee, Jacques, Martel, Maury, Raynaud, Barbe, Pascal, Bigot, Verdier, Charrier, Sauvage, Guillet, Mahe, Leduc, Lelievre, Gregoire, Joubert, Masse, Delmas, Morvan, Lebreton, Tanguy, Pineau, Lebon, Gaudin, Colas, Imbert, Paul, Raymond, Guillon, Brunel, Regnier, Ferrand, Hardy, Devaux, Courtois, Bodin, Chauvet, Allard, Blondel, Laine, Delorme, Seguin, Rang, Lenoir, Berthelot, Bonneau, Pereira, Thibault, Lacombe, Riou, Lagarde, Clerc, Bruneau, Godard, Vaillant, Couturier, Gomez, Jourdan, Pages, Valentin, Lombard, Mary, Blin, Texier, Rossi, Marion, Allain, Guilbert, Maurice, Baudry ] street: [ "Rue de l'Église", "Place de l'Église", Grande Rue, Rue du Moulin, Place de la Mairie, Rue du Château, Rue des Écoles, Rue de la Gare, Rue de la Mairie, Rue Principale, Rue du Stade, Rue de la Fontaine, Rue Pasteur, Rue des Jardins, Rue Victor-Hugo ] postal_code: ['#####'] city: [Paris, Marseille, Lyon, Toulouse, Nice, Nantes, Strasbourg, Montpellier, Bordeaux, Lille, Rennes, Reims, Le Havre, Saint-Étienne, Toulon, Grenoble, Dijon, Angers, Nîmes, Villeurbanne, Saint-Denis, Le Mans, Clermont-Ferrand, Aix-en-Provence, Brest, Limoges, Tours, Amiens, Perpignan, Metz, Boulogne-Billancourt, Besançon, Orléans, Rouen, Mulhouse, Caen, Saint-Denis, Nancy, Argenteuil, Saint-Paul, Montreuil, Roubaix, Tourcoing, Dunkerque, Nanterre, Créteil, Avignon, Vitry-sur-Seine, Poitiers, Courbevoie, Fort-de-France, Versailles, Colombes, Asnières-sur-Seine, Aulnay-sous-Bois, Saint-Pierre, Rueil-Malmaison, Pau, Aubervilliers, Champigny-sur-Marne, Le Tampon, Antibes, Saint-Maur-des-Fossés, La Rochelle, Cannes, Béziers, Calais, Saint-Nazaire, Colmar, Drancy, Bourges, Mérignac, Ajaccio, Issy-les-Moulineaux, Levallois-Perret, La Seyne-sur-Mer, Quimper, Noisy-le-Grand, Valence, "Villeneuve-d'Ascq", Neuilly-sur-Seine, Antony, Vénissieux, Cergy, Troyes, Clichy, Pessac, Les Abymes, Ivry-sur-Seine, Chambéry, Lorient, Niort, Sarcelles, Montauban, Villejuif, Saint-Quentin, Hyères, Cayenne, Épinay-sur-Seine, Saint-André, Beauvais, Maisons-Alfort, Cholet, Meaux, Chelles, Pantin, Fontenay-sous-Bois, La Roche-sur-Yon, Bondy, Vannes, Saint-Louis, Fréjus, Arles, Clamart, Évry, Le Blanc-Mesnil, Narbonne, Sartrouville, Grasse, Annecy, Laval, Belfort, Vincennes, Charleville-Mézières, Évreux, Sevran, Albi, Montrouge, Bobigny, Martigues, Saint-Ouen, Brive-la-Gaillarde, Suresnes, Carcassonne, Cagnes-sur-Mer, Corbeil-Essonnes, Saint-Brieuc, Blois, Bayonne, Aubagne, Châlons-en-Champagne, Meudon, Châteauroux, Saint-Malo, Chalon-sur-Saône, Sète, Puteaux, Alfortville, Salon-de-Provence, Massy, Mantes-la-Jolie, Bastia, Vaulx-en-Velin, Saint-Herblain, Le Cannet, Valenciennes, Istres, Gennevilliers, Boulogne-sur-Mer, Livry-Gargan, Saint-Priest, Rosny-sous-Bois, Caluire-et-Cuire, Angoulême, Douai, Tarbes, Wattrelos, Castres, Choisy-le-Roi, Talence, Thionville, Arras, Alès, Garges-lès-Gonesse, Gap, Saint-Laurent-du-Maroni, Melun, Bourg-en-Bresse, Noisy-le-Sec, Compiègne, La Courneuve, Le Lamentin, Marcq-en-Barœul, Saint-Germain-en-Laye, Rezé, Bron, Anglet, Gagny, Chartres, Bagneux, "Saint-Martin-d'Hères", Montluçon, Pontault-Combault, Poissy, Draguignan, Joué-lès-Tours, Savigny-sur-Orge, Cherbourg-Octeville, Saint-Joseph, Le Port, Colomiers, Saint-Martin, Villefranche-sur-Saône, Stains, Saint-Benoît, Échirolles, Villepinte, Roanne, Montélimar, Saint-Chamond, Nevers, Conflans-Sainte-Honorine, Auxerre, Sainte-Geneviève-des-Bois, Châtillon, Bagnolet, Vitrolles, Thonon-les-Bains, Neuilly-sur-Marne, Haguenau, Marignane, Saint-Raphaël, Tremblay-en-France, La Ciotat, Six-Fours-les-Plages, Creil, Agen, Romans-sur-Isère, Montigny-le-Bretonneux, Le Perreux-sur-Marne, Franconville, Annemasse, Villeneuve-Saint-Georges, Saint-Leu, Mâcon, Cambrai, Lens, Houilles, Épinal, Châtenay-Malabry, Schiltigheim, Sainte-Marie, Liévin, Châtellerault, Meyzieu, Goussainville, Viry-Châtillon, Dreux, "L'Haÿ-les-Roses", Plaisir, Mont-de-Marsan, Maubeuge, Nogent-sur-Marne, Les Mureaux, Clichy-sous-Bois, La Possession, Dieppe, Chatou, Vandœuvre-lès-Nancy, Malakoff, Palaiseau, Pontoise, Charenton-le-Pont] country: [France] personalEmails: [ gmail.com, yahoo.com, yahoo.fr, free.fr, orange.fr, laposte.net, hotmail.fr ] telephone_number_formats: ["0#########"] text: "Quoique ce détail ne touche en aucune manière au fond même de ce que nous avons à raconter, il n’est peut-être pas inutile, ne fût-ce que pour être exact en tout, d’indiquer ici les bruits et les propos qui avaient couru sur son compte au moment où il était arrivé dans le diocèse. Vrai ou faux, ce qu’on dit des hommes tient souvent autant de place dans leur vie et souvent dans leur destinée que ce qu’ils font. M. Myriel était fils d’un conseiller au parlement d’Aix ; noblesse de robe. On contait que son père, le réservant pour hériter de sa charge, l’avait marié de fort bonne heure, à dix-huit ou vingt ans, suivant un usage assez répandu dans les familles parlementaires. Charles Myriel, nonobstant ce mariage, avait, disait-on, beaucoup fait parler de lui. Il était bien fait de sa personne, quoique d’assez petite taille, élégant, gracieux, spirituel ; toute la première partie de sa vie avait été donnée au monde et aux galanteries. La révolution survint, les événements se précipitèrent ; les familles parlementaires, décimées, chassées, traquées, se dispersèrent. M. Charles Myriel, dès les premiers jours de la révolution, émigra en Italie. Sa femme y mourut d’une maladie de poitrine dont elle était atteinte depuis longtemps. Ils n’avaient point d’enfants. Que se passa-t-il ensuite dans la destinée de M. Myriel ? L’écroulement de l’ancienne société française, la chute de sa propre famille, les tragiques spectacles de 93, plus effrayants encore peut-être pour les émigrés qui les voyaient de loin avec le grossissement de l’épouvante, firent-ils germer en lui des idées de renoncement et de solitude ? Fut-il, au milieu d’une de ces distractions et de ces affections qui occupaient sa vie, subitement atteint d’un de ces coups mystérieux et terribles qui viennent quelquefois renverser, en le frappant au cœur, l’homme que les catastrophes publiques n’ébranleraient pas en le frappant dans son existence et dans sa fortune ? Nul n’aurait pu le dire ; tout ce qu’on savait, c’est que, lorsqu’il revint d’Italie, il était prêtre.\n" defaultCountryCode: 'FR' language: 'FR' ================================================ FILE: src/main/resources/jfairy_it.yml ================================================ alphabet: abcdefghijklmnopqrstuvwxyz domains: [com, org, it] firstNames: { male: [Andrea, Luca, Marco, Francesco, Matteo, Alessandro, Davide, Simone, Federico, Lorenzo, Mattia, Stefano, Giuseppe, Riccardo, Daniele, Michele, Alessio, Antonio, Giovanni, Nicola, Gabriele, Fabio, Alberto, Giacomo, Giulio, Filippo, Gianluca, Paolo, Roberto, Salvatore, Emanuele, Edoardo, Enrico, Vincenzo, Nicolò, Leonardo, Jacopo, Manuel, Mirko, Tommaso, Pietro, Luigi, Giorgio, Angelo, Dario, Valerio, Domenico, Claudio, Alex, Christian], female: [Giulia, Chiara, Francesca, Federica, Sara, Martina, Valentina, Alessia, Silvia, Elisa, Ilaria, Eleonora, Rosy, Giorgia, Elena, Laura, Alice, Alessandra, Jessica, Arianna, Marta, Veronica, Roberta, Anna, Giada, Claudia, Beatrice, Valeria, Michela, Serena, Camilla, Irene, Cristina, Simona, Maria, Noemi, Stefania, Erika, Sofia, Lucia, Vanessa, Greta, Debora, Nicole, Angela, Paola, Caterina, Monica, Erica, Lisa, Gaia] } lastNames: { male: [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, DeSantis, 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, Festa, Vitali, Battaglia, Sartori, Neri, Costantini, Milani, Pagano, Ruggiero, Sorrentino, D'Amico, Orlando, Negri], female: [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, DeSantis, 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, Festa, Vitali, Battaglia, Sartori, Neri, Costantini, Milani, Pagano, Ruggiero, Sorrentino, D'Amico, Orlando, Negri] } personalEmails: [gmail.com, libero.it, outlook.it, virgilio.it] companyNames: [Alist, Beans, Klein, Felics, Adapt, MemorTech, Porta, SuperMemo, Nonos, Vitae, Woods, Quisuc, Quicker, Interdem, Morsem, Datastore, Linger, Buapel, Terson, Gualas, Yrsa, Warst, Erntogra, Robutenia, QuickLink, Furba, Hostes, FlyHigh] companySuffixes: [SpA, srl, snc, sas] companyEmails: [info, segreteria, personale, direzione, amministrazione, magazzino] text: Nel mezzo del cammin di nostra vita mi ritrovai per una selva oscura, ché la diritta via era smarrita. Ahi quanto a dir qual era è cosa dura esta selva selvaggia e aspra e forte che nel pensier rinova la paura! Tant’è amara che poco è più morte; ma per trattar del ben ch’i’ vi trovai, dirò de l’altre cose ch’i’ v’ ho scorte. telephone_number_formats: ['##-#######', '###-#######'] postal_code: ['#####'] city: [Roma, Milano, Torino, Napoli, Frattamaggiore, Venezia, Porto S. Elpidio, S. Nicola Arcella] street: [Via Roma, P.zza Italia, L.go Augusto, Via G. Matteotti, Piazza G. Cesare, Corso Italia, Corso Mediterraneo, P.zza Aspromonte, Via Caduti di Guerra, Via Miseno, Via Lambro, Via A. Diaz] country: ['Italia', 'Francia', 'Germania', 'Spagna'] language: 'IT' ================================================ FILE: src/main/resources/jfairy_ka.yml ================================================ alphabet: აბგდევზთიკლმნოპჟრსტუფქღყშჩცძწჭხჯჰ domains: [ge, com.ge, org.ge, net.ge] firstNames: { male: [აბელ, აბრაამ, აბრამ, ადამ, აქაქი, ალექსანდრე, ამბროსი, ამირან, ანდრია, ანდრო, ანრი, ანზორ, არჩილ, ავქსენტი, ავთანდილ, ავთო, ბაადურ, ბადრი, ბაგრატ, ბესარიონ, ბესო, ბიძინა, ბორის, დანიელ, დავით, დავითი, ედუარდ, ერეკლე, გაიოზ, გენადი, გიორგი, გივი, გოჩა, გოგა, გრიგოლ, გურგენ, იაკობ, ილია, იმედა, იოანე, იონა, იოსებ, ირაკლი, ისიდორე, იური, ივანე, კობა, კონსტანტინე, კორნელი, ლადო, ლევან, ლუკა, მალხაზ, მალხაზი, მამუქა, მათე, მელითონ, მერაბ, მიხეილ, მიშო, მურთაზ, ნიკა, ნიკოლოზ, ნიკუშა, ოქროპირ, ოთარ, პავლე, პეტრე, ფრიდონ, ფრიდონი, რამაზ, რამაზი, რევაზ, რევაზი, რეზიკო, როსტომ, საბა, სანდრო, სიმონ, სიმონი, სოსო, სპარტაკ, სტეფანე, თამაზ, თამაზი, თედორე, თეიმურაზ, თეიმურაზი, თემო, თემურ, თემური, თენგიზ, ტერენტი, თომა, თორნიკე, ვახტანგ, ვალერი, ვალერიან, ვანო, ვასილ, ვასო, ვაჟა, ვეფხია, ვლადიმერ, ზაალ, ზაქარია, ზურაბ, ზვიად, ზვიადი], female: [ანა, ანი, ბედისა, დარეჯან, დარეჯანი, ეკა, ეკატერინე, ელენე, ელისაბედ, ელისო, ენძელა, ეთერი, ევა, გულისა, გულნაზ, ირინა, ირინე, ირმა, იზოლდა, ქეთევან, ქეთი, ქეთო, ხათუნა, ლალი, ლეილა, ლია, მადონა, მაია, მაყვალა, მანანა, მარიამ, მარიამი, მარინა, მარინე, მართა, მედეა, მერი, მზია, ნანა, ნანული, ნატალია, ნათელა, ნათია, ნესტან, ნესტანი, ნინო, რუსიკო, რუსუდან, რუსუდანი, სალომე, სოფიო, თამარ, თამარი, ტატიანა, თეკლა, თინათინ, თინათინი, ცისანა, ცისია, ციური, ვარდო] } lastNames: { male: [აბაკელია, აბაზასძე, აბრამიძე, აბულეთისძე, აგიაშვილი, ახალაია, ალასანია, ალექსიძე, ამირეჯიბი, ამირხანაშვილი, ანდრონიკაშვილი, აფაქიძე, არახამია, არზიანი, ასლანიშვილი, ავალიშვილი, ბაბადიშვილი, ბაგრატიონი დავითაშვილი, ბახია, ბაქრაძე, ბალანჩივაძე, ბანძელაძე, ბარნაბიშვილი, ბესტავაშვილი, ბოჭორიშვილი, ბოლქვაძე, ბურჭულაძე, ბუკია, ბასილია, ჩაჩხიანი, ჩარკვიანი, ჩერქეზიშვილი, ჩიჩუა, ჭკადუა, ჩხეტიძე, ჩახუნაშვილი, ჩხეიძე, დადეშქელიანი, დარსალია, დავითულიანი, დიასამიძე, დონაური, ჯუღაშვილი, გურიის ერისთავი, ესაძე, გაბაშვილი, გახარია, გარსევანიშვილი, გამსახურდია, გელაძე, გიორგაძე, ღლონტი, გოგოლაძე, გრუზინსკი, გურამიშვილი, გურული, გვაზავა, ღურწკაია, იოსელიანი, იაშვილი, ილურიძე, ივანიშვილი, ჯალაღონია, ჯანაშია, ჯაფარიძე, ჯავახიშვილი, ჯელაძე, ჯინჯიხაშვილი, ჯორჯაძე, ჯუღაშვილი, ყალიჩავა, კასრაძე, კერესელიძე, ხარაიშვილი, ხომერიკი, ხუჯაძე, კიკნაძე, ქობალია, კოტრიკაძე, კვერნაძე, ხერხეულიძე, ხიმშიაშვილი, ხინჩეგაშვილი, კობახია, ქობულაშვილი, კოდოშვილი, კურტანიძე, ლიჩელი, ლიპარტელიანი, ლორთქიფანიძე, მონავარდისაშვილი, მაჭავარიანი, მაღალაშვილი, მამალაძე, მჭედლიშვილი, მელიქიშვილი, მელუა, მესხი, მილდიანი, მუსელიანი, მჟავანაძე, ნაკაშიძე, ნემსაძე, ნიჟარაძე, ოჩიაური, ორბელიანი, ოქროპირიძე, ფანქველაშვილი, პატარაია, პატარკაციშვილი, ფავლენიშვილი, ფხეიძე, რაზმაძე, რეხვიაშვილი, რუსიეშვილი, სააკაძე, საბაური, სარალიძე, საკანდელიძე, შენგელია, შეთეკაური, შველიძე, სიდამონ-ერისთავი, სოლოღაშვილი, შუშანია, სვანაძე, თარხნიშვილი, წერეთელი, ციციშვილი, წულუკიძე, ტუღუში, ტუსიშვილი, ცენტერაძე, უნდილაძე, ვაჩნაძე, ვარდანიძე, ვირსალაძე, ზალკალიანი, ზაქარაშვილი, ზაქარიაძე, ზუმაძე, ზურაბიანი, ზოიძე, ზვიადაძე], female: [აბაშიძე, აფხაზი, აბულაძე, აბუსელიძე, ახალკაცი, ახვლედიანი, ალავიძე, ამილახვარი, ამირანაშვილი, ანჩაბაძე, ანჯაფარიძე, არაბიძე, არველაძე, ასათიანი, ავალიანი, ათანაშვილი, ბაგრატიონი, ბაგრატიონი მუხრანელი, ბახსოლიანი, ბალახაძე, ბალავაძე, ბარათაშვილი, ბერიძე, ბინიაშვილი, ბოკუჩავა, ბოტკოველი, ბობოხიძე, ბუხრაშვილი, ჭაბუკიანი, ჭანტურია, ჭავჭავაძე, ჭიაურელი, ჩიქოვანი, ჭყონია, ჩოლოყაშვილი, ჩხაიძე, დადიანი, დარჩიძე, დავითაია, დგებუაძე, დოლიძე, დონღვანი, არაგვის ერისთავი, რაჭის ერისთავი, გოგოლაური, გაგუა, განძიელი-გეგელია, გამყრელიძე, გედევანიშვილი, გელოვანი, გიორგობიანი, გლოველი, გოცირიძე, გუგუნავა, გურგენიძე, გურიელი, გვასალია, გოგოლიძე, იარაჯული, იოსავა, იმედაშვილი, ჯამბაკურ-ორბელიანი, ჯანანაშვილი, ჯანდიერი, ჯაყელი, ჯავრიშვილი, ჯიბუტი, ჯიშკარიანი, ჯუანშერიანი, კახაბერიძე, კაპანაძე, ყაზბეგი, ქაშიბაძე, ხარძიანი, ხუციშვილი, ხურცილავა, ყიფიანი, ქორიძე, კვარაცხელია, კვეკვეცია, ხიდირბეგიშვილი, ხინჩაგაშვილი, ხინჩიგაშვილი, კობახიძე, ქოჩაკიძე, კუბლაშვილი, ლაზარაშვილი, ლეონიძე, ლობჟანიძე, ლალიაშვილი, მაჩაბელი, მაჭუტაძე, მაისურაძე, მანველიშვილი, მდივანი, მელქაძე, მენთეშაშვილი, მიქელაძე, მხეიძე, მუხრანელი, ნაკანი, ნანავა, ნიკოლაძე, ნოღაიდელი, ონიანი, ოკინაშვილი, ორჯონიკიძე, ფალავანდიშვილი, პატარავა, პერტახია, ფირცხალაიშვილი, რაფავა, რევაზიშვილი, როყვა, რუხაძე, სააკაშვილი, სანიკიძე, შაბურიძე, შალიკაშვილი, შერვაშიძე, შევარდნაძე, სიჭინავა, სიხარულიძე, სუხიშვილი, სვანიძე, თაბაგარი, თავდგირიძე, ცინცაძე, ცქიტიშვილი, თორელი, თუმანიშვილი, თავხელიძე, უჯმაჯურიძე, ურუშაძე, ვახვახიშვილი, ვეზირიშვილი, ზამბახიძე, ზამთარაძე, ზაქარეიშვილი, ზიბზიბაძე, ზურაბაშვილი, ჟორჟოლიანი, ზოტიკიშვილი] } personalEmails: [gmail.com, yahoo.com] companyNames: [ბადაგონი, კაუკასუს ონლაინი, ქუთაისის ავტომექანიკური, მაგთიკომი, რუსთავის მეტალურგიული, თელასი, ვისოლის ნავთობი, ჯეოსელი] companySuffixes: [კომპანია, კონსულტაცია, იმეილი, ქარხანა, შეზღუდულია] companyEmails: [info, contact, office] text: კაცს ქალი რყვნის, არცერთი მამამკაცი, და მათ შორს არც მაიორიც, არასდროს არ იტყვის უარს,თუკი ქალი დაუძახებს და თუკი ქალს ეს საქმე სხვებზე უკეთესად გამოსდის. ანას ქმრის მკლავებს მზისა და მიწის სურნელი დიოდა,და როდესაც ანას ამ მკლავებში ეძინა,მშობლები ახსენდებოდა,რომლების არასდროს ენახა, შიშნარევ ნეტარებსას განიცდიდა ხოლმე ამ დროს და ასე ნელ-ნელა ცრემლდანთხეული ქალდებოდა ერთადერთი პატრონის მხურვალე მკლავებში. ყველა ბავშვმა იცის,რომ სადაც დედა იქ მამაც უნდა იყოს, ეს მისი თანდაყოლილი ცოდნაა და ამავე დროს საფუძველიც ყველაფრისა, რაც მერე უნდა დახოს და შეისწავლოს. უიარაღო კაცს სალამსაც კი ამადლიან, როცა იარაღის მქონეს და მომხმარებელს მიწამდე უკრავენ თავს. telephone_number_formats: ['###-###-###'] postal_code: ['####'] city: [თბილისი, ბათუმი, ქუთაისი, რუსთავი, გორი, ზუგდიდი, ფოთი, ხაშური, სამტრედია, სენაკი, ზესტაფონი, მარნეული, თელავი, ახალციხე, ქობულეთი, ოზურგეთი, კასპი, ჭიათურა, წყალტუბო, საგარეჯო, გარდაბანი, ბორჯომი] street: [გორკის ქუჩა, ჩეხოვის ქუჩა, რუსთაველის გამზირი, თვენსიქსი მაისის მოედანი, ფერდინანდ თავაძის ქუჩა, ჭავჭავაძის გამზირი, კოსტავას, აგლაძის ქუჩა, თამარ მეფის ქუჩა, დავით აღმაშენებლის გამზირი, ვაჟა–ფშაველას გამზირი, გრიბოედოვის ქუჩა, კაკუცა ჩოლოყაშვილის გამზირი, ნინოშვილის ქუჩა, პოლიტკოვსკაიას ქუჩა, სულხან ცინცაძის ქუჩა, ქეთევან წამებულის გამზირი, მეფე სოლომონ II-ის ქუჩა] country: ['Georgia'] #'USA', 'Russia', 'Greece', 'Turkey' language: 'KA' ================================================ FILE: src/main/resources/jfairy_pl.yml ================================================ alphabet: aąbcćdeęfghijklłmnoóprsśtuwyzżź domains: [pl, com, eu, com.pl] firstNames: { male: [Adam, Adrian, Aleksander, Antoni, Bartłomiej, Bartosz, Dawid, Dominik, Filip, Franciszek, Igor, Jan, Jakub, Kacper, Kamil, Karol, Krzysztof, Maciej, Maksymilian, Mateusz, Michał, Mikołaj, Oskar, Patryk, Paweł, Piotr, Stanisław, Szymon, Tomasz, Wiktor, Wojciech], female: [Aleksandra, Alicja, Anna, Dominika, Emilia, Hanna, Joanna, Julia, Karolina, Katarzyna, Kinga, Klaudia, Magdalena, Maja, Małgorzata, Maria, Marta, Martyna, Natalia, Oliwia, Patrycja, Paulina, Weronika, Wiktoria, Zofia, Zuzanna] } lastNames: { male: [Adamiec, Aleksandrowicz, Antkowiak, Banaszak, Barszcz, Bator, Białek, Biernat, Biliński, Bobrowski, Bochenek, Bogdański, Bojarski, Burek, Błaszczyk, Chojnowski, Cichoń, Czech, Czekaj, Dolata, Domagalski, Dominiak, Drewniak, Godlewski, Izdebski, Jabłoński, Jakubczyk, Jakubiak, Janicki, Janusz, Jarząbek, Jędrzejczyk, Kaczmarek, Kaniewski, Kaźmierczak, Kisiel, Kochański, Kowalewski, Kozak, Kozioł, Krzyżanowski, Król, Kujawski, Kulig, Lenart, Majkowski, Malik, Marczak, Mikołajczyk, Mroczek, Mrozek, Murawski, Nawrocki, Nowicki, Okoń, Olszak, Osiński, Paradowski, Paszkowski, Piech, Piwowarski, Porębski, Radziszewski, Rak, Reszka, Roszak, Rusek, Rutkowski, Różański, Różycki, Sadowski, Serafin, Siedlecki, Skibiński, Skoczylas, Skowron, Skowronek, Stachura, Stelmach, Stępień, Szostak, Słomiński, Traczyk, Trzciński, Urbanek, Urbanowicz, Wdowiak, Wilczyński, Witek, Więcek, Wojciechowski, Wojtasik, Woźny, Wójtowicz, Zagórski, Zalewski, Zawada, Zborowski, Żuchowski], female: [Adamiec, Aleksandrowicz, Antkowiak, Banaszak, Barszcz, Bator, Białek, Biernat, Bilińska, Bobrowska, Bochenek, Bogdańska, Bojarska, Burek, Błaszczyk, Chojnowska, Cichoń, Czech, Czekaj, Dolata, Domagalska, Dominiak, Drewniak, Godlewska, Izdebska, Jabłońska, Jakubczyk, Jakubiak, Janicka, Janusz, Jarząbek, Jędrzejczyk, Kaczmarek, Kaniewska, Kaźmierczak, Kisiel, Kochańska, Kowalewski, Kozak, Kozioł, Krzyżanowska, Król, Kujawska, Kulig, Lenart, Majkowska, Malik, Marczak, Mikołajczyk, Mroczek, Mrozek, Murawska, Nawrocka, Nowicka, Okoń, Olszak, Osińska, Paradowska, Paszkowska, Piech, Piwowarska, Porębska, Radziszewska, Rak, Reszka, Roszak, Rusek, Rutkowska, Różańska, Różycka, Sadowska, Serafin, Siedlecka, Skibińska, Skoczylas, Skowron, Skowronek, Stachura, Stelmach, Stępień, Szostak, Słomińska, Traczyk, Trzcińska, Urbanek, Urbanowicz, Wdowiak, Wilczyńska, Witek, Więcek, Wojciechowska, Wojtasik, Woźna, Wójtowicz, Zagórska, Zalewska, Zawada, Zborowska, Żuchowska] } personalEmails: [gmail.com, yahoo.com, poczta.onet.pl, interia.pl, tlen.pl, wp.pl] companyNames: [AB, AC, Achem, Action, Adamed, Adanex, Aflofarm, Agata Meble, Agnella, Agrecol, Amica, Amplus, Apart, Arcabit, Asseco Poland, Atlas, Autopart, Autosan, Bać-Pol, Bakoma, Barlinek, Barwa, Befado, Bell, Bielenda, Bielmar, Big Star, Biofarm, Black Red White, Boryszew, Brand24, BranQ, CCC, CD Projekt, Cedrob, Ceramika Paradyż, Cersanit, Cisowianka, Cobi, Cognor, Colian, Comarch, Creotech Instruments, Dafi, Dako, Dawtona, Delia, Dino, Dr Irena Eris, Drutex, Eko-Okna, Enea, Energa, Fakro, Famur, Farmona, Ferguson, Ferro, Filmweb, Floslek, FM Group, FoodCare, Gatta, Gerda, Gerlach, Gino Rossi, Goclever, GPW, Graal, Granna, Grupa Azoty, Grupa Nowy Styl, Grycan, Hasco-Lek, Helio, Helios, Herbapol, Hevea, Iglotex, Impel, Indykpol, Inglot, Instal Kraków, Inter Cars, ITAKA, Jelcz, Joanna, JSW, Jurajska, Kazar, KGHM, Kler, Kolporter, Komputronik, Kopernik, Koral, Kospel, Kross, Kubota, Kupiec, Lakma, LiveChat, LOT, Lotos, LPP, Lubawa, Maspex, MaxCom, Meble VOX, Mercator Medical, Mlekovita, Mlekpol, Modecom, Mokate, Monnari, Neonet, Neuca, Newag, Novitus, Oknoplast, Oleofarm, Opoczno, Orlen, Oshee, Pekao, Pelion, PESA, PGE, PGNiG, Piątnica, PKO Bank Polski, PKP, Poczta Polska, Polpharma, Polskie Radio, Polsport, Porta, Pracuj.pl, Pronar, Prosperplast, Protektor, Pruszyński, Prymat, PZL Sędziszów, PZU, Radwag, Rafamet, Rainbow Tours, Recman, Redan, Relpol, Romet, RTV Euro AGD, Ryłko, Samasz, Sanplast, Sante, Selena, Selvita, Sfinks, Sipma, Społem, Stokrotka, Synthos, Śnieżka, Tauron, Techland, Tonsil, Topaz, Toya, Trefl, TVP, Unibep, Unimot, Ursus, Ustronianka, Venita, Vigo, Virtu, Vistula, Vivid Games, Vobro, Wielton, Wirtualna Polska, Wittchen, Wojas, X-KOM, Yes, Zbyszko, Zetkama, Ziaja, Zwoltex] companySuffixes: [Associates, Company, Consulting, Inc., Industries, Limited, LLC, Ltd] companyEmails: [info, contact, company, office] text: > Nie ma zatem takiego człowieka, który kocha cierpienie samo w sobie, kto by do niego dążył lub chciał go doświadczyć, tylko dlatego, że jest to cierpienie, a dlatego, że czasami zdarzają się takie okoliczności, w których to cierpienie może doprowadzić go do jakiejś wielkiej przyjemności. Dając przykład banalny: któż z nas kiedyś nie podejmował się trudnego wysiłku fizycznego mając na względzie uzyskanie z tego korzyści? Kto ma jakiekolwiek prawo obwiniać człowieka, który wybiera przyjemność nie wiążącą się z przykrymi konsekwencjami, albo tego, kto unika takiego cierpienia, które nie prowadzi do przyjemności? Jednocześnie potępiamy ze słusznym oburzeniem i czujemy niechęć do ludzi, którzy są tak owładnięci urokami nietrwałej przyjemności, tak zaślepieni jej pragnieniem, że nie dostrzegają, iż następstwem ich postępowania będą z pewnością cierpienie i trudności. telephone_number_formats: ['+48#########'] postal_code: ['##-###'] city: [Biała Piska, Bielany, Boguszyn, Boszkowo, Brzozów, Bęczyn, Cedzyna, Chojnów, Chotowa, Ciechocinek, Czernikowo, Dymów, Dzianisz, Działdowo, Dzierżoniow, Dziwiszów, Gierłoż, Goczałkowice Zdrój, Goleniów, Gowarczów, Grębiszew, Górzno, Głubczyce, Huba, Janów Podlaski, Jarosławiec, Jastrzębie Zdrój, Jeleniów, Jeleśnia, Józefów, Kamienna, Karłowice, Koczala-Dymin, Komarno, Kostomłoty Pierwsze, Kołbaskowo, Krasnobród, Krosno Odrzańskie, Kuków, Kępa k. Sochocina, Leszno, Lubin, Lublin, Lutowiska, Maniowy, Małe Ciche, Mikołajki, Milicz, Miłomłyn, Myślibórz, Młynne, Nowogrodziec, Nowy Tomyśl, Nowy Żmigród, Olchowa, Osieczany, Pabianice, Pakosławice, Piasek, Piaski k. Rucianego-Nidy, Piekary Śląskie, Pisz, Pniewy, Podgórzyn, Podlesice, Prudnik, Pszczyna, Puck, Radomyśl Wielki, Radzyń Podlaski, Rajgród, Rytro, Silec, Skaryszew, Skoczów, Skołyszyn, Srebrna Góra, Srem, Stara Białka, Stryków, Szarocin, Szczyrzyc, Trzebinia, Tłokinia Kościelna, Unieście, Ustka, Ustroń, Wasilków, Wodzisław, Wołów, Wydminy, Włosań, Zabrze, Zabrzeż, Zegrze, Zemborzyce, Zemborzyce Tereszyńskie, Zławieś Wielka, Złocieniec, Żary] street: [17 Stycznia, Adampolska, Aleja Księcia Józefa Poniatowskiego, Aleja Wielkopolski, Alpejska, Andrychowska, Antoniego Uniechowskiego, Basetli, Bieżuńska, Boglarczyków, Bogucicka, Borecka, Brunona Kicińskiego, Brygadzistów, Budowlana, Bulwarowa, Dezyderego Adama Chłapowskiego, Dobka z Oleśnicy, Dubieńska, Dziatwy, Dziewanny, Długorzeczna, Elsterska, Filtrowa, Frachtowa, Garbarska, Garwolińska, Gibraltarska, Goworowska, Henryka Sienkiewicza, Jerzego Bukowskiego, Józefa Ignacego Kraszewskiego, Kajetana Koźmiana, Kronikarska, Krzysztofa Warszewickiego, Kwarciana, Kwitnącej Akacji, Kłodawska, Lirowa, Ludwicka, Ludwinowska, Makowska, Marii Grzegorzewskiej, Marokańska, Małowiejska, Melioracyjna, Myszyniecka, Naczelnikowska, Narcyzowa, Orderu Uśmiechu, Osieki, Pasłęcka, Patriotów, Piaskowa, Piecuszka, Pilarzy, Plac Wojska Polskiego, Plutonowych, Pomologiczna, Prosta, Przedpole, Przepiórki, Płocka, Rowowa, Roztoki, Rzeczna, Różana, Sejmikowa, Skwer Andrzeja Woyciechowskiego, Skwer Grupy AK „Granat”, Smolna, Stanisława Jachowicza, Stawy, Stefana Drzewieckiego, Synogarlicy, Szmaragdowa, Szulborska, Toporczyków, Traktorzystów, Uniwersału, Walerego Wróblewskiego, Witebska, Wiązów, Wodzisławska, Wschodnia, Wybrzeże Kościuszkowskie, Wybrzeże Szczecińskie, Władysława Bieńczaka, X Poprzeczna, Zakamarek, Zaułek, Zespołowa, Zgrupowania AK „Kampinos”, gen. Józefa Zajączka, ks. Bronisława Markiewicza, ks. Ignacego Skorupki, Łazanowicka, Ługi, św. Antoniego, Łysakowska] country: ['Polska'] language: 'PL' ================================================ FILE: src/main/resources/jfairy_sk.yml ================================================ alphabet: aáäbcčdďeéfghiíjklĺľmnňoóôpqrŕsštťuúvwxyýzž domains: [sk, com, eu] firstNames: { male: [Adam, Adolf, Adrián, Alan, Albert, Albín, Aleš, Alexander, Alexej, Alfonz, Alfréd, Alojz, Ambróz, Andrej, Anton, Arnold, Arpád, Aurel, Bartolomej, Belo, Beňadik, Benjamín, Bernard, Blahoslav, Blažej, Bohdan, Bohumil, Bohumír, Bohuš, Bohuslav, Boleslav, Bonifác, Boris, Branislav, Bruno, Bystrík, Ctibor, Cyprián, Cyril, Dalibor, Daniel, Dávid, Demeter, Denis, Dezider, Dionýz, Dobroslav, Dominik, Drahomír, Drahoslav, Dušan, Edmund, Eduard, Eliáš, Emanuel, Emil, Erik, Ernest, Ervín, Eugen, Fedor, Félix, Ferdinand, Filip, Florián, František, Frederik, Fridrich, Gabriel, Gašpar, Gejza, Gregor, Gustáv, Henrich, Hubert, Hugo, Ignác, Igor, Iľja, Imrich, Ivan, Izidor, Jakub, Ján, Jarolím, Jaromír, Jaroslav, Jerguš, Jozef, Juraj, Kamil, Karol, Kazimír, Klaudius, Klement, Koloman, Konštantín, Kornel, Kristián, Krištof, Ladislav, Leonard, Leopold, Levoslav, Ľubomír, Ľubor, Ľuboš, Ľuboslav, Ľudomil, Ľudovít, Lukáš, Marcel, Marek, Marián, Mário, Martin, Matej, Matúš, Maximilián, Medard, Metod, Michal, Mikuláš, Milan, Miloš, Miloslav, Miroslav, Mojmír, Móric, Nikolaj, Norbert, Oldrich, Oleg, Oliver, Ondrej, Oskár, Oto, Pankrác, Patrik, Pavol, Peter, Pravoslav, Prokop, Radomír, Radoslav, Radovan, Radúz, Rastislav, René, Richard, Róbert, Roland, Roman, Rudolf, Samuel, Sergej, Servác, Severín, Silvester, Šimon, Slavomír, Stanislav, Štefan, Svätopluk, Svetozár, Tadeáš, Teodor, Tibor, Tichomír, Timotej, Tomáš, Urban, Václav, Valentín, Valér, Vasil, Vavrinec, Vendelín, Viktor, Viliam, Vincent, Vít, Víťazoslav, Vladimír, Vladislav, Vlastimil, Vojtech, Vratislav, Vratko, Zdenko, Žigmund, Zlatko, Zoltán], female: [Adela, Adriána, Agáta, Agnesa, Alana, Albína, Alena, Alexandra, Alica, Alojzia, Alžbeta, Amália, Anabela, Anastázia, Andrea, Anežka, Angela, Angelika, Anna, Antónia, Aurélia, Barbara, Barbora, Beáta, Berta, Bianka, Bibiána, Blanka, Blažena, Bohdana, Bohumila, Bohuslava, Božena, Božidara, Branislava, Brigita, Bronislava, Cecília, Dagmara, Dana, Daniela, Darina, Daša, Denisa, Diana, Dobromila, Dobroslava, Dominika, Dorota, Drahomíra, Drahoslava, Dušana, Edita, Ela, Elena, Eleonóra, Eliška, Elvíra, Ema, Emília, Erika, Estera, Etela, Eugénia, Eva, Filoména, Františka, Gabriela, Galina, Gertrúda, Gizela, Hana, Hedviga, Helena, Henrieta, Hermína, Hilda, Hortenzia, Ida, Ingrida, Irena, Irma, Ivana, Iveta, Ivica, Izabela, Jana, Jarmila, Jaroslava, Jela, Jolana, Jozefína, Judita, Justína, Kamila, Karolína, Katarína, Klára, Klaudia, Kornélia, Kristína, Kvetoslava, Ladislava, Laura, Lea, Lenka, Lesana, Lesia, Liana, Libuša, Linda, Lívia, Ľubica, Ľubomíra, Ľuboslava, Lucia, Ľudmila, Lujza, Lýdia, Magdaléna, Malvína, Marcela, Margaréta, Margita, Mária, Marianna, Marína, Marta, Martina, Matilda, Melánia, Michaela, Milada, Milena, Milica, Miloslava, Milota, Miriama, Miroslava, Monika, Nadežda, Natália, Nataša, Nikola, Nina, Nora, Oľga, Olívia, Olympia, Otília, Oxana, Patrícia, Paulína, Perla, Petra, Petrana, Petronela, Radoslava, Regina, Renáta, Romana, Rozália, Ružena, Sabína, Sidónia, Silvia, Simona, Sláva, Slávka, Slavomíra, Soňa, Stanislava, Štefánia, Stela, Svetlana, Tamara, Tatiana, Terézia, Uršuľa, Valentína, Valéria, Vanda, Veronika, Viera, Vieroslava, Viktória, Vilma, Viola, Vladimíra, Vlasta, Xénia, Žaneta, Zdenka, Želmíra, Zina, Zita, Zlatica, Žofia, Zoja, Zora, Zuzana] } lastNames: { male: [Abrahám, Adam, Adamec, Almáši, Anderle, András, Andráš, Andráši, Andrašík, Andrášik, Andrassy, Andrássy, Andrásy, Antal, Arpáš, Árpás, Augusta, Babka, Bača, Baďura, Bahna, Bahno, Bajnok, Bakos, Bakoš, Balaša, Baláž, Balázs, Balog, Balogh, Ban, Bán, Baňa, Báňa, Bano, Baňo, Báno, Bánó, Baran, Baranka, Barbara, Barbora, Bárta, Bartoš, Bartošík, Bartovič, Baša, Bašek, Baška, Baško, Bašo, Beck, Bednár, Bednárik, Beihofner, Bek, Beka, Beko, Bella, Beň, Beňa, Beňo, Beňuš, Beňuška, Beran, Bernard, Bernardi, Bernardo, Bernhard, Bernhardt, Bernolák, Bezák, Bicek, Bielik, Bilek, Bílek, Bilka, Bílka, Bilko, Bilkó, Biľko, Bílko, Binder, Biringer, Blaha, Bláha, Blaho, Blažej, Bobula, Bobuľa, Bologna, Bondra, Boór, Bor, Bór, Bora, Bóra, Borek, Borič, Borik, Borík, Bórik, Bôrik, Boris, Boriš, Borisov, Borka, Borko, Boro, Borovský, Borovszky, Borovszký, Borový, Borowski, Bosák, Boška, Bošňák, Botev, Brabec, Braxatoris, Brezina, Brunovský, Bruška, Bruško, Budín, Bugár, Bukovský, Buš, Čajkovič, Capek, Čapek, Capka, Čapka, Capko, Čapko, Čapkovič, Čapla, Čapľa, Čaplovič, Čarnogurský, Čekovský, Černík, Černoch, Červeň, Červený, Cesnak, Česnek, Chalupka, Chára, Chovan, Chován, Chovanec, Chrappa, Chudík, Cibula, Cibuľa, Cibulka, Cibuľka, Čiernik, Čierny, Cigán, Cigáň, Cigánik, Cíger, Cikán, Čobrda, Cyprich, Czibula, Czibulka, Dacej, Ďaďo, Dan, Dán, Dana, Daňa, Dáňa, Dančák, Dančiak, Dancsák, Danek, Daněk, Dani, Dáni, Danko, Dankó, Daňko, Dano, Daňo, Dany, Dányi, Dávid, Debnár, Dej, Dekýš, Dérer, Devečka, Dibarbora, Dida, Dido, Dobšinský, Dočolomanský, Doležal, Dora, Dorka, Dorko, Dorkó, Ďorko, Dorot, Dorota, Dostal, Dostál, Dostálek, Drajna, Droppa, Drotár, Dubnička, Dubovský, Duda, Dudek, Dudik, Dudík, Dudka, Dudko, Dudo, Dudok, Dudov, Duffy, Duka, Dula, Dulla, Ďurča, Ďurčo, Durdík, Durek, Ďurek, Ďurica, Ďuriš, Ďurka, Ďurko, Ďurkovič, Ďurkovský, Ďuro, Ďurovič, Ďurovský, Duša, Duschek, Dusek, Dušek, Dušička, Dusík, Duska, Duška, Dúška, Dusko, Duško, Ďuško, Dutka, Ďutka, Dutko, Dvonč, Dvorský, Dyda, Dzurjanin, Fabian, Fabián, Fabuš, Faith, Fajnor, Farkas, Farkaš, Farkašovský, Fedor, Feldek, Fico, Figuli, Filc, Filip, Filipek, Filípek, Filipko, Fink, Finka, Fischer, Fisher, Forgáč, Fraňa, Fráňa, Franek, Franěk, Fránek, Frank, Franka, Franko, Frano, Fraňo, Frei, Fridman, Friedman, Frühauf, Ftáčnik, Ftorek, Gál, Galik, Galík, Gálik, Galis, Gális, Gallo, Garin, Gašpar, Gašparovič, Gavalier, Getting, Gocník, Golonka, Gregor, Greguš, Grňa, Grznár, Gyurkovics, Gyurovics, Gyurovszky, Gyurovszký, Hablák, Habšuda, Hagara, Hála, Halák, Haluška, Hanak, Hanák, Haňak, Haňák, Hanek, Hank, Hanka, Hanke, Hanko, Hanousek, Hanus, Hanuš, Hanusek, Hanúsek, Hanuska, Hanuška, Hanúska, Hanzal, Hanzel, Hargaš, Harvan, Harvánek, Haščák, Havran, Havránek, Havranka, Havranko, Havrankó, Hečko, Heretik, Hladký, Hlaváč, Hlaváček, Hlaváčik, Hliník, Hlinka, Hochschorner, Hodža, Holič, Holiček, Holíček, Holička, Holík, Holoubek, Holub, Holubec, Holubek, Holúbek, Holubka, Holubko, Holúbok, Holuby, Horváth, Hossa, Hosták, Hošták, Hošťák, Hoza, Hraško, Hrdlička, Hrianka, Hric, Hrmo, Hroboň, Hruška, Hrušovský, Hryc, Huba, Hudáček, Hus, Hús, Husa, Huša, Husák, Husár, Husek, Hušek, Húšek, Huska, Huška, Húska, Húška, Hušo, Husták, Husťák, Hušták, Hušťák, Huszár, Huszka, Ihnačák, Jakab, Jakabovič, Jakoubek, Jakub, Jakuba, Jakubček, Jakubčík, Jakubčo, Jakubec, Jakubecz, Jakubek, Jakúbek, Jakubík, Jakubka, Jakubko, Jalovec, Jan, Ján, Janáček, Janák, Janča, Janček, Jančo, Janeček, Janečka, Janečko, Janek, Jánek, Jáni, Janík, Janka, Janko, Jankó, Jano, Jáno, Janočko, Janoš, János, Jánoš, Janošek, Jánošík, Janoška, Jánoska, Jánoška, Janoško, Jánoško, Janošo, Janoušek, Jantošovič, Jedľovský, Jendek, Jeník, Jerkovič, Jirek, Jirka, Jonata, Junas, Junás, Junáš, Juráš, Jurča, Jurčina, Jurčo, Jurek, Jurík, Jurin, Jurina, Jurka, Jurko, Jurkovič, Juroška, Jurovčík, Kaliský, Kállay, Kaniak, Kára, Kárpáty, Karul, Karvaš, Kavický, Kazik, Kazík, Kázik, Keller, Kello, Kelo, Keníž, Ker, Kisel, Kiseľ, Kisela, Kiseľa, Kissel, Klapač, Klapáč, Klapka, Klapko, Klaus, Klepač, Klepáč, Klepsatel, Klima, Klíma, Klimáček, Klimek, Klimko, Klimkovič, Klimo, Kližan, Klokoč, Klopačka, Kniha, Koc, Koč, Koča, Kocák, Kocek, Kočí, Kocian, Kocián, Kočiš, Kocka, Kočka, Kočko, Kocour, Kocourek, Kocur, Kocúr, Kocura, Kocúrik, Koky, Kolár, Kolesár, Kollár, Kolnik, Kolník, Konopka, Konôpka, Konrad, Konrád, Konstantinidis, Kopa, Kopp, Koppa, Korčák, Korec, Kostka, Kôstka, Kostrec, Koszta, Kosztka, Kotes, Kotian, Kotleba, Kotulič, Kotzian, Kouba, Koubek, Kováč, Kováčik, Koza, Kozáček, Kozáčik, Kozak, Kozák, Kozakov, Kozmon, Krajči, Krajčí, Krajčír, Krajčo, Krajčovič, Krajíček, Král, Kráľ, Králik, Králík, Kráľovič, Kramár, Krasnohorský, Krásnohorský, Krčméry, Kreheľ, Krejča, Krejčí, Krištof, Kríž, Križan, Krížik, Kroner, Króner, Kropilák, Kroták, Kroupa, Krupa, Krúpa, Kryštof, Kuba, Kubec, Kubek, Kúbek, Kubiček, Kubíček, Kubička, Kubičko, Kubiczek, Kubík, Kubitschek, Kubka, Kubko, Kubo, Kučera, Kucsera, Kuffa, Kuna, Kunda, Kunka, Kunst, Kupa, Kupka, Kupko, Kuruc, Kurucz, Kus, Kuš, Kús, Kúš, Kuša, Kuska, Kuška, Kúska, Kušo, Kysel, Kyseľ, Kysela, Kyseľa, Kyselý, Labant, Labuda, Laca, Lacka, Lacko, Laco, Lajčák, Lajčiak, Lamač, Landau, Langoš, Lepšík, Lesný, Leto, Lettrich, Lexa, Lintner, Lipa, Lípa, Lipka, Lipko, Lipták, Lisický, Liška, Líška, Litva, Loj, Loja, Lojek, Lojka, Lojko, Lubina, Lukáč, Lukachich, Lukáči, Lukács, Luks, Lukš, Luksa, Lukša, Lupták, Ľupták, Lux, Mác, Maca, Máca, Macek, Maček, Máček, Mach, Macha, Mácha, Machát, Machata, Machnáč, Macho, Máčik, Mack, Macka, Mácka, Macko, Mackó, Mačko, Mackovič, Mačkovič, Maco, Mačo, Maczko, Maczkó, Maczo, Maczó, Madar, Madár, Maďar, Maďár, Madara, Maďara, Madaras, Madaraš, Madarás, Madarasz, Madarász, Maďarič, Madej, Magál, Magyar, Magyár, Majdan, Majdán, Majeský, Mak, Mák, Maka, Mako, Makó, Makovec, Makovica, Makovický, Makový, Malachovský, Malina, Malíšek, Mamojka, Marcin, Marcinek, Marcínek, Marcinko, Mareček, Marek, Margita, Marián, Mark, Márk, Marko, Markos, Markoš, Markovič, Markovics, Markovicz, Markovits, Markus, Markuš, Márkus, Márkuš, Maroš, Marta, Márta, Martan, Martáň, Marťan, Martanovič, Martin, Martín, Martina, Martinák, Martinček, Martinec, Martinek, Martínek, Martinka, Martinko, Martinkovič, Martinovič, Marton, Márton, Masár, Masarik, Masarík, Masárik, Masaryk, Maslo, Masný, Matiaško, Mečiar, Medvecký, Medved, Medveď, Melcer, Melczer, Melichar, Melichár, Melichárek, Melicher, Melicherčík, Melicherík, Meltzer, Melzer, Menhart, Meňhart, Meňhárt, Meňhért, Menšík, Menyhárt, Menyhért, Michalech, Michálech, Michalek, Michálek, Michalica, Michalík, Michálik, Michalka, Michalko, Mihál, Mihalik, Mihalík, Mihálik, Miklík, Mikloš, Miklós, Mikloško, Mikulák, Mikulík, Mikuš, Mikúš, Miler, Miller, Milota, Mináč, Mišík, Mistrík, Mlynár, Mlynárik, Mojsej, Mojžiš, Mojžíš, Mokroš, Molnar, Molnár, Mór, Mora, Móra, Moravčík, Moravec, Mori, Móri, Moric, Móric, Móricz, Motyčka, Motyka, Mraz, Mráz, Mrazek, Mrázek, Mrazík, Mrázik, Mrázka, Mrazko, Mrázko, Mucha, Müller, Murgaš, Murin, Murín, Musil, Mydlo, Nábělek, Nádas, Nádaš, Nádasi, Nádaši, Nagy, Nálepka, Navara, Nedvěd, Nemec, Němec, Nemet, Német, Nemeth, Németh, Neruda, Nezval, Nitra, Nižnanský, Nižnánsky, Nižňanský, Nor, Nota, Nóta, Nôta, Novak, Novák, Novota, Novotný, Nowak, Nvota, Obšut, Očenáš, Olah, Oláh, Ondrák, Ondráš, Ondrášek, Ondrašík, Ondrášik, Ondrejka, Ondrejko, Ondrejkovič, Ondrus, Ondruš, Ondrusek, Ondrušek, Ondrúšek, Ondruška, Ondruško, Opluštil, Orlík, Orság, Ország, Országh, Otčenáš, Pajer, Pala, Paľa, Pála, Pálek, Palka, Paľka, Pálka, Palko, Palkó, Paľko, Pálko, Palkovič, Pall, Páll, Palla, Pallo, Palo, Paló, Paľo, Palov, Paľov, Palovčík, Paľovčík, Palovič, Paluch, Palúch, Paľuch, Paľúch, Pap, Papp, Pašek, Paška, Paško, Pauk, Paúk, Pauko, Pauliček, Paulíček, Paulik, Paulík, Pauliny, Paulíny, Paulovič, Pavel, Pável, Pavelec, Pavelek, Pavelka, Pavelko, Pavka, Pavko, Pavliček, Pavlíček, Pavličko, Pavlik, Pavlík, Pavlikovský, Pavlo, Pavlov, Pavlovič, Pavol, Pavuk, Pavúk, Pawlak, Pawlik, Pelikan, Pelikán, Pellegrini, Pellegríni, Pepucha, Pešek, Peška, Peško, Petrovický, Petruška, Pichlík, Pika, Píka, Plaucha, Plavec, Plavucha, Plch, Plekanec, Plešivec, Podhradský, Podkonický, Polák, Polgár, Poliak, Pollák, Procháska, Prochazka, Procházka, Prohaska, Proháska, Prohászka, Pucher, Pupák, Puška, Puškár, Puskás, Puškáš, Rak, Rák, Rakovan, Raši, Repiský, Révay, Richard, Richtár, Richter, Riha, Riša, Riška, Riško, Rišo, Riszdorfer, Roháč, Rohaček, Roháček, Roháčik, Rojek, Rojka, Rojko, Róm, Romančík, Rosa, Rosina, Rót, Roth, Róth, Rott, Rozenberg, Rubik, Rubík, Rufus, Rúfus, Rus, Rusko, Rusnak, Rusnák, Rusňak, Rusňák, Rusnok, Rusznyák, Ruttkay, Ružička, Rybár, Rybárik, Rybníček, Rys, Ryš, Rýs, Ryša, Ryška, Ryško, Sabo, Sadiki, Šafránek, Sagan, Sagán, Salaj, Salajka, Šalajka, Saliji, Samel, Sameľ, Sámel, Sámeľ, Samson, Samuel, Sanitra, Šarkan, Sárkány, Scherer, Seč, Sedliak, Sekera, Senko, Ševčenko, Šidlo, Sidor, Sigmund, Šima, Šíma, Šimeček, Šimečka, Šimek, Šimíček, Šimík, Šimka, Šimko, Šimo, Simon, Šimon, Šimonovič, Škantar, Škantár, Sklár, Sklenár, Sklenárik, Sklenica, Sklenička, Sklenka, Skokan, Škriniar, Škultéty, Skutecký, Šlahor, Slašťan, Slivka, Šlivka, Slivko, Sloboda, Slobodník, Slota, Slovák, Slovinec, Šmajda, Smrek, Sokol, Solan, Solej, Šoltés, Šoltýs, Šouc, Šoustal, Špilár, Stantien, Starosta, Šťastný, Stefan, Štefan, Štefánek, Štefánik, Štefanka, Štefanko, Stefanovič, Štefanovič, Štefuca, Štefunko, Štěpán, Štěpánek, Stevanovič, Stodola, Straka, Štraus, Strauss, Štrauss, Štrba, Strnisko, Strýček, Stümpel, Šulc, Šuňavec, Šurka, Šváb, Šváby, Švehla, Svoboda, Svobodník, Svrbík, Sýkora, Szabo, Szabó, Szalai, Szalay, Szekeres, Szelepcsényi, Szomolányi, Tahy, Ťapák, Tatar, Tatár, Tatarka, Tatárka, Ťažký, Thoma, Thomka, Tikal, Timek, Timka, Timko, Tirpák, Tiso, Toman, Tomaň, Tomana, Tomanek, Tománek, Tomaník, Tomas, Tomáš, Tomaschek, Tomašek, Tomášek, Tomášik, Tomaška, Tomáška, Tomaško, Tomáško, Tomeček, Tomečka, Tomečko, Tomek, Tomka, Tomko, Tóth, Trlík, Truben, Tuma, Tupy, Tupý, Turčok, Uram, Urblík, Ursiny, Ursíny, Vajcik, Vajcík, Vajda, Valach, Valachovič, Valent, Valenta, Valentín, Valíček, Valušek, Valuška, Vanek, Vaněk, Varga, Vašek, Vašíček, Vaska, Vaška, Váska, Vasko, Vaško, Vavrinec, Velďák, Vencel, Vesel, Veterník, Vicen, Vicena, Vico, Vilikovský, Višňovský, Vlach, Vlachovič, Vlk, Vlna, Vlnka, Vojtek, Vojtka, Vojtko, Vomáčka, Vondra, Vondráček, Vondrák, Vondrka, Vondruška, Vozar, Vozár, Vozáry, Vrabec, Vrablec, Vydarený, Weiss, Williams, Wittlinger, Záborský, Zachar, Zachara, Zachariaš, Zachariáš, Zajac, Zajíc, Zatopek, Zátopek, Zelenay, Železnik, Železník, Ziga, Žiga, Žigmund, Zigo, Zigó, Žigo, Zika, Zíka, Zikmund, Ziko, Zima, Zíma, Zimka, Zipser, Zoubek, Zsiga, Zsigmond, Zsigmondy, Zsigo, Zsigó, Zubek, Zúbek, Zubka, Zubko, Zubrík, Zúbrik, Zyka, Zýka], female: [Abrahámová, Adamcová, Adamová, Almášiová, Anderleová, Andrašíková, Andrášiková, Andrášiová, Andrásová, Andrášová, Andrassa, Andrássa, Andrása, Antalová, Arpášová, Árpásová, Augustová, Babková, Bačová, Baďurová, Bahnová, Bajnoková, Bakosová, Bakošová, Balašová, Balážová, Balázsová, Baloghová, Balogová, Bánóová, Banová, Baňová, Bánová, Báňová, Baranková, Baranová, Barbarová, Barborová, Bartošíková, Bartošová, Bártová, Bartovičová, Bašeková, Bašková, Bašová, Becková, Bednáriková, Bednárová, Beihofnerová, Beková, Bellová, Beňová, Beňušková, Beňušová, Beranová, Bernardiová, Bernardová, Bernhardová, Bernhardtová, Bernoláková, Bezáková, Biceková, Bieliková, Bileková, Bíleková, Bilkóová, Bilková, Biľková, Bílková, Binderová, Biringerová, Blahová, Bláhová, Blažejová, Bobulová, Bobuľová, Bolognová, Bondrová, Boórová, Boreková, Boričová, Boriková, Boríková, Bóriková, Bôriková, Borisová, Borišová, Borisovová, Borková, Borová, Bórová, Borovská, Borovszka, Borovszká, Borová, Borowskiová, Bosáková, Bošková, Bošňáková, Botevová, Brabcová, Braxatorisová, Brezinová, Brunovská, Brušková, Budínová, Bugárová, Bukovská, Bušová, Čajkovičová, Capeková, Čapeková, Capková, Čapková, Čapkovičová, Čaplová, Čapľová, Čaplovičová, Čarnogurská, Čekovská, Černíková, Černochová, Červeňová, Červená, Cesnaková, Česneková, Chalupková, Chárová, Chovánová, Chovancová, Chovanová, Chrappová, Chudíková, Cibulková, Cibuľková, Cibulová, Cibuľová, Čierniková, Čierna, Cigániková, Cigánová, Cigáňová, Cígerová, Cikánová, Čobrdová, Cyprichová, Czibulková, Czibulová, Dacejová, Ďaďová, Dančáková, Dančiaková, Dancsáková, Daneková, Daněková, Daniová, Dániová, Dankóová, Danková, Daňková, Danová, Daňová, Dánová, Dáňová, Dányiová, Danová, Dávidová, Debnárová, Dejová, Dekýšová, Dérerová, Devečková, Dibarborová, Didová, Dobšinská, Dočolomanská, Doležalová, Dorkóová, Dorková, Ďorková, Dorotová, Dorová, Dostáleková, Dostalová, Dostálová, Drajnová, Droppová, Drotárová, Dubničková, Dubovská, Dudeková, Dudiková, Dudíková, Dudková, Dudoková, Dudová, Dudovová, Duffa, Duková, Dullová, Dulová, Ďurčová, Durdíková, Dureková, Ďureková, Ďuricová, Ďurišová, Ďurková, Ďurkovičová, Ďurkovská, Ďurová, Ďurovičová, Ďurovská, Duscheková, Duseková, Dušeková, Dušičková, Dusíková, Dusková, Dušková, Dúšková, Ďušková, Dušová, Dutková, Ďutková, Dvončová, Dvorská, Dydová, Dzurjaninová, Fabianová, Fabiánová, Fabušová, Faithová, Fajnorová, Farkasová, Farkašová, Farkašovská, Fedorová, Feldeková, Ficová, Figuliová, Filcová, Filipeková, Filípeková, Filipková, Filipová, Finková, Fischerová, Fisherová, Forgáčová, Franeková, Franěková, Fráneková, Franková, Franová, Fraňová, Fráňová, Freiová, Fridmanová, Friedmanová, Frühaufová, Ftáčniková, Ftoreková, Galiková, Galíková, Gáliková, Galisová, Gálisová, Gallová, Gálová, Garinová, Gašparová, Gašparovičová, Gavalierová, Gettingová, Gocníková, Golonková, Gregorová, Gregušová, Grňová, Grznárová, Gyurkovicsová, Gyurovicsová, Gyurovszka, Gyurovszká, Habláková, Habšudová, Hagarová, Haláková, Hálová, Halušková, Hanaková, Hanáková, Haňaková, Haňáková, Haneková, Hankeová, Hanková, Hanouseková, Hanuseková, Hanúseková, Hanusková, Hanušková, Hanúsková, Hanusová, Hanušová, Hanzalová, Hanzelová, Hargašová, Harváneková, Harvanová, Haščáková, Havráneková, Havrankóová, Havranková, Havranová, Hečková, Heretiková, Hladká, Hlaváčová, Hlaváčeková, Hlaváčiková, Hliníková, Hlinková, Hochschornerová, Hodžová, Holičeková, Holíčeková, Holičková, Holičová, Holíková, Holoubeková, Holubcová, Holubeková, Holúbeková, Holubková, Holúboková, Holubová, Holuba, Horváthová, Hossová, Hostáková, Hoštáková, Hošťáková, Hozová, Hrašková, Hrdličková, Hrianková, Hricová, Hrmová, Hroboňová, Hrušková, Hrušovská, Hrycová, Hubová, Hudáčeková, Husáková, Husárová, Huseková, Hušeková, Húšeková, Husková, Hušková, Húsková, Húšková, Husová, Hušová, Húsová, Hustáková, Husťáková, Huštáková, Hušťáková, Huszárová, Huszková, Ihnačáková, Jakabová, Jakabovičová, Jakoubeková, Jakubčeková, Jakubčíková, Jakubcová, Jakubčová, Jakubeczová, Jakubeková, Jakúbeková, Jakubíková, Jakubková, Jakubová, Jalovcová, Janáčeková, Janáková, Jančeková, Jančová, Janečeková, Janečková, Janeková, Jáneková, Janíková, Jániová, Jankóová, Janková, Janočková, Janošeková, Jánošíková, Janošková, Jánosková, Jánošková, Janošová, Jánosová, Jánošová, Janoušeková, Janová, Jánová, Jantošovičová, Jedľovská, Jendeková, Jeníková, Jerkovičová, Jireková, Jirková, Jonatová, Junasová, Junásová, Junášová, Jurášová, Jurčinová, Jurčová, Jureková, Juríková, Jurinová, Jurková, Jurkovičová, Jurošková, Jurovčíková, Kaliská, Kálla, Kaniaková, Kárová, Kárpáta, Karulová, Karvašová, Kavická, Kaziková, Kazíková, Káziková, Kellerová, Kellová, Kelová, Kenížová, Kerová, Kiselová, Kiseľová, Kisselová, Klapačová, Klapáčová, Klapková, Klausová, Klepačová, Klepáčová, Klepsatelová, Klimáčeková, Klimeková, Klimková, Klimkovičová, Klimová, Klímová, Kližanová, Klokočová, Klopačková, Knihová, Kocáková, Koceková, Kocianová, Kociánová, Kočíová, Kočišová, Kocková, Kočková, Kocoureková, Kocourová, Kocová, Kočová, Kocúriková, Kocurová, Kocúrová, Koka, Kolárová, Kolesárová, Kollárová, Kolniková, Kolníková, Konopková, Konôpková, Konradová, Konrádová, Konstantinidisová, Kopová, Koppová, Korčáková, Korcová, Kostková, Kôstková, Kostrcová, Kosztková, Kosztová, Kotesová, Kotianová, Kotlebová, Kotuličová, Kotzianová, Koubeková, Koubová, Kováčová, Kováčiková, Kozáčeková, Kozáčiková, Kozaková, Kozáková, Kozakovová, Kozmonová, Kozová, Krajčiová, Krajčíová, Krajčírová, Krajčová, Krajčovičová, Krajíčeková, Králiková, Králíková, Králová, Kráľová, Kráľovičová, Kramárová, Krasnohorská, Krásnohorská, Krčméra, Kreheľová, Krejčíová, Krejčová, Krištofová, Križanová, Krížiková, Krížová, Kronerová, Krónerová, Kropiláková, Krotáková, Kroupová, Krupová, Krúpová, Kryštofová, Kubcová, Kubeková, Kúbeková, Kubičeková, Kubíčeková, Kubičková, Kubiczeková, Kubíková, Kubitscheková, Kubková, Kubová, Kučerová, Kucserová, Kuffová, Kundová, Kunková, Kunová, Kunstová, Kupková, Kupová, Kurucová, Kuruczová, Kusková, Kušková, Kúsková, Kusová, Kušová, Kúsová, Kúšová, Kyselová, Kyseľová, Kyselá, Labantová, Labudová, Lacková, Lacová, Lajčáková, Lajčiaková, Lamačová, Landauová, Langošová, Lepšíková, Lesná, Letová, Lettrichová, Lexová, Lintnerová, Lipková, Lipová, Lípová, Liptáková, Lisická, Lišková, Líšková, Litvová, Lojeková, Lojková, Lojová, Lubinová, Lukachichová, Lukáčiová, Lukáčová, Lukácsová, Luksová, Lukšová, Luptáková, Ľuptáková, Luxová, Maceková, Mačeková, Máčeková, Machatová, Machátová, Machnáčová, Machová, Máchová, Máčiková, Mackóová, Macková, Mačková, Mácková, Mackovičová, Mačkovičová, Macová, Mačová, Mácová, Maczkóová, Maczková, Maczóová, Maczová, Madarasová, Madarašová, Madarásová, Madaraszová, Madarászová, Maďaričová, Madarová, Madárová, Maďarová, Maďárová, Madejová, Magálová, Magyarová, Magyárová, Majdanová, Majdánová, Majeská, Makóová, Maková, Máková, Makovcová, Makovická, Makovicová, Maková, Malachovská, Malinová, Malíšeková, Mamojková, Marcineková, Marcíneková, Marcinková, Marcinová, Marečeková, Mareková, Margitová, Mariánová, Markosová, Markošová, Marková, Márková, Markovičová, Markovicsová, Markoviczová, Markovitsová, Markusová, Markušová, Márkusová, Márkušová, Marošová, Martanová, Martáňová, Marťanová, Martanovičová, Martináková, Martinčeková, Martincová, Martineková, Martíneková, Martinková, Martinkovičová, Martinová, Martínová, Martinovičová, Martonová, Mártonová, Martová, Mártová, Masariková, Masaríková, Masáriková, Masárová, Masaryková, Maslová, Masná, Matiašková, Mečiarová, Medvecká, Medvedová, Medveďová, Melcerová, Melczerová, Melicháreková, Melicharová, Melichárová, Melicherčíková, Melicheríková, Melicherová, Meltzerová, Melzerová, Menhartová, Meňhartová, Meňhártová, Meňhértová, Menšíková, Menyhártová, Menyhértová, Michalechová, Michálechová, Michaleková, Micháleková, Michalicová, Michalíková, Micháliková, Michalková, Mihaliková, Mihalíková, Miháliková, Mihálová, Miklíková, Miklošková, Miklošová, Miklósová, Mikuláková, Mikulíková, Mikušová, Mikúšová, Milerová, Millerová, Milotová, Mináčová, Mišíková, Mistríková, Mlynáriková, Mlynárová, Mojsejová, Mojžišová, Mojžíšová, Mokrošová, Molnarová, Molnárová, Moravčíková, Moravcová, Moricová, Móricová, Móriczová, Moriová, Móriová, Morová, Mórová, Motyčková, Motyková, Mrazeková, Mrázeková, Mrazíková, Mráziková, Mrazková, Mrázková, Mrazová, Mrázová, Muchová, Müllerová, Murgašová, Murinová, Murínová, Musilová, Mydlová, Náběleková, Nádasiová, Nádašiová, Nádasová, Nádašová, Naga, Nálepková, Navarová, Nedvědová, Nemcová, Němcová, Nemethová, Némethová, Nemetová, Németová, Nerudová, Nezvalová, Nitrová, Nižnanská, Nižnánska, Nižňanská, Norová, Notová, Nótová, Nôtová, Nováková, Novaková, Novotná, Novotová, Nowaková, Nvotová, Obšutová, Očenášová, Olahová, Oláhová, Ondráková, Ondrášeková, Ondrašíková, Ondrášiková, Ondrášová, Ondrejková, Ondrejkovičová, Ondruseková, Ondrušeková, Ondrúšeková, Ondrušková, Ondrusová, Ondrušová, Opluštilová, Orlíková, Orságová, Országhová, Országová, Otčenášová, Pajerová, Páleková, Palkóová, Palková, Paľková, Pálková, Palkovičová, Pallová, Pállová, Palóová, Palová, Paľová, Pálová, Palovčíková, Paľovčíková, Palovičová, Palovová, Paľovová, Paluchová, Palúchová, Paľuchová, Paľúchová, Papová, Pappová, Pašeková, Pašková, Pauková, Paúková, Pauličeková, Paulíčeková, Pauliková, Paulíková, Paulina, Paulína, Paulovičová, Pavelcová, Paveleková, Pavelková, Pavelová, Pávelová, Pavková, Pavličeková, Pavlíčeková, Pavličková, Pavliková, Pavlíková, Pavlikovská, Pavlová, Pavlovičová, Pavlovová, Pavolová, Pavuková, Pavúková, Pawlaková, Pawliková, Pelikanová, Pelikánová, Pellegriniová, Pellegríniová, Pepuchová, Pešeková, Pešková, Petrovická, Petrušková, Pichlíková, Piková, Píková, Plauchová, Plavcová, Plavuchová, Plchová, Plekancová, Plešivcová, Podhradská, Podkonická, Poláková, Polgárová, Poliaková, Polláková, Prochásková, Prochazková, Procházková, Prohasková, Prohásková, Prohászková, Pucherová, Pupáková, Puškárová, Puskásová, Puškášová, Pušková, Raková, Ráková, Rakovanová, Rašiová, Repiská, Réva, Richardová, Richtárová, Richterová, Rihová, Rišková, Rišová, Riszdorferová, Rohačeková, Roháčeková, Roháčiková, Roháčová, Rojeková, Rojková, Romančíková, Rómová, Rosinová, Rosová, Rothová, Róthová, Rótová, Rottová, Rozenbergová, Rubiková, Rubíková, Rufusová, Rúfusová, Rusková, Rusnaková, Rusnáková, Rusňaková, Rusňáková, Rusnoková, Rusová, Rusznyáková, Ruttka, Ružičková, Rybáriková, Rybárová, Rybníčeková, Ryšková, Rysová, Ryšová, Rýsová, Sabová, Sadikiová, Šafráneková, Saganová, Sagánová, Salajková, Šalajková, Salajová, Salijiová, Samelová, Sameľová, Sámelová, Sámeľová, Samsonová, Samuelová, Sanitrová, Šarkanová, Sárkána, Schererová, Sečová, Sedliaková, Sekerová, Senková, Ševčenková, Šidlová, Sidorová, Sigmundová, Šimečeková, Šimečková, Šimeková, Šimíčeková, Šimíková, Šimková, Simonová, Šimonová, Šimonovičová, Šimová, Šímová, Škantarová, Škantárová, Sklárová, Sklenáriková, Sklenárová, Skleničková, Sklenicová, Sklenková, Skokanová, Škriniarová, Škultéta, Skutecká, Šlahorová, Slašťanová, Slivková, Šlivková, Slobodníková, Slobodová, Slotová, Slováková, Slovincová, Šmajdová, Smreková, Sokolová, Solanová, Solejová, Šoltésová, Šoltýsová, Šoucová, Šoustalová, Špilárová, Stantienová, Starostová, Šťastná, Štefáneková, Štefániková, Štefanková, Stefanová, Štefanová, Stefanovičová, Štefanovičová, Štefucová, Štefunková, Štěpáneková, Štěpánová, Stevanovičová, Stodolová, Straková, Štrausová, Straussová, Štraussová, Štrbová, Strnisková, Strýčeková, Stümpelová, Šulcová, Šuňavcová, Šurková, Švábová, Švába, Švehlová, Svobodníková, Svobodová, Svrbíková, Sýkorová, Szabóová, Szabová, Szalaiová, Szala, Szekeresová, Szelepcsényiová, Szomolányiová, Taha, Ťapáková, Tatarková, Tatárková, Tatarová, Tatárová, Ťažká, Thomková, Thomová, Tikalová, Timeková, Timková, Tirpáková, Tisová, Tomaneková, Tománeková, Tomaníková, Tomanová, Tomaňová, Tomascheková, Tomašeková, Tomášeková, Tomášiková, Tomašková, Tomášková, Tomasová, Tomášová, Tomečeková, Tomečková, Tomeková, Tomková, Tóthová, Trlíková, Trubenová, Tumová, Tupa, Tupá, Turčoková, Uramová, Urblíková, Ursina, Ursína, Vajciková, Vajcíková, Vajdová, Valachová, Valachovičová, Valentínová, Valentová, Valíčeková, Valušeková, Valušková, Vaneková, Vaněková, Vargová, Vašeková, Vašíčeková, Vasková, Vašková, Vásková, Vavrincová, Velďáková, Vencelová, Veselová, Veterníková, Vicenová, Vicová, Vilikovská, Višňovská, Vlachová, Vlachovičová, Vlková, Vlnková, Vlnová, Vojteková, Vojtková, Vomáčková, Vondráčeková, Vondráková, Vondrková, Vondrová, Vondrušková, Vozarová, Vozárová, Vozára, Vrabcová, Vrablcová, Vydarená, Weissová, Williamsová, Wittlingerová, Záborská, Zachariašová, Zachariášová, Zacharová, Zajacová, Zajícová, Zatopeková, Zátopeková, Zelena, Železniková, Železníková, Žigmundová, Zigóová, Zigová, Žigová, Zikmundová, Ziková, Zíková, Zimková, Zimová, Zímová, Zipserová, Zoubeková, Zsigmondová, Zsigmonda, Zsigóová, Zsigová, Zubeková, Zúbeková, Zubková, Zubríková, Zúbriková, Zyková, Zýková] } personalEmails: [gmail.com, yahoo.com, zoznam.sk, pobox.sk, azet.sk, centrum.sk] companyNames: [AA GOLD Company, ACHP Levice, Adient Slovakia, Agropodnik Trnava, ALEF Distribution SK, Allianz, ArcelorMittal Gonvarri SSC Slovakia, ASBIS SK, AT&T Global Network Services Slovakia, AUTOCENTRUM AAA AUTO, AUTOCENTRUM AAA AUTO, BASF Slovensko, Bekaert Hlohovec, Bekaert Slovakia, Beltran, BETANOL, BIC Slovakia, BILLA, BMW Slovenská republika, BOGE Elastmetall Slovakia, Brose Prievidza, BSH Drives and Pumps, BUDAMAR LOGISTICS, BUKÓZA Export-Import, C & A Mode, Caprice, CBG, Československá obchodná banka, ČEZ Slovensko, C.LT.W. Finance, Continental Automotive Systems Slovakia, Continental Matador Rubber, Continental Matador Truck Tires, ContiTech Vibration Control Slovakia, COOP Jednota Krupina, COOP Jednota, COOP Jednota Nové Zámky, CRH (Slovensko), D4R7 Construction, DALITRANS, Danfoss Power Solutions, DATALOGIC SLOVAKIA, Dell, Deutsche Telekom Systems Solutions Slovakia, dm drogerie markt, Domäsko, DONGHEE Slovakia, Doprastav, DÔVERA zdravotná poisťovňa, Duslo, DXC Technology Slovakia, ELGAS, Elster, Embraco Slovakia, ENAGRO, Energie2, Enics Slovakia, ENTRAZ, ENVIRAL, ESET, Essity Slovakia, eustream, FAST PLUS, Faurecia Automotive Slovakia, Faurecia Slovakia, FERONA Slovakia, Ferroenergy, FORTISCHEM, FORTUNA SK, Foxconn Slovakia, GAMEX TRADING, GEFCO SLOVAKIA, Generali Poisťovňa, GETRAG FORD Transmissions Slovakia, GeWiS Slovakia, GGT, Golde Lozorno, GRANVIA, GROUPE SEB Slovensko, GRUPO ANTOLIN BRATISLAVA, GSK Consumer Healthcare Levice, Hanon Systems Slovakia, HAVI Logistics, HBPO Slovakia, HB REAVIS MANAGEMENT, Heineken Slovensko, Heineken Slovensko Distribúcia, Hella Slovakia Front-Lighting, Hella Slovakia Signal-Lighting, HENKEL SLOVENSKO, HORNBACH, Hornonitrianske bane Prievidza, Hyundai Steel Slovakia, Hyundai Transys Slovakia, IAC Group (Slovakia), IBM International Services Centre, I.D.C. Holding, IKEA Bratislava, IKEA Components, IKEA Industry Slovakia, ILJIN SLOVAKIA, innogy Slovensko, INTERAGROS, IRDistribution, Jaguar Land Rover Slovakia, Johns Manville Slovakia, JOHNSON CONTROLS INTERNATIONAL, Johnson & Johnson, Kaufland Slovenská republika, Kia Motors Sales Slovensko, Kia Motors Slovakia, KOMUNÁLNA poisťovňa Vienna Insurance Group, KOOPERATIVA poisťovňa Vienna Insurance Group, KRONOSPAN, LABAŠ, Lear Corporation Seating Slovakia, LEONI Slovakia, LESY Slovenskej republiky, LE Trading, Lidl Slovenská republika, MAGNA ENERGIA, MAGNA SLOVTECA, MAHLE Behr Námestovo, MAHLE Behr Senica, Marelli Kechnec Slovakia, MATADOR Automotive Vráble, MECOM GROUP, MED, Mercedes-Benz Financial Services Slovakia, Mercedes-Benz Slovakia, MERKURY SHOP, MEROCO, MetLife Amslico poisťovňa, METRANS /Danubia/, METRO Cash & Carry Slovakia, METRO Cash & Carry SR, Metsa Tissue Slovakia, MET Slovakia, MILK-AGRO, MINERFIN, Mobis Slovakia, Mondi SCP, Motor-Car Bratislava, NAFTA, Národná diaľničná spoločnosť, NAY, Nemak Slovakia, Nestlé Slovensko, N I K É, Novartis Slovakia, NOVIS Insurance Company, O2 Slovakia, OBI Slovakia, OFZ, OKTE, OMV Slovensko, Orange Slovensko, Panasonic Industrial Devices Slovakia, P Automobil Import, PCA Slovakia, PETROLTRANS, Philip Morris Slovakia, PHOENIX Zdravotnícke zásobovanie, PIKARO TRADING, Plastic Omnium Auto Exteriors, Plastic Omnium Auto Inergy Slovakia, Plzeňský Prazdroj Slovensko, Poisťovňa Slovenskej sporiteľne Vienna Insurance Group, Porsche Inter Auto Slovakia, Porsche Slovakia, Poštová banka, Pow-en, PPA CONTROLL, Prima banka Slovensko, PRODCEN, PROTHERM PRODUCTION, Prvá stavebná sporiteľňa, Prysmian Kablo, Quatro project Europe, RAJO, RAVEN, Renault Slovensko, RIEKER OBUV, RIGHT POWER, SAMSUNG Electronics Slovakia, Samsung SDS Global SCL Slovakia, SAS Automotive, Scania Slovakia, Schaeffler Kysuce, Schaeffler Skalica, Secop, SEJONG Slovakia, SEMIKRON, SEOYON E-HWA AUTOMOTIVE SLOVAKIA, SHELL Slovakia, Siemens, Siemens Mobility, Skanska SK, ŠKODA AUTO Slovensko, SLOVAKIA ENERGY, Slovak Telekom, Slovalco, Slovenská elektrizačná prenosová sústava, Slovenská pošta, Slovenská sporiteľňa, Slovenské elektrárne, Slovenské elektrárne, Slovenský plynárenský priemysel, SLOVNAFT, SLOVNAFT MONTÁŽE A OPRAVY, Slovnaft Petrochemicals, SLOVWOOD Ružomberok, Solar 2009, SPP, STAVMAT STAVEBNINY, ST. NICOLAUS, STRABAG, STRABAG Pozemné a inžinierske staviteľstvo, Stredoslovenská distribučná, Stredoslovenská energetika, SUNGWOO HITECH Slovakia, T a M trans spedition, Tate & Lyle Boleraz, Tate & Lyle Slovakia, Tatra banka, TATRAVAGÓNKA, Tatry mountain resorts, TAURIS, TEMPEST, TERNO real estate, Tesco International Clothing Brand, TESCO STORES SR, thyssenkrupp rothe erde Slovakia, TIPOS, Tomra Sorting, Union zdravotná poisťovňa, UNIPETROL SLOVENSKO, UNIQA poisťovňa, U. S. Steel Košice, Vaillant Industrial Slovakia, Vertiv Slovakia, Visteon Electronics Slovakia, Visteon Slovakia, VODOHOSPODÁRSKA VÝSTAVBA, VOLKSWAGEN SLOVAKIA, Všeobecná úverová banka; skrátený názov: VÚB, Všeobecná zdravotná poisťovňa, VUJE, Východoslovenská distribučná, Východoslovenská energetika, WESTech, WHIRLPOOL SLOVAKIA, Wintro Asia, Yanfeng Slovakia Automotive Interior Systems, YURA Corporation Slovakia, Západoslovenská distribučná, Železiarne Podbrezová skrátene ŽP, Železnice Slovenskej republiky, Železničná spoločnosť Cargo Slovakia, Železničná spoločnosť Slovensko, ZF Active Safety Slovakia, ZF SACHS Slovakia, ZF Slovakia, ZKW Slovakia, ZSE Elektrárne, ZSE Energia] companySuffixes: [s.r.o., a.s., v.o.s., k.s.] companyEmails: [info, office] text: A cár s okom sklopeným na bojišti stojí. A čo? Azda tých padlých Slovänov sa bojí? Nie, lež bezdušné svojich hromady tam vidí a zo svojho víťazstva radovať sa stydí. No zahyň, studom večným zahyň, podlá duša, čo o slobodu dobrý ľud môj mi pokúša. Lež večná meno toho nech ovenčí sláva, kto seba v obeť svätú za svoj národ dáva. A ty mor ho! hoj mor ho! detvo môjho rodu, kto kradmou rukou siahne na tvoju slobodu, a čo i tam dušu dáš v tom boji divokom. Mor ty len, a voľ nebyť, ako byť otrokom. telephone_number_formats: ['+4219########'] postal_code: ['### ##'] city: [Bánovce nad Bebravou, Banská Bystrica, Banská Štiavnica, Bardejov, Bojnice, Bratislava, Brezno, Brezová pod Bradlom, Bytča, Čadca, Čierna nad Tisou, Detva, Dobšiná, Dolný Kubín, Dubnica nad Váhom, Dudince, Dunajská Streda, Fiľakovo, Gabčíkovo, Galanta, Gbely, Gelnica, Giraltovce, Handlová, Hanušovce nad Topľou, Hlohovec, Hnúšťa, Holíč, Hriňová, Humenné, Hurbanovo, Ilava, Jelšava, Kežmarok, Kolárovo, Komárno, Košice, Kráľovský Chlmec, Krásno nad Kysucou, Kremnica, Krompachy, Krupina, Kysucké Nové Mesto, Leopoldov, Levice, Levoča, Lipany, Liptovský Hrádok, Liptovský Mikuláš, Lučenec, Malacky, Martin, Medzev, Medzilaborce, Michalovce, Modra, Modrý Kameň, Moldava nad Bodvou, Myjava, Námestovo, Nemšová, Nesvady, Nitra, Nová Baňa, Nová Dubnica, Nováky, Nové Mesto nad Váhom, Nové Zámky, Partizánske, Pezinok, Piešťany, Podolínec, Poltár, Poprad, Považská Bystrica, Prešov, Prievidza, Púchov, Rajec, Rajecké Teplice, Revúca, Rimavská Sobota, Rožňava, Ružomberok, Sabinov, Šahy, Šaľa, Šamorín, Šaštín-Stráže, Sečovce, Senec, Senica, Sereď, Skalica, Sládkovičovo, Sliač, Snina, Sobrance, Spišská Belá, Spišská Nová Ves, Spišská Stará Ves, Spišské Podhradie, Spišské Vlachy, Stará Ľubovňa, Stará Turá, Strážske, Stropkov, Stupava, Štúrovo, Šurany, Svätý Jur, Svidník, Svit, Tisovec, Tlmače, Topoľčany, Tornaľa, Trebišov, Trenčianske Teplice, Trenčín, Trnava, Trstená, Turany, Turčianske Teplice, Turzovka, Tvrdošín, Veľké Kapušany, Veľký Krtíš, Veľký Meder, Veľký Šariš, Vráble, Vranov nad Topľou, Vrbové, Vrútky, Vysoké Tatry, Žarnovica, Želiezovce, Žiar nad Hronom, Žilina, Zlaté Moravce, Zvolen] street: [Agátová, Akademická, Ametystová, Andovská, Antolská, Apálska, Astrová, Átriová, Azalková, Azúrová, Bachingerovka, Bagarova, Bajanova, Bajčská, Bajkalská, Bajzova, Bakalárska, Bakossova, Balkán, Banícka, Banská, Banskobystrická, Baranyaiho, Bardejovská, Bariny, Baštová, Bayerova, Bažantia, Bazová, Beckovská, Belianska, Bellušova, Bencúrova, Bendíkova, Benkova, Beöthyho, Berek, Bernolákova, Bešeňovská, Beskydská, Bezručova, Bezručová, Bibic, Bikoš, Bitúnková, Björnsonova, Blahova, Bociania, Bočná, Bohúňova, Bohuslavická, Bojnická, Boorova, Borievková, Borkút, Borová, Bôrová, Borovianska, Borovicová, Botanická, Bottova, Bratislavská, Bratská, Brezová, Brigádnická, Bronzová, Broskyňová, Bubnová, Budovateľská, Buková, Bulharská, Burianova, Buzulucká, Bystrá, Čajakova, Čajkovského, Čapajevova, Cementárenská, Cemjata, Centrálna, Centrum, Čerešňová, Čergovská, Červeňanského, Česká, Chabenecká, Chalupkova, Chmeľová, Chotárna, Cíbická, Ciglianska, Cintorínska, Čipkárska, Čižmárska, Clementisa, Csokonaiho, Ctiborova, Čulenova, Cyrilometódska, Damjanichova, Dargovská, Dedinská, Detvianska, Devínska, Diamantová, Dibrovova, Dilongova, Divadelná, Dlhá, Dlhé, Dobronivská, Dobšinského, Dolná, Ďorocká, Dostihová, Dostojevského, Drevená, Drienková, Drieňová, Drozdia, Družicová, Družstevná, Dubová, Dúbravská, Dúhová, Dukelská, Duklianska, Duklianská, Ďumbierska, Dunajská, Dušianická, Dvorská, Elektrárenská, Engelsova, Eötvösa, Eszterházyovcov, Exnárova, Fajková, Fándlyho, Farská, Fatranská, Federátov, Felcánova, Fialková, Fínska, Fintická, Floriánova, Francisciho, Františkánov, Fučíkova, Gagarinova, Gápľová, Garážová, Garbanka, Garbiarska, Gaštanová, Gazdovská, Gerlachovská, Gogoľova, Golianova, Gombaiho, Gorazdova, Gorkého, Grešova, Gúgska, Haburská, Hadovce, Hadovská, Háj, Hájniky, Hájová, Hájska, Hálkova, Haluzická, Hamrovská, Handlovská, Hanzlíčkova, Harmanecká, Hasičská, Haškova, Havranské, Hečkova, Helenská, Hergottova, Herlianska, Heydukova, Hladná, Hlavná, Hlboká, Hlinická, Hlinícka, Hliníková, Hlinská, Hodonínska, Hodská, Hodžova, Holländerova, Hollého, Holubárov, Holubia, Holubičia, Holubyho, Horárska, Horná, Hornonitrianska, Horská, Hrabová, Hradecká, Hradištná, Hradná, Hradská, Hrebíčková, Hríbová, Hrnčiarska, Hronská, Hruny, Hrušková, Hrúšťova, Húlska, Hurbanistov, Hurbanova, Husova, Hutná, Hutníkov, Hviezdna, Hviezdoslavova, Iliašska, Imatra, Inovecká, Internátna, Inžinierska, Izbická, Jabloňová, Jahodová, Jakubská, Janáčkova, Jánošíkova, Jánošovská, Janouškova, Jánska, Jantárová, Jarková, Járková, Jarná, Jaselská, Jaseňová, Jaspisová, Jastrabia, Jatočná, Javorinka, Javorinská, Javornícka, Javorová, Jazdecká, Jazerná, Jazmínová, Jazvečia, Jedľová, Jégého, Jegorovova, Jelenia, Jelenie, Jelšová, Jeruzalemská, Jesenná, Jesenského, Jilemnického, Jiráskova, Jókaiho, Jonášovská, Judíkova, Jurkovičova, Justičná, Južná, Kafendova, Kalinčiakova, Kamencová, Kamenná, Kammerhofská, Kapitánová, Kapitulská, Karpatská, Kasárenská, Kategórie:, Katova, Katovná, Kilianova, Kimovská, Klampiarska, Kláštorná, Klčové, Klenová, Klinčeková, Klobučnícka, Kmeťova, Koceľova, Kočovská, Kodályova, Kolárova, Kolárovská, Kollárova, Kolónia, Kolož, Kolpašská, Komárňanská, Komenského, Komjatická, Komočská, Komorova, Koncová, Konečné, Konopná, Konštantínova, Konvalinková, Kopaniny, Koreszkova, Košická, Košikárska, Košovská, Kostiviarska, Kostolná, Kotrádova, Kováčska, Kozmonautov, Kragujevská, Krajinská, Krajná, Králická, Kráľovohoľská, Kráľovská, Kraskova, Krásna, Krátka, Krčméryho, Kremenisko, Kremnická, Krivá, Krivánska, Krížna, Krupinská, Krymská, Kukučínova, Kuneradská, Kúpeľná, Kúpeľné, Kutnohorská, Kútovská, Kutuzovova, Kúty, Kuzmányho, Kvetinová, Kvetná, Kvietnová, Kysihýbelská, Kysucká, Labutia, Ľaliová, Lándor, Langsfeldova, Ľanová, Lánska, Laskomerská, Lastovičia, Lazovná, Lécka, Lehárova, Lehotská, Lesná, Lesnícka, Letisková, Letná, Letohradská, Letomostie, Levočská, Lidická, Liesková, Lieskovská, Limbová, Lintich, Lipová, Líščia, Listová, Lodná, Lombardiniho, Lomnická, Ľubochnianska, Ľubotická, Lúčičky, Lúčky, Lúčna, Lúčová, Ľupčianska, Madácha, Madvova, Magurská, Majakovského, Majerská, Májová, Majstrovská, Makovického, Malá, Malachitová, Malachovská, Malinová, Malkovská, Mallého, Malobytčianska, Malodunajská, Malokarpatská, Malolehotská, Malonecpalská, Malookružná, Mariánska, Martinská, Masarykova, Matičná, Matúškovská, Maybaumova, Mazúrova, Medená, Mederčská, Mederská, Medová, Medvedia, Medzibriežková, Medzimlynie, Meňhartka, Mesačná, Meštianská, Metodova, Michalská, Mičinská, Mičurinova, Mičurova, Mierová, Mieru, Mikovíniho, Miksova, Minčolská, Mládeže, Mládežnícka, Mliekarenská, Mlynárska, Mlynská, Mnešická, Močiarna, Mojmírova, Mokraď, Montážna, Mosadzná, Moskovská, Moštenická, Mošteníkova, Mostná, Mostová, Môťovská, Moyzesova, Mraziarenská, Mrazničná, Mudroňova, Mukačevská, Murárska, Murgašova, Muškátová, Mýtna, Nábrežná, Nadjazdová, Nádražná, Nádvorná, Námestia, Narcisová, Národná, Nebojsa, Necpalská, Nedožerská, Nemčíkova, Nemocničná, Neresnická, Nerudova, Nešporova, Nesvadská, Nevädzová, Nezábudkova, Nezábudková, Nitrianska, Nižovec, Nová, Novomestská, Novozámocká, Obchodná, Obuvnícka, Obvodová, Odbojárska, Odborárov, Odborárska, Odborov, Okrajová, Okrúhla, Okružná, Októbrová, Olšavská, Ondavská, Opálová, Opatovská, Opavská, Oravská, Orechová, Oremburská, Orgovánova, Orgovánová, Orlia, Osadná, Osadová, Osiková, Osúchy, Ovčiarska, Ovocná, Palackého, Palárikova, Palatinová, Panciere, Pannónska, Parková, Parná, Partizánska, Pátrovská, Pávia, Pavlovská, Pažica, Pažitná, Pekná, Pelíškova, Peredzké, Pestovateľská, Petelenova, Petöfiho, Petőfiho, Petrovianska, Petrovská, Pezinská, Pieninská, Piesočná, Piešťanská, Pionierska, Pitvory, Pivovarská, Platanová, Plavárenská, Pletiarska, Plynárenská, Plzenská, Podbeľová, Podháj, Podhájska, Podhlinie, Podhorská, Podhradie, Podjavorinskej, Podjazdová, Podlavická, Podzámska, Pohraničná, Pohronská, Pokojná, Polkoráby, Poľná, Poľnohospodárska, Poľovnícka, Ponická, Popolíška, Popradská, Pöschlova, Poštová, Potočná, Považská, Povrazník, Povstalecká, Požiarnická, Práce, Prachatická, Pražská, Predmestie, Predmestská, Priama, Priateľstva, Pribinova, Priechodná, Priečna, Priehrada, Priemyselná, Prievidzská, Prírodná, Prístupová, Prostějovská, Prostredná, Prowazekova, Pršianska, Prvá, Pšurnovická, Puškinova, Púšť, Pustá, Račia, Radlinského, Radničná, Radvanská, Rajecká, Rákócziho, Rákoš, Rakytová, Rakytovská, Rastislavova, Rázusova, Reimanova, Remeselnícka, Remscheidská, Republikánska, Richtárska, Riečna, Robotnícka, Rohatecká, Roľnícka, Rombauerova, Rosinská, Rovná, Royova, Rozmarínová, Rožná, Rubínová, Rudelinova, Rudenkova, Rudlovská, Rudohorská, Rulandská, Rumanova, Rusínska, Ruská, Ruttkayovská, Ružová, Rybárska, Rybníčky, Rybničná, Sabinovská, Sadová, Šafárikova, Šalgotarjánska, Šalianska, Šalkovská, Šarišská, Sasinkova, Sásovská, Sázavského, Šebastovská, Sebedražská, Šebestova, Sekčovská, Senická, Seressa, Severná, Sibírska, Šidlovec, Šidlovská, Sihoť, Silvánska, Šípková, Široká, Sitnianska, Sitnianskeho, Skálna, Škarniclovská, Skladová, Sklenárska, Školská, Škorvánkova, Škovránkova, Skromná, Skrytá, Skubínska, Škultétyho, Skuteckého, Sládkovičova, Slanská, Slávičia, Slnečná, Slobody, Slovanská, Slovenská, Šmeralova, Smetanova, Smreková, Snežienková, Šobov, Sokolia, Sokolovská, Sokolská, Soľanková, Solivarská, Soľná, Soľnobanská, Šoltésovej, Somolická, Sosnová, Spannerovej, Špitálska, Spojná, Spojová, Spojovacia, Športová, Športovcov, Srnčia, Srnianska, Šrobárova, Staničná, Starohorská, Staromestská, Staromlynská, Staronová, Starozámocká, Šťastného, Stavbárov, Stavbárska, Stavebná, Štefánikova, Stoličková, Stračínska, Strakonická, Stránska, Strapáky, Stráž, Strážnická, Strážovská, Strážska, Strečnianska, Stredná, Strelecká, Strieborná, Štrková, Strmá, Strojárska, Strojnícka, Stromová, Štuadta, Študentská, Stupy, Štúrova, Súbežná, Sucháčovská, Suchomlynská, Suchoňova, Sudoměřická, Súhradská, Súkennícka, Šulekova, Súľovská, Šumperská, Surdok, Šurianska, Surovská, Šúrska, Sústružnícka, Suvorovova, Švábska, Svätojánska, Svätoondrejská, Svätoplukova, Švecova, Švermova, Svitavská, Svornosti, Tabaková, Tajovského, Tarjányiho, Tatranská, Technická, Tehelná, Tehelňa, Tematinská, Tenisová, Teplárenská, Terchovská, Terezov, Teriakovská, Tesárska, Thurzova, Tichá, Tkáčska, Tokajícka, Tolstého, Tomášikova, Topoľčianska, Topoľová, Továrenská, Tramínova, Traťová, Trávna, Trenčianska, Treskoňova, Trhová, Trnková, Trstinová, Tulipánová, Tulská, Turcová, Turecká, Turistická, Tušková, Tvrdošovská, Tyršova, Učiteľská, Udenárska, Údolná, Uhlištná, Uľanská, Ulice, Ulička, Unionka, Uramova, Urbánkova, Urbárska, Urxova, Úvozná, Úzka, Váhová, Vajanského, Valachova, Valchovnícka, Valkovská, Vally, Vansovej, Vápenická, Važecká, Včelárska, Velkodunajská, Veľkolehotská, Veľkomoravská, Veľkonecpalská, Veltlínska, Veselá, Veterná, Viestova, Vihorlatská, Vilová, Viničná, Vinohradnícka, Vinohrady, Višňová, Víťazstva, Vlčia, Vnútorná, Vodárenská, Vodná, Volgogradská, Vozová, Vranovská, Vŕbová, Vrchárska, Vrchovského, Vrchy, Východná, Vydumanec, Výpalisko, Výskumnícka, Vysoká, Vysokoškolákov, Weberova, Wolkerova, Zabíjaná, Žabky, Záborského, Zábrežná, Zadná, Zafírová, Záhonok, Záhradná, Záhradnícka, Záhumnie, Zajačia, Zálesná, Zámocká, Zámoryho, Západná, Zápotockého, Zápotočná, Zátočná, Závodská, Závoz, Zborovská, Zdravotnícka, Žebráky, Zelená, Železná, Železničiarska, Železničná, Zemplínska, Žilinská, Zimná, Zlatá, Zlatnícka, Zlatobanská, Žliabkova, Zlievárenská, Žofijská, Zornička, Zúgov, Župná, Zváračská, Zvolenská, Zvonová] country: ['Slovensko'] language: 'SK' ================================================ FILE: src/main/resources/jfairy_sv.yml ================================================ alphabet: abcdefghijklmnopqrstuvwxyzåäö domains: [se, nu, com] firstNames: { male: [Anders, Alexander, Andreas, Arne, Axel, Anton, Adam, Alf, Arvid, Albin, Ali, Allan, Alfred, André, Ahmed, Albert, Adrian, August, Ahmad, Alex, Alvar, Artur, Antero, Antonio, Alvin, Arnold, Algot, Arthur, Aron, Agne, Bengt, Bo, Bertil, Björn, Börje, Bernt, Bror, Birger, Benjamin, Benny, Bert, Bernhard, Bruno, Berndt, Billy, Bjarne, Ben, Bill, Boris, Brian, Bengt-Åke, Bilal, Berne, Berth, Bernard, Bashir, Bengt-Olof, Bastian, Bob, Bengt-Göran, Carl, Christer, Christian, Claes, Christoffer, Conny, Christopher, Charlie, Curt, Charles, Casper, Clas, Carlos, Christofer, Carl-Johan, Colin, Claes-Göran, Cristian, Calle, Crister, Chris, Cornelis, Cesar, Conrad, Caspian, Carl-Erik, Carl-Gustav, Clarence, Carsten, Carl-Henrik, Daniel, David, Dan, Dennis, Dick, Douglas, Dag, Dante, Donald, Denis, Didrik, Dragan, Danny, Dariusz, Dexter, Dimitrios, Dino, Dylan, Dejan, Denny, Damian, Diego, Dawid, Dieter, Damir, Deniz, Dominik, Dominic, Devin, Dario, Erik, Emil, Eric, Emanuel, Elias, Evert, Edvin, Einar, Ernst, Erland, Edvard, Elliot, Erling, Elis, Egon, Edward, Ebbe, Eskil, Eddie, Evald, Elof, Edwin, Enar, Eugen, Elton, Elvis, Emilio, Elvin, Esbjörn, Edgar, Fredrik, Filip, Folke, Felix, Frank, Frans, Fabian, Fred, Fritz, Fredric, Ferdinand, Franz, Fernando, Francisco, Freddy, Fadi, Finn, Fritiof, Freddie, Francis, Frej, Frederik, Felipe, Farhad, Fredrick, Farid, Faisal, Firas, Fouad, Florian, Gunnar, Gustav, Göran, Gustaf, Gösta, Georg, Gabriel, Göte, Gert, Gerhard, George, Glenn, Greger, Gottfrid, Gilbert, Gillis, Georgios, Grzegorz, Goran, Gotthard, Gordon, Görgen, Georges, Guy, Gideon, Gunder, Giovanni, Gary, Gusten, Gerry, Hans, Henrik, Håkan, Hugo, Henry, Harry, Harald, Hampus, Helge, Holger, Hjalmar, Herman, Henning, Hassan, Hannes, Herbert, Hilding, Hussein, Helmer, Henric, Hasan, Hasse, Hamid, Hans-Erik, Hamza, Hubert, Heikki, Hannu, Hossein, Hadi, Ingemar, Ingvar, Ivar, Inge, Isak, Ivan, Ibrahim, Ingmar, Isac, Ismail, Ilmari, Ian, Isaac, Isidor, Igor, Imad, Issa, Istvan, Ioannis, Ismael, Isa, Idris, Ingvald, Ismet, Imre, Ignacio, Imran, Ilyas, Ioan, Ivo, Johan, Jan, John, Jonas, Joakim, Johannes, Jörgen, Jonathan, Jesper, Joel, Jens, Jimmy, Jakob, Jacob, Johnny, Jonny, Josef, Juhani, Jonatan, Jan-Erik, Jack, Jim, Jon, Julius, James, Jerry, Joachim, Jan-Olof, Joacim, Jarl, Karl, Kjell, Kent, Kenneth, Kurt, Krister, Kristian, Knut, Klas, Kevin, Kristoffer, Kim, Kaj, Kenth, Kennet, Karl-Erik, Kristofer, Kalevi, Kalle, Kenny, Konrad, Kasper, Kari, Khaled, Krzysztof, Karim, Karl-Johan, Kai, Kalervo, Khalid, Lars, Lennart, Leif, Linus, Leo, Ludvig, Lucas, Lukas, Liam, Love, Lars-Erik, Leon, Leonard, Ludwig, Lars-Göran, Loke, Lars-Åke, Luis, Lars-Olof, Leopold, Lage, Levi, Louis, Lasse, Lars-Gunnar, Lars Erik, Leonardo, Lee, Lars Göran, Lowe, Mikael, Magnus, Martin, Mats, Mattias, Michael, Marcus, Max, Markus, Mohamed, Mathias, Mohammed, Morgan, Mohammad, Malte, Melker, Melvin, Mårten, Måns, Micael, Mauritz, Mohamad, Mustafa, Maximilian, Matti, Mahmoud, Milton, Manfred, Milo, Michel, Nils, Niklas, Niclas, Nicklas, Noah, Noel, Neo, Natanael, Nicolas, Nicholas, Nils-Erik, Nikola, Noa, Nabil, Niels, Naser, Napoleon, Nathanael, Nelson, Nathan, Nikolaos, Nils-Olof, Nikolai, Nick, Nikolaus, Nima, Nikolaj, Nils Erik, Nader, Nicolai, Olof, Oskar, Olov, Oscar, Ove, Ola, Olle, Oliver, Otto, Omar, Olavi, Ossian, Owe, Osman, Olav, Ole, Oliwer, Odd, Orvar, Osvald, Omer, Osama, Orlando, Omid, Olaf, Otis, Orhan, Onni, Olivier, Ozzy, Per, Peter, Patrik, Paul, Pär, Philip, Pontus, Petter, Pierre, Patrick, Peder, Per-Olof, Per-Erik, Patric, Piotr, Pekka, Pelle, Per-Åke, Pawel, Petri, Per-Olov, Petrus, Percy, Per-Arne, Per-Anders, Per-Ola, Pentti, Per Olof, Pål, Pehr, Quang, Quoc, Qasim, Qader, Qais, Qasem, Quentin, Quan, Qusay, Qendrim, Qadir, Qays, Qusai, Qiang, Qahtan, Quy, Quintus, Qazim, Qadar, Qvintus, Qi, Qassim, Quincy, Quyen, Qaisar, Qamil, Qutaiba, Qing, Qalid, Qaiser, Robert, Rolf, Roland, Roger, Rune, Robin, Rickard, Rasmus, Richard, Ragnar, Ronny, Rikard, Reinhold, Roy, Ruben, Ronnie, Rudolf, Ralf, Reza, Ronald, Raymond, Reine, Rafael, Roberto, Ralph, Roine, Raimo, Reidar, Ragnvald, Rainer, Sven, Stefan, Stig, Simon, Sebastian, Sten, Samuel, Sören, Sture, Sune, Staffan, Sigvard, Sixten, Svante, Sam, Sigurd, Stellan, Sven-Erik, Sigfrid, Said, Sonny, Sigge, Sami, Samir, Sivert, Seth, Sven-Olof, Sverker, Sakari, Sven-Åke, Thomas, Tommy, Tomas, Tobias, Torbjörn, Torsten, Tore, Tony, Tage, Tim, Tord, Tom, Theodor, Theo, Ture, Teodor, Tor, Torgny, Ted, Tapani, Tapio, Thure, Thor, Thore, Timo, Toni, Tomasz, Timmy, Thord, Thorbjörn, Ulf, Urban, Uno, Ulrik, Uolevi, Uwe, Ulrich, Unto, Ulric, Ulfsson, Usman, Umar, Udo, Ugur, Urpo, Urho, Usama, Umut, Ulfson, Ulf-Göran, Umberto, Uffe, Ur, Ullah, Ulises, Untamo, Uddin, Uddo, Ul, Ulv, Viktor, Vilhelm, Victor, Valdemar, Vincent, Valter, Valentin, Viggo, Verner, Vidar, Viking, Ville, Vilgot, Vilmer, Villy, Vide, Valfrid, Van, Veikko, Vladimir, Vallentin, Veli, Villiam, Veine, Vilde, Valentino, Vesa, Väinö, Veijo, Vilho, William, Wilhelm, Walter, Willy, Wilmer, Waldemar, Werner, Wille, Wiktor, Wolfgang, Walid, Wojciech, Wiggo, Wictor, Weine, Winston, Wilgot, Wael, Willem, Willhelm, Wincent, Wallentin, Wisam, Wilton, Wiking, Wieslaw, Waleed, Walther, Willi, Wladyslaw, Xavier, Xander, Xerxes, Xuan, Xin, Xhevat, Xiao, Xiang, Xhavit, Xu, Xhevdet, Xi, Xhafer, Xaver, Xavi, Xuong, Xhelal, Xiaojun, Xhemajl, Xiaodong, Xing, Xiaofeng, Xenofon, Xheladin, Xiaoming, Xiong, Xiaolong, Xia, Xiaowei, Xian, Yngve, Yusuf, Yousef, Youssef, Yousif, Yasin, Yahya, Yosef, Yassin, Yonas, Yrjö, Yaser, Yohannes, Younes, Yasir, Yasser, Yacoub, Yazan, Yunus, Yahye, Yousuf, Yemane, Yonis, Young, Yves, Yakob, Yong, Yakup, Yahia, Yilmaz, Zacharias, Zoran, Zakaria, Zackarias, Zbigniew, Zakarias, Zebastian, Zoltan, Zack, Zaid, Ziad, Zeljko, Zeb, Zlatko, Zeke, Zaki, Zlatan, Zion, Zsolt, Zeki, Zander, Zaher, Zdzislaw, Zana, Zakariya, Zain, Zuhair, Zeth, Zygmunt, Zdravko, Åke, Åge, Åkesson, Ål, Åkeson, Åsmund, Åskar, Åker, Åbjörn, Årad, Åse, Åsbjörn, Ås, Ådi, Ålråk, Ån, Åbri, Ådne, Åmid, Ånis, Åve, Årald, Ållis, Åsa-Nisse, Åke Lennart, Åstrad, Åsp, Åndh, Åre, Åttvid, Ärling, Ägir, Ämir, Ärtan, Ämin, Älvin, Ärland, Ärlan, Älgen, Älvis, Ärnie, Ärni, Ängel, Ärne, Ärlig, Änäs, Älg, Ärnst, Äcke, Ädam, Äser, Äshkan-Patrik, Äziz, Äriz, Ärons, Ärve, Äzher, Äzer, Ägid, Ärnfrid], female: [Anna, Anita, Annika, Astrid, Alice, Amanda, Ann, Agneta, Anette, Anneli, Alexandra, Agnes, Anne, Alva, Alma, Angelica, Ann-Marie, Annie, Annelie, Ann-Charlotte, Annette, Aina, Alicia, Ann-Christin, Andrea, Anna-Karin, Anne-Marie, Anna-Lena, Annica, Ann-Sofie, Birgitta, Barbro, Britt, Berit, Birgit, Britt-Marie, Britta, Beatrice, Brita, Bodil, Barbara, Beata, Britt-Mari, Bianca, Boel, Betty, Berta, Britt-Inger, Britt-Louise, Bella, Berith, Benita, Belinda, Brigitte, Bonnie, Birthe, Bozena, Beatriz, Bente, Björnsdotter, Christina, Cecilia, Carina, Camilla, Caroline, Charlotte, Charlotta, Carolina, Christine, Carin, Clara, Catharina, Catarina, Cornelia, Carola, Christin, Christel, Cristina, Catrin, Carmen, Carolin, Charlott, Cassandra, Cathrine, Claudia, Carita, Cajsa, Catherine, Clary, Catrine, Doris, Diana, Dagmar, Dagny, Desirée, Denise, Daniela, Daniella, Del, Disa, Dorotea, Desiré, Dina, Daisy, De, Danuta, Dorota, Dorothea, Dalia, Désirée, Danielle, Desideria, Dana, Desireé, Daga, Dolores, Denice, Dora, Deborah, Debora, Elisabeth, Eva, Elisabet, Emma, Elin, Elsa, Emelie, Erika, Emilia, Ebba, Ellen, Ella, Evelina, Elvira, Ester, Ellinor, Elise, Eivor, Eleonora, Ewa, Elina, Evy, Erica, Elsie, Emmy, Edith, Elizabeth, Edit, Elna, Eleonor, Frida, Felicia, Fanny, Filippa, Fredrika, Freja, Fatima, Frideborg, Florence, Fatma, Fatemeh, Farah, Fadumo, Fia, Flora, Fiona, Freya, Fatema, Francesca, Frances, Francisca, Fernanda, Fredrica, Fatou, Farida, Fariba, Faten, Febe, Franziska, Fartun, Gunilla, Gun, Gunnel, Gerd, Gunvor, Gudrun, Greta, Gabriella, Gunhild, Gertrud, Gunborg, Gun-Britt, Gerda, Gulli, Gisela, Gull-Britt, Göta, Gunn, Gunbritt, Gurli, Gullan, Gabriela, Görel, Gabrielle, Grace, Gullvi, Gina, Gunni, Gloria, Gertie, Helena, Hanna, Helen, Helene, Helén, Harriet, Hilda, Hillevi, Hedvig, Hannah, Heléne, Helga, Hjördis, Hilma, Hannele, Henrietta, Heidi, Hildegard, Hedda, Hassan, Hildur, Henny, Hussein, Hulda, Henriette, Hanne, Hanan, Hana, Hilkka, Hasan, Ingrid, Inger, Ida, Irene, Ingegerd, Inga, Ingeborg, Ingegärd, Ingela, Isabelle, Isabella, Iréne, Iris, Inga-Lill, Irma, Ingalill, Inez, Isabell, Isabel, Inga-Britt, Ing-Marie, Ing-Britt, Ines, Ilona, Isa, Ingvor, Ina, Inkeri, Ibrahim, Irina, Johanna, Jenny, Julia, Jessica, Josefin, Josefine, Jeanette, Jennifer, Jennie, Josefina, Jane, Jonna, Joanna, Josephine, Jasmine, Janet, Judith, Jasmin, Jill, Juni, Joline, Jacqueline, Janina, Jessika, Judit, Julie, Jaana, Jenni, Jasmina, Jelena, Kristina, Karin, Kerstin, Katarina, Karolina, Kristin, Klara, Kajsa, Katrin, Kaarina, Karina, Kim, Katharina, Kristine, Katja, Katarzyna, Kristiina, Kyllikki, Kersti, Karolin, Karoline, Krystyna, Kate, Karla, Karen, Kaisa, Kirsti, Katrine, Katariina, Kirsten, Linnéa, Lena, Linnea, Louise, Linda, Lovisa, Lisa, Lina, Lisbeth, Lilian, Linn, Lilly, Laila, Lillemor, Liv, Lotta, Laura, Lisbet, Lova, Liselotte, Liselott, Lucia, Liisa, Lea, Lydia, Leila, Lise-Lotte, Li, Livia, Lily, Maria, Margareta, Marie, Marianne, Malin, Monica, Matilda, Margaretha, Märta, Maja, Mona, Madeleine, Monika, Magdalena, Maj, Marita, Moa, Margit, Mari, Maj-Britt, Martina, Mikaela, Maud, Marie-Louise, Marina, Mary, My, Mathilda, Madelene, Molly, Nina, Nathalie, Nora, Natalie, Nellie, Nova, Nicole, Nelly, Natalia, Nancy, Nadja, Nadia, Nanna, Nanny, Naemi, Nike, Noomi, Ninni, Naima, Noor, Nada, Nour, Naomi, Nicolina, Nadine, Nikki, Novalie, Nikita, Nea, Natasha, Olivia, Olga, Ottilia, Orvokki, Omar, Osman, Ofelia, Olofsdotter, Othilia, Oliwia, Otilia, Oline, Olena, Onerva, Outi, Oksana, Ophelia, Oili, Omer, Olivera, Ola, Odette, Othman, Oda, Olovsdotter, Olympia, Olly, Oxana, Oana, Olasdotter, Pia, Pernilla, Petra, Paulina, Patricia, Paula, Pauline, Petronella, Pirjo, Pamela, Pirkko, Päivi, Persdotter, Paola, Philippa, Peggy, Penny, Phuong, Pilar, Patrycja, Parisa, Petersdotter, Pauliina, Parvin, Päivikki, Perla, Pernille, Paulin, Pixie, Polly, Qasim, Quynh, Qamar, Qing, Qi, Qader, Qendresa, Qian, Quyen, Qin, Qays, Qusay, Quan, Queen, Qiong, Que, Qali, Qadir, Qaali, Qamile, Qadro, Qais, Qasem, Qadra, Qizi, Qahtan, Qassim, Queenie, Qui, Qun, Rut, Rebecca, Rebecka, Ruth, Rose-Marie, Ragnhild, Ronja, Regina, Rita, Rosa, Rigmor, Rosita, Rose, Ritva, Renée, Ros-Marie, Riitta, Rakel, Ramona, Raija, Runa, Renate, Raili, Ragna, Rana, Renata, Ros-Mari, Rania, Rosalie, Rosanna, Sofia, Sara, Susanne, Siv, Sandra, Sofie, Sonja, Stina, Signe, Solveig, Saga, Sigrid, Susanna, Svea, Sanna, Sylvia, Siri, Selma, Sarah, Stella, Sophie, Sabina, Sophia, Sofi, Susann, Sally, Simone, Stephanie, Suzanne, Solvig, Therese, Therése, Teresia, Tina, Tyra, Tove, Tilda, Tindra, Thea, Tilde, Tuva, Terese, Teresa, Thi, Theresia, Tova, Tuulikki, Tora, Tanja, Theres, Tuula, Tea, Tellervo, Theresa, Thyra, Tarja, Torborg, Tatiana, Tamara, Terttu, Ulla, Ulrika, Ulla-Britt, Ulrica, Ursula, Ulfsdotter, Ulla-Britta, Urszula, Unni, Ulla-Karin, Ulla Britt, Ulla-Stina, Una, Ulla-Maj, Ulrike, Ulla-Lena, Ubah, Ulla-Brita, Uma, Ute, Ullabritt, Ulla-Carin, Unn, Ullrika, Ulla-Greta, Unelma, Ulla-Maija, Ulla-Marie, Undine, Ulla Karin, Viola, Viktoria, Victoria, Veronica, Vera, Vilhelmina, Valborg, Vanja, Vilma, Veronika, Vendela, Vanessa, Viveka, Vivianne, Valentina, Vivi, Vivi-Ann, Vivan, Viveca, Vega, Vivian, Vilda, Virginia, Viviann, Vivi-Anne, Vilja, Vesna, Valeria, Violet, Vibeke, Wilma, Wilhelmina, Wiktoria, Wilda, Wiola, Wera, Wanda, Wictoria, Weronica, Weronika, Wanja, Wenche, Wendela, Wafaa, Wiveca, Wivi, Wieslawa, Wendy, Wilja, Wiveka, Wioletta, Wafa, Winnie, Wivianne, Wei, Waltraud, Wivi-Ann, Walid, Wilhelmine, Wally, Ximena, Xenia, Xuan, Xin, Xiao, Xia, Xiomara, Xue, Xi, Xhemile, Xiu, Xhevahire, Xiaoyan, Xhevrije, Xiang, Xena, Xiaoli, Xiaohong, Xinyi, Xing, Xiaojing, Xiaoyu, Xandra, Xu, Xian, Xantippa, Xiaomei, Xiaoying, Xiaowen, Xhejlane, Yvonne, Ylva, Yasmin, Yasmine, Yvette, Yusuf, Yara, Yousif, Ying, Yasemin, Young, Yrsa, Yolanda, Yousef, Yan, Yusra, Yen, Ywonne, Yordanos, Yasmina, Yu, Yi, Yulia, Yildiz, Yodit, Yun, Yee, Yassin, Yvonn, Yasin, Zahra, Zandra, Zainab, Zofia, Zara, Zeinab, Zoe, Zelda, Zahraa, Zeynep, Zarah, Zina, Zuzanna, Zenita, Zorica, Zehra, Zsuzsanna, Zanna, Zohreh, Zohra, Zoey, Zaida, Zlata, Zita, Zaynab, Zena, Zaid, Zdenka, Zamzam, Zana, Åsa, Åse, Åkesdotter, Åza, Åsa-Britt, Åsa-Lena, Ågot, Åslög, Åse-Marie, Åsa-Marie, Åsa-Maria, Åshild, Åsa-Karin, Åker, Åsa-Lill, Ål, Ån, Åse-Lill, Åsta, Åsa Maria, Åsalill, Åsa-Mari, Åse-Britt, Åse Marie, Åsa-Hanna, Åsa-Pia, Åse-Mari, Åsa-Stina, Åsadotter, Åhsa, Ängla, Älva, Ängel, Ärla, Ärna, Ämma, Ärtan, Äwa, Älvan, Äva, Ärlis, Älwa, Älvira, Älva-Li, Ädla, Älvina, Älsa, Älfva, Änsi, Äja, Ängla-Li, Älvali, Äya, Ämeli, Äsia, Änges, Ännie, Älin, Ängsmaja, Älfa] } lastNames: { male: [Aagesdatter, Aarestrup, Aasen, Abelsen, Abildgaard, Abrahamsdotter, Abrahamsen, Abrahamsson, Abramsdotter Brännström, Achton, Adamsson, Adersson Almertz, Adolfsson, Adtzarsdotter, Adtzarsen, Adtzersdotter, Adtzerson, Adtzersson, Adtzersson Forsström, Adtzersson Rug, af Forsell, af Ström, Agelmo, Agerup, Aggerup, Agner, Ahl, Ahlberg, Ahlbin, Ahlbom, Ahlin, Ahlstedt, Ahlström, Ahnfeldt, Albrechtsson, Aldewelt, Aldrin, Alexandersdotter, Alexandersson, Alfredsson, Allesen, Allesen Bunkeflod, Allesen de Fine Bunkeflod, Allesen-Vernö, Allison, Almén, Almgren, Almqvist, Alrom, Alsén, Alteresius, Ancher, Anchersen, Ancker, Anderberg, Anderdotter, Anders, Andersdatter, Andersdotter, Andersdotter, Andersdotter Andersson, Andersdotter Bager, Andersdotter Lundberg, Andersen, Anderson, Andersson, Andersson Ahl, Andersson Anderberg, Andersson Anderström, Andersson Berglund, Andersson Bock, Andersson Boström, Andersson Bränn, Andersson Ekdahl, Andersson Eklund, Andersson Fastberg, Andersson Fridlund, Andersson From, Andersson Granat, Andersson Haeffner, Andersson Hagelin, Andersson Hejde, Andersson Hjälte, Andersson Lind, Andersson Lindqvist, Andersson Lindström, Andersson Lundström, Andersson Odhnoff, Andersson Olin, Andersson Rehn, Andersson Sandberg, Andersson Sjöström, Andersson Skog, Andersson Strand, Andersson Törne, Andersson Wikman, Andersson Winberg, Andersson Östman, Andesen, Andrassy, Andreasdatter, Andreasdotter, Andreasen, Andreasson, Angel, Angelberg, Anthon, Appelmark, Arctander, Arelsson, Arendorf, Arendtson, Arent, Arentsdatter, Arildsdotter, Armfelt, Arnander, Aronsson, Arosenius, Arvidsdotter, Arvidsson, Ascanius, Asisef, Askulin, Asmundsdotter, Asmundsson, Asmunsson, Asmussen, Asproth, Assarsdotter, Assarsson, Assarsson Åkerman, Assersdotter, Assersson, Assmundsson, Aubert, Augustin, Augustsdotter, Aulander, Avander, Axell, Axelsdotter, Axelson, Axelsson, Baark, Bach, Bache, Bachmann, Backe, Backlund, Backman, Backström, Baeckström, Bager, Bagger, Bahnson, Bang, Bangert, Barck, Barfod, Barfoed, Barfred, Barlit, Bartholdson, Barting, Barting Haeffner, Barzen, Basballe, Bathe, Battus, Baumann, Baumgarten, Bay, Bech, Beck, Becker, Beckmann, Beckwith-Lohmeyer, Bemarell, Benander, Bencke, Bendiksdatter, Bendz, Benedictson, Benedikt, Bengtsdotter, Bengtsdotter Hejde, Bengtsdotter Spanier, Bengtsson, Bengtsson Bergfors, Bengtsson Björk, Bengtsson Frost, Bengtsson Hejde, Bengtsson Korp, Bengtsson Lindén, Bengtsson Ljungqvist, Bengtsson Lundgren, Bengtsson Rudolf, Bengtsson Spanier, Bengtsson Wallersteen, Bengtsson Öst, Bengtström, Benjaminsdotter, Bentsen, Bentzen, Bentzien, Bentzon, Benzer, Benzon, Ber, Bercher, Berendt, Berg, Bergdahl, Bergdal, Bergeld, Bergelin, Bergencrona, Bergendal, Bergendorff, Bergenenhammer, Bergenfeldt, Bergeschou, Bergfors, Berggreen, Berggren, Berghman, Bergkvist, Berglund, Bergman, Bergner, Bergquist, Bergqvist, Bergstedt, Bergsten, Bergstrand, Bergstrom, Bergström, Bergvall, Berlin, Berndtsson, Bernhardsdotter, Bernhardsson, Bernström, Berntsdotter, Berntsson, Berntsson Berg, Berregaard, Bertelsdatter, Bertelsdatter, Bertelsdotter, Bertelsen, Bertelsson, Bertilsson, Bertle, Beutner, Bianco Boeck, Bie, Bieragger, Bierg, Bierum, Biilmann, Bild, Bilde, Bildt, Bill, Billabong, Billabong, Billberg, Billbergh, Bille, Bille-Brahe af Svanholm, Billenberg, Billgren, Billing, Billman, Billström, Billström Nilsdotter, Bilsted, Birch, Birck, Birkedal, Bisserup, Bisted, Biörnsson, Bjelkström, Bjerg, Bjerger, Bjerring, Bjushed, Björk, Björklund, Björkman, Björnberg, Björner, Blad, Bladh, Bladlund, Blaylock, Blegvad, Blicher, Blichfeldt, Blitzén, Blix, Blixt, Bloch, Blom, Blomberg, Blomkvist, Blomqvist, Blomsterberg, Blomsterqvist, Blomstrand, Blume, Blücher, Bock, Bodemayer, Bodinsson, Bogren, Bohle, Bohman, Bohn, Boijsen, Bokelund, Bokstad, Bolin, Bolmeér, Boman, Bonde, Bondesdotter, Bondesson, Bonne, Bonnevie, Bonnevier, Bonskog, Boosdotter, Borberg, Borelli, Borg, Borgelin, Borggren, Borgh, Borgkvist, Borglin, Borgman, Borgqvist, Borgström, Bornemann, Borreschmidt, Borthig, Bosdotter, Boström, Both, Botvidsson, Bovin, Boyesen, Boysen, Brahe, Brammer, Bramsen, Brandling, Brandt, Brangstrup, Branth, Branting, Branting, Brask, Brauer, Braun, Braunstein, Bredal, Breegaard, Bregendahl, Brehmer, Bremer, Brieger, Brilioth, Bringentoff, Brink, Brix, Broch, Brock, Brodersen, Broge, Brogren, Brolin, Brolund, Broman, Broomé, Brorsdotter, Brorson, Brorsson, Bruce, Brumberg, Brun, Brunsson, Bruun, Brüdigam, Brÿgger, Bryngelsson, Bryngelsson Bjushed, Bryngelsson Jardesten, Bryngelsson Ryberg, Brysting, Brytz, Brännström, Buch, Buchhave, Buchwald, Bugge, Bull, Bulow, Bunkeflod, Burmaister, Burman, Burmeister, Burss, Burvall, Busk-Jepsen, Busse, Bügler, Bützow, Bång, Bäck, Bäckström, Bängts, Börgesson Law, Börjasson, Börjesson, Callmer, Calow, Cammermeyer, Campos Valdés, Candelin, Caradja, Carlheim, Carlheim-Gyllenskiöld, Carlsdotter, Carlsdotter Eriksson, Carlsen, Carlsson, Carlsson Bager, Carlsson Brandstad, Carlsson Cagéll, Carlsson Dahlberg, Carlsson Dahlqvist, Carlsson Hallberg, Carlsson Karlzén, Carlsson Landén, Carlsson Listerberg, Carlsson Thorsberg, Carlsson Thulin, Carlsson von Magius, Carlsson Öberg, Carlström, Carr, Caspersson, Cederberg, Cederholm, Cederlund, Challamell, Charleville, Charling, Charpentier, Charr, Chaura Deumacan, Chenoweth, Chirkova, Christell, Christensdatter, Christensdotter, Christensen, Christensen, Christensen Keitt, Christensen Snejstrup, Christensson, Christensson Lundstätt, Christersson, Christiansdatter, Christiansdotter, Christiansen, Christiansson, Christoffersdatter, Christoffersdotter, Christoffersen, Christoffersson, Christophersson, Claesson, Clase, Clason Lund, Classén, Classon, Clausen, Clausson, Clemedsson, Clemens, Clemensdatter, Clemensson, Clementsdotter, Collberg, Collberg Jarke, Colliander, Collin, Colonna de Leca, Condé, Cordes, Cornelius, Corneliusdotter, Cortsen, Covot, Cramer, Crawford, Cremon, Cristensen, Crona, Cronberg, Crone, Cronholm, Cronlund, Cronqvist, Cruys, Dahl, Dahlberg, Dahlbom, Dahlgren, Dahlin, Dahlkvist, Dahlman, Dahlquist, Dahlqvist, Dahlström, Dahnsson, Dahqvist, Dajrtendich, Dalberg, Dalgren, Dalman, Dam, Damm, Damm Jensen, Damm-Pedersen, Danelius, Danielsdotter, Danielsen, Danielsson, Danielsson Hartelius, Dankwardt-Lilieström, Darell, Darre, Daun, Davidson, Davidsson, de Armas Ramírez, de Bang, de Bruce, de Ferry, de Fine, de Fine Licht, de Fine Olivarius, de Hemmer, de la Cour, de Neergaard, Degerman, Degermark, Deichmann, Demidoff, Demuth, Dessau, Díaz, Dietrich, Dinesdatter, Dinesen, Dobson, Dochedahl, Dochedahl-Petersen, Dockendorf, Dormé, Dorn, Dornonville de la Cour, Doslic, Drechsel, Dressel, Drews, Dreyer, du Bois, du Plesis De Richelieu, Dunér, Duus, Duval, Duvander, Dyberg, Dyker, Dyrbye, Dürkopp, Dürr, Ebbasdotter, Ebbesen, Ebbeson, Ebbesson, Ebling, Edberg, Edelberg, Edén, Edholm, Edin, Edling, Edvardsdotter, Edvardsson, Edwardsson, Eek, Eftevaag, Egeberg, Ehlers, Ehrning, Ek, Ekberg, Ekblad, Ekbladh, Ekblom, Ekborg, Ekdahl, Ekelund, Ekeman, Ekenberg, Ekenman, Ekeroth, Eklund, Eklöf, Eklöv, Ekman, Ekstrand, Ekström, Ekvall, Elam, Elfström, Elg, Eliadotter, Eliasdotter, Eliasson, Eliasson Lindell, Elke, Ellberg, Ellefsen, Ellertsson, Elling, Ellington, Elmén, Elmquist, Elofsdotter, Elofsson, Eman, Emanuelsdotter, Emanuelsson, Emanuelsson Ekblad, Emborg, Enberg, Eneberg, Enevaldsson, Engberg, Engblom, Engdahl, Engler, Englund, Engman, Engqvist, Engstedt, Engstrand, Engström, Engvall, Enkvist, Erhardi, Erichsen, Erichson, Erichsson Kihl, Ericksson, Ericsdotter, Ericsson, Eriksdatter, Eriksdotter, Eriksen, Erikson, Eriksson, Eriksson Energren, Eriksson Hedquist, Eriksson Hultberg, Eriksson Krycker, Eriksson Åman, Erlandsdotter, Erlandsson, Erlandsson, Erlström, Ernstdotter, Ernvall, Ersdotter, Ersson, Ersson Lindström, Ertiksson, Esbjörnsdotter, Eskelsson, Eskildsdotter, Eskilsdotter, Eskilsson, Estensen, Estoesta, Eurenius, Evald, Everlöf, Eyermann, Fabricius, Fader, Faederholdt, Fagerberg, Fahlgren, Fahlman, Fahlstedt, Faith, Falck, Falk, Falkenberg, Falkvall, Fastberg, Faurschou, Feilberg, Feiniger, Feininger, Fensmark, Ferngren, Fernström, Ferrer, Ferrer Weinschenck, Ferslev, Fibiger, Fick, Fiedler, Filipson, Findelius, Finman, Finnman, Fjällström, Flaméhn, Fledelius, Fleihan, Flensburg, Flink, Flintzberg, Flodman, Florinsky, Flygare, Flögt, Fock, Fogelberg, Fogh, Fors, Forsberg, Forselius, Forsell, Forslund, Forsman, Forssén, Frandsdatter, Frandsen, Frank, Franke, Fransson, Frantzdatter, Franzén, Frederiksen, Fredriksdotter, Fredriksson, Freij, Frej, Frese, Friberg, Friberg-Ekberg, Fribert, Frid, Friese, Friis, Frimodt, Frisendahl, Frisk, Frisk "Frisch", Fristedt, Fritiof, From, Frosetter, Frost, Fröberg, Fröjd, Frönell, Fugl, Fuglede, Fuller, Funch, Füchslin, Fyhr, Fynboe, Fält, Fältström, Gabrielsdotter, Gabrielsson, Gad, Gadamer, Gade, Galle, Gamél, Gammeltoft, Garland Elam, Garmann, Gasslander, Gedeborg, Gehrt, Geijer, Gelin, Genefke, Genschow, Georgsdotter, Gerberg, Gerdtsdotter, Gerdtsson, Gergi, Gergi Lundstedt, Germansen, Germundsson, Giedde, Gielff, Giessing, Gilde, Gillberg, Gislander, Gjedde, Gjertsen, Gjuditz, Glahn, Glerup, Glud, Goelitz, Gommesen, González Más, González Pena, Gorra, Gorra Weinschenck, Gottlander, Graf, Grahn, Gran, Granberg, Granholm, Grankvist, Granlund, Granqvist, Granstedt, Granström, Green, Greisbach, Gren, Greve, Grip, Grubbe, Grundeis, Grundström, Grut, Grähs, Grönkvist, Grönquist, Grönvall, Grönwall, Gudfastersen, Gudmonsdotter, Gudmundsdotter, Gudmundsson, Gudmunsson, Guldberg, Guldbrandsen, Gullberg, Gullqvist, Gullstrand, Gulstad, Gultzau, Gumme Pers, Gummesen, Gummesson, Gummesson Lindkvist, Gunarsdotter, Gunnarsdotter, Gunnarsson, Gunnér, Guntell, Guskasson, Gussarsson, Gustafsdotter, Gustafsdotter Lindblom, Gustafsdotter Möller, Gustafsdotter Spanier, Gustafsson, Gustafsson Edling, Gustafsson Fernström, Gustafsson Spanier, Gustafsson Ulfsax, Gustavsdotter, Gustavsson, Gustavsson Tillrooth, Gyldencrantz, Gylding, Gyllén, Günther, Gärdehall, Göransdotter, Göransson, Görgensen, Götz, Haagen, Haastrup, Haeffner, Haeffner, Haeffner-Flodman, Hafström, Hagblom, Hagefeldt, Hagelin, Hagemann, Hagéus, Haggärde, Haglund, Hagman, Hagström, Hahn, Hake, Halbert, Haleby, Hall, Halland, Hallberg, Halleby, Hallenborg, Haller, Hallgrímsdóttir, Hallin, Halling, Hallström, Hals, Halvarsson, Halved, Halvorsen, Hamilton, Hamlett, Hamlin, Hammar, Hammarberg, Hammarbäck, Hammarlund, Hammarqvist, Hancke, Hansdotter, Hansdotter Bunkeflod, Hansdotter de Fine, Hansen, Hansen, Hansen Borntoft, Hansen Riber, Hansesdotter, Hanson, Hansson, Hansson Dalberg, Hansson Engström, Hansson Eriksson, Hansson Lindberg, Hansson Lundberg, Hansson Lundstedt, Hansson Löf, Hansson Roth, Hansson Sjölin, Hansson Spanier, Hansson-Dahl, Haraldsdotter, Haraldsson, Harboe, Harder, Hart, Hartelius, Hartwig, Hartwigsson, Hartzberg, Hasfeldt, Haslund, Hasselquist, Hasselqvist, Hastrup, Hatting, Hauch, Hazell, Hecht, Heckscher, Hecksher, Hector, Hedberg, Hedberg "Leander", Hedblom, Hedeberg, Hedeby, Hedeman, Hedenskog, Hedenstierna, Hedkvist, Hedling, Hedlund, Hedman, Hedquist, Hedqvist, Hedström, Hedvalls, Hedvist, Heering, Héhn, Heiberg, Heiberg Ipsen, Heidenberg, Heikel, Heitmann, Hejde, Hejlesen, Hektor, Helander, Helgesson, Heljeberg, Heljesdotter, Heljesson, Hellberg, Hellén, Hellgren, Hellman, Hellstadius, Hellström, Helmer, Hemberg, Henckel, Hendriksson, Henningsen, Henrichsen, Henrichsson, Henricsdotter, Henriksdotter, Henriksen, Henriksson, Henriksson Dalberg, Henriksson Hallberg, Henriksson Hyllén, Henriksson Persson, Henrysson, Herazeck, Herder, Herforth, Herlman, Hermansdotter, Hermansen, Hermansson, Hermodsson, Hern, Herrman, Herskind, Hersvall, Hertz, Hertzberg, Hertzman, Herztler, Hessellund, Hesselman, Hetting, Heuch, Heurlin, Hieronimusdatter, Hieronimussen, Higgens, Hilding, Hillborg, Hillman, Hindrichsdotter, Hindrichsson, Hindricsdotter, Hingtsasdotter, Hinrichsen, Hinsasdotter, Hinsasson, Hinsesson, Hjelm, Hjelmdrop, Hjort, Hjorth, Hjorthagen, Hjortsberg, Hjuler, Hober, Hoff, Hoff Hansen, Hoffensberg, Hoffman, Hoffmann, Hofsteter, Holbech, Holbek, Holgersdotter, Holgersen, Holgersson, Holland, Holm, Holmberg, Holmblad, Holmgren, Holmkvist, Holmlund, Holmquist, Holmqvist, Holmstedt, Holmström, Holst, Holst Kjeldsen, Holtzbro, Hoppe, Hopper, Horn, Horneman, Hornemann, Hortman, Hostrup Schultz, Hougaard, Hoversdatter, How, Howitz, Hugosson, Huhne, Hult, Hultberg, Hultén, Hultgren, Hultin, Hultman, Hurtig, Huss, Hutfeld, Huth, Hvid, Hviid, Hwasser, Hydfeldt, Hyllested, Hüttmann, Hågensdotter, Håkansdotter, Håkansson, Hård af Segerstad, Häger, Hägerman, Hägg, Hägglund, Hällberg, Häller, Hällgren, Häsler, Högberg, Höglund, Högrelius, Hörberg, Hörjesson, Hörngren, I Kroen, Ifvarsson, Ifversson, Ingelsdotter, Ingelson, Ingelsson, Ingelsten, Ingemansson, Ingemarsdotter, Ingemarsson, Ingerslev, Ingesdotter, Ingesson, Ingram, Ingvarsdotter, Ingvarsson, Ingvartsen, Ipsdatter, Ipsen, Irestam, Irmlev, Isaksdotter, Isaksson, Isenberg, Isibarth, Israel, Ivarsdotter, Ivarsson, Iversen, Jacksson, Jacobi, Jacobsdatter, Jacobsdotter, Jacobsen, Jacobsson, Jahn, Jahnsson, Jakobsdotter, Jakobsson, Jakobsson, Jannesson, Jansdotter, Jansdotter Öman, Jansen, Jansson, Jansson Eriksson, Jansson Haeffner, Jarl, Jarle, Jarnestad, Jensdatter, Jensdatter, Jensdatter, Jensen, Jensen Lang, Jensen Vestergaard, Jensenius, Jensön, Jeppasdotter, Jeppasson, Jeppesdotter, Jeppesen, Jeppsdotter, Jeppsson, Jeppsson Forsberg, Jepsdotter, Jepsson, Jernberg, Jersild, Jespersen, Jessen, Jochumsen, Jockumsen, Joensdotter, Joensson, Johannesdotter, Johannesson, Johannesson Nordell, Johannesson Winberg, Johannisdotter, Johannisson, Johansdotter, Johansdotter Palm, Johansdotter Sundell, Johansen, Johansson, Johansson Bergeld, Johansson Bergenfeldt, Johansson Burman, Johansson Einald, Johansson Ekström, Johansson Frönell, Johansson Granberg, Johansson Hagberg, Johansson Hedquist, Johansson Holmgren, Johansson Jarlestam, Johansson Killberg, Johansson Lindberg, Johansson Malmqvist, Johansson Marklund, Johansson Persson, Johansson Sjöberg, Johansson Sundqvist, Johansson Åhl, Johansson Öberg, Johansson Öst, Johnsdotter, Johnson, Johnsson, Johnsson Friberg, Jonasdotter, Jonasdotter Nordlund, Jonasson, Jonasson Norlund, Jonasson Sandstedt, Jonasson Skoglund, Jonelind, Jonsas, Jonsdotter, Jonsen, Jonson, Jonsson, Jonsson Gärefors, Jonsson Lindal, Jonsson Nordlund, Jonsson Söderblom, Jordán Suri, Joseph, Josjö, Juel, Juhl, Juhlin, Julin, Juncker, Jungbeck, Juringius, Just, Just-Nielsen, Justesen, Juul, Jürgens, Jäderström, Jöns, Jönsdotter, Jönsdotter Ekström, Jönsdotter Hagblom, Jönsdotter Lindström, Jönsson, Jönsson Bjelland, Jönsson Bjerborn, Jönsson Björk, Jönsson Brandt, Jönsson Collberg, Jönsson Ekström, Jönsson Flenner, Jönsson Grevstad, Jönsson Haak, Jönsson Hektor, Jönsson Holmqvist, Jönsson Hultgren, Jönsson Kristoffersson, Jönsson Murberg, Jönsson Möllergren, Jönsson Nilsson, Jönsson Nåvall, Jönsson Rosander, Jönsson Rosdahl, Jönsson Rosendahl, Jönsson Rydinger, Jönsson Stenberg, Jönsson Stjernfeldt, Jönsson Svan, Jönsson-Lörd, Jörans, Jöransdotter, Jöransson, Jörgensen Wain, Jörgonson, Kaalund, Kaas, Kaas af Mur, Kabell, Kafle, Kahn, Kall, Kalldin, Kallenberg, Kallmer, Kames, Kamf, Kamp, Kamph, Kampmann, Kapferer, Karadja, Karadja pascha, Karlbeck, Karlbäck, Karlsdotter, Karlsdotter, Karlsson, Karlsson Listerberg, Karlsson Nilsson, Karlsson Rabe, Karlsten, Karström, Kasparsdotter, Kastensdotter, Kastnyr, Keil, Kelfve, Kellgren, Kellmodin, Kenne, Kieldsdatter, Kieldsen, Kieldsson Lilja, Kierbye, Kiersgaard, Kierulf, Kihlmark, Kinberg, Kinch, Kipp, Kirkeby, Kirketerp, Kirschner, Kisbye, Kjeldahl, Kjelder, Kjeldsdatter, Kjeldsen, Kjeldsen Weinschenck, Kjellberg, Kjellerup, Kjellgren, Kjellin, Kjellman, Kjellsson, Kjerstensson, Kjerulf, Kjerulff, Klang, Klang Perrsdotter, Klang Persdotter, Klang Persson, Klarin, Klassén, Klassén Sundström, Klaug, Klausch, Klefelt, Klein, Kleinsorg, Klemedsson, Klensorg, Klerebladh, Klim, Kling, Klingenberg, Klinterot, Klog, Klohs, Klohs Rambech, Knopf, Knudsdatter, Knudtzen, Knudtzon, Knutsdotter, Knutson, Knutsson, Kobb, Koch, Kock, Koefoed, Kofod, Kofoed, Kohrtz, Kojima, Koll, Kollerup, Kolòdkin, Komstedt, Korneliusdotter, Korneliusson, Krabbe, Kraft, Krafve, Kragballe, Kragh, Kramer, Krapf, Krath, Krebs, Krehmer, Krieger, Krikström, Kristensdotter, Kristensen, Kristensson, Kristiansdotter, Kristiansdotter Wikman, Kristiansen, Kristiansson, Kristiansson Carlsson, Kristoffersdotter, Kristoffersen, Kristoffersson, Kristoffersson Dahlqvist, Kristoffersson Rosberg, Kristoffersson Syrén, Kroch, Krog, Krog, Krog-Meyer, Krogh, Kron, Kronkvist, Kronquist, Kronqvist, Kronvall, Kruse, Kulldorff, Kuntze, Kuylenstierna, Kuylenstjerna, Kvist, Kÿkler Kjökler, Kynde, Küttner, Kåge, Kåhre, Käll, Källman, Källström, Känne, Kölichen, Köller, la Cour, La Fleur, Lacey, Lager Malmberg, Lagerbielke, Lagerlöf, Lagerqvist, Lageson, Lagesson, Laggare, Landberg, Landby, Landén, Landgren, Landström, Langballe, Lange, Langergaard, Langner, Langsted, Lanng, Lans, Lanz, Larpent, Lars, Larsdatter, Larsdotter, Larsdotter DISBYT, Larsdotter Fält, Larsdotter Lundstedt, Larsen, Larsson, Larsson Blom, Larsson Bonde, Larsson Borgqvist, Larsson Callmer, Larsson Fält, Larsson Holm, Larsson Holst, Larsson Levin, Larsson Lindqvist, Larsson Lundstedt, Larsson Nordlund, Larsson Nyström, Larsson Rosén, Larsson Sjögren, Larsson Strand, Larsson Ström, Larsson Willander, Larsson Åvall, Lassedotter, Lassen, Lassesdotter, Lassesson, Lasson, Laub, Lauersen, Laurberg, Laurell, Lauritsdatter, Lauritsen, Lauritzen, Laursdatter, Laursen, Laursen Kuppert, Laustsen, Lavesdotter, Lavesson, Ledin, Lehndal ,Lehman, Lejon, Lem, Lemoine, Lennqvist, Lentz, Lentz Rée, León González, León Weinschenck, Lerche, Lesler, Leth, Lett, Leufvenmark, Levin, Liberg, Licht, Lidell, Lidén, Lidfeldt, Lidman, Lidström, Liebe, Liebert, Liebmann, Liedholm, Lihme, Lilienkampff, Lilja, Liljeblad, Liljegren, Liljeqvist, Lillelund, Lillienschiold, Lilliesköld, Limskilde, Lincoln Rosén, Lind, Lindahl, Lindal, Lindau, Lindbeck, Lindberg, Lindberg, Lindberg Persson, Lindblad, Lindborg, Lindell, Lindelof Olsen, Lindén, Lindenhäll, Linder, Linderström, Lindfors, Lindgreen, Lindgren, Lindh, Lindhardt, Lindholm, Lindkvist, Lindquist, Lindqvist, Lindros, Lindroth, Lindskog, Lindstén, Lindström, Lindström Rosendal, Lindvall, Lindwall, Ling, Linnet, Lisborg, Lithovia, Litz, Ljung, Ljungberg, Ljungdahl, Ljunggren, Ljungh, Ljungquist, Ljungqvist, Ljungström, Lodin, Loinsworth, Loir, López Blanco, Lorensen, Lorensson, Lorentsson, Lostedt, Lovén, Lovesson, Ludvigsdotter, Ludvigsson, Lueders, Lund, Lundahl, Lundberg, Lundberg Blücher, Lundberg Lindgren, Lundblad, Lundborg, Lundby, Lundbye, Lundgren, Lundholm, Lundin, Lundkvist, Lundmark, Lundquist, Lundqvist, Lundstedt, Lundstedt Zewde, Lundstén, Lundström, Lundvall, Lundwall, Luplau, Lustig Stångberg, Luther, Lyche, Lydersen, Lydichsen, Lyngaae, Lynge, Lütken, Lützen, Långdahl, Långström, Läbom, Lännquist, Löf, Löfdahl, Löfgren, Löfquist, Löfqvist, Löfstedt, Löfström, Löfvall, Lönbom, Lönbom Lundbom, Lönn, Lönnquist, Lönnqvist, Lönroth, Lövgren, Löwenadler, Löwstedt, Maale, Madsdatter, Madsen, Madsen Magius, Magius zu Horneburg, Magnidotter, Magnusdotter, Magnusdotter Magni, Magnusson, Magnusson Gullqvist, Magnusson Kronqvist, Magnusson Plan, Mahr, Mahrt, Majer, Malling, Malm, Malmberg, Malmborg, Malmgren, Malmquist, Malmqvist, Malmros, Malmrosdotter, Malmsten, Malmström, Malthe-Bruun, Mangor, Mannesdotter, Mannesson, Mantzius, Marceau, Marcel, Marcel Weinschenck, Maribo, Mark, Marklund, Markman, Markström, Markusdatter, Markvang, Marqurd, Marqvardt, Mars, Marsala, Marstrand, Martin Packness, Martinsson, Mathiasdotter, Mathiasen, Mathsson, Matsdotter, Matsson, Mattel, Mattiasson, Mattisdotter, Mattisson, Mattsdotter, Mattsdotter Sjöblom, Mattsson, Mattsson Lindnert, Mattsson-Mårn, Matzau, Matzdotter, Max, Medin, Meidell, Meier, Meigård, Meijb, Meijer, Meisler, Meissner, Melboe, Melén, Melin, Mellberg, Merbitz, Mertz, Mertz Blume, Mesler, Meulengracht, Meurs, Meyer, Michaelsdotter, Michelsdotter, Michelsen, Michelson, Michelsson, Mickelsdotter, Mickelsson, Middelthon, Mikkelborg, Mikkelsdatter, Mikkelsen, Mintschenko, Mitchell, Moberg, Modée, Modéer, Modin, Mogensdatter, Mogensen, Mohlin, Mohr, Molander, Molin, Mollberg, Mollerup, Moltke af Morales, Morales González, Morales Weinschenck, Mortensdatter, Mortensen, Morthorst, Morville, Moses, Motzfeldt, Mourier, Mulder, Mumme, Munch, Munck, Mundt-Petersen, Munk, Munthe, Myers, Mygind, Müller, Müllertz, Mynster, Münter, Myre, Måns Pers, Månsdotter, Månsson, Månsson Dahlgren, Månsson Holmgren, Månsson Klingenberg, Månsson Ljungstrand, Månsson Lundström, Mårtens, Mårtensdotter, Mårtensson, Möller, Möllergren, Möllerstedt, Nagel, Nansen, Nathan, Neckelmann, Nedergaard, Neergaard, Nej, Nelsdotter, Nelson, Nelsson, Nerman, Nero, Nesselqvist, Nettzén, Netzén, Neu, Neuenkirchen, Neuman, Nevander, Nexmar, Nicklasson Kilberg, Niclasdotter, Niclasson, Nielsdatter, Nielsdotter, Nielsen, Nielsen, Nielsen Nielsen Just, Nieuwenhuis, Niklasdotter, Niklasson, Nikolic, Nilén, Nils, Nilsdotter, Nilsdotter, Nilsdotter Boberg, Nilsdotter Lindqvist, Nilsdotter Niwén, Nilsdotter Walters, Nilsdotter Åkerman, Nilssen, Nilsson, Nilsson, Nilsson Ahl, Nilsson Bergqvist, Nilsson Björkman, Nilsson Bokander, Nilsson Engqvist, Nilsson Fransen, Nilsson Friberg, Nilsson Fält, Nilsson Gillén, Nilsson Hagblom, Nilsson Hedeby, Nilsson Holmgren, Nilsson Holmlund, Nilsson Klarin, Nilsson Lilja, Nilsson Lindberg, Nilsson Lindfors, Nilsson Lindgren, Nilsson Lindqvist, Nilsson Lindsjö, Nilsson Lindskog, Nilsson Lörd, Nilsson Melin, Nilsson Nettelbjer, Nilsson Nivén, Nilsson Niwén, Nilsson Petersson, Nilsson Rosenqvist, Nilsson Rydberg, Nilsson Seltir, Nilsson Sten, Nilsson Sundén, Nilsson Thomasson, Nilsson Tilly, Nilsson Vilhelmsson, Nilsson Årman, Niska, Nissen, Nobel, Nohr, Norberg, Nord, Nordahl, Nordberg, Nordborg, Nordell, Nordentoft, Nordgren, Nordholm, Nordin, Nording, Nordlander, Nordling, Nordlund, Nordmark, Nordqvist, Nordstedt, Nordsten, Nordstrand, Nordström, Norgren, Norlander, Norlund, Norrbohm, Norstedt, Norström, Nyberg, Nycander, Nyegaard, Nygren, Nygård, Nyholm, Nykvist, Nylander, Nylin, Nyman, Nyréhn, Nürnberg, Nyström, Näslund, Oberberg, Odhner, Odhnoff, Ogbewe, Ohlasdotter, Ohls, Ohlsdotter, Ohlsson, Ohlsson Malmström, Okänd, Okänt, Olaidotter, Olander, Olander Persson, Olandersson, Olasdotter, Olausdotter, Olausson, Oldenburg, Olesdatter, Olesen, Olin, Olivarius, Olof Pers, Olofsdotter, Olofsdotter, Olofson, Olofson Larsson, Olofsson, Olofsson Bergkvist, Olofsson Bergvall, Olofsson Hedquist, Olofsson Hensy, Olofsson Lindberg, Olofsson Lindberg Hägg, Olofsson Lundgren, Olofsson Nordlund, Olofsson Sandström, Olofsson Sjödal, Olofsson Stenberg, Olofsson Stocker, Olofsson Tengvall, Olofsson Ölund, Olovsdotter, Olovsson, Ols, Olsdatter, Olsdotter, Olsdotter Mattsson, Olsen, Olson, Olson-Carle, Olsson, Olsson Ahlin, Olsson Andonius, Olsson Boberg, Olsson Falk, Olsson Idoff, Olsson Kanér, Olsson Kron, Olsson Lind, Olsson Mattsson, Olsson Murat, Olsson Odervall, Olsson Olin, Olsson Orsmark, Olsson Rothén, Olsson Rydebank, Olsson Segerslätt, Olsson Skog, Olsson Smith, Olsson Thorsberg, Olsson Wedén, Olsson Wendelin, Olsson Wik, Olufdatter, Olufsdatter, Olufsdotter, Olufsen, Olufsson, Oredsdotter, Orsmark, Oscarsson, Oskarsdotter, Ossbahr, Ostenfeld, Otterstedt, Ottosdotter, Ottosson, Overgaard, Ovesen, Packer, Pagander, Pagels, Pahl, Palau, Palmgren, Palmquist, Palmqvist, Paludan, Palvig, Pamp, Park, Parson, Pauli, Paulsdotter, Paulsen, Paulson, Paulsson, Paumen, Pavius, Payngk, Pedersdatter, Pedersdatter, Pedersdatter, Pedersdotter, Pedersen, Pedersen, Pedersen-Holmen, Pehrsdotter, Pehrsson, Pehrsson Ström, Pena, Pena Weinschenck, Per Hans, Perez Martinez, Pers, Persbeck, Persdotter, Persdotter Ek, Persdotter Hinsasdotter, Persdotter Lundström, Persdotter Pålsson, Persdotter Walters, Persdotter Ågårdh, Persson, Persson Ahlström, Persson Ask, Persson Attrup, Persson Billing, Persson Cronsioe, Persson Cronsjö, Persson Dahlgren, Persson Dahlqvist, Persson Ek, Persson Ekberg, Persson Ekstrand, Persson Eld, Persson Engman, Persson Engström, Persson Finman, Persson Fredlund, Persson Grundström, Persson Gryta, Persson Hedlund, Persson Hektor, Persson Henrysson, Persson Holm, Persson Järnkula, Persson Lindström, Persson Lundström, Persson Löfdahl, Persson Löfgren, Persson Malmström, Persson Marklund, Persson Nerman, Persson Nevander, Persson Nordqvist, Persson Pettersson, Persson Pihlström, Persson Pilquist, Persson Rosberg, Persson Rosenlund, Persson Sten, Persson Sundén, Persson Sundqvist, Persson Söderstjerna, Persson Wallin, Persson Wendel, Persson Wicklund, Persson Ågårdh, Peter, Petersdotter, Petersdotter Björklund, Petersdotter Hall, Petersen, Petersen, Petersen Peterson, Petersson, Petri, Pettersdotter, Pettersson, Pettersson Althén, Pettersson Karlsson, Pettersson Mannström, Pettersson Molin, Pettersson Munkert, Pettersson Ohlander, Pettersson Rabe, Pfeiffer, Philipsen, Phillips, Piculell Larsson, Pihl, Pilquist, Pindsfeld, Piper, Pira, Plambeck, Plambeck Borgström, Plan, Plenge, Plesner, Pligt, Plomgren, Plum, Pofvelsen, Pofvelsson, Poleman, Porth, Posfelt, Poulsdatter, Poulsdatter Steenild, Poulsen, Pourtschan, Pousette, Pramberg, Prien, Priergaard, Printz, Prom, Provilo, Prüss, Pryts, Psilander, Pultz, Påhlsdotter, Påhlson, Påhlsson, Påhlsson Falk, Pålsdotter, Pålsson, Pålsson Lindskog, Pålsson Strand, Pährsdotter, Pärsdotter, Pärson, Pärsson, Pärsson Korp, Quist, Qvarnström, Qvist, Qvistgaard, Qvistgård, Raaf, Rabe, Rafn, Rafqvist, Ragnell, Rambech, Ramberg, Ramm, Ramstedt, Ramström, Rank, Rankin, Rasmusdatter, Rasmusdotter, Rasmusen, Rasmussen, Rasmussen, Rasmussen Erasmi, Rasmusson, Rathjen, Rathsack, Ravn, Reckenagel, Redout, Rée, Regnell, Regnér, Rehn, Reidl, Reimer, Reinhold, Reinholtz, Reinold, Renberg, Renlund, Renner, Renström, Resman, Reuss-Lobenstein, Reuterswärd, Reuther, Rexert, Ribbing, Riber, Richert, Riis Johansen, Riisberg, Rindom, Ring, Ringberg, Ringdahl, Ringkvist, Ringquist, Ringqvist, Ringström, Ripperger, Risberg, Ritzén, Rivero González, Rivero Weinschenck, Rode, Rodríguez, Rohde, Rohman, Rohr, Rojas Naranjo, Rojas Weinschenck, Rokström, Romberg, Rommedal, Rosander, Rosberg, Rosdahl, Rosell, Rosén, Rosenberg, Rosendahl, Rosenfeldt, Rosenfelth, Rosengren, Rosenkvist, Rosenlund, Rosenlöf, Rosenqvist, Rosman, Rosqvist, Ross, Rosslin, Rossvik, Rosvall, Roth, Rothe, Rothén, Rova, Rubach, Ruckle, Rudberg, Rudolf, Rudolf Billesjö, Rundberg, Rundfält, Rundgren, Rundquist, Rundqvist, Runestam, Rungren, Runnerström, Rur, Ruth, Ruthberg, Ryberg, Rydberg, Ryde, Ryder, Rydqvist, Rydstrand, Rydström, Rye, Rylander, Rönberg, Rönne, Rönngren Rungren, Rönnkvist, Röring, Rössel, Sabelfelt, Sabelsköld, Sabournin Téllez, Sabroe, Sagnert, Salomonsson, Samuelsdotter, Samuelsen, Samuelsson, Sandahl Harved, Sandberg, Sandell, Sander, Sandgren, Sandin, Sandlund, Sandqvist, Sandrewsky, Sandström, Sassarsson, Sassersdotter, Sassersson, Saur, Savstam, Saxild, Schack, Schadely, Schaumburg-Müller, Scheibe, Schell, Scherman, Schildknecht, Schillström, Schive, Schjerning, Schmeling, Schmidt, Schmigelov, Schnabel, Scholander, Schollin, Schommel, Schou, Schou Kjeldsen, Schrader, Schubart, Schulow, Schultz, Schuylenburg, Schwan, Schwennesen, Schylander, Schytte, Schönbeck, Schörling, Schött, Sedvall, Seger, Segerslätt, Segerström, Segerståhl, Sehested, Seidelin, Seiholtz, Sejersen, Sejoe, Selberg, Selien, Selin, Selldén, Sendrup, Sevedsson, Severin, Severin Borg, Sidström, Siegumfeldt, Sifverdotter, Sigfridsson, Sigurd, Sigvardsdotter, Silfverberg, Silfverhjelm, Silfverschiöld, Sillén, Simko, Simonsdatter, Simonsdotter, Simonsen, Simonsson, Singstock, Siunason, Siunnas, Siunnesson, Sizmore, Siöstet, Sjunarsson, Sjunnesdotter, Sjunnesson, Sjöberg, Sjöblom, Sjödahl, Sjögren, Sjöholm, Sjölin, Sjölund, Sjösten, Sjöstrand, Sjöstrand Sandberg, Sjöström, Skafte, Skibsted, Skog, Skogh, Skoglöf, Skov, Skow, Skow, Skåningsdotter, Skåningsson, Slater, Släger, Smagbier, Smidt, Smith, Smoby, Snejstrup, Solheim, Sonasdotter, Sonesdotter, Sonesson, Sonesson-Bögerup, Sonmark, Sorterup, Soter Rodríguez, Speitzer, Spetz, Spleth, Stabel, Stabell, Staffansdotter, Staffansson, Stallknecht, Stampe, Stark, Starke, Steenild, Stefansson, Steinthal, Steiner, Sten, Stenbeck, Stenberg, Stenbom, Stendal, Stender Nielsen, Steneram, Stenhammar, Stenkvist, Stenlund, Stenmark, Stenvall, Stephansson, Stewens, Stibolt, Stierna, Stiernspetz, Stiernstedt, Stisen, Stjernkrantz, Stjernkvist, Stjernspetz, Stochholm, Stocker, Stockfleth, Stoltz, Storck, Stoud, Strand, Strandberg, Strandbygaard, Strandkvist, Strandqvist, Strange, Strangesen, Strannesten, Strelert, Stricharsdotter, Strid, Stridbeck, Stridde, Stridh, Stråhle, Stråhlén, Stråhlenhielm, Stråle, Ström, Strömberg, Strömblad, Styff, Ståhl, Stål, Stång, Suhr, Sundberg, Sundbom, Sunddin, Sundell, Sundén, Sundgren, Sundquist, Sundqvist, Sundstedt, Sundström, Supanick, Suzuki, Svan, Svanberg, Svanborg, Svane, Svaneklink, Svanholm, Svedholm, Sven Pers, Svendsdatter, Svendsen, Svendstorp, Svenningsen, Svenningsson, Svensdotter, Svenson, Svensson, Svensson Angelin, Svensson Backe, Svensson Bergström, Svensson Borgkvist, Svensson Brännare, Svensson Brännberg, Svensson Brännström, Svensson d y, Svensson d ä, Svensson Delin, Svensson Forsberg, Svensson Fransson, Svensson Hertzman, Svensson Hjertz, Svensson Holmberg, Svensson Kellgren, Svensson Källgren, Svensson Ljung, Svensson Malmsten, Svensson Mohlin, Svensson Möller, Svensson Olsson, Svensson Quist, Svensson Qvist, Svensson Revert, Svensson Rosendahl, Svensson Sjösten, Svensson Skog, Svensson Wahlsten, Svänasson, Svänsson, Svärd, Swan, Swensdotter, Swensson, Sånasson, Säflund, Säfvedsson, Sällberg, Sävsten, Söderblom, Södergren, Söderholm, Söderman, Söderstjerna, Söderström, Sörensdotter, Sörensson, Sörensson-Utbult, Taberman, Tafdrup, Tagesson, Tamelander, Tanner, Tapper, Tarm, Tauson, Tell, Tellström, Tengvall, Tern, Tetens, Thaarup, Thalin, Thestrup, Thiel, Thiele, Thielsen, Thiesen, Thillerup, Tholander, Thomasdatter, Thomasdotter, Thomassen, Thomasson, Thomsen, Thomsen, Thorbjörnsson, Thormansdotter, Thormarck, Thorsberg, Thorsdotter, Thorsell, Thorsen, Thorsson, Thorzén, Thostesson, Thuesdotter, Thuesen, Thulin, Thunström, Thunvall, Thuresdotter, Thuvesson, Thygesdatter, Thörning, Tibemo, Tietz, Tillheden, Tillisch, Tillrooth, Tilly, Timmermann, Tinder, Tinggård, Tjalve, Tjernström, Tobiasson, Toivasdotter Gustafsson, Toldberg, Tolerus, Toll, Tollesdotter, Tollesson, Tomasdotter Friberg, Tomasson, Toomaru, Torbjörnsson, Toresdotter, Torgersdotter, Torgersson, Torgersson Malmgren, Torjesdatter, Torkelsdotter, Torling, Torp, Torsdotter, Torslov, Torsson, Torstensdotter, Torstensson, Tostensdotter, Tostensson, Trana, Tranberg, Tranfeldt, Traustedt, Travis, Troedsdotter, Troedsson, Troedsson Cedergren, Trolle, Truedsdotter, Truedsson, Trulsdotter, Trulsson, Trulsson Otterstedt, Tuesdotter, Tufvasdotter, Tufvesdotter, Tufvesson, Tufvesson Thulin, Tuheson, Tulin, Tullberg, Tullesdotter, Tullgren, Tullipan, Tune, Turesson, Tuvasdotter, Tuvesdotter, Tuvesson, Tuvfvesson, Tuxen, Tvede, Tvermoes, Twetowius, Tybjerg, Tyge, Tykesdotter, Tykesson, Tårstensson, Tåstesdotter, Tåstesson, Tönnesdotter, Törner, Törnquist, Udsen, Udsole, Uf, Uhrman, Uldall, Uldriksdatter, Ulfsax, Ulrich, Ulrichsdatter, Undahl, Unger, Unna, Ussing, Utbult, Uusitalo, Vahlholm, Vahlquist, Vaksjö, Valeriano, Valeriano Palau, Valeriano Weinschenck, Vallenstam, Vallin, Vallström, Valter, van de Velde, Van Der Linden, van der Schaft, Vanlith, Vedel, Vejby-Christensen, Velin, Vendel, Vennborg, Verner-Carlsson, Vester, Vesterberg, Vesterby, Vestergaard, Vesterlund, Vestman, Vetterberg, Vetterström, Viale, Viberg, Victor, Vidén, Vik, Vikberg, Viklund, Vikman, Vikström, Viktorsson, Vilhelmsen, Vilhelmsson, Villman, Vinstedt, Vinther, Visser, Voigt, Voldmester, Volkersen, von Arenstorff, von Barnekow, von Brandes, von Deer, von Degen, von Grabmayr-Angerheim, von Halle, von Holstein, von Holstein af Fürstenberg, von Holtzmann, von Kauffmann, von Knorre, von Kreitz, von Krogh, von Köller, von Lepel, von Magius, von Merbitz, von Otter, von Platen, von Pultz, von Quanten, von Schantz, von Schinckel, von Staffeldt, von Stolting, von Westen, von Wouwern, von Würtzen, von Zeipel, Vontobel, Voogd, Värn, Wadén, Waern-Leffler, Wahlberg, Wahlgren, Wahlsten, Wahlström, Wahlund, Wahren, Waldemarsson, Waleru, Walker, Wallander, Wallander Karlsson, Wallberg, Wallbom, Wallén, Wallenius, Wallenius Lundgren, Wallentinsson, Wallersteen, Wallin, Wallius, Wallmark, Wallström, Walter, Waltersson Spanier, Wandborg, Warde, Warg, Warming, Warrer, Wartberg, Wassler, Wasteson, Watt, Way, Wedell-Wedellsborg, Wedseltoft, Weed, Wegener, Weibull, Weiland, Weimard, Weinschenck, Weinschenck Benítez, Weinschenck Campos, Weinschenck de Armas, Weinschenck González, Weinschenck Jordán, Weinschenck López, Weinschenck Morales, Weinschenck Perez, Weinschenck Soter, Welander, Welding, Welinder, Wellnert, Wendel, Wendelbo-Madsen, Wendin, Wendt, Wennberg, Wennborg, Wenström, Werlin Olsson, Wernebäck, Werner, Wernersdatter, Wers, Wessberg, Wesselsdotter, Wessman, Westberg, Wester, Westerberg, Westerblad, Westerdahl, Westergren, Westerlund, Westermark, Westin, Westling, Weston, Wettergreen, Wettergren, Wetterstrand, Weyde, Wiberg, Wickenberg, Wicklund, Wicklund Pihlström, Wickström, Widding, Widér, Widerberg, Widestrand, Widgren, Wifesson, Wifvesdotter, Wifvesson, Wiinstedt, Wik, Wikberg, Wiklund, Wikman, Wikström, Wilckens, Wilde, Wildermuth, Wilhelmsson, Willadsen, Willander, Willerup, Wilmenius, Winberg, Winblad, Wingenblixt, Winkler, Winstedt, Winter, Winters, Winther, Wisén, Wismer, Wissén, Wistedt, Wistedt Vetterström, Witte, Wodstrup, Wohlgemuht, Wolff, Wolff-Sneedorf, Wolkersen, Worm, Wormslev, Wretman, Wulff, Wåhlberg, Wållin, Wärn, Wästeson, Ydström, Ygberg, Yhl, Ytterberg, Zachariassen, Zachariasson, Zachau, Zachrisson, Zackariasdotter, Zackariasson, Zackow, Zackrisson, Zakrisdotter, Zakrisson, Zederin, Zetterberg, Zetterman, Zetterström, Zewde, Ziemer, Ziervogel, Ziethen, Zilo, Zimmermann, Zinck, Åberg, Åbom, Ågesdotter, Ågesson, Ågren, Ågårdh, Åhrberg, Åkasdotter, Åkason, Åkasson, Åkerberg, Åkerblom, Åkerlund, Åkerman, Åkerström, Åkesdotter, Åkeson, Åkesson, Åkesson, Åkesson Falkman, Åkesson Lindqvist, Åkesson Thulin, Åman, Åradsdotter, Åradsson, Årman, Åström, Äskels, Öberg, Öberg Nlsson, Öfverlund, Ögren, Öhlund, Öhman, Öhrman, Öjeberg, Ölund, Öman, Önnersdotter, Önnerson, Önnersson, Örtberg, Örtegren, Öst, Östberg, Östensdotter, Östensson, Österberg, Östergren, Österlund, Östgren, Östlund, Östman], female: [Aagesdatter, Aarestrup, Aasen, Abelsen, Abildgaard, Abrahamsdotter, Abrahamsen, Abrahamsson, Abramsdotter Brännström, Achton, Adamsson, Adersson Almertz, Adolfsson, Adtzarsdotter, Adtzarsen, Adtzersdotter, Adtzerson, Adtzersson, Adtzersson Forsström, Adtzersson Rug, af Forsell, af Ström, Agelmo, Agerup, Aggerup, Agner, Ahl, Ahlberg, Ahlbin, Ahlbom, Ahlin, Ahlstedt, Ahlström, Ahnfeldt, Albrechtsson, Aldewelt, Aldrin, Alexandersdotter, Alexandersson, Alfredsson, Allesen, Allesen Bunkeflod, Allesen de Fine Bunkeflod, Allesen-Vernö, Allison, Almén, Almgren, Almqvist, Alrom, Alsén, Alteresius, Ancher, Anchersen, Ancker, Anderberg, Anderdotter, Anders, Andersdatter, Andersdotter, Andersdotter, Andersdotter Andersson, Andersdotter Bager, Andersdotter Lundberg, Andersen, Anderson, Andersson, Andersson Ahl, Andersson Anderberg, Andersson Anderström, Andersson Berglund, Andersson Bock, Andersson Boström, Andersson Bränn, Andersson Ekdahl, Andersson Eklund, Andersson Fastberg, Andersson Fridlund, Andersson From, Andersson Granat, Andersson Haeffner, Andersson Hagelin, Andersson Hejde, Andersson Hjälte, Andersson Lind, Andersson Lindqvist, Andersson Lindström, Andersson Lundström, Andersson Odhnoff, Andersson Olin, Andersson Rehn, Andersson Sandberg, Andersson Sjöström, Andersson Skog, Andersson Strand, Andersson Törne, Andersson Wikman, Andersson Winberg, Andersson Östman, Andesen, Andrassy, Andreasdatter, Andreasdotter, Andreasen, Andreasson, Angel, Angelberg, Anthon, Appelmark, Arctander, Arelsson, Arendorf, Arendtson, Arent, Arentsdatter, Arildsdotter, Armfelt, Arnander, Aronsson, Arosenius, Arvidsdotter, Arvidsson, Ascanius, Asisef, Askulin, Asmundsdotter, Asmundsson, Asmunsson, Asmussen, Asproth, Assarsdotter, Assarsson, Assarsson Åkerman, Assersdotter, Assersson, Assmundsson, Aubert, Augustin, Augustsdotter, Aulander, Avander, Axell, Axelsdotter, Axelson, Axelsson, Baark, Bach, Bache, Bachmann, Backe, Backlund, Backman, Backström, Baeckström, Bager, Bagger, Bahnson, Bang, Bangert, Barck, Barfod, Barfoed, Barfred, Barlit, Bartholdson, Barting, Barting Haeffner, Barzen, Basballe, Bathe, Battus, Baumann, Baumgarten, Bay, Bech, Beck, Becker, Beckmann, Beckwith-Lohmeyer, Bemarell, Benander, Bencke, Bendiksdatter, Bendz, Benedictson, Benedikt, Bengtsdotter, Bengtsdotter Hejde, Bengtsdotter Spanier, Bengtsson, Bengtsson Bergfors, Bengtsson Björk, Bengtsson Frost, Bengtsson Hejde, Bengtsson Korp, Bengtsson Lindén, Bengtsson Ljungqvist, Bengtsson Lundgren, Bengtsson Rudolf, Bengtsson Spanier, Bengtsson Wallersteen, Bengtsson Öst, Bengtström, Benjaminsdotter, Bentsen, Bentzen, Bentzien, Bentzon, Benzer, Benzon, Ber, Bercher, Berendt, Berg, Bergdahl, Bergdal, Bergeld, Bergelin, Bergencrona, Bergendal, Bergendorff, Bergenenhammer, Bergenfeldt, Bergeschou, Bergfors, Berggreen, Berggren, Berghman, Bergkvist, Berglund, Bergman, Bergner, Bergquist, Bergqvist, Bergstedt, Bergsten, Bergstrand, Bergstrom, Bergström, Bergvall, Berlin, Berndtsson, Bernhardsdotter, Bernhardsson, Bernström, Berntsdotter, Berntsson, Berntsson Berg, Berregaard, Bertelsdatter, Bertelsdatter, Bertelsdotter, Bertelsen, Bertelsson, Bertilsson, Bertle, Beutner, Bianco Boeck, Bie, Bieragger, Bierg, Bierum, Biilmann, Bild, Bilde, Bildt, Bill, Billabong, Billabong, Billberg, Billbergh, Bille, Bille-Brahe af Svanholm, Billenberg, Billgren, Billing, Billman, Billström, Billström Nilsdotter, Bilsted, Birch, Birck, Birkedal, Bisserup, Bisted, Biörnsson, Bjelkström, Bjerg, Bjerger, Bjerring, Bjushed, Björk, Björklund, Björkman, Björnberg, Björner, Blad, Bladh, Bladlund, Blaylock, Blegvad, Blicher, Blichfeldt, Blitzén, Blix, Blixt, Bloch, Blom, Blomberg, Blomkvist, Blomqvist, Blomsterberg, Blomsterqvist, Blomstrand, Blume, Blücher, Bock, Bodemayer, Bodinsson, Bogren, Bohle, Bohman, Bohn, Boijsen, Bokelund, Bokstad, Bolin, Bolmeér, Boman, Bonde, Bondesdotter, Bondesson, Bonne, Bonnevie, Bonnevier, Bonskog, Boosdotter, Borberg, Borelli, Borg, Borgelin, Borggren, Borgh, Borgkvist, Borglin, Borgman, Borgqvist, Borgström, Bornemann, Borreschmidt, Borthig, Bosdotter, Boström, Both, Botvidsson, Bovin, Boyesen, Boysen, Brahe, Brammer, Bramsen, Brandling, Brandt, Brangstrup, Branth, Branting, Branting, Brask, Brauer, Braun, Braunstein, Bredal, Breegaard, Bregendahl, Brehmer, Bremer, Brieger, Brilioth, Bringentoff, Brink, Brix, Broch, Brock, Brodersen, Broge, Brogren, Brolin, Brolund, Broman, Broomé, Brorsdotter, Brorson, Brorsson, Bruce, Brumberg, Brun, Brunsson, Bruun, Brüdigam, Brÿgger, Bryngelsson, Bryngelsson Bjushed, Bryngelsson Jardesten, Bryngelsson Ryberg, Brysting, Brytz, Brännström, Buch, Buchhave, Buchwald, Bugge, Bull, Bulow, Bunkeflod, Burmaister, Burman, Burmeister, Burss, Burvall, Busk-Jepsen, Busse, Bügler, Bützow, Bång, Bäck, Bäckström, Bängts, Börgesson Law, Börjasson, Börjesson, Callmer, Calow, Cammermeyer, Campos Valdés, Candelin, Caradja, Carlheim, Carlheim-Gyllenskiöld, Carlsdotter, Carlsdotter Eriksson, Carlsen, Carlsson, Carlsson Bager, Carlsson Brandstad, Carlsson Cagéll, Carlsson Dahlberg, Carlsson Dahlqvist, Carlsson Hallberg, Carlsson Karlzén, Carlsson Landén, Carlsson Listerberg, Carlsson Thorsberg, Carlsson Thulin, Carlsson von Magius, Carlsson Öberg, Carlström, Carr, Caspersson, Cederberg, Cederholm, Cederlund, Challamell, Charleville, Charling, Charpentier, Charr, Chaura Deumacan, Chenoweth, Chirkova, Christell, Christensdatter, Christensdotter, Christensen, Christensen, Christensen Keitt, Christensen Snejstrup, Christensson, Christensson Lundstätt, Christersson, Christiansdatter, Christiansdotter, Christiansen, Christiansson, Christoffersdatter, Christoffersdotter, Christoffersen, Christoffersson, Christophersson, Claesson, Clase, Clason Lund, Classén, Classon, Clausen, Clausson, Clemedsson, Clemens, Clemensdatter, Clemensson, Clementsdotter, Collberg, Collberg Jarke, Colliander, Collin, Colonna de Leca, Condé, Cordes, Cornelius, Corneliusdotter, Cortsen, Covot, Cramer, Crawford, Cremon, Cristensen, Crona, Cronberg, Crone, Cronholm, Cronlund, Cronqvist, Cruys, Dahl, Dahlberg, Dahlbom, Dahlgren, Dahlin, Dahlkvist, Dahlman, Dahlquist, Dahlqvist, Dahlström, Dahnsson, Dahqvist, Dajrtendich, Dalberg, Dalgren, Dalman, Dam, Damm, Damm Jensen, Damm-Pedersen, Danelius, Danielsdotter, Danielsen, Danielsson, Danielsson Hartelius, Dankwardt-Lilieström, Darell, Darre, Daun, Davidson, Davidsson, de Armas Ramírez, de Bang, de Bruce, de Ferry, de Fine, de Fine Licht, de Fine Olivarius, de Hemmer, de la Cour, de Neergaard, Degerman, Degermark, Deichmann, Demidoff, Demuth, Dessau, Díaz, Dietrich, Dinesdatter, Dinesen, Dobson, Dochedahl, Dochedahl-Petersen, Dockendorf, Dormé, Dorn, Dornonville de la Cour, Doslic, Drechsel, Dressel, Drews, Dreyer, du Bois, du Plesis De Richelieu, Dunér, Duus, Duval, Duvander, Dyberg, Dyker, Dyrbye, Dürkopp, Dürr, Ebbasdotter, Ebbesen, Ebbeson, Ebbesson, Ebling, Edberg, Edelberg, Edén, Edholm, Edin, Edling, Edvardsdotter, Edvardsson, Edwardsson, Eek, Eftevaag, Egeberg, Ehlers, Ehrning, Ek, Ekberg, Ekblad, Ekbladh, Ekblom, Ekborg, Ekdahl, Ekelund, Ekeman, Ekenberg, Ekenman, Ekeroth, Eklund, Eklöf, Eklöv, Ekman, Ekstrand, Ekström, Ekvall, Elam, Elfström, Elg, Eliadotter, Eliasdotter, Eliasson, Eliasson Lindell, Elke, Ellberg, Ellefsen, Ellertsson, Elling, Ellington, Elmén, Elmquist, Elofsdotter, Elofsson, Eman, Emanuelsdotter, Emanuelsson, Emanuelsson Ekblad, Emborg, Enberg, Eneberg, Enevaldsson, Engberg, Engblom, Engdahl, Engler, Englund, Engman, Engqvist, Engstedt, Engstrand, Engström, Engvall, Enkvist, Erhardi, Erichsen, Erichson, Erichsson Kihl, Ericksson, Ericsdotter, Ericsson, Eriksdatter, Eriksdotter, Eriksen, Erikson, Eriksson, Eriksson Energren, Eriksson Hedquist, Eriksson Hultberg, Eriksson Krycker, Eriksson Åman, Erlandsdotter, Erlandsson, Erlandsson, Erlström, Ernstdotter, Ernvall, Ersdotter, Ersson, Ersson Lindström, Ertiksson, Esbjörnsdotter, Eskelsson, Eskildsdotter, Eskilsdotter, Eskilsson, Estensen, Estoesta, Eurenius, Evald, Everlöf, Eyermann, Fabricius, Fader, Faederholdt, Fagerberg, Fahlgren, Fahlman, Fahlstedt, Faith, Falck, Falk, Falkenberg, Falkvall, Fastberg, Faurschou, Feilberg, Feiniger, Feininger, Fensmark, Ferngren, Fernström, Ferrer, Ferrer Weinschenck, Ferslev, Fibiger, Fick, Fiedler, Filipson, Findelius, Finman, Finnman, Fjällström, Flaméhn, Fledelius, Fleihan, Flensburg, Flink, Flintzberg, Flodman, Florinsky, Flygare, Flögt, Fock, Fogelberg, Fogh, Fors, Forsberg, Forselius, Forsell, Forslund, Forsman, Forssén, Frandsdatter, Frandsen, Frank, Franke, Fransson, Frantzdatter, Franzén, Frederiksen, Fredriksdotter, Fredriksson, Freij, Frej, Frese, Friberg, Friberg-Ekberg, Fribert, Frid, Friese, Friis, Frimodt, Frisendahl, Frisk, Frisk "Frisch", Fristedt, Fritiof, From, Frosetter, Frost, Fröberg, Fröjd, Frönell, Fugl, Fuglede, Fuller, Funch, Füchslin, Fyhr, Fynboe, Fält, Fältström, Gabrielsdotter, Gabrielsson, Gad, Gadamer, Gade, Galle, Gamél, Gammeltoft, Garland Elam, Garmann, Gasslander, Gedeborg, Gehrt, Geijer, Gelin, Genefke, Genschow, Georgsdotter, Gerberg, Gerdtsdotter, Gerdtsson, Gergi, Gergi Lundstedt, Germansen, Germundsson, Giedde, Gielff, Giessing, Gilde, Gillberg, Gislander, Gjedde, Gjertsen, Gjuditz, Glahn, Glerup, Glud, Goelitz, Gommesen, González Más, González Pena, Gorra, Gorra Weinschenck, Gottlander, Graf, Grahn, Gran, Granberg, Granholm, Grankvist, Granlund, Granqvist, Granstedt, Granström, Green, Greisbach, Gren, Greve, Grip, Grubbe, Grundeis, Grundström, Grut, Grähs, Grönkvist, Grönquist, Grönvall, Grönwall, Gudfastersen, Gudmonsdotter, Gudmundsdotter, Gudmundsson, Gudmunsson, Guldberg, Guldbrandsen, Gullberg, Gullqvist, Gullstrand, Gulstad, Gultzau, Gumme Pers, Gummesen, Gummesson, Gummesson Lindkvist, Gunarsdotter, Gunnarsdotter, Gunnarsson, Gunnér, Guntell, Guskasson, Gussarsson, Gustafsdotter, Gustafsdotter Lindblom, Gustafsdotter Möller, Gustafsdotter Spanier, Gustafsson, Gustafsson Edling, Gustafsson Fernström, Gustafsson Spanier, Gustafsson Ulfsax, Gustavsdotter, Gustavsson, Gustavsson Tillrooth, Gyldencrantz, Gylding, Gyllén, Günther, Gärdehall, Göransdotter, Göransson, Görgensen, Götz, Haagen, Haastrup, Haeffner, Haeffner, Haeffner-Flodman, Hafström, Hagblom, Hagefeldt, Hagelin, Hagemann, Hagéus, Haggärde, Haglund, Hagman, Hagström, Hahn, Hake, Halbert, Haleby, Hall, Halland, Hallberg, Halleby, Hallenborg, Haller, Hallgrímsdóttir, Hallin, Halling, Hallström, Hals, Halvarsson, Halved, Halvorsen, Hamilton, Hamlett, Hamlin, Hammar, Hammarberg, Hammarbäck, Hammarlund, Hammarqvist, Hancke, Hansdotter, Hansdotter Bunkeflod, Hansdotter de Fine, Hansen, Hansen, Hansen Borntoft, Hansen Riber, Hansesdotter, Hanson, Hansson, Hansson Dalberg, Hansson Engström, Hansson Eriksson, Hansson Lindberg, Hansson Lundberg, Hansson Lundstedt, Hansson Löf, Hansson Roth, Hansson Sjölin, Hansson Spanier, Hansson-Dahl, Haraldsdotter, Haraldsson, Harboe, Harder, Hart, Hartelius, Hartwig, Hartwigsson, Hartzberg, Hasfeldt, Haslund, Hasselquist, Hasselqvist, Hastrup, Hatting, Hauch, Hazell, Hecht, Heckscher, Hecksher, Hector, Hedberg, Hedberg "Leander", Hedblom, Hedeberg, Hedeby, Hedeman, Hedenskog, Hedenstierna, Hedkvist, Hedling, Hedlund, Hedman, Hedquist, Hedqvist, Hedström, Hedvalls, Hedvist, Heering, Héhn, Heiberg, Heiberg Ipsen, Heidenberg, Heikel, Heitmann, Hejde, Hejlesen, Hektor, Helander, Helgesson, Heljeberg, Heljesdotter, Heljesson, Hellberg, Hellén, Hellgren, Hellman, Hellstadius, Hellström, Helmer, Hemberg, Henckel, Hendriksson, Henningsen, Henrichsen, Henrichsson, Henricsdotter, Henriksdotter, Henriksen, Henriksson, Henriksson Dalberg, Henriksson Hallberg, Henriksson Hyllén, Henriksson Persson, Henrysson, Herazeck, Herder, Herforth, Herlman, Hermansdotter, Hermansen, Hermansson, Hermodsson, Hern, Herrman, Herskind, Hersvall, Hertz, Hertzberg, Hertzman, Herztler, Hessellund, Hesselman, Hetting, Heuch, Heurlin, Hieronimusdatter, Hieronimussen, Higgens, Hilding, Hillborg, Hillman, Hindrichsdotter, Hindrichsson, Hindricsdotter, Hingtsasdotter, Hinrichsen, Hinsasdotter, Hinsasson, Hinsesson, Hjelm, Hjelmdrop, Hjort, Hjorth, Hjorthagen, Hjortsberg, Hjuler, Hober, Hoff, Hoff Hansen, Hoffensberg, Hoffman, Hoffmann, Hofsteter, Holbech, Holbek, Holgersdotter, Holgersen, Holgersson, Holland, Holm, Holmberg, Holmblad, Holmgren, Holmkvist, Holmlund, Holmquist, Holmqvist, Holmstedt, Holmström, Holst, Holst Kjeldsen, Holtzbro, Hoppe, Hopper, Horn, Horneman, Hornemann, Hortman, Hostrup Schultz, Hougaard, Hoversdatter, How, Howitz, Hugosson, Huhne, Hult, Hultberg, Hultén, Hultgren, Hultin, Hultman, Hurtig, Huss, Hutfeld, Huth, Hvid, Hviid, Hwasser, Hydfeldt, Hyllested, Hüttmann, Hågensdotter, Håkansdotter, Håkansson, Hård af Segerstad, Häger, Hägerman, Hägg, Hägglund, Hällberg, Häller, Hällgren, Häsler, Högberg, Höglund, Högrelius, Hörberg, Hörjesson, Hörngren, I Kroen, Ifvarsson, Ifversson, Ingelsdotter, Ingelson, Ingelsson, Ingelsten, Ingemansson, Ingemarsdotter, Ingemarsson, Ingerslev, Ingesdotter, Ingesson, Ingram, Ingvarsdotter, Ingvarsson, Ingvartsen, Ipsdatter, Ipsen, Irestam, Irmlev, Isaksdotter, Isaksson, Isenberg, Isibarth, Israel, Ivarsdotter, Ivarsson, Iversen, Jacksson, Jacobi, Jacobsdatter, Jacobsdotter, Jacobsen, Jacobsson, Jahn, Jahnsson, Jakobsdotter, Jakobsson, Jakobsson, Jannesson, Jansdotter, Jansdotter Öman, Jansen, Jansson, Jansson Eriksson, Jansson Haeffner, Jarl, Jarle, Jarnestad, Jensdatter, Jensdatter, Jensdatter, Jensen, Jensen Lang, Jensen Vestergaard, Jensenius, Jensön, Jeppasdotter, Jeppasson, Jeppesdotter, Jeppesen, Jeppsdotter, Jeppsson, Jeppsson Forsberg, Jepsdotter, Jepsson, Jernberg, Jersild, Jespersen, Jessen, Jochumsen, Jockumsen, Joensdotter, Joensson, Johannesdotter, Johannesson, Johannesson Nordell, Johannesson Winberg, Johannisdotter, Johannisson, Johansdotter, Johansdotter Palm, Johansdotter Sundell, Johansen, Johansson, Johansson Bergeld, Johansson Bergenfeldt, Johansson Burman, Johansson Einald, Johansson Ekström, Johansson Frönell, Johansson Granberg, Johansson Hagberg, Johansson Hedquist, Johansson Holmgren, Johansson Jarlestam, Johansson Killberg, Johansson Lindberg, Johansson Malmqvist, Johansson Marklund, Johansson Persson, Johansson Sjöberg, Johansson Sundqvist, Johansson Åhl, Johansson Öberg, Johansson Öst, Johnsdotter, Johnson, Johnsson, Johnsson Friberg, Jonasdotter, Jonasdotter Nordlund, Jonasson, Jonasson Norlund, Jonasson Sandstedt, Jonasson Skoglund, Jonelind, Jonsas, Jonsdotter, Jonsen, Jonson, Jonsson, Jonsson Gärefors, Jonsson Lindal, Jonsson Nordlund, Jonsson Söderblom, Jordán Suri, Joseph, Josjö, Juel, Juhl, Juhlin, Julin, Juncker, Jungbeck, Juringius, Just, Just-Nielsen, Justesen, Juul, Jürgens, Jäderström, Jöns, Jönsdotter, Jönsdotter Ekström, Jönsdotter Hagblom, Jönsdotter Lindström, Jönsson, Jönsson Bjelland, Jönsson Bjerborn, Jönsson Björk, Jönsson Brandt, Jönsson Collberg, Jönsson Ekström, Jönsson Flenner, Jönsson Grevstad, Jönsson Haak, Jönsson Hektor, Jönsson Holmqvist, Jönsson Hultgren, Jönsson Kristoffersson, Jönsson Murberg, Jönsson Möllergren, Jönsson Nilsson, Jönsson Nåvall, Jönsson Rosander, Jönsson Rosdahl, Jönsson Rosendahl, Jönsson Rydinger, Jönsson Stenberg, Jönsson Stjernfeldt, Jönsson Svan, Jönsson-Lörd, Jörans, Jöransdotter, Jöransson, Jörgensen Wain, Jörgonson, Kaalund, Kaas, Kaas af Mur, Kabell, Kafle, Kahn, Kall, Kalldin, Kallenberg, Kallmer, Kames, Kamf, Kamp, Kamph, Kampmann, Kapferer, Karadja, Karadja pascha, Karlbeck, Karlbäck, Karlsdotter, Karlsdotter, Karlsson, Karlsson Listerberg, Karlsson Nilsson, Karlsson Rabe, Karlsten, Karström, Kasparsdotter, Kastensdotter, Kastnyr, Keil, Kelfve, Kellgren, Kellmodin, Kenne, Kieldsdatter, Kieldsen, Kieldsson Lilja, Kierbye, Kiersgaard, Kierulf, Kihlmark, Kinberg, Kinch, Kipp, Kirkeby, Kirketerp, Kirschner, Kisbye, Kjeldahl, Kjelder, Kjeldsdatter, Kjeldsen, Kjeldsen Weinschenck, Kjellberg, Kjellerup, Kjellgren, Kjellin, Kjellman, Kjellsson, Kjerstensson, Kjerulf, Kjerulff, Klang, Klang Perrsdotter, Klang Persdotter, Klang Persson, Klarin, Klassén, Klassén Sundström, Klaug, Klausch, Klefelt, Klein, Kleinsorg, Klemedsson, Klensorg, Klerebladh, Klim, Kling, Klingenberg, Klinterot, Klog, Klohs, Klohs Rambech, Knopf, Knudsdatter, Knudtzen, Knudtzon, Knutsdotter, Knutson, Knutsson, Kobb, Koch, Kock, Koefoed, Kofod, Kofoed, Kohrtz, Kojima, Koll, Kollerup, Kolòdkin, Komstedt, Korneliusdotter, Korneliusson, Krabbe, Kraft, Krafve, Kragballe, Kragh, Kramer, Krapf, Krath, Krebs, Krehmer, Krieger, Krikström, Kristensdotter, Kristensen, Kristensson, Kristiansdotter, Kristiansdotter Wikman, Kristiansen, Kristiansson, Kristiansson Carlsson, Kristoffersdotter, Kristoffersen, Kristoffersson, Kristoffersson Dahlqvist, Kristoffersson Rosberg, Kristoffersson Syrén, Kroch, Krog, Krog, Krog-Meyer, Krogh, Kron, Kronkvist, Kronquist, Kronqvist, Kronvall, Kruse, Kulldorff, Kuntze, Kuylenstierna, Kuylenstjerna, Kvist, Kÿkler Kjökler, Kynde, Küttner, Kåge, Kåhre, Käll, Källman, Källström, Känne, Kölichen, Köller, la Cour, La Fleur, Lacey, Lager Malmberg, Lagerbielke, Lagerlöf, Lagerqvist, Lageson, Lagesson, Laggare, Landberg, Landby, Landén, Landgren, Landström, Langballe, Lange, Langergaard, Langner, Langsted, Lanng, Lans, Lanz, Larpent, Lars, Larsdatter, Larsdotter, Larsdotter DISBYT, Larsdotter Fält, Larsdotter Lundstedt, Larsen, Larsson, Larsson Blom, Larsson Bonde, Larsson Borgqvist, Larsson Callmer, Larsson Fält, Larsson Holm, Larsson Holst, Larsson Levin, Larsson Lindqvist, Larsson Lundstedt, Larsson Nordlund, Larsson Nyström, Larsson Rosén, Larsson Sjögren, Larsson Strand, Larsson Ström, Larsson Willander, Larsson Åvall, Lassedotter, Lassen, Lassesdotter, Lassesson, Lasson, Laub, Lauersen, Laurberg, Laurell, Lauritsdatter, Lauritsen, Lauritzen, Laursdatter, Laursen, Laursen Kuppert, Laustsen, Lavesdotter, Lavesson, Ledin, Lehndal ,Lehman, Lejon, Lem, Lemoine, Lennqvist, Lentz, Lentz Rée, León González, León Weinschenck, Lerche, Lesler, Leth, Lett, Leufvenmark, Levin, Liberg, Licht, Lidell, Lidén, Lidfeldt, Lidman, Lidström, Liebe, Liebert, Liebmann, Liedholm, Lihme, Lilienkampff, Lilja, Liljeblad, Liljegren, Liljeqvist, Lillelund, Lillienschiold, Lilliesköld, Limskilde, Lincoln Rosén, Lind, Lindahl, Lindal, Lindau, Lindbeck, Lindberg, Lindberg, Lindberg Persson, Lindblad, Lindborg, Lindell, Lindelof Olsen, Lindén, Lindenhäll, Linder, Linderström, Lindfors, Lindgreen, Lindgren, Lindh, Lindhardt, Lindholm, Lindkvist, Lindquist, Lindqvist, Lindros, Lindroth, Lindskog, Lindstén, Lindström, Lindström Rosendal, Lindvall, Lindwall, Ling, Linnet, Lisborg, Lithovia, Litz, Ljung, Ljungberg, Ljungdahl, Ljunggren, Ljungh, Ljungquist, Ljungqvist, Ljungström, Lodin, Loinsworth, Loir, López Blanco, Lorensen, Lorensson, Lorentsson, Lostedt, Lovén, Lovesson, Ludvigsdotter, Ludvigsson, Lueders, Lund, Lundahl, Lundberg, Lundberg Blücher, Lundberg Lindgren, Lundblad, Lundborg, Lundby, Lundbye, Lundgren, Lundholm, Lundin, Lundkvist, Lundmark, Lundquist, Lundqvist, Lundstedt, Lundstedt Zewde, Lundstén, Lundström, Lundvall, Lundwall, Luplau, Lustig Stångberg, Luther, Lyche, Lydersen, Lydichsen, Lyngaae, Lynge, Lütken, Lützen, Långdahl, Långström, Läbom, Lännquist, Löf, Löfdahl, Löfgren, Löfquist, Löfqvist, Löfstedt, Löfström, Löfvall, Lönbom, Lönbom Lundbom, Lönn, Lönnquist, Lönnqvist, Lönroth, Lövgren, Löwenadler, Löwstedt, Maale, Madsdatter, Madsen, Madsen Magius, Magius zu Horneburg, Magnidotter, Magnusdotter, Magnusdotter Magni, Magnusson, Magnusson Gullqvist, Magnusson Kronqvist, Magnusson Plan, Mahr, Mahrt, Majer, Malling, Malm, Malmberg, Malmborg, Malmgren, Malmquist, Malmqvist, Malmros, Malmrosdotter, Malmsten, Malmström, Malthe-Bruun, Mangor, Mannesdotter, Mannesson, Mantzius, Marceau, Marcel, Marcel Weinschenck, Maribo, Mark, Marklund, Markman, Markström, Markusdatter, Markvang, Marqurd, Marqvardt, Mars, Marsala, Marstrand, Martin Packness, Martinsson, Mathiasdotter, Mathiasen, Mathsson, Matsdotter, Matsson, Mattel, Mattiasson, Mattisdotter, Mattisson, Mattsdotter, Mattsdotter Sjöblom, Mattsson, Mattsson Lindnert, Mattsson-Mårn, Matzau, Matzdotter, Max, Medin, Meidell, Meier, Meigård, Meijb, Meijer, Meisler, Meissner, Melboe, Melén, Melin, Mellberg, Merbitz, Mertz, Mertz Blume, Mesler, Meulengracht, Meurs, Meyer, Michaelsdotter, Michelsdotter, Michelsen, Michelson, Michelsson, Mickelsdotter, Mickelsson, Middelthon, Mikkelborg, Mikkelsdatter, Mikkelsen, Mintschenko, Mitchell, Moberg, Modée, Modéer, Modin, Mogensdatter, Mogensen, Mohlin, Mohr, Molander, Molin, Mollberg, Mollerup, Moltke af Morales, Morales González, Morales Weinschenck, Mortensdatter, Mortensen, Morthorst, Morville, Moses, Motzfeldt, Mourier, Mulder, Mumme, Munch, Munck, Mundt-Petersen, Munk, Munthe, Myers, Mygind, Müller, Müllertz, Mynster, Münter, Myre, Måns Pers, Månsdotter, Månsson, Månsson Dahlgren, Månsson Holmgren, Månsson Klingenberg, Månsson Ljungstrand, Månsson Lundström, Mårtens, Mårtensdotter, Mårtensson, Möller, Möllergren, Möllerstedt, Nagel, Nansen, Nathan, Neckelmann, Nedergaard, Neergaard, Nej, Nelsdotter, Nelson, Nelsson, Nerman, Nero, Nesselqvist, Nettzén, Netzén, Neu, Neuenkirchen, Neuman, Nevander, Nexmar, Nicklasson Kilberg, Niclasdotter, Niclasson, Nielsdatter, Nielsdotter, Nielsen, Nielsen, Nielsen Nielsen Just, Nieuwenhuis, Niklasdotter, Niklasson, Nikolic, Nilén, Nils, Nilsdotter, Nilsdotter, Nilsdotter Boberg, Nilsdotter Lindqvist, Nilsdotter Niwén, Nilsdotter Walters, Nilsdotter Åkerman, Nilssen, Nilsson, Nilsson, Nilsson Ahl, Nilsson Bergqvist, Nilsson Björkman, Nilsson Bokander, Nilsson Engqvist, Nilsson Fransen, Nilsson Friberg, Nilsson Fält, Nilsson Gillén, Nilsson Hagblom, Nilsson Hedeby, Nilsson Holmgren, Nilsson Holmlund, Nilsson Klarin, Nilsson Lilja, Nilsson Lindberg, Nilsson Lindfors, Nilsson Lindgren, Nilsson Lindqvist, Nilsson Lindsjö, Nilsson Lindskog, Nilsson Lörd, Nilsson Melin, Nilsson Nettelbjer, Nilsson Nivén, Nilsson Niwén, Nilsson Petersson, Nilsson Rosenqvist, Nilsson Rydberg, Nilsson Seltir, Nilsson Sten, Nilsson Sundén, Nilsson Thomasson, Nilsson Tilly, Nilsson Vilhelmsson, Nilsson Årman, Niska, Nissen, Nobel, Nohr, Norberg, Nord, Nordahl, Nordberg, Nordborg, Nordell, Nordentoft, Nordgren, Nordholm, Nordin, Nording, Nordlander, Nordling, Nordlund, Nordmark, Nordqvist, Nordstedt, Nordsten, Nordstrand, Nordström, Norgren, Norlander, Norlund, Norrbohm, Norstedt, Norström, Nyberg, Nycander, Nyegaard, Nygren, Nygård, Nyholm, Nykvist, Nylander, Nylin, Nyman, Nyréhn, Nürnberg, Nyström, Näslund, Oberberg, Odhner, Odhnoff, Ogbewe, Ohlasdotter, Ohls, Ohlsdotter, Ohlsson, Ohlsson Malmström, Okänd, Okänt, Olaidotter, Olander, Olander Persson, Olandersson, Olasdotter, Olausdotter, Olausson, Oldenburg, Olesdatter, Olesen, Olin, Olivarius, Olof Pers, Olofsdotter, Olofsdotter, Olofson, Olofson Larsson, Olofsson, Olofsson Bergkvist, Olofsson Bergvall, Olofsson Hedquist, Olofsson Hensy, Olofsson Lindberg, Olofsson Lindberg Hägg, Olofsson Lundgren, Olofsson Nordlund, Olofsson Sandström, Olofsson Sjödal, Olofsson Stenberg, Olofsson Stocker, Olofsson Tengvall, Olofsson Ölund, Olovsdotter, Olovsson, Ols, Olsdatter, Olsdotter, Olsdotter Mattsson, Olsen, Olson, Olson-Carle, Olsson, Olsson Ahlin, Olsson Andonius, Olsson Boberg, Olsson Falk, Olsson Idoff, Olsson Kanér, Olsson Kron, Olsson Lind, Olsson Mattsson, Olsson Murat, Olsson Odervall, Olsson Olin, Olsson Orsmark, Olsson Rothén, Olsson Rydebank, Olsson Segerslätt, Olsson Skog, Olsson Smith, Olsson Thorsberg, Olsson Wedén, Olsson Wendelin, Olsson Wik, Olufdatter, Olufsdatter, Olufsdotter, Olufsen, Olufsson, Oredsdotter, Orsmark, Oscarsson, Oskarsdotter, Ossbahr, Ostenfeld, Otterstedt, Ottosdotter, Ottosson, Overgaard, Ovesen, Packer, Pagander, Pagels, Pahl, Palau, Palmgren, Palmquist, Palmqvist, Paludan, Palvig, Pamp, Park, Parson, Pauli, Paulsdotter, Paulsen, Paulson, Paulsson, Paumen, Pavius, Payngk, Pedersdatter, Pedersdatter, Pedersdatter, Pedersdotter, Pedersen, Pedersen, Pedersen-Holmen, Pehrsdotter, Pehrsson, Pehrsson Ström, Pena, Pena Weinschenck, Per Hans, Perez Martinez, Pers, Persbeck, Persdotter, Persdotter Ek, Persdotter Hinsasdotter, Persdotter Lundström, Persdotter Pålsson, Persdotter Walters, Persdotter Ågårdh, Persson, Persson Ahlström, Persson Ask, Persson Attrup, Persson Billing, Persson Cronsioe, Persson Cronsjö, Persson Dahlgren, Persson Dahlqvist, Persson Ek, Persson Ekberg, Persson Ekstrand, Persson Eld, Persson Engman, Persson Engström, Persson Finman, Persson Fredlund, Persson Grundström, Persson Gryta, Persson Hedlund, Persson Hektor, Persson Henrysson, Persson Holm, Persson Järnkula, Persson Lindström, Persson Lundström, Persson Löfdahl, Persson Löfgren, Persson Malmström, Persson Marklund, Persson Nerman, Persson Nevander, Persson Nordqvist, Persson Pettersson, Persson Pihlström, Persson Pilquist, Persson Rosberg, Persson Rosenlund, Persson Sten, Persson Sundén, Persson Sundqvist, Persson Söderstjerna, Persson Wallin, Persson Wendel, Persson Wicklund, Persson Ågårdh, Peter, Petersdotter, Petersdotter Björklund, Petersdotter Hall, Petersen, Petersen, Petersen Peterson, Petersson, Petri, Pettersdotter, Pettersson, Pettersson Althén, Pettersson Karlsson, Pettersson Mannström, Pettersson Molin, Pettersson Munkert, Pettersson Ohlander, Pettersson Rabe, Pfeiffer, Philipsen, Phillips, Piculell Larsson, Pihl, Pilquist, Pindsfeld, Piper, Pira, Plambeck, Plambeck Borgström, Plan, Plenge, Plesner, Pligt, Plomgren, Plum, Pofvelsen, Pofvelsson, Poleman, Porth, Posfelt, Poulsdatter, Poulsdatter Steenild, Poulsen, Pourtschan, Pousette, Pramberg, Prien, Priergaard, Printz, Prom, Provilo, Prüss, Pryts, Psilander, Pultz, Påhlsdotter, Påhlson, Påhlsson, Påhlsson Falk, Pålsdotter, Pålsson, Pålsson Lindskog, Pålsson Strand, Pährsdotter, Pärsdotter, Pärson, Pärsson, Pärsson Korp, Quist, Qvarnström, Qvist, Qvistgaard, Qvistgård, Raaf, Rabe, Rafn, Rafqvist, Ragnell, Rambech, Ramberg, Ramm, Ramstedt, Ramström, Rank, Rankin, Rasmusdatter, Rasmusdotter, Rasmusen, Rasmussen, Rasmussen, Rasmussen Erasmi, Rasmusson, Rathjen, Rathsack, Ravn, Reckenagel, Redout, Rée, Regnell, Regnér, Rehn, Reidl, Reimer, Reinhold, Reinholtz, Reinold, Renberg, Renlund, Renner, Renström, Resman, Reuss-Lobenstein, Reuterswärd, Reuther, Rexert, Ribbing, Riber, Richert, Riis Johansen, Riisberg, Rindom, Ring, Ringberg, Ringdahl, Ringkvist, Ringquist, Ringqvist, Ringström, Ripperger, Risberg, Ritzén, Rivero González, Rivero Weinschenck, Rode, Rodríguez, Rohde, Rohman, Rohr, Rojas Naranjo, Rojas Weinschenck, Rokström, Romberg, Rommedal, Rosander, Rosberg, Rosdahl, Rosell, Rosén, Rosenberg, Rosendahl, Rosenfeldt, Rosenfelth, Rosengren, Rosenkvist, Rosenlund, Rosenlöf, Rosenqvist, Rosman, Rosqvist, Ross, Rosslin, Rossvik, Rosvall, Roth, Rothe, Rothén, Rova, Rubach, Ruckle, Rudberg, Rudolf, Rudolf Billesjö, Rundberg, Rundfält, Rundgren, Rundquist, Rundqvist, Runestam, Rungren, Runnerström, Rur, Ruth, Ruthberg, Ryberg, Rydberg, Ryde, Ryder, Rydqvist, Rydstrand, Rydström, Rye, Rylander, Rönberg, Rönne, Rönngren Rungren, Rönnkvist, Röring, Rössel, Sabelfelt, Sabelsköld, Sabournin Téllez, Sabroe, Sagnert, Salomonsson, Samuelsdotter, Samuelsen, Samuelsson, Sandahl Harved, Sandberg, Sandell, Sander, Sandgren, Sandin, Sandlund, Sandqvist, Sandrewsky, Sandström, Sassarsson, Sassersdotter, Sassersson, Saur, Savstam, Saxild, Schack, Schadely, Schaumburg-Müller, Scheibe, Schell, Scherman, Schildknecht, Schillström, Schive, Schjerning, Schmeling, Schmidt, Schmigelov, Schnabel, Scholander, Schollin, Schommel, Schou, Schou Kjeldsen, Schrader, Schubart, Schulow, Schultz, Schuylenburg, Schwan, Schwennesen, Schylander, Schytte, Schönbeck, Schörling, Schött, Sedvall, Seger, Segerslätt, Segerström, Segerståhl, Sehested, Seidelin, Seiholtz, Sejersen, Sejoe, Selberg, Selien, Selin, Selldén, Sendrup, Sevedsson, Severin, Severin Borg, Sidström, Siegumfeldt, Sifverdotter, Sigfridsson, Sigurd, Sigvardsdotter, Silfverberg, Silfverhjelm, Silfverschiöld, Sillén, Simko, Simonsdatter, Simonsdotter, Simonsen, Simonsson, Singstock, Siunason, Siunnas, Siunnesson, Sizmore, Siöstet, Sjunarsson, Sjunnesdotter, Sjunnesson, Sjöberg, Sjöblom, Sjödahl, Sjögren, Sjöholm, Sjölin, Sjölund, Sjösten, Sjöstrand, Sjöstrand Sandberg, Sjöström, Skafte, Skibsted, Skog, Skogh, Skoglöf, Skov, Skow, Skow, Skåningsdotter, Skåningsson, Slater, Släger, Smagbier, Smidt, Smith, Smoby, Snejstrup, Solheim, Sonasdotter, Sonesdotter, Sonesson, Sonesson-Bögerup, Sonmark, Sorterup, Soter Rodríguez, Speitzer, Spetz, Spleth, Stabel, Stabell, Staffansdotter, Staffansson, Stallknecht, Stampe, Stark, Starke, Steenild, Stefansson, Steinthal, Steiner, Sten, Stenbeck, Stenberg, Stenbom, Stendal, Stender Nielsen, Steneram, Stenhammar, Stenkvist, Stenlund, Stenmark, Stenvall, Stephansson, Stewens, Stibolt, Stierna, Stiernspetz, Stiernstedt, Stisen, Stjernkrantz, Stjernkvist, Stjernspetz, Stochholm, Stocker, Stockfleth, Stoltz, Storck, Stoud, Strand, Strandberg, Strandbygaard, Strandkvist, Strandqvist, Strange, Strangesen, Strannesten, Strelert, Stricharsdotter, Strid, Stridbeck, Stridde, Stridh, Stråhle, Stråhlén, Stråhlenhielm, Stråle, Ström, Strömberg, Strömblad, Styff, Ståhl, Stål, Stång, Suhr, Sundberg, Sundbom, Sunddin, Sundell, Sundén, Sundgren, Sundquist, Sundqvist, Sundstedt, Sundström, Supanick, Suzuki, Svan, Svanberg, Svanborg, Svane, Svaneklink, Svanholm, Svedholm, Sven Pers, Svendsdatter, Svendsen, Svendstorp, Svenningsen, Svenningsson, Svensdotter, Svenson, Svensson, Svensson Angelin, Svensson Backe, Svensson Bergström, Svensson Borgkvist, Svensson Brännare, Svensson Brännberg, Svensson Brännström, Svensson d y, Svensson d ä, Svensson Delin, Svensson Forsberg, Svensson Fransson, Svensson Hertzman, Svensson Hjertz, Svensson Holmberg, Svensson Kellgren, Svensson Källgren, Svensson Ljung, Svensson Malmsten, Svensson Mohlin, Svensson Möller, Svensson Olsson, Svensson Quist, Svensson Qvist, Svensson Revert, Svensson Rosendahl, Svensson Sjösten, Svensson Skog, Svensson Wahlsten, Svänasson, Svänsson, Svärd, Swan, Swensdotter, Swensson, Sånasson, Säflund, Säfvedsson, Sällberg, Sävsten, Söderblom, Södergren, Söderholm, Söderman, Söderstjerna, Söderström, Sörensdotter, Sörensson, Sörensson-Utbult, Taberman, Tafdrup, Tagesson, Tamelander, Tanner, Tapper, Tarm, Tauson, Tell, Tellström, Tengvall, Tern, Tetens, Thaarup, Thalin, Thestrup, Thiel, Thiele, Thielsen, Thiesen, Thillerup, Tholander, Thomasdatter, Thomasdotter, Thomassen, Thomasson, Thomsen, Thomsen, Thorbjörnsson, Thormansdotter, Thormarck, Thorsberg, Thorsdotter, Thorsell, Thorsen, Thorsson, Thorzén, Thostesson, Thuesdotter, Thuesen, Thulin, Thunström, Thunvall, Thuresdotter, Thuvesson, Thygesdatter, Thörning, Tibemo, Tietz, Tillheden, Tillisch, Tillrooth, Tilly, Timmermann, Tinder, Tinggård, Tjalve, Tjernström, Tobiasson, Toivasdotter Gustafsson, Toldberg, Tolerus, Toll, Tollesdotter, Tollesson, Tomasdotter Friberg, Tomasson, Toomaru, Torbjörnsson, Toresdotter, Torgersdotter, Torgersson, Torgersson Malmgren, Torjesdatter, Torkelsdotter, Torling, Torp, Torsdotter, Torslov, Torsson, Torstensdotter, Torstensson, Tostensdotter, Tostensson, Trana, Tranberg, Tranfeldt, Traustedt, Travis, Troedsdotter, Troedsson, Troedsson Cedergren, Trolle, Truedsdotter, Truedsson, Trulsdotter, Trulsson, Trulsson Otterstedt, Tuesdotter, Tufvasdotter, Tufvesdotter, Tufvesson, Tufvesson Thulin, Tuheson, Tulin, Tullberg, Tullesdotter, Tullgren, Tullipan, Tune, Turesson, Tuvasdotter, Tuvesdotter, Tuvesson, Tuvfvesson, Tuxen, Tvede, Tvermoes, Twetowius, Tybjerg, Tyge, Tykesdotter, Tykesson, Tårstensson, Tåstesdotter, Tåstesson, Tönnesdotter, Törner, Törnquist, Udsen, Udsole, Uf, Uhrman, Uldall, Uldriksdatter, Ulfsax, Ulrich, Ulrichsdatter, Undahl, Unger, Unna, Ussing, Utbult, Uusitalo, Vahlholm, Vahlquist, Vaksjö, Valeriano, Valeriano Palau, Valeriano Weinschenck, Vallenstam, Vallin, Vallström, Valter, van de Velde, Van Der Linden, van der Schaft, Vanlith, Vedel, Vejby-Christensen, Velin, Vendel, Vennborg, Verner-Carlsson, Vester, Vesterberg, Vesterby, Vestergaard, Vesterlund, Vestman, Vetterberg, Vetterström, Viale, Viberg, Victor, Vidén, Vik, Vikberg, Viklund, Vikman, Vikström, Viktorsson, Vilhelmsen, Vilhelmsson, Villman, Vinstedt, Vinther, Visser, Voigt, Voldmester, Volkersen, von Arenstorff, von Barnekow, von Brandes, von Deer, von Degen, von Grabmayr-Angerheim, von Halle, von Holstein, von Holstein af Fürstenberg, von Holtzmann, von Kauffmann, von Knorre, von Kreitz, von Krogh, von Köller, von Lepel, von Magius, von Merbitz, von Otter, von Platen, von Pultz, von Quanten, von Schantz, von Schinckel, von Staffeldt, von Stolting, von Westen, von Wouwern, von Würtzen, von Zeipel, Vontobel, Voogd, Värn, Wadén, Waern-Leffler, Wahlberg, Wahlgren, Wahlsten, Wahlström, Wahlund, Wahren, Waldemarsson, Waleru, Walker, Wallander, Wallander Karlsson, Wallberg, Wallbom, Wallén, Wallenius, Wallenius Lundgren, Wallentinsson, Wallersteen, Wallin, Wallius, Wallmark, Wallström, Walter, Waltersson Spanier, Wandborg, Warde, Warg, Warming, Warrer, Wartberg, Wassler, Wasteson, Watt, Way, Wedell-Wedellsborg, Wedseltoft, Weed, Wegener, Weibull, Weiland, Weimard, Weinschenck, Weinschenck Benítez, Weinschenck Campos, Weinschenck de Armas, Weinschenck González, Weinschenck Jordán, Weinschenck López, Weinschenck Morales, Weinschenck Perez, Weinschenck Soter, Welander, Welding, Welinder, Wellnert, Wendel, Wendelbo-Madsen, Wendin, Wendt, Wennberg, Wennborg, Wenström, Werlin Olsson, Wernebäck, Werner, Wernersdatter, Wers, Wessberg, Wesselsdotter, Wessman, Westberg, Wester, Westerberg, Westerblad, Westerdahl, Westergren, Westerlund, Westermark, Westin, Westling, Weston, Wettergreen, Wettergren, Wetterstrand, Weyde, Wiberg, Wickenberg, Wicklund, Wicklund Pihlström, Wickström, Widding, Widér, Widerberg, Widestrand, Widgren, Wifesson, Wifvesdotter, Wifvesson, Wiinstedt, Wik, Wikberg, Wiklund, Wikman, Wikström, Wilckens, Wilde, Wildermuth, Wilhelmsson, Willadsen, Willander, Willerup, Wilmenius, Winberg, Winblad, Wingenblixt, Winkler, Winstedt, Winter, Winters, Winther, Wisén, Wismer, Wissén, Wistedt, Wistedt Vetterström, Witte, Wodstrup, Wohlgemuht, Wolff, Wolff-Sneedorf, Wolkersen, Worm, Wormslev, Wretman, Wulff, Wåhlberg, Wållin, Wärn, Wästeson, Ydström, Ygberg, Yhl, Ytterberg, Zachariassen, Zachariasson, Zachau, Zachrisson, Zackariasdotter, Zackariasson, Zackow, Zackrisson, Zakrisdotter, Zakrisson, Zederin, Zetterberg, Zetterman, Zetterström, Zewde, Ziemer, Ziervogel, Ziethen, Zilo, Zimmermann, Zinck, Åberg, Åbom, Ågesdotter, Ågesson, Ågren, Ågårdh, Åhrberg, Åkasdotter, Åkason, Åkasson, Åkerberg, Åkerblom, Åkerlund, Åkerman, Åkerström, Åkesdotter, Åkeson, Åkesson, Åkesson, Åkesson Falkman, Åkesson Lindqvist, Åkesson Thulin, Åman, Åradsdotter, Åradsson, Årman, Åström, Äskels, Öberg, Öberg Nlsson, Öfverlund, Ögren, Öhlund, Öhman, Öhrman, Öjeberg, Ölund, Öman, Önnersdotter, Önnerson, Önnersson, Örtberg, Örtegren, Öst, Östberg, Östensdotter, Östensson, Österberg, Östergren, Österlund, Östgren, Östlund, Östman] } personalEmails: [gmail.com, yahoo.com, spray.se, hotmail.se, passagen.se] companyNames: [Volvo, Ericsson, Vattenfall, Skanska, Volvo Cars, H&M, TeliaSonera, Electrolux, Preem, Sandvik, ICA Gruppen, Stora Enso, Atlas Copco, Nordea, SCA, Scania, Securitas, Nordstjernan, SKF, ABB, Axel Johnson, NCC, Astrazeneca, Sony Mobile Communications, Peab, Assa Abloy, Tele2, E.ON, Boliden, SSAB, Postnord, If Skadeförsäkring, SEB, St1, Kooperativa Förbundet, Autoliv, Swedbank, Axfood, Lantmännen, Scandinavian Airlines, Stena Metall, Folksamgruppen, Handelsbanken, Statoil, Husqvarna, Alfa Laval, Bonnierkoncernen, LKAB, Stena, Ratos, Länsförsäkringsgruppen, Alecta, Nynas, Systembolaget, SAAB, Getinge, Investor, Fortum Sweden, Toyota, OKQ8, Trelleborg, L E Lundbergföretagen, Apoteket, Hexagon, Cellmark, Ahlsell, Volkswagen, IKEA, Holmen, Bilia, Tetra Pak, AMF, Aarhuskarlshamn, Södra Skogsägarna, Skandia, Arla Foods, Akzo Nobel, Storstockholms Lokaltrafik, Papyrus, Samsung Electronics, Modern Times Group, Pfizer, Meda, Trav och Galopp, Swedish Match, Schenker, JM, Telenor, Nobia, Ekman & Co, TD Tech Data, Martin & Servera, Loomis, Outokumpu Stainless, Gambro, Hewlett-Packard, Bergendahl & Son, Fritidsresor, Perstorp, BillerudKorsnäs] companySuffixes: [AB, Holding AB, Consulting, Inc., Aktiebolag, Ltd] companyEmails: [info, kontakt, support] text: Men jag måste förklara för dig hur allt detta felaktiga uppfattningen att säga upp av ett nöje och prisa smärta föddes och jag kommer att ge dig en fullständig redogörelse av systemet, och förklara de faktiska lärdomarna stora utforskare av sanningen, byggmästaren av mänsklig lycka. Ingen avvisar, ogillar eller undviker nöje i sig, eftersom det är glädje, men eftersom de som inte vet hur man ska lyckas nöje rationellt möter konsekvenser som är oerhört smärtsamt. Inte heller är det någon som älskar eller bedriver eller önskar att få smärtan i sig självt, eftersom det är smärta, men ibland uppstår omständigheter som ur strävan och smärtan kan försäkra honom ett sant nöje. För att ta ett trivialt exempel, som av oss någonsin hård fysisk träning, förutom att få någon fördel av det? Men vem har rätt att hitta fel med en man som väljer att njuta av ett nöje som inte har några störande konsekvenser, eller en som undviker en smärta som inte resulterar i tillfredsställelse? telephone_number_formats: ['070-### ## ##', '072-### ## ##', '073-### ## ##', '076-### ## ##', '079-### ## ##', '08-### ### ##', '08-### ## ##', '08-## ## ##', '0###-## ## ##', '0##-### ## ##', '0##-## ## ##'] postal_code: ['### ##'] city: [Alingsås, Arboga, Arvika, Askersund, Avaskär, Avesta, Boden, Bollnäs, Borgholm, Borlänge, Borås, Broo, Brätte, Båstad, Djursholm, Eksjö, Elleholm, Enköping, Eskilstuna, Eslöv, Fagersta, Falkenberg, Falköping, Falsterbo, Falun, Filipstad, Flen, Gamla Lödöse, Getakärr, Gränna, Gävle, Göteborg, Hagfors, Halmstad, Haparanda, Hedemora, Helsingborg, Hjo, Hudiksvall, Huskvarna, Härnösand, Hässleholm, Höganäs, Järle (Jerle), Jönköping, Kalmar, Karl Johans stad, Karlshamn, Karlskoga, Karlskrona, Karlstad, Katrineholm, Kiruna, Kongahälla, Kramfors, Kristianopel, Kristianstad, Kristinehamn, Kumla, Kungsbacka, Kungälv, Köping, Laholm, Landskrona, Lidingö, Lidköping, Lindesberg, Linköping, Ljungby, Lomma, Ludvika, Luleå, Lund, Luntertun, Lycksele, Lyckå, Lysekil, Lödöse, Malmö, Mariefred, Mariestad, Marstrand, Mjölby, Motala, Mölndal, Mönsterås, Nacka, Nora, Norrköping, Norrtälje, Nya Lidköping, Nya Lödöse, Nybro, Nyköping, Nynäshamn, Nässjö, Oskarshamn, Oxelösund, Piteå, Ronneby, Sala, Sandviken, Sigtuna, Simrishamn, Skanör, Skanör med Falsterbo, Skara, Skellefteå, Skänninge, Skövde, Sollefteå, Solna, Stockholm, Strängnäs, Strömstad, Sundbyberg, Sundsvall, Säffle, Säter, Sävsjö, Söderhamn, Söderköping, Södertälje, Sölvesborg, Tidaholm, Torget, Torshälla, Tranås, Trelleborg, Trollhättan, Trosa, Tumathorp, Uddevalla, Ulricehamn, Umeå, Uppsala, Vadstena, Varberg, Vaxholm, Vetlanda, Vimmerby, Visby, Vä, Vänersborg, Värnamo, Västervik, Västerås, Växjö, Ystad, Åhus, Åmål, Älvsborg, Ängelholm, Öjebyn, Örebro, Öregrund, Örnsköldsvik, Östersund, Östhammar] street: [Adlerbethsgatan, Adolf Fredriks Kyrkogata, Af Pontins Väg, Ahlsellvägen, Akademigränd, Aktergatan, Allhelgonagatan, Allmänna Gränd, Almlöfsgatan, Alsnögatan, Alstaviksvägen, Alströmergatan, Aluddsparken, Aluddsvägen, Amarantergränd, Amiralitetsbacken, Anders Reimers Väg, Andra Bassängvägen, Andra Tvärvägen, Andréegatan, Ankargränd, Ansgariegatan, Apelbergsgatan, Arbetargatan, Arkivgatan, Armfeltsgatan, Arsenalsgatan, Artemisgatan, Artillerigatan, Askrikegatan, Assessorsgatan, Atlasgatan, Atlasmuren, Atterbomsvägen, Babordsgatan, Badstrandsvägen, Baggensgatan, Baldersgatan, Baltzar Von Platens Gata, Banbrinken, Banérgatan, Barnhusgatan, Barnängs Tvärgränd, Barnängsgatan, Barnängsgränd, Bastugatan, Beckbrännarbacken, Beckholmen, Beckholmsvägen, Bedoirsgränd, Bellevuevägen, Bellmansgatan, Bengt Ekehjelmsgatan, Bergsgatan, Bergsgränd, Bergsjölundsvägen, Bergsmarksvägen, Bergsprängargränd, Bergsunds Strand, Bergsundsgatan, Beridarbansgatan, Beridarebanan, Bertil Ohlins Gata, Berzelii Park, Biblioteksgatan, Bigarråvägen, Birger Jarls Torg, Birger Jarlsgatan, Birger Sjöbergs Väg, Birkagatan, Biskopsvägen, Bjurholmsgatan, Bjurholmsplan, Björngårdsgatan, Björnnäsbacken, Björnnäsvägen, Björns Trädgårdsgränd, Blanchegatan, Blasieholmsgatan, Blasieholmstorg, Blecktornsbrinken, Blecktornsgränd, Blecktornsstigen, Blekegatan, Blekholmsgatan, Blekholmsterrassen, Blekholmstorget, Blekingegatan, Blockhusringen, Blommensbergsvägen, Bo Bergmans Gata, Bohusgatan, Bolinders Plan, Bollhusgränd, Bondegatan, Bondesonsgatan, Borgargatan, Borgmästargatan, Borgvägen, Bragevägen, Brahegatan, Brantingsgatan, Breda Gatan, Bredgränd, Breitenfeldsgatan, Brinellvägen, Brunbärsvägen, Brunkebergsgatan, Brunkebergstorg, Brunnsgatan, Brunnsgränd, Brunnsviksvägen, Bryggargatan, Bryggvägen, Bråvallagatan, Brännerigatan, Brännkyrkagatan, Buteljgatan, Bysistorget, Båtbyggargatan, Bältgatan, Böttigervägen, Cardellgatan, Carl Akrells Gata, Carl Alberts Gränd, Carl-Gustaf Lindstedts Gata, Cedersdalsgatan, Celsiusgatan, Centralplan, Chapmansgatan, Chapmansgården, Coldinutrappan, Crafoords Väg, Creutzgatan, Dag Hammarskjölds Väg, Dalagatan, Dalslandsgatan, Danderydsgatan, Dannemoragatan, David Bagares Gata, De Geersgatan, Dianavägen, Didrik Ficks Gränd, Disponentgatan, Djurgårdsbrunnsvägen, Djurgårdsslätten, Djurgårdsvägen, Doktor Abelins Gata, Drakenbergsgatan, Drakens Gränd, Drejargatan, Drottning Kristinas Väg, Drottning Sofias Väg, Drottninggatan, Drottningholmsvägen, Drottninghusgränd, Duvnäsgatan, Döbelnsgatan, Dörjgränd, Ehrensvärdsgatan, Ekehjelmstorget, Ekensbergsbryggan, Ekensbergsvägen, Ekermans Gränd, Eknäsvägen, Eldarvägen, Elersvägen, Engelbrekts Kyrkogata, Engelbrektsgatan, Engelbrektsplan, Ensittarvägen, Eolsgatan, Eremitvägen, Erik Dahlbergsallén, Erik Dahlbergsgatan, Eriksbergsgatan, Eriksdalsgatan, Ernst Ahlgrens Väg, Erstagatan, Essinge Brogata, Essinge Högväg, Essinge Kyrkväg, Essingekroken, Essingeringen, Essingestråket, Essingetorget, Exercisplan, Falkenbergsgatan, Falugatan, Fartygsgatan, Fatburs Brunnsgata, Fatburs Kvarngata, Fatbursgatan, Fatburstrappan, Ferkens Gränd, Finska Kyrkogränd, Fiskargatan, Fiskartorpsvägen, Fisksjöängsvägen, Fjällgatan, Fjärde Bassängvägen, Flaggmansvägen, Fleminggatan, Flintbacken, Floragatan, Flottbrovägen, Folkskolegatan, Folkungagatan, Folkungatrappan, Franzéngatan, Fredhällsgatan, Fredmansgatan, Fredrik Bloms Väg, Fredriksdalsgatan, Fredrikshovsgatan, Fredsborgsgatan, Fredsborgstorget, Fredsgatan, Fregattvägen, Frejgatan, Fridhemsgatan, Fridhemsplan, Friggagatan, Frihamnsgatan, Fryxellsgatan, Frödingsvägen, Funckens Gränd, Furusundsgatan, Fyrverkarbacken, Fågelbärsgården, Fågelhundsgatan, Fågelsångens Gårdsväg, Fågelsångsvägen, Färgargårdstorget, Förmansvägen, Förskeppsgatan, Första Bassängvägen, Gaffelgränd, Galärvarvsvägen, Gambrinusgatan, Gamla Brogatan, Gamla Lundagatan, Gammelgårdsgränd, Gammelgårdsvägen, Garvar Lundins Gränd, Garvargatan, Gasverksvägen, Gaveliusgatan, Geijersvägen, Gillögagatan, Gjutargatan, Gjörwellsgatan, Glasbruksgatan, Glödlampsgränd, Gotlandsgatan, Grenljusbacken, Grev Magnigatan, Grev Turegatan, Greve Von Essens Väg, Grevgatan, Grevgränd, Grindsgatan, Grubbens Gata, Grubbensringen, Grubbenstorget, Gruvbacken, Grytgjutargången, Gräsgatan, Grönbrinksgatan, Gröndalshamnen, Gröndalsvägen, Gudöbroleden, Guldgränd, Gumshornsgatan, Gustav Adolfs Torg, Gyldéngatan, Gyllenborgsgatan, Gyllenstiernsgatan, Gåsgränd, Gärdesgatan, Gästrikegatan, Gävlegatan, Göran Hälsinges Gränd, Götgatan, Hagagatan, Hagagränd, Hallandsgatan, Hamburgsvägen, Hammarby Allé, Hammarby Fabriksväg, Hammarby Kaj, Hammarby Kajväg, Hammarby Slussväg, Hammarbyterrassen, Hammargatan, Hamngatan, Hangövägen, Hantverkargatan, Havregatan, Hazeliusbacken, Hazeliusporten, Hedbornsstigen, Hedemoratäppan, Hedinsgatan, Heimdalsgatan, Heleneborgsgatan, Helga Lekamens Gränd, Helgagatan, Helgalunden, Heliosgatan, Herkulesgatan, Hildebergsvägen, Hjalmar Cederströms Gata, Hjalmar Söderbergs Väg, Hjärnegatan, Holländargatan, Holmamiralens Torg, Holmamiralens Väg, Hornsbruksgatan, Hornsgatan, Hornsgatspåfarten, Hornskroken, Hornstulls Strand, Hornsviksstigen, Hovslagargatan, Hubertusgatan, Hudiksvallsgatan, Humlegårdsgatan, Hunduddsvägen, Hälsingegatan, Hälsingehöjden, Härdgången, Hästholmsvägen, Höga Stigen, Högalids Kyrkväg, Högalidsgatan, Högbergsbacken, Högbergsgatan, Högvaktsterrassen, Högviltsgatan, Hökens Gata, Hötorget, Idaborgsvägen, Idungatan, Igeldammsgatan, Ignatiigränd, Industrigatan, Inedalsgatan, Ingemarsgatan, Ingenjörsvägen, Ingmar Bergmans Gata, Ivan Oljelunds Gränd, Iversonsgatan, Jakob Westinsgatan, Jakobs Torg, Jakobsbergsgatan, Jakobsgatan, Jaktvarvsplan, Jarlaplan, Johannes Plan, Johannesgatan, Johannesgränd, John Bergs Plan, John Ericssonsgatan, Josefinavägen, Jungfrugatan, Jungmansgränd, Junohällsvägen, Jutas Backe, Jägargatan, Jägmästargatan, Järntorget, Järntorgsgatan, Kadettgatan, Kaknäsvägen, Kallskärsgatan, Kammakargatan, Kampementsgatan, Kanslikajen, Kapellgränd, Kaplansbacken, Kaptensgatan, Karaffgatan, Karduansmakargatan, Karl Johans Torg, Karlaplan, Karlavägen, Karlbergsvägen, Karlshällsvägen, Karlsviksgatan, Kastellbacken, Kastellholmskajen, Katarina Bangata, Katarina Kyrkobacke, Katarina Västra Kyrkogata, Katarina Östra Kyrkogårdsgränd, Katarinavägen, Katrinebergsbacken, Katrinebergsvägen, Kattgränd, Kindstugatan, Klara Mälarstrand, Klara Norra Kyrkogata, Klara Strand, Klara Södra Kyrkogata, Klara Tvärgränd, Klara Vattugränd, Klara Västra Kyrkogata, Klara Östra Kyrkogata, Klarabergsgatan, Klarabergsviadukten, Klarafaret, Klarastrandsleden, Klefbecks Backe, Klevgränd, Klippgatan, Klockstapelsbacken, Klyvarvägen, Knaperstavägen, Kocksgatan, Kocksgränd, Kolargatan, Kolmårdsgränd, Kommendörsgatan, Konradsbergsgatan, Konvojgatan, Korgmakargränd, Kornhamnstorg, Korphoppsgatan, Kristinebergs Slottsväg, Kristinebergs Strand, Kristinebergsvägen, Kristinehovsgatan, Kronobergsgatan, Krukmakarbacken, Krukmakargatan, Kryssargatan, Kråkgränd, Krångedevägen, Kungsbro Strand, Kungsbron, Kungsbroplan, Kungsgatan, Kungsholms Hamnplan, Kungsholms Kyrkoplan, Kungsholms Strand, Kungsholms Strandstig, Kungsholmsgatan, Kungsholmstorg, Kungsklippan, Kungstensgatan, Kungsträdgårdsgatan, Kvarngatan, Kvastmakarbacken, Kvastmakartrappan, Kyrkslingan, Kåkbrinken, Källargränd, Källbergsvägen, Kölnagatan, Köpmanbrinken, Köpmangatan, Köpmantorget, Körsbärsvägen, Laboratoriegatan, Laduviksvägen, Lagerlöfsgatan, Lanforsvägen, Lantmäteribacken, Lehusens Gränd, Lejonstedts Gränd, Lennmans Trappgränd, Levertinsgatan, Lidingövägen, Lidnersgatan, Lidnersplan, Lidovägen, Lignagatan, Liljas Gata, Liljeholmsbron, Liljeholmsgränd, Liljeholmshamnen, Liljeholmsstranden, Liljeholmstorget, Liljeholmsvägen, Lill-Jans Plan, Lilla Allmänna Gränd, Lilla Bantorget, Lilla Erstagatan, Lilla Hoparegränd, Lilla Nygatan, Lilla Skinnarviksgränd, Lilla Skuggans Väg, Lindarängsvägen, Lindhagensgatan, Lindhagensplan, Lindstedtsvägen, Lindvallsgatan, Lindvallsplan, Linnégatan, Ljusslingan, Ljusstöparbacken, Ljustergränd, Ljusterögatan, Lodgatan, Lokstallsgatan, Lorensbergsgatan, Lotsgatan, Louddsvägen, Love Almqvists Väg, Lovisagatan, Lucidorsgatan, Ludvigsbergsgatan, Lugnets Allé, Lumagatan, Lumaparksvägen, Lundagatan, Luntmakargatan, Lustigkullavägen, Lusuddsvägen, Luthens Gränd, Luxgatan, Lützengatan, Långa Gatan, Långa Raden, Långholmsbacken, Långholmsgatan, Långholmsmuren, Lästmakargatan, Lögebodavägen, Löjtnantsgatan, Lövholmsbrinken, Lövholmsgränd, Lövholmsvägen, Magnus Ladulåsgatan, Mail Boxes Etc, Majorsgatan, Malmgårdsvägen, Malmskillnadsgatan, Malmtorgsgatan, Malmvägen, Maltgatan, Manillavägen, Maria Bangata, Maria Prästgårdsgata, Maria Sandels Gränd, Maria Skolgata, Maria Trappgränd, Mariagränd, Mariatorget, Mariebergsavfarten, Marieviksgatan, Markvardsgatan, Marmorgatan, Maskinistgatan, Matrosbacken, Medborgarplatsen, Mejerivägen, Mellangatan, Messeniusgatan, Metargatan, Midskeppsgatan, Midskogsgränd, Mitisgatan, Mjärdgränd, Montebellogatan, Mosebacke Torg, Motalavägen, Munkbrogatan, Munkbrohamnen, Munkbroleden, Munkbron, Museivägen, Myntgatan, Mynttorget, Målargatan, Mårten Trotzigs Gränd, Mårtensdalsgatan, Mälartorget, Mälarvarvsbacken, Mäster Mikaels Gata, Mäster Pers Gränd, Mäster Samuelsgatan, Möregatan, Mörka Kroken, Mörtvikskroken, Nackagatan, Narvavägen, Nicandervägen, Nils Ericsons Plan, Nimrodsgatan, Nobelgatan, Noe Arksfaret, Noe Arksgränden, Nordenflychtsvägen, Nordenskiöldsgatan, Norr Mälarstrand, Norra Agnegatan, Norra Bankogränd, Norra Benickebrinken, Norra Dryckesgränd, Norra Hamnvägen, Norra Kajvägen, Norra Riddarholmshamnen, Norra Stationsgatan, Norrbackagatan, Norrbro, Norrlandsgatan, Norrmalmstorg, Norrskogsvägen, Norrtullsgatan, Notvarpsgränd, Nybergsgatan, Nybodaringen, Nybohovsbacken, Nybohovsgränd, Nybrogatan, Nybrohamnen, Nybrokajen, Nybroplan, Nygränd, Nytorget, Nytorgsgatan, Näckströmsgatan, Närkesgatan, Nätgränd, Observatoriegatan, Odengatan, Odenplan, Ola Hanssonsgatan, Olaus Petrigatan, Olof Dalins Väg, Olof Gjödingsgatan, Olof Palmes Gata, Olofsgatan, Onkel Adams Väg, Ordenstrappan, Ormbergsvägen, Orvar Odds Väg, Osquars Backe, Osquldas Väg, Oxenstiernsgatan, Oxtorget, Oxtorgsgatan, Oxtorgsgränd, P O Hallmans Gata, Packhusgränd, Palermogatan, Palmbladsvägen, Parkgatan, Parmmätargatan, Patentgatan, Pelikansgränd, Peter Myndes Backe, Pilgatan, Pipersgatan, Planterhagsvägen, Ploggatan, Pokalvägen, Polhemsgatan, Pontonjärgatan, Porjusvägen, Primusgatan, Prins Eugens Väg, Prinsessan Ingeborgs Väg, Prinsessan Märtas Väg, Pryssgränd, Prästgatan, Pustegränd, Pålsundsgatan, Pålsundsparken, Ragnar Östbergs Plan, Ragvaldsgatan, Rapsgatan, Redargatan, Regeringsgatan, Rehnsgatan, Reimersholmsgatan, Renstiernas Gata, Repslagargatan, Riddargatan, Riddarhusgränd, Riddarhuskajen, Riddarhustorget, Rigagatan, Riksgatan, Rimbogatan, Rindögatan, Ringvägen, Robert Almströmsgatan, Roddargatan, Ropstensslingan, Rorgängargatan, Rosenbad, Rosendalsterrassen, Rosendalsvägen, Rosengatan, Rosenhillsvägen, Rosenlundsgatan, Roslagsgatan, Roslagstullsbacken, Ruddammsbacken, Ruddammsvägen, Runebergsgatan, Runiusgatan, Rutger Fuchsgatan, Ryssviksvägen, Rådjursstigen, Rådlösavägen, Rådmansgatan, Råggatan, Rålambsvägen, Rävgrytsbacken, Rödabergsbrinken, Rödabergsgatan, Rödbodgatan, Rödbodtorget, Rökubbsgatan, Rörstrandsgatan, Sachsgatan, Saltmätargatan, Salviigränd, Samaritgränd, Samuel Owens Gata, Sandbacksgatan, Sandelsgatan, Sandhamnsgatan, Sandhamnsplan, Sandåsgatan, Sankt Eriksgatan, Sankt Eriksplan, Sankt Eriksterrassen, Sankt Göransgatan, Sankt Paulsgatan, Sannadalsvägen, Scheelegatan, Scheffersgatan, Schönfeldts Gränd, Segelbåtsvägen, Seglatsgatan, Sehlstedtsgatan, Separatorgränd, Serafimergränd, Sergelarkaden, Sergelgatan, Sergelgången, Sergels Torg, Siargatan, Sibyllegatan, Sickla Kanalgata, Signalgränd, Sigtunagatan, Singelbacken, Sirishovsvägen, Sista Styverns Trappor, Sjukhusbacken, Själagårdsgatan, Sjöbjörnsvägen, Sjöfartsgatan, Sjömansgränd, Sjöstugugränd, Sjötullsbacken, Sjöviksbacken, Sjövikskajen, Sjövikstorget, Sjöviksvägen, Skansbacken, Skansbrogatan, Skansbron, Skaraborgsgatan, Skarpskyttestigen, Skarpögatan, Skeppar Karls Gränd, Skeppar Olofs Gränd, Skeppargatan, Skeppargränd, Skeppsbrokajen, Skeppsbron, Skeppsmäklargatan, Skillinggränd, Skinnarviksringen, Skogsmarksvägen, Skogvaktargatan, Skolgränd, Skomakargatan, Skonertvägen, Skottgränd, Skrubbasandsvägen, Skräddargränd, Skutskepparvägen, Skånegatan, Sköldgatan, Sköldungagatan, Slipgatan, Slottsbacken, Slupskjulsvägen, Slussplan, Slöjdgatan, Smala Gränd, Smedsbacksgatan, Smedsuddsvägen, Smålandsgatan, Snickarbacken, Snipkroken, Snoilskyvägen, Sockerbruksgränd, Sofiagatan, Sofiebergsvägen, Solgränd, Solkraftsvägen, Sollidsbacken, Spektens Gränd, Stadsgården, Stadsgårdshamnen, Stadsgårdsleden, Stadshagens Idrottsväg, Stadshagsplan, Stadshagsvägen, Staffan Sasses Gränd, Stagneliusvägen, Stallgatan, Starrängsringen, Stenbocksgatan, Stenkullavägen, Stenshällsvägen, Stickelbärsvägen, Stiernhielmsvägen, Stigbergsgatan, Stora Essingepåfarten, Stora Gråmunkegränd, Stora Hoparegränd, Stora Mejtens Gränd, Stora Nygatan, Stora Skuggans Väg, Storgatan, Storkyrkobrinken, Storskärsgatan, Stortorget, Storängskroken, Storängsvägen, Strandbergsgatan, Strandvägen, Strindbergsgatan, Strykerskevägen, Strålgatan, Strömgatan, Strömparterren, Strömsborgsbron, Studentbacken, Sturegatan, Stureparken, Stureplan, Styckjunkargatan, Styrbordsgatan, Styrmansgatan, Sundstabacken, Surbrunnsgatan, Svartensgatan, Svartmangatan, Svarvargatan, Sveavägen, Svedbergsplan, Svedbergsstigen, Sven Rinmans Gata, Sven Vintappares Gränd, Svensksundsvägen, Swedenborgsgatan, Sysslomansgatan, Sågargatan, Sällskapsvägen, Sätertäppan, Söder Mälarstrand, Söder Mälarstrands Kajplatser, Södermalmsallén, Södermalmstorg, Södermannagatan, Södertäljevägen, Södra Agnegatan, Södra Bankogränd, Södra Bassängkajen, Södra Benickebrinken, Södra Blasieholmshamnen, Södra Brobänken, Södra Dryckesgränd, Södra Hamnvägen, Södra Kajen, Södra Riddarholmshamnen, Tantogatan, Taptogatan, Tavastgatan, Teatergatan, Tegelbacken, Tegeluddsvägen, Tegelviksgatan, Tegnérgatan, Tegnérlunden, Teknikringen, Teknologgatan, Telegrafgränd, Tempeltrappan, Tengdahlsgatan, Terminalslingan, Textilgatan, Thorildsplan, Thorildsvägen, Tideliusgatan, Timmermansgatan, Timmermansgränd, Timotejgatan, Tjurbergsgatan, Tjustgatan, Tjärhovsgatan, Tjärhovsplan, Tobaksspinnargatan, Tomtebogatan, Torbjörn Klockares Gata, Torggatan, Torkel Knutssonsgatan, Torkhusgatan, Torsgatan, Torsplan, Torstenssonsgatan, Transportvägen, Tre Liljor, Tredje Bassängvägen, Tredje Tvärvägen, Trekantsvägen, Triewaldsgränd, Trollhättevägen, Tryckerigatan, Trålgränd, Trångsund, Trädgårdsgatan, Trädgårdstvärgränd, Tulegatan, Tullgränd, Tullgårdsgatan, Tullvaktsvägen, Tunnelgatan, Ture Nermans Gränd, Tvätterskevägen, Tyghusplan, Tyrgatan, Tyska Brinken, Tyska Brunnsplan, Tyska Skolgränd, Tyska Stallplan, Tyskbagargatan, Tysta Gatan, Tysta Marigången, Uggelviksgatan, Ugglegränd, Uggleviksvägen, Ulrikagatan, Untravägen, Upplagsvägen, Upplandsgatan, Urvädersgränd, Utkiksbacken, Valhallavägen, Vanadislunden, Vanadisplan, Vanadisvägen, Varvsgatan, Vasagatan, Vasaplan, Vattenkraftsvägen, Vattugatan, Vegagatan, Verdandigatan, Verkstadsgatan, Vetegatan, Vickergatan, Vidargatan, Vikingagatan, Villagatan, Vindkraftsvägen, Vindragarvägen, Vingårdsgatan, Vinodlargatan, Vintertullstorget, Vinterviksvägen, Virkesvägen, Vitalisvägen, Vulcanusgatan, Vänskapsvägen, Väpnargatan, Värdshusbacken, Värdshusslingan, Väringgatan, Värtans Stationsväg, Värtavägen, Västerbroplan, Västerlånggatan, Västeråsgatan, Västgötagatan, Västgötagränd, Västmannagatan, Västra Järnvägsgatan, Västra Trädgårdsgatan, Västra Vattugränd, Vävar Johans Gata, Völundsgatan, Wahrendorffsgatan, Wallingatan, Warfvinges Väg, Wargentinsgatan, Welanders Väg, Wennerbergsgatan, Wenströmsvägen, Wittstocksgatan, Wivalliusgatan, Wollmar Yxkullsgatan, Ynglingagatan, Yttersta Tvärgränd, Yxsmedsgränd, Zinkens Väg, Ångströmsgatan, Årsta Hamnväg, Årsta Holmar, Årsta Skolgränd, Årstaskogs Väg, Årstaängsvägen, Åsögatan, Åsötorget, Älvkarleövägen, Älvsborgsgatan, Ängskärsgatan, Ölandsgatan, Öregrundsgatan, Örlogsvägen, Österlånggatan, Östermalmsgatan, Östermalmstorg, Östgötagatan, Östhammarsgatan, Östra Järnvägsgatan, Östra Varvsgatan, Östra Varvsgatans Gränd, Överskärargränd] country: ['Sverige'] language: 'SV' ================================================ FILE: src/main/resources/jfairy_tr.yml ================================================ alphabet: abcçdefgğhıijklmnoöprsştuüvyz domains: [ com.tr, org.tr, net.tr, edu.tr, gov.tr, k12.tr, av.tr, dr.tr, bel.tr, tsk.tr ] firstNames: { male: [ Ahmet, Mehmet, Mustafa, Ali, Hüseyin, Hasan, İbrahim, İsmail, Osman, Murat, Ömer, Ramazan, Halil, Süleyman, Abdullah, Mahmut, Recep, Salih, Fatih, Kadir, Emre, Gökhan, Hakan, Serkan, Metin, Burak, Volkan, Bülent, Kenan, Selçuk, Yavuz, Sinan, Can, Kerem, Deniz, Onur, Umut, Eren, Arda, Mert, Yiğit, Berk, Tolga, Kaan, Doruk, Batuhan, Görkem, Furkan, Enes, Yunus, Bilal ], female: [ Fatma, Ayşe, Emine, Hatice, Zeynep, Özlem, Elif, Meryem, Gamze, Şerife, Hanife, Sultan, Zehra, Havva, Hayriye, Cemile, Güllü, Leyla, Saliha, Melek, Arzu, Yasemin, Esra, Dilek, Pınar, Tuğba, Seda, Ebru, Gizem, Büşra, Kübra, Feyza, Beyza, İrem, Merve, Nursel, Selin, Pelin, Damla, Yağmur, Ece, Duru, Defne, Azra, Derin, Bade, Nehir, Eylül, Melis ], } lastNames: { male: [ Yılmaz, Kaya, Demir, Çelik, Şahin, Yıldız, Yıldırım, Öztürk, Aydın, Özdemir, Arslan, Doğan, Kılıç, Aslan, Çetin, Kara, Koç, Kurt, Özkan, Şimşek, Polat, Özcan, Korkmaz, Çakır, Erdoğan, Yavuz, Can, Aksoy, Köse, Güler, Aktaş, Avcı, Akın, Özer, Ünal, Kaplan, Bulut, Yiğit, Sarı, Taş, Kaymak, Önal, Güneş, Ay, Karaman, Çavuş, Yalçın, Uzun, Karakaş, Tekin ], female: [ Yılmaz, Kaya, Demir, Çelik, Şahin, Yıldız, Yıldırım, Öztürk, Aydın, Özdemir, Arslan, Doğan, Kılıç, Aslan, Çetin, Kara, Koç, Kurt, Özkan, Şimşek, Polat, Özcan, Korkmaz, Çakır, Erdoğan, Yavuz, Can, Aksoy, Köse, Güler, Aktaş, Avcı, Akın, Özer, Ünal, Kaplan, Bulut, Yiğit, Sarı, Taş, Kaymak, Önal, Güneş, Ay, Karaman, Çavuş, Yalçın, Uzun, Karakaş, Tekin ] } personalEmails: [ gmail.com, hotmail.com, yahoo.com, outlook.com, icloud.com ] companyNames: [ Holding, Şirket, Ticaret, Sanayi, Limited, Anonim, Bilişim, Otomotiv, Gıda, İnşaat, Tekstil, Lojistik, Turizm, Enerji, Medya, Sağlık, Eğitim, Banka, Sigorta, Mağaza, Market, Restoran, Kafe ] companySuffixes: [ 'A.Ş.', 'Ltd. Şti.', 'Hizmetleri', 'Grubu', 'Dış Ticaret' ] companyEmails: [ info, destek, satis, hello, merhaba ] text: Bu bir deneme metnidir. Türkçe dil desteği için oluşturulmuştur. Bu sistem sayesinde rastgele Türkçe veriler üretebilirsiniz. Adresler, isimler, telefon numaraları ve daha fazlası artık jfairy ile mümkün. Teknolojinin getirdiği bu kolaylıklar sayesinde test süreçleriniz daha hızlı ve verimli hale gelecek. telephone_number_formats: [ '+90 5## ### ## ##' ] postal_code: [ '#####' ] city: [ İstanbul, Ankara, İzmir, Bursa, Antalya, Adana, Konya, Gaziantep, Şanlıurfa, Mersin, Kocaeli, Diyarbakır, Hatay, Manisa, Kayseri, Samsun, Balıkesir, Kahramanmaraş, Van, Aydın ] street: [ İstiklal Caddesi, Bağdat Caddesi, Cumhuriyet Caddesi, Atatürk Bulvarı, Vatan Caddesi, Ordu Caddesi, Halaskargazi Caddesi, Abdi İpekçi Caddesi, Nispetiye Caddesi, Barbaros Bulvarı, Turgut Özal Bulvarı, Mevlana Caddesi, Fevzi Çakmak Caddesi, Ziya Gökalp Caddesi, Mithatpaşa Caddesi, Tunalı Hilmi Caddesi, Bahçelievler 7. Cadde, Kenan Evren Bulvarı, Gazipaşa Bulvarı, Talatpaşa Bulvarı ] country: [ 'Türkiye' ] language: 'TR' ================================================ FILE: src/main/resources/jfairy_zh.yml ================================================ alphabet: abcdefghijklmnopqrstuvwxyz domains: [com, cn, net, org] firstNames: { male: [俊杰, 亚波, 耀鸿, 旦冉, 国辉, 国富, 小明, 俊佳, 金城, 俊煜, 嘉斌, 泽民, 宸风, 雨泽, 云帆, 剑枫, 正宇], female: [析丹, 小慧, 黛玉, 宝钗, 宝华, 祖英, 蒹葭, 瑶依, 沛菡, 曼文, 艾韵, 灵芸, 静琪, 碧琪, 雅芝, 安妮] } lastNames: { male: [赵, 钱, 孙, 李, 周, 吴, 郑, 王, 冯, 陈, 楚, 卫, 苏, 蒋, 沈, 韩, 杨, 张, 黄, 徐, 刘], female: [赵, 钱, 孙, 李, 周, 吴, 郑, 王, 冯, 陈, 楚, 卫, 苏, 蒋, 沈, 韩, 杨, 张, 黄, 徐, 刘] } personalEmails: [gmail.com, 163.com, 126.com, qq.com, sina.com, sohu.com] companyNames: [数说故事, 网易之, 腾企鹅, 千度, 京西, 后海金融, 互动派, 塔布数据, 阿狸巴巴, 图匠] companySuffixes: [科技有限公司, 股份有限公司, 集团, 有限公司, 金融投资有限公司] companyEmails: [info, contact, company, office, org, com] text: 我们 你好 工资 赚钱 是 非常 魅力 美丽 运动 自由 风雅 要求 感情 代码 研发 神奇 动物 魔法 忍术 你们 的 手机 小米 苹果 猫 狗 相信 很多 一样 梦想 随身 携带 操作 系统 无论 哪里 只要 电脑 可以 随时 运行 自己 配置 博文 一步步 如何 驱动 加载 想象 一个 场景 也许 使用 设置 telephone_number_formats: ['###-####-####', '###########', '########'] postal_code: ['######'] city: [广州, 深圳, 杭州, 北京, 南京, 天津, 重庆, 上海, 武汉, 西安, 珠海, 福州, 台北, 高雄, 长沙, 哈尔滨] street: [中山大道, 环市东路, 内环路, 外环西路, 中山四路, 滨江路, 江海大道, 湖滨路, 朝阳大街, 人民路, 解放路, 沿江路, 海滨路, 新华路] country: [中国, 美国, 法国, 英国, 德国, 西班牙, 意大利, 加拿大, 俄罗斯, 日本, 韩国, 巴西] language: 'ZH' ================================================ FILE: src/test/groovy/com/devskiller/jfairy/FairyDeSpec.groovy ================================================ package com.devskiller.jfairy import spock.lang.Specification import com.devskiller.jfairy.producer.person.Person /** * @author Roland Weisleder */ class FairyDeSpec extends Specification { private final int SEED = 186 private Fairy fairy = Fairy.builder().withRandomSeed(SEED).withLocale(Locale.GERMAN).build() def "Should create German name"() { when: Person person = fairy.person() then: person.fullName == 'Timo Höfling' // well, that's german enough... } def "Should create German city"() { when: Person person = fairy.person() then: person.address.city == 'Hockenheim' } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/FairyFrSpec.groovy ================================================ package com.devskiller.jfairy import spock.lang.Specification import com.devskiller.jfairy.producer.person.Person import com.devskiller.jfairy.producer.company.Company /** *

* Test suite for French locale. *

* Note: Expected values reflect the random sequence for SEED 7 after * introducing Luhn-compliant VAT and specific Passport providers. */ class FairyFrSpec extends Specification { private final int SEED = 7 private Fairy fairy = Fairy.builder() .withRandomSeed(SEED) .withLocale(Locale.FRENCH) .build() def "Should create French name"() { when: Person person = fairy.person() then: person.fullName == 'Alexis Tanguy' } def "Should create French city"() { when: Person person = fairy.person() then: person.address.city == 'Saint-Denis' } def "Should create valid French passport number"() { when: Person person = fairy.person() then: person.passportNumber ==~ /\d{2}[A-Z]{2}\d{5}/ person.passportNumber == '28DO74569' } def "Should create valid French national identity card (CNI)"() { when: Person person = fairy.person() then: person.nationalIdentityCardNumber ==~ /88\d{2}050OLUQS/ } def "Should create valid French VAT (TVA) number"() { given: Company company = fairy.company() when: String vat = company.vatIdentificationNumber then: vat == 'FR44489040287' and: "verify TVA key logic" String siren = vat.substring(4) int key = Integer.parseInt(vat.substring(2, 4)) key == (12 + 3 * (Long.parseLong(siren) % 97)) % 97 } def "Should satisfy Luhn algorithm for SIREN"() { given: Company company = fairy.company() String siren = company.vatIdentificationNumber.substring(4) when: int sum = 0 siren.reverse().eachWithIndex { digits, i -> int n = Integer.parseInt(digits) if (i % 2 != 0) { n *= 2 if (n > 9) n -= 9 } sum += n } then: sum % 10 == 0 } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/FairyKaSpec.groovy ================================================ package com.devskiller.jfairy import spock.lang.Specification import com.devskiller.jfairy.producer.person.Person class FairyKaSpec extends Specification { private final int SEED = 2 private Locale geLocale = new Locale.Builder().setLanguage("ka").setRegion("ge").setScript("Geor").build() private Fairy fairy = Fairy.builder().withRandomSeed(SEED).withLocale(geLocale).build() def "Should create Georgian name"() { when: Person person = fairy.person() then: person.fullName == 'ბაადურ აბრამიძე' // Baadur Abramidze } def "Should create Georgian street"() { when: Person person = fairy.person() then: person.address.street == 'მეფე სოლომონ II-ის ქუჩა' } def "Should create Georgian city"() { when: Person person = fairy.person() then: person.address.city == 'ზუგდიდი' } def "Should create Georgian ID card"() { when: Person person = fairy.person() then: person.nationalIdentityCardNumber == 'Nს6819982' } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/FairyModuleSpec.groovy ================================================ package com.devskiller.jfairy import spock.lang.Specification import com.devskiller.jfairy.data.MapBasedDataMaster import com.devskiller.jfairy.producer.BaseProducer import com.devskiller.jfairy.producer.DateProducer import com.devskiller.jfairy.producer.person.locale.de.DeAddressProvider import com.devskiller.jfairy.producer.person.locale.en.EnAddressProvider import com.devskiller.jfairy.producer.person.locale.es.EsAddressProvider import com.devskiller.jfairy.producer.person.locale.fr.FrAddressProvider import com.devskiller.jfairy.producer.person.locale.ka.KaAddressProvider import com.devskiller.jfairy.producer.person.locale.pl.PlAddressProvider import com.devskiller.jfairy.producer.person.locale.sv.SvAddressProvider import com.devskiller.jfairy.producer.person.locale.zh.ZhAddressProvider class FairyModuleSpec extends Specification { private MapBasedDataMaster mapBasedDataMaster = Stub(MapBasedDataMaster) private BaseProducer baseProducer = Stub(BaseProducer) private DateProducer dateProducer = Stub(DateProducer) def "should create appropriate locale-specific providers for locale"() { when: LocaleSpecificProviders providers = LocaleSpecificProvidersFactory.createProvidersForLocale( Locale.forLanguageTag(locale), mapBasedDataMaster, baseProducer, dateProducer) then: providers.addressProvider().getClass() == expectedAddressProvider where: locale | expectedAddressProvider "en" | EnAddressProvider.class "pl" | PlAddressProvider.class "es" | EsAddressProvider.class "fr" | FrAddressProvider.class "it" | EnAddressProvider.class "de" | DeAddressProvider.class "sv" | SvAddressProvider.class "ka" | KaAddressProvider.class "zh" | ZhAddressProvider.class } def "should fall back to English providers for unknown locale"() { when: LocaleSpecificProviders providers = LocaleSpecificProvidersFactory.createProvidersForLocale( Locale.forLanguageTag("xx"), mapBasedDataMaster, baseProducer, dateProducer) then: providers.addressProvider().getClass() == EnAddressProvider.class } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/FairySpec.groovy ================================================ package com.devskiller.jfairy import java.util.function.Supplier import spock.lang.Specification import com.devskiller.jfairy.data.DataMaster import com.devskiller.jfairy.producer.person.Person class FairySpec extends Specification { private static final String CUSTOM_STRING = 'Custom Data Master' DataMaster customDataMaster = Stub(DataMaster) { getString(_ as String) >> CUSTOM_STRING getStringList(_ as String) >> Arrays.asList(CUSTOM_STRING) getValuesOfType(_ as String, _ as String, String.class) >> CUSTOM_STRING getRandomValue(_ as String) >> CUSTOM_STRING } Supplier customDataMasterProvider = Stub(Supplier) { get() >> customDataMaster } def "Second person should be different without fairy instance"() { given: Person person = Fairy.create().person() when: person = Fairy.create().person() then: person.fullName != old(person.fullName) } def "Second person should be different with one fairy"() { given: Fairy fairy = Fairy.create() Person person = fairy.person() when: person = fairy.person() then: person.fullName != old(person.fullName) } def "Second person should be the same with the same random seed"() { given: Fairy firstFairy = Fairy.builder().withRandomSeed(10).build() Fairy secondFairy = Fairy.builder().withRandomSeed(10).build() Person firstPerson = firstFairy.person() Person secondPerson = secondFairy.person() Person thirdPerson = firstFairy.person() Person fourthPerson = secondFairy.person() expect: firstPerson.fullName == secondPerson.fullName thirdPerson.fullName == fourthPerson.fullName firstPerson.fullName != thirdPerson.fullName } def "Second person should be different with different random seeds"() { given: Fairy firstFairy = Fairy.builder().withRandomSeed(10).build() Fairy secondFairy = Fairy.builder().withRandomSeed(20).build() Person firstPerson = firstFairy.person() Person secondPerson = secondFairy.person() expect: firstPerson.fullName != secondPerson.fullName } def "should use default DataMaster when custom not provided"() { given: Fairy fairy = Fairy.create() when: Person samplePerson = fairy.person() then: samplePerson.firstName && samplePerson.firstName != CUSTOM_STRING } def "should use custom DataMaster when provided"() { given: Fairy fairy = Fairy.create(customDataMasterProvider, Locale.forLanguageTag("EN")) when: Person samplePerson = fairy.person() then: samplePerson.firstName == CUSTOM_STRING } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/FairyZhSpec.groovy ================================================ package com.devskiller.jfairy import spock.lang.Specification import com.devskiller.jfairy.producer.company.Company import com.devskiller.jfairy.producer.person.Person /** * * com.devskiller.jfairy.FairyZhSpec * @author lhfcws * @since 2017/3/2 */ class FairyZhSpec extends Specification { private final int SEED = 1 private Fairy fairy = Fairy.builder().withRandomSeed(SEED).withLocale(Locale.CHINA).build() /******************** * Person */ def "Should create Chinese name"() { when: Person person = fairy.person() then: person.fullName == '国富 钱' } def "Should create Chinese id card"() { when: Person person = fairy.person() then: person.nationalIdentityCardNumber.length() == 18 } def "Should create empty since Chinese id number is the only citizen id in China"() { when: Person person = fairy.person() then: person.nationalIdentificationNumber.length() == 0 } def "Should create Chinese address"() { when: Person person = fairy.person() then: person.address.addressLine1 == '南京市中山大道122号 101房' } def "Should create Chinese city"() { when: Person person = fairy.person() then: person.address.city == '南京' } /******************** * Company */ def "Should create Chinese company name"() { when: Company company = fairy.company() then: company.name == "后海金融" } def "Should create Chinese company url"() { when: Company company = fairy.company() then: company.url == "http://www.540e6d7791.org" } def "Should create Chinese company vat"() { when: Company company = fairy.company() then: company.vatIdentificationNumber.length() == 15 } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/UniqueEnforcerSpec.groovy ================================================ package com.devskiller.jfairy import java.util.function.Supplier import com.devskiller.jfairy.producer.person.Person import com.devskiller.jfairy.producer.company.Company import spock.lang.Specification class UniqueEnforcerSpec extends Specification { private Fairy fairy = Fairy.create() def "should generate unique persons by email"() { given: def unique = UniqueEnforcer.of(fairy.&person, { Person p -> p.email }) when: def persons = (1..50).collect { unique.next() } def emails = persons.collect { it.email } then: emails.toSet().size() == 50 } def "should generate unique companies by name"() { given: def unique = UniqueEnforcer.of(fairy.&company, { Company c -> c.name }) when: def companies = (1..20).collect { unique.next() } def names = companies.collect { it.name } then: names.toSet().size() == 20 } def "should throw after max retries with small pool"() { given: int counter = 0 def unique = UniqueEnforcer.of({ -> counter++ % 3 }, { it }, 100) when: unique.next() // 0 unique.next() // 1 unique.next() // 2 unique.next() // should fail - only 3 unique values possible then: thrown(UniqueGenerationException) } def "should reset tracked values"() { given: int counter = 0 def unique = UniqueEnforcer.of({ -> counter++ % 2 }, { it }, 100) when: unique.next() // 0 unique.next() // 1 unique.reset() unique.next() // 0 again - OK after reset then: unique.size() == 1 } def "should track size"() { given: def unique = UniqueEnforcer.of(fairy.&person, { Person p -> p.email }) when: (1..10).each { unique.next() } then: unique.size() == 10 } def "should allow custom max retries"() { given: def unique = UniqueEnforcer.of({ -> "same" }, { it }, 5) when: unique.next() // OK first time unique.next() // should fail after 5 retries then: def e = thrown(UniqueGenerationException) e.message.contains("5 retries") } def "should share seen set between default and custom suppliers"() { given: int counter = 0 def unique = UniqueEnforcer.of({ -> counter++ }, { it }, 100) when: unique.next() // 0 via default unique.next({ -> counter++ } as Supplier) // 1 via custom unique.next() // 2 via default then: unique.size() == 3 } def "should reject zero maxRetries"() { when: UniqueEnforcer.of({ -> "x" }, { it }, 0) then: thrown(IllegalArgumentException) } def "should reject negative maxRetries"() { when: UniqueEnforcer.of({ -> "x" }, { it }, -1) then: thrown(IllegalArgumentException) } def "should reject null generator"() { when: UniqueEnforcer.of(null, { it }) then: thrown(NullPointerException) } def "should reject null keyExtractor"() { when: UniqueEnforcer.of({ -> "x" }, null) then: thrown(NullPointerException) } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/UniqueFairySpec.groovy ================================================ package com.devskiller.jfairy import com.devskiller.jfairy.producer.person.PersonProperties import spock.lang.Specification class UniqueFairySpec extends Specification { private Fairy fairy = Fairy.create() def "should generate unique persons by email"() { given: def unique = fairy.unique() when: def persons = (1..50).collect { unique.person() } def emails = persons.collect { it.email } then: emails.toSet().size() == 50 } def "should generate unique persons with properties"() { given: def unique = fairy.unique() when: def persons = (1..20).collect { unique.person(PersonProperties.male()) } def emails = persons.collect { it.email } then: emails.toSet().size() == 20 persons.every { it.male } } def "should track uniqueness across parameterized and non-parameterized calls"() { given: def unique = fairy.unique() when: def p1 = unique.person() def p2 = unique.person(PersonProperties.male()) def p3 = unique.person() then: [p1, p2, p3].collect { it.email }.toSet().size() == 3 } def "should generate unique companies by name"() { given: def unique = fairy.unique() when: def companies = (1..20).collect { unique.company() } def names = companies.collect { it.name } then: names.toSet().size() == 20 } def "should generate unique IBANs"() { given: def plFairy = Fairy.create(Locale.forLanguageTag("pl")) def unique = plFairy.unique() when: def ibans = (1..10).collect { unique.iban() } def numbers = ibans.collect { it.ibanNumber } then: numbers.toSet().size() == 10 } def "should generate unique credit cards"() { given: def unique = fairy.unique() when: def cards = (1..10).collect { unique.creditCard() } def numbers = cards.collect { it.cardNumber } then: numbers.toSet().size() == 10 } def "should reset all trackers"() { given: def unique = fairy.unique() (1..5).each { unique.person() } (1..5).each { unique.company() } when: unique.reset() unique.person() unique.company() then: noExceptionThrown() } def "should support custom max retries"() { given: def unique = fairy.unique(500) when: unique.person() then: noExceptionThrown() } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/data/MapBasedDataMasterSpec.groovy ================================================ /* * Copyright (c) 2013. Codearte */ package com.devskiller.jfairy.data import spock.lang.Specification import com.devskiller.jfairy.producer.BaseProducer import com.devskiller.jfairy.producer.RandomGenerator import com.devskiller.jfairy.producer.person.PersonProvider class MapBasedDataMasterSpec extends Specification { private BaseProducer baseProducer = Spy(BaseProducer, constructorArgs: [new RandomGenerator()]) private MapBasedDataMaster data = Spy(MapBasedDataMaster, constructorArgs: [baseProducer]) def setup() { baseProducer.randomBetween() >> 0 } def "should read first names"() { when: DataMaster dataMaster = new MapBasedDataMaster() dataMaster.readResources("jfairy_en.yml") Map> firstNames = dataMaster.getData(PersonProvider.FIRST_NAME, Map.class) then: firstNames.size() > 0 firstNames.keySet().size() > 0 } def "should return men"() { setup: data.getData(PersonProvider.FIRST_NAME, Map.class) >> [female: ['Ana', 'Ivon'], male: ['Mark']] when: String male = data.getValuesOfType(PersonProvider.FIRST_NAME, "male", String.class) then: male == "Mark" } def "should return one of women"() { setup: data.getData(PersonProvider.FIRST_NAME, Map.class) >> [female: ['Ana', 'Ivon'], male: ['Mark']] when: String female = data.getValuesOfType(PersonProvider.FIRST_NAME, "female", String.class) then: (female == "Ana") || (female == "Ivon") } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/producer/BaseProducerSpec.groovy ================================================ /* * Copyright (c) 2013. Codearte */ package com.devskiller.jfairy.producer import spock.lang.Specification import spock.lang.Unroll class BaseProducerSpec extends Specification { private BaseProducer baseProducer = Spy(BaseProducer, constructorArgs: [new RandomGenerator()]) def setup() { baseProducer.randomBetween('0', '9') >> '7' baseProducer.randomBetween('a', 'z') >> 'x' } def "should replace # with digit 7"() { expect: baseProducer.numerify("Tes#t#") == "Tes7t7" } def "should replace ? with letter x"() { expect: baseProducer.letterify("Tes?t?") == "Tesxtx" } def "should replace # and ? with 7 and x respectively"() { expect: baseProducer.bothify("Test?#") == "Testx7" } def "should replace ? with letter from desired range"() { when: String result = baseProducer.letterify("Test??", 'A' as char, 'A' as char) then: result == "TestAA" } @Unroll def "should generate random number from given range #from - #to"() { setup: BaseProducer randomGenerator = new BaseProducer(new RandomGenerator()) expect: double between = randomGenerator.randomBetween(from, to) between >= from between <= to where: from | to 5 | 9 1 | 2 1 | 3 0 | 4 48 | 57 2L | 3L -5L | -2L -3L | 2L 2.0 | 3.0 -2.0 | -1.0 } def "should retrieve random enum element"() { setup: baseProducer.randomBetween(0, 2) >> 1 expect: TestEnum.B == baseProducer.randomElement(TestEnum) } def "should retrieve random vararg element"() { setup: baseProducer.randomBetween(0, 2) >> 1 expect: 'B' == baseProducer.randomElement('A', 'B', 'C') } @Unroll("Should return #count elements") def "should return declared numer of random elements"() { given: List words = Arrays.asList('1', '2', '3') when: List elements = baseProducer.randomElements(words, count) then: elements.size() == count where: count | _ 1 | _ 2 | _ 3 | _ 4 | _ 5 | _ 6 | _ 7 | _ } static enum TestEnum { A, B, C } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/producer/CompanySpec.groovy ================================================ package com.devskiller.jfairy.producer import org.apache.commons.validator.routines.DomainValidator import org.apache.commons.validator.routines.EmailValidator import org.apache.commons.validator.routines.UrlValidator import spock.lang.Specification import com.devskiller.jfairy.Bootstrap import com.devskiller.jfairy.Fairy import com.devskiller.jfairy.producer.company.Company import static com.devskiller.jfairy.producer.company.CompanyProperties.CompanyProperty.withDomain import static com.devskiller.jfairy.producer.company.CompanyProperties.CompanyProperty.withEmail import static com.devskiller.jfairy.producer.company.CompanyProperties.CompanyProperty.withName import static com.devskiller.jfairy.producer.company.CompanyProperties.CompanyProperty.withVatIdentificationNumber /** * @author Codearte * @since 2013-10-07 */ class CompanySpec extends Specification { private EmailValidator emailValidator = EmailValidator.getInstance() private UrlValidator urlValidator = UrlValidator.getInstance() private DomainValidator domainValidator = DomainValidator.getInstance() private Fairy fairy = Bootstrap.create() def "should instantiate Company producer"() { when: Company company = fairy.company() then: company } def "should be sure that data exists"() { when: Company company = fairy.company() then: company.name domainValidator.isValid(company.domain) emailValidator.isValid(company.email) urlValidator.isValid(company.url) company.vatIdentificationNumber } def "withName should create company with specific name"() { when: Company company = fairy.company(withName("Specific Name")) then: company.name == "Specific Name" } def "withDomain should create company with specific domain"() { when: Company company = fairy.company(withDomain("specificdomain.com")) then: company.domain == "specificdomain.com" } def "withEmail should create company with specific email"() { when: Company company = fairy.company(withEmail("specificemail")) then: company.email.startsWith("specificemail@") } def "withVatIdentificationNumber should create company with specific vat identification number"() { when: Company company = fairy.company(withVatIdentificationNumber("specificvatidentificationnumber")) then: company.vatIdentificationNumber == "specificvatidentificationnumber" } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/producer/DateProducerSpec.groovy ================================================ /* * Copyright (c) 2013 Codearte and authors */ package com.devskiller.jfairy.producer import java.time.LocalDateTime import java.time.OffsetDateTime import java.time.Period import spock.lang.Specification import spock.lang.Unroll class DateProducerSpec extends Specification { private static final int MAX_YEARS_IN_THE_PAST = 5 private static final LocalDateTime CURRENT_DATE = LocalDateTime.parse("2013-11-09T01:16:00") private static final int CURRENT_YEAR = 2013 private static final OffsetDateTime LATEST_DATE_IN_THE_PAST = OffsetDateTime.parse("2013-11-09T01:15:59+00:00") private static final OffsetDateTime SOME_DATE_IN_THE_PAST = OffsetDateTime.parse("2011-01-20T12:32:12+00:00") private static final OffsetDateTime ONE_YEAR_LATER = OffsetDateTime.parse("2014-11-09T01:16:00+00:00") private static final OffsetDateTime FIVE_YEARS_EARLIER_DATE = OffsetDateTime.parse("2008-11-09T01:16:00+00:00") private static final long LATEST_DATE_IN_THE_PAST_IN_MILLIS = LATEST_DATE_IN_THE_PAST.toInstant().toEpochMilli() private static final long SOME_DATE_IN_THE_PAST_IN_MILLIS = SOME_DATE_IN_THE_PAST.toInstant().toEpochMilli() private static final long FIVE_YEARS_EARLIER_DATE_IN_MILLIS = FIVE_YEARS_EARLIER_DATE.toInstant().toEpochMilli() private baseProducer = Spy(BaseProducer, constructorArgs: [new RandomGenerator()]) private timeProviderMock = Mock(TimeProvider) private DateProducer sut = new DateProducer(baseProducer, timeProviderMock) def setup() { timeProviderMock.getCurrentTime() >> CURRENT_DATE timeProviderMock.getCurrentYear() >> CURRENT_YEAR } def "should generate date in the past"() { given: baseProducer.randomBetween(FIVE_YEARS_EARLIER_DATE_IN_MILLIS, LATEST_DATE_IN_THE_PAST_IN_MILLIS) >> SOME_DATE_IN_THE_PAST_IN_MILLIS when: LocalDateTime dateInThePast = sut.randomDateInThePast(MAX_YEARS_IN_THE_PAST) then: dateInThePast < CURRENT_DATE dateInThePast > FIVE_YEARS_EARLIER_DATE.toLocalDateTime() dateInThePast == SOME_DATE_IN_THE_PAST.toLocalDateTime() } def "should fail generate date in the past if passed value is negative"() { given: baseProducer.randomBetween(FIVE_YEARS_EARLIER_DATE_IN_MILLIS, LATEST_DATE_IN_THE_PAST_IN_MILLIS) >> SOME_DATE_IN_THE_PAST_IN_MILLIS when: sut.randomDateInThePast(-MAX_YEARS_IN_THE_PAST) then: thrown IllegalArgumentException } def "should be able to reach minimum date for date in the past"() { given: baseProducer.randomBetween(FIVE_YEARS_EARLIER_DATE_IN_MILLIS, LATEST_DATE_IN_THE_PAST_IN_MILLIS) >> FIVE_YEARS_EARLIER_DATE_IN_MILLIS when: LocalDateTime dateInThePast = sut.randomDateInThePast(MAX_YEARS_IN_THE_PAST) then: dateInThePast == FIVE_YEARS_EARLIER_DATE.toLocalDateTime() } def "maximum date should be before now with defined offset for date in the past"() { given: baseProducer.randomBetween(FIVE_YEARS_EARLIER_DATE_IN_MILLIS, LATEST_DATE_IN_THE_PAST_IN_MILLIS) >> LATEST_DATE_IN_THE_PAST_IN_MILLIS when: LocalDateTime dateInThePast = sut.randomDateInThePast(MAX_YEARS_IN_THE_PAST) then: dateInThePast == LATEST_DATE_IN_THE_PAST.toLocalDateTime() } @Unroll def "should generate date between years #fromYear - #toYear"() { given: baseProducer.randomBetween(_, _) >> {args -> (args[1] + args[0]) / 2} expect: sut.randomDateBetweenYears(fromYear, toYear) == expectedDate where: fromYear | toYear || expectedDate 2009 | 2010 || LocalDateTime.parse("2009-12-31T23:59:30") 2010 | 2010 || LocalDateTime.parse("2010-07-02T11:59:30") 2015 | 2020 || LocalDateTime.parse("2017-12-31T23:59:30") } def "should generate date between specified year and now"() { given: baseProducer.randomBetween(FIVE_YEARS_EARLIER_DATE_IN_MILLIS, LATEST_DATE_IN_THE_PAST_IN_MILLIS) >> SOME_DATE_IN_THE_PAST_IN_MILLIS when: LocalDateTime dateInThePast = sut.randomDateBetweenYearAndNow(2008) then: dateInThePast < CURRENT_DATE dateInThePast > FIVE_YEARS_EARLIER_DATE.toLocalDateTime() dateInThePast == SOME_DATE_IN_THE_PAST.toLocalDateTime() } def "should generate date between now and specified period"() { when: LocalDateTime dateInFuturePeriod = sut.randomDateBetweenNowAndFuturePeriod(Period.ofMonths(12)) then: dateInFuturePeriod >= CURRENT_DATE dateInFuturePeriod <= ONE_YEAR_LATER.toLocalDateTime() } def "should generate date between now and future offset"() { when: LocalDateTime dateInFuturePeriod = sut.randomDateInTheFuture(1) then: dateInFuturePeriod >= CURRENT_DATE dateInFuturePeriod <= ONE_YEAR_LATER.toLocalDateTime() } def "should generate date in future"() { when: LocalDateTime dateInFuturePeriod = sut.randomDateInTheFuture() then: dateInFuturePeriod >= CURRENT_DATE } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/producer/TextSpec.groovy ================================================ package com.devskiller.jfairy.producer import spock.lang.Specification import com.devskiller.jfairy.Fairy import com.devskiller.jfairy.producer.text.TextProducer class TextSpec extends Specification { private TextProducer text def setup() { text = Fairy.create().textProducer() } def "should instantiate Text producer with Text object"() { expect: text instanceof TextProducer } def "should be sure that data exists"() { expect: text.loremIpsum() text.text() text.word() text.word(100) text.latinWord() text.latinWord(100) text.sentence() text.sentence(100) text.latinSentence() text.latinSentence(100) text.paragraph() text.paragraph(100) } def "should limit generated text"() { when: text.limitedTo(10) then: text.loremIpsum().length() == 10 text.word(100).length() == 10 text.sentence(100).length() == 10 text.paragraph(100).length() == 10 } def "should generate Lorem Ipsum"() { expect: text.loremIpsum() } def "should generate localised text"() { expect: text.text() } def "should generate word"() { expect: text.word() } def "should generate latin word"() { expect: text.latinWord() } def "should generate sentence"() { expect: text.sentence() } def "should generate latin sentence"() { expect: text.latinSentence() } def "should generate paragraph"() { expect: text.paragraph() } def "should create random string"() { when: String randomString = text.randomString(10) then: randomString.length() == 10 } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/producer/company/locale/CompanyProviderSpec.groovy ================================================ package com.devskiller.jfairy.producer.company.locale import spock.lang.Specification import com.devskiller.jfairy.data.DataMaster import com.devskiller.jfairy.producer.BaseProducer import com.devskiller.jfairy.producer.VATIdentificationNumberProvider import com.devskiller.jfairy.producer.company.CompanyProvider import com.devskiller.jfairy.producer.company.DefaultCompanyProvider import static com.devskiller.jfairy.producer.company.CompanyProvider.COMPANY_EMAIL import static com.devskiller.jfairy.producer.company.CompanyProvider.COMPANY_NAME import static com.devskiller.jfairy.producer.company.CompanyProvider.DOMAIN class CompanyProviderSpec extends Specification { private BaseProducer baseProducer = Mock(BaseProducer) private DataMaster dataMaster = Mock(DataMaster) private VATIdentificationNumberProvider vatIdentificationNumberProvider = Mock(VATIdentificationNumberProvider) def "should remove slashes in company email"() { given: baseProducer.trueOrFalse() >> false dataMaster.getRandomValue(COMPANY_EMAIL) >> "info" dataMaster.getRandomValue(COMPANY_NAME) >> "mercedes/bosch" dataMaster.getRandomValue(DOMAIN) >> "com" CompanyProvider companyProvider = new DefaultCompanyProvider(baseProducer, dataMaster, vatIdentificationNumberProvider) when: String email = companyProvider.get().email then: email == "info@mercedesbosch.com" } def "should lowercase letters in company email"() { given: baseProducer.trueOrFalse() >> false dataMaster.getRandomValue(COMPANY_EMAIL) >> "info" dataMaster.getRandomValue(COMPANY_NAME) >> "GOOGLE" dataMaster.getRandomValue(DOMAIN) >> "com" CompanyProvider companyProvider = new DefaultCompanyProvider(baseProducer, dataMaster, vatIdentificationNumberProvider) when: String email = companyProvider.get().email then: email == "info@google.com" } def "should strip dots and remove spaces in company email"() { given: baseProducer.trueOrFalse() >> false dataMaster.getRandomValue(COMPANY_EMAIL) >> "info" dataMaster.getRandomValue(COMPANY_NAME) >> "company inc." dataMaster.getRandomValue(DOMAIN) >> "com" CompanyProvider companyProvider = new DefaultCompanyProvider(baseProducer, dataMaster, vatIdentificationNumberProvider) when: String email = companyProvider.get().email then: email == "info@companyinc.com" } def "should strip accents in company email"() { given: baseProducer.trueOrFalse() >> false dataMaster.getRandomValue(COMPANY_EMAIL) >> "info" dataMaster.getRandomValue(COMPANY_NAME) >> "åäöéáąćęłńśóźż" dataMaster.getRandomValue(DOMAIN) >> "com" CompanyProvider companyProvider = new DefaultCompanyProvider(baseProducer, dataMaster, vatIdentificationNumberProvider) when: String email = companyProvider.get().email then: email == "info@aaoeaacelnsozz.com" } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/producer/company/locale/br/BrVATIdentificationNumberProviderSpec.groovy ================================================ package com.devskiller.jfairy.producer.company.locale.br import com.devskiller.jfairy.Bootstrap import com.devskiller.jfairy.Fairy import spock.lang.Specification class BrVATIdentificationNumberProviderSpec extends Specification { private Fairy fairy = Fairy.create(Locale.forLanguageTag("br")) def "Should generate CNPJ with correct format"() { when: String cnpj = fairy.company().vatIdentificationNumber then: cnpj ==~ /\d{2}\.\d{3}\.\d{3}\/\d{4}-\d{2}/ } def "Should always generate CNPJ with 18 characters"() { expect: fairy.company().vatIdentificationNumber.length() == 18 where: i << (1..100) } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/producer/company/locale/de/DeVATIdentificationNumberProviderSpec.groovy ================================================ package com.devskiller.jfairy.producer.company.locale.de import spock.lang.Specification import spock.lang.Unroll import com.devskiller.jfairy.producer.BaseProducer import com.devskiller.jfairy.producer.RandomGenerator /** * @author Roland Weisleder */ class DeVATIdentificationNumberProviderSpec extends Specification { private DeVATIdentificationNumberProvider generator = new DeVATIdentificationNumberProvider(new BaseProducer(new RandomGenerator(42))) @Unroll def "Should validate #vatIdentificationNumber as #valid"() { expect: generator.isValid(vatIdentificationNumber) == valid where: vatIdentificationNumber | valid '999999999' | true '1234567890' | false '000000000' | true '18947440810' | false } def "Should always generate proper vatIdentificationNumber"() { expect: generator.isValid(generator.get()) where: i << (1..100) } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/producer/company/locale/en/EnVATIdentificationNumberProviderSpec.groovy ================================================ package com.devskiller.jfairy.producer.company.locale.en import spock.lang.Specification import com.devskiller.jfairy.Fairy /** * @author Olga Maciaszek-Sharma * @since 21.03.15 */ class EnVATIdentificationNumberProviderSpec extends Specification { private Fairy fairy private String vatIdentificationNumber private final partsDividedAtChar = 2 private final int vatIdentificationNumberLength = 10 private final int areaPartBeginningIndex = 0 private final int serialPartBeginningIndex = 3 def setup() { fairy = Fairy.create(Locale.forLanguageTag("en")) vatIdentificationNumber = fairy.company().vatIdentificationNumber } def "should generate number with 10 characters"() { expect: vatIdentificationNumber.length() == vatIdentificationNumberLength } def "should generate number divided by hyphen"() { expect: vatIdentificationNumber.charAt(partsDividedAtChar) == ('-' as char) } def "should generate number with valid area part"() { given: String areaPart = vatIdentificationNumber.substring(areaPartBeginningIndex, partsDividedAtChar) Integer areaNumber = Integer.parseInt(areaPart) expect: for (char digit : areaPart.toCharArray()) { digit.isDigit() } !EnVATIdentificationNumberProvider.EXCLUDED_NUMBERS.contains(areaNumber) } def "should generate number with valid serial part"() { given: String serialPart = vatIdentificationNumber.substring(serialPartBeginningIndex, vatIdentificationNumberLength) expect: for (char digit : serialPart.toCharArray()) { digit.isDigit() } } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/producer/company/locale/es/EsVATIdentificationNumberProviderSpec.groovy ================================================ package com.devskiller.jfairy.producer.company.locale.es import spock.lang.Specification import spock.lang.Unroll import com.devskiller.jfairy.producer.BaseProducer import com.devskiller.jfairy.producer.RandomGenerator /** * @author graux * @since 24/06/2015 */ class EsVATIdentificationNumberProviderSpec extends Specification { private EsVATIdentificationNumberProvider generator = new EsVATIdentificationNumberProvider(new BaseProducer(new RandomGenerator(73))) @Unroll def "Should validate #vatIdentificationNumber as #valid"() { expect: generator.isValid(vatIdentificationNumber) == valid where: vatIdentificationNumber | valid "L17761800" | true "31231231X" | false "G2301257H" | true "AB023023C" | false } def "Should always generate proper nip"() { expect: generator.isValid(generator.get()) where: i << (1..100) } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/producer/company/locale/ka/KaVATIdentificationNumberProviderSpec.groovy ================================================ package com.devskiller.jfairy.producer.company.locale.ka import spock.lang.Specification import com.devskiller.jfairy.producer.BaseProducer import com.devskiller.jfairy.producer.RandomGenerator class KaVATIdentificationNumberProviderSpec extends Specification { private KaVATIdentificationNumberProvider provider def setup() { BaseProducer baseProducer = new BaseProducer(new RandomGenerator()) provider = new KaVATIdentificationNumberProvider(baseProducer) } private static final Set ALLOWED_PREFIXES = [ '2' ,'4' ].toSet() def isVatIdValid(String id) { return id.length() == 9 && ALLOWED_PREFIXES.contains( id[ 0..0 ] ) } def "Should always generate proper VAT id number"() { expect: isVatIdValid(provider.get()) where: i << (1..100) } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/producer/company/locale/pl/PlVATIdentificationNumberProviderSpec.groovy ================================================ package com.devskiller.jfairy.producer.company.locale.pl import spock.lang.Specification import spock.lang.Unroll import com.devskiller.jfairy.producer.BaseProducer import com.devskiller.jfairy.producer.RandomGenerator class PlVATIdentificationNumberProviderSpec extends Specification { private BaseProducer baseProducer = new BaseProducer(new RandomGenerator()) private PlVATIdentificationNumberProvider generator = new PlVATIdentificationNumberProvider(baseProducer) @Unroll def "Should validate #vatIdentificationNumber as #valid"() { expect: generator.isValid(vatIdentificationNumber) == valid where: vatIdentificationNumber | valid "2684494529" | true "1234567890" | false "0000000000" | true "18947440810" | false } def "Should always generate proper vatIdentificationNumber"() { expect: generator.isValid(generator.get()) where: i << (1..100) } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/producer/company/locale/se/SvVATIdentificationNumberProviderSpec.groovy ================================================ package com.devskiller.jfairy.producer.company.locale.se import spock.lang.Specification import com.devskiller.jfairy.Fairy import static com.devskiller.jfairy.producer.company.locale.sv.SvVATIdentificationNumberProvider.isValid class SvVATIdentificationNumberProviderSpec extends Specification { private static final int VAT_IDENTIFICATION_NUMBER_LENGTH = 14 private Fairy fairy private String vatIdentificationNumber def setup() { fairy = Fairy.create(Locale.forLanguageTag("sv")) vatIdentificationNumber = fairy.company().vatIdentificationNumber } def "should generate number with 14 characters"() { expect: vatIdentificationNumber.length() == VAT_IDENTIFICATION_NUMBER_LENGTH } def "should start with SE"() { expect: vatIdentificationNumber.startsWith("SE") } def "should generate number with valid Swedish VAT Identification Number"() { expect: isValid(vatIdentificationNumber) } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/producer/company/locale/sk/SkVATIdentificationNumberProviderSpec.groovy ================================================ package com.devskiller.jfairy.producer.company.locale.sk import spock.lang.Specification import spock.lang.Unroll import com.devskiller.jfairy.producer.BaseProducer import com.devskiller.jfairy.producer.RandomGenerator class SkVATIdentificationNumberProviderSpec extends Specification { private BaseProducer baseProducer = new BaseProducer(new RandomGenerator()) private SkVATIdentificationNumberProvider generator = new SkVATIdentificationNumberProvider(baseProducer) def "Should always generate proper vatIdentificationNumber"() { expect: generator.isValid(generator.get()) where: i << (1..100) } def "Should generate vatIdentificationNumber with length 10"() { when: String vat = generator.get() then: vat.length() == 10 } @Unroll def "Should validate #vatIdentificationNumber as #valid"() { expect: generator.isValid(vatIdentificationNumber) == valid where: vatIdentificationNumber | valid "2684494529" | true "1234567890" | false "0000000000" | true "18947440810" | false } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/producer/company/locale/tr/TrVATIdentificationNumberProviderSpec.groovy ================================================ package com.devskiller.jfairy.producer.company.locale.tr import com.devskiller.jfairy.producer.BaseProducer import com.devskiller.jfairy.producer.RandomGenerator import spock.lang.Specification class TrVATIdentificationNumberProviderSpec extends Specification { def "should generate valid VKN"() { given: BaseProducer baseProducer = new BaseProducer(new RandomGenerator()) TrVATIdentificationNumberProvider provider = new TrVATIdentificationNumberProvider(baseProducer) expect: (1..100).each { String vkn = provider.get() assert vkn.length() == 10 int[] digits = vkn.chars().collect { Character.getNumericValue((char) it) } int sum = 0 for (int i = 0; i < 9; i++) { int p = (digits[i] + 10 - (i + 1)) % 10 if (p == 9) { sum += 9 } else { int q = (int) (p * Math.pow(2, 9 - i)) % 9 sum += q } } int c1 = (10 - (sum % 10)) % 10 assert digits[9] == c1 } } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/producer/net/NetworkSpec.groovy ================================================ package com.devskiller.jfairy.producer.net import org.apache.commons.validator.routines.InetAddressValidator import spock.lang.Specification import com.devskiller.jfairy.producer.BaseProducer import com.devskiller.jfairy.producer.RandomGenerator class NetworkSpec extends Specification { private InetAddressValidator ipValidator = InetAddressValidator.getInstance() private IPNumberProducer ipNumber = new IPNumberProducer(new BaseProducer(new RandomGenerator())) private NetworkProducer network = new NetworkProducer(ipNumber) def "Should generate proper ip number"() { String ip = network.ipAddress() expect: ip ipValidator.isValid(ip) } def "Should generate proper url"() { String url = network.url(true) expect: url.startsWith("https://") && url.endsWith(".com") } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/producer/payment/CreditCardProviderSpec.groovy ================================================ package com.devskiller.jfairy.producer.payment import java.time.LocalDateTime import spock.lang.Specification import com.devskiller.jfairy.data.DataMaster import com.devskiller.jfairy.data.MapBasedDataMaster import com.devskiller.jfairy.producer.BaseProducer import com.devskiller.jfairy.producer.DateProducer import com.devskiller.jfairy.producer.RandomGenerator /** * @author jkubrynski@gmail.com * @since 2013-11-17 */ class CreditCardProviderSpec extends Specification { public static final LocalDateTime EXPIRY_DATE = LocalDateTime.parse("2009-02-11T23:59:59.999") private DataMaster dataMaster private DateProducer dateProducer private CreditCardProvider creditCardProvider private BaseProducer baseProducer def setup() { baseProducer = new BaseProducer(new RandomGenerator()) dataMaster = new MapBasedDataMaster(baseProducer) dateProducer = Mock(DateProducer) dataMaster.readResources("jfairy.yml") creditCardProvider = new CreditCardProvider(dataMaster, baseProducer, dateProducer) } def "should return credit card basic data"() { when: CreditCard creditCard = creditCardProvider.get() then: creditCard.vendor == 'Visa' creditCard.cardNumber.length() == 16 } def "should return card expiry date"() { given: dateProducer.randomDateBetweenNowAndFuturePeriod(_) >> EXPIRY_DATE when: CreditCard creditCard = creditCardProvider.get() then: creditCard.expiryDate == EXPIRY_DATE } def "should return card expiry date string"() { given: dateProducer.randomDateBetweenNowAndFuturePeriod(_) >> EXPIRY_DATE when: CreditCard creditCard = creditCardProvider.get() then: creditCard.expiryDateAsString == "02/09" } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/producer/payment/IBANSpec.groovy ================================================ package com.devskiller.jfairy.producer.payment import de.speedbanking.iban.IbanValidator import spock.lang.Specification import com.devskiller.jfairy.Fairy import com.devskiller.jfairy.data.DataMaster import com.devskiller.jfairy.data.MapBasedDataMaster import com.devskiller.jfairy.producer.BaseProducer import com.devskiller.jfairy.producer.RandomGenerator class IBANSpec extends Specification { private DataMaster dataMaster private BaseProducer baseProducer def setup() { baseProducer = new BaseProducer(new RandomGenerator()) dataMaster = new MapBasedDataMaster(baseProducer) dataMaster.readResources("jfairy_pl.yml") } /** * Austria 20 16n * ATkk bbbb bccc cccc cccc * * b = National bank code */ def "should return valid iban"() { when: IBANProvider iban = new DefaultIBANProvider( baseProducer, dataMaster, IBANProperties.country("AT") ) then: IbanValidator.validate(iban.get().ibanNumber) } /** Poland 28 24n PLkk bbbs sssx cccc cccc cccc cccc b = National bank code s = Branch code x = National check digit c = Account number, PLkk bbbssssx cccccccccccccccc PL60 11401010 1111000234573201 */ def "should return valid polish iban"() { when: IBANProvider iban = new DefaultIBANProvider(baseProducer, dataMaster) then: IbanValidator.validate(iban.get().ibanNumber) } def "should be usable directly from Fairy"() { when: String number = Fairy.create().iban(IBANProperties.country("PL")).ibanNumber then: number.startsWith('PL') } def "should ignore countries not supporting iban"() { when: def iban = Fairy.create().iban(IBANProperties.country("US")) then: iban == null } def "should set proper country for specified language"() { when: String number = Fairy.create().iban(IBANProperties.language("DE")).ibanNumber then: number.startsWith('DE') } def "should set proper country for according to selected language"() { when: String number = Fairy.create(new Locale('SV')).iban().ibanNumber then: number.startsWith('SE') } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/producer/person/CompanyEmailProviderSpec.groovy ================================================ package com.devskiller.jfairy.producer.person import spock.lang.Specification import com.devskiller.jfairy.producer.company.Company class CompanyEmailProviderSpec extends Specification { def "should remove spaces from firstName and lastName and lowercase letters in company email"() { given: Company company = new Company(null, "companymail.com", null, null) CompanyEmailProvider companyEmailProvider = new CompanyEmailProvider("Emilie Agneta", "Vojnov Allerstrand", company) when: String email = companyEmailProvider.get() then: email == "emilie.agneta.vojnov.allerstrand@companymail.com" } def "should strip accents from company email"() { given: Company company = new Company(null, "åäöéáąćęłńśóźż.com", null, null) CompanyEmailProvider companyEmailProvider = new CompanyEmailProvider("åäöéáąćęłńśóźż", "åäöéáąćęłńśóźż", company) when: String email = companyEmailProvider.get() then: email == "aaoeaacelnsozz.aaoeaacelnsozz@aaoeaacelnsozz.com" } def "should strip sharp s from company email"() { given: Company company = new Company(null, "companymail.com", null, null) CompanyEmailProvider companyEmailProvider = new CompanyEmailProvider("Thieß", "Weißmann", company) when: String email = companyEmailProvider.get() then: email == "thiess.weissmann@companymail.com" } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/producer/person/EmailProviderSpec.groovy ================================================ package com.devskiller.jfairy.producer.person import spock.lang.Specification import com.devskiller.jfairy.data.DataMaster import com.devskiller.jfairy.producer.BaseProducer import static com.devskiller.jfairy.producer.person.PersonProvider.PERSONAL_EMAIL class EmailProviderSpec extends Specification { private DataMaster dataMaster = Mock(DataMaster) private BaseProducer baseProducer = Mock(BaseProducer) def setup() { dataMaster.getRandomValue(PERSONAL_EMAIL) >> "mail.com" } def "should remove spaces from firstName and lastName in email"() { given: baseProducer.randomBetween(1, 3) >> 1 EmailProvider emailProvider = new EmailProvider(dataMaster, baseProducer, "Emilie Agneta", "Vojnov Allerstrand") when: String email = emailProvider.get() then: email == "emilieagnetavojnovallerstrand@mail.com" } def "should replace spaces with dots from firstName and lastName in email"() { given: baseProducer.randomBetween(1, 3) >> 2 EmailProvider emailProvider = new EmailProvider(dataMaster, baseProducer, "Emilie Agneta", "Vojnov Allerstrand") when: String email = emailProvider.get() then: email == "emilie.agneta.vojnov.allerstrand@mail.com" } def "should replace spaces with dots from lastName in email"() { given: baseProducer.randomBetween(1, 3) >> 3 EmailProvider emailProvider = new EmailProvider(dataMaster, baseProducer, "Emilie Agneta", "Vojnov Allerstrand") when: String email = emailProvider.get() then: email == "vojnovallerstrand@mail.com" } def "should strip accents from email"() { given: baseProducer.randomBetween(1, 3) >> 2 EmailProvider emailProvider = new EmailProvider(dataMaster, baseProducer, "åäöéáąćęłńśóźż", "åäöéáąćęłńśóźż") when: String email = emailProvider.get() then: email == "aaoeaacelnsozz.aaoeaacelnsozz@mail.com" } def "should strip sharp s from email"() { given: baseProducer.randomBetween(1, 3) >> 2 EmailProvider emailProvider = new EmailProvider(dataMaster, baseProducer, "Thieß", "Weißmann") when: String email = emailProvider.get() then: email == "thiess.weissmann@mail.com" } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/producer/person/PersonSpec.groovy ================================================ package com.devskiller.jfairy.producer.person import java.time.LocalDate import java.time.Period import org.apache.commons.validator.routines.EmailValidator import spock.lang.Ignore import spock.lang.Specification import com.devskiller.jfairy.Bootstrap import com.devskiller.jfairy.Fairy import com.devskiller.jfairy.producer.company.Company import com.devskiller.jfairy.producer.person.locale.en.EnAddress import com.devskiller.jfairy.producer.util.LanguageCode import static com.devskiller.jfairy.producer.person.PersonProperties.ageBetween import static com.devskiller.jfairy.producer.person.PersonProperties.female import static com.devskiller.jfairy.producer.person.PersonProperties.male import static com.devskiller.jfairy.producer.person.PersonProperties.maxAge import static com.devskiller.jfairy.producer.person.PersonProperties.minAge import static com.devskiller.jfairy.producer.person.PersonProperties.mobileTelephoneFormat import static com.devskiller.jfairy.producer.person.PersonProperties.telephoneFormat import static com.devskiller.jfairy.producer.person.PersonProperties.withAddress import static com.devskiller.jfairy.producer.person.PersonProperties.withAge import static com.devskiller.jfairy.producer.person.PersonProperties.withCompany import static com.devskiller.jfairy.producer.person.PersonProperties.withCompanyEmail import static com.devskiller.jfairy.producer.person.PersonProperties.withDateOfBirth import static com.devskiller.jfairy.producer.person.PersonProperties.withEmail import static com.devskiller.jfairy.producer.person.PersonProperties.withFirstName import static com.devskiller.jfairy.producer.person.PersonProperties.withLastName import static com.devskiller.jfairy.producer.person.PersonProperties.withMiddleName import static com.devskiller.jfairy.producer.person.PersonProperties.withNationalIdentificationNumber import static com.devskiller.jfairy.producer.person.PersonProperties.withNationalIdentityCardNumber import static com.devskiller.jfairy.producer.person.PersonProperties.withJobTitle import static com.devskiller.jfairy.producer.person.PersonProperties.withPassportNumber import static com.devskiller.jfairy.producer.person.PersonProperties.withPassword import static com.devskiller.jfairy.producer.person.PersonProperties.withTelephoneNumber import static com.devskiller.jfairy.producer.person.PersonProperties.withMobileTelephoneNumber import static com.devskiller.jfairy.producer.person.PersonProperties.withUsername class PersonSpec extends Specification { private EmailValidator emailValidator = EmailValidator.getInstance() private Fairy fairy = Bootstrap.create() def setup() { Bootstrap.create() } def "should instantiate PersonProducer producer with person"() { when: Person person = fairy.person() then: person instanceof Person } def "should be sure that fullName is proper"() { when: Person person = fairy.person() then: "${person.firstName} ${person.lastName}" == person.fullName } def "second generated name should be different"() { expect: fairy.person().firstName != fairy.person().firstName } def "should be sure that data exists"() { when: Person person = fairy.person() then: person.firstName person.lastName person.fullName person.email person.male || person.female person.nationalIdentityCardNumber person.address emailValidator.isValid(person.email) } def "should create female"() { when: Person person = fairy.person(female()) then: person.female } def "should create male"() { when: Person person = fairy.person(male()) then: person.male } def "should create person younger than 3 years"() { when: Person person = fairy.person(maxAge(3)) then: person.age <= 3 } def "should create nationality"() { when: Person person = fairy.person() then: Country.findCountryForLanguage(LanguageCode.EN)*.getCode().contains(person.nationality.code) } @Ignore("Properties are not cleaned") def "should create person older than 98 years"() { when: Person person = Bootstrap.create().person(minAge(99)) then: person.age > 98 } @Ignore("Properties are not cleaned") def "should create person older than 10 years and younger than 10 years"() { when: Person person = Bootstrap.create().person(minAge(10), maxAge(10)) then: person.age == 10 } def "birth date and age should be related"() { when: Person person = fairy.person(ageBetween(32, 32)) then: person.age == 32 Period period = Period.between(person.getDateOfBirth(), LocalDate.now()) period.years == 32 } def "should create telephone number"() { when: Person person = fairy.person() then: person.telephoneNumber } def "should create telephone number in defined format"() { when: Person person = fairy.person(telephoneFormat("###--###")) then: person.telephoneNumber ==~ /\d\d\d--\d\d\d/ } def "should create mobile telephone number"() { when: Person person = fairy.person() then: person.mobileTelephoneNumber } def "should create mobile telephone number in defined format"() { when: Person person = fairy.person(mobileTelephoneFormat("###--###")) then: person.mobileTelephoneNumber ==~ /\d\d\d--\d\d\d/ } def "should create birth date"() { when: Person person = fairy.person() then: person.dateOfBirth.isBefore(LocalDate.now()) } def "should create age"() { when: Person person = fairy.person() then: person.age } def "should create company email"() { given: Fairy fairy = fairy when: Person person = fairy.person() then: person.companyEmail emailValidator.isValid(person.companyEmail) } def "should create address"() { given: Person person = fairy.person() when: Address address = person.address then: address } def "should create address postal code"() { given: Person person = fairy.person() when: String postalCode = person.address.postalCode then: postalCode } def "should create address city"() { given: Person person = fairy.person() when: String city = person.address.city then: city } def "should create street address"() { given: Person person = fairy.person() when: Address address = person.address then: address.street address.streetNumber.isNumber() (address.apartmentNumber.isNumber() || address.apartmentNumber == "") } def "should generate middle name only sometimes"() { given: List persons = [] (1..100).each {persons.add(fairy.person())} when: List allWithoutMiddleName = persons.findAll {p -> p.middleName.isEmpty()} List allWithMiddleName = persons.findAll {p -> !p.middleName.isEmpty()} then: allWithoutMiddleName.size() > 0 allWithMiddleName.size() > 0 } def "should generate apartment number only sometimes"() { given: List persons = [] (1..50).each {persons.add(fairy.person())} when: List allWithoutApartmentNumber = persons.findAll {p -> p.address.apartmentNumber.isEmpty()} List allWithApartmentNumber = persons.findAll {p -> !p.address.apartmentNumber.isEmpty()} then: allWithoutApartmentNumber.size() > 0 allWithApartmentNumber.size() > 0 } def "should create passport number"() { given: Person person = fairy.person() expect: person.passportNumber } def "withFirstName should create person with specific first name"() { when: Person person = fairy.person(withFirstName("Specificfirstname")) then: person.firstName == "Specificfirstname" } def "withMiddleName should create person with specific middle name"() { when: Person person = fairy.person(withMiddleName("Specificmiddlename")) then: person.middleName == "Specificmiddlename" } def "withLastName should create person with specific last name"() { when: Person person = fairy.person(withLastName("Specificlastname")) then: person.lastName == "Specificlastname" } def "withEmail should create person with specific email"() { when: Person person = fairy.person(withEmail("specificemail@gmail.com")) then: person.email == "specificemail@gmail.com" } def "withUsername should create person with specific username"() { when: Person person = fairy.person(withUsername("specificusername")) then: person.username == "specificusername" } def "withTelephoneNumber should create person with specific telephoneNumber"() { when: Person person = fairy.person(withTelephoneNumber("01234556789")) then: person.telephoneNumber == "01234556789" } def "withTelephoneNumberFormat and telephoneFormat used together should create person with specific telephoneNumber"() { when: Person person = fairy.person(telephoneFormat("###--###"), withTelephoneNumber("01234556789")) then: person.telephoneNumber == "01234556789" } def "withMobileTelephoneNumber should create person with specific telephoneNumber"() { when: Person person = fairy.person(withMobileTelephoneNumber("01234556789")) then: person.telephoneNumber == "01234556789" } def "withMobileTelephoneNumberFormat and mobileTelephoneFormat used together should create person with specific telephoneNumber"() { when: Person person = fairy.person(mobileTelephoneFormat("###--###"), withMobileTelephoneNumber("01234556789")) then: person.telephoneNumber == "01234556789" } def "withDateOfBirth should create person with specific date of birth"() { when: Person person = fairy.person(withDateOfBirth(LocalDate.parse("2000-01-01"))) then: person.dateOfBirth == LocalDate.parse("2000-01-01") } def "withAge should create person with specific age"() { when: Person person = fairy.person(withAge(0)) then: person.age == 0 } def "withPassword should create person with specific password"() { when: Person person = fairy.person(withPassword("specificpassword")) then: person.password == "specificpassword" } def "withCompanyEmail should create person with specific company email"() { when: Person person = fairy.person(withCompanyEmail("specificcompanyemail@company.com")) then: person.companyEmail == "specificcompanyemail@company.com" } def "withNationalIdentityCardNumber should create person with specific national identity card number"() { when: Person person = fairy.person(withNationalIdentityCardNumber("SpecificNationalIdentityCardNumber")) then: person.nationalIdentityCardNumber == "SpecificNationalIdentityCardNumber" } def "withNationalIdentificationNumber should create person with specific national identification number"() { when: Person person = fairy.person(withNationalIdentificationNumber("SpecificNationalIdentificationNumber")) then: person.nationalIdentificationNumber == "SpecificNationalIdentificationNumber" } def "withPassportNumber should create person with specific passport number"() { when: Person person = fairy.person(withPassportNumber("SpecificPassportNumber")) then: person.passportNumber == "SpecificPassportNumber" } def "should create person with job title"() { given: Person person = fairy.person() expect: person.jobTitle } def "withJobTitle should create person with specific job title"() { when: Person person = fairy.person(withJobTitle("Specific Job Title")) then: person.jobTitle == "Specific Job Title" } def "withCompany should create person with specific company"() { when: Company specificCompany = new Company("Company name", "domain.com", "company@emial.com", "VATNO") Person person = fairy.person(withCompany(specificCompany)) then: person.getCompany() == specificCompany } def "withAddress should create person with specific address"() { when: EnAddress specificAddress = new EnAddress("POSTALCODE", "City", "Streetname", "123", "10B") Person person = fairy.person(withAddress(specificAddress)) then: person.getAddress() == specificAddress } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/br/BrAddressSpec.groovy ================================================ package com.devskiller.jfairy.producer.person.locale.br import com.devskiller.jfairy.Fairy import com.devskiller.jfairy.producer.person.Person import spock.lang.Specification class BrAddressSpec extends Specification { private Fairy fairy = Fairy.create(Locale.forLanguageTag("br")) def "Should generate Brazilian address"() { when: Person person = fairy.person() then: person.address person.address.city person.address.street person.address.postalCode ==~ /\d{5}-\d{3}/ } def "Should generate address in continental format"() { when: Person person = fairy.person() String line2 = person.address.addressLine2 then: line2 ==~ /\d{5}-\d{3} .+/ } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/br/BrNationalIdentityCardNumberProviderSpec.groovy ================================================ package com.devskiller.jfairy.producer.person.locale.br import com.devskiller.jfairy.Fairy import spock.lang.Specification class BrNationalIdentityCardNumberProviderSpec extends Specification { private Fairy fairy = Fairy.create(Locale.forLanguageTag("br")) def "Should generate CPF with correct format"() { when: String cpf = fairy.person().nationalIdentityCardNumber then: cpf ==~ /\d{3}\.\d{3}\.\d{3}-\d{2}/ } def "Should generate CPF with 14 characters"() { expect: fairy.person().nationalIdentityCardNumber.length() == 14 where: i << (1..100) } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/de/DeAddressSpec.groovy ================================================ package com.devskiller.jfairy.producer.person.locale.de import spock.lang.Specification import com.devskiller.jfairy.Fairy import com.devskiller.jfairy.producer.person.Address class DeAddressSpec extends Specification { private final int SEED = 8 private Fairy fairy private Address address def setup() { fairy = Fairy.builder().withRandomSeed(SEED).withLocale(Locale.GERMAN).build() address = fairy.person().address } def "should generate random street"() { expect: address.street == 'Thomas-Müntzer-Hof' } def "should generate random streetNumber"() { expect: address.streetNumber == '58' } def "should generate random apartmentNumber"() { expect: address.apartmentNumber == '' } def "should generate random postalCode"() { expect: address.postalCode == '00322' } def "should generate random city"() { expect: address.city == 'Sitzenroda' } def "should return addressLine1 in de locale format"() { expect: address.addressLine1 == 'Thomas-Müntzer-Hof 58' } def "should return addressLine2 in de locale format"() { expect: address.addressLine2 == '00322 Sitzenroda' } def "should return address in de locale format"() { expect: address.toString() == "Thomas-Müntzer-Hof 58${System.lineSeparator()}00322 Sitzenroda" } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/de/DeNationalIdentityCardNumberProviderSpec.groovy ================================================ package com.devskiller.jfairy.producer.person.locale.de import spock.lang.Specification import spock.lang.Unroll import com.devskiller.jfairy.producer.BaseProducer import com.devskiller.jfairy.producer.RandomGenerator /** * @author Roland Weisleder */ class DeNationalIdentityCardNumberProviderSpec extends Specification { private BaseProducer baseProducer = new BaseProducer(new RandomGenerator()) private DeNationalIdentityCardNumberProvider generator = new DeNationalIdentityCardNumberProvider(baseProducer) @Unroll def "Should validate #nationalIdentityCardNumber as #valid"() { expect: generator.isValid(nationalIdentityCardNumber) == valid where: nationalIdentityCardNumber | valid 'T22000129' | true '123456789' | false 'L00000000' | true 'A12345678' | false } def "Should always generate proper nationalIdentityCardNumber"() { expect: generator.isValid(generator.get()) where: i << (1..100) } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/de/DePassportNumberProviderSpec.groovy ================================================ package com.devskiller.jfairy.producer.person.locale.de import spock.lang.Specification import spock.lang.Unroll import com.devskiller.jfairy.producer.BaseProducer import com.devskiller.jfairy.producer.RandomGenerator /** * @author Roland Weisleder */ class DePassportNumberProviderSpec extends Specification { private BaseProducer baseProducer = new BaseProducer(new RandomGenerator()) private DePassportNumberProvider generator = new DePassportNumberProvider(baseProducer) @Unroll def "Should validate #passportNumber as #valid"() { expect: generator.isValid(passportNumber) == valid where: passportNumber | valid 'C22000129' | true '123456789' | false 'H00000000' | true 'A12345678' | false } def "Should always generate proper passportNumber"() { expect: generator.isValid(generator.get()) where: i << (1..100) } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/en/EnAddressSpec.groovy ================================================ package com.devskiller.jfairy.producer.person.locale.en import spock.lang.Specification import com.devskiller.jfairy.Fairy import com.devskiller.jfairy.producer.person.Address class EnAddressSpec extends Specification { private final int SEED = 7 private Fairy fairy private Address address def setup() { fairy = Fairy.builder().withRandomSeed(SEED).withLocale(Locale.forLanguageTag("EN")).build() address = fairy.person().address } def "should generate random street"() { expect: address.street == "Highland Place" } def "should generate random streetNumber"() { expect: address.streetNumber == "136" } def "should generate random apartmentNumber"() { expect: address.apartmentNumber == "147" } def "should generate random postalCode"() { expect: address.postalCode == "25059" } def "should generate random city"() { expect: address.city == "San Francisco" } def "should return addressLine1 in en locale format"() { expect: address.addressLine1 == "136 Highland Place APT 147" } def "should return addressLine2 in en locale format"() { expect: address.addressLine2 == "San Francisco 25059" } def "should return address in en locale format"() { expect: address.toString() == "136 Highland Place APT 147" + System.lineSeparator() + "San Francisco 25059" } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/en/EnNationalIdentityCardNumberProviderSpec.groovy ================================================ package com.devskiller.jfairy.producer.person.locale.en import spock.lang.Specification import com.devskiller.jfairy.Fairy /** * @author Olga Maciaszek-Sharma @since 15.03.15 */ class EnNationalIdentityCardNumberProviderSpec extends Specification { private Fairy fairy private String nationalIdentityCardNumber private final int nationalIdentityCardNumberLength = 11 private final int[] partsDividedAtChars = [3, 6] private int areaPartBeginningIndex = 0 private final int groupPartBeginningIndex = 4 private int serialNumberBeginningIndex = 7 def setup() { fairy = Fairy.create(Locale.forLanguageTag("en")) nationalIdentityCardNumber = fairy.person().nationalIdentityCardNumber } def "should generate number with 11 characters"() { expect: nationalIdentityCardNumber.length() == nationalIdentityCardNumberLength } def "should generate number divided by hyphens"() { expect: for (int index : partsDividedAtChars) { nationalIdentityCardNumber.charAt(index) == ('-' as char) } } def "should generate number with valid area part"() { given: String areaPart = nationalIdentityCardNumber.substring(areaPartBeginningIndex, partsDividedAtChars[0]) Integer areaNumber = Integer.parseInt(areaPart) int minAreaPartNumber = 1 int maxAreaPartNumber = 899 int incorrectAreaNumber = 666 expect: for (char digit : areaPart.toCharArray()) { digit.isDigit() } areaNumber >= minAreaPartNumber && areaNumber <= maxAreaPartNumber areaNumber != incorrectAreaNumber } def "should generate number with valid group part"() { given: String groupPart = nationalIdentityCardNumber.substring(groupPartBeginningIndex, partsDividedAtChars[1]) Integer groupNumber = Integer.parseInt(groupPart) int minGroupNumber = 1 int maxGroupNumber = 99 expect: for (char digit : groupPart.toCharArray()) { digit.isDigit() } groupNumber >= minGroupNumber && groupNumber <= maxGroupNumber } def "should generate number with valid serial part"() { given: String serialPart = nationalIdentityCardNumber.substring(serialNumberBeginningIndex, nationalIdentityCardNumberLength) Integer serialNumber = Integer.parseInt(serialPart) int minSerialNumber = 1 int maxSerialNumber = 9999 expect: for (char digit : serialPart.toCharArray()) { digit.isDigit() } serialNumber >= minSerialNumber && serialNumber <= maxSerialNumber } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/en/EnPassportNumberProviderSpec.groovy ================================================ package com.devskiller.jfairy.producer.person.locale.en import spock.lang.Specification import com.devskiller.jfairy.Fairy /** * @author Olga Maciaszek-Sharma @since 15.03.15 */ class EnPassportNumberProviderSpec extends Specification { private Fairy fairy private String passportNumber def setup() { fairy = Fairy.create(Locale.forLanguageTag("en")) passportNumber = fairy.person().passportNumber } def "should generate number with nine characters"() { expect: passportNumber.length() == 9 } def "should contain only digits and letters"() { for (Character character : passportNumber) { expect: character.isDigit() || character.isLetter() } } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/es/EsAddressSpec.groovy ================================================ package com.devskiller.jfairy.producer.person.locale.es import spock.lang.Specification import com.devskiller.jfairy.Fairy import com.devskiller.jfairy.producer.person.Address class EsAddressSpec extends Specification { private final int SEED = 3 private Fairy fairy private Address address def setup() { fairy = Fairy.builder().withRandomSeed(SEED).withLocale(Locale.forLanguageTag("ES")).build() address = fairy.person().address } def "should generate random street"() { expect: address.street == "Gran Vía" } def "should generate random streetNumber"() { expect: address.streetNumber == "33" } def "should generate random apartmentNumber"() { expect: address.apartmentNumber == "" } def "should generate random postalCode"() { expect: address.postalCode == "52.095" } def "should generate random city"() { expect: address.city == "Jaén" } def "should return addressLine1 in es locale format"() { expect: address.addressLine1 == "Gran Vía, 33" } def "should return addressLine2 in es locale format"() { expect: address.addressLine2 == "52.095 Jaén" } def "should return address in es locale format"() { expect: address.toString() == "Gran Vía, 33" + System.lineSeparator() + "52.095 Jaén" } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/es/EsNationalIdentityCardNumberProviderSpec.groovy ================================================ /* * Copyright (c) 2013 Codearte and authors */ package com.devskiller.jfairy.producer.person.locale.es import spock.lang.Specification import com.devskiller.jfairy.Fairy /** * @author graux * @since 24/06/2015 */ class EsNationalIdentityCardNumberProviderSpec extends Specification { private Fairy fairy private String esNationalIdentityCardNumber private final int dniLength = 10 private final int hyphenPos = 8 def setup() { fairy = Fairy.create(Locale.forLanguageTag("es")) esNationalIdentityCardNumber = fairy.person().nationalIdentityCardNumber } def "should generate number with 10 characters: 8 digits, one hyphen and one letter"() { expect: esNationalIdentityCardNumber.length() == dniLength } def "should generate number divided by hyphens"() { given: char letter = esNationalIdentityCardNumber.charAt(hyphenPos) expect: letter == ('-' as char) } def "should generate number with all numbers before the hyphen"() { given: String numbers = esNationalIdentityCardNumber.substring(0, hyphenPos) expect: for (char digit : numbers.toCharArray()) { digit.isDigit() } } def "should generate number with letter after the hyphen"() { given: char letter = esNationalIdentityCardNumber.charAt(hyphenPos + 1) expect: letter.isLetter() } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/es/EsPassportNumberProviderSpec.groovy ================================================ package com.devskiller.jfairy.producer.person.locale.es import spock.lang.Specification import com.devskiller.jfairy.Fairy /** * @author graux * @since 24/06/2015 */ class EsPassportNumberProviderSpec extends Specification { private Fairy fairy private String passportNumber def setup() { fairy = Fairy.create(Locale.forLanguageTag("es")) passportNumber = fairy.person().passportNumber } def "should generate number with nine characters"() { expect: passportNumber.length() == 9 } def "should contain only digits and letters"() { for (Character character : passportNumber) { expect: character.isDigit() || character.isLetter() } } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/ka/KaAddressSpec.groovy ================================================ package com.devskiller.jfairy.producer.person.locale.ka import spock.lang.Specification import com.devskiller.jfairy.Fairy import com.devskiller.jfairy.producer.person.Address import static java.lang.System.lineSeparator class KaAddressSpec extends Specification { private final int SEED = 8 private Fairy fairy private Address address def setup() { Locale geLocale = new Locale.Builder().setLanguage("ka").build() fairy = Fairy.builder().withRandomSeed(SEED).withLocale(geLocale).build() address = fairy.person().address } def "should generate random street"() { expect: address.street == "კაკუცა ჩოლოყაშვილის გამზირი" } def "should generate random streetNumber"() { expect: address.streetNumber == "74" } def "should generate random apartmentNumber"() { expect: address.apartmentNumber == "" } def "should generate random postalCode"() { expect: address.postalCode == "3220" } def "should generate random city"() { expect: address.city == "საგარეჯო" } def "should return addressLine1 in GE locale format"() { expect: address.addressLine1 == "3220, საგარეჯო" // ZIP, city } def "should return addressLine2 in GE locale format"() { expect: address.addressLine2 == "კაკუცა ჩოლოყაშვილის გამზირი №74" // street & number & appartment } def "should return address in GE locale format"() { expect: address.toString() == "3220, საგარეჯო${lineSeparator()}კაკუცა ჩოლოყაშვილის გამზირი №74" } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/ka/KaNationalIdentityCardNumberProviderSpec.groovy ================================================ package com.devskiller.jfairy.producer.person.locale.ka import spock.lang.Specification import com.devskiller.jfairy.producer.BaseProducer import com.devskiller.jfairy.producer.RandomGenerator class KaNationalIdentityCardNumberProviderSpec extends Specification { private KaNationalIdentityCardNumberProvider provider def setup() { BaseProducer baseProducer = new BaseProducer(new RandomGenerator()) provider = new KaNationalIdentityCardNumberProvider(baseProducer) } private static boolean isOldIdCardNumber(String id) { id.matches("N[ა-ჰ]\\d{7}") } private static boolean isNewIdCardNumber(String id) { id.matches("\\d{2}\\p{Upper}{2}\\d{5}") } def isIdCardNumber(String id) { isNewIdCardNumber(id) || isOldIdCardNumber(id) } def "Should always generate proper nationalIdentityCardNumber"() { expect: isIdCardNumber(provider.get()) where: i << (1..100) } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/ka/KaPassportNumberProviderSpec.groovy ================================================ package com.devskiller.jfairy.producer.person.locale.ka import spock.lang.Specification import com.devskiller.jfairy.producer.BaseProducer import com.devskiller.jfairy.producer.RandomGenerator class KaPassportNumberProviderSpec extends Specification { private KaPassportNumberProvider provider def setup() { BaseProducer baseProducer = new BaseProducer(new RandomGenerator()) provider = new KaPassportNumberProvider(baseProducer) } def isValidPassportNumber(String id) { id.matches("\\d{11}") } def "Should always generate proper passport number"() { expect: isValidPassportNumber(provider.get()) where: i << (1..100) } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/pl/PlAddressSpec.groovy ================================================ package com.devskiller.jfairy.producer.person.locale.pl import spock.lang.Specification import com.devskiller.jfairy.Fairy import com.devskiller.jfairy.producer.person.Address class PlAddressSpec extends Specification { private final int SEED = 8 private Fairy fairy private Address address def setup() { fairy = Fairy.builder().withRandomSeed(SEED).withLocale(Locale.forLanguageTag("PL")).build() address = fairy.person().address } def "should generate random street"() { expect: address.street == "Ludwinowska" } def "should generate random streetNumber"() { expect: address.streetNumber == "11" } def "should generate random apartmentNumber"() { expect: address.apartmentNumber == "" } def "should generate random postalCode"() { expect: address.postalCode == "25-365" } def "should generate random city"() { expect: address.city == "Milicz" } def "should return addressLine1 in pl locale format"() { expect: address.addressLine1 == "Ludwinowska 11" } def "should return addressLine2 in pl locale format"() { expect: address.addressLine2 == "25-365 Milicz" } def "should return address in pl locale format"() { expect: address.toString() == "Ludwinowska 11" + System.lineSeparator() + "25-365 Milicz" } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/pl/PlNationalIdentificationNumberSpec.groovy ================================================ package com.devskiller.jfairy.producer.person.locale.pl import java.time.LocalDate import spock.lang.Specification import spock.lang.Unroll import com.devskiller.jfairy.producer.BaseProducer import com.devskiller.jfairy.producer.DateProducer import com.devskiller.jfairy.producer.person.NationalIdentificationNumber import com.devskiller.jfairy.producer.person.Person import static PlNationalIdentificationNumberProvider.isValid import static com.devskiller.jfairy.producer.person.NationalIdentificationNumberProperties.dateOfBirth import static com.devskiller.jfairy.producer.person.NationalIdentificationNumberProperties.sex class PlNationalIdentificationNumberSpec extends Specification { private BaseProducer randomGenerator = Mock(BaseProducer) private DateProducer dateGenerator = Mock() @Unroll def "should validate #nationalIdentificationNumber as #valid"() { expect: isValid(nationalIdentificationNumber) == valid where: nationalIdentificationNumber | valid "13881939620" | true "00421297469" | true "99010147513" | true "44051401359" | true "44051401358" | false "44051401458" | true "44052401458" | false } @Unroll def "should generate good nationalIdentificationNumber"() { expect: PlNationalIdentificationNumberProvider generator = new PlNationalIdentificationNumberProvider(dateGenerator, randomGenerator, dateOfBirth(LocalDate.parse(date)), sex(Person.Sex.MALE)) NationalIdentificationNumber nationalIdentificationNumber = generator.get() nationalIdentificationNumber.getValue().startsWith(prefix) isValid(nationalIdentificationNumber.getValue()) where: date | prefix "1999-01-01" | "990101" "1900-12-31" | "001231" "1800-01-31" | "008131" "2100-11-01" | "005101" "2199-01-11" | "994111" } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/pl/PlNationalIdentityCardNumberProviderSpec.groovy ================================================ /* * Copyright (c) 2013 Codearte and authors */ package com.devskiller.jfairy.producer.person.locale.pl import java.time.LocalDate import spock.lang.Specification import com.devskiller.jfairy.producer.BaseProducer import com.devskiller.jfairy.producer.DateProducer import static PlNationalIdentityCardNumberProvider.ISSUING_BEGIN import static PlNationalIdentityCardNumberProvider.LETTER_WEIGHT import static PlNationalIdentityCardNumberProvider.MAX_DIGITS_PART_VALUE /** * @author mariuszs * @since 30.10.13. */ class PlNationalIdentityCardNumberProviderSpec extends Specification { private BaseProducer baseProducer = Mock(BaseProducer) private DateProducer dateGenerator = Mock(DateProducer) /** * http://en.wikipedia.org/wiki/Polish_identity_card */ void "should generate proper id number"() { int max = (2013 - ISSUING_BEGIN) * LETTER_WEIGHT setup: baseProducer.randomBetween(max, (int) max + LETTER_WEIGHT) >> ('A'..'Z').size() // ABA baseProducer.randomInt(MAX_DIGITS_PART_VALUE) >> 0 when: PlNationalIdentityCardNumberProvider generator = new PlNationalIdentityCardNumberProvider(dateGenerator, baseProducer) String id = generator.get(LocalDate.parse("2013-12-12")) then: id == "ABA300000" generator.isValid(id) } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/pl/PlPassportNumberProviderSpec.groovy ================================================ package com.devskiller.jfairy.producer.person.locale.pl import spock.lang.Specification import com.devskiller.jfairy.Fairy /** * @author Olga Maciaszek-Sharma @since 21.02.15 */ class PlPassportNumberProviderSpec extends Specification { private Fairy fairy private String passportNumber def setup() { fairy = Fairy.create(Locale.forLanguageTag("pl")) passportNumber = fairy.person().passportNumber } def "should generate number with correct length"() { expect: passportNumber.length() == 9 } def "should generate number starting with series"() { expect: for (int i = 0; i < 2; i++) passportNumber.charAt(i).isLetter() } def "should generate number ending with 6 digits"() { expect: for (int i = 8; i > 2; i--) { passportNumber.charAt(i).isDigit() } } def "should generate number with correct checksum"() { expect: PlPassportNumberProvider.isPassportCheckSumValid(passportNumber) } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/pl/PlPersonSpec.groovy ================================================ package com.devskiller.jfairy.producer.person.locale.pl import spock.lang.Specification import com.devskiller.jfairy.Bootstrap import com.devskiller.jfairy.Fairy import com.devskiller.jfairy.producer.person.Person class PlPersonSpec extends Specification { private Fairy fairy = Bootstrap.create(Locale.forLanguageTag("PL")) def setup() { Bootstrap.create() } def "should create nationality"() { when: Person person = fairy.person() then: person.nationality.code == 'PL' } def "should create nationalIdentificationNumber"() { when: Person person = fairy.person() then: person.nationalIdentificationNumber } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/sk/SkAddressSpec.groovy ================================================ package com.devskiller.jfairy.producer.person.locale.sk import spock.lang.Specification import com.devskiller.jfairy.Fairy import com.devskiller.jfairy.producer.person.Address class SkAddressSpec extends Specification { private final int SEED = 7 private Fairy fairy private Address address def setup() { fairy = Fairy.builder().withRandomSeed(SEED).withLocale(Locale.forLanguageTag("SK")).build() address = fairy.person().address } def "should generate street"() { expect: address.street } def "should generate streetNumber"() { expect: address.streetNumber } def "should generate postalCode"() { expect: address.postalCode } def "should generate city"() { expect: address.city } def "should return address in continental format"() { expect: address.toString().contains(System.lineSeparator()) } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/sk/SkPersonSpec.groovy ================================================ package com.devskiller.jfairy.producer.person.locale.sk import spock.lang.Specification import com.devskiller.jfairy.Bootstrap import com.devskiller.jfairy.Fairy import com.devskiller.jfairy.producer.person.Person class SkPersonSpec extends Specification { private Fairy fairy = Bootstrap.create(Locale.forLanguageTag("SK")) def setup() { Bootstrap.create() } def "should create nationality"() { when: Person person = fairy.person() then: person.nationality.code == 'SK' } def "should create nationalIdentificationNumber"() { when: Person person = fairy.person() then: person.nationalIdentificationNumber } def "should create person with first name"() { when: Person person = fairy.person() then: person.firstName } def "should create person with last name"() { when: Person person = fairy.person() then: person.lastName } def "should create person with email"() { when: Person person = fairy.person() then: person.email } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/sv/SvAddressSpec.groovy ================================================ package com.devskiller.jfairy.producer.person.locale.sv import spock.lang.Specification import com.devskiller.jfairy.Fairy import com.devskiller.jfairy.producer.person.Address class SvAddressSpec extends Specification { private final int SEED = 7 private Fairy fairy private Address address def setup() { fairy = Fairy.builder().withRandomSeed(SEED).withLocale(Locale.forLanguageTag("SV")).build() address = fairy.person().address } def "should generate random street"() { expect: address.street == "Styrmansgatan" } def "should generate random streetNumber"() { expect: address.streetNumber == "139" } def "should generate random apartmentNumber"() { expect: address.apartmentNumber == "321" } def "should generate random postalCode"() { expect: address.postalCode == "460 11" } def "should generate random city"() { expect: address.city == "Östhammar" } def "should return addressLine1 in sv locale format"() { expect: address.addressLine1 == "Styrmansgatan 139 Lgh 321" } def "should return addressLine2 in sv locale format"() { expect: address.addressLine2 == "460 11 Östhammar" } def "should return address in sv locale format"() { expect: address.toString() == "Styrmansgatan 139 Lgh 321" + System.lineSeparator() + "460 11 Östhammar" } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/sv/SvNationalIdentificationNumberProviderSpec.groovy ================================================ package com.devskiller.jfairy.producer.person.locale.sv import java.time.LocalDate import spock.lang.Specification import spock.lang.Unroll import com.devskiller.jfairy.producer.BaseProducer import com.devskiller.jfairy.producer.DateProducer import com.devskiller.jfairy.producer.person.NationalIdentificationNumber import com.devskiller.jfairy.producer.person.Person import static SvNationalIdentificationNumberProvider.isValid import static com.devskiller.jfairy.producer.person.NationalIdentificationNumberProperties.dateOfBirth import static com.devskiller.jfairy.producer.person.NationalIdentificationNumberProperties.sex class SvNationalIdentificationNumberProviderSpec extends Specification { private BaseProducer randomGenerator = Mock(BaseProducer) private DateProducer dateGenerator = Mock(DateProducer) @Unroll def "should validate #nationalIdentificationNumber as #valid"() { expect: isValid(nationalIdentificationNumber) == valid where: nationalIdentificationNumber | valid "370612-1450" | true "370612-9529" | true "640401-1550" | true "690509-3966" | true "870727-2441" | false "880418-9043" | false "610219-6694" | false } @Unroll def "should generate good nationalIdentificationNumber"() { expect: SvNationalIdentificationNumberProvider generator = new SvNationalIdentificationNumberProvider(dateGenerator, randomGenerator, dateOfBirth(LocalDate.parse(date)), sex(Person.Sex.MALE)) NationalIdentificationNumber nationalIdentificationNumber = generator.get() nationalIdentificationNumber.getValue().startsWith(prefix) isValid(nationalIdentificationNumber.getValue()) where: date | prefix "1999-01-01" | "990101" "1950-12-31" | "501231" "1910-01-31" | "100131" "2100-11-01" | "001101" "2199-01-22" | "990122" } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/sv/SvNationalIdentityCardNumberProviderSpec.groovy ================================================ package com.devskiller.jfairy.producer.person.locale.sv import spock.lang.Specification import com.devskiller.jfairy.Fairy class SvNationalIdentityCardNumberProviderSpec extends Specification { private Fairy fairy private String nationalIdentityCardNumber def setup() { fairy = Fairy.create(Locale.forLanguageTag("sv")) nationalIdentityCardNumber = fairy.person().nationalIdentityCardNumber } def "should generate number with 8 characters"() { expect: nationalIdentityCardNumber.length() == 8 } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/sv/SvPassportNumberProviderSpec.groovy ================================================ package com.devskiller.jfairy.producer.person.locale.sv import spock.lang.Specification import com.devskiller.jfairy.Fairy class SvPassportNumberProviderSpec extends Specification { private Fairy fairy private String passportNumber def setup() { fairy = Fairy.create(Locale.forLanguageTag("sv")) passportNumber = fairy.person().passportNumber } def "should generate number with 8 characters"() { expect: passportNumber.length() == 8 } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/sv/SvPersonSpec.groovy ================================================ package com.devskiller.jfairy.producer.person.locale.sv import spock.lang.Specification import com.devskiller.jfairy.Bootstrap import com.devskiller.jfairy.Fairy import com.devskiller.jfairy.producer.person.Person class SvPersonSpec extends Specification { private Fairy fairy = Bootstrap.create(Locale.forLanguageTag("SV")) def setup() { Bootstrap.create() } def "should create nationality"() { when: Person person = fairy.person() then: person.nationality.code == 'SE' } def "should create nationalIdentificationNumber"() { when: Person person = fairy.person() then: person.nationalIdentificationNumber } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/tr/TrAddressSpec.groovy ================================================ package com.devskiller.jfairy.producer.person.locale.tr import spock.lang.Specification class TrAddressSpec extends Specification { def "should format Turkish address correctly"() { given: TrAddress address = new TrAddress("10", "İstiklal Caddesi", "5", "34000", "İstanbul") expect: address.getAddressLine1() == "İstiklal Caddesi No: 10 Daire: 5" address.getAddressLine2() == "34000 İstanbul" } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/tr/TrNationalIdentityCardNumberProviderSpec.groovy ================================================ package com.devskiller.jfairy.producer.person.locale.tr import com.devskiller.jfairy.producer.BaseProducer import com.devskiller.jfairy.producer.RandomGenerator import spock.lang.Specification class TrNationalIdentityCardNumberProviderSpec extends Specification { def "should generate valid T.C. Kimlik No"() { given: BaseProducer baseProducer = Mock() TrNationalIdentityCardNumberProvider provider = new TrNationalIdentityCardNumberProvider(baseProducer) when: baseProducer.randomBetween(1, 9) >> 1 baseProducer.randomBetween(0, 9) >>> [2, 3, 4, 5, 6, 7, 8, 9] String tckn = provider.get() then: tckn.length() == 11 tckn.startsWith("1") // 1 2 3 4 5 6 7 8 9 // oddSum = 1+3+5+7+9 = 25 // evenSum = 2+4+6+8 = 20 // d10 = (25 * 7 - 20) % 10 = (175 - 20) % 10 = 155 % 10 = 5 // totalSum = 1+2+3+4+5+6+7+8+9+5 = 50 // d11 = 50 % 10 = 0 tckn == "12345678950" } def "should generate multiple valid T.C. Kimlik Nos"() { given: BaseProducer baseProducer = new BaseProducer(new RandomGenerator()) TrNationalIdentityCardNumberProvider provider = new TrNationalIdentityCardNumberProvider(baseProducer) expect: (1..100).each { String tckn = provider.get() assert tckn.length() == 11 assert !tckn.startsWith("0") int[] digits = tckn.chars().collect { Character.getNumericValue((char) it) } int oddSum = digits[0] + digits[2] + digits[4] + digits[6] + digits[8] int evenSum = digits[1] + digits[3] + digits[5] + digits[7] int d10 = ((oddSum * 7) - evenSum) % 10 if (d10 < 0) d10 += 10 assert digits[9] == d10 assert digits[10] == (digits[0..9].sum() % 10) } } } ================================================ FILE: src/test/groovy/com/devskiller/jfairy/producer/util/AlphaNumberSystemSpec.groovy ================================================ /* * Copyright (c) 2013 Codearte and authors */ package com.devskiller.jfairy.producer.util import spock.lang.Specification import spock.lang.Unroll import static AlphaNumberSystem.convertToString /** * @author mariuszs * @since 01.11.13. */ class AlphaNumberSystemSpec extends Specification { @Unroll void "Number #x should be converted to #y"() { expect: convertToString(x, ('A'..'Z').size()) == y where: x | y 0 | "A" 1 | "B" 2 | "C" 25 | "Z" 26 | "BA" } } ================================================ FILE: src/test/groovy/snippets/Foo.groovy ================================================ package snippets import com.devskiller.jfairy.Fairy import com.devskiller.jfairy.producer.person.Person class Foo { static void main(String[] args) { Person person = Fairy.create(Locale.default).person() println person.address println person.address.postalCode } } ================================================ FILE: src/test/groovy/snippets/SampleSnippet.groovy ================================================ package snippets import com.devskiller.jfairy.Fairy import com.devskiller.jfairy.producer.company.Company import com.devskiller.jfairy.producer.person.Person import com.devskiller.jfairy.producer.person.PersonProperties println "\n * With context" Fairy fairy = Fairy.create(Locale.forLanguageTag("en")) 3.times { Person person = fairy.person() println "${person.fullName} <${person.email}>" } // Print word println fairy.textProducer().word(3) println fairy.textProducer().sentence(5) println fairy.person().firstName println fairy.person().firstName Person person = fairy.person() println "" println " First name: " + person.firstName println " Middle name: " + person.middleName println " Last name: " + person.lastName println " Username: " + person.username println " Password: " + person.password println " isMale: " + person.male println " isFemale: " + person.female println " Phone: " + person.telephoneNumber println " Date of birth: " + person.dateOfBirth println " Age: " + person.age println " National Id No: " + person.nationalIdentificationNumber println "National Id Card No: " + person.nationalIdentityCardNumber println " Passport No: " + person.passportNumber println " Postal Code: " + person.address.postalCode println " City: " + person.address.city println " Street: " + person.address.street println " Street number: " + person.address.streetNumber println " Full address: " + person.address.toString() println "" 3.times { println " Men: " + fairy.person(PersonProperties.male()).fullName } 3.times { println "Women: " + fairy.person(PersonProperties.female()).fullName } println fairy.person().nationalIdentityCardNumber println fairy.person().nationalIdentificationNumber Company company = fairy.company() println "Company: " + company.name println "URL: " + company.url println "VAT: " + company.vatIdentificationNumber company = fairy.company() println "Company: " + company.name println "URL: " + company.url println "VAT: " + company.vatIdentificationNumber ================================================ FILE: src/test/groovy/snippets/TextSnippet.groovy ================================================ package snippets import com.devskiller.jfairy.Fairy import com.devskiller.jfairy.producer.text.TextProducer TextProducer text = Fairy.create().textProducer() println "* Lorem ipsum *" println text.loremIpsum() println "* Localised text *" println text.text() println "* Latin words *" println text.latinWord(1) println text.latinWord() println text.latinWord(190) println "* Words *" println text.word(1) println text.word() println text.word(190) println "* Latin sentences *" println text.latinSentence(1) println text.latinSentence() println text.latinSentence(190) println "* Sentences *" println text.sentence() println text.sentence(3) println text.sentence(190) println "* Paragraph *" println text.paragraph() println text.paragraph(190) println text.limitedTo(10).paragraph(190) println "* Random string *" println text.randomString(10) println text.randomString(20) ================================================ FILE: src/test/java/com/devskiller/jfairy/producer/RandomGeneratorTest.java ================================================ package com.devskiller.jfairy.producer; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.ValueSource; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertTrue; class RandomGeneratorTest { private static final int SEED = 123; @DisplayName("Should produce identical results for same seed (Determinism)") @Test void shouldBeDeterministic() { RandomGenerator gen1 = new RandomGenerator(SEED); RandomGenerator gen2 = new RandomGenerator(SEED); assertEquals(gen1.randomAlphanumeric(20), gen2.randomAlphanumeric(20)); assertEquals(gen1.nextInt(0, 100), gen2.nextInt(0, 100)); assertEquals(gen1.randomNumeric(10), gen2.randomNumeric(10)); } @DisplayName("Should generate strings of requested length") @ParameterizedTest @ValueSource(ints = {0, 1, 5, 50}) void shouldRespectLength(int length) { RandomGenerator generator = new RandomGenerator(); assertEquals(length, generator.randomNumeric(length).length()); assertEquals(length, generator.randomAlphabetic(length).length()); assertEquals(length, generator.randomAlphanumeric(length).length()); } @DisplayName("Should contain only allowed characters") @Test void shouldContainOnlyAllowedChars() { RandomGenerator generator = new RandomGenerator(); assertTrue(generator.randomNumeric(100).matches("^[0-9]+$")); assertTrue(generator.randomAlphabetic(100).matches("^[A-Z]+$")); assertTrue(generator.randomAlphanumeric(100).matches("^[A-Z0-9]+$")); } @DisplayName("Should throw exception for negative length") @Test void shouldThrowOnNegativeLength() { RandomGenerator generator = new RandomGenerator(); Exception exception = assertThrows(IllegalArgumentException.class, () -> generator.randomNumeric(-1) ); assertTrue(exception.getMessage().contains("length must be >= 0")); } } ================================================ FILE: src/test/java/com/devskiller/jfairy/producer/util/AlphaNumberSystemTest.java ================================================ package com.devskiller.jfairy.producer.util; import java.util.List; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.CsvSource; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; class AlphaNumberSystemTest { @DisplayName("Should generate a complete alphabet list from A to Z") @Test void shouldGenerateCompleteAlphabetList() { List alphabet = AlphaNumberSystem.generateAlphabetList(); assertEquals(26, alphabet.size(), "Alphabet should have 26 characters"); assertEquals(Character.valueOf('A'), alphabet.get(0)); assertEquals(Character.valueOf('Z'), alphabet.get(25)); } @DisplayName("Should return an immutable list") @Test void shouldReturnImmutableList() { List alphabet = AlphaNumberSystem.generateAlphabetList(); assertThrows(UnsupportedOperationException.class, () -> alphabet.add('!'), "The list should be unmodifiable"); } @DisplayName("Should convert numbers to string correctly based on radix") @ParameterizedTest(name = "Convert {0} with base {1} should result in {2}") @CsvSource({ "0, 26, A", "1, 26, B", "25, 26, Z", "26, 26, BA", "0, 10, A", "10, 10, BA" }) void shouldConvertToStringCorrectly(int number, int base, String expected) { String result = AlphaNumberSystem.convertToString(number, base); assertEquals(expected, result); } @DisplayName("Should throw exception for invalid base") @Test void shouldThrowExceptionForInvalidBase() { assertThrows(IllegalArgumentException.class, () -> AlphaNumberSystem.convertToString(10, 0), "Base 0 should not be allowed"); assertThrows(IllegalArgumentException.class, () -> AlphaNumberSystem.convertToString(10, 27), "Base > 26 should not be allowed"); } } ================================================ FILE: src/test/java/com/devskiller/jfairy/producer/util/StringUtilsTest.java ================================================ package com.devskiller.jfairy.producer.util; import java.util.List; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.CsvSource; import org.junit.jupiter.params.provider.NullAndEmptySource; import org.junit.jupiter.params.provider.ValueSource; import static org.junit.jupiter.api.Assertions.assertArrayEquals; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertNull; import static org.junit.jupiter.api.Assertions.assertTrue; /** * Unit tests for {@link StringUtils}. */ @SuppressWarnings("checkstyle:MethodName") @DisplayName("StringUtils") class StringUtilsTest { @Nested @DisplayName("isNotBlank") class IsNotBlank { @ParameterizedTest(name = "''{0}'' → false") @NullAndEmptySource @ValueSource(strings = {" ", " ", "\t", "\n"}) void returnsFalse(String s) { assertFalse(StringUtils.isNotBlank(s)); } @ParameterizedTest(name = "''{0}'' → true") @ValueSource(strings = {"Have you tried turning it off and on again?", " Moss ", "Roy"}) void returnsTrue(String s) { assertTrue(StringUtils.isNotBlank(s)); } } @Nested @DisplayName("isNotEmpty") class IsNotEmpty { @ParameterizedTest(name = "''{0}'' → false") @NullAndEmptySource void returnsFalse(String s) { assertFalse(StringUtils.isNotEmpty(s)); } @ParameterizedTest(name = "''{0}'' → true") @ValueSource(strings = {" ", "I am the IT department"}) void returnsTrue(String s) { assertTrue(StringUtils.isNotEmpty(s)); } } @Nested @DisplayName("lowerCase") class LowerCase { @ParameterizedTest(name = "''{0}'' → ''{1}''") @CsvSource(delimiter = '|', value = { "MOSS | moss", "Roy Trenneman | roy trenneman", "IT CROWD | it crowd", "Jen Barber | jen barber", }) void convertsCorrectly(String input, String expected) { assertEquals(expected, StringUtils.lowerCase(input)); } } @Nested @DisplayName("capitalize / uncapitalize") class CapitalizeUncapitalize { @ParameterizedTest(name = "capitalize ''{0}'' → ''{1}''") @CsvSource(delimiter = '|', value = { "moss | Moss", "REYNHOLM | REYNHOLM", "i | I", }) void capitalizeWorks(String input, String expected) { assertEquals(expected, StringUtils.capitalize(input)); } @Test void capitalize_emptyString_returnsEmpty() { assertEquals("", StringUtils.capitalize("")); } @ParameterizedTest(name = "uncapitalize ''{0}'' → ''{1}''") @CsvSource(delimiter = '|', value = { "Moss | moss", "Roy | roy", "INTERNET | iNTERNET", }) void uncapitalizeWorks(String input, String expected) { assertEquals(expected, StringUtils.uncapitalize(input)); } @Test void uncapitalize_emptyString_returnsEmpty() { assertEquals("", StringUtils.uncapitalize("")); } } @Nested @DisplayName("leftPad") class LeftPad { @ParameterizedTest(name = "leftPad(''{0}'', {1}, ''0'') → ''{2}''") @CsvSource(delimiter = '|', value = { "0118999 | 10 | 0000118999", "999 | 3 | 999", "881999 | 4 | 881999", }) void charVariant(String input, int size, String expected) { assertEquals(expected, StringUtils.leftPad(input, size, '0')); } @ParameterizedTest(name = "leftPad(''{0}'', {1}, \"0\") → ''{2}''") @CsvSource(delimiter = '|', value = { "119725 | 10 | 0000119725", "3 | 3 | 003", "42 | 5 | 00042", "hola | 3 | hola", }) void stringVariant(String input, int size, String expected) { assertEquals(expected, StringUtils.leftPad(input, size, "0")); } } @Nested @DisplayName("strip") class Strip { @ParameterizedTest(name = "strip(''{0}'', ''{1}'') → ''{2}''") @CsvSource(delimiter = '|', value = { "...Moss... | . | Moss", "!!!Roy!!! | ! | Roy", "Jen | . | Jen", }) void stripsCorrectly(String input, String stripChars, String expected) { assertEquals(expected, StringUtils.strip(input, stripChars)); } } @Nested @DisplayName("deleteWhitespace") class DeleteWhitespace { @ParameterizedTest(name = "''{0}'' → ''{1}''") @CsvSource(delimiter = '|', value = { "Moss Mega Usher | MossMegaUsher", "'Reynholm ' | Reynholm", }) void removesWhitespace(String input, String expected) { assertEquals(expected, StringUtils.deleteWhitespace(input)); } @Test void removesTabsAndNewlines() { assertEquals("0118999881999119725or3", StringUtils.deleteWhitespace("0118 999\t881 999\n119725 or 3")); } } @Nested @DisplayName("left") class Left { @ParameterizedTest(name = "left(''{0}'', {1}) → ''{2}''") @CsvSource(delimiter = '|', value = { "Reynholm Industries | 8 | Reynholm", "Moss | 20 | Moss", "Roy | 3 | Roy", }) void returnsCorrectSubstring(String input, int len, String expected) { assertEquals(expected, StringUtils.left(input, len)); } @Test void zeroLength_returnsEmpty() { assertEquals("", StringUtils.left("Moss", 0)); } } @Nested @DisplayName("removeEnd / endsWith") class RemoveEndEndsWith { @ParameterizedTest(name = "removeEnd(''{0}'', ''{1}'') → ''{2}''") @CsvSource(delimiter = '|', value = { "Moss! | ! | Moss", "Roy | ! | Roy", }) void removeEndWorks(String input, String suffix, String expected) { assertEquals(expected, StringUtils.removeEnd(input, suffix)); } @ParameterizedTest(name = "endsWith(''{0}'', ''{1}'') → {2}") @CsvSource(delimiter = '|', value = { "Reynholm. | . | true", "Moss | . | false", }) void endsWithWorks(String input, String suffix, boolean expected) { assertEquals(expected, StringUtils.endsWith(input, suffix)); } } @Nested @DisplayName("replace / replaceChars") class Replace { @ParameterizedTest(name = "replace(''{0}'', ''{1}'', ''{2}'') → ''{3}''") @CsvSource(delimiter = '|', value = { "Have you tried turning it off and on again? | off and on | on and off | Have you tried turning it on and off again?", "Moss | x | y | Moss", "Roy Roy Roy | Roy | Jen | Jen Jen Jen", }) void replaceWorks(String input, String search, String replacement, String expected) { assertEquals(expected, StringUtils.replace(input, search, replacement)); } @ParameterizedTest(name = "replaceChars(''{0}'', ''{1}'', ''{2}'') → ''{3}''") @CsvSource(delimiter = '|', value = { "Moss | eo | -- | M-ss", // both chars have replacements "Moss | os | x | Mx", // one replacement, two removals "Roy | xyz | 123 | Ro2", // one replacement "Richard Ayoade | Aa | _ | Richrd _yode", // one replacement, one removal }) void replaceCharsWorks(String input, String searchChars, String replaceChars, String expected) { assertEquals(expected, StringUtils.replaceChars(input, searchChars, replaceChars)); } } @Nested @DisplayName("latinize") class Latinize { @ParameterizedTest(name = "''{0}'' → ''{1}''") @CsvSource(delimiter = '|', value = { "Réynhölm | Reynholm", "Möss | Moss", "Straße | Strasse", "Zażółć gęślą jaźń | Zazolc gesla jazn", "łŁ | lL", "ßß | ssss", "Roy | Roy", }) void latinizesCorrectly(String input, String expected) { assertEquals(expected, StringUtils.latinize(input)); } } @Nested @DisplayName("escapeNonAscii") class EscapeNonAscii { @Test void null_returnsNull() { assertNull(StringUtils.escapeNonAscii(null)); } @ParameterizedTest(name = "''{0}'' → ''{1}''") @CsvSource(delimiter = '|', value = { "Moss | Moss", "Möss | M\\u00f6ss", "Réy | R\\u00e9y", }) void escapesCorrectly(String input, String expected) { assertEquals(expected, StringUtils.escapeNonAscii(input)); } } @Nested @DisplayName("split") class Split { @Test void bySpace_returnsCorrectParts() { assertArrayEquals(new String[]{"Moss", "Roy", "Jen"}, StringUtils.split("Moss Roy Jen", ' ')); } @Test @DisplayName("trailing delimiter preserves trailing empty string") void trailingDelimiter_preservesTrailingEmpty() { assertArrayEquals(new String[]{"Moss", "Roy", ""}, StringUtils.split("Moss Roy ", ' ')); } @Test void noDelimiterPresent_returnsSingleElement() { assertArrayEquals(new String[]{"Reynholm"}, StringUtils.split("Reynholm", ' ')); } } @Nested @DisplayName("joinWithSpace") class JoinWithSpace { @Test void multipleElements_joinedWithSpace() { assertEquals("Moss Roy Jen", StringUtils.joinWithSpace(List.of("Moss", "Roy", "Jen"))); } @Test void singleElement_noSpaceAdded() { assertEquals("Moss", StringUtils.joinWithSpace(List.of("Moss"))); } @Test void emptyList_returnsEmptyString() { assertEquals("", StringUtils.joinWithSpace(List.of())); } } } ================================================ FILE: src/test/java/com/devskiller/jfairy/producer/util/ValidateUtilsTest.java ================================================ package com.devskiller.jfairy.producer.util; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertSame; import static org.junit.jupiter.api.Assertions.assertThrows; /** * Unit tests for {@link ValidateUtils}. */ @SuppressWarnings("checkstyle:MethodName") @DisplayName("ValidateUtils") class ValidateUtilsTest { @Nested @DisplayName("notNull") class NotNull { @Test void nonNullValue_returnsValue() { String value = "hello"; assertSame(value, ValidateUtils.notNull(value, "must not be null")); } @Test void nullValue_throwsWithMessage() { IllegalArgumentException ex = assertThrows( IllegalArgumentException.class, () -> ValidateUtils.notNull(null, "key cannot be null")); assertEquals("key cannot be null", ex.getMessage()); } @Test void nullValue_withFormatArgs_includesArgsInMessage() { IllegalArgumentException ex = assertThrows( IllegalArgumentException.class, () -> ValidateUtils.notNull(null, "param '%s' cannot be null", "myKey")); assertEquals("param 'myKey' cannot be null", ex.getMessage()); } } @Nested @DisplayName("isTrue") class IsTrue { @Test void trueExpression_doesNotThrow() { assertDoesNotThrow(() -> ValidateUtils.isTrue(true, "should not throw")); } @Test void falseExpression_throwsWithMessage() { IllegalArgumentException ex = assertThrows( IllegalArgumentException.class, () -> ValidateUtils.isTrue(false, "value must be >= 0")); assertEquals("value must be >= 0", ex.getMessage()); } @Test void falseExpression_withFormatArgs_includesArgsInMessage() { IllegalArgumentException ex = assertThrows( IllegalArgumentException.class, () -> ValidateUtils.isTrue(false, "%d has to be >= 0", -5)); assertEquals("-5 has to be >= 0", ex.getMessage()); } } } ================================================ FILE: src/test/resources/simplelogger.properties ================================================ # SLF4J's SimpleLogger configuration file org.slf4j.simpleLogger.logFile = System.out org.slf4j.simpleLogger.defaultLogLevel = info # Date and time formatting org.slf4j.simpleLogger.showDateTime = true org.slf4j.simpleLogger.dateTimeFormat = yyyy-MM-dd HH:mm:ss.SSS # Display settings for threads and logger names org.slf4j.simpleLogger.showThreadName = true org.slf4j.simpleLogger.showLogName = true org.slf4j.simpleLogger.showShortLogName = true org.slf4j.simpleLogger.levelInBrackets = false # Specific logger levels org.slf4j.simpleLogger.log.com.devskiller.jfairy = trace ================================================ FILE: src/test/resources/team/checkstyle-rules.xml ================================================