R/en_NZ.R

## automotive ----------------------
automotive_en_NZ = R6Class(
  "automotive_en_NZ",
  inherit = automotive_init,
  cloneable = FALSE,
  private = list(
    # See https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_New_Zealand
    license_formats = c(
      # Old plates
      '??%##',
      '??%###',
      '??%###',
      # Three letters since 2002
      'A??%##',
      'B??%##',
      'C??%##',
      'D??%##',
      'E??%##',
      'F??%##',
      'G??%##',
      'H??%##',
      'J??%##',
      'K??%##',
      'L??%##',
      'M??%##',
      # After 2018
      'N??%##')

  )
)

## person ----------------------------------
person_en_NZ = R6Class(
  "person_en_NZ",
  inherit = person_init,
  cloneable = FALSE,
  private = list(
    formats = c(
      '{first_name_male} {last_name}',
      '{first_name_male} {last_name}',
      '{first_name_male} {last_name}',
      '{first_name_male} {last_name}',
      '{first_name_male} {last_name}-{last_name}',
      '{first_name_female} {last_name}',
      '{first_name_female} {last_name}',
      '{first_name_female} {last_name}',
      '{first_name_female} {last_name}',
      '{first_name_female} {last_name}-{last_name}'),

    first_names_male = list(
      c('Aaron', 9912),
      c('Adam', 7639),
      c('Adrian', 2420),
      c('Aidan', 1521),
      c('Aiden', 782),
      c('Alan', 5689),
      c('Alex', 2819),
      c('Alexander', 7783),
      c('Alistair', 429),
      c('Allan', 3148),
      c('Allen', 51),
      c('Andre', 127),
      c('Andrew', 25593),
      c('Angus', 1680),
      c('Anthony', 12549),
      c('Antony', 1594),
      c('Archer', 381),
      c('Archie', 774),
      c('Arlo', 584),
      c('Arthur', 630),
      c('Asher', 319),
      c('Ashley', 861),
      c('Ashton', 1236),
      c('Austin', 688),
      c('Bailey', 1304),
      c('Barry', 3624),
      c('Beau', 491),
      c('Beauden', 125),
      c('Ben', 2427),
      c('Benjamin', 15497),
      c('Bernard', 657),
      c('Bevan', 634),
      c('Blair', 2863),
      c('Blake', 3500),
      c('Bodhi', 70),
      c('Brad', 450),
      c('Bradley', 3910),
      c('Brandon', 1000),
      c('Braxton', 741),
      c('Brayden', 317),
      c('Brendan', 2010),
      c('Brendon', 3163),
      c('Brent', 5564),
      c('Brett', 4598),
      c('Brian', 6247),
      c('Brodie', 216),
      c('Brooklyn', 406),
      c('Bruce', 6079),
      c('Bryan', 1435),
      c('Caleb', 5374),
      c('Callum', 2364),
      c('Cameron', 7756),
      c('Campbell', 422),
      c('Carl', 3304),
      c('Carlos', 122),
      c('Carter', 1308),
      c('Charles', 3933),
      c('Charlie', 2367),
      c('Chase', 174),
      c('Christian', 1138),
      c('Christopher', 23459),
      c('Clayton', 59),
      c('Clinton', 1004),
      c('Cody', 2482),
      c('Cohen', 99),
      c('Cole', 648),
      c('Colin', 3980),
      c('Connor', 4632),
      c('Conor', 54),
      c('Cooper', 2113),
      c('Corey', 1656),
      c('Cory', 129),
      c('Craig', 12702),
      c('Cruz', 52),
      c('Damian', 1084),
      c('Damon', 211),
      c('Daniel', 23515),
      c('Darren', 3143),
      c('Darrin', 217),
      c('Darryl', 1517),
      c('Darryn', 260),
      c('Daryl', 421),
      c('David', 36792),
      c('Dean', 6096),
      c('Declan', 108),
      c('Denis', 66),
      c('Dennis', 1129),
      c('Derek', 1307),
      c('Desmond', 224),
      c('Dillon', 63),
      c('Dion', 1283),
      c('Dominic', 801),
      c('Donald', 2405),
      c('Douglas', 2587),
      c('Duncan', 471),
      c('Dwayne', 57),
      c('Dylan', 6564),
      c('Edward', 4864),
      c('Eli', 961),
      c('Elijah', 2137),
      c('Elliot', 54),
      c('Eric', 808),
      c('Ethan', 6578),
      c('Ezra', 309),
      c('Felix', 769),
      c('Finn', 2084),
      c('Fletcher', 447),
      c('Flynn', 1577),
      c('Francis', 420),
      c('Frank', 46),
      c('Fraser', 51),
      c('Frederick', 49),
      c('Gabriel', 739),
      c('Gareth', 2087),
      c('Garry', 1840),
      c('Gary', 5520),
      c('Gavin', 3197),
      c('Geoffrey', 4439),
      c('George', 7320),
      c('Gerald', 104),
      c('Gerard', 614),
      c('Glen', 2709),
      c('Glenn', 3983),
      c('Gordon', 1444),
      c('Graeme', 4705),
      c('Graham', 3746),
      c('Grant', 8355),
      c('Grayson', 259),
      c('Gregory', 7916),
      c('Hamish', 5758),
      c('Harley', 403),
      c('Harrison', 2800),
      c('Harry', 2454),
      c('Harvey', 192),
      c('Hayden', 5209),
      c('Henry', 3111),
      c('Hudson', 281),
      c('Hugh', 101),
      c('Hugo', 543),
      c('Hunter', 3044),
      c('Ian', 7592),
      c('Isaac', 4208),
      c('Isaiah', 349),
      c('Israel', 52),
      c('Ivan', 236),
      c('Jack', 9468),
      c('Jackson', 3088),
      c('Jacob', 8612),
      c('Jake', 2421),
      c('Jakob', 46),
      c('James', 27224),
      c('Jamie', 5064),
      c('Jared', 2840),
      c('Jarrod', 773),
      c('Jason', 14737),
      c('Jasper', 246),
      c('Jaxon', 623),
      c('Jayden', 4541),
      c('Jeffrey', 2826),
      c('Jeremy', 4775),
      c('Jesse', 3965),
      c('Joel', 2932),
      c('John', 26867),
      c('Jonathan', 7957),
      c('Jonathon', 349),
      c('Jordan', 6499),
      c('Joseph', 10061),
      c('Josh', 56),
      c('Joshua', 17109),
      c('Josiah', 52),
      c('Julian', 232),
      c('Justin', 3882),
      c('Kaleb', 492),
      c('Kane', 1236),
      c('Karl', 3822),
      c('Kayden', 123),
      c('Keanu', 54),
      c('Keegan', 351),
      c('Keith', 2175),
      c('Kelly', 58),
      c('Kelvin', 1262),
      c('Kenneth', 3240),
      c('Kerry', 2404),
      c('Kevin', 9358),
      c('Kieran', 1525),
      c('Kim', 125),
      c('Kingston', 692),
      c('Kurt', 515),
      c('Kyle', 2568),
      c('Lachlan', 2965),
      c('Lance', 2958),
      c('Lawrence', 226),
      c('Lee', 872),
      c('Leo', 1872),
      c('Leon', 967),
      c('Leonard', 102),
      c('Leslie', 1126),
      c('Levi', 2986),
      c('Lewis', 324),
      c('Liam', 8629),
      c('Lincoln', 857),
      c('Lindsay', 883),
      c('Lloyd', 46),
      c('Logan', 5063),
      c('Louis', 863),
      c('Luca', 1318),
      c('Lucas', 3329),
      c('Luka', 119),
      c('Lukas', 70),
      c('Luke', 8296),
      c('Malcolm', 2398),
      c('Marcus', 1129),
      c('Mark', 23154),
      c('Martin', 4260),
      c('Mason', 2613),
      c('Mathew', 3107),
      c('Matthew', 23181),
      c('Maurice', 385),
      c('Max', 3988),
      c('Maxwell', 172),
      c('Mervyn', 162),
      c('Micah', 52),
      c('Michael', 40099),
      c('Micheal', 49),
      c('Mitchell', 2730),
      c('Morgan', 58),
      c('Murray', 4843),
      c('Nate', 48),
      c('Nathan', 8920),
      c('Nathaniel', 329),
      c('Neil', 3392),
      c('Neville', 1268),
      c('Nicholas', 13132),
      c('Nigel', 4435),
      c('Nikau', 53),
      c('Nixon', 219),
      c('Noah', 3511),
      c('Noel', 778),
      c('Norman', 221),
      c('Oliver', 6515),
      c('Oscar', 1987),
      c('Owen', 484),
      c('Patrick', 6219),
      c('Paul', 22959),
      c('Peter', 23996),
      c('Philip', 7036),
      c('Phillip', 5977),
      c('Phoenix', 882),
      c('Quentin', 67),
      c('Quinn', 742),
      c('Raymond', 4404),
      c('Regan', 1182),
      c('Reuben', 1678),
      c('Rex', 561),
      c('Rhys', 967),
      c('Richard', 17664),
      c('Ricky', 806),
      c('Riley', 2771),
      c('Robert', 19791),
      c('Robin', 1431),
      c('Rodney', 1936),
      c('Roger', 2612),
      c('Roman', 429),
      c('Ronald', 1769),
      c('Rory', 220),
      c('Ross', 4823),
      c('Roy', 101),
      c('Russell', 2863),
      c('Ryan', 9965),
      c('Ryder', 727),
      c('Sam', 2347),
      c('Samuel', 15565),
      c('Scott', 9481),
      c('Sean', 5201),
      c('Sebastian', 1031),
      c('Seth', 780),
      c('Shane', 10213),
      c('Shannon', 1082),
      c('Shaun', 4397),
      c('Shayne', 296),
      c('Simon', 9846),
      c('Sione', 165),
      c('Spencer', 52),
      c('Stefan', 52),
      c('Stephen', 18603),
      c('Steven', 11007),
      c('Stewart', 499),
      c('Stuart', 4662),
      c('Taine', 204),
      c('Taylor', 1356),
      c('Terence', 1154),
      c('Terry', 860),
      c('Theo', 311),
      c('Theodore', 429),
      c('Thomas', 15382),
      c('Timothy', 10924),
      c('Toby', 1490),
      c('Todd', 1264),
      c('Tom', 47),
      c('Tony', 5670),
      c('Travis', 65),
      c('Trent', 524),
      c('Trevor', 3194),
      c('Tristan', 111),
      c('Troy', 2423),
      c('Tyler', 3765),
      c('Tyrone', 231),
      c('Tyson', 531),
      c('Vaughan', 322),
      c('Vincent', 907),
      c('Walter', 57),
      c('Warren', 3223),
      c('Warwick', 295),
      c('Wayne', 8542),
      c('William', 18322),
      c('Wyatt', 58),
      c('Xavier', 1879),
      c('Zac', 111),
      c('Zachary', 2569),
      c('Zane', 761),
      c('Zion', 217),
      c('Anaru', 735),
      c('Ari', 984),
      c('Ariki', 1178),
      c('Hemi', 1360),
      c('Hoani', 574),
      c('Ihaia', 476),
      c('Kahu', 700),
      c('Kahurangi', 939),
      c('Kauri', 1613),
      c('Manaaki', 574),
      c('Manaia', 1434),
      c('Manawa', 536),
      c('Matiu', 455),
      c('Mikaere', 1413),
      c('Nikau', 1942),
      c('Niko', 972),
      c('Nikora', 1766),
      c('Rawiri', 1553),
      c('Tai', 793),
      c('Tama', 1257),
      c('Tamati', 1766),
      c('Tane', 1698),
      c('Tangaroa', 605),
      c('Te Ariki', 1423),
      c('Te Koha', 537),
      c('Tiare', 476),
      c('Wiremu', 1923)),

    first_names_female = list(
      c('Aaliyah', 1042),
      c('Abbey', 40),
      c('Abby', 503),
      c('Abigail', 2017),
      c('Addison', 538),
      c('Adrienne', 625),
      c('Aimee', 2315),
      c('Alana', 1194),
      c('Aleisha', 102),
      c('Alexandra', 2689),
      c('Alexis', 789),
      c('Alice', 3252),
      c('Alicia', 683),
      c('Alison', 3444),
      c('Alyssa', 1032),
      c('Amaia', 45),
      c('Amanda', 7667),
      c('Amber', 3661),
      c('Amelia', 4060),
      c('Amy', 7061),
      c('Anahera', 140),
      c('Andrea', 5003),
      c('Angel', 695),
      c('Angela', 9634),
      c('Angelina', 43),
      c('Anika', 46),
      c('Anita', 1526),
      c('Ann', 1834),
      c('Anna', 9371),
      c('Annabelle', 457),
      c('Anne', 3879),
      c('Annette', 2348),
      c('April', 49),
      c('Arabella', 42),
      c('Aria', 1025),
      c('Ariana', 473),
      c('Aroha', 50),
      c('Ashlee', 464),
      c('Ashleigh', 3158),
      c('Ashley', 2477),
      c('Aurora', 251),
      c('Ava', 2487),
      c('Ayla', 612),
      c('Bailey', 150),
      c('Barbara', 3531),
      c('Belinda', 1254),
      c('Bella', 1238),
      c('Beverley', 996),
      c('Billie', 45),
      c('Brenda', 2451),
      c('Briana', 49),
      c('Brianna', 740),
      c('Bridget', 1611),
      c('Britney', 64),
      c('Brittany', 1239),
      c('Bronwyn', 2406),
      c('Brooke', 3634),
      c('Brooklyn', 782),
      c('Caitlin', 3370),
      c('Caitlyn', 454),
      c('Carla', 323),
      c('Carmen', 233),
      c('Carol', 3626),
      c('Caroline', 2530),
      c('Carolyn', 3212),
      c('Casey', 1097),
      c('Cassandra', 489),
      c('Catherine', 7765),
      c('Chantelle', 55),
      c('Charlie', 215),
      c('Charlotte', 7759),
      c('Chelsea', 1943),
      c('Cherie', 1064),
      c('Cheryl', 1781),
      c('Cheyenne', 345),
      c('Chloe', 4582),
      c('Christina', 2675),
      c('Christine', 10604),
      c('Cindy', 65),
      c('Claire', 3174),
      c('Clara', 41),
      c('Clare', 55),
      c('Claudia', 804),
      c('Colleen', 1367),
      c('Courtney', 2941),
      c('Crystal', 828),
      c('Daisy', 197),
      c('Danielle', 4151),
      c('Dawn', 62),
      c('Debbie', 1389),
      c('Deborah', 8819),
      c('Debra', 3094),
      c('Denise', 3577),
      c('Destiny', 190),
      c('Diana', 977),
      c('Diane', 3952),
      c('Dianne', 2314),
      c('Donna', 7054),
      c('Dorothy', 303),
      c('Eden', 1578),
      c('Eilish', 52),
      c('Elaine', 381),
      c('Eleanor', 155),
      c('Elise', 48),
      c('Elizabeth', 11869),
      c('Ella', 5301),
      c('Ellen', 124),
      c('Ellie', 443),
      c('Elsie', 97),
      c('Emilia', 145),
      c('Emily', 7766),
      c('Emma', 13245),
      c('Erin', 1624),
      c('Esther', 88),
      c('Eva', 1637),
      c('Evelyn', 634),
      c('Evie', 419),
      c('Faith', 735),
      c('Fiona', 6039),
      c('Florence', 291),
      c('Frances', 1212),
      c('Frankie', 195),
      c('Freya', 218),
      c('Gabriella', 94),
      c('Gabrielle', 808),
      c('Gail', 1253),
      c('Gaylene', 82),
      c('Gemma', 2120),
      c('Georgia', 5613),
      c('Georgina', 786),
      c('Gillian', 1388),
      c('Gina', 301),
      c('Glenda', 859),
      c('Glenys', 410),
      c('Gloria', 127),
      c('Grace', 6036),
      c('Haley', 173),
      c('Hannah', 9082),
      c('Harmony', 300),
      c('Harper', 1186),
      c('Harriet', 210),
      c('Hayley', 4951),
      c('Hazel', 814),
      c('Heather', 4351),
      c('Heidi', 353),
      c('Helen', 7775),
      c('Holly', 4402),
      c('Hope', 142),
      c('Imogen', 293),
      c('Indi', 42),
      c('Indie', 494),
      c('Irene', 166),
      c('Isabel', 499),
      c('Isabella', 4257),
      c('Isabelle', 1182),
      c('Isla', 2246),
      c('Isobel', 85),
      c('Ivy', 577),
      c('Jacqueline', 5559),
      c('Jade', 3234),
      c('Jaime', 61),
      c('Jamie', 1066),
      c('Jan', 1587),
      c('Jane', 4932),
      c('Janet', 2253),
      c('Janette', 69),
      c('Janice', 1881),
      c('Janine', 2641),
      c('Jasmine', 3786),
      c('Jean', 64),
      c('Jeanette', 900),
      c('Jemma', 200),
      c('Jenna', 1162),
      c('Jennifer', 9991),
      c('Jessica', 12989),
      c('Jessie', 1123),
      c('Jill', 455),
      c('Jillian', 1571),
      c('Joan', 199),
      c('Joanna', 2716),
      c('Joanne', 9329),
      c('Jocelyn', 557),
      c('Jodi', 56),
      c('Jodie', 359),
      c('Jolene', 313),
      c('Jordan', 797),
      c('Jorja', 456),
      c('Josephine', 570),
      c('Joy', 487),
      c('Judith', 4677),
      c('Julia', 2092),
      c('Julie', 8289),
      c('Justine', 1127),
      c('Kaitlin', 45),
      c('Kaitlyn', 358),
      c('Karen', 13524),
      c('Karla', 62),
      c('Karyn', 429),
      c('Kate', 5782),
      c('Katelyn', 294),
      c('Katherine', 3912),
      c('Kathleen', 2503),
      c('Kathryn', 5104),
      c('Katie', 3455),
      c('Katrina', 3184),
      c('Kay', 1205),
      c('Kaye', 227),
      c('Kayla', 2806),
      c('Keira', 759),
      c('Kellie', 66),
      c('Kelly', 6137),
      c('Kelsey', 718),
      c('Kerry', 1917),
      c('Khloe', 98),
      c('Kim', 5667),
      c('Kimberley', 1578),
      c('Kiri', 130),
      c('Kirsten', 1183),
      c('Kirsty', 2083),
      c('Kristy', 172),
      c('Krystal', 650),
      c('Kyla', 41),
      c('Kylie', 3692),
      c('Laura', 4669),
      c('Lauren', 3275),
      c('Layla', 536),
      c('Leah', 1894),
      c('Leanne', 3478),
      c('Leonie', 52),
      c('Lesley', 1453),
      c('Libby', 48),
      c('Lilly', 813),
      c('Lily', 3546),
      c('Linda', 6288),
      c('Lisa', 11891),
      c('Lois', 278),
      c('Lola', 343),
      c('Lorraine', 1675),
      c('Louise', 4580),
      c('Lucia', 235),
      c('Lucy', 4938),
      c('Luna', 53),
      c('Lydia', 335),
      c('Lynda', 1972),
      c('Lynette', 3666),
      c('Lynley', 228),
      c('Lynn', 53),
      c('Lynne', 1025),
      c('Lynnette', 120),
      c('MacKenzie', 67),
      c('Mackenzie', 1039),
      c('Maddison', 1846),
      c('Madeleine', 780),
      c('Madeline', 184),
      c('Madison', 3128),
      c('Maia', 1937),
      c('Manaia', 204),
      c('Maree', 2270),
      c('Margaret', 5517),
      c('Maria', 5541),
      c('Marian', 60),
      c('Marie', 2582),
      c('Marilyn', 546),
      c('Marion', 370),
      c('Mary', 5891),
      c('Matilda', 570),
      c('Maureen', 1099),
      c('Maya', 432),
      c('Megan', 5869),
      c('Melanie', 4476),
      c('Melissa', 6898),
      c('Mia', 2627),
      c('Michaela', 687),
      c('Michele', 1082),
      c('Michelle', 12961),
      c('Mikaela', 48),
      c('Mikayla', 1492),
      c('Mila', 1139),
      c('Millie', 711),
      c('Molly', 1590),
      c('Monica', 56),
      c('Monique', 1859),
      c('Morgan', 646),
      c('Mya', 352),
      c('Nadine', 126),
      c('Naomi', 421),
      c('Natalie', 4112),
      c('Natasha', 5533),
      c('Nevaeh', 673),
      c('Ngaire', 116),
      c('Niamh', 49),
      c('Nicola', 10395),
      c('Nicole', 6011),
      c('Nikita', 1263),
      c('Nikki', 57),
      c('Nina', 379),
      c('Olive', 525),
      c('Olivia', 8816),
      c('Paige', 3719),
      c('Pamela', 2677),
      c('Paris', 551),
      c('Patricia', 5007),
      c('Paula', 3667),
      c('Pauline', 2404),
      c('Payton', 44),
      c('Penelope', 1213),
      c('Peyton', 621),
      c('Philippa', 1359),
      c('Phoebe', 1380),
      c('Piper', 580),
      c('Pippa', 416),
      c('Poppy', 842),
      c('Quinn', 213),
      c('Rachael', 3210),
      c('Rachel', 9769),
      c('Rachelle', 64),
      c('Raewyn', 3039),
      c('Rebecca', 11608),
      c('Rebekah', 1255),
      c('Renee', 3387),
      c('Rhonda', 131),
      c('Riley', 676),
      c('Robyn', 5598),
      c('Rochelle', 2086),
      c('Rose', 1384),
      c('Rosemary', 1918),
      c('Ruby', 4332),
      c('Ruth', 1616),
      c('Sadie', 151),
      c('Sally', 2445),
      c('Samantha', 7549),
      c('Sandra', 7429),
      c('Sara', 1121),
      c('Sarah', 19901),
      c('Sasha', 44),
      c('Savannah', 443),
      c('Scarlett', 1045),
      c('Shakira', 52),
      c('Shania', 338),
      c('Shannon', 2446),
      c('Sharlene', 220),
      c('Sharon', 7243),
      c('Shelley', 2569),
      c('Sheree', 169),
      c('Sheryl', 1688),
      c('Shirley', 1673),
      c('Shona', 1210),
      c('Sienna', 1358),
      c('Sinead', 53),
      c('Skye', 97),
      c('Skyla', 105),
      c('Skylar', 41),
      c('Sofia', 630),
      c('Sonia', 246),
      c('Sonya', 632),
      c('Sophia', 2595),
      c('Sophie', 7868),
      c('Stacey', 3037),
      c('Stella', 1323),
      c('Stephanie', 5794),
      c('Summer', 1477),
      c('Susan', 12686),
      c('Suzanne', 4705),
      c('Tamara', 312),
      c('Tania', 6879),
      c('Tanya', 1595),
      c('Tara', 503),
      c('Tayla', 1823),
      c('Taylor', 1499),
      c('Tegan', 318),
      c('Teresa', 2294),
      c('Tessa', 1439),
      c('Thea', 279),
      c('Tiana', 388),
      c('Tina', 2124),
      c('Toni', 2572),
      c('Tori', 50),
      c('Tracey', 6914),
      c('Tracy', 3999),
      c('Trinity', 401),
      c('Tyla', 98),
      c('Valerie', 394),
      c('Vanessa', 3941),
      c('Vicki', 3171),
      c('Vicky', 198),
      c('Victoria', 4823),
      c('Violet', 506),
      c('Virginia', 54),
      c('Vivienne', 802),
      c('Wendy', 6832),
      c('Whitney', 50),
      c('Willow', 743),
      c('Yvonne', 1822),
      c('Zara', 1292),
      c('Zoe', 3973),
      c('Zoey', 165),
      c('Amaia', 667),
      c('Ana', 730),
      c('Anahera', 1760),
      c('Anika', 1432),
      c('Aria', 1960),
      c('Ariana', 1729),
      c('Aroha', 1796),
      c('Ataahua', 876),
      c('Awhina', 583),
      c('Hana', 536),
      c('Hinewai', 536),
      c('Huia', 528),
      c('Kahurangi', 730),
      c('Kaia', 1576),
      c('Kora', 878),
      c('Mahi', 556),
      c('Maia', 1960),
      c('Manaia', 912),
      c('Maraea', 703),
      c('Mareikura', 948),
      c('Mereana', 637),
      c('Miriama', 614),
      c('Nia', 667),
      c('Ria', 703),
      c('Terina', 528),
      c('Tia', 1695),
      c('Tiare', 671),
      c('Tui', 1251),
      c('Waimarie', 671),
      c('Wikitoria', 583)),

    first_names = list(
      c('Aaron', 9912),
      c('Adam', 7639),
      c('Adrian', 2420),
      c('Aidan', 1521),
      c('Aiden', 782),
      c('Alan', 5689),
      c('Alex', 2819),
      c('Alexander', 7783),
      c('Alistair', 429),
      c('Allan', 3148),
      c('Allen', 51),
      c('Andre', 127),
      c('Andrew', 25593),
      c('Angus', 1680),
      c('Anthony', 12549),
      c('Antony', 1594),
      c('Archer', 381),
      c('Archie', 774),
      c('Arlo', 584),
      c('Arthur', 630),
      c('Asher', 319),
      c('Ashley', 861),
      c('Ashton', 1236),
      c('Austin', 688),
      c('Bailey', 1304),
      c('Barry', 3624),
      c('Beau', 491),
      c('Beauden', 125),
      c('Ben', 2427),
      c('Benjamin', 15497),
      c('Bernard', 657),
      c('Bevan', 634),
      c('Blair', 2863),
      c('Blake', 3500),
      c('Bodhi', 70),
      c('Brad', 450),
      c('Bradley', 3910),
      c('Brandon', 1000),
      c('Braxton', 741),
      c('Brayden', 317),
      c('Brendan', 2010),
      c('Brendon', 3163),
      c('Brent', 5564),
      c('Brett', 4598),
      c('Brian', 6247),
      c('Brodie', 216),
      c('Brooklyn', 406),
      c('Bruce', 6079),
      c('Bryan', 1435),
      c('Caleb', 5374),
      c('Callum', 2364),
      c('Cameron', 7756),
      c('Campbell', 422),
      c('Carl', 3304),
      c('Carlos', 122),
      c('Carter', 1308),
      c('Charles', 3933),
      c('Charlie', 2367),
      c('Chase', 174),
      c('Christian', 1138),
      c('Christopher', 23459),
      c('Clayton', 59),
      c('Clinton', 1004),
      c('Cody', 2482),
      c('Cohen', 99),
      c('Cole', 648),
      c('Colin', 3980),
      c('Connor', 4632),
      c('Conor', 54),
      c('Cooper', 2113),
      c('Corey', 1656),
      c('Cory', 129),
      c('Craig', 12702),
      c('Cruz', 52),
      c('Damian', 1084),
      c('Damon', 211),
      c('Daniel', 23515),
      c('Darren', 3143),
      c('Darrin', 217),
      c('Darryl', 1517),
      c('Darryn', 260),
      c('Daryl', 421),
      c('David', 36792),
      c('Dean', 6096),
      c('Declan', 108),
      c('Denis', 66),
      c('Dennis', 1129),
      c('Derek', 1307),
      c('Desmond', 224),
      c('Dillon', 63),
      c('Dion', 1283),
      c('Dominic', 801),
      c('Donald', 2405),
      c('Douglas', 2587),
      c('Duncan', 471),
      c('Dwayne', 57),
      c('Dylan', 6564),
      c('Edward', 4864),
      c('Eli', 961),
      c('Elijah', 2137),
      c('Elliot', 54),
      c('Eric', 808),
      c('Ethan', 6578),
      c('Ezra', 309),
      c('Felix', 769),
      c('Finn', 2084),
      c('Fletcher', 447),
      c('Flynn', 1577),
      c('Francis', 420),
      c('Frank', 46),
      c('Fraser', 51),
      c('Frederick', 49),
      c('Gabriel', 739),
      c('Gareth', 2087),
      c('Garry', 1840),
      c('Gary', 5520),
      c('Gavin', 3197),
      c('Geoffrey', 4439),
      c('George', 7320),
      c('Gerald', 104),
      c('Gerard', 614),
      c('Glen', 2709),
      c('Glenn', 3983),
      c('Gordon', 1444),
      c('Graeme', 4705),
      c('Graham', 3746),
      c('Grant', 8355),
      c('Grayson', 259),
      c('Gregory', 7916),
      c('Hamish', 5758),
      c('Harley', 403),
      c('Harrison', 2800),
      c('Harry', 2454),
      c('Harvey', 192),
      c('Hayden', 5209),
      c('Henry', 3111),
      c('Hudson', 281),
      c('Hugh', 101),
      c('Hugo', 543),
      c('Hunter', 3044),
      c('Ian', 7592),
      c('Isaac', 4208),
      c('Isaiah', 349),
      c('Israel', 52),
      c('Ivan', 236),
      c('Jack', 9468),
      c('Jackson', 3088),
      c('Jacob', 8612),
      c('Jake', 2421),
      c('Jakob', 46),
      c('James', 27224),
      c('Jamie', 5064),
      c('Jared', 2840),
      c('Jarrod', 773),
      c('Jason', 14737),
      c('Jasper', 246),
      c('Jaxon', 623),
      c('Jayden', 4541),
      c('Jeffrey', 2826),
      c('Jeremy', 4775),
      c('Jesse', 3965),
      c('Joel', 2932),
      c('John', 26867),
      c('Jonathan', 7957),
      c('Jonathon', 349),
      c('Jordan', 6499),
      c('Joseph', 10061),
      c('Josh', 56),
      c('Joshua', 17109),
      c('Josiah', 52),
      c('Julian', 232),
      c('Justin', 3882),
      c('Kaleb', 492),
      c('Kane', 1236),
      c('Karl', 3822),
      c('Kayden', 123),
      c('Keanu', 54),
      c('Keegan', 351),
      c('Keith', 2175),
      c('Kelly', 58),
      c('Kelvin', 1262),
      c('Kenneth', 3240),
      c('Kerry', 2404),
      c('Kevin', 9358),
      c('Kieran', 1525),
      c('Kim', 125),
      c('Kingston', 692),
      c('Kurt', 515),
      c('Kyle', 2568),
      c('Lachlan', 2965),
      c('Lance', 2958),
      c('Lawrence', 226),
      c('Lee', 872),
      c('Leo', 1872),
      c('Leon', 967),
      c('Leonard', 102),
      c('Leslie', 1126),
      c('Levi', 2986),
      c('Lewis', 324),
      c('Liam', 8629),
      c('Lincoln', 857),
      c('Lindsay', 883),
      c('Lloyd', 46),
      c('Logan', 5063),
      c('Louis', 863),
      c('Luca', 1318),
      c('Lucas', 3329),
      c('Luka', 119),
      c('Lukas', 70),
      c('Luke', 8296),
      c('Malcolm', 2398),
      c('Marcus', 1129),
      c('Mark', 23154),
      c('Martin', 4260),
      c('Mason', 2613),
      c('Mathew', 3107),
      c('Matthew', 23181),
      c('Maurice', 385),
      c('Max', 3988),
      c('Maxwell', 172),
      c('Mervyn', 162),
      c('Micah', 52),
      c('Michael', 40099),
      c('Micheal', 49),
      c('Mitchell', 2730),
      c('Morgan', 58),
      c('Murray', 4843),
      c('Nate', 48),
      c('Nathan', 8920),
      c('Nathaniel', 329),
      c('Neil', 3392),
      c('Neville', 1268),
      c('Nicholas', 13132),
      c('Nigel', 4435),
      c('Nikau', 53),
      c('Nixon', 219),
      c('Noah', 3511),
      c('Noel', 778),
      c('Norman', 221),
      c('Oliver', 6515),
      c('Oscar', 1987),
      c('Owen', 484),
      c('Patrick', 6219),
      c('Paul', 22959),
      c('Peter', 23996),
      c('Philip', 7036),
      c('Phillip', 5977),
      c('Phoenix', 882),
      c('Quentin', 67),
      c('Quinn', 742),
      c('Raymond', 4404),
      c('Regan', 1182),
      c('Reuben', 1678),
      c('Rex', 561),
      c('Rhys', 967),
      c('Richard', 17664),
      c('Ricky', 806),
      c('Riley', 2771),
      c('Robert', 19791),
      c('Robin', 1431),
      c('Rodney', 1936),
      c('Roger', 2612),
      c('Roman', 429),
      c('Ronald', 1769),
      c('Rory', 220),
      c('Ross', 4823),
      c('Roy', 101),
      c('Russell', 2863),
      c('Ryan', 9965),
      c('Ryder', 727),
      c('Sam', 2347),
      c('Samuel', 15565),
      c('Scott', 9481),
      c('Sean', 5201),
      c('Sebastian', 1031),
      c('Seth', 780),
      c('Shane', 10213),
      c('Shannon', 1082),
      c('Shaun', 4397),
      c('Shayne', 296),
      c('Simon', 9846),
      c('Sione', 165),
      c('Spencer', 52),
      c('Stefan', 52),
      c('Stephen', 18603),
      c('Steven', 11007),
      c('Stewart', 499),
      c('Stuart', 4662),
      c('Taine', 204),
      c('Taylor', 1356),
      c('Terence', 1154),
      c('Terry', 860),
      c('Theo', 311),
      c('Theodore', 429),
      c('Thomas', 15382),
      c('Timothy', 10924),
      c('Toby', 1490),
      c('Todd', 1264),
      c('Tom', 47),
      c('Tony', 5670),
      c('Travis', 65),
      c('Trent', 524),
      c('Trevor', 3194),
      c('Tristan', 111),
      c('Troy', 2423),
      c('Tyler', 3765),
      c('Tyrone', 231),
      c('Tyson', 531),
      c('Vaughan', 322),
      c('Vincent', 907),
      c('Walter', 57),
      c('Warren', 3223),
      c('Warwick', 295),
      c('Wayne', 8542),
      c('William', 18322),
      c('Wyatt', 58),
      c('Xavier', 1879),
      c('Zac', 111),
      c('Zachary', 2569),
      c('Zane', 761),
      c('Zion', 217),
      c('Anaru', 735),
      c('Ari', 984),
      c('Ariki', 1178),
      c('Hemi', 1360),
      c('Hoani', 574),
      c('Ihaia', 476),
      c('Kahu', 700),
      c('Kahurangi', 939),
      c('Kauri', 1613),
      c('Manaaki', 574),
      c('Manaia', 1434),
      c('Manawa', 536),
      c('Matiu', 455),
      c('Mikaere', 1413),
      c('Nikau', 1942),
      c('Niko', 972),
      c('Nikora', 1766),
      c('Rawiri', 1553),
      c('Tai', 793),
      c('Tama', 1257),
      c('Tamati', 1766),
      c('Tane', 1698),
      c('Tangaroa', 605),
      c('Te Ariki', 1423),
      c('Te Koha', 537),
      c('Tiare', 476),
      c('Wiremu', 1923),

      c('Aaliyah', 1042),
      c('Abbey', 40),
      c('Abby', 503),
      c('Abigail', 2017),
      c('Addison', 538),
      c('Adrienne', 625),
      c('Aimee', 2315),
      c('Alana', 1194),
      c('Aleisha', 102),
      c('Alexandra', 2689),
      c('Alexis', 789),
      c('Alice', 3252),
      c('Alicia', 683),
      c('Alison', 3444),
      c('Alyssa', 1032),
      c('Amaia', 45),
      c('Amanda', 7667),
      c('Amber', 3661),
      c('Amelia', 4060),
      c('Amy', 7061),
      c('Anahera', 140),
      c('Andrea', 5003),
      c('Angel', 695),
      c('Angela', 9634),
      c('Angelina', 43),
      c('Anika', 46),
      c('Anita', 1526),
      c('Ann', 1834),
      c('Anna', 9371),
      c('Annabelle', 457),
      c('Anne', 3879),
      c('Annette', 2348),
      c('April', 49),
      c('Arabella', 42),
      c('Aria', 1025),
      c('Ariana', 473),
      c('Aroha', 50),
      c('Ashlee', 464),
      c('Ashleigh', 3158),
      c('Ashley', 2477),
      c('Aurora', 251),
      c('Ava', 2487),
      c('Ayla', 612),
      c('Bailey', 150),
      c('Barbara', 3531),
      c('Belinda', 1254),
      c('Bella', 1238),
      c('Beverley', 996),
      c('Billie', 45),
      c('Brenda', 2451),
      c('Briana', 49),
      c('Brianna', 740),
      c('Bridget', 1611),
      c('Britney', 64),
      c('Brittany', 1239),
      c('Bronwyn', 2406),
      c('Brooke', 3634),
      c('Brooklyn', 782),
      c('Caitlin', 3370),
      c('Caitlyn', 454),
      c('Carla', 323),
      c('Carmen', 233),
      c('Carol', 3626),
      c('Caroline', 2530),
      c('Carolyn', 3212),
      c('Casey', 1097),
      c('Cassandra', 489),
      c('Catherine', 7765),
      c('Chantelle', 55),
      c('Charlie', 215),
      c('Charlotte', 7759),
      c('Chelsea', 1943),
      c('Cherie', 1064),
      c('Cheryl', 1781),
      c('Cheyenne', 345),
      c('Chloe', 4582),
      c('Christina', 2675),
      c('Christine', 10604),
      c('Cindy', 65),
      c('Claire', 3174),
      c('Clara', 41),
      c('Clare', 55),
      c('Claudia', 804),
      c('Colleen', 1367),
      c('Courtney', 2941),
      c('Crystal', 828),
      c('Daisy', 197),
      c('Danielle', 4151),
      c('Dawn', 62),
      c('Debbie', 1389),
      c('Deborah', 8819),
      c('Debra', 3094),
      c('Denise', 3577),
      c('Destiny', 190),
      c('Diana', 977),
      c('Diane', 3952),
      c('Dianne', 2314),
      c('Donna', 7054),
      c('Dorothy', 303),
      c('Eden', 1578),
      c('Eilish', 52),
      c('Elaine', 381),
      c('Eleanor', 155),
      c('Elise', 48),
      c('Elizabeth', 11869),
      c('Ella', 5301),
      c('Ellen', 124),
      c('Ellie', 443),
      c('Elsie', 97),
      c('Emilia', 145),
      c('Emily', 7766),
      c('Emma', 13245),
      c('Erin', 1624),
      c('Esther', 88),
      c('Eva', 1637),
      c('Evelyn', 634),
      c('Evie', 419),
      c('Faith', 735),
      c('Fiona', 6039),
      c('Florence', 291),
      c('Frances', 1212),
      c('Frankie', 195),
      c('Freya', 218),
      c('Gabriella', 94),
      c('Gabrielle', 808),
      c('Gail', 1253),
      c('Gaylene', 82),
      c('Gemma', 2120),
      c('Georgia', 5613),
      c('Georgina', 786),
      c('Gillian', 1388),
      c('Gina', 301),
      c('Glenda', 859),
      c('Glenys', 410),
      c('Gloria', 127),
      c('Grace', 6036),
      c('Haley', 173),
      c('Hannah', 9082),
      c('Harmony', 300),
      c('Harper', 1186),
      c('Harriet', 210),
      c('Hayley', 4951),
      c('Hazel', 814),
      c('Heather', 4351),
      c('Heidi', 353),
      c('Helen', 7775),
      c('Holly', 4402),
      c('Hope', 142),
      c('Imogen', 293),
      c('Indi', 42),
      c('Indie', 494),
      c('Irene', 166),
      c('Isabel', 499),
      c('Isabella', 4257),
      c('Isabelle', 1182),
      c('Isla', 2246),
      c('Isobel', 85),
      c('Ivy', 577),
      c('Jacqueline', 5559),
      c('Jade', 3234),
      c('Jaime', 61),
      c('Jamie', 1066),
      c('Jan', 1587),
      c('Jane', 4932),
      c('Janet', 2253),
      c('Janette', 69),
      c('Janice', 1881),
      c('Janine', 2641),
      c('Jasmine', 3786),
      c('Jean', 64),
      c('Jeanette', 900),
      c('Jemma', 200),
      c('Jenna', 1162),
      c('Jennifer', 9991),
      c('Jessica', 12989),
      c('Jessie', 1123),
      c('Jill', 455),
      c('Jillian', 1571),
      c('Joan', 199),
      c('Joanna', 2716),
      c('Joanne', 9329),
      c('Jocelyn', 557),
      c('Jodi', 56),
      c('Jodie', 359),
      c('Jolene', 313),
      c('Jordan', 797),
      c('Jorja', 456),
      c('Josephine', 570),
      c('Joy', 487),
      c('Judith', 4677),
      c('Julia', 2092),
      c('Julie', 8289),
      c('Justine', 1127),
      c('Kaitlin', 45),
      c('Kaitlyn', 358),
      c('Karen', 13524),
      c('Karla', 62),
      c('Karyn', 429),
      c('Kate', 5782),
      c('Katelyn', 294),
      c('Katherine', 3912),
      c('Kathleen', 2503),
      c('Kathryn', 5104),
      c('Katie', 3455),
      c('Katrina', 3184),
      c('Kay', 1205),
      c('Kaye', 227),
      c('Kayla', 2806),
      c('Keira', 759),
      c('Kellie', 66),
      c('Kelly', 6137),
      c('Kelsey', 718),
      c('Kerry', 1917),
      c('Khloe', 98),
      c('Kim', 5667),
      c('Kimberley', 1578),
      c('Kiri', 130),
      c('Kirsten', 1183),
      c('Kirsty', 2083),
      c('Kristy', 172),
      c('Krystal', 650),
      c('Kyla', 41),
      c('Kylie', 3692),
      c('Laura', 4669),
      c('Lauren', 3275),
      c('Layla', 536),
      c('Leah', 1894),
      c('Leanne', 3478),
      c('Leonie', 52),
      c('Lesley', 1453),
      c('Libby', 48),
      c('Lilly', 813),
      c('Lily', 3546),
      c('Linda', 6288),
      c('Lisa', 11891),
      c('Lois', 278),
      c('Lola', 343),
      c('Lorraine', 1675),
      c('Louise', 4580),
      c('Lucia', 235),
      c('Lucy', 4938),
      c('Luna', 53),
      c('Lydia', 335),
      c('Lynda', 1972),
      c('Lynette', 3666),
      c('Lynley', 228),
      c('Lynn', 53),
      c('Lynne', 1025),
      c('Lynnette', 120),
      c('MacKenzie', 67),
      c('Mackenzie', 1039),
      c('Maddison', 1846),
      c('Madeleine', 780),
      c('Madeline', 184),
      c('Madison', 3128),
      c('Maia', 1937),
      c('Manaia', 204),
      c('Maree', 2270),
      c('Margaret', 5517),
      c('Maria', 5541),
      c('Marian', 60),
      c('Marie', 2582),
      c('Marilyn', 546),
      c('Marion', 370),
      c('Mary', 5891),
      c('Matilda', 570),
      c('Maureen', 1099),
      c('Maya', 432),
      c('Megan', 5869),
      c('Melanie', 4476),
      c('Melissa', 6898),
      c('Mia', 2627),
      c('Michaela', 687),
      c('Michele', 1082),
      c('Michelle', 12961),
      c('Mikaela', 48),
      c('Mikayla', 1492),
      c('Mila', 1139),
      c('Millie', 711),
      c('Molly', 1590),
      c('Monica', 56),
      c('Monique', 1859),
      c('Morgan', 646),
      c('Mya', 352),
      c('Nadine', 126),
      c('Naomi', 421),
      c('Natalie', 4112),
      c('Natasha', 5533),
      c('Nevaeh', 673),
      c('Ngaire', 116),
      c('Niamh', 49),
      c('Nicola', 10395),
      c('Nicole', 6011),
      c('Nikita', 1263),
      c('Nikki', 57),
      c('Nina', 379),
      c('Olive', 525),
      c('Olivia', 8816),
      c('Paige', 3719),
      c('Pamela', 2677),
      c('Paris', 551),
      c('Patricia', 5007),
      c('Paula', 3667),
      c('Pauline', 2404),
      c('Payton', 44),
      c('Penelope', 1213),
      c('Peyton', 621),
      c('Philippa', 1359),
      c('Phoebe', 1380),
      c('Piper', 580),
      c('Pippa', 416),
      c('Poppy', 842),
      c('Quinn', 213),
      c('Rachael', 3210),
      c('Rachel', 9769),
      c('Rachelle', 64),
      c('Raewyn', 3039),
      c('Rebecca', 11608),
      c('Rebekah', 1255),
      c('Renee', 3387),
      c('Rhonda', 131),
      c('Riley', 676),
      c('Robyn', 5598),
      c('Rochelle', 2086),
      c('Rose', 1384),
      c('Rosemary', 1918),
      c('Ruby', 4332),
      c('Ruth', 1616),
      c('Sadie', 151),
      c('Sally', 2445),
      c('Samantha', 7549),
      c('Sandra', 7429),
      c('Sara', 1121),
      c('Sarah', 19901),
      c('Sasha', 44),
      c('Savannah', 443),
      c('Scarlett', 1045),
      c('Shakira', 52),
      c('Shania', 338),
      c('Shannon', 2446),
      c('Sharlene', 220),
      c('Sharon', 7243),
      c('Shelley', 2569),
      c('Sheree', 169),
      c('Sheryl', 1688),
      c('Shirley', 1673),
      c('Shona', 1210),
      c('Sienna', 1358),
      c('Sinead', 53),
      c('Skye', 97),
      c('Skyla', 105),
      c('Skylar', 41),
      c('Sofia', 630),
      c('Sonia', 246),
      c('Sonya', 632),
      c('Sophia', 2595),
      c('Sophie', 7868),
      c('Stacey', 3037),
      c('Stella', 1323),
      c('Stephanie', 5794),
      c('Summer', 1477),
      c('Susan', 12686),
      c('Suzanne', 4705),
      c('Tamara', 312),
      c('Tania', 6879),
      c('Tanya', 1595),
      c('Tara', 503),
      c('Tayla', 1823),
      c('Taylor', 1499),
      c('Tegan', 318),
      c('Teresa', 2294),
      c('Tessa', 1439),
      c('Thea', 279),
      c('Tiana', 388),
      c('Tina', 2124),
      c('Toni', 2572),
      c('Tori', 50),
      c('Tracey', 6914),
      c('Tracy', 3999),
      c('Trinity', 401),
      c('Tyla', 98),
      c('Valerie', 394),
      c('Vanessa', 3941),
      c('Vicki', 3171),
      c('Vicky', 198),
      c('Victoria', 4823),
      c('Violet', 506),
      c('Virginia', 54),
      c('Vivienne', 802),
      c('Wendy', 6832),
      c('Whitney', 50),
      c('Willow', 743),
      c('Yvonne', 1822),
      c('Zara', 1292),
      c('Zoe', 3973),
      c('Zoey', 165),
      c('Amaia', 667),
      c('Ana', 730),
      c('Anahera', 1760),
      c('Anika', 1432),
      c('Aria', 1960),
      c('Ariana', 1729),
      c('Aroha', 1796),
      c('Ataahua', 876),
      c('Awhina', 583),
      c('Hana', 536),
      c('Hinewai', 536),
      c('Huia', 528),
      c('Kahurangi', 730),
      c('Kaia', 1576),
      c('Kora', 878),
      c('Mahi', 556),
      c('Maia', 1960),
      c('Manaia', 912),
      c('Maraea', 703),
      c('Mareikura', 948),
      c('Mereana', 637),
      c('Miriama', 614),
      c('Nia', 667),
      c('Ria', 703),
      c('Terina', 528),
      c('Tia', 1695),
      c('Tiare', 671),
      c('Tui', 1251),
      c('Waimarie', 671),
      c('Wikitoria', 583)),


    # New Zealand surnames compiled (and cleaned up) from the following sources:
    #
    # NZ Cemetery plot data:
    #    https://catalogue.data.govt.nz/dataset?q=cemetery+plots

    last_names = list(
      c('Smith', 948),
      c('Anderson', 394),
      c('Jones', 386),
      c('Taylor', 364),
      c('Brown', 350),
      c('Williams', 337),
      c('Thompson', 295),
      c('Scott', 266),
      c('Harris', 253),
      c('Mitchell', 217),
      c('Thomas', 214),
      c('Campbell', 193),
      c('Jackson', 191),
      c('Stewart', 188),
      c('Martin', 186),
      c('Turner', 174),
      c('Moore', 173),
      c('Simpson', 171),
      c('Hart', 166),
      c('Bell', 163),
      c('Evans', 161),
      c('Hansen', 160),
      c('Gray', 156),
      c('Henderson', 155),
      c('Edwards', 153),
      c('McDonald', 152),
      c('Davis', 150),
      c('Ward', 150),
      c('Cameron', 149),
      c('Wood', 149),
      c('MacDonald', 148),
      c('Reid', 140),
      c('Cook', 138),
      c('Bailey', 137),
      c('Adams', 136),
      c('Mason', 136),
      c('Baker', 135),
      c('Green', 134),
      c('Jensen', 134),
      c('Parker', 132),
      c('Neal', 131),
      c('Russell', 131),
      c('Carter', 128),
      c('Allen', 127),
      c('Roberts', 127),
      c('Knight', 126),
      c('Morgan', 126),
      c('Murphy', 126),
      c('Miller', 124),
      c('Morris', 124),
      c('McKay', 122),
      c('Morrison', 121),
      c('Wallace', 121),
      c('Stevens', 119),
      c('Johnston', 113),
      c('Jenkins', 111),
      c('Lewis', 110),
      c('Davies', 109),
      c('Oliver', 109),
      c('Ryan', 109),
      c('Marshall', 108),
      c('Webb', 108),
      c('Patchett', 107),
      c('Hughes', 106),
      c('Graham', 104),
      c('Wells', 104),
      c('Harrison', 103),
      c('Larsen', 103),
      c('Matthews', 103),
      c('Phillips', 102),
      c('Clarke', 100),
      c('Gibson', 99),
      c('Lucas', 99),
      c('Price', 97),
      c("O'Sullivan", 96),
      c('Barnes', 94),
      c('Gardiner', 92),
      c('Richards', 91),
      c('Boyce', 90),
      c('Duncan', 89),
      c('Fisher', 89),
      c('Gill', 89),
      c("O'Brien", 89),
      c('Gordon', 88),
      c('Olsen', 88),
      c('Powell', 86),
      c('Black', 85),
      c('Kennedy', 85),
      c('Dixon', 84),
      c('Jamieson', 84),
      c("O'Connor", 84),
      c('Sinclair', 84),
      c('Perry', 83),
      c('Williamson', 83),
      c('Day', 82),
      c('Pedersen', 81),
      c('Currie', 80),
      c('Grant', 80),
      c('Rush', 80),
      c('McEwen', 79),
      c('Wilton', 79),
      c('Kelly', 78),
      c('Nicholson', 77),
      c('Coleman', 76),
      c('Davidson', 76),
      c('Gardner', 76),
      c('Saunders', 76),
      c('Rogers', 75),
      c('Bryant', 74),
      c('Ferguson', 74),
      c('Ford', 73),
      c('Fowler', 73),
      c('McLean', 73),
      c('Holland', 72),
      c('Lloyd', 72),
      c('Page', 72),
      c('Francis', 71),
      c('Smart', 71),
      c('Weston', 71),
      c('Chapman', 70),
      c('Crawford', 70),
      c('Shaw', 70),
      c('Sullivan', 70),
      c('Webster', 70),
      c('Millar', 69),
      c('Burton', 68),
      c('Fuller', 68),
      c('Hamilton', 68),
      c('West', 68),
      c('Burns', 67),
      c('Cox', 67),
      c('Cresswell', 67),
      c('Holdaway', 67),
      c('Hodson', 66),
      c('Kerr', 66),
      c('Brooks', 64),
      c('Fletcher', 64),
      c('McCallum', 64),
      c('Allan', 63),
      c('Buchanan', 63),
      c('Carr', 63),
      c('Lee', 63),
      c('Pickering', 63),
      c('Pope', 63),
      c('Rowe', 63),
      c('Woolley', 63),
      c('McLeod', 62),
      c('Barnett', 61),
      c('Berry', 61),
      c('Lane', 61),
      c('Tapp', 61),
      c('Bartlett', 60),
      c('Elliott', 60),
      c('Pearson', 60),
      c('Wilkinson', 60),
      c('Atkinson', 59),
      c('Butler', 59),
      c('Douglas', 59),
      c('Pratt', 59),
      c('Cole', 58),
      c('Hayward', 58),
      c('Little', 58),
      c('Newman', 58),
      c('Simmons', 58),
      c('Barrett', 57),
      c('Cooksley', 57),
      c('Freeman', 57),
      c('Higgins', 57),
      c('Hope', 57),
      c('McGregor', 57),
      c('McMillan', 57),
      c('Rose', 57),
      c('Sutton', 57),
      c('Wong', 57),
      c('Harper', 56),
      c('Osborne', 56),
      c('Stevenson', 56),
      c('Bird', 55),
      c('Boyd', 55),
      c('Dick', 55),
      c('Field', 55),
      c('Greer', 55),
      c('Greig', 55),
      c('Nielsen', 55),
      c('Reynolds', 55),
      c('Forrest', 54),
      c('Bradley', 53),
      c('Gibbons', 53),
      c('Howard', 53),
      c('MacKenzie', 53),
      c('Nelson', 53),
      c('Todd', 53),
      c('Waters', 53),
      c('Ball', 52),
      c('Davey', 52),
      c('Holmes', 52),
      c('Rodgers', 52),
      c('Stratford', 52),
      c('Griffiths', 51),
      c('Small', 51),
      c('Watt', 51),
      c('Andrew', 50),
      c('Bishop', 50),
      c('Dunn', 50),
      c('Goodwin', 50),
      c('Gore', 50),
      c('Healy', 50),
      c('May', 50),
      c('Munro', 50),
      c('Parsons', 50),
      c('Poole', 50),
      c('Watts', 50),
      c('Hills', 49),
      c('Peters', 49),
      c('Vercoe', 49),
      c('Armstrong', 48),
      c('Bright', 48),
      c('Burgess', 48),
      c('Collis', 48),
      c("O'Neill", 48),
      c('Spencer', 48),
      c('Ritchie', 47),
      c('Alexander', 46),
      c('Curtis', 46),
      c('Freeth', 46),
      c('Nicol', 46),
      c('Robson', 46),
      c('Satherley', 46),
      c('Stuart', 46),
      c('Waugh', 46),
      c('Woods', 46),
      c('Coley', 45),
      c('Fitzgerald', 45),
      c('Fleming', 45),
      c('Herd', 45),
      c('Morton', 45),
      c('Beattie', 44),
      c('Clifford', 44),
      c('Costello', 44),
      c('Dawson', 44),
      c('Donaldson', 44),
      c('Fox', 44),
      c('Hay', 44),
      c('Jellyman', 44),
      c('Joe', 44),
      c('Johansen', 44),
      c('Knowles', 44),
      c('Lawson', 44),
      c("O'Donnell", 44),
      c('Patterson', 44),
      c('Payne', 44),
      c('Read', 44),
      c('Casey', 43),
      c('Chandler', 43),
      c('Donald', 43),
      c('Gilchrist', 43),
      c('Hyde', 43),
      c('McIntosh', 43),
      c('Paton', 43),
      c('Robb', 43),
      c('Rutherford', 43),
      c('Pike', 42),
      c('Dillon', 41),
      c('Drummond', 41),
      c('Hickey', 41),
      c('Hooper', 41),
      c('Jordan', 41),
      c('Judd', 41),
      c('Kenny', 41),
      c('Low', 41),
      c('Marfell', 41),
      c('Newton', 41),
      c("O'Leary", 41),
      c('Tucker', 41),
      c('Carson', 40),
      c('Dean', 40),
      c('Dickson', 40),
      c('George', 40),
      c('Ham', 40),
      c('McCarthy', 40),
      c('McIntyre', 40),
      c('Moran', 40),
      c("O'Connell", 40),
      c('Parkes', 40),
      c('Short', 40),
      c('Barr', 39),
      c('Baxter', 39),
      c('Dalton', 39),
      c('Forbes', 39),
      c('Hawkins', 39),
      c('Ireland', 39),
      c('Miles', 39),
      c('Nash', 39),
      c('Owen', 39),
      c('Perano', 39),
      c('Sowman', 39),
      c('Whyte', 39),
      c('Bush', 38),
      c('Drake', 38),
      c('Eden', 38),
      c('Giles', 38),
      c('Hoare', 38),
      c('Hubbard', 38),
      c('Hudson', 38),
      c('MacKay', 38),
      c('McKinnon', 38),
      c('Mears', 38),
      c('Prentice', 38),
      c('Schwass', 38),
      c('Simonsen', 38),
      c('Walton', 38),
      c('Wheeler', 38),
      c('Wratt', 38),
      c('Avery', 37),
      c('Barker', 37),
      c('Blake', 37),
      c('Conway', 37),
      c('Holloway', 37),
      c('Horton', 37),
      c('Manning', 37),
      c('Nolan', 37),
      c('Pritchard', 37),
      c('Bishell', 36),
      c('Blair', 36),
      c('Christiansen', 36),
      c('Fulton', 36),
      c('Gibbs', 36),
      c('Griffin', 36),
      c('Hook', 36),
      c('McGill', 36),
      c('Mercer', 36),
      c('Middleton', 36),
      c('Rayner', 36),
      c('Stone', 36),
      c('Terry', 36),
      c('Walsh', 36),
      c('Craig', 35),
      c('Craven', 35),
      c('Ellery', 35),
      c('Findlay', 35),
      c('Maxwell', 35),
      c('North', 35),
      c('Reardon', 35),
      c('Tait', 35),
      c('Baldwin', 34),
      c('Butcher', 34),
      c('Caldwell', 34),
      c('Doyle', 34),
      c('Eaton', 34),
      c('Flood', 34),
      c('Gifford', 34),
      c('Guy', 34),
      c('Jennings', 34),
      c('Leslie', 34),
      c('McMahon', 34),
      c('McNabb', 34),
      c('Paterson', 34),
      c('Porter', 34),
      c('Reeves', 34),
      c('Seymour', 34),
      c('Trask', 34),
      c('Warren', 34),
      c('Watkins', 34),
      c('Wills', 34),
      c('Best', 33),
      c('Bull', 33),
      c('Dawick', 33),
      c('Dobson', 33),
      c('Gledhill', 33),
      c('Hardy', 33),
      c('Hayes', 33),
      c('Kendall', 33),
      c('McCormick', 33),
      c('McPherson', 33),
      c('Pollard', 33),
      c('Rasmussen', 33),
      c('Shailer', 33),
      c('Shepherd', 33),
      c('Sheridan', 33),
      c('Simmonds', 33),
      c('Steele', 33),
      c('Booth', 32),
      c('Edmonds', 32),
      c('Gunn', 32),
      c('Hood', 32),
      c('Humphrey', 32),
      c('Hutchinson', 32),
      c('Laurenson', 32),
      c('Long', 32),
      c('Lowe', 32),
      c('Manson', 32),
      c('McGrath', 32),
      c('McKenna', 32),
      c('Muir', 32),
      c("O'Keefe", 32),
      c('Potter', 32),
      c('Searle', 32),
      c('Stubbs', 32),
      c('Wall', 32),
      c('Wallis', 32),
      c('Browne', 31),
      c('Carroll', 31),
      c('Cunningham', 31),
      c('Foley', 31),
      c('Franklin', 31),
      c('Furness', 31),
      c('Gilbert', 31),
      c('Hopkins', 31),
      c('Jefferies', 31),
      c('Johnstone', 31),
      c('Linton', 31),
      c('Mann', 31),
      c('Norton', 31),
      c('Rees', 31),
      c('Rowlands', 31),
      c('Sanders', 31),
      c('Bond', 30),
      c('Chambers', 30),
      c('Cragg', 30),
      c('Davison', 30),
      c('Gee', 30),
      c('Gleeson', 30),
      c('Gullery', 30),
      c('Hadfield', 30),
      c('Haines', 30),
      c('Hepburn', 30),
      c('Howell', 30),
      c('Jeffries', 30),
      c('Lamb', 30),
      c('Law', 30),
      c('MacPherson', 30),
      c('McIsaac', 30),
      c('Millard', 30),
      c('Paul', 30),
      c('Pearce', 30),
      c('Prouse', 30),
      c('Ramsay', 30),
      c('Rowland', 30),
      c('Spelman', 30),
      c('Waghorn', 30),
      c('Willis', 30),
      c('Zimmerman', 30),
      c('Aitken', 29),
      c('Booker', 29),
      c('Bruce', 29),
      c('Burrell', 29),
      c('Burt', 29),
      c('Funnell', 29),
      c('Gilmore', 29),
      c('Guthrie', 29),
      c('Hewitt', 29),
      c('Hogg', 29),
      c('Lammas', 29),
      c('Lang', 29),
      c('Lyons', 29),
      c('McDowall', 29),
      c('Neilson', 29),
      c('Norman', 29),
      c('Reed', 29),
      c('Rickard', 29),
      c('Stokes', 29),
      c('Stratton', 29),
      c('Strawbridge', 29),
      c('York', 29),
      c('Alve', 28),
      c('Baldick', 28),
      c('Banks', 28),
      c('Beard', 28),
      c('Bowden', 28),
      c('Boyle', 28),
      c('Carpenter', 28),
      c('Connolly', 28),
      c('Cooke', 28),
      c('Craw', 28),
      c('Cumming', 28),
      c('Drew', 28),
      c('Fairhall', 28),
      c('Gillespie', 28),
      c('Gillies', 28),
      c('Healey', 28),
      c('Horn', 28),
      c('Ingram', 28),
      c('Knox', 28),
      c('Lancaster', 28),
      c('Landon-Lane', 28),
      c('Marsh', 28),
      c('Mortimer', 28),
      c('Riley', 28),
      c('Sixtus', 28),
      c('Turnbull', 28),
      c('Warner', 28),
      c('Aldridge', 27),
      c('Allerby', 27),
      c('Arnold', 27),
      c('Blackwell', 27),
      c('Blick', 27),
      c('Boon', 27),
      c('Bowater', 27),
      c('Broughan', 27),
      c('Davenport', 27),
      c('Foote', 27),
      c('Forsyth', 27),
      c('Laing', 27),
      c('Mayo', 27),
      c('McFarlane', 27),
      c('McMurray', 27),
      c('Monk', 27),
      c('Orr', 27),
      c('Procter', 27),
      c('Shannon', 27),
      c('Southee', 27),
      c('Stace', 27),
      c('Waller', 27),
      c('Webby', 27),
      c('Arnott', 26),
      c('Baird', 26),
      c('Bary', 26),
      c('Bassett', 26),
      c('Buckley', 26),
      c('Burke', 26),
      c('Claridge', 26),
      c('Clunies-Ross', 26),
      c('Croad', 26),
      c('Dyer', 26),
      c('Ewart', 26),
      c('Faulkner', 26),
      c('Fenton', 26),
      c('Gibb', 26),
      c('Huddleston', 26),
      c('Jarvis', 26),
      c('Kay', 26),
      c('Kemp', 26),
      c('McLachlan', 26),
      c('Middlemiss', 26),
      c('Moody', 26),
      c('Mudgway', 26),
      c('Nicholas', 26),
      c('Reader', 26),
      c('Robert', 26),
      c('Steer', 26),
      c('Thornton', 26),
      c('Toms', 26),
      c('Twidle', 26),
      c('Vincent', 26),
      c('Way', 26),
      c('Whittaker', 26),
      c('Batchelar', 25),
      c('Boniface', 25),
      c('Botham', 25),
      c('Buick', 25),
      c('Burnett', 25),
      c('Ching', 25),
      c('Christie', 25),
      c('Corlett', 25),
      c('Coutts', 25),
      c('Eglinton', 25),
      c('Enright', 25),
      c('Foot', 25),
      c('Frost', 25),
      c('Gaskin', 25),
      c('Hanson', 25),
      c('Hardie', 25),
      c('Henry', 25),
      c('Hoskins', 25),
      c('Lambert', 25),
      c('Learmonth', 25),
      c('Logan', 25),
      c('Matheson', 25),
      c('McManaway', 25),
      c('Meads', 25),
      c('Meredith', 25),
      c('Montgomery', 25),
      c('Murdoch', 25),
      c('Orchard', 25),
      c('Perrin', 25),
      c('Peterson', 25),
      c('Priest', 25),
      c('Rossiter', 25),
      c('Shand', 25),
      c('Skinner', 25),
      c('Soper', 25),
      c('Street', 25),
      c('Tanner', 25),
      c('Aberhart', 24),
      c('Berkahn', 24),
      c('Burr', 24),
      c('Cairns', 24),
      c('Corbett', 24),
      c('Dalziel', 24),
      c('Doherty', 24),
      c('Esson', 24),
      c('Farland', 24),
      c('Godfrey', 24),
      c('Guard', 24),
      c('Hume', 24),
      c('Irving', 24),
      c('Jacques', 24),
      c('Kirk', 24),
      c('Love', 24),
      c('Lyon', 24))
  )
)

