# coding=utf-8
from __future__ import unicode_literals
from .. import Provider as PersonProvider


class Provider(PersonProvider):
    formats_male = (
        '{{first_name_male}} {{last_name}} {{last_name}}',
        '{{first_name_male}} {{last_name}} {{last_name}}',
        '{{first_name_male}} {{last_name}} {{last_name}}',
        '{{first_name_male}} {{last_name}} {{last_name}}',
        '{{first_name_male}} {{last_name}} {{last_name}}',
        '{{first_name_male}} {{last_name}} {{last_name}}',
        '{{first_name_male}} {{last_name}}',
        '{{first_name_male}} {{prefix}} {{last_name}}',
        '{{first_name_male}} {{last_name}}-{{last_name}}',
        '{{first_name_male}} {{first_name_male}} {{last_name}} {{last_name}}',
    )

    formats_female = (
        '{{first_name_female}} {{last_name}} {{last_name}}',
        '{{first_name_female}} {{last_name}} {{last_name}}',
        '{{first_name_female}} {{last_name}} {{last_name}}',
        '{{first_name_female}} {{last_name}} {{last_name}}',
        '{{first_name_female}} {{last_name}} {{last_name}}',
        '{{first_name_female}} {{last_name}} {{last_name}}',
        '{{first_name_female}} {{last_name}}',
        '{{first_name_female}} {{prefix}} {{last_name}}',
        '{{first_name_female}} {{last_name}}-{{last_name}}',
        '{{first_name_female}} {{first_name_female}} {{last_name}} {{last_name}}',
    )

    formats = formats_male + formats_female

    first_names_male = (
        'Antonio',
        'Jose',
        'Manuel',
        'Francisco',
        'Juan',
        'David',
        'Jose Antonio',
        'Jose Luis',
        'Javier',
        'Jesús',
        'Francisco Javier',
        'Daniel',
        'Carlos',
        'Miguel',
        'Rafael',
        'Jose Manuel',
        'Alejandro',
        'Pedro',
        'Ángel',
        'Miguel Ángel',
        'Jose Maria',
        'Fernando',
        'Luís',
        'Pablo',
        'Sergio',
        'Jorge',
        'Alberto',
        'Juan Carlos',
        'Juan José',
        'Diego',
        'Alvaro',
        'Adrián',
        'Juan Antonio',
        'Enrique',
        'Raul',
        'Ramon',
        'Vicente',
        'Ivan',
        'Ruben',
        'Andrés',
        'Joaquin',
        'Óscar',
        'Juan Manuel',
        'Santiago',
        'Eduardo',
        'Victor',
        'Roberto',
        'Jaime',
        'Francisco Jose',
        'Ignacio',
        'Mario',
        'Alfonso',
        'Salvador',
        'Ricardo',
        'Jordi',
        'Marcos',
        'Emilio',
        'Julian',
        'Julio',
        'Guillermo',
        'Tomás',
        'Gabriel',
        'Agustín',
        'Jose Miguel',
        'Felix',
        'Jose Ramon',
        'Gonzalo',
        'Marc',
        'Mohamed',
        'Joan',
        'Hugo',
        'Ismael',
        'Cristian',
        'Nicolás',
        'Mariano',
        'Josep',
        'Domingo',
        'Samuel',
        'Juan Francisco',
        'Alfredo',
        'Sebastian',
        'Aitor',
        'Jose Carlos',
        'Martin',
        'Felipe',
        'Cesar',
        'Hector',
        'Jose Angel',
        'Jose Ignacio',
        'Victor Manuel',
        'Gregorio',
        'Luis Miguel',
        'Iker',
        'Jose Francisco',
        'Juan Luis',
        'Albert',
        'Lorenzo',
        'Alex',
        'Xavier',
        'Rodrigo')

    first_names_female = (
        'María',
        'Carmen',
        'Ana',
        'Isabel',
        'Dolores',
        'Pilar',
        'Josefa',
        'Teresa',
        'Rosa',
        'Cristina',
        'Ángeles',
        'Antonia',
        'Laura',
        'Francisca',
        'Elena',
        'Mercedes',
        'Luisa',
        'Marta',
        'Concepción',
        'Rosario',
        'Lucía',
        'Juana',
        'Manuela',
        'Sara',
        'Paula',
        'Raquel',
        'Beatriz',
        'Eva',
        'Patricia',
        'Victoria',
        'Rocio',
        'Encarnacion',
        'Julia',
        'Belen',
        'Silvia',
        'Esther',
        'Andrea',
        'Montserrat',
        'Nuria',
        'Angela',
        'Irene',
        'Inmaculada',
        'Mónica',
        'Sandra',
        'Margarita',
        'Yolanda',
        'Alba',
        'Sonia',
        'Alicia',
        'Mar',
        'Susana',
        'Marina',
        'Amparo',
        'Natalia',
        'Nieves',
        'Gloria',
        'Claudia',
        'Soledad',
        'Ines',
        'Lourdes',
        'Verónica',
        'Carolina',
        'Luz',
        'Consuelo',
        'Noelia',
        'Asunción',
        'Lorena',
        'Sofia',
        'Milagros',
        'Catalina',
        'Esperanza',
        'Olga',
        'Alejandra',
        'Carla',
        'Emilia',
        'Fátima',
        'Aurora',
        'Blanca',
        'Magdalena',
        'Miriam',
        'Lidia',
        'Nerea',
        'Clara',
        'Daniela',
        'Anna',
        'Celia',
        'Elisa',
        'Eugenia',
        'Josefina',
        'Virginia',
        'Purificación',
        'Vanesa',
        'Remedios',
        'Trinidad',
        'Gema',
        'Adriana',
        'Vicenta',
        'Mireia',
        'Begoña')

    first_names = first_names_male + first_names_female

    last_names = (
        'Abad', 'Abascal', 'Abella', 'Abellán', 'Abril', 'Acedo', 'Acero',
        'Acevedo', 'Acosta', 'Acuña', 'Adadia', 'Adán', 'Aguado', 'Agudo',
        'Aguilar', 'Aguilera', 'Aguiló', 'Aguirre', 'Agullo', 'Agustí', 'Agustín',
        'Alarcón', 'Alba', 'Alberdi', 'Albero', 'Alberola', 'Alberto', 'Alcalde',
        'Alcalá', 'Alcaraz', 'Alcolea', 'Alcántara', 'Alcázar', 'Alegre', 'Alegria',
        'Alemany', 'Alemán', 'Alfaro', 'Alfonso', 'Aliaga', 'Aller', 'Almagro',
        'Almansa', 'Almazán', 'Almeida', 'Alonso', 'Alsina', 'Alvarado', 'Alvarez',
        'Amador', 'Amat', 'Amaya', 'Amigó', 'Amo', 'Amor', 'Amores',
        'Amorós', 'Anaya', 'Andrade', 'Andres', 'Andreu', 'Andrés', 'Anglada',
        'Anguita', 'Angulo', 'Antón', 'Antúnez', 'Aparicio', 'Aragonés', 'Aragón',
        'Aramburu', 'Arana', 'Aranda', 'Araujo', 'Arce', 'Arco', 'Arcos',
        'Arellano', 'Arenas', 'Arias', 'Ariza', 'Ariño', 'Arjona', 'Armas',
        'Armengol', 'Arnaiz', 'Arnal', 'Arnau', 'Aroca', 'Arranz', 'Arregui',
        'Arribas', 'Arrieta', 'Arroyo', 'Arteaga', 'Artigas', 'Arévalo', 'Asenjo',
        'Asensio', 'Atienza', 'Avilés', 'Ayala', 'Ayllón', 'Ayuso', 'Azcona',
        'Aznar', 'Azorin', 'Badía', 'Baena', 'Baeza', 'Balaguer', 'Ballester',
        'Ballesteros', 'Baquero', 'Barba', 'Barbero', 'Barberá', 'Barceló', 'Barco',
        'Barragán', 'Barral', 'Barranco', 'Barreda', 'Barrena', 'Barrera', 'Barriga',
        'Barrio', 'Barrios', 'Barros', 'Barroso', 'Bartolomé', 'Baró', 'Barón',
        'Bas', 'Bastida', 'Batalla', 'Batlle', 'Bautista', 'Bauzà', 'Bayo',
        'Bayona', 'Bayón', 'Baños', 'Becerra', 'Bejarano', 'Belda', 'Bellido',
        'Bello', 'Belmonte', 'Beltran', 'Beltrán', 'Benavent', 'Benavente', 'Benavides',
        'Benet', 'Benitez', 'Benito', 'Benítez', 'Berenguer', 'Bermejo', 'Bermudez',
        'Bermúdez', 'Bernad', 'Bernal', 'Bernat', 'Berrocal', 'Bertrán', 'Bilbao',
        'Blanca', 'Blanch', 'Blanco', 'Blanes', 'Blasco', 'Blazquez', 'Blázquez',
        'Boada', 'Boix', 'Bolaños', 'Bonet', 'Bonilla', 'Borja', 'Borrego',
        'Borrell', 'Borrás', 'Bosch', 'Botella', 'Bou', 'Bravo', 'Briones',
        'Bru', 'Buendía', 'Bueno', 'Burgos', 'Busquets', 'Bustamante', 'Bustos',
        'Báez', 'Bárcena', 'Caballero', 'Cabanillas', 'Cabañas', 'Cabello', 'Cabeza',
        'Cabezas', 'Cabo', 'Cabrera', 'Cabrero', 'Cadenas', 'Cal', 'Calatayud',
        'Calderon', 'Calderón', 'Calleja', 'Calvet', 'Calvo', 'Calzada', 'Camacho',
        'Camino', 'Campillo', 'Campo', 'Campos', 'Campoy', 'Camps', 'Canales',
        'Canals', 'Canet', 'Cano', 'Cantero', 'Cantón', 'Caparrós', 'Capdevila',
        'Carbajo', 'Carballo', 'Carbonell', 'Carbó', 'Cardona', 'Carlos', 'Carmona',
        'Carnero', 'Caro', 'Carpio', 'Carranza', 'Carrasco', 'Carrera', 'Carreras',
        'Carretero', 'Carreño', 'Carrillo', 'Carrión', 'Carro', 'Carvajal', 'Casado',
        'Casal', 'Casals', 'Casanova', 'Casanovas', 'Casares', 'Casas', 'Cases',
        'Castañeda', 'Castejón', 'Castell', 'Castellanos', 'Castells', 'Castelló', 'Castilla',
        'Castillo', 'Castrillo', 'Castro', 'Catalá', 'Catalán', 'Cazorla', 'Cañas',
        'Cañellas', 'Cañete', 'Cañizares', 'Cepeda', 'Cerdá', 'Cerdán', 'Cerezo',
        'Cerro', 'Cervantes', 'Cervera', 'Chacón', 'Chamorro', 'Chaparro', 'Chaves',
        'Checa', 'Chico', 'Cid', 'Cifuentes', 'Cisneros', 'Clavero', 'Clemente',
        'Cobo', 'Cobos', 'Coca', 'Codina', 'Coello', 'Coll', 'Collado',
        'Colom', 'Coloma', 'Colomer', 'Comas', 'Company', 'Conde', 'Conesa',
        'Contreras', 'Corbacho', 'Cordero', 'Cornejo', 'Corominas', 'Coronado', 'Corral',
        'Correa', 'Cortes', 'Cortina', 'Cortés', 'Costa', 'Crespi', 'Crespo',
        'Criado', 'Cruz', 'Cuadrado', 'Cuenca', 'Cuervo', 'Cuesta', 'Cueto',
        'Cuevas', 'Cuéllar', 'Cáceres', 'Cámara', 'Cánovas', 'Cárdenas', 'Céspedes',
        'Córdoba', 'Cózar', 'Dalmau', 'Daza', 'Delgado', 'Diaz', 'Diego',
        'Diez', 'Diéguez', 'Domingo', 'Dominguez', 'Doménech', 'Domínguez', 'Donaire',
        'Donoso', 'Duarte', 'Dueñas', 'Duque', 'Duran', 'Durán', 'Dávila',
        'Díaz', 'Díez', 'Echevarría', 'Echeverría', 'Egea', 'Elorza', 'Elías',
        'Enríquez', 'Escalona', 'Escamilla', 'Escobar', 'Escolano', 'Escribano', 'Escrivá',
        'Escudero', 'Espada', 'Esparza', 'España', 'Español', 'Espejo', 'Espinosa',
        'Esteban', 'Esteve', 'Estevez', 'Estrada', 'Estévez', 'Exposito', 'Expósito',
        'Fabra', 'Fabregat', 'Fajardo', 'Falcó', 'Falcón', 'Farré', 'Feijoo',
        'Feliu', 'Fernandez', 'Fernández', 'Ferrando', 'Ferrer', 'Ferrera', 'Ferreras',
        'Ferrero', 'Ferrán', 'Ferrández', 'Ferrándiz', 'Figueras', 'Figueroa', 'Figuerola',
        'Fiol', 'Flor', 'Flores', 'Folch', 'Fonseca', 'Font', 'Fortuny',
        'Franch', 'Francisco', 'Franco', 'Frutos', 'Frías', 'Fuente', 'Fuentes',
        'Fuertes', 'Fuster', 'Fábregas', 'Gabaldón', 'Galan', 'Galiano', 'Galindo',
        'Gallardo', 'Gallart', 'Gallego', 'Gallo', 'Galvez', 'Galván', 'Galán',
        'Garay', 'Garcia', 'Garcés', 'García', 'Gargallo', 'Garmendia', 'Garrido',
        'Garriga', 'Garzón', 'Gascón', 'Gaya', 'Gelabert', 'Gibert', 'Gil',
        'Gilabert', 'Gimenez', 'Gimeno', 'Giménez', 'Giner', 'Giralt', 'Girona',
        'Girón', 'Gisbert', 'Godoy', 'Goicoechea', 'Gomez', 'Gomila', 'Gomis',
        'Gonzalez', 'Gonzalo', 'González', 'Gordillo', 'Goñi', 'Gracia', 'Granados',
        'Grande', 'Gras', 'Grau', 'Gual', 'Guardia', 'Guardiola', 'Guerra',
        'Guerrero', 'Guijarro', 'Guillen', 'Guillén', 'Guitart', 'Gutierrez', 'Gutiérrez',
        'Guzman', 'Guzmán', 'Gálvez', 'Gámez', 'Gárate', 'Gómez', 'Haro',
        'Heras', 'Heredia', 'Hernandez', 'Hernando', 'Hernández', 'Herranz', 'Herrera',
        'Herrero', 'Hervia', 'Hervás', 'Hidalgo', 'Hierro', 'Higueras', 'Hoyos',
        'Hoz', 'Huerta', 'Huertas', 'Huguet', 'Hurtado', 'Ibarra', 'Ibañez',
        'Iborra', 'Ibáñez', 'Iglesia', 'Iglesias', 'Infante', 'Iniesta', 'Iriarte',
        'Isern', 'Izaguirre', 'Izquierdo', 'Iñiguez', 'Jara', 'Jaume', 'Jaén',
        'Jerez', 'Jimenez', 'Jiménez', 'Jordá', 'Jordán', 'Jove', 'Jover',
        'Juan', 'Juliá', 'Julián', 'Jurado', 'Juárez', 'Jáuregui', 'Jódar',
        'Lago', 'Laguna', 'Lamas', 'Landa', 'Lara', 'Larrañaga', 'Larrea',
        'Lasa', 'Lastra', 'Leal', 'Ledesma', 'Leiva', 'Leon', 'Lerma',
        'León', 'Lillo', 'Linares', 'Llabrés', 'Lladó', 'Llamas', 'Llano',
        'Llanos', 'Lledó', 'Llobet', 'Llopis', 'Llorens', 'Llorente', 'Lloret',
        'Lluch', 'Lobato', 'Lobo', 'Lopez', 'Lorenzo', 'Losa', 'Losada',
        'Lozano', 'Lucas', 'Lucena', 'Luján', 'Lumbreras', 'Luna', 'Luque',
        'Luz', 'Luís', 'López', 'Machado', 'Macias', 'Macías', 'Madrid',
        'Madrigal', 'Maestre', 'Maldonado', 'Malo', 'Mancebo', 'Manjón', 'Manrique',
        'Manso', 'Manuel', 'Manzanares', 'Manzano', 'Marco', 'Marcos', 'Marin',
        'Mariscal', 'Mariño', 'Marquez', 'Marqués', 'Marti', 'Martin', 'Martinez',
        'Martorell', 'Martí', 'Martín', 'Martínez', 'Marí', 'Marín', 'Mas',
        'Mascaró', 'Mata', 'Matas', 'Mate', 'Mateo', 'Mateos', 'Mateu',
        'Mayo', 'Mayol', 'Mayoral', 'Maza', 'Medina', 'Melero', 'Meléndez',
        'Mena', 'Mendez', 'Mendizábal', 'Mendoza', 'Menendez', 'Menéndez', 'Mercader',
        'Merino', 'Mesa', 'Miguel', 'Milla', 'Millán', 'Mir', 'Miralles',
        'Miranda', 'Miró', 'Moles', 'Molina', 'Moliner', 'Molins', 'Moll',
        'Monreal', 'Montalbán', 'Montaña', 'Montenegro', 'Montero', 'Montes', 'Montesinos',
        'Montoya', 'Montserrat', 'Mora', 'Moraleda', 'Morales', 'Morante', 'Morata',
        'Morcillo', 'Morell', 'Moreno', 'Morera', 'Morillo', 'Morán', 'Mosquera',
        'Moya', 'Mulet', 'Mur', 'Murcia', 'Murillo', 'Muro', 'Muñoz',
        'Mármol', 'Márquez', 'Méndez', 'Mínguez', 'Múgica', 'Múñiz', 'Nadal',
        'Naranjo', 'Narváez', 'Navarrete', 'Navarro', 'Navas', 'Nebot', 'Neira',
        'Nevado', 'Nicolau', 'Nicolás', 'Nieto', 'Niño', 'Nogueira', 'Noguera',
        'Nogués', 'Noriega', 'Novoa', 'Nuñez', 'Núñez', 'Ocaña', 'Ochoa',
        'Ojeda', 'Oliva', 'Olivares', 'Oliver', 'Olivera', 'Oliveras', 'Olivé',
        'Oller', 'Olmedo', 'Olmo', 'Ordóñez', 'Orozco', 'Ortega', 'Ortiz',
        'Ortuño', 'Osorio', 'Osuna', 'Otero', 'Pablo', 'Pacheco', 'Padilla',
        'Pagès', 'Palacio', 'Palacios', 'Palau', 'Pallarès', 'Palma', 'Palmer',
        'Palomar', 'Palomares', 'Palomino', 'Palomo', 'Paniagua', 'Pardo', 'Paredes',
        'Pareja', 'Parejo', 'Parra', 'Pascual', 'Pastor', 'Patiño', 'Pavón',
        'Paz', 'Pazos', 'Pedraza', 'Pedrero', 'Pedro', 'Pedrosa', 'Peinado',
        'Peiró', 'Pelayo', 'Pellicer', 'Peláez', 'Pera', 'Peral', 'Perales',
        'Peralta', 'Perea', 'Pereira', 'Perelló', 'Perera', 'Perez', 'Peña',
        'Peñalver', 'Peñas', 'Pi', 'Pina', 'Pineda', 'Pinedo', 'Pinilla',
        'Pino', 'Pinto', 'Pintor', 'Piquer', 'Pizarro', 'Piña', 'Piñeiro',
        'Piñol', 'Pla', 'Plana', 'Planas', 'Plaza', 'Pol', 'Polo',
        'Pomares', 'Pombo', 'Ponce', 'Pons', 'Pont', 'Porcel', 'Porras',
        'Porta', 'Portero', 'Portillo', 'Posada', 'Pou', 'Poza', 'Pozo',
        'Pozuelo', 'Prada', 'Prado', 'Prat', 'Prats', 'Priego', 'Prieto',
        'Puente', 'Puerta', 'Puga', 'Puig', 'Pujadas', 'Pujol', 'Pulido',
        'Páez', 'Pérez', 'Quero', 'Querol', 'Quesada', 'Quevedo', 'Quintana',
        'Quintanilla', 'Quintero', 'Quiroga', 'Quirós', 'Ramirez', 'Ramis', 'Ramos',
        'Ramírez', 'Ramón', 'Raya', 'Real', 'Rebollo', 'Recio', 'Redondo',
        'Reguera', 'Reig', 'Reina', 'Requena', 'Revilla', 'Rey', 'Reyes',
        'Riba', 'Ribas', 'Ribera', 'Ribes', 'Ricart', 'Rico', 'Riera',
        'Rincón', 'Rios', 'Ripoll', 'Riquelme', 'Rius', 'Rivas', 'Rivera',
        'Rivero', 'Robledo', 'Robles', 'Roca', 'Rocamora', 'Rocha', 'Roda',
        'Rodrigo', 'Rodriguez', 'Rodríguez', 'Roig', 'Rojas', 'Roldan', 'Roldán',
        'Roma', 'Roman', 'Romero', 'Romeu', 'Román', 'Ropero', 'Ros',
        'Rosa', 'Rosado', 'Rosales', 'Rosell', 'Roselló', 'Rosselló', 'Roura',
        'Rovira', 'Royo', 'Rozas', 'Ruano', 'Rubio', 'Rueda', 'Ruiz',
        'Río', 'Ríos', 'Ródenas', 'Saavedra', 'Sabater', 'Sacristán', 'Saez',
        'Sainz', 'Sala', 'Salamanca', 'Salas', 'Salazar', 'Salcedo', 'Saldaña',
        'Sales', 'Salgado', 'Salinas', 'Salmerón', 'Salom', 'Salvador', 'Salvà',
        'Samper', 'Sanabria', 'Sanchez', 'Sancho', 'Sandoval', 'Sanjuan', 'Sanmartín',
        'Sanmiguel', 'Sans', 'Santamaria', 'Santamaría', 'Santana', 'Santiago', 'Santos',
        'Sanz', 'Sarabia', 'Sarmiento', 'Sastre', 'Saura', 'Sebastián', 'Seco',
        'Sedano', 'Segarra', 'Segovia', 'Segura', 'Seguí', 'Serna', 'Serra',
        'Serrano', 'Sevilla', 'Sevillano', 'Sierra', 'Silva', 'Simó', 'Sobrino',
        'Sola', 'Solana', 'Solano', 'Soler', 'Solera', 'Solsona', 'Solé',
        'Solís', 'Somoza', 'Soria', 'Soriano', 'Sosa', 'Sotelo', 'Soto',
        'Suarez', 'Sureda', 'Suárez', 'Sáenz', 'Sáez', 'Sánchez', 'Taboada',
        'Talavera', 'Tamarit', 'Tamayo', 'Tapia', 'Tejada', 'Tejedor', 'Tejera',
        'Tejero', 'Tello', 'Tena', 'Tenorio', 'Terrón', 'Teruel', 'Tirado',
        'Toledo', 'Tolosa', 'Tomas', 'Tomás', 'Tomé', 'Tormo', 'Toro',
        'Torralba', 'Torre', 'Torrecilla', 'Torrens', 'Torrent', 'Torrents', 'Torres',
        'Torrijos', 'Tovar', 'Trillo', 'Trujillo', 'Tudela', 'Tur', 'Téllez',
        'Ugarte', 'Ureña', 'Uriarte', 'Uribe', 'Urrutia', 'Uría', 'Valbuena',
        'Valcárcel', 'Valderrama', 'Valdés', 'Valencia', 'Valenciano', 'Valentín', 'Valenzuela',
        'Valera', 'Valero', 'Vall', 'Valle', 'Vallejo', 'Valls', 'Vallés',
        'Valverde', 'Vaquero', 'Vara', 'Varela', 'Vargas', 'Vazquez', 'Vega',
        'Velasco', 'Velázquez', 'Vendrell', 'Vera', 'Verdejo', 'Verdugo', 'Verdú',
        'Vergara', 'Viana', 'Vicens', 'Vicente', 'Vidal', 'Vigil', 'Vila',
        'Vilalta', 'Vilanova', 'Vilaplana', 'Vilar', 'Villa', 'Villalba', 'Villalobos',
        'Villalonga', 'Villanueva', 'Villar', 'Villaverde', 'Villegas', 'Villena', 'Vives',
        'Vizcaíno', 'Viña', 'Viñas', 'Vázquez', 'Vélez', 'Yuste', 'Yáñez',
        'Zabala', 'Zabaleta', 'Zamora', 'Zamorano', 'Zapata', 'Zaragoza', 'Zorrilla',
        'Zurita', 'Águila', 'Álamo', 'Álvarez', 'Álvaro', 'Ángel', 'Ávila'
    )

    prefixes = ('de', 'del')