## address -----------------------------------------
address_en_NZ = R6Class(
  "address_en_NZ",
  inherit = address_en,
  cloneable = FALSE,
  private = list(
    locale = "en_NZ",
    city_prefixes = c(
      'North',
      'East',
      'West',
      'South',
      'New',
      'Lake',
      'Port',
      'Upper',
      'Lower',
      'High',
      'Mount'),

    city_suffixes = c(
      'town', 'ton', 'land', 'ville', 'berg', 'burgh',
      'borough', 'bury', 'burn', 'ing', 'port',
      'mouth', 'stone', 'ings', 'mouth', 'fort',
      'haven', 'leigh', 'side', 'gate', 'neath',
      'side', ' Flats', ' Hill'),

    building_number_formats = c('%##', '%#', '%'),

    street_suffixes = c(
      # Most common:
      'Arcade', 'Arcade', 'Arcade',
      'Avenue', 'Avenue', 'Avenue', 'Avenue',
      'Avenue', 'Avenue', 'Avenue', 'Avenue',
      'Beach Road', 'Beach Road', 'Beach Road', 'Beach Road',
      'Crescent', 'Crescent', 'Crescent', 'Crescent', 'Crescent',
      'Drive', 'Drive', 'Drive', 'Drive',
      'Mews', 'Mews', 'Mews',
      'Place', 'Place', 'Place', 'Place',
      'Range Road', 'Range Road',
      'Road', 'Road', 'Road', 'Road', 'Road',
      'Road', 'Road', 'Road', 'Road',
      'Street', 'Street', 'Street', 'Street',
      'Street', 'Street', 'Street',
      'Street', 'Street', 'Street', 'Street',
      'Street', 'Street', 'Street',
      'Street', 'Street', 'Street', 'Street',
      'Street', 'Street', 'Street',
      'Terrace', 'Terrace', 'Terrace',
      'Way', 'Way', 'Way',

      # Other:
      'Access', 'Alley', 'Alleyway',
      'Amble', 'Anchorage', 'Approach',
      'Broadway', 'Bypass', 'Causeway', 'Centre',
      'Circle', 'Circuit', 'Close', 'Concourse',
      'Copse', 'Corner', 'Court', 'Cove',
      'Crest', 'Cross', 'Crossing', 'Cutting',
      'Esplanade', 'Flats', 'Gardens', 'Grove',
      'Heights', 'Highway', 'Lane', 'Line', 'Keys',
      'Parade', 'Park', 'Pass', 'Plaza', 'Point',
      'Quay', 'Reserve', 'Ridge', 'Rise',
      'Square', 'Track', 'Trail', 'View'),


    te_reo_parts = c(
      'ara',
      'awa',
      'horo',
      'kawa',
      'koro',
      'kowhai',
      'manawa',
      'mata',
      'maunga',
      'moko',
      'motu',
      'ngauru',
      'pa',
      'papa',
      'po',
      'puke',
      'rangi',
      'rohe',
      'rongo',
      'roto',
      'tahi',
      'tai',
      'tangi',
      'tau',
      'tere',
      'tipu',
      'wai',
      'waka',
      'whaka',
      'whanga',
      'whare',
      'weka'),


    te_reo_endings = c(
      'hanga',
      'hope',
      'iti',
      'iti',
      'kiwi',
      'makau',
      'nui',
      'nui',
      'nui',
      'nuku',
      'roa',
      'rua',
      'tanga',
      'tapu',
      'toa',
      'whenua',
      'whero',
      'whitu'),

    postcode_formats = c(
      # as per https://en.wikipedia.org/wiki/Postcodes_in_New_Zealand
      # Northland
      '0%##',
      # Auckland
      '1###',
      '20##',
      '21##',
      '22##',
      '23##',
      '24##',
      '25##',
      '26##',
      # Central North Island
      '3###',
      '4###',
      # Lower North Island
      '50##',
      '51##',
      '52##',
      '53##',
      '55##',
      '57##',
      '58##',
      # Wellington
      '60##',
      '61##',
      '62##',
      '64##',
      '69##',
      # Upper South Island
      '7###',
      # Christchurch
      '80##',
      '81##',
      '82##',
      '84##',
      '85##',
      '86##',
      '88##',
      '89##',
      # Southland
      '90##',
      '92##',
      '93##',
      '94##',
      '95##',
      '96##',
      '97##',
      '98##'),

    city_formats = c(
      '{first_name}{city_suffix}',
      '{last_name}{city_suffix}',
      '{last_name}{city_suffix}',
      '{last_name}{city_suffix}',
      '{last_name}{city_suffix}',
      '{last_name}{city_suffix}',
      '{city_prefix} {last_name}{city_suffix}',
      '{te_reo_first}{te_reo_ending}',
      '{te_reo_first}{te_reo_ending}',
      '{te_reo_first}{te_reo_ending}',
      '{te_reo_first}{te_reo_ending}',
      '{te_reo_first}{te_reo_part}{te_reo_ending}',
      '{te_reo_first}{te_reo_part}{te_reo_ending}'),

    street_name_formats = c(
      '{first_name} {street_suffix}',
      '{last_name} {street_suffix}',
      '{last_name} {street_suffix}',
      '{last_name} {street_suffix}',
      '{last_name}-{last_name} {street_suffix}',
      '{te_reo_first}{te_reo_ending} {street_suffix}',
      '{te_reo_first}{te_reo_ending} {street_suffix}',
      '{te_reo_first}{te_reo_part}{te_reo_ending} {street_suffix}'),

    street_address_formats = c(
      '{building_number} {street_name}',
      '{building_number} {street_name}',
      '{building_number} {street_name}',
      '{building_number} {street_name}\nRD {rd_number}',
      '{secondary_address}\n{building_number} {street_name}',
      'PO Box {building_number}'),

    first_names = (person_en_NZ$new())$.__enclos_env__$private$first_names,
    first_name = (person_en_NZ$new())$first_name,
    last_names = (person_en_NZ$new())$.__enclos_env__$private$last_names,
    last_name = (person_en_NZ$new())$last_name,


    address_formats = "{street_address}\n{city} {postcode}",

    secondary_address_formats = c(
      'Apt. %##',
      'Flat %#',
      'Suite %##',
      'Unit %#',
      'Level %')
  ),

  public = list(

    state = function() {
      # New Zealand does not have states.
      return("")
    },

    te_reo_part = function() {
      return(private$random_element(private$te_reo_parts))
    },

    te_reo_first = function(){
      return(str_to_title(self$te_reo_part(), locale = private$locale)
      )
    },

    te_reo_ending = function() {
      return(private$random_element(c(private$te_reo_parts, private$te_reo_endings)))
    },

    city_prefix = function(){
      return(private$random_element(private$city_prefixes))
    },

    city_suffix = function(){
      return(private$random_element(private$city_suffixes))
    },

    rd_number = function() {
      return(sample(as.character(seq(10)), 1))
    },

    secondary_address = function(){
      temp = private$random_element(private$secondary_address_formats)
      return(private$numerify(temp))
    }
  )
)
## phone_number ------------------
phone_number_en_NZ = R6Class(
  "phone_number_en_NZ",
  inherit = phone_number_init,
  cloneable = FALSE,
  private = list(
    formats = c(
      # Local calls
      '%## ####',
      '%##-####',
      '%######',
      # National & Mobile dialing
      '0{area_code} %## ####',
      '0{area_code} %##-####',
      '0{area_code}-%##-####',
      '0{area_code} %######',
      # Optional parenthesis
      '(0{area_code}) %## ####',
      '(0{area_code}) %##-####',
      '(0{area_code}) %######',
      # International drops the 0
      '+64 {area_code} %## ####',
      '+64 {area_code} %##-####',
      '+64 {area_code} %######',
      '+64-{area_code}-%##-####',
      '+64{area_code}%######'
    ),

    area_codes = c(
      # Mobiles
      '20',
      '21',
      '22',
      '27',
      '29',

      '3',  # South Island
      '4',  # Wellington
      '6',  # Lower North Island
      '7',  # Central North Island
      '9'  # Auckland
    )
  ),

  public = list(
    area_code = function() {
      temp = private$random_element(private$area_codes)
      return(private$numerify(temp))
    },

    phone_number = function() {
      pattern = private$random_element(private$formats)
      return(private$numerify(private$format_parse(pattern)))
    }
  )
)

## company -----------------
company_en_NZ = R6Class(
  "company_en_NZ",
  inherit = company_en_US,
  cloneable = FALSE,
  private = list(
    last_names = (person_en_NZ$new())$.__enclos_env__$private$last_names,
    last_name = (person_en_NZ$new())$last_name
  )
)
## credit_card -----------------
credit_card_en_NZ = R6Class(
  "credit_card_en_NZ",
  inherit = credit_card_init,
  cloneable = FALSE,
  private = list(
    first_names = (person_en_NZ$new())$.__enclos_env__$private$first_names,
    first_name = (person_en_NZ$new())$first_name,
    last_names = (person_en_NZ$new())$.__enclos_env__$private$last_names,
    last_name = (person_en_NZ$new())$last_name
  )
)



## internet -----------------
internet_en_NZ = R6Class(
  "internet_en_NZ",
  inherit = internet_en_US,
  cloneable = FALSE,
  private = list(
    first_names = (person_en_NZ$new())$.__enclos_env__$private$first_names,
    last_names = (person_en_NZ$new())$.__enclos_env__$private$last_names,
    first_name = (person_en_NZ$new())$first_name,
    last_name = (person_en_NZ$new())$last_name,

    free_email_domains = c(
      'gmail.com',
      'yahoo.com',
      'hotmail.com',
      'inspire.net.nz',
      'xtra.co.nz'
    ),

    tlds = c(
      'nz',
      'co.nz',
      'org.nz',
      'kiwi',
      'kiwi.nz',
      'geek.nz',
      'net.nz',
      'school.nz',
      'ac.nz',
      'maori.nz'
    )
  ),
  public = list(
    domain_word = function() {
      company = (company_en_NZ$new())$company()
      company_elements = str_split(company, " ")[[1]]
      company = private$to_ascii(company_elements[1])
      return(private$slugify(company, allow_unicode = TRUE))
    }
  )
)
## profile ------------------
profile_en_NZ = R6Class(
  "profile_en_NZ",
  inherit = profile_init,
  cloneable = FALSE,
  public = list(
    simple_profile = function(sex) {
      # Generates a basic profile with personal informations
      SEX = c("F", "M")
      if (missing(sex)) {
        sex = sample(SEX, 1)
      }
      if (!(sex %in% SEX)) {
        sex = sample(SEX, 1)
      }

      name = ifelse(sex == "F",
                    (person_en_NZ$new())$name_female(),
                    (person_en_NZ$new())$name_male())
      temp = list(
        "username" = (internet_en_NZ$new())$user_name(),
        "name" = name,
        "sex" = sex,
        "address" = (address_en_NZ$new())$address(),
        "mail" = (internet_en_NZ$new())$free_email(),
        "birthdate" = (date_time_init$new())$date_of_birth()
      )
      return(temp)
    },

    profile = function(fields, sex) {
      # Generates a complete profile.
      # If "fields" is not empty, only the fields in the list will be returned

      if (missing(fields)) fields = c()

      field = list(
        "job" = (job_init$new())$job(),
        "company" = (company_en_NZ$new())$company(),
        "ssn" = (ssn_en_US$new())$ssn(),
        "residence" = (address_en_NZ$new())$address(),
        "current_location" = c((geo_init$new())$latitude(),
                               (geo_init$new())$longitude()),
        "blood_group" = sample(c(
          "A+", "A-", "B+", "B-", "AB+", "AB-", "O+", "O-"), 1),
        "website" = replicate(sample(seq(4), 1), (internet_en_NZ$new())$url())
      )

      field = append(field, self$simple_profile(sex))
      # field selection

      if (length(fields)) {
        nms = intersect(names(field), fields)
        field = field[nms]
      }
      return(field)
    }

  )
)
LuYang19/faker documentation built on Jan. 3, 2020, 12:07 a.m.