extract-human-name 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract-human-name.cjs.js","names":[],"sources":["../author-splitter.ts","../constants.ts","../name-parser.ts","../common-names.ts","../human-names-db.ts","../is-organization.ts","../human-name-recognizer.ts"],"sourcesContent":["/**\n * Safely partitions a comprehensive author byline into discrete individual names.\n * Applies sophisticated token replacement and pattern recognition to discern standard splits.\n *\n * @param {string} authorString - The source byline string (e.g., \"John Doe, Jane Smith, and Alex Jones\").\n * @returns {string[]} An array containing individual un-parsed author name segments.\n */\nexport function splitMultipleAuthors(authorString: string): string[] {\n if (!authorString) return [];\n\n let normalized = authorString.replace(/\\s+et\\s+al\\.?/gi, \"\");\n\n // Pattern A: Last, First & Last, First Formats\n if (/\\w+,\\s*\\w+\\s*&\\s*\\w+,\\s*\\w+/.test(normalized)) {\n return normalized.split(/\\s*&\\s*/).filter(Boolean);\n }\n\n // Pattern B: Mixed comma + \"and\" series\n if (\n /\\w+,\\s*\\w+,\\s*\\w+,\\s*\\w+/.test(normalized) ||\n /\\w+\\s\\w+,\\s\\w+\\s\\w+/.test(normalized)\n ) {\n normalized = normalized.replace(/,\\s*(and|&)\\s*(?=[^,]*$)/i, \" & \");\n return normalized\n .split(/\\s*(?:,|&)\\s*(?=[^,]*(?:,|$))/)\n .map((s) => s.trim())\n .filter(Boolean);\n }\n\n // Pattern C: Standard \"and\" / \"&\" conjunction block\n if (/\\w+\\s\\w+\\s+(and|&)\\s+\\w+\\s\\w+/i.test(normalized)) {\n return normalized\n .split(/\\s+(?:and|&)\\s+/i)\n .map((s) => s.trim())\n .filter(Boolean);\n }\n\n // Fallback broad delimiter standardisation\n normalized = normalized\n .replace(/\\s+and\\s+/gi, \" & \")\n // Break on semi-colons and commas not enclosed by parenthesis blocks (e.g., degrees parsing fallback).\n .replace(/\\s*[,;]\\s*(?![^(]*\\))/g, \" & \");\n\n return normalized.split(/\\s*&\\s*/).filter((a) => a.trim().length > 0);\n}\n","/**\n * @fileoverview Constants and dictionaries for human name parsing and organization detection.\n */\n\n/**\n * Common organization terms used for heuristic detection.\n * Encoded as a `Set` for O(1) lookup performance.\n */\nexport const TERMS_ORG = new Set(\n (\"abc,ag,ap,academy,advisors,agency,airbnb,amazon,america,american,apple,associated,association,\" +\n \"atlantic,attorneys,authority,axel,bank,baptiste,bbc,bertelsmann,blackrock,bloomberg,bmw,boston,\" +\n \"broadcasting,bureau,business,buzzfeed,cambridge,capital,cbs,center,chase,chicago,china,church,citigroup,\" +\n \"clinic,club,cnn,coca-cola,college,commission,communications,condé,consulting,corp,corps,costco,daily,\" +\n \"department,der,deutsche,division,dow,economist,enterprises,eu,european,fabrication,facebook,fargo,\" +\n \"ferrari,financial,ford,forbes,fox,france,fund,gannett,general,global,globe,gm,gmbh,goldman,google,\" +\n \"group,guardian,harvard,hearst,herald,hill,holdings,home,honda,hospital,huffington,ibm,inc,industries,\" +\n \"institute,intel,international,investments,jazeera,japan,jones,jpmorgan,lancet,laboratories,law,legal,\" +\n \"linkedin,llc,los,ltd,manufacturing,macy's,mcdonald's,media,medical,mercedes-benz,meta,microsoft,ministry,\" +\n \"mit,morgan,mosque,msnbc,nast,national,nato,nbc,netflix,news,newsweek,new,nike,nordstrom,npr,ny,organization,\" +\n \"oxford,país,partners,pbs,pentagon,plc,politico,porsche,post,press,productions,r&d,regiment,retail,reuters,\" +\n \"research,rt,sachs,school,science,scientific,solutions,south,spacex,spiegel,springer,stanford,stanley,\" +\n \"starbucks,straits,studios,sydney,synagogue,systems,target,team,tech,techcrunch,temple,tesla,the,thomson,\" +\n \"times,toronto,toyota,trust,twitter,uber,union,united,university,usa,valley,vanguard,vice,volkswagen,volvo,\" +\n \"vox,wall,walmart,welle,wells,who,white,wired,worldwide,works,world,wsj,york,yorker,ipcc,un,unep,undp,unicef,\" +\n \"wto,imf,oecd,cia,fbi,nsa,epa,fda,cdc,nih,nasa,noaa,usgs,doe,dod,state,treasury,commerce,labor,education,\" +\n \"energy,interior,agriculture,transportation,housing,urban,development,veterans,affairs,homeland,security,\" +\n \"justice,defense,health,human,services,congressional,budget,office,cbo,government,accountability,gao,management,\" +\n \"omb,federal,reserve,fed,securities,exchange,sec,trade,ftc,sciences,nas,advancement,aaas,brookings,institution,\" +\n \"heritage,foundation,cato,aei,enterprise,rand,corporation,strategic,csis,peterson,economics,council,foreign,\" +\n \"relations,cfr,cnas,monetary,petroleum,exporting,countries,opec,north,treaty,african,asean,southeast,asian,\" +\n \"nations,g7,g8,g20,seven,eight,twenty,assembly,court,icj,criminal,icc,ilo,food,fao,unesco,cultural,\" +\n \"telecommunication,itu,meteorological,wmo,maritime,imo,civil,aviation,icao,atomic,iaea,prohibition,chemical,\" +\n \"weapons,opcw,comprehensive,nuclear,test,ban,ctbto,preparatory\").split(\",\"),\n);\n\n/**\n * Qualification terms that suggest a string refers to a person rather than an organization.\n * Encoded as a `Set` for O(1) lookup performance.\n */\nexport const TERMS_QUALIFICATIONS = new Set([\n \"is\",\n \"senior\",\n \"associate\",\n \"professor\",\n \"fellow\",\n \"assistant\",\n \"lecturer\",\n \"ceo\",\n \"staff\",\n \"strategist\",\n \"specialist\",\n \"worked\",\n \"directed\",\n \"correspondent\",\n \"president\",\n \"author\",\n \"director\",\n \"prof\",\n \"asst\",\n \"editor\",\n \"analyst\",\n \"degree\",\n \"administrator\",\n \"served\",\n \"member\",\n \"institute\",\n \"economist\",\n \"reporter\",\n \"head\",\n \"heads\",\n \"newspaper\",\n \"deputy\",\n \"advocate\",\n \"colonel\",\n \"officer\",\n \"founder\",\n \"founded\",\n \"visiting\",\n \"journalist\",\n \"former\",\n \"retired\",\n \"expert\",\n \"executive\",\n \"manager\",\n \"doctoral\",\n \"candidate\",\n \"chief\",\n \"contributor\",\n \"student\",\n \"blogger\",\n \"chair\",\n \"chairman\",\n \"major\",\n \"general\",\n \"ambassador\",\n \"phd\",\n \"secretary\",\n \"physicist\",\n \"engineer\",\n \"research\",\n \"office\",\n \"school\",\n \"department\",\n \"writer\",\n \"teacher\",\n \"advisor\",\n \"award\",\n \"center\",\n \"commentator\",\n \"rand\",\n \"brookings\",\n \"heritage\",\n \"cato\",\n \"un\",\n \"aei\",\n \"forbes\",\n \"nyt\",\n \"cbo\",\n]);\n\n/**\n * Professional qualification regex patterns to prune from author names before parsing.\n */\nexport const PROFESSIONAL_PATTERNS: RegExp[] = [\n /\\b(professor|prof|dr|doctor|phd|md|ms|mrs|mr|miss)\\b\\.?\\s*/gi,\n /\\b(senior|associate|assistant|visiting|emeritus|distinguished)\\s+(professor|fellow|lecturer|researcher|scientist|analyst|director|editor|writer|author|correspondent|reporter|journalist)\\b\\.?\\s*/gi,\n /\\b(political|economic|social|environmental|climate|energy|security|military|defense|foreign|international|public|health|medical|legal|business|financial|data|computer|software|artificial|intelligence|ai)\\s+(scientist|analyst|expert|specialist|researcher|scholar|fellow|consultant|advisor|director|manager|officer|correspondent|reporter|journalist|writer|author|editor|commentator|blogger)\\b\\.?\\s*/gi,\n /\\b(norwegian|american|british|canadian|german|french|chinese|japanese|russian|indian|brazilian|australian|european|asian|african|latin|middle|eastern|western|northern|southern)\\s+(political|economic|social|environmental|climate|energy|security|military|defense|foreign|international|public|health|medical|legal|business|financial|data|computer|software|artificial|intelligence|ai)\\s+(scientist|analyst|expert|specialist|researcher|scholar|fellow|consultant|advisor|director|manager|officer|correspondent|reporter|journalist|writer|author|editor|commentator|blogger)\\b\\.?\\s*/gi,\n /\\b(worked|served|directed|founded|established|created|developed|designed|built|managed|led|headed|chaired|presided|authored|wrote|published|edited|reported|covered|analyzed|studied|researched|investigated|examined|evaluated|assessed|reviewed|critiqued|commented|blogged|tweeted|posted)\\b\\.?\\s*/gi,\n /\\b(at|in|for|with|from|to|of|the|a|an)\\s+(university|college|institute|institution|organization|company|corporation|agency|department|ministry|government|congress|parliament|senate|house|assembly|council|board|committee|commission|foundation|center|centre|lab|laboratory|research|think|tank|policy|strategy|consulting|advisory|media|news|press|publication|journal|magazine|newspaper|website|blog|podcast|tv|television|radio|broadcast|network|channel|station|service|bureau|office|headquarters|hq|main|central|regional|local|national|international|global|worldwide|federal|state|provincial|municipal|city|town|village|community|society|association|union|federation|alliance|partnership|collaboration|cooperation|joint|shared|common|public|private|non-profit|nonprofit|ngo|charity|philanthropic|educational|academic|scholarly|scientific|technical|professional|commercial|business|corporate|industrial|financial|economic|political|social|cultural|environmental|climate|energy|security|military|defense|foreign|international|public|health|medical|legal|business|financial|data|computer|software|artificial|intelligence|ai)\\b\\.?\\s*/gi,\n /[,;]\\s*[^,;]*$/,\n /\\s+&\\s+[^&]*$/,\n /\\s+and\\s+[^and]*$/i,\n /\\s+(political|economic|social|environmental|climate|energy|security|military|defense|foreign|international|public|health|medical|legal|business|financial|data|computer|software|artificial|intelligence|ai)\\s+(scientist|analyst|expert|specialist|researcher|scholar|fellow|consultant|advisor|director|manager|officer|correspondent|reporter|journalist|writer|author|editor|commentator|blogger)\\b.*$/gi,\n];\n\n/**\n * Common organizational regex patterns for detection.\n */\nexport const ORG_PATTERNS: RegExp[] = [\n /\\b(inc|ltd|llc|corp|corporation|company|co\\.?|group|associates|partners|consulting|services|solutions|systems|technologies|international|global|worldwide|national|federal|state|local|department|ministry|agency|bureau|office|commission|committee|council|board|institute|foundation|center|centre|organization|association|society|union|federation|alliance|coalition)\\b/i,\n /\\b(united|american|british|canadian|european|international|world|global|national|federal|state|local)\\s+(states|kingdom|nations|organization|union|federation|government|department|ministry|agency|bureau|office|commission|committee|council|board|institute|foundation|center|centre|association|society)\\b/i,\n /\\b(intergovernmental|governmental|non-governmental|nonprofit|non-profit|charitable|philanthropic|educational|academic|research|scientific|technical|professional|commercial|business|corporate|industrial|financial|economic|political|social|cultural|environmental|climate|energy|security|military|defense|foreign|international|public|health|medical|legal|data|computer|software|artificial|intelligence|ai)\\s+(panel|committee|commission|council|board|institute|foundation|center|centre|organization|association|society|union|federation|alliance|coalition|partnership|collaboration|cooperation|joint|shared|common|public|private|ngo|charity|philanthropic|educational|academic|scholarly|scientific|technical|professional|commercial|business|corporate|industrial|financial|economic|political|social|cultural|environmental|climate|energy|security|military|defense|foreign|international|public|health|medical|legal|data|computer|software|artificial|intelligence|ai)\\b/i,\n];\n\n/**\n * Pre-compiled dictionary lists for standard parsing extraction.\n */\nexport const PARSE_LISTS = {\n honorific: new Set([\n \"esq\",\n \"esquire\",\n \"jr\",\n \"sr\",\n \"ii\",\n \"iii\",\n \"iv\",\n \"v\",\n \"phd\",\n \"md\",\n \"ms\",\n \"mrs\",\n \"mr\",\n \"miss\",\n \"dr\",\n \"dds\",\n \"dvm\",\n \"jd\",\n \"cpa\",\n ]),\n prefix: new Set([\n \"de\",\n \"van\",\n \"von\",\n \"der\",\n \"den\",\n \"vel\",\n \"le\",\n \"la\",\n \"da\",\n \"di\",\n \"del\",\n \"della\",\n \"do\",\n \"dos\",\n \"das\",\n ]),\n title: new Set([\n \"mr\",\n \"mrs\",\n \"ms\",\n \"miss\",\n \"dr\",\n \"rev\",\n \"prof\",\n \"sir\",\n \"madam\",\n \"lord\",\n \"lady\",\n ]),\n};\n","import { PROFESSIONAL_PATTERNS, PARSE_LISTS } from \"./constants\";\n\n/**\n * Represents the structural components of a globally recognizable human name.\n */\nexport interface ParsedNameParts {\n /** Academic or professional title (e.g. Dr, Mr, Prof) */\n title: string;\n /** Given name */\n firstname: string;\n /** Additional given names */\n middle: string;\n /** Family name / Surname (includes standard name prefixes like van, de) */\n lastname: string;\n /** Appendages, degrees, or generational suffixes (e.g., Jr, Ph.D) */\n honorific: string;\n}\n\n/**\n * Removes professional qualifications, post-nominals, and working titles from an author name.\n * @param {string} authorName - The raw string name.\n * @returns {string} The cleaned author name without credentials.\n */\nexport function cleanProfessionalQualifications(authorName: string): string {\n if (!authorName) return \"\";\n\n let cleaned = authorName.trim();\n\n // Strip each known qualification pattern\n for (const pattern of PROFESSIONAL_PATTERNS) {\n cleaned = cleaned.replace(pattern, \" \");\n }\n\n // Eliminate redundant spaces and leading punctuation\n cleaned = cleaned\n .replace(/\\s+/g, \" \")\n .replace(/^[,;.\\s]+/, \"\")\n .trim();\n\n // Strip trailing punctuation, but keep the period of a trailing\n // generational suffix or degree (\"Jr.\", \"Sr.\", \"Esq.\") — the\n // strip would otherwise eat it.\n const lastWord = cleaned.split(/\\s+/).pop() ?? \"\";\n const endsInHonorific = PARSE_LISTS.honorific.has(\n lastWord.toLowerCase().replace(/\\.$/, \"\"),\n );\n if (!endsInHonorific) {\n cleaned = cleaned.replace(/[,;.\\s]+$/, \"\").trim();\n }\n\n return cleaned;\n}\n\n/**\n * Parses a full biological name into its primary components.\n * Accounts for alias removal, normalization of case, extraction of suffixes,\n * handling of complex multipart last names, and common prefix combinations.\n *\n * @see https://en.wikipedia.org/wiki/List_of_family_name_affixes\n *\n * @param {string} input - The raw, full name string to extract components from.\n * @returns {ParsedNameParts} An object mapping `title`, `firstname`, `middle`, `lastname`, and `honorific`.\n */\nexport const extractHumanNameParts = (input: string): ParsedNameParts => {\n const result: ParsedNameParts = {\n title: \"\",\n firstname: \"\",\n middle: \"\",\n lastname: \"\",\n honorific: \"\",\n };\n\n if (!input) return result;\n\n let processedInput = input.trim();\n const isUppercase = processedInput === processedInput.toUpperCase();\n const isLowercase = processedInput === processedInput.toLowerCase();\n const shouldFixCase = isUppercase || isLowercase;\n\n // Extract and strip alias mappings strictly\n // E.g. John \"The Rocket\" Doe -> John Doe\n const aliasRegex = /\\s(['\"]([^'\"]+)['\"]|\\[([^\\]]+)\\]|\\(([^)]+)\\)),?\\s/g;\n processedInput = processedInput.replace(aliasRegex, \" \");\n\n const parts = processedInput.split(/\\s+/).filter(Boolean);\n\n // Isolate prefix titled elements. Titles are pulled out *before* honorifics:\n // the two lists overlap (\"Dr\", \"Mr\", \"Ms\", \"Mrs\", \"Miss\" appear in both), and\n // the honorific pass below swallows everything from its match to the end of\n // the name. Running it first on \"Dr. John Q. Public Jr.\" would file the whole\n // name away as an honorific and leave every other field empty.\n const titleIndex = parts.findIndex((part) =>\n PARSE_LISTS.title.has(part.toLowerCase().replace(/\\.$/, \"\")),\n );\n if (titleIndex !== -1) {\n result.title = parts.splice(titleIndex, 1)[0] ?? \"\";\n }\n\n // Isolate and extract honorifics logically\n const honorificIndex = parts.findIndex((part) =>\n PARSE_LISTS.honorific.has(part.toLowerCase().replace(/\\.$/, \"\")),\n );\n if (honorificIndex !== -1) {\n result.honorific = parts.splice(honorificIndex).join(\", \");\n }\n\n // Group traditional multi-word family prefixes efficiently\n for (let i = parts.length - 2; i >= 0; i--) {\n if (PARSE_LISTS.prefix.has(parts[i]?.toLowerCase() ?? \"\")) {\n parts[i] = `${parts[i]} ${parts[i + 1]}`;\n parts.splice(i + 1, 1);\n }\n }\n\n // Resolve the primary last name based on comma presence (\"Doe, John\")\n const commaIndex = parts.findIndex((part) => part.endsWith(\",\"));\n if (commaIndex !== -1) {\n // If format is `Last, First Middle`, then everything before comma is last name\n result.lastname = parts\n .splice(0, commaIndex + 1)\n .join(\" \")\n .replace(/,$/, \"\");\n } else {\n result.lastname = parts.pop() ?? \"\";\n }\n\n // Remainder components align to first and middle names\n if (parts.length > 0) {\n result.firstname = parts.shift() ?? \"\";\n if (parts.length > 0) {\n result.middle = parts.join(\" \");\n }\n }\n\n // Case normalization safely restores formatting for entirely upper/lowercase text\n if (shouldFixCase) {\n const fixCase = (str: string) =>\n str\n .split(\" \")\n .map((word) =>\n word\n ? word.charAt(0).toUpperCase() + word.slice(1).toLowerCase()\n : \"\",\n )\n .join(\" \");\n\n result.title = fixCase(result.title);\n result.firstname = fixCase(result.firstname);\n result.middle = fixCase(result.middle);\n result.lastname = fixCase(result.lastname);\n result.honorific = fixCase(result.honorific);\n }\n\n return result;\n};\n","/**\n * @fileoverview A compact list of common human names, used to tell a person\n * (\"John Doe\") from an organization.\n *\n * It replaces the 92k-entry `human-names-92k.json` (1 MB), which was dropped\n * from the bundle. It keeps every given name that dataset had (5163) and its\n * 5000 most common surnames, in the dataset's own order. Lower case, ASCII only.\n */\n\nconst GIVEN_NAMES = `\njohnson williams davis wilson taylor anderson thomas jackson harris martin clark lewis lee walker\nallen young king scott nelson carter mitchell parker stewart morris reed morgan bell bailey howard\nward james brooks kelly bennett ross coleman perry long foster bryant alexander russell graham\nwallace cole jordan ellis harrison cruz marshall murray freeman porter hunter henry boyd mason\nwarren reyes gordon palmer grant rose spencer berry arnold willis ray carroll duncan bradley lane\nriley lawrence elliott austin kelley franklin ryan oliver harvey burton stanley george reid kim dean\ngilbert garrett silva douglas may terry wade curtis neal shelton barrett gregory lucas miles craig\nfletcher vaughn santiago norris love page leonard daniel warner santos mack dennis newton todd blair\nwalton joseph francis norman quinn blake maxwell floyd paul lindsey tyler doyle sherman simon\nhouston roy brady brock frank logan owen jefferson morton patrick clayton lloyd carson barton tran\ncasey cortez bryan mckenzie luna allison richard chase clay roman monroe kirk randall anthony kirby\nbradford charles bruce lang heath cameron christian wyatt glenn keith vincent wiley lester dorsey\ndalton vance rich moses golden carey booker miranda preston tanner prince walter maynard randolph\nleon kent lara shannon chang noble everett ashley herman william solomon dudley nolan benton joyce\nhaley valentine buck moon chan barry gay avery cherry whitney terrell sanford santana yang rosario\nhester dillon bernard benjamin travis hayden lynn rosa david guy michael britt frederick jarvis\nmerrill donovan albert raymond cleveland stanton stuart emerson conrad tyson irwin dale burt nieves\nlindsay le valencia whitley noel shea hanna kendrick shirley kendall odell holley felix mora boyce\nreyna gregg werner jamison winter tracy tatum madison starr hollis brandon ervin clifton herbert\ngrady eldridge seymour gary hilton grace john fritz christopher forrest neely numbers manuel emery\nivey thurman milton winston arthur stanford clement leslie erwin garland sterling lacy amos courtney\nweston trent paige carlton piper drew bruno gaston mckinley lilly hannah willard pierre meredith\nnicholas chung dick jewell major irvin dewitt lin aaron temple toney melvin wesley rudolph marin\ncassidy kay gabriel kyle haywood sylvester abraham hoyt jarrett sheridan cornell felton cody darnell\nmichel stacy louis clifford diamond roland samuel lacey clinton christie otto eddy darby ali yu chin\ncornelius vera abel sierra sherwood kenny hope myles caron queen marcus elliot sheldon jack marion\nrubin denny jacob irving vernon keenan jean grover valentin isaac earl chu ambrose reagan sherrill\nhong loyd benedict regan elias wilburn russ li mallory ivy luke gil lincoln chester german alonzo\ntitus lyle corey jacques france chadwick gale barney weldon ruth libby fay beverly linn chance\nellsworth paris lamar angel kelsey augustine layne christy harley alonso ashton luther hyman donald\nhan royal joy coy andrew shelley robert mark jordon rico huey mackenzie leone douglass yee lance\nfrancisco shelby colby rea gavin cary lyman tobias millard bess adam easter noe jung buford malcolm\nlarue harry matthew julian edmond dewey jude marvin neil edward thao palma marx chong israel paz\nwilbur garnett yi florence cathey jeffrey dexter orlando jasper cecil oliva jeffery harlan broderick\nedgar lu ralph penny lorenzo tyree sage otis brice rhea hazel dallas ahmed cordell dion carl derrick\nmarquis ivory neville ma stacey shin leigh richie ruby chun calvin larry lea earle see peter lowell\ntam wayne fallon emanuel trinidad irish song ramon lai joe concepcion alba shay holly allan jay\nromeo carman brent carlos stephen hailey andres spring domingo roderick gerard bertram hubert\ndonnell tom salley bethel silvia sam dorris kaye estrella leroy dell will candelaria sommer sena\ngracia gerald van brant victor blaine jose archie antonio luciano gaylord blythe troy sun mauro\naugust simone chau antoine rayford homer ha damon andre fabian alfred flora rupert nathan levi\nalfonso wilber nestor sherry roger landon angelo ahmad olive shelly luis forest rey maple fredrick\nearnest sebastian dionne tracey silas pearl collette saul phillip deane gayle jaime eden mitchel\njerome clemente willie viola rae ling alton lucio karl desmond brook lamont angle rudy marty judy\ndenis jonas colton zachary salvador truman milan everette angeles byron mathew sandy royce ernest\npete marlin malik hector emory corliss elmer summer harold annis abram trinh brett penney edison\nalejandro cory russel percy maya miguel lien ching su louie elwood claudio rocco adrian sylvia\nbernardo jorge garfield salvatore pedro tiffany lucia rick rex lillie jone hassan carrol leo\ndeangelo brian bill mickey jessie noah steven shane roscoe rochelle federico abbey kimber stephan\nphilip mohammed garth robin lenard juan hang nicolas anton mai merry dee clyde willette javier\nvictoria waldo malcom enoch virgil scarlett maurice keeley eugene alden mohamed raleigh natividad\nlaine bryce tomas son dana jason brooke markus lavelle jesse dominick santo leonardo halley yan\nrandell michell frances charley belle alex olin clair mariano dustin diego violette stella hung\nclare alva pasquale nicol milford maye leland carley cyrus chi zack monte yon macy marine collin\ncolin aubrey vella hans felipe wendell maxie marvel kiley garry normand joshua bee arnette tu marti\nevan yun wilford siu rodney celestine buster so mauricio julius raphael jim dann billy alexis june\nguadalupe carlo emmett sung sherrell patty napoleon lore granville nichol delia augustus asuncion\ntheodore quinton matt yen tandy ta martine lucy judson glen fernando rolf maria gregorio gloria\ngerry yung woodrow rickey nick laurence agustin wilton wan maris herb elbert alberto milo faith\ndamian ruben mike jacinto hui guillermo roberto jennette honey fred vicente carmon carmen arline\nrolland ming ben zachery tai sunday marco lesley charlie mei ignacio seth raven pablo marcy danna\nbart aron andreas lora lazaro esteban darwin dan armand antone reina marcos columbus vivian sidney\nisabell hollie gillian christen ping phung omar nathaniel mikel lawerence timothy rodger polly\nlaurie jesus freda elton barbara abe lady jayne january fern diana daniell tyrell felice nell max\nlucien janis fermin emmanuel boris arden amado allie wilbert ollie marie mara hosea ester dong dane\nrosamond mee charity blanche yong xavier patti min junior joslyn jerry dominique cesar sharon rachel\nmercedes mary jin evelyn eddie don mui marcellus justin horace flor elia rene rachal darrell brandy\nbetty barbera pauline na jules gabriele blossom barb adan oscar man liberty jo avis amy ricardo hugo\nedie darcy cora basil barrie vito romaine mattie kerry zane wilmer vince merideth kimberly kam inge\nclaude brenton ardis regina reda quincy laurel hugh gwyn cliff virgen tristan rafael monty mohammad\nkeely issac harland doris crystal cristobal chery caroll roosevelt renda myron mose jeremiah jared\ndwight carolina blanch berta bella vida rufus nova nicola nam mao kenna hilario hank estell wei pam\noren nida martina luz laura jasmin billie rita lyda lucius linsey janelle garret eusebio dolly vita\nsherron edwin bob an adolph abdul ronald ned merlin melia jess isabel heide constance benny mina\nlino jamar graig estelle carol steve soo rana kurt isabelle claire benito winnie merle marcell jenny\njan ferdinand dave april wen mika mae brain bobby tyra tony sue santa sabine muriel marc lou julia\njamal isreal ines heather fonda farah bonnie bert alix winford violet stefan hyun goldie esperanza\ndorothy doria dawn allyn tena rudolf micheal lona lisa jerrell gerardo duane coletta christina chae\nbridgett alvin vena perla michelle marth madonna joye gracie faye almeda addie verona sang sally\nrhett paulette oda nery marcelino maire loan kendra jong joaquin in frederic emily elvira corrie\nchristine candy bradly bea augusta ying shawn phillis monica melody magda lena leandro lan kary jeff\nhee greg gail elvin dora beverley beatrice audie rubi rolando reuben mona marietta joesph ellen dino\ndevin denver denise calandra brandi andrea alexandra alan toby star reta paula patricia modesto\nmalia lorraine keena julio jen hillary hellen germaine genna farrah dena daniele clara china chia\nchauncey caryl camille zona rochell renna marcella linwood linda kina kenton fausto erick delisa\nbryon anna vina verna terra stefani sol sima rodrick riva raye pia mari mac kari kai jonathan janey\nisa florentino elza edmund blanca ann alphonse alexandria tien shira sergio scot roma rod rhoda ok\nmoises mitch mable lyn liz lamonica hilde gladys dona devora concha collen chuck zola xiao valery\nval tina sunshine roselle raymundo noreen nora myung marcia marcel lue joya franklyn florida eunice\nemma dominic chandra catalina carlee brenna branden bertha andree terrance sherley sarah sanda\nrosette rima maryland mario many lindy kasey karol ike georgia galen ezekiel dina demarcus delaine\ndaisy chris celia celeste aurelio armando virgilio stephanie sandra randal minerva lina lean jewel\nisabella gaye eva emmitt eli dede darrin christiana cathy carry carrie bethany andy alma albertine\nagnes sallie rosie robbin randa omer odette monserrate mira loree len lana lala joel jaye jame\ngiovanni eugenio enrique dominque conception charlette carmine carli annett anastasia alice adell\nwai vanetta tyrone teresa stephany sofia shon shan saran olen nola nicole nancy mervin marta maida\nlory lilla lauren kizzie kenneth ken ivan ina hobert hipolito helen floria eve erich devon danial\ndaine cristy caterina belen amparo amie trang tim stan rochel renee margo lynne lottie lorette leif\nkate karen jayson emilio edris dante carline caren bong berna bari adrien willy virginia venice\ntrevor tillie somer socorro sharron savannah rosetta regine rashad quintin patsy mila marry marian\nmaranda lura lillian lia karren kara kali kaley jerald faustino evon else eduardo dorian donna donn\ndixie dario cornelia carmel burl buffy bonny bianca bennie barbar america alphonso alicia alfonzo\nalberta aja valerie sherill shanon sha sade sabina randy pok pattie opal mozell mercy maximo manda\nmalena maia magan louise leota kory kimberley josue jennifer jeffry janice ida hai glenna glady gene\nemerald elden delena clarence antony antonia amber alison wilfred soledad shu shad pilar petrina\npennie myra miss minnie michele megan marlo marina lyndon lydia lovie kyung krishna korey kirsten\njosiah ismael hyon francesco esther elmo derick deon delmar darius daisey cristina clint cassi carie\narron afton willow valeri ty sydney selma rosendo rayna raina paulina nichole meridith mavis marsha\nmanual mandy leonor karry jeannette jane hoa harriet gregoria florine ellie delbert danielle dani\nchristin chad cassey avril angeline andera aldo zana wilda vincenzo venus toya torri tommie thu\ntheresa tanna suk sonny sina sherril shala scotty sara salome ronda roberta rob retta rena patrice\npat nicolette nickolas misty merna martha margaret loura loren lola lily leopoldo latina kristin\nkala jennie jarred janise isidro irene illa idell glory gemma frankie fanny eun eloy deneen della\ncurt cordia coral cira cathie caleb bridgette bree brad bo blondell aurora anne ana adolfo abby\nwillian vernia verdell tyron thi tennille sonia shiloh shanna shani serena scarlet salina rachell pa\nolivia nita nina milly millie micha marci marcelle mana mallie mabel lauri lani kristen kevin kellie\njuliet johnny jenifer jayme isaiah inga hue harriett ginger geraldo erin emile elvis elizabeth elena\ndung delois damien cristal connie colleen christel carmella bula brendon bertie barbie aurelia asa\nart ariel antione andra alvaro ada zella winfred wanda valrie torrie terri tara susana skye shayne\nshawnee sandi rosella rodrigo rickie ramiro pearle norma nannie monet maren maggie macie lorna lori\nleona lelah lavern laronda larita kym kurtis kristy karin justine jolie ji jann jamie hildred\nherschel helena golda gena gala florencio flo fidel ernesto eric donnie dominga dolores dirk delphia\ndel darcey danny cynthia cecilia cassandra carolin carin brinda bok bernadette becky asley anglea\nangela alpha allegra aline zachariah yuk williemae willia trish trenton tory toni tod tisa theo\nterrence susan shae sean sau rubie rossie ronnie rona ron robyn robbie rina raquel patience ora ona\nnatalie natalia naomi nan nadine miquel michal marlene margot maile luci lois lenny leah lavon\nlavina lavette laverne krystal keri karma kareem kandra josef jill jeane jasmine jacque ilse hilda\nheidi genia felicia estella elke elijah dorie dorcas delana darron daron daria coreen consuelo\nchrystal christi catherine carina cara buddy bud bruna bonita beulah beth bernice ashely arturo\narlen arie annette anibal agueda zonia zita zena yuki wendy wally virgie vickey valorie vallie tish\ntess teri teodoro tegan teddy tami samara samantha reynaldo raul phuong patria paola osvaldo nila\nmyrtle molly mildred mellie maura maud margarita mandi magdalena madge lucie lourdes loria loraine\nloma leta lesa lauretta lanie kum kristan kraig kitty kip kendal katie kathleen ka juliana judie\njonah joline jody jessica jeanette jana jami jamel jae jacquelin herta hallie hal gwenn georgiana\ngeoffrey garnet fredric francoise florance felipa fairy eveline ethel estela elsa elroy ellena\neliseo edith denna denice deja deanne dalene claud christal chet cherrie charisse chanel caroline\ncaprice buena bridget brenda brande beau audrey ashly annabel angelica alfredo jeremy jimmy ricky\njon tommy derek reginald erik darryl ted darren lonnie dwayne jimmie ian johnnie daryl freddie\njackie joey doug shaun ira johnathan kelvin wm jonathon ed rodolfo cedric jermaine sammy kristopher\ngustavo jake lionel gilberto orville al josh darrel rogelio terence phil darin timmy brendan marlon\nemil dewayne bret humberto micah efrain demetrius ethan eldon rocky freddy dylan ernie quentin\nwilfredo jarrod kermit norbert thaddeus sammie rusty rory reggie kris gus gonzalo rigoberto vern\nbobbie hiram ulysses heriberto carmelo donny johnathon cleo leonel bernie joan errol edwardo theron\ndaren robby genaro octavio cyril ronny stevie lon kennith johnie dusty scottie arnulfo thad ezra\nlanny isiah reinaldo jerrod hershel lemuel nigel efren antwan margarito refugio les deandre kieth\ntrey norberto jerold christoper jamaal gino edgardo alec tad porfirio odis mel marcelo keven sal\norval dannie jed thanh lupe horacio delmer jerrold robt damion jefferey moshe darrick minh giuseppe\ncletus dwain donte isaias adalberto jamey samual otha domenic renato jc chas deshawn nathanial\ndanilo raymon ezequiel erasmo lonny jarod oswaldo nathanael filiberto michale wes zackary tuan nicky\ncristopher jospeh waylon von renaldo kristofer arnoldo rueben jeromy cedrick arlie luigi keneth\nedmundo sid jeramy elisha lynwood jere darell deborah melissa rebecca pamela debra amanda carolyn\njanet diane julie cheryl katherine judith kathy tammy marilyn kathryn jacqueline phyllis annie peggy\nedna cindy josephine thelma sheila elaine marjorie charlotte juanita anita rhonda debbie lucille\njoanne eleanor suzanne darlene veronica geraldine joann erica yvonne brittany melanie loretta\nyolanda vanessa elsie jeanne vicki carla rosemary eileen gertrude tonya ella wilma gina charlene\nbessie delores melinda arlene maureen tamara claudia tanya nellie glenda vickie maxine irma deanna\ngwendolyn margie priscilla carole olga dianne miriam velma kristina ramona sherri erika katrina\ngeneva belinda sheryl natasha sabrina marguerite hattie kristi joanna iris angie inez lynda madeline\namelia genevieve monique jodi janie kayla sonya kristine candace fannie maryann yvette susie mamie\nlula antoinette candice juana kelli karla latoya shelia vicky sheri marianne jacquelyn erma leticia\nkrista roxanne adrienne rosalie sadie traci rachael chelsea ernestine angelina dianna doreen\nrosemarie desiree betsy lynette eula meghan sophia eloise gretchen cecelia henrietta alyssa gwen\njenna tricia tasha sophie lorena sonja lila darla mindy essie lorene josefina jeannie lela johanna\nshari shawna elisa ebony melba nettie tabitha winifred kristie alisha aimee myrna marla tammie\nlatasha sherrie francine deloris stacie adriana cheri abigail adele rebekah lucinda dorthy effie\ntrina reba lenora etta kerri trisha nikki francisca josie tracie marissa brittney helene elva\ncorinne bettie elisabeth aida caitlin ingrid iva eugenia christa cassie maude therese janette\nlatonya tamika debora cherie jillian dorothea trudy patrica stefanie ola janine mollie alisa maribel\nsusanne bette elise cecile jocelyn joni rachelle leola daphne alta petra graciela imogene jolene\nkeisha gabriela ursula lizzie shana adeline mayra jaclyn sondra carmela marisa rosalind tonia\nbeatriz marisol clarice jeanine sheena frieda shauna claudette cathleen angelia gabrielle autumn\nkatharine jodie staci elma luella margret callie bobbi maritza lucile leanne jeannine deana aileen\nlorie ladonna willa manuela sybil luisa jeri ofelia meagan audra matilda leila bettye randi latisha\nbarbra georgina eliza leann adela bernadine flossie ila greta ruthie nelda terrie letha hilary\nvalarie brianna rosalyn earline ava mia clarissa lidia corrine tia ericka elnora lenore neva marylou\nmelisa tabatha jeanie odessa penelope milagros emilia benita allyson ashlee tania esmeralda karina\npearlie zelma malinda tameka saundra althea rosalinda lilia alana alejandra elinor lorrie jerri\nearnestine noemi marcie liza annabelle louisa earlene carlene selena tanisha katy julianne lakisha\nedwina maricela margery kenya dollie roxie roslyn kathrine nanette charmaine lavonne ilene tammi\nsuzette corine lilian luann maryanne evangeline colette melva lawanda yesenia nadia kathie ophelia\nvaleria nona mitzi georgette claudine fran alissa roseann lakeisha susanna reva deidre chasity\nsheree carly elvia alyce deirdre briana araceli katelyn rosanne wendi tessa marva imelda sasha\nmadelyn janna juliette deena josefa liliana lessie amalia vilma lynnette corina alfreda leanna\ncoleen tamra aisha karyn evangelina rosanna erna enid mariana jacklyn freida madeleine cathryn lelia\ncasandra angelita jannie annmarie katina beryl phoebe millicent katheryn diann carissa maryellen\nhelga gilda marquita tisha tamera angelique francesca britney kaitlin lolita rowena twila janell\nconcetta brigitte alyson vonda pansy elba noelle letitia deann brandie louella felecia sharlene\nherminia celina tori octavia jade cortney nelly doretha deidra monika lashonda judi chelsey\nantionette adelaide leeann dessie kathi gayla latanya mellisa kimberlee renae zelda elda justina\ngussie emilie camilla abbie rocio kaitlyn edythe ashleigh selina lakesha geri allene pamala michaela\ndayna caryn rosalia jacquline rebeca marybeth krystle iola dottie griselda ernestina elida adrianne\ndemetria delma jaqueline destiny arleen virgina retha fatima eleanore cari treva birdie wilhelmina\nrosalee maurine latrice jena taryn debby maudie jeanna delilah catrina shonda hortencia theodora\nteresita danette maryjane delphine brianne nilda cindi iona winona rosita marianna racheal\nguillermina eloisa malissa chantel shellie marisela leora agatha migdalia ivette athena janel chloe\nveda tessie tera marilynn lucretia karrie dinah daniela alecia adelina vernice shiela portia lashawn\ndara tawana oma verda alene rafaela kira candida alvina suzan shayla lettie samatha oralia matilde\nlarissa vesta renita india shanda lorri erlinda cathrine zoe ione gisela roxanna mayme kisha\nmellissa dalia annetta zoila kylie charla elissa tiffani tana breanna vernell tomasa melodie alexa\ntamela mirna kerrie felicita carmelita berniece annemarie tiara roseanne missy cori roxana pricilla\nkristal elyse haydee aletha bettina marge filomena zenaida harriette caridad vada una aretha\npearline marjory marcela evette elouise alina damaris catharine belva nakia marlena luanne lorine\nkaron dorene danita tatiana louann julianna andria philomena lucila leonora dovie romona mimi tonja\nmisti chastity stacia roxann micaela nikita velda marlys johnna aura ivonne hayley nicki majorie\nherlinda yadira antonette shelli mozelle mariah joelle cordelia josette chiquita trista laquita\ncandi hildegard valentina gabriella tiana richelle princess oleta idella alaina suzanna jovita tosha\nnereida marlyn kyla delfina stephenie nathalie gertie darleen thea sharonda shantel venessa rosalina\ngenoveva clementine rosalba renate renata mi georgianna floy ariana theda mariam juli jesica vikki\nverla roselyn melvina jannette ginny debrah asia violeta myrtis latricia charleen anissa viviana\ntwyla precious nedra latonia fabiola annamarie sharyn chantal niki lizette kia kesha jeana danelle\ncharline dortha sunny leilani gerri debi keshia ima eulalia dulce linnie kami georgie catina alda\nwinnifred sharla ruthann meaghan magdalene lissette adelaida venita trena shirlene shameka elizebeth\ndian shanta latosha carlotta windy soon rosina mariann leisa jonnie dawna astrid laureen janeen\nholli fawn teressa shante rubye marcelina chanda terese marnie lulu lisette jeniffer elenor dorinda\ndonita bernita altagracia aleta adrianna zoraida lyndsey janina chrissy ami starla phylis kyra\nsanjuanita nanci marilee brigette sanjuana marita kassandra joycelyn chelsie mireya lorenza kyong\nileana sherie leatrice lakeshia gerda bambi marylin hortense evie tressa shayna jeanetta shara\nphyliss mittie anabel alesia thuy tawanda joanie tiffanie lashanda karissa enriqueta daniella\ncorinna alanna roxane roseanna magnolia lida joellen era carleen tresa peggie novella maybelle\njenelle melina marquerite margarette josephina evonne cinthia albina tawnya sherita myriam lizabeth\nlise jenni giselle cheryle ardith alesha adriane shaina linnea karolyn felisha dori darci artie\narmida xiomara vergie shamika nena nannette jaimie elaina caitlyn felicitas cherly yolonda yasmin\nteena prudence nydia orpha lizbeth laurette jerrie hermelinda carolee tierra mirian meta melony kori\njamila ena anh yoshiko susannah rhiannon joleen cristine aracely tomeka shalonda lacie jada brittani\nsyble sherryl nidia kandice kandi deb alycia ronna norene ingeborg giovanna audry zora stephaine\nshirlee shanika melonie mazie jazmin hettie geralyn adella sarita milissa maribeth ethelyn enedina\ncherise chana velva tawanna mirta karie jacinta elna davina cierra ashlie albertha tanesha stephani\nnelle mindi lorinda florene demetra dedra ciara chantelle suzy rosalva noelia leatha krystyna karri\ndarline darcie cinda cheyenne awilda rolanda lanette jerilyn gisele evalyn cyndi cleta zina velia\ntanika charissa talia margarete lavonda kaylee kathlene jonna irena ilona idalia candis candance\nbrandee anitra alida sigrid maryjo linette hedwig alexia tressie modesta lupita lita gladis evelia\ndavida cherri cecily agustina wanita shirly rosaura hulda yetta thomasina sibyl shannan mechelle\nleandra kylee kandy jolynn ferne eboni corene alysia zula nada moira lyndsay lorretta jammie\nhortensia gaynell adria vicenta tangela stephine norine nella liana leslee kimberely iliana felica\nemogene elfriede eartha carma ocie lennie kiara jacalyn carlota arielle otilia kirstin kacey\njohnetta joetta jeraldine jaunita elana dorthea cami amada adelia vernita tamar siobhan renea\nrashida ouida nilsa meryl kristyn julieta danica breanne aurea lorelei leesa kathlyn fiona suzie\nshantell sabra racquel myong lucienne lavada juliann elvera christiane charolette carri asha angella\nninfa leda eda shanell machelle lissa kecia kathryne karlene julissa jettie jenniffer corrina\ncarolann alena rosaria myrtice marylee liane kenyatta elmira eldora cristi cathi zaida vonnie viva\nvernie rosaline mariela luciana lesli karan adina wynona tarsha sheron shasta shanita shandra pinkie\nnelida marilou lyla laurene laci joi janene dorotha carolynn carlyn berenice ayesha anneliese\nalethea thersa tamiko rufina marylyn kristian kathyrn kasandra kandace janae domenica debbra\ndannielle arcelia zenobia sharen sharee my lavinia kacie jackeline huong felisa emelia eleanora\ncythia cristin claribel anastacia zulma zandra yoko tenisha susann sherilyn shawanda romana mathilda\nkeiko joana isela gretta georgetta eugenie desirae delora corazon antonina anika willene tracee\ntamatha nichelle mickie maegan luana lanita kelsie edelmira teodora tamie shena meg linh keli kaci\ndanyelle arlette adelle tiffiny stormy simona nicolasa nia nakisha maira loreen kizzy christene\nbobbye vincenza tanja roni queenie margarett kimberli irmgard hilma evelina esta emilee dennise\ndania risa rikki particia masako luvenia loni gigi florencia denita billye tomika sharita nikole\nneoma margarite madalyn lucina laila jenette evelyne elenora clementina alejandrina zulema vannessa\nthresa noella nickie jonell delta chaya camelia anya suzann laverna keesha kattie gia georgene\nelizbeth vivienne trudie stephane magaly madie kenyetta janetta hermine harmony drucilla debbi\ncelestina candie britni beckie amina yolande vivien vernetta trudi patrina ossie nicolle loyce letty\nlarisa katharina joselyn jonelle jenell iesha florinda florentina elodia dorine brunilda brigid\nashli ardella twana tarah shavon serina ramonita nga margurite lucrecia kourtney kati jesenia crista\nayana alica alia vinnie suellen romelia olympia michiko kathaleen jessi janessa hana elease carletta\nbritany shona regena ngoc nelia louvenia lesia latrina laticia larhonda jina jacki emmy deeann\ncoretta arnetta velvet thalia shanice neta mikki micki lonna leana lashunda jacqulyn ignacia hiroko\nhenriette elayne delinda dahlia consuela conchita celine babette ayanna anette albertina shaneka\nquiana pamelia merri merlene margit kiesha kiera kaylene jodee jenise erlene emmie dalila casie\nbelia babara versie vanesa shelba shawnda nikia naoma marna margeret madaline lawana kindra jutta\njazmine janett hannelore glendora gertrud freeda frederica flavia beverlee anjanette valda trinity\ntamala shonna sarina oneida merilyn marleen lurline lenna katherin jeni hae enola ema devona cecila\nalysha alethia theresia tawny shakira sachiko rachele pamella marni mariel malisa ligia lera latoria\nlarae kathern karey jennefer janeth halina fredia debroah ciera angelika altha vivan terresa sudie\nsigne salena ronni rebbecca myrtie malika leonarda kayleigh ethyl ellyn dayle cammie brittni birgit\navelina arianna akiko tyesha tonie tiesha takisha steffanie sindy meghann kellye kellee inger indira\nglinda glennis fernanda faustina eneida elicia dot digna arletta tammara tabetha sari rebbeca\npauletta natosha nakita mammie kenisha kazuko kassie earlean daphine clotilde carolyne bernetta\naugustina audrea annabell tamica selene rosana regenia qiana markita leeanne laurine jessenia janita\ngeorgine genie emiko elvie deandra dagmar corie cherish porsha pearlene micheline margorie\nmargaretta jenine hermina fredericka drusilla dorathy dione desire celena brigida tamekia synthia\nsook slyvia rosann reatha marquetta margart layla kymberly kiana kayleen katlyn karmen joella irina\nemelda eleni detra clemmie cheryll chantell arnita arla angelic alyse zofia thomasine tennie sherly\nsharyl remedios nickole myrle mozella louanne lisha latia krysta julienne jeanene jacqualine isaura\ngwenda earleen cleopatra carlie antonietta alise tomoko talisha shemika savanna santina rosia raeann\nodilia nana minna lynelle joeann ivana inell ilana hye gudrun dreama crissy chante carmelina arvilla\nannamae alvera aleida yanira vanda tianna stefania nancie melynda melany lovella laure kacy\njacquelynn gertha eliana christena christeen charise candyce arlena ammie vanita tuyet tiny syreeta\nnyla maryam marya magen ludie livia lanell kimberlie julee donetta diedra denisha dawne clarine\ncherryl bronwyn alla tonda sueann soraya shoshana shela sharleen shanelle nerissa magaret lili\nleonila leonie leeanna lavonia lavera kristel kathey kathe ilda hildegarde fumiko evelin ermelinda\nelly doloris dionna danae berneice annice verena verdie shawnna shawana shaunna rozella randee ranae\nmilagro lynell luise loida lisbeth karleen junita jona isis hyacinth hedy ethelene erline donya\ndomonique delicia dannette cicely branda bethann ashlyn annalee alline yuko towanda tesha sherlyn\nnarcisa miguelina meri maybell marlana marguerita madlyn loriann leonore leighann laurice latesha\nkatrice kasie jadwiga glennie gearldine francina epifania dyan diedre denese demetrice cristie\ncleora catarina carisa almeta trula tereasa solange sheilah shavonne sanora mathilde margareta\nlynsey lawanna launa kena katia glynda gaylene elvina elanor danuta danika cristen cordie clarita\nbrynn azucena aundrea angele verlie verlene tamesha silvana sebrina samira raylene penni pandora\nnorah noma mireille melissia maryalice laraine kimbery karyl karine jolanda johana jesusa jaleesa\njacquelyne iluminada hilaria hanh gennie francie floretta exie edda drema delpha bev assunta ardell\nannalisa alisia yukiko yolando wonda waltraud veta tequila temeka tameika shirleen shenita piedad\nozella mirtha marilu kimiko juliane jenice janay jacquiline fe fae elois echo devorah betsey arminda\naracelis apryl alishia veola usha toshiko theola tashia talitha shery renetta reiko rasheeda omega\nobdulia melaine meggan marlen marget marceline magdalen librada lezlie lexie latashia lasandra kelle\nisidra inocencia erminia erinn dimple criselda armanda ariane angelena aliza adriene adaline xochitl\ntwanna tomiko tamisha taisha susy rutha roxy rhona noriko natashia merrie marinda mariko margert\nloris lizzette leisha kaila joannie jerrica jene jannet janee jacinda elenore doretta claudie britta\napolonia amberly alease yuri waneta ute tomi sharri sandie reynalda raguel phylicia olimpia odelia\nmitzie minda mignon mica mendy marivel lynetta lauryn latrisha lakiesha kiersten josphine jolyn\njetta jacquie ivelisse glynis gianna gaynelle danyell danille dacia coralee cher ceola arianne\naleshia thora svetlana sherika shemeka shaunda roseline ricki melda lavonna laquanda lachelle klara\nkandis johna jeanmarie grayce gertude emerita ebonie clorinda carola breann bernardine becki arletha\nargelia ara alita yulanda yessenia tobi tasia sylvie shirl shirely shella shantelle sacha rebecka\nprovidencia paulene misha miki marline marica lorita latoyia lasonya kerstin kenda keitha kathrin\njaymie gricelda ginette eryn elina elfrieda danyel cheree chanelle aurore annamaria alleen ailene\naide yasmine vashti treasa tiffaney sheryll sharie shanae raisa neda mitsuko mirella milda maryanna\nmaragret mabelle luetta lorina letisha latarsha lanelle lajuana krissy karly karena jessika jerica\njeanelle jalisa jacelyn izola euna etha domitila dominica daina creola camie bunny brittny ashanti\nanisha aleen adah yasuko viki tona tinisha terisa taneka simonne shalanda serita ressie refugia\nolene margherita mandie lyndia lorriane loreta leonia lavona lashawnda lakia kyoko krystina krysten\nkenia kelsi jeanice isobel georgiann genny felicidad eilene deloise deedee clora cherilyn armandina\nanisa ula tiera theressa stephania shyla shonta shera shaquita rossana nohemi moriah melita melida\nmelani marylynn marisha mariette malorie madelene ludivina loralee lianne lavenia laurinda lashon\nkit kimi keila katelynn joane jayna janella ja hertha francene elinore despina delsie deedra\nclemencia bulah brittanie bibi beaulah beata annita agripina valene un twanda tommye toi tarra tari\ntammera shakia sadye ruthanne rivka pura nenita natisha merrilee melodee marvis lucilla leena laveta\nkeren ileen georgeann genesis frida ewa eufemia emely ela edyth deonna deadra darlena chanell\ncathern cassondra cassaundra bernarda arlinda anamaria vertie tatyana stasia sherise season ruthe\nrosy robbi ranee quyen pearly palmira onita nisha niesha nevada merlyn mayola marylouise margene\nmadelaine londa leontine leoma leia lauralee lanora lakita kiyoko keturah katelin kareen jonie\njohnette jenee jeanett izetta hiedi heike hassie giuseppina georgann fidela fernande elwanda ellamae\neliz dusti dotty cyndy coralie celesta argentina alverta xenia wava tashina tambra tama stepanie\nshila shaunta sharan shaniqua setsuko serafina sandee rosamaria priscila olinda nadene muoi\nmichelina mercedez maryrose marcene magali mafalda lannie kayce karoline kamilah kamala justa\njennine jacquetta iraida georgeanna franchesca emeline elane ehtel earlie dulcie cris classie chere\ncharis caroyln carmina carita bethanie ayako arica alysa alessandra akilah zetta youlanda yelena\nyahaira xuan wendolyn tijuana terina teresia suzi sherell shavonda shaunte sharda shakita ryann\nreginia parthenia pamula monnie michaele malka maisha lisandra lekisha lakendra krystin kortney\nkittie kera kemberly kanisha julene jule johanne jamee gidget galina fredricka fleta fatimah eusebia\neleonore dorthey donella dinorah delorse claretha christinia charlyn belkis azzie aiko adena yer\nyajaira vania ulrike toshia tifany stefany shizue shenika shawanna sharolyn sharilyn shaquana\nshantay rozanne roselee remona reanna raelene petronila natacha nancey myrl miyoko miesha marvella\nmarquitta marhta marchelle lizeth libbie lahoma ladawn katheleen katharyn karisa kaleigh junie\njulieann johnsie janean jaimee jackqueline hisako herma helaine gwyneth gita eustolia emelina elin\ndonnette donnetta dierdre denae darcel clarisa cinderella charlesetta charita celsa cassy brittaney\nbilli bao antonetta angla angelyn analisa alane wenona wendie veronique vannesa tobie tempie sumiko\nsulema sparkle sheba sharice shanel shalon rosio roselia renay rema reena porsche peg ozie oretha\noralee nu ngan nakesha marybelle margrett maragaret manie lurlene lillia lieselotte lashaunda\nlakeesha kaycee kalyn joette jenae janiece grisel glayds genevie fredda eleonor debera deandrea\ncorrinne contessa colene cleotilde charlott chantay cecille beatris azalee arlean ardath anjelica\nanja alfredia aleisha zada yuonne willodean vennie vanna tyisha tova torie tonisha tilda sirena\nshanti senaida samella robbyn reita phebe paulita nobuko nguyet neomi mikaela melania maximina marg\nmaisie lynna lilli lashaun lakenya lael kirstie kathline kasha karlyn karima jovan josefine jennell\njacqui jackelyn hyo hien grazyna florrie eleonora dwana dorla delmy crysta clelia claris chieko\ncherlyn cherelle charmain chara cammy ardelle annika amiee amee allena yvone yoshie yevette yael\nwilletta voncile venetta tula tonette timika temika telma teisha taren stacee shawnta saturnina\nricarda pasty onie nubia marielle mariella marianela mardell luanna loise lisabeth lindsy lilliana\nlilliam leigha leanora kristeen khalilah junko joaquina jerlene jani jamika hsiu hermila genevive\nevia eugena emmaline elfreda elene donette delcie deeanna cuc clarinda celinda catheryn catherin\ncasimira carmelia camellia breana bobette bernardina bebe basilia arlyne amal alayna zenia yuriko\nyaeko wynell willena tora terrilyn terica tenesha tawna tajuana taina stephnie sona shondra shizuko\nsherlene sherice sharika rosena ria rheba natalya nancee melodi meda maxima matha marketta maricruz\nmarcelene malvina luba louetta leida lecia lauran lashawna khadijah katerine kasi kallie julietta\njesusita jestine jessia jeffie janyce isadora georgianne fidelia evita eura eulah estefana elsy\nelizabet eladia dodie dia denisse deloras delila daysi dakota crystle claretta christia charlsie\ncharlena carylon bettyann ashlea amira ai agnus yuette vinita victorina tynisha treena toccara\nthomasena soila shenna sharmaine shantae shandi september sarai sana rolande otelia olevia nicholle\nnecole naida myrta myesha mitsue minta mertie margy mahalia madalene lorean lesha leonida lenita\nlavone lashell lashandra kimbra katherina kanesha jeneva jaquelyn hwa gilma ghislaine gertrudis\nfransisca fermina ettie etsuko ellan elidia edra dorethea doreatha denyse deetta cyrstal corrin\ncayla carlita camila burma barabara alaine wilhemina wanetta vi veronika verline vasiliki tonita\nteofila tayna taunya tandra takako sunni suanne sixta sharell seema rosenda robena raymonde pei\npamila ozell neida mistie merissa maurita maryln maryetta makeda maddie lovetta lourie lorrine\nlorilee laurena lashay larraine laree lacresha kristle keva keira karole joie jinny jeannetta jama\nheidy gilberte gema faviola evelynn enda elli divina dagny collene codi cindie chassidy chasidy\ncatrice catherina carlena candra calista bryanna britteny beula audrie audria ardelia annelle angila\nalona\n`;\n\nconst SURNAMES = `\nsmith jones brown miller moore white thompson garcia martinez robinson rodriguez hall hernandez\nwright lopez hill green adams baker gonzalez perez roberts turner phillips campbell evans edwards\ncollins sanchez rogers cook murphy rivera cooper richardson cox torres peterson gray ramirez watson\nsanders price wood barnes henderson jenkins powell patterson hughes flores washington butler simmons\ngonzales griffin diaz hayes myers ford hamilton sullivan woods west owens reynolds fisher gibson\nmcdonald ortiz gomez wells webb simpson stevens tucker hicks crawford morales kennedy dixon ramos\nburns shaw holmes rice robertson hunt black daniels mills nichols knight ferguson stone hawkins dunn\nperkins hudson gardner stephens payne pierce matthews wagner watkins olson snyder hart cunningham\nandrews ruiz harper fox armstrong carpenter weaver greene chavez sims peters lawson fields gutierrez\nschmidt carr vasquez castillo wheeler chapman montgomery richards williamson johnston banks meyer\nbishop mccoy howell alvarez morrison hansen fernandez garza little nguyen jacobs fuller lynch romero\nwelch larson frazier burke hanson day mendoza moreno bowman medina fowler brewer hoffman carlson\npearson holland fleming jensen vargas byrd davidson hopkins herrera soto walters caldwell lowe\njennings barnett graves jimenez horton obrien castro sutton mckinney rodriquez chambers holt lambert\nwatts bates hale rhodes pena beck newman haynes mcdaniel mendez bush parks dawson hardy steele curry\npowers schultz barker guzman munoz ball keller chandler weber walsh lyons ramsey wolfe schneider\nmullins benson sharp bowen barber cummings hines baldwin griffith valdez hubbard salazar reeves\nstevenson burgess tate cross garner mann moss thornton mcgee farmer delgado aguilar vega glover\nmanning cohen harmon rodgers robbins higgins ingram reese cannon strickland townsend potter goodwin\nrowe hampton ortega patton swanson goodman maldonado yates becker erickson hodges rios conner adkins\nwebster malone hammond flowers cobb moody pope osborne mccarthy guerrero estrada sandoval gibbs\ngross fitzgerald stokes saunders wise colon gill alvarado greer padilla waters nunez ballard\nschwartz mcbride christensen klein pratt briggs parsons mclaughlin zimmerman french buchanan moran\ncopeland pittman mccormick holloway poole bass marsh drake wong park abbott sparks norton huff\nmassey figueroa bowers roberson lamb harrington boone clarke mathis singleton wilkins cain underwood\nhogan collier phelps mcguire bridges wilkerson nash summers atkins wilcox pitts conley marquez\nburnett cochran davenport hood gates ayala sawyer vazquez dickerson hodge acosta flynn espinoza\nnicholson wolf morrow whitaker oconnor skinner ware molina huffman gilmore dominguez oneal combs\nkramer hancock gallagher gaines shaffer short wiggins mathews mcclain fischer wall small melton\nhensley bond dyer grimes contreras baxter snow mosley shepherd larsen hoover beasley petersen\nwhitehead meyers garrison shields horn savage olsen schroeder hartman woodard mueller kemp deleon\nbooth patel calhoun eaton cline navarro harrell humphrey parrish duran hutchinson hess bullock\nrobles beard avila blackwell york johns blankenship trevino salinas campos pruitt callahan montoya\nhardin guerra mcdowell stafford gallegos henson wilkinson merritt atkinson orr decker hobbs knox\npacheco stephenson glass rojas serrano marks hickman english sweeney strong mcclure conway roth\nfarrell lowery hurst nixon weiss trujillo ellison sloan juarez winters mclean boyer villarreal\nmccall gentry carrillo ayers sexton pace hull leblanc browning velasquez leach house sellers herring\nfoley bartlett mercado landry durham walls barr mckee bauer rivers bradshaw pugh velez rush estes\ndodson morse sheppard weeks camacho bean barron livingston middleton spears branch blevins chen kerr\nmcconnell hatfield harding solis frost giles blackburn pennington woodward finley mcintosh koch best\nmccullough blanchard rivas brennan mejia kane buckley maddox russo mcknight mcmillan crosby berg\ndotson mays roach church richmond meadows faulkner oneill knapp kline ochoa jacobson hendricks horne\nshepard hebert cardenas mcintyre waller holman donaldson cantu morin gillespie fuentes tillman\nbentley peck key salas rollins gamble dickson battle cabrera cervantes howe hinton hurley spence\nzamora mcneil suarez case petty gould mcfarland sampson carver bray macdonald stout melendez farley\nhopper galloway potts joyner stein aguirre osborn mercer bender franco rowland sykes pickett crane\nsears mayo dunlap wilder mckay coffey mccarty ewing cooley vaughan bonner cotton holder stark\nferrell cantrell fulton lott calderon pollard hooper burch mullen fry riddle levy duke odonnell\ndaugherty berger dillard alston frye riggs chaney odom duffy fitzpatrick valenzuela mayer alford\nmcpherson acevedo barrera cote reilly compton mooney mcgowan craft clemons wynn nielsen baird snider\nrosales bright witt hays holden rutledge kinney clements castaneda slater hahn burks delaney pate\nlancaster sweet justice sharpe whitfield talley macias burris ratliff mccray madden kaufman beach\ngoff cash bolton mcfadden levine good byers kirkland kidd workman carney mcleod holcomb england\nfinch head hendrix sosa haney franks sargent downs rasmussen bird hewitt foreman oneil delacruz\nvinson dejesus hyde forbes gilliam guthrie wooten huber barlow boyle mcmahon buckner rocha puckett\nlangley knowles cooke velazquez vang rouse hartley mayfield elder rankin cowan lucero arroyo\nslaughter haas oconnell minor boucher archer boggs dougherty andersen newell crowe wang friedman\nbland swain pearce childs yarbrough galvan proctor meeks lozano rangel bacon villanueva schaefer\nrosado helms goss stinson smart lake ibarra hutchins covington crowley hatcher mackey bunch womack\npolk dodd childress childers camp villa dye springer mahoney dailey belcher lockhart griggs costa\nconnor brandt walden moser mccann akers lutz pryor law orozco mcallister lugo davies shoemaker\nrutherford newsome magee chamberlain blanton simms godfrey flanagan crum cordova escobar downing\nsinclair donahue krueger mcginnis gore farris webber corbett andrade lyon yoder hastings mcgrath\nspivey krause harden crabtree kirkpatrick arrington ritter mcghee bolden maloney gagnon dunbar ponce\npike mayes heard beatty mobley kimball butts montes braun hamm gibbons moyer manley herron plummer\nelmore cramer rucker blue pierson fontenot field rubio goldstein elkins wills novak hickey worley\ngorman katz dickinson broussard woodruff crow britton nance lehman bingham zuniga whaley shafer\ncoffman steward delarosa nix mata davila mccabe kessler bowling hinkle welsh pagan goldberg goins\ncrouch cuevas quinones mcdermott hendrickson samuels denton bergeron lam locke haines snell hoskins\nbyrne arias roe corbin beltran chappell hurt downey dooley tuttle couch payton mcelroy crockett\ngroves cartwright dickey mcgill dubois muniz self tolbert dempsey cisneros sewell latham vigil tapia\nrainey norwood stroud meade tipton lord kuhn hilliard bonilla teague gunn ho greenwood correa reece\npoe pineda phipps frey kaiser ames gunter schmitt milligan espinosa bowden vickers lowry pritchard\ncostello mcclellan lovell sheehan quick hatch dobson singh jeffries hollingsworth sorensen meza fink\ndonnelly burrell tomlinson colbert billings ritchie helton sutherland peoples mcqueen thomason\ngivens crocker vogel robison dunham coker swartz keys ladner richter hargrove edmonds brantley\nalbright murdock boswell muller quintero padgett kenney daly connolly inman quintana lund barnard\nvillegas simons land huggins tidwell sanderson bullard mcclendon duarte draper marrero dwyer abrams\nstover goode fraser crews bernal smiley godwin fish conklin mcneal baca esparza crowder bower\nbrewster mcneill rodrigues leal coates raines mccain mccord miner holbrook swift dukes carlisle\naldridge ackerman starks ricks holliday ferris hairston sheffield lange fountain marino doss betts\nkaplan carmichael bloom ruffin penn kern bowles sizemore larkin dupree silver seals metcalf\nhutchison henley farr castle mccauley hankins gustafson deal curran ash waddell ramey cates pollock\ncummins messer heller funk cornett palacios galindo cano hathaway singer pham enriquez salgado\npelletier painter wiseman blount hand feliciano houser doherty mead mcgraw swan capps blanco\nblackmon thomson mcmanus fair burkett post gleason ott dickens cormier voss rushing rosenberg hurd\ndumas benitez arellano story caudill bragg jaramillo huerta gipson colvin biggs vela platt tompkins\nmccollum dolan daley crump street sneed kilgore grove grimm davison brunson prater marcum devine\ndodge stratton rosas choi tripp ledbetter lay hightower feldman epps yeager posey scruggs cope\nstubbs richey overton trotter sprague cordero butcher burger stiles burgos woodson horner bassett\npurcell haskins gee akins ziegler spaulding hadley grubbs sumner murillo zavala shook lockwood\ndriscoll dahl thorpe redmond putnam mcwilliams mcrae romano joiner sadler hedrick hager hagen fitch\ncoulter thacker mansfield langston guidry ferreira corley conn rossi lackey baez saenz mcnamara\nmcmullen mckenna mcdonough link engel browne roper peacock eubanks drummond stringer pritchett\nparham mims landers ham grayson schafer egan timmons ohara keen hamlin finn cortes mcnair nadeau\nmoseley michaud rosen oakes kurtz jeffers calloway beal bautista winn suggs stern stapleton lyles\nlaird montano dawkins hagan goldman bryson barajas lovett segura metz lockett langford hinson\neastman rock hooks woody smallwood shapiro crowell whalen triplett hooker chatman aldrich cahill\nyoungblood ybarra stallings sheets reeder person pack connelly bateman abernathy winkler wilkes\nmasters hackett granger gillis schmitz sapp napier souza lanier gomes weir otero ledford burroughs\nbabcock ventura siegel dugan bledsoe atwood wray varner spangler anaya staley kraft fournier\nbelanger wolff thorne bynum burnette boykin swenson purvis pina khan duvall xiong kauffman healy\nengle corona benoit valle steiner spicer shaver randle lundy dow calvert staton neff kearney darden\noakley medeiros mccracken crenshaw block beaver perdue dill whittaker tobin washburn hogue goodrich\neasley bravo dennison shipley kerns jorgensen crain villalobos maurer longoria keene coon\nwitherspoon staples pettit kincaid eason madrid echols lusk wu stahl currie thayer shultz mcnally\nseay north maher gagne barrow nava moreland honeycutt hearn diggs whitten westbrook stovall ragland\nmunson meier looney kimble jolly hobson london goddard culver burr presley negron connell tovar\nhuddleston hammer ashby salter root pendleton oleary nickerson myrick judd jacobsen bain adair\nstarnes matos light busby herndon hanley bellamy doty bartley yazzie rowell parson gifford cullen\nchristiansen benavides barnhart talbot mock crandall connors bonds whitt gage bergman arredondo\naddison lujan dowdy jernigan huynh bouchard dutton rhoades ouellette kiser herrington hare blackman\nbabb allred rudd paulson ogden koenig geiger begay parra champion lassiter hawk esposito cho waldron\nransom prather chacon vick sands roark parr mayberry greenberg coley bruner whitman skaggs shipman\nmeans leary hutton romo medrano ladd kruse friend darling askew schulz alfaro tabor mohr gallo\nbermudez pereira bliss reaves flint comer boston woodall naquin guevara delong carrier pickens brand\ntilley schaffer read lim knutson fenton doran vogt vann prescott mclain landis corcoran zapata hyatt\nhemphill faulk call dove boudreaux aragon whitlock trejo tackett shearer saldana hanks gold driver\nmckinnon koehler champagne bourgeois pool keyes goodson foote early lunsford goldsmith flood winslow\nsams mccloud hough esquivel naylor loomis coronado ludwig braswell bearden huang fagan ezell\nedmondson cyr cronin nunn lemon guillory grier dubose traylor ryder dobbins coyle aponte whitmore\nsmalls rowan malloy cardona braxton borden humphries carrasco ruff metzger huntley hinojosa finney\nmadsen hills ernst dozier burkhart bowser peralta daigle whittington sorenson saucedo roche redding\nfugate avalos waite lind huston hay hawthorne hamby boyles boles faust crook beam barger hinds\ngallardo willoughby willingham eckert busch zepeda worthington tinsley hoff hawley carmona varela\nrector newcomb kinsey dube whatley strange ragsdale bernstein becerra yost mattson ly felder cheek\nhandy grossman gauthier escobedo braden beckman mott hillman flaherty dykes doe stockton stearns\nlofton kitchen coats cavazos beavers barrios tang parish mosher cardwell coles burnham weller lemons\nbeebe aguilera ring parnell harman couture alley schumacher redd dobbs blum blalock merchant ennis\ndenson cottrell brannon bagley aviles watt sousa rosenthal rooney dietz blank paquette mcclelland\nduff velasco lentz grubb burrows barbour ulrich shockley rader beyer mixon layton altman weathers\nstoner squires shipp priest lipscomb cutler caballero zimmer willett thurston storey medley epperson\nshah mcmillian baggett torrez laws hirsch dent poirier peachey farrar creech barth trimble dupre\nalbrecht sample lawler crisp conroy wetzel nesbitt murry jameson wilhelm patten minton matson\nkimbrough iverson guinn fortune croft toth pulliam nugent newby littlejohn dias canales bernier\nbaron singletary renteria pruett mchugh mabry landrum brower stoddard cagle stjohn scales kohler\nkellogg hopson gant tharp gann zeigler pringle hammons fairchild deaton chavis carnes rowley matlock\nkearns irizarry carrington starkey pepper lopes jarrell craven baum spain littlefield humphreys hook\nhigh etheridge cuellar chastain bundy speer skelton quiroz pyle portillo ponder moulton machado liu\nkillian hutson hitchcock dowling cloud burdick spann pedersen levin leggett hayward hacker dietrich\nbeaulieu barksdale wakefield snowden briscoe bowie berman ogle mcgregor laughlin helm burden\nwheatley schreiber pressley parris ng alaniz agee urban swann snodgrass schuster radford monk\nmattingly main harp girard cheney yancey wagoner ridley lombardo lau hudgins gaskins duckworth coe\ncoburn willey prado newberry magana hammonds elam whipple slade serna ojeda liles dorman diehl upton\nreardon michaels goetz eller bauman baer hummel brenner amaya adamson ornelas dowell cloutier\ncastellanos wing wellman saylor orourke moya montalvo kilpatrick durbin shell oldham kang garvin\nfoss branham bartholomew templeton maguire holton rider monahan mccormack beaty anders streeter\nnieto nielson moffett lankford keating heck gatlin delatorre callaway adcock worrell unger robinette\nnowak jeter brunner steen parrott overstreet nobles montanez clevenger brinkley trahan quarles\npickering pederson jansen grantham gilchrist crespo aiken schell schaeffer lorenz leyva harms dyson\nwallis pease leavitt cheng cavanaugh batts warden seaman rockwell quezada paxton linder houck\nfontaine durant caruso adler pimentel mize lytle cleary cason acker switzer salmon isaacs\nhigginbotham waterman vandyke stamper sisk shuler riddick redman mcmahan levesque hatton bronson\nbollinger arnett okeefe gerber gannon farnsworth baughman silverman satterfield mccrary kowalski\ngrigsby greco cabral trout rinehart mahon linton gooden curley baugh wyman weiner schwab schuler\nmorrissey mahan bunn thrasher spear waggoner qualls purdy mcwhorter mauldin gilman perryman newsom\nmenard martino graf billingsley artis simpkins salisbury quintanilla gilliland fraley foust crouse\nscarborough ngo grissom fultz marlow markham madrigal lawton barfield whiting varney schwarz gooch\narce wheat truong poulin hurtado selby gaither fortner culpepper coughlin brinson boudreau barkley\nbales stepp holm tan schilling morrell kahn heaton gamez causey brothers turpin shanks schrader meek\nisom hardison carranza yanez way scroggins schofield runyon ratcliff murrell moeller irby currier\nbutterfield ralston pullen pinson estep east carbone hawks ellington casillas spurlock sikes motley\nmccartney kruger isbell houle burk bone tomlin quigley neumann lovelace fennell cheatham bustamante\nskidmore hidalgo forman culp bowens betancourt aquino robb milner martel gresham wiles ricketts dowd\ncollazo bostic blakely sherrod power kenyon gandy ebert deloach bull allard sauer robins olivares\ngillette chestnut bourque paine hite hauser devore crawley chapa vu talbert poindexter meador\nmcduffie mattox kraus harkins choate wren sledge sanborn outlaw kinder geary cornwell barclay abney\nseward rhoads howland fortier benner vines tubbs troutman rapp mccurdy harder deluca westmoreland\nsouth havens guajardo ely clary seal meehan herzog guillen ashcraft waugh renner milam elrod\nchurchill breaux bolin asher windham tirado pemberton nolen noland knott emmons cornish christenson\nbrownlee barbee waldrop pitt olvera lombardi gruber gaffney eggleston banda archuleta still slone\nprewitt pfeiffer nettles mena mcadams henning gardiner cromwell chisholm burleson box vest oglesby\nmccarter lumpkin grey wofford vanhorn thorn teel swafford stclair stanfield ocampo herrmann hannon\narsenault roush mcalister hiatt gunderson forsythe duggan delvalle cintron wilks weinstein uribe\nrizzo noyes mclendon gurley bethea winstead maples guyton giordano alderman valdes polanco pappas\nlively grogan griffiths bobo arevalo whitson sowell rendon fernandes farrow benavidez ayres alicea\nstump smalley seitz schulte gilley gallant casper canfield wolford omalley mcnutt mcnulty mcgovern\nhardman harbin cowart chavarria brink beckett bagwell armstead anglin abreu reynoso krebs jett\nhoffmann greenfield forte burney broome sisson parent younger trammell partridge mace lomax lemieux\ngossett frantz fogle cooney broughton pence paulsen muncy mcarthur hollins beauchamp withers osorio\nmulligan hoyle foy dockery cockrell begley amador roby rains lindquist gentile everhart bohannon\nwylie sommers purnell fortin dunning breeden vail phelan phan cosby colburn boling biddle ledesma\ngaddis denney chow bueno berrios wicker tolliver thibodeaux nagle lavoie fisk do crist barbosa reedy\nmarch locklear kolb himes behrens beckwith beckham weems wahl shorter shackelford rees muse free\ncerda valadez thibodeau saavedra ridgeway reiter mchenry majors lachance keaton ferrara falcon\nclemens blocker applegate needham mojica kuykendall hamel escamilla doughty burchett ainsworth vidal\nupchurch thigpen strauss spruill sowers riggins ricker mccombs harlow buffington sotelo olivas\nnegrete morey macon logsdon lapointe bigelow bello westfall stubblefield peak lindley hein hawes\nfarrington edge breen birch wilde steed sepulveda reinhardt proffitt minter messina mcnabb maier\nkeeler gamboa donohue basham shinn crooks cota borders bills bachman tisdale tavares schmid pickard\ngulley fonseca delossantos condon clancy batista wicks wadsworth new martell lo littleton ison haag\nfolsom brumfield broyles brito mireles mcdonnell leclair hamblin gough fanning binder winfield\nwhitworth soriano palumbo newkirk mangum hutcherson comstock carlin beall bair wendt watters walling\nputman otoole morley mares lemus keener hundley dial damico billups strother mcfarlane lamm eaves\ncrutcher caraballo canty atwell taft siler rust rawls rawlings prieto niles mcneely mcafee hulsey\nhackney galvez escalante delagarza crider charlton bandy wilbanks stowe steinberg samson renfro\nmasterson massie lanham haskell hamrick fort dehart card burdette branson bourne babin aleman worthy\ntibbs sweat smoot slack paradis packard mull luce houghton gantt furman danner christianson burge\nashford arndt almeida stallworth shade searcy sager noonan mclemore mcintire maxey lavigne jobe\nireland ferrer falk coffin byrnes aranda apodaca stamps rounds peek olmstead lewandowski kaminski\nher dunaway bruns brackett amato reich mcclung lacroix koontz herrick hardesty flanders cousins\nclose cato cade vickery shank nagel dupuis croteau cotter cable stuckey stine porterfield pauley nye\nmoffitt knudsen hardwick goforth dupont blunt barrows barnhill shull rash loftis lemay kitchens\nhorvath grenier fuchs fairbanks culbertson calkins burnside beattie ashworth albertson wertz vo\nvaught vallejo turk tuck tijerina picard peterman marroquin marr lantz hoang demarco daily cone\nberube barnette wharton stinnett slocum scanlon sander pinto mancuso lima judge headley epstein\ncounts clarkson carnahan boren arteaga adame zook whittle whitehurst wenzel saxton reddick puente\nhandley haggerty earley devlin chaffin cady acuna solano sigler pollack pendergrass ostrander janes\nfrancois fine crutchfield chamberlin brubaker baptiste willson reis neeley mullin mercier lira\nlayman keeling higdon guest forrester espinal chapin warfield toledo pulido peebles nagy montague\nmello lear jaeger hogg graff furr cave canada soliz poore mendenhall mclaurin maestas low gable belt\nbarraza tillery snead pond neill mcculloch mccorkle lightfoot hutchings holloman harness dorn\ncouncil bock zielinski turley treadwell stpierre starling somers oswald merrick easterling bivens\ntruitt poston parry ontiveros olivarez moreau medlin lenz knowlton fairley cobbs chisolm bannister\nwoodworth toler ocasio noriega neuman moye milburn mcclanahan lilley hanes flannery dellinger\ndanielson conti blodgett beers weatherford strain karr hitt denham custer coble clough casteel\nbolduc batchelor ammons whitlow tierney staten sibley seifert schubert salcedo mattison laney\nhaggard grooms dix dees cromer cooks colson caswell zarate swisher ragan pridgen mcvey matheny\nlafleur franz ferraro dugger whiteside rigsby mcmurray lehmann large jacoby hildebrand hendrick\nheadrick goad fincher drury borges archibald albers woodcock trapp soares seaton monson luckett\nlindberg kopp keeton hsu healey garvey gaddy fain burchfield badger wentworth strand stack spooner\nsaucier sales ricci plunkett pannell ness leger hoy freitas fong elizondo duval beaudoin urbina\nstock rickard partin moe mcgrew mcclintock ledoux forsyth faison devries bertrand wasson tilton\nscarbrough pride oh leung irvine garber denning corral colley castleberry bowlin bogan beale baines\ntrue trice rayburn parkinson pak nunes mcmillen leahy kimmel higgs fulmer carden bedford taggart\nspearman register prichard morrill koonce heinz hedges guenther grice findley dover creighton boothe\nbayer arreola vitale valles raney osgood hanlon burley bounds worden weatherly vetter tanaka\nstiltner sell nevarez mosby montero melancon harter hamer goble gladden gist ginn akin zaragoza\ntowns tarver sammons royster oreilly muir morehead luster kingsley kelso grisham glynn baumann alves\nyount tamayo paterson oates menendez longo hargis greenlee gillen desantis conover breedlove sumpter\nscherer rupp reichert heredia creel cohn clemmons casas bickford belton bach williford whitcomb\ntennant sutter stull sessions mccallum manson langlois keel keegan dangelo dancy damron clapp\nclanton bankston oliveira mintz mcinnis martens mabe laster jolley hildreth hefner glaser duckett\ndemers brockman blais back alcorn agnew toliver tice seeley najera musser mcfall laplante galvin\nfajardo doan coyne copley clawson cheung barone wynne woodley tremblay stoll sparrow sparkman\nschweitzer sasser samples roney legg heim farias colwell christman bratcher winchester upshaw\nsoutherland sorrell sells mount mccloskey martindale luttrell loveless lovejoy linares latimer embry\ncoombs bratton bostick boss venable tuggle toro staggs sandlin jefferies heckman griffis crayton\nclem button browder thorton sturgill sprouse royer rousseau ridenour pogue perales peeples metzler\nmesa mccutcheon mcbee hornsby heffner corrigan armijo vue plante peyton paredes macklin hussey\nhodgson granados frias becnel batten almanza turney teal sturgeon meeker mcdaniels limon keeney kee\nhutto holguin gorham fishman fierro blanchette rodrigue reddy osburn oden lerma kirkwood keefer\nhaugen hammett chalmers brinkman baumgartner zhang valerio tellez steffen shumate sauls ripley\nkemper jacks guffey evers craddock carvalho blaylock banuelos balderas wooden wheaton turnbull\nshuman pointer mosier mccue ligon kozlowski johansen ingle herr briones southern snipes rickman\npipkin peace pantoja orosco moniz lawless kunkel hibbard galarza enos bussey settle schott salcido\nperreault mcdougal mccool haight garris ferry easton conyers atherton wimberly utley spellman\nsmithson slagle skipper ritchey rand petit osullivan oaks nutt mcvay mccreary mayhew knoll jewett\nharwood cardoza ashe arriaga zeller wirth whitmire stauffer rountree redden mccaffrey martz loving\nlarose langdon humes gaskin faber doll devito cass almond wingfield wingate villareal tyner smothers\nseverson reno pennell maupin leighton janssen hassell hallman halcomb folse fitzsimmons fahey\ncranford bolen battles battaglia wooldridge weed trask rosser regalado mcewen keefe fuqua echevarria\ndang caro boynton andrus wild viera vanmeter taber spradlin seibert provost prentice oliphant\nlaporte hwang hatchett hass greiner freedman covert chilton byars wiese venegas swank shrader\nroberge mullis mortensen mccune marlowe kirchner keck isaacson hostetler halverson gunther griswold\nfenner durden blackwood ahrens sawyers savoy nabors mcswain mackay loy lavender lash labbe jessup\nfullerton cruse crittenden correia centeno caudle canady callender alarcon ahern winfrey tribble\nstyles roden musgrove minnick fortenberry carrion bunting batiste woo whited underhill stillwell\nrauch pippin perrin messenger mancini lister kinard hartmann fleck broadway wilt treadway thornhill\nspeed spalding rafferty pitre patino ordonez linkous kelleher homan holiday galbraith feeney curtin\ncoward camarillo buss bunnell bolt beeler autry alcala witte wentz stidham shively nunley meacham\nmartins lemke lefebvre hynes horowitz hoppe holcombe dunne derr cochrane brittain bedard beauregard\ntorrence strunk soria simonson shumaker scoggins packer oconner moriarty kuntz ives hutcheson horan\nhales garmon fitts bohn atchison worth wisniewski vanwinkle sturm sallee prosser moen lundberg kunz\nkohl keane jorgenson jaynes funderburk freed frame durr creamer cosgrove berlin batson vanhoose\nthomsen teeter smyth redmon orellana maness lennon heflin goulet frick forney dollar bunker asbury\naguiar talbott southard pleasant mowery mears lemmon krieger hickson elston duong delgadillo dayton\ndasilva conaway catron bruton bradbury bordelon bivins bittner bergstrom beals abell whelan travers\ntejada pulley pino norfleet nealy maes loper held gatewood frierson freund finnegan cupp covey\ncatalano boehm bader yoon walston tenney sipes roller rawlins medlock mccaskill mccallister marcotte\nmaclean hughey henke harwell gladney gilson dew chism caskey brandenburg baylor villasenor veal\nthatcher stegall shore petrie nowlin navarrete muhammad lombard loftin lemaster kroll kovach\nkimbrell kidwell hershberger fulcher eng cantwell bustos boland bobbitt binkley wester weis verdin\ntong tiller sisco sharkey seymore rosenbaum rohr quinonez pinkston nation malley logue lessard\nlerner lebron krauss klinger halstead haller getz burrow alger shores scully pounds pfeifer perron\nnelms munn mcmaster mckenney manns knudson hutchens huskey goebel flagg cushman click castellano\ncarder bumgarner bible wampler spinks robson neel mcreynolds mathias maas loera kasper jenson florez\ncoons buckingham brogan berryman wilmoth wilhite thrash shephard seidel schulze roldan pettis obryan\nmaki mackie hatley frazer fiore falls chesser bui bottoms bisson benefield allman wilke trudeau timm\nshifflett rau mundy milliken mayers leake kohn huntington horsley hermann guerin fryer frizzell\nforet flemming fife criswell carbajal bozeman boisvert angulo wallen tapp silvers ramsay oshea orta\nmoll mckeever mcgehee linville kiefer ketchum howerton groce gass fusco corbitt betz bartels amaral\naiello yoo weddle sperry seiler runyan raley overby osteen olds mckeown matney lauer lattimore\nhindman hartwell fredrickson fredericks espino clegg carswell cambell burkholder woodbury welker\ntotten thornburg theriault stitt stamm stackhouse scholl saxon rife razo quinlan pinkerton olivo\nnesmith nall mattos leak lafferty justus giron geer fielder eagle drayton dortch conners conger\nboatwright billiot barden armenta tibbetts steadman slattery sides rinaldi raynor pinckney pettigrew\nnickel milne matteson halsey gonsalves fellows durand desimone cowley cowles brill barham barela\nbarba ashmore withrow valenti tejeda spriggs sayre salerno place peltier peel merriman matheson\nlowman lindstrom hyland giroux fries frasier earls dugas dabney collado briseno baxley word whyte\nwenger vanover vanburen thiel schindler schiller rigby pomeroy passmore marble manzo mahaffey\nlindgren laflamme greathouse fite ferrari calabrese bayne yamamoto wick townes thames steel reinhart\npeeler naranjo montez mcdade mast markley marchand leeper kong kellum hudgens hennessey hadden guess\ngainey coppola borrego bolling beane ault slaton poland pape null mulkey lightner langer hillard\nglasgow ethridge enright derosa baskin weinberg turman tinker somerville pardo noll lashley ingraham\nhiller hendon glaze cothran cooksey conte carrico apple abner wooley swope summerlin sturgis\nsturdivant stott spurgeon spillman speight roussel popp nutter mckeon mazza magnuson lanning kozak\njankowski heyward forster corwin callaghan bays wortham usher theriot sayers sabo poling loya\nlieberman laroche labelle howes harr garay fogarty everson durkin dominquez chaves chambliss witcher\nvieira vandiver terrill stoker schreiner moorman liddell lew lawhorn krug irons hylton hollenbeck\nherrin hembree hair goolsby goodin gilmer foltz dinkins daughtry caban brim briley bilodeau bear\nwyant vergara tallent swearingen stroup scribner quillen pitman monaco mccants maxfield martinson\nholtz flournoy brookins brody baumgardner straub sills roybal roundtree oswalt money mcgriff\nmcdougall mccleary maggard gragg gooding godinez doolittle donato cowell cassell bracken appel\nzambrano reuter perea nakamura monaghan mickens mcclinton mcclary marler kish judkins gilbreath\nfreese flanigan felts erdmann dodds chew brownell brazil boatright barreto slayton sandberg saldivar\npettway odum narvaez moultrie montemayor merrell lees keyser hoke hardaway hannan gilbertson fogg\ndumont deberry coggins carrera buxton bucher broadnax beeson araujo appleton amundson aguayo ackley\nyocum worsham shivers sanches sacco robey rhoden pender ochs mccurry madera luong knotts jackman\nheinrich hargrave gault comeaux chitwood child caraway boettcher bernhardt barrientos zink wickham\nwhiteman thorp stillman settles schoonover roque riddell pilcher phifer novotny macleod hardee haase\ngrider doucette clausen christmas bevins beamon badillo tolley tindall soule snook seale pitcher\npinkney pellegrino nowell nemeth nail mondragon mclane lundgren ingalls hudspeth hixson gearhart\nfurlong downes dibble deyoung cornejo camara brookshire boyette wolcott surratt sellars segal salyer\nreeve rausch philips labonte haro gower freeland fawcett eads driggers donley collett cage bromley\nboatman ballinger baldridge volz trombley stonge shanahan rivard rhyne pedroza matias mallard\njamieson hedgepeth hartnett estevez eskridge denman chiu chinn catlett carmack buie book bechtel\nbeardsley bard ballou windsor ulmer storm skeen robledo rincon reitz piazza munger moten mcmichael\nloftus ledet kersey groff fowlkes folk crumpton clouse bettis villagomez timmerman strom santoro\nroddy penrod musselman macpherson leboeuf harless haddad guido golding fulkerson fannin dulaney\ndowdell cottle ceja cate bosley benge albritton voigt trowbridge soileau seely rome rohde pearsall\npaulk orth nason mota mcmullin marquardt madigan hoag gillum gabbard fenwick fender eck danforth\ncushing cress creed cazares casanova bey bettencourt barringer baber stansberry schramm rutter\nrivero race oquendo necaise mouton montenegro miley mcgough marra macmillan lock lamontagne jasso\nhorst hetrick heilman gaytan gall fried fortney dingle desjardins dabbs burbank brigham breland\nbeaman banner arriola yarborough wallin treat toscano stowers reiss pichardo orton michels mcnamee\nmccrory leatherman kell keister horning hargett guay friday ferro deboer dagostino christ carper\nbowler blanks beaudry towle tafoya stricklin strader soper sonnier sigmon schenk saddler rodman\npedigo mendes lunn lohr lahr kingsbury jarman hume holliman hofmann haworth harrelson hambrick flick\nedmunds dacosta crossman colston chaplin carrell budd weiler waits valentino trantham tarr straight\nsolorio roebuck powe plank pettus palm pagano mink luker leathers joslin hartzell gambrell fears\ndeutsch cepeda carty caputo brewington bedell ballew applewhite warnock walz urena tudor reel pigg\nparton mickelson meagher mclellan mcculley mandel leech lavallee kraemer kling kipp kingston kehoe\nhochstetler harriman gregoire grabowski gosselin gammon fancher edens desai butt brannan armendariz\nwoolsey whitehouse whetstone ussery towne tower testa tallman studer strait steinmetz sorrells\nsauceda rolfe paddock mitchem mcginn mccrea luck lovato hazen gilpin gaynor fike devoe delrio curiel\nburkhardt bristol bode backus zinn watanabe wachter vanpelt turnage shaner schroder sato riordan\nquimby portis natale mckoy mccown marker kilmer hotchkiss hesse halbert gwinn godsey delisle\nchrisman canter arbogast angell acree yancy woolley wesson weatherspoon trainor stockman spiller\nsipe rooks reavis propst porras neilson mullens loucks llewellyn kumar koester klingensmith kirsch\nkester honaker hodson hennessy helmick garrity garibay fee drain casarez callis botello bay aycock\navant wingard wayman tully theisen szymanski stansbury segovia rainwater preece pirtle padron mincey\nmckelvey mathes larrabee kornegay klug ingersoll hecht germain eggers dykstra deering decoteau\ndeason dearing cofield carrigan brush bonham bahr aucoin appleby almonte yager womble wimmer weimer\nvanderpool stancil sprinkle romine remington pfaff peckham olivera meraz maze lathrop koehn hazelton\nhalvorson hallock haddock ducharme dehaven caruthers brehm bosworth bost blow bias beeman basile\nbane aikens wold walther tabb suber strawn stocks stocker shirey schlosser riedel rembert reimer\npyles pickle peele merriweather letourneau latta kidder hixon hillis hight herbst henriquez haygood\nhamill gabel fritts eubank duty dawes correll coffee cha bushey buchholz brotherton bridge botts\nbarnwell auger atchley westphal veilleux ulloa stutzman shriver ryals prior pilkington newport\nmoyers miracle marrs mangrum maddux lockard laing kuhl harney hammock hamlett felker doerr depriest\ncarrasquillo carothers bogle blood bischoff bergen albanese wyckoff vermillion vansickle thibault\ntetreault stickney shoemake ruggiero rawson racine philpot paschal mcelhaney mathison legrand\nlapierre kwan kremer jiles hilbert geyer faircloth ehlers egbert desrosiers dalrymple cotten cashman\ncadena breeding boardman alcaraz ahn wyrick therrien tankersley strickler puryear plourde pattison\npardue mcginty mcevoy landreth kuhns koon hewett giddens emerick eades deangelis cosme ceballos\nbirdsong benham bemis armour anguiano welborn tsosie storms shoup sessoms samaniego rood rojo\nrhinehart raby northcutt myer munguia morehouse more mcdevitt mateo mallett lozada lemoine kuehn\nhallett grim gillard gaylor garman gallaher feaster faris darrow dardar coney carreon braithwaite\nboylan boyett born bixler bigham benford barragan barnum zuber wyche westcott vining stoltzfus\nsimonds shupe sabin ruble rittenhouse richman perrone mulholland millan meister lomeli kite jemison\nhulett holler hickerson herold hazelwood griffen gause forde eisenberg dilworth charron chaisson\nbrodie bristow breunig brace boutwell bentz belk bayless batchelder baran baeza zimmermann\nweathersby volk toole theis tedesco shine searle schenck satterwhite ruelas rankins partida nesbit\nmorel menchaca levasseur kaylor johnstone hulse hollar hersey harrigan harbison guyer gish giese\ngerlach geller geisler falcone elwell doucet deese darr corder chafin byler bussell burdett brasher\nbowe bellinger bastian barner alleyne wilborn weil wegner wales tatro spitzer smithers schoen\nresendez parisi overman obrian mudd moy mclaren mahler maggio lindner lalonde lacasse laboy killion\nkahl jessen jamerson houk henshaw gustin groom graber durst duenas davey cundiff conlon colunga\ncoakley chiles capers buell bricker bissonnette birmingham bartz bagby zayas volpe treece toombs\nthom terrazas swinney skiles silveira shouse senn rambo ramage nez moua langham kyles holston\nhoagland herd feller denison carraway burford bickel ambriz abercrombie yamada winner weidner waddle\nverduzco thurmond swindle schrock sanabria rosenberger probst peabody olinger neighbors nazario\nmccafferty mcbroom mcabee mazur matherne mapes leverett killingsworth heisler griego grande gosnell\nfrankel franke ferrante fenn ehrlich christopherso chick chasse chancellor caton brunelle bly\nbloomfield babbitt azevedo abramson ables abeyta youmans wozniak wainwright stowell smitherman sites\nsamuelson runge rule rothman rosenfeld quan peake oxford owings olmos munro moreira leatherwood\nlarkins krantz kovacs kizer kindred karnes jaffe hubbell hosey hauck goodell favors erdman dvorak\ndoane cureton\n`;\n\n/** Lower-cased given names and common surnames. */\nexport const COMMON_HUMAN_NAMES: ReadonlySet<string> = new Set(\n `${GIVEN_NAMES} ${SURNAMES}`.split(/\\s+/).filter(Boolean),\n);\n","/**\n * @fileoverview Holder for the optional 92k human-names database\n * (`human-names-92k.json`, ~1.1 MB).\n *\n * The default `extract-human-name` entry never imports the JSON, so it\n * stays slim. Person-vs-organization detection then runs on the compact\n * built-in name list (`common-names.ts`) and word heuristics. The full\n * 92k database is loaded only when it is needed, one of two ways:\n *\n * - `loadHumanNamesDB()` lazy-loads it from a CDN at runtime (one shared\n * request, cached, resolves `null` on failure so an outage never breaks\n * name extraction), or\n * - import `extract-human-name/full`, which bundles the JSON and registers\n * it on import.\n *\n * `setHumanNamesDB(db)` registers a copy you already hold. Both entries\n * share one database, so importing `extract-human-name/full` once enables\n * it for the slim import too.\n */\n\n/** Lowercase name → 1 (given name) or 2 (surname). */\nexport type HumanNamesDB = Record<string, number>;\n\n/** Published copy of the names JSON, served by jsDelivr from npm. */\nexport const HUMAN_NAMES_DB_CDN_URL =\n \"https://cdn.jsdelivr.net/npm/extract-human-name/human-names-92k.json\";\n\nlet namesDB: HumanNamesDB | null = null;\nlet loading: Promise<HumanNamesDB | null> | null = null;\n\n/** Registers a names database (or `null` to clear it). */\nexport function setHumanNamesDB(db: HumanNamesDB | null): void {\n namesDB = db;\n loading = null;\n}\n\n/** The registered names database, or `null` when none is loaded. */\nexport function getHumanNamesDB(): HumanNamesDB | null {\n return namesDB;\n}\n\nexport interface LoadHumanNamesDBOptions {\n /** Where to fetch the JSON from. Defaults to {@link HUMAN_NAMES_DB_CDN_URL}. */\n url?: string;\n /** Injectable fetch, for tests and non-browser runtimes. */\n fetch?: typeof fetch;\n}\n\n/**\n * Lazy-loads the names database from a CDN and registers it. Concurrent\n * and repeat calls share one request; once loaded it resolves immediately.\n * Resolves `null` (and leaves the compact-list fallback in place) if the\n * fetch fails, so a CDN outage never breaks name extraction. A failed\n * load is not cached, so a later call can retry.\n */\nexport function loadHumanNamesDB(\n options: LoadHumanNamesDBOptions = {},\n): Promise<HumanNamesDB | null> {\n if (namesDB) return Promise.resolve(namesDB);\n if (loading) return loading;\n\n const { url = HUMAN_NAMES_DB_CDN_URL, fetch: fetchImpl = globalThis.fetch } =\n options;\n\n const request: Promise<HumanNamesDB | null> = Promise.resolve()\n .then(() => fetchImpl(url))\n .then((res) => {\n if (!res.ok) throw new Error(`HTTP ${res.status}`);\n return res.json();\n })\n .then((db: HumanNamesDB) => {\n if (!db || typeof db !== \"object\") throw new Error(\"invalid names JSON\");\n namesDB = db;\n return db;\n })\n .catch(() => null)\n .finally(() => {\n if (loading === request) loading = null;\n });\n loading = request;\n return request;\n}\n","import { TERMS_ORG, TERMS_QUALIFICATIONS, ORG_PATTERNS } from \"./constants\";\nimport { COMMON_HUMAN_NAMES } from \"./common-names\";\nimport { getHumanNamesDB } from \"./human-names-db\";\n\n/**\n * Whether a single lower-cased word is a common given name or surname.\n *\n * Uses the 92k-entry database when one is loaded (see human-names-db.ts),\n * and the compact built-in list otherwise. The sources are keyed in\n * lower case, so callers must pass a lower-cased word.\n */\nfunction isKnownHumanNameWord(word: string): boolean {\n const db = getHumanNamesDB();\n if (db) return db[word] === 1 || db[word] === 2;\n return COMMON_HUMAN_NAMES.has(word);\n}\n\n/**\n * Validates whether a provided name string conceptually applies to a registered organization,\n * corporation, publication, or government entity vs a discrete human.\n *\n * @param {string} nameString - The analyzed string representation.\n * @returns {boolean} `true` if heuristically categorized as an organization.\n */\nexport function isOrganization(nameString: string): boolean {\n if (!nameString) return false;\n\n const nameLower = nameString.toLowerCase().replace(/[^\\w\\s]/g, \" \");\n const words = nameLower.split(/\\s+/).filter(Boolean);\n\n // Short rigid acronym block identifies rapid organizations (e.g., NAACP, WHO)\n if (/^[A-Z]{2,6}$/.test(nameString.trim())) {\n return true;\n }\n\n // Organization dict scan. Roughly a quarter of the dictionary doubles as a\n // human given name or surname — \"doe\" (Dept. of Energy) and \"jones\" (Dow\n // Jones) are in there next to \"institution\" and \"reuters\" — so a lone\n // ambiguous hit is not enough to call \"John Doe\" an organization. A single\n // *unambiguous* term is decisive; ambiguous ones only count in pairs, which\n // is what carries firm names like \"Morgan Stanley\" and \"Wells Fargo\".\n const orgHits = words.filter((word) => TERMS_ORG.has(word));\n const decisiveOrgHits = orgHits.filter((word) => !isKnownHumanNameWord(word));\n if (decisiveOrgHits.length > 0 || orgHits.length > 1) return true;\n\n // Qualification dict scan (counter-balance for \"Professor Institute ABC\")\n for (const word of words) {\n if (TERMS_QUALIFICATIONS.has(word)) return false;\n }\n\n // Last, First name inversion standard\n if (/,\\s*\\w+/.test(nameString)) {\n return false;\n }\n\n // Robust standard organizational lexical phrases match\n for (const pattern of ORG_PATTERNS) {\n if (pattern.test(nameString)) return true;\n }\n\n // Arbitrary length fail-over. Most humans lack > 4 distinct name elements.\n if (words.length > 4 && !nameString.includes(\",\")) return true;\n\n // Cross-reference against the common human-names list. The list is keyed in\n // lower case, and `words` is already lower-cased above, so the two\n // line up without any re-casing.\n return !words.some(isKnownHumanNameWord) && words.length > 2;\n}\n","/**\n * @fileoverview Resolves strings containing humans and organizations into citation objects.\n */\n\nimport type {\n AuthorType,\n HumanNameOptions,\n HumanNameResult,\n} from \"./types/types\";\nimport { splitMultipleAuthors } from \"./author-splitter\";\nimport {\n cleanProfessionalQualifications,\n extractHumanNameParts,\n} from \"./name-parser\";\nimport { isOrganization } from \"./is-organization\";\n\nexport * from \"./types/types\";\nexport * from \"./constants\";\nexport * from \"./name-parser\";\nexport * from \"./author-splitter\";\nexport * from \"./is-organization\";\n\n/**\n * Systematically extracts, characterizes, and strictly structures citation outputs\n * from arbitrary, mixed author textual inputs (e.g., parsing debate cards).\n *\n * Determines whether authors are individual entities, multiple partners, or institutional organizations,\n * outputting both standard explicit citation and shorthand forms.\n *\n * @param {string} author - Raw unformatted author string fragment (e.g., \"by: Dr. John Smith and Jane Doe\").\n * @param {HumanNameOptions} options - Configuration guidelines for shortening formats or ET AL thresholds.\n * @returns {HumanNameResult} Cleanly typed compilation resolving specific citation blocks.\n */\nexport function extractHumanName(\n author: string,\n options: HumanNameOptions = {},\n): HumanNameResult {\n const { formatCiteShortenAuthor = false, maxAuthorsBeforeEtAl = 2 } = options;\n\n if (!author || typeof author !== \"string\") {\n return { author_cite: \"\", author_short: \"\", author_type: 4 };\n }\n\n // Baseline sanitize prefix markers and erratic structural spaces\n const sanitized = author\n .trim()\n .replace(/^by:?\\s*/i, \"\")\n .replace(/\\s{2,}/g, \" \");\n\n const authorNames = splitMultipleAuthors(sanitized);\n if (authorNames.length === 0) {\n return { author_cite: \"\", author_short: \"\", author_type: 4 };\n }\n\n // Sequentially digest discrete segment bounds\n const processedAuthors = authorNames.map((authorName) => {\n const cleanedAuthorName = cleanProfessionalQualifications(authorName);\n const isOrg = isOrganization(cleanedAuthorName);\n const nameParts = extractHumanNameParts(cleanedAuthorName);\n\n return {\n original: authorName,\n cleaned: cleanedAuthorName,\n nameParts,\n isOrg,\n };\n });\n\n // Calculate cardinality-based author classification schema parameter\n let authorType: AuthorType = 0;\n if (processedAuthors.length === 1) {\n authorType = processedAuthors[0].isOrg ? 4 : 1;\n } else if (processedAuthors.length === 2) {\n authorType = 2;\n } else if (processedAuthors.length > 2) {\n authorType = 3;\n }\n\n // Iterate structured formatting application\n const formattedAuthors = processedAuthors.map((item) => {\n if (item.isOrg) {\n const maxOrgNameLength = 60;\n let orgName = item.cleaned || item.original;\n\n // Limit absurdly long org names reasonably\n if (orgName.length > maxOrgNameLength) {\n const breakAt = orgName.slice(0, maxOrgNameLength).lastIndexOf(\" \");\n orgName = orgName.substring(\n 0,\n breakAt > 0 ? breakAt : maxOrgNameLength,\n );\n }\n return { cite: orgName, short: orgName };\n }\n\n const { firstname, middle, lastname, title, honorific } =\n item.nameParts || {};\n if (!lastname) {\n return {\n cite: item.cleaned || item.original,\n short: item.cleaned || item.original,\n };\n }\n\n let finalFirst = firstname;\n if (middle) finalFirst += ` ${middle}`;\n\n // Applying abbreviated initializations to forenames conditionally\n if (formatCiteShortenAuthor && finalFirst) {\n finalFirst = finalFirst\n .split(/\\s+/)\n .map((p) => `${p[0] || \"\"}.`)\n .join(\" \");\n }\n\n let finalLast = lastname;\n if (title) finalLast = `${title} ${finalLast}`;\n\n let citeCompile = `${finalLast}, ${finalFirst}`.trim();\n if (honorific) citeCompile += `, ${honorific}`;\n\n return {\n cite: citeCompile.replace(/,\\s*$/, \"\"),\n short: finalLast,\n };\n });\n\n let authorCite = \"\";\n let authorShort = \"\";\n\n // Combine components explicitly via inferred structure type\n if (authorType === 1 || authorType === 4) {\n authorCite = formattedAuthors[0]?.cite ?? \"\";\n authorShort = formattedAuthors[0]?.short ?? \"\";\n } else if (authorType === 2) {\n authorCite = `${formattedAuthors[0]?.cite} & ${formattedAuthors[1]?.cite}`;\n authorShort = `${formattedAuthors[0]?.short} & ${formattedAuthors[1]?.short}`;\n } else if (authorType === 3) {\n if (processedAuthors.length <= maxAuthorsBeforeEtAl) {\n const last = formattedAuthors.pop();\n authorCite = formattedAuthors.map((a) => a.cite).join(\", \");\n if (last) authorCite += ` & ${last.cite}`;\n authorShort = `${formattedAuthors[0]?.short} et al.`;\n } else {\n authorCite = `${formattedAuthors[0]?.cite} et al.`;\n authorShort = `${formattedAuthors[0]?.short} et al.`;\n }\n } else {\n // Graceful exception escape\n const genericClean = cleanProfessionalQualifications(author);\n authorCite = genericClean || author;\n authorShort = genericClean || author;\n }\n\n return {\n author_cite: authorCite,\n author_short: authorShort,\n author_type: authorType,\n };\n}\n"],"mappings":"AAOA,SAAgB,EAAqB,GACnC,IAAK,EAAc,MAAO,GAE1B,IAAI,EAAa,EAAa,QAAQ,kBAAmB,IAGzD,MAAI,8BAA8B,KAAK,GAC9B,EAAW,MAAM,WAAW,OAAO,SAK1C,2BAA2B,KAAK,IAChC,sBAAsB,KAAK,IAE3B,EAAa,EAAW,QAAQ,4BAA6B,OACtD,EACJ,MAAM,iCACN,IAAK,GAAM,EAAE,QACb,OAAO,UAIR,iCAAiC,KAAK,GACjC,EACJ,MAAM,oBACN,IAAK,GAAM,EAAE,QACb,OAAO,UAIZ,EAAa,EACV,QAAQ,cAAe,OAEvB,QAAQ,yBAA0B,OAE9B,EAAW,MAAM,WAAW,OAAQ,GAAM,EAAE,OAAO,OAAS,GACrE,oECpCA,IAAa,EAAY,IAAI,IAC1B,y4EAuBkE,MAAM,MAO9D,EAAuB,IAAI,IAAI,CAC1C,KACA,SACA,YACA,YACA,SACA,YACA,WACA,MACA,QACA,aACA,aACA,SACA,WACA,gBACA,YACA,SACA,WACA,OACA,OACA,SACA,UACA,SACA,gBACA,SACA,SACA,YACA,YACA,WACA,OACA,QACA,YACA,SACA,WACA,UACA,UACA,UACA,UACA,WACA,aACA,SACA,UACA,SACA,YACA,UACA,WACA,YACA,QACA,cACA,UACA,UACA,QACA,WACA,QACA,UACA,aACA,MACA,YACA,YACA,WACA,WACA,SACA,SACA,aACA,SACA,UACA,UACA,QACA,SACA,cACA,OACA,YACA,WACA,OACA,KACA,MACA,SACA,MACA,QAMW,EAAkC,CAC7C,+DACA,sMACA,iZACA,kkBACA,0SACA,2mCACA,iBACA,gBACA,qBACA,gZAMW,EAAyB,CACpC,iXACA,kTACA,m8BAMW,EAAc,CACzB,UAAW,IAAI,IAAI,CACjB,MACA,UACA,KACA,KACA,KACA,MACA,KACA,IACA,MACA,KACA,KACA,MACA,KACA,OACA,KACA,MACA,MACA,KACA,QAEF,OAAQ,IAAI,IAAI,CACd,KACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,MACA,QACA,KACA,MACA,QAEF,MAAO,IAAI,IAAI,CACb,K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"}
|
|
1
|
+
{"version":3,"file":"extract-human-name.cjs.js","names":["splitMultipleAuthors","authorString","normalized","replace","test","split","filter","Boolean","map","s","trim","a","length","Object","defineProperty","exports","Symbol","toStringTag","value","TERMS_ORG","Set","TERMS_QUALIFICATIONS","PROFESSIONAL_PATTERNS","ORG_PATTERNS","PARSE_LISTS","honorific","prefix","title","cleanProfessionalQualifications","authorName","cleaned","pattern","lastWord","pop","has","toLowerCase","extractHumanNameParts","input","result","firstname","middle","lastname","processedInput","isUppercase","toUpperCase","isLowercase","shouldFixCase","parts","titleIndex","findIndex","part","splice","honorificIndex","join","i","commaIndex","endsWith","shift","fixCase","str","word","charAt","slice","COMMON_HUMAN_NAMES","HUMAN_NAMES_DB_CDN_URL","namesDB","loading","getHumanNamesDB","isKnownHumanNameWord","db","isOrganization","nameString","words","orgHits","includes","some","extractHumanName","author","options","formatCiteShortenAuthor","maxAuthorsBeforeEtAl","author_cite","author_short","author_type","authorNames","processedAuthors","cleanedAuthorName","isOrg","original","nameParts","authorType","formattedAuthors","item","maxOrgNameLength","orgName","breakAt","lastIndexOf","substring","cite","short","finalFirst","p","finalLast","citeCompile","authorCite","authorShort","last","genericClean","loadHumanNamesDB","Promise","resolve","url","fetch","fetchImpl","globalThis","request","then","res","ok","Error","status","json","catch","finally","setHumanNamesDB"],"sources":["../author-splitter.ts","../constants.ts","../name-parser.ts","../common-names.ts","../human-names-db.ts","../is-organization.ts","../human-name-recognizer.ts"],"sourcesContent":["/**\n * Safely partitions a comprehensive author byline into discrete individual names.\n * Applies sophisticated token replacement and pattern recognition to discern standard splits.\n *\n * @param {string} authorString - The source byline string (e.g., \"John Doe, Jane Smith, and Alex Jones\").\n * @returns {string[]} An array containing individual un-parsed author name segments.\n */\nexport function splitMultipleAuthors(authorString: string): string[] {\n if (!authorString) return [];\n\n let normalized = authorString.replace(/\\s+et\\s+al\\.?/gi, \"\");\n\n // Pattern A: Last, First & Last, First Formats\n if (/\\w+,\\s*\\w+\\s*&\\s*\\w+,\\s*\\w+/.test(normalized)) {\n return normalized.split(/\\s*&\\s*/).filter(Boolean);\n }\n\n // Pattern B: Mixed comma + \"and\" series\n if (\n /\\w+,\\s*\\w+,\\s*\\w+,\\s*\\w+/.test(normalized) ||\n /\\w+\\s\\w+,\\s\\w+\\s\\w+/.test(normalized)\n ) {\n normalized = normalized.replace(/,\\s*(and|&)\\s*(?=[^,]*$)/i, \" & \");\n return normalized\n .split(/\\s*(?:,|&)\\s*(?=[^,]*(?:,|$))/)\n .map((s) => s.trim())\n .filter(Boolean);\n }\n\n // Pattern C: Standard \"and\" / \"&\" conjunction block\n if (/\\w+\\s\\w+\\s+(and|&)\\s+\\w+\\s\\w+/i.test(normalized)) {\n return normalized\n .split(/\\s+(?:and|&)\\s+/i)\n .map((s) => s.trim())\n .filter(Boolean);\n }\n\n // Fallback broad delimiter standardisation\n normalized = normalized\n .replace(/\\s+and\\s+/gi, \" & \")\n // Break on semi-colons and commas not enclosed by parenthesis blocks (e.g., degrees parsing fallback).\n .replace(/\\s*[,;]\\s*(?![^(]*\\))/g, \" & \");\n\n return normalized.split(/\\s*&\\s*/).filter((a) => a.trim().length > 0);\n}\n","/**\n * @fileoverview Constants and dictionaries for human name parsing and organization detection.\n */\n\n/**\n * Common organization terms used for heuristic detection.\n * Encoded as a `Set` for O(1) lookup performance.\n */\nexport const TERMS_ORG = new Set(\n (\"abc,ag,ap,academy,advisors,agency,airbnb,amazon,america,american,apple,associated,association,\" +\n \"atlantic,attorneys,authority,axel,bank,baptiste,bbc,bertelsmann,blackrock,bloomberg,bmw,boston,\" +\n \"broadcasting,bureau,business,buzzfeed,cambridge,capital,cbs,center,chase,chicago,china,church,citigroup,\" +\n \"clinic,club,cnn,coca-cola,college,commission,communications,condé,consulting,corp,corps,costco,daily,\" +\n \"department,der,deutsche,division,dow,economist,enterprises,eu,european,fabrication,facebook,fargo,\" +\n \"ferrari,financial,ford,forbes,fox,france,fund,gannett,general,global,globe,gm,gmbh,goldman,google,\" +\n \"group,guardian,harvard,hearst,herald,hill,holdings,home,honda,hospital,huffington,ibm,inc,industries,\" +\n \"institute,intel,international,investments,jazeera,japan,jones,jpmorgan,lancet,laboratories,law,legal,\" +\n \"linkedin,llc,los,ltd,manufacturing,macy's,mcdonald's,media,medical,mercedes-benz,meta,microsoft,ministry,\" +\n \"mit,morgan,mosque,msnbc,nast,national,nato,nbc,netflix,news,newsweek,new,nike,nordstrom,npr,ny,organization,\" +\n \"oxford,país,partners,pbs,pentagon,plc,politico,porsche,post,press,productions,r&d,regiment,retail,reuters,\" +\n \"research,rt,sachs,school,science,scientific,solutions,south,spacex,spiegel,springer,stanford,stanley,\" +\n \"starbucks,straits,studios,sydney,synagogue,systems,target,team,tech,techcrunch,temple,tesla,the,thomson,\" +\n \"times,toronto,toyota,trust,twitter,uber,union,united,university,usa,valley,vanguard,vice,volkswagen,volvo,\" +\n \"vox,wall,walmart,welle,wells,who,white,wired,worldwide,works,world,wsj,york,yorker,ipcc,un,unep,undp,unicef,\" +\n \"wto,imf,oecd,cia,fbi,nsa,epa,fda,cdc,nih,nasa,noaa,usgs,doe,dod,state,treasury,commerce,labor,education,\" +\n \"energy,interior,agriculture,transportation,housing,urban,development,veterans,affairs,homeland,security,\" +\n \"justice,defense,health,human,services,congressional,budget,office,cbo,government,accountability,gao,management,\" +\n \"omb,federal,reserve,fed,securities,exchange,sec,trade,ftc,sciences,nas,advancement,aaas,brookings,institution,\" +\n \"heritage,foundation,cato,aei,enterprise,rand,corporation,strategic,csis,peterson,economics,council,foreign,\" +\n \"relations,cfr,cnas,monetary,petroleum,exporting,countries,opec,north,treaty,african,asean,southeast,asian,\" +\n \"nations,g7,g8,g20,seven,eight,twenty,assembly,court,icj,criminal,icc,ilo,food,fao,unesco,cultural,\" +\n \"telecommunication,itu,meteorological,wmo,maritime,imo,civil,aviation,icao,atomic,iaea,prohibition,chemical,\" +\n \"weapons,opcw,comprehensive,nuclear,test,ban,ctbto,preparatory\").split(\",\"),\n);\n\n/**\n * Qualification terms that suggest a string refers to a person rather than an organization.\n * Encoded as a `Set` for O(1) lookup performance.\n */\nexport const TERMS_QUALIFICATIONS = new Set([\n \"is\",\n \"senior\",\n \"associate\",\n \"professor\",\n \"fellow\",\n \"assistant\",\n \"lecturer\",\n \"ceo\",\n \"staff\",\n \"strategist\",\n \"specialist\",\n \"worked\",\n \"directed\",\n \"correspondent\",\n \"president\",\n \"author\",\n \"director\",\n \"prof\",\n \"asst\",\n \"editor\",\n \"analyst\",\n \"degree\",\n \"administrator\",\n \"served\",\n \"member\",\n \"institute\",\n \"economist\",\n \"reporter\",\n \"head\",\n \"heads\",\n \"newspaper\",\n \"deputy\",\n \"advocate\",\n \"colonel\",\n \"officer\",\n \"founder\",\n \"founded\",\n \"visiting\",\n \"journalist\",\n \"former\",\n \"retired\",\n \"expert\",\n \"executive\",\n \"manager\",\n \"doctoral\",\n \"candidate\",\n \"chief\",\n \"contributor\",\n \"student\",\n \"blogger\",\n \"chair\",\n \"chairman\",\n \"major\",\n \"general\",\n \"ambassador\",\n \"phd\",\n \"secretary\",\n \"physicist\",\n \"engineer\",\n \"research\",\n \"office\",\n \"school\",\n \"department\",\n \"writer\",\n \"teacher\",\n \"advisor\",\n \"award\",\n \"center\",\n \"commentator\",\n \"rand\",\n \"brookings\",\n \"heritage\",\n \"cato\",\n \"un\",\n \"aei\",\n \"forbes\",\n \"nyt\",\n \"cbo\",\n]);\n\n/**\n * Professional qualification regex patterns to prune from author names before parsing.\n */\nexport const PROFESSIONAL_PATTERNS: RegExp[] = [\n /\\b(professor|prof|dr|doctor|phd|md|ms|mrs|mr|miss)\\b\\.?\\s*/gi,\n /\\b(senior|associate|assistant|visiting|emeritus|distinguished)\\s+(professor|fellow|lecturer|researcher|scientist|analyst|director|editor|writer|author|correspondent|reporter|journalist)\\b\\.?\\s*/gi,\n /\\b(political|economic|social|environmental|climate|energy|security|military|defense|foreign|international|public|health|medical|legal|business|financial|data|computer|software|artificial|intelligence|ai)\\s+(scientist|analyst|expert|specialist|researcher|scholar|fellow|consultant|advisor|director|manager|officer|correspondent|reporter|journalist|writer|author|editor|commentator|blogger)\\b\\.?\\s*/gi,\n /\\b(norwegian|american|british|canadian|german|french|chinese|japanese|russian|indian|brazilian|australian|european|asian|african|latin|middle|eastern|western|northern|southern)\\s+(political|economic|social|environmental|climate|energy|security|military|defense|foreign|international|public|health|medical|legal|business|financial|data|computer|software|artificial|intelligence|ai)\\s+(scientist|analyst|expert|specialist|researcher|scholar|fellow|consultant|advisor|director|manager|officer|correspondent|reporter|journalist|writer|author|editor|commentator|blogger)\\b\\.?\\s*/gi,\n /\\b(worked|served|directed|founded|established|created|developed|designed|built|managed|led|headed|chaired|presided|authored|wrote|published|edited|reported|covered|analyzed|studied|researched|investigated|examined|evaluated|assessed|reviewed|critiqued|commented|blogged|tweeted|posted)\\b\\.?\\s*/gi,\n /\\b(at|in|for|with|from|to|of|the|a|an)\\s+(university|college|institute|institution|organization|company|corporation|agency|department|ministry|government|congress|parliament|senate|house|assembly|council|board|committee|commission|foundation|center|centre|lab|laboratory|research|think|tank|policy|strategy|consulting|advisory|media|news|press|publication|journal|magazine|newspaper|website|blog|podcast|tv|television|radio|broadcast|network|channel|station|service|bureau|office|headquarters|hq|main|central|regional|local|national|international|global|worldwide|federal|state|provincial|municipal|city|town|village|community|society|association|union|federation|alliance|partnership|collaboration|cooperation|joint|shared|common|public|private|non-profit|nonprofit|ngo|charity|philanthropic|educational|academic|scholarly|scientific|technical|professional|commercial|business|corporate|industrial|financial|economic|political|social|cultural|environmental|climate|energy|security|military|defense|foreign|international|public|health|medical|legal|business|financial|data|computer|software|artificial|intelligence|ai)\\b\\.?\\s*/gi,\n /[,;]\\s*[^,;]*$/,\n /\\s+&\\s+[^&]*$/,\n /\\s+and\\s+[^and]*$/i,\n /\\s+(political|economic|social|environmental|climate|energy|security|military|defense|foreign|international|public|health|medical|legal|business|financial|data|computer|software|artificial|intelligence|ai)\\s+(scientist|analyst|expert|specialist|researcher|scholar|fellow|consultant|advisor|director|manager|officer|correspondent|reporter|journalist|writer|author|editor|commentator|blogger)\\b.*$/gi,\n];\n\n/**\n * Common organizational regex patterns for detection.\n */\nexport const ORG_PATTERNS: RegExp[] = [\n /\\b(inc|ltd|llc|corp|corporation|company|co\\.?|group|associates|partners|consulting|services|solutions|systems|technologies|international|global|worldwide|national|federal|state|local|department|ministry|agency|bureau|office|commission|committee|council|board|institute|foundation|center|centre|organization|association|society|union|federation|alliance|coalition)\\b/i,\n /\\b(united|american|british|canadian|european|international|world|global|national|federal|state|local)\\s+(states|kingdom|nations|organization|union|federation|government|department|ministry|agency|bureau|office|commission|committee|council|board|institute|foundation|center|centre|association|society)\\b/i,\n /\\b(intergovernmental|governmental|non-governmental|nonprofit|non-profit|charitable|philanthropic|educational|academic|research|scientific|technical|professional|commercial|business|corporate|industrial|financial|economic|political|social|cultural|environmental|climate|energy|security|military|defense|foreign|international|public|health|medical|legal|data|computer|software|artificial|intelligence|ai)\\s+(panel|committee|commission|council|board|institute|foundation|center|centre|organization|association|society|union|federation|alliance|coalition|partnership|collaboration|cooperation|joint|shared|common|public|private|ngo|charity|philanthropic|educational|academic|scholarly|scientific|technical|professional|commercial|business|corporate|industrial|financial|economic|political|social|cultural|environmental|climate|energy|security|military|defense|foreign|international|public|health|medical|legal|data|computer|software|artificial|intelligence|ai)\\b/i,\n];\n\n/**\n * Pre-compiled dictionary lists for standard parsing extraction.\n */\nexport const PARSE_LISTS = {\n honorific: new Set([\n \"esq\",\n \"esquire\",\n \"jr\",\n \"sr\",\n \"ii\",\n \"iii\",\n \"iv\",\n \"v\",\n \"phd\",\n \"md\",\n \"ms\",\n \"mrs\",\n \"mr\",\n \"miss\",\n \"dr\",\n \"dds\",\n \"dvm\",\n \"jd\",\n \"cpa\",\n ]),\n prefix: new Set([\n \"de\",\n \"van\",\n \"von\",\n \"der\",\n \"den\",\n \"vel\",\n \"le\",\n \"la\",\n \"da\",\n \"di\",\n \"del\",\n \"della\",\n \"do\",\n \"dos\",\n \"das\",\n ]),\n title: new Set([\n \"mr\",\n \"mrs\",\n \"ms\",\n \"miss\",\n \"dr\",\n \"rev\",\n \"prof\",\n \"sir\",\n \"madam\",\n \"lord\",\n \"lady\",\n ]),\n};\n","import { PROFESSIONAL_PATTERNS, PARSE_LISTS } from \"./constants\";\n\n/**\n * Represents the structural components of a globally recognizable human name.\n */\nexport interface ParsedNameParts {\n /** Academic or professional title (e.g. Dr, Mr, Prof) */\n title: string;\n /** Given name */\n firstname: string;\n /** Additional given names */\n middle: string;\n /** Family name / Surname (includes standard name prefixes like van, de) */\n lastname: string;\n /** Appendages, degrees, or generational suffixes (e.g., Jr, Ph.D) */\n honorific: string;\n}\n\n/**\n * Removes professional qualifications, post-nominals, and working titles from an author name.\n * @param {string} authorName - The raw string name.\n * @returns {string} The cleaned author name without credentials.\n */\nexport function cleanProfessionalQualifications(authorName: string): string {\n if (!authorName) return \"\";\n\n let cleaned = authorName.trim();\n\n // Strip each known qualification pattern\n for (const pattern of PROFESSIONAL_PATTERNS) {\n cleaned = cleaned.replace(pattern, \" \");\n }\n\n // Eliminate redundant spaces and leading punctuation\n cleaned = cleaned\n .replace(/\\s+/g, \" \")\n .replace(/^[,;.\\s]+/, \"\")\n .trim();\n\n // Strip trailing punctuation, but keep the period of a trailing\n // generational suffix or degree (\"Jr.\", \"Sr.\", \"Esq.\") — the\n // strip would otherwise eat it.\n const lastWord = cleaned.split(/\\s+/).pop() ?? \"\";\n const endsInHonorific = PARSE_LISTS.honorific.has(\n lastWord.toLowerCase().replace(/\\.$/, \"\"),\n );\n if (!endsInHonorific) {\n cleaned = cleaned.replace(/[,;.\\s]+$/, \"\").trim();\n }\n\n return cleaned;\n}\n\n/**\n * Parses a full biological name into its primary components.\n * Accounts for alias removal, normalization of case, extraction of suffixes,\n * handling of complex multipart last names, and common prefix combinations.\n *\n * @see https://en.wikipedia.org/wiki/List_of_family_name_affixes\n *\n * @param {string} input - The raw, full name string to extract components from.\n * @returns {ParsedNameParts} An object mapping `title`, `firstname`, `middle`, `lastname`, and `honorific`.\n */\nexport const extractHumanNameParts = (input: string): ParsedNameParts => {\n const result: ParsedNameParts = {\n title: \"\",\n firstname: \"\",\n middle: \"\",\n lastname: \"\",\n honorific: \"\",\n };\n\n if (!input) return result;\n\n let processedInput = input.trim();\n const isUppercase = processedInput === processedInput.toUpperCase();\n const isLowercase = processedInput === processedInput.toLowerCase();\n const shouldFixCase = isUppercase || isLowercase;\n\n // Extract and strip alias mappings strictly\n // E.g. John \"The Rocket\" Doe -> John Doe\n const aliasRegex = /\\s(['\"]([^'\"]+)['\"]|\\[([^\\]]+)\\]|\\(([^)]+)\\)),?\\s/g;\n processedInput = processedInput.replace(aliasRegex, \" \");\n\n const parts = processedInput.split(/\\s+/).filter(Boolean);\n\n // Isolate prefix titled elements. Titles are pulled out *before* honorifics:\n // the two lists overlap (\"Dr\", \"Mr\", \"Ms\", \"Mrs\", \"Miss\" appear in both), and\n // the honorific pass below swallows everything from its match to the end of\n // the name. Running it first on \"Dr. John Q. Public Jr.\" would file the whole\n // name away as an honorific and leave every other field empty.\n const titleIndex = parts.findIndex((part) =>\n PARSE_LISTS.title.has(part.toLowerCase().replace(/\\.$/, \"\")),\n );\n if (titleIndex !== -1) {\n result.title = parts.splice(titleIndex, 1)[0] ?? \"\";\n }\n\n // Isolate and extract honorifics logically\n const honorificIndex = parts.findIndex((part) =>\n PARSE_LISTS.honorific.has(part.toLowerCase().replace(/\\.$/, \"\")),\n );\n if (honorificIndex !== -1) {\n result.honorific = parts.splice(honorificIndex).join(\", \");\n }\n\n // Group traditional multi-word family prefixes efficiently\n for (let i = parts.length - 2; i >= 0; i--) {\n if (PARSE_LISTS.prefix.has(parts[i]?.toLowerCase() ?? \"\")) {\n parts[i] = `${parts[i]} ${parts[i + 1]}`;\n parts.splice(i + 1, 1);\n }\n }\n\n // Resolve the primary last name based on comma presence (\"Doe, John\")\n const commaIndex = parts.findIndex((part) => part.endsWith(\",\"));\n if (commaIndex !== -1) {\n // If format is `Last, First Middle`, then everything before comma is last name\n result.lastname = parts\n .splice(0, commaIndex + 1)\n .join(\" \")\n .replace(/,$/, \"\");\n } else {\n result.lastname = parts.pop() ?? \"\";\n }\n\n // Remainder components align to first and middle names\n if (parts.length > 0) {\n result.firstname = parts.shift() ?? \"\";\n if (parts.length > 0) {\n result.middle = parts.join(\" \");\n }\n }\n\n // Case normalization safely restores formatting for entirely upper/lowercase text\n if (shouldFixCase) {\n const fixCase = (str: string) =>\n str\n .split(\" \")\n .map((word) =>\n word\n ? word.charAt(0).toUpperCase() + word.slice(1).toLowerCase()\n : \"\",\n )\n .join(\" \");\n\n result.title = fixCase(result.title);\n result.firstname = fixCase(result.firstname);\n result.middle = fixCase(result.middle);\n result.lastname = fixCase(result.lastname);\n result.honorific = fixCase(result.honorific);\n }\n\n return result;\n};\n","/**\n * @fileoverview A compact list of common human names, used to tell a person\n * (\"John Doe\") from an organization.\n *\n * It replaces the 92k-entry `human-names-92k.json` (1 MB), which was dropped\n * from the bundle. It keeps every given name that dataset had (5163) and its\n * 5000 most common surnames, in the dataset's own order. Lower case, ASCII only.\n */\n\nconst GIVEN_NAMES = `\njohnson williams davis wilson taylor anderson thomas jackson harris martin clark lewis lee walker\nallen young king scott nelson carter mitchell parker stewart morris reed morgan bell bailey howard\nward james brooks kelly bennett ross coleman perry long foster bryant alexander russell graham\nwallace cole jordan ellis harrison cruz marshall murray freeman porter hunter henry boyd mason\nwarren reyes gordon palmer grant rose spencer berry arnold willis ray carroll duncan bradley lane\nriley lawrence elliott austin kelley franklin ryan oliver harvey burton stanley george reid kim dean\ngilbert garrett silva douglas may terry wade curtis neal shelton barrett gregory lucas miles craig\nfletcher vaughn santiago norris love page leonard daniel warner santos mack dennis newton todd blair\nwalton joseph francis norman quinn blake maxwell floyd paul lindsey tyler doyle sherman simon\nhouston roy brady brock frank logan owen jefferson morton patrick clayton lloyd carson barton tran\ncasey cortez bryan mckenzie luna allison richard chase clay roman monroe kirk randall anthony kirby\nbradford charles bruce lang heath cameron christian wyatt glenn keith vincent wiley lester dorsey\ndalton vance rich moses golden carey booker miranda preston tanner prince walter maynard randolph\nleon kent lara shannon chang noble everett ashley herman william solomon dudley nolan benton joyce\nhaley valentine buck moon chan barry gay avery cherry whitney terrell sanford santana yang rosario\nhester dillon bernard benjamin travis hayden lynn rosa david guy michael britt frederick jarvis\nmerrill donovan albert raymond cleveland stanton stuart emerson conrad tyson irwin dale burt nieves\nlindsay le valencia whitley noel shea hanna kendrick shirley kendall odell holley felix mora boyce\nreyna gregg werner jamison winter tracy tatum madison starr hollis brandon ervin clifton herbert\ngrady eldridge seymour gary hilton grace john fritz christopher forrest neely numbers manuel emery\nivey thurman milton winston arthur stanford clement leslie erwin garland sterling lacy amos courtney\nweston trent paige carlton piper drew bruno gaston mckinley lilly hannah willard pierre meredith\nnicholas chung dick jewell major irvin dewitt lin aaron temple toney melvin wesley rudolph marin\ncassidy kay gabriel kyle haywood sylvester abraham hoyt jarrett sheridan cornell felton cody darnell\nmichel stacy louis clifford diamond roland samuel lacey clinton christie otto eddy darby ali yu chin\ncornelius vera abel sierra sherwood kenny hope myles caron queen marcus elliot sheldon jack marion\nrubin denny jacob irving vernon keenan jean grover valentin isaac earl chu ambrose reagan sherrill\nhong loyd benedict regan elias wilburn russ li mallory ivy luke gil lincoln chester german alonzo\ntitus lyle corey jacques france chadwick gale barney weldon ruth libby fay beverly linn chance\nellsworth paris lamar angel kelsey augustine layne christy harley alonso ashton luther hyman donald\nhan royal joy coy andrew shelley robert mark jordon rico huey mackenzie leone douglass yee lance\nfrancisco shelby colby rea gavin cary lyman tobias millard bess adam easter noe jung buford malcolm\nlarue harry matthew julian edmond dewey jude marvin neil edward thao palma marx chong israel paz\nwilbur garnett yi florence cathey jeffrey dexter orlando jasper cecil oliva jeffery harlan broderick\nedgar lu ralph penny lorenzo tyree sage otis brice rhea hazel dallas ahmed cordell dion carl derrick\nmarquis ivory neville ma stacey shin leigh richie ruby chun calvin larry lea earle see peter lowell\ntam wayne fallon emanuel trinidad irish song ramon lai joe concepcion alba shay holly allan jay\nromeo carman brent carlos stephen hailey andres spring domingo roderick gerard bertram hubert\ndonnell tom salley bethel silvia sam dorris kaye estrella leroy dell will candelaria sommer sena\ngracia gerald van brant victor blaine jose archie antonio luciano gaylord blythe troy sun mauro\naugust simone chau antoine rayford homer ha damon andre fabian alfred flora rupert nathan levi\nalfonso wilber nestor sherry roger landon angelo ahmad olive shelly luis forest rey maple fredrick\nearnest sebastian dionne tracey silas pearl collette saul phillip deane gayle jaime eden mitchel\njerome clemente willie viola rae ling alton lucio karl desmond brook lamont angle rudy marty judy\ndenis jonas colton zachary salvador truman milan everette angeles byron mathew sandy royce ernest\npete marlin malik hector emory corliss elmer summer harold annis abram trinh brett penney edison\nalejandro cory russel percy maya miguel lien ching su louie elwood claudio rocco adrian sylvia\nbernardo jorge garfield salvatore pedro tiffany lucia rick rex lillie jone hassan carrol leo\ndeangelo brian bill mickey jessie noah steven shane roscoe rochelle federico abbey kimber stephan\nphilip mohammed garth robin lenard juan hang nicolas anton mai merry dee clyde willette javier\nvictoria waldo malcom enoch virgil scarlett maurice keeley eugene alden mohamed raleigh natividad\nlaine bryce tomas son dana jason brooke markus lavelle jesse dominick santo leonardo halley yan\nrandell michell frances charley belle alex olin clair mariano dustin diego violette stella hung\nclare alva pasquale nicol milford maye leland carley cyrus chi zack monte yon macy marine collin\ncolin aubrey vella hans felipe wendell maxie marvel kiley garry normand joshua bee arnette tu marti\nevan yun wilford siu rodney celestine buster so mauricio julius raphael jim dann billy alexis june\nguadalupe carlo emmett sung sherrell patty napoleon lore granville nichol delia augustus asuncion\ntheodore quinton matt yen tandy ta martine lucy judson glen fernando rolf maria gregorio gloria\ngerry yung woodrow rickey nick laurence agustin wilton wan maris herb elbert alberto milo faith\ndamian ruben mike jacinto hui guillermo roberto jennette honey fred vicente carmon carmen arline\nrolland ming ben zachery tai sunday marco lesley charlie mei ignacio seth raven pablo marcy danna\nbart aron andreas lora lazaro esteban darwin dan armand antone reina marcos columbus vivian sidney\nisabell hollie gillian christen ping phung omar nathaniel mikel lawerence timothy rodger polly\nlaurie jesus freda elton barbara abe lady jayne january fern diana daniell tyrell felice nell max\nlucien janis fermin emmanuel boris arden amado allie wilbert ollie marie mara hosea ester dong dane\nrosamond mee charity blanche yong xavier patti min junior joslyn jerry dominique cesar sharon rachel\nmercedes mary jin evelyn eddie don mui marcellus justin horace flor elia rene rachal darrell brandy\nbetty barbera pauline na jules gabriele blossom barb adan oscar man liberty jo avis amy ricardo hugo\nedie darcy cora basil barrie vito romaine mattie kerry zane wilmer vince merideth kimberly kam inge\nclaude brenton ardis regina reda quincy laurel hugh gwyn cliff virgen tristan rafael monty mohammad\nkeely issac harland doris crystal cristobal chery caroll roosevelt renda myron mose jeremiah jared\ndwight carolina blanch berta bella vida rufus nova nicola nam mao kenna hilario hank estell wei pam\noren nida martina luz laura jasmin billie rita lyda lucius linsey janelle garret eusebio dolly vita\nsherron edwin bob an adolph abdul ronald ned merlin melia jess isabel heide constance benny mina\nlino jamar graig estelle carol steve soo rana kurt isabelle claire benito winnie merle marcell jenny\njan ferdinand dave april wen mika mae brain bobby tyra tony sue santa sabine muriel marc lou julia\njamal isreal ines heather fonda farah bonnie bert alix winford violet stefan hyun goldie esperanza\ndorothy doria dawn allyn tena rudolf micheal lona lisa jerrell gerardo duane coletta christina chae\nbridgett alvin vena perla michelle marth madonna joye gracie faye almeda addie verona sang sally\nrhett paulette oda nery marcelino maire loan kendra jong joaquin in frederic emily elvira corrie\nchristine candy bradly bea augusta ying shawn phillis monica melody magda lena leandro lan kary jeff\nhee greg gail elvin dora beverley beatrice audie rubi rolando reuben mona marietta joesph ellen dino\ndevin denver denise calandra brandi andrea alexandra alan toby star reta paula patricia modesto\nmalia lorraine keena julio jen hillary hellen germaine genna farrah dena daniele clara china chia\nchauncey caryl camille zona rochell renna marcella linwood linda kina kenton fausto erick delisa\nbryon anna vina verna terra stefani sol sima rodrick riva raye pia mari mac kari kai jonathan janey\nisa florentino elza edmund blanca ann alphonse alexandria tien shira sergio scot roma rod rhoda ok\nmoises mitch mable lyn liz lamonica hilde gladys dona devora concha collen chuck zola xiao valery\nval tina sunshine roselle raymundo noreen nora myung marcia marcel lue joya franklyn florida eunice\nemma dominic chandra catalina carlee brenna branden bertha andree terrance sherley sarah sanda\nrosette rima maryland mario many lindy kasey karol ike georgia galen ezekiel dina demarcus delaine\ndaisy chris celia celeste aurelio armando virgilio stephanie sandra randal minerva lina lean jewel\nisabella gaye eva emmitt eli dede darrin christiana cathy carry carrie bethany andy alma albertine\nagnes sallie rosie robbin randa omer odette monserrate mira loree len lana lala joel jaye jame\ngiovanni eugenio enrique dominque conception charlette carmine carli annett anastasia alice adell\nwai vanetta tyrone teresa stephany sofia shon shan saran olen nola nicole nancy mervin marta maida\nlory lilla lauren kizzie kenneth ken ivan ina hobert hipolito helen floria eve erich devon danial\ndaine cristy caterina belen amparo amie trang tim stan rochel renee margo lynne lottie lorette leif\nkate karen jayson emilio edris dante carline caren bong berna bari adrien willy virginia venice\ntrevor tillie somer socorro sharron savannah rosetta regine rashad quintin patsy mila marry marian\nmaranda lura lillian lia karren kara kali kaley jerald faustino evon else eduardo dorian donna donn\ndixie dario cornelia carmel burl buffy bonny bianca bennie barbar america alphonso alicia alfonzo\nalberta aja valerie sherill shanon sha sade sabina randy pok pattie opal mozell mercy maximo manda\nmalena maia magan louise leota kory kimberley josue jennifer jeffry janice ida hai glenna glady gene\nemerald elden delena clarence antony antonia amber alison wilfred soledad shu shad pilar petrina\npennie myra miss minnie michele megan marlo marina lyndon lydia lovie kyung krishna korey kirsten\njosiah ismael hyon francesco esther elmo derick deon delmar darius daisey cristina clint cassi carie\narron afton willow valeri ty sydney selma rosendo rayna raina paulina nichole meridith mavis marsha\nmanual mandy leonor karry jeannette jane hoa harriet gregoria florine ellie delbert danielle dani\nchristin chad cassey avril angeline andera aldo zana wilda vincenzo venus toya torri tommie thu\ntheresa tanna suk sonny sina sherril shala scotty sara salome ronda roberta rob retta rena patrice\npat nicolette nickolas misty merna martha margaret loura loren lola lily leopoldo latina kristin\nkala jennie jarred janise isidro irene illa idell glory gemma frankie fanny eun eloy deneen della\ncurt cordia coral cira cathie caleb bridgette bree brad bo blondell aurora anne ana adolfo abby\nwillian vernia verdell tyron thi tennille sonia shiloh shanna shani serena scarlet salina rachell pa\nolivia nita nina milly millie micha marci marcelle mana mallie mabel lauri lani kristen kevin kellie\njuliet johnny jenifer jayme isaiah inga hue harriett ginger geraldo erin emile elvis elizabeth elena\ndung delois damien cristal connie colleen christel carmella bula brendon bertie barbie aurelia asa\nart ariel antione andra alvaro ada zella winfred wanda valrie torrie terri tara susana skye shayne\nshawnee sandi rosella rodrigo rickie ramiro pearle norma nannie monet maren maggie macie lorna lori\nleona lelah lavern laronda larita kym kurtis kristy karin justine jolie ji jann jamie hildred\nherschel helena golda gena gala florencio flo fidel ernesto eric donnie dominga dolores dirk delphia\ndel darcey danny cynthia cecilia cassandra carolin carin brinda bok bernadette becky asley anglea\nangela alpha allegra aline zachariah yuk williemae willia trish trenton tory toni tod tisa theo\nterrence susan shae sean sau rubie rossie ronnie rona ron robyn robbie rina raquel patience ora ona\nnatalie natalia naomi nan nadine miquel michal marlene margot maile luci lois lenny leah lavon\nlavina lavette laverne krystal keri karma kareem kandra josef jill jeane jasmine jacque ilse hilda\nheidi genia felicia estella elke elijah dorie dorcas delana darron daron daria coreen consuelo\nchrystal christi catherine carina cara buddy bud bruna bonita beulah beth bernice ashely arturo\narlen arie annette anibal agueda zonia zita zena yuki wendy wally virgie vickey valorie vallie tish\ntess teri teodoro tegan teddy tami samara samantha reynaldo raul phuong patria paola osvaldo nila\nmyrtle molly mildred mellie maura maud margarita mandi magdalena madge lucie lourdes loria loraine\nloma leta lesa lauretta lanie kum kristan kraig kitty kip kendal katie kathleen ka juliana judie\njonah joline jody jessica jeanette jana jami jamel jae jacquelin herta hallie hal gwenn georgiana\ngeoffrey garnet fredric francoise florance felipa fairy eveline ethel estela elsa elroy ellena\neliseo edith denna denice deja deanne dalene claud christal chet cherrie charisse chanel caroline\ncaprice buena bridget brenda brande beau audrey ashly annabel angelica alfredo jeremy jimmy ricky\njon tommy derek reginald erik darryl ted darren lonnie dwayne jimmie ian johnnie daryl freddie\njackie joey doug shaun ira johnathan kelvin wm jonathon ed rodolfo cedric jermaine sammy kristopher\ngustavo jake lionel gilberto orville al josh darrel rogelio terence phil darin timmy brendan marlon\nemil dewayne bret humberto micah efrain demetrius ethan eldon rocky freddy dylan ernie quentin\nwilfredo jarrod kermit norbert thaddeus sammie rusty rory reggie kris gus gonzalo rigoberto vern\nbobbie hiram ulysses heriberto carmelo donny johnathon cleo leonel bernie joan errol edwardo theron\ndaren robby genaro octavio cyril ronny stevie lon kennith johnie dusty scottie arnulfo thad ezra\nlanny isiah reinaldo jerrod hershel lemuel nigel efren antwan margarito refugio les deandre kieth\ntrey norberto jerold christoper jamaal gino edgardo alec tad porfirio odis mel marcelo keven sal\norval dannie jed thanh lupe horacio delmer jerrold robt damion jefferey moshe darrick minh giuseppe\ncletus dwain donte isaias adalberto jamey samual otha domenic renato jc chas deshawn nathanial\ndanilo raymon ezequiel erasmo lonny jarod oswaldo nathanael filiberto michale wes zackary tuan nicky\ncristopher jospeh waylon von renaldo kristofer arnoldo rueben jeromy cedrick arlie luigi keneth\nedmundo sid jeramy elisha lynwood jere darell deborah melissa rebecca pamela debra amanda carolyn\njanet diane julie cheryl katherine judith kathy tammy marilyn kathryn jacqueline phyllis annie peggy\nedna cindy josephine thelma sheila elaine marjorie charlotte juanita anita rhonda debbie lucille\njoanne eleanor suzanne darlene veronica geraldine joann erica yvonne brittany melanie loretta\nyolanda vanessa elsie jeanne vicki carla rosemary eileen gertrude tonya ella wilma gina charlene\nbessie delores melinda arlene maureen tamara claudia tanya nellie glenda vickie maxine irma deanna\ngwendolyn margie priscilla carole olga dianne miriam velma kristina ramona sherri erika katrina\ngeneva belinda sheryl natasha sabrina marguerite hattie kristi joanna iris angie inez lynda madeline\namelia genevieve monique jodi janie kayla sonya kristine candace fannie maryann yvette susie mamie\nlula antoinette candice juana kelli karla latoya shelia vicky sheri marianne jacquelyn erma leticia\nkrista roxanne adrienne rosalie sadie traci rachael chelsea ernestine angelina dianna doreen\nrosemarie desiree betsy lynette eula meghan sophia eloise gretchen cecelia henrietta alyssa gwen\njenna tricia tasha sophie lorena sonja lila darla mindy essie lorene josefina jeannie lela johanna\nshari shawna elisa ebony melba nettie tabitha winifred kristie alisha aimee myrna marla tammie\nlatasha sherrie francine deloris stacie adriana cheri abigail adele rebekah lucinda dorthy effie\ntrina reba lenora etta kerri trisha nikki francisca josie tracie marissa brittney helene elva\ncorinne bettie elisabeth aida caitlin ingrid iva eugenia christa cassie maude therese janette\nlatonya tamika debora cherie jillian dorothea trudy patrica stefanie ola janine mollie alisa maribel\nsusanne bette elise cecile jocelyn joni rachelle leola daphne alta petra graciela imogene jolene\nkeisha gabriela ursula lizzie shana adeline mayra jaclyn sondra carmela marisa rosalind tonia\nbeatriz marisol clarice jeanine sheena frieda shauna claudette cathleen angelia gabrielle autumn\nkatharine jodie staci elma luella margret callie bobbi maritza lucile leanne jeannine deana aileen\nlorie ladonna willa manuela sybil luisa jeri ofelia meagan audra matilda leila bettye randi latisha\nbarbra georgina eliza leann adela bernadine flossie ila greta ruthie nelda terrie letha hilary\nvalarie brianna rosalyn earline ava mia clarissa lidia corrine tia ericka elnora lenore neva marylou\nmelisa tabatha jeanie odessa penelope milagros emilia benita allyson ashlee tania esmeralda karina\npearlie zelma malinda tameka saundra althea rosalinda lilia alana alejandra elinor lorrie jerri\nearnestine noemi marcie liza annabelle louisa earlene carlene selena tanisha katy julianne lakisha\nedwina maricela margery kenya dollie roxie roslyn kathrine nanette charmaine lavonne ilene tammi\nsuzette corine lilian luann maryanne evangeline colette melva lawanda yesenia nadia kathie ophelia\nvaleria nona mitzi georgette claudine fran alissa roseann lakeisha susanna reva deidre chasity\nsheree carly elvia alyce deirdre briana araceli katelyn rosanne wendi tessa marva imelda sasha\nmadelyn janna juliette deena josefa liliana lessie amalia vilma lynnette corina alfreda leanna\ncoleen tamra aisha karyn evangelina rosanna erna enid mariana jacklyn freida madeleine cathryn lelia\ncasandra angelita jannie annmarie katina beryl phoebe millicent katheryn diann carissa maryellen\nhelga gilda marquita tisha tamera angelique francesca britney kaitlin lolita rowena twila janell\nconcetta brigitte alyson vonda pansy elba noelle letitia deann brandie louella felecia sharlene\nherminia celina tori octavia jade cortney nelly doretha deidra monika lashonda judi chelsey\nantionette adelaide leeann dessie kathi gayla latanya mellisa kimberlee renae zelda elda justina\ngussie emilie camilla abbie rocio kaitlyn edythe ashleigh selina lakesha geri allene pamala michaela\ndayna caryn rosalia jacquline rebeca marybeth krystle iola dottie griselda ernestina elida adrianne\ndemetria delma jaqueline destiny arleen virgina retha fatima eleanore cari treva birdie wilhelmina\nrosalee maurine latrice jena taryn debby maudie jeanna delilah catrina shonda hortencia theodora\nteresita danette maryjane delphine brianne nilda cindi iona winona rosita marianna racheal\nguillermina eloisa malissa chantel shellie marisela leora agatha migdalia ivette athena janel chloe\nveda tessie tera marilynn lucretia karrie dinah daniela alecia adelina vernice shiela portia lashawn\ndara tawana oma verda alene rafaela kira candida alvina suzan shayla lettie samatha oralia matilde\nlarissa vesta renita india shanda lorri erlinda cathrine zoe ione gisela roxanna mayme kisha\nmellissa dalia annetta zoila kylie charla elissa tiffani tana breanna vernell tomasa melodie alexa\ntamela mirna kerrie felicita carmelita berniece annemarie tiara roseanne missy cori roxana pricilla\nkristal elyse haydee aletha bettina marge filomena zenaida harriette caridad vada una aretha\npearline marjory marcela evette elouise alina damaris catharine belva nakia marlena luanne lorine\nkaron dorene danita tatiana louann julianna andria philomena lucila leonora dovie romona mimi tonja\nmisti chastity stacia roxann micaela nikita velda marlys johnna aura ivonne hayley nicki majorie\nherlinda yadira antonette shelli mozelle mariah joelle cordelia josette chiquita trista laquita\ncandi hildegard valentina gabriella tiana richelle princess oleta idella alaina suzanna jovita tosha\nnereida marlyn kyla delfina stephenie nathalie gertie darleen thea sharonda shantel venessa rosalina\ngenoveva clementine rosalba renate renata mi georgianna floy ariana theda mariam juli jesica vikki\nverla roselyn melvina jannette ginny debrah asia violeta myrtis latricia charleen anissa viviana\ntwyla precious nedra latonia fabiola annamarie sharyn chantal niki lizette kia kesha jeana danelle\ncharline dortha sunny leilani gerri debi keshia ima eulalia dulce linnie kami georgie catina alda\nwinnifred sharla ruthann meaghan magdalene lissette adelaida venita trena shirlene shameka elizebeth\ndian shanta latosha carlotta windy soon rosina mariann leisa jonnie dawna astrid laureen janeen\nholli fawn teressa shante rubye marcelina chanda terese marnie lulu lisette jeniffer elenor dorinda\ndonita bernita altagracia aleta adrianna zoraida lyndsey janina chrissy ami starla phylis kyra\nsanjuanita nanci marilee brigette sanjuana marita kassandra joycelyn chelsie mireya lorenza kyong\nileana sherie leatrice lakeshia gerda bambi marylin hortense evie tressa shayna jeanetta shara\nphyliss mittie anabel alesia thuy tawanda joanie tiffanie lashanda karissa enriqueta daniella\ncorinna alanna roxane roseanna magnolia lida joellen era carleen tresa peggie novella maybelle\njenelle melina marquerite margarette josephina evonne cinthia albina tawnya sherita myriam lizabeth\nlise jenni giselle cheryle ardith alesha adriane shaina linnea karolyn felisha dori darci artie\narmida xiomara vergie shamika nena nannette jaimie elaina caitlyn felicitas cherly yolonda yasmin\nteena prudence nydia orpha lizbeth laurette jerrie hermelinda carolee tierra mirian meta melony kori\njamila ena anh yoshiko susannah rhiannon joleen cristine aracely tomeka shalonda lacie jada brittani\nsyble sherryl nidia kandice kandi deb alycia ronna norene ingeborg giovanna audry zora stephaine\nshirlee shanika melonie mazie jazmin hettie geralyn adella sarita milissa maribeth ethelyn enedina\ncherise chana velva tawanna mirta karie jacinta elna davina cierra ashlie albertha tanesha stephani\nnelle mindi lorinda florene demetra dedra ciara chantelle suzy rosalva noelia leatha krystyna karri\ndarline darcie cinda cheyenne awilda rolanda lanette jerilyn gisele evalyn cyndi cleta zina velia\ntanika charissa talia margarete lavonda kaylee kathlene jonna irena ilona idalia candis candance\nbrandee anitra alida sigrid maryjo linette hedwig alexia tressie modesta lupita lita gladis evelia\ndavida cherri cecily agustina wanita shirly rosaura hulda yetta thomasina sibyl shannan mechelle\nleandra kylee kandy jolynn ferne eboni corene alysia zula nada moira lyndsay lorretta jammie\nhortensia gaynell adria vicenta tangela stephine norine nella liana leslee kimberely iliana felica\nemogene elfriede eartha carma ocie lennie kiara jacalyn carlota arielle otilia kirstin kacey\njohnetta joetta jeraldine jaunita elana dorthea cami amada adelia vernita tamar siobhan renea\nrashida ouida nilsa meryl kristyn julieta danica breanne aurea lorelei leesa kathlyn fiona suzie\nshantell sabra racquel myong lucienne lavada juliann elvera christiane charolette carri asha angella\nninfa leda eda shanell machelle lissa kecia kathryne karlene julissa jettie jenniffer corrina\ncarolann alena rosaria myrtice marylee liane kenyatta elmira eldora cristi cathi zaida vonnie viva\nvernie rosaline mariela luciana lesli karan adina wynona tarsha sheron shasta shanita shandra pinkie\nnelida marilou lyla laurene laci joi janene dorotha carolynn carlyn berenice ayesha anneliese\nalethea thersa tamiko rufina marylyn kristian kathyrn kasandra kandace janae domenica debbra\ndannielle arcelia zenobia sharen sharee my lavinia kacie jackeline huong felisa emelia eleanora\ncythia cristin claribel anastacia zulma zandra yoko tenisha susann sherilyn shawanda romana mathilda\nkeiko joana isela gretta georgetta eugenie desirae delora corazon antonina anika willene tracee\ntamatha nichelle mickie maegan luana lanita kelsie edelmira teodora tamie shena meg linh keli kaci\ndanyelle arlette adelle tiffiny stormy simona nicolasa nia nakisha maira loreen kizzy christene\nbobbye vincenza tanja roni queenie margarett kimberli irmgard hilma evelina esta emilee dennise\ndania risa rikki particia masako luvenia loni gigi florencia denita billye tomika sharita nikole\nneoma margarite madalyn lucina laila jenette evelyne elenora clementina alejandrina zulema vannessa\nthresa noella nickie jonell delta chaya camelia anya suzann laverna keesha kattie gia georgene\nelizbeth vivienne trudie stephane magaly madie kenyetta janetta hermine harmony drucilla debbi\ncelestina candie britni beckie amina yolande vivien vernetta trudi patrina ossie nicolle loyce letty\nlarisa katharina joselyn jonelle jenell iesha florinda florentina elodia dorine brunilda brigid\nashli ardella twana tarah shavon serina ramonita nga margurite lucrecia kourtney kati jesenia crista\nayana alica alia vinnie suellen romelia olympia michiko kathaleen jessi janessa hana elease carletta\nbritany shona regena ngoc nelia louvenia lesia latrina laticia larhonda jina jacki emmy deeann\ncoretta arnetta velvet thalia shanice neta mikki micki lonna leana lashunda jacqulyn ignacia hiroko\nhenriette elayne delinda dahlia consuela conchita celine babette ayanna anette albertina shaneka\nquiana pamelia merri merlene margit kiesha kiera kaylene jodee jenise erlene emmie dalila casie\nbelia babara versie vanesa shelba shawnda nikia naoma marna margeret madaline lawana kindra jutta\njazmine janett hannelore glendora gertrud freeda frederica flavia beverlee anjanette valda trinity\ntamala shonna sarina oneida merilyn marleen lurline lenna katherin jeni hae enola ema devona cecila\nalysha alethia theresia tawny shakira sachiko rachele pamella marni mariel malisa ligia lera latoria\nlarae kathern karey jennefer janeth halina fredia debroah ciera angelika altha vivan terresa sudie\nsigne salena ronni rebbecca myrtie malika leonarda kayleigh ethyl ellyn dayle cammie brittni birgit\navelina arianna akiko tyesha tonie tiesha takisha steffanie sindy meghann kellye kellee inger indira\nglinda glennis fernanda faustina eneida elicia dot digna arletta tammara tabetha sari rebbeca\npauletta natosha nakita mammie kenisha kazuko kassie earlean daphine clotilde carolyne bernetta\naugustina audrea annabell tamica selene rosana regenia qiana markita leeanne laurine jessenia janita\ngeorgine genie emiko elvie deandra dagmar corie cherish porsha pearlene micheline margorie\nmargaretta jenine hermina fredericka drusilla dorathy dione desire celena brigida tamekia synthia\nsook slyvia rosann reatha marquetta margart layla kymberly kiana kayleen katlyn karmen joella irina\nemelda eleni detra clemmie cheryll chantell arnita arla angelic alyse zofia thomasine tennie sherly\nsharyl remedios nickole myrle mozella louanne lisha latia krysta julienne jeanene jacqualine isaura\ngwenda earleen cleopatra carlie antonietta alise tomoko talisha shemika savanna santina rosia raeann\nodilia nana minna lynelle joeann ivana inell ilana hye gudrun dreama crissy chante carmelina arvilla\nannamae alvera aleida yanira vanda tianna stefania nancie melynda melany lovella laure kacy\njacquelynn gertha eliana christena christeen charise candyce arlena ammie vanita tuyet tiny syreeta\nnyla maryam marya magen ludie livia lanell kimberlie julee donetta diedra denisha dawne clarine\ncherryl bronwyn alla tonda sueann soraya shoshana shela sharleen shanelle nerissa magaret lili\nleonila leonie leeanna lavonia lavera kristel kathey kathe ilda hildegarde fumiko evelin ermelinda\nelly doloris dionna danae berneice annice verena verdie shawnna shawana shaunna rozella randee ranae\nmilagro lynell luise loida lisbeth karleen junita jona isis hyacinth hedy ethelene erline donya\ndomonique delicia dannette cicely branda bethann ashlyn annalee alline yuko towanda tesha sherlyn\nnarcisa miguelina meri maybell marlana marguerita madlyn loriann leonore leighann laurice latesha\nkatrice kasie jadwiga glennie gearldine francina epifania dyan diedre denese demetrice cristie\ncleora catarina carisa almeta trula tereasa solange sheilah shavonne sanora mathilde margareta\nlynsey lawanna launa kena katia glynda gaylene elvina elanor danuta danika cristen cordie clarita\nbrynn azucena aundrea angele verlie verlene tamesha silvana sebrina samira raylene penni pandora\nnorah noma mireille melissia maryalice laraine kimbery karyl karine jolanda johana jesusa jaleesa\njacquelyne iluminada hilaria hanh gennie francie floretta exie edda drema delpha bev assunta ardell\nannalisa alisia yukiko yolando wonda waltraud veta tequila temeka tameika shirleen shenita piedad\nozella mirtha marilu kimiko juliane jenice janay jacquiline fe fae elois echo devorah betsey arminda\naracelis apryl alishia veola usha toshiko theola tashia talitha shery renetta reiko rasheeda omega\nobdulia melaine meggan marlen marget marceline magdalen librada lezlie lexie latashia lasandra kelle\nisidra inocencia erminia erinn dimple criselda armanda ariane angelena aliza adriene adaline xochitl\ntwanna tomiko tamisha taisha susy rutha roxy rhona noriko natashia merrie marinda mariko margert\nloris lizzette leisha kaila joannie jerrica jene jannet janee jacinda elenore doretta claudie britta\napolonia amberly alease yuri waneta ute tomi sharri sandie reynalda raguel phylicia olimpia odelia\nmitzie minda mignon mica mendy marivel lynetta lauryn latrisha lakiesha kiersten josphine jolyn\njetta jacquie ivelisse glynis gianna gaynelle danyell danille dacia coralee cher ceola arianne\naleshia thora svetlana sherika shemeka shaunda roseline ricki melda lavonna laquanda lachelle klara\nkandis johna jeanmarie grayce gertude emerita ebonie clorinda carola breann bernardine becki arletha\nargelia ara alita yulanda yessenia tobi tasia sylvie shirl shirely shella shantelle sacha rebecka\nprovidencia paulene misha miki marline marica lorita latoyia lasonya kerstin kenda keitha kathrin\njaymie gricelda ginette eryn elina elfrieda danyel cheree chanelle aurore annamaria alleen ailene\naide yasmine vashti treasa tiffaney sheryll sharie shanae raisa neda mitsuko mirella milda maryanna\nmaragret mabelle luetta lorina letisha latarsha lanelle lajuana krissy karly karena jessika jerica\njeanelle jalisa jacelyn izola euna etha domitila dominica daina creola camie bunny brittny ashanti\nanisha aleen adah yasuko viki tona tinisha terisa taneka simonne shalanda serita ressie refugia\nolene margherita mandie lyndia lorriane loreta leonia lavona lashawnda lakia kyoko krystina krysten\nkenia kelsi jeanice isobel georgiann genny felicidad eilene deloise deedee clora cherilyn armandina\nanisa ula tiera theressa stephania shyla shonta shera shaquita rossana nohemi moriah melita melida\nmelani marylynn marisha mariette malorie madelene ludivina loralee lianne lavenia laurinda lashon\nkit kimi keila katelynn joane jayna janella ja hertha francene elinore despina delsie deedra\nclemencia bulah brittanie bibi beaulah beata annita agripina valene un twanda tommye toi tarra tari\ntammera shakia sadye ruthanne rivka pura nenita natisha merrilee melodee marvis lucilla leena laveta\nkeren ileen georgeann genesis frida ewa eufemia emely ela edyth deonna deadra darlena chanell\ncathern cassondra cassaundra bernarda arlinda anamaria vertie tatyana stasia sherise season ruthe\nrosy robbi ranee quyen pearly palmira onita nisha niesha nevada merlyn mayola marylouise margene\nmadelaine londa leontine leoma leia lauralee lanora lakita kiyoko keturah katelin kareen jonie\njohnette jenee jeanett izetta hiedi heike hassie giuseppina georgann fidela fernande elwanda ellamae\neliz dusti dotty cyndy coralie celesta argentina alverta xenia wava tashina tambra tama stepanie\nshila shaunta sharan shaniqua setsuko serafina sandee rosamaria priscila olinda nadene muoi\nmichelina mercedez maryrose marcene magali mafalda lannie kayce karoline kamilah kamala justa\njennine jacquetta iraida georgeanna franchesca emeline elane ehtel earlie dulcie cris classie chere\ncharis caroyln carmina carita bethanie ayako arica alysa alessandra akilah zetta youlanda yelena\nyahaira xuan wendolyn tijuana terina teresia suzi sherell shavonda shaunte sharda shakita ryann\nreginia parthenia pamula monnie michaele malka maisha lisandra lekisha lakendra krystin kortney\nkittie kera kemberly kanisha julene jule johanne jamee gidget galina fredricka fleta fatimah eusebia\neleonore dorthey donella dinorah delorse claretha christinia charlyn belkis azzie aiko adena yer\nyajaira vania ulrike toshia tifany stefany shizue shenika shawanna sharolyn sharilyn shaquana\nshantay rozanne roselee remona reanna raelene petronila natacha nancey myrl miyoko miesha marvella\nmarquitta marhta marchelle lizeth libbie lahoma ladawn katheleen katharyn karisa kaleigh junie\njulieann johnsie janean jaimee jackqueline hisako herma helaine gwyneth gita eustolia emelina elin\ndonnette donnetta dierdre denae darcel clarisa cinderella charlesetta charita celsa cassy brittaney\nbilli bao antonetta angla angelyn analisa alane wenona wendie veronique vannesa tobie tempie sumiko\nsulema sparkle sheba sharice shanel shalon rosio roselia renay rema reena porsche peg ozie oretha\noralee nu ngan nakesha marybelle margrett maragaret manie lurlene lillia lieselotte lashaunda\nlakeesha kaycee kalyn joette jenae janiece grisel glayds genevie fredda eleonor debera deandrea\ncorrinne contessa colene cleotilde charlott chantay cecille beatris azalee arlean ardath anjelica\nanja alfredia aleisha zada yuonne willodean vennie vanna tyisha tova torie tonisha tilda sirena\nshanti senaida samella robbyn reita phebe paulita nobuko nguyet neomi mikaela melania maximina marg\nmaisie lynna lilli lashaun lakenya lael kirstie kathline kasha karlyn karima jovan josefine jennell\njacqui jackelyn hyo hien grazyna florrie eleonora dwana dorla delmy crysta clelia claris chieko\ncherlyn cherelle charmain chara cammy ardelle annika amiee amee allena yvone yoshie yevette yael\nwilletta voncile venetta tula tonette timika temika telma teisha taren stacee shawnta saturnina\nricarda pasty onie nubia marielle mariella marianela mardell luanna loise lisabeth lindsy lilliana\nlilliam leigha leanora kristeen khalilah junko joaquina jerlene jani jamika hsiu hermila genevive\nevia eugena emmaline elfreda elene donette delcie deeanna cuc clarinda celinda catheryn catherin\ncasimira carmelia camellia breana bobette bernardina bebe basilia arlyne amal alayna zenia yuriko\nyaeko wynell willena tora terrilyn terica tenesha tawna tajuana taina stephnie sona shondra shizuko\nsherlene sherice sharika rosena ria rheba natalya nancee melodi meda maxima matha marketta maricruz\nmarcelene malvina luba louetta leida lecia lauran lashawna khadijah katerine kasi kallie julietta\njesusita jestine jessia jeffie janyce isadora georgianne fidelia evita eura eulah estefana elsy\nelizabet eladia dodie dia denisse deloras delila daysi dakota crystle claretta christia charlsie\ncharlena carylon bettyann ashlea amira ai agnus yuette vinita victorina tynisha treena toccara\nthomasena soila shenna sharmaine shantae shandi september sarai sana rolande otelia olevia nicholle\nnecole naida myrta myesha mitsue minta mertie margy mahalia madalene lorean lesha leonida lenita\nlavone lashell lashandra kimbra katherina kanesha jeneva jaquelyn hwa gilma ghislaine gertrudis\nfransisca fermina ettie etsuko ellan elidia edra dorethea doreatha denyse deetta cyrstal corrin\ncayla carlita camila burma barabara alaine wilhemina wanetta vi veronika verline vasiliki tonita\nteofila tayna taunya tandra takako sunni suanne sixta sharell seema rosenda robena raymonde pei\npamila ozell neida mistie merissa maurita maryln maryetta makeda maddie lovetta lourie lorrine\nlorilee laurena lashay larraine laree lacresha kristle keva keira karole joie jinny jeannetta jama\nheidy gilberte gema faviola evelynn enda elli divina dagny collene codi cindie chassidy chasidy\ncatrice catherina carlena candra calista bryanna britteny beula audrie audria ardelia annelle angila\nalona\n`;\n\nconst SURNAMES = `\nsmith jones brown miller moore white thompson garcia martinez robinson rodriguez hall hernandez\nwright lopez hill green adams baker gonzalez perez roberts turner phillips campbell evans edwards\ncollins sanchez rogers cook murphy rivera cooper richardson cox torres peterson gray ramirez watson\nsanders price wood barnes henderson jenkins powell patterson hughes flores washington butler simmons\ngonzales griffin diaz hayes myers ford hamilton sullivan woods west owens reynolds fisher gibson\nmcdonald ortiz gomez wells webb simpson stevens tucker hicks crawford morales kennedy dixon ramos\nburns shaw holmes rice robertson hunt black daniels mills nichols knight ferguson stone hawkins dunn\nperkins hudson gardner stephens payne pierce matthews wagner watkins olson snyder hart cunningham\nandrews ruiz harper fox armstrong carpenter weaver greene chavez sims peters lawson fields gutierrez\nschmidt carr vasquez castillo wheeler chapman montgomery richards williamson johnston banks meyer\nbishop mccoy howell alvarez morrison hansen fernandez garza little nguyen jacobs fuller lynch romero\nwelch larson frazier burke hanson day mendoza moreno bowman medina fowler brewer hoffman carlson\npearson holland fleming jensen vargas byrd davidson hopkins herrera soto walters caldwell lowe\njennings barnett graves jimenez horton obrien castro sutton mckinney rodriquez chambers holt lambert\nwatts bates hale rhodes pena beck newman haynes mcdaniel mendez bush parks dawson hardy steele curry\npowers schultz barker guzman munoz ball keller chandler weber walsh lyons ramsey wolfe schneider\nmullins benson sharp bowen barber cummings hines baldwin griffith valdez hubbard salazar reeves\nstevenson burgess tate cross garner mann moss thornton mcgee farmer delgado aguilar vega glover\nmanning cohen harmon rodgers robbins higgins ingram reese cannon strickland townsend potter goodwin\nrowe hampton ortega patton swanson goodman maldonado yates becker erickson hodges rios conner adkins\nwebster malone hammond flowers cobb moody pope osborne mccarthy guerrero estrada sandoval gibbs\ngross fitzgerald stokes saunders wise colon gill alvarado greer padilla waters nunez ballard\nschwartz mcbride christensen klein pratt briggs parsons mclaughlin zimmerman french buchanan moran\ncopeland pittman mccormick holloway poole bass marsh drake wong park abbott sparks norton huff\nmassey figueroa bowers roberson lamb harrington boone clarke mathis singleton wilkins cain underwood\nhogan collier phelps mcguire bridges wilkerson nash summers atkins wilcox pitts conley marquez\nburnett cochran davenport hood gates ayala sawyer vazquez dickerson hodge acosta flynn espinoza\nnicholson wolf morrow whitaker oconnor skinner ware molina huffman gilmore dominguez oneal combs\nkramer hancock gallagher gaines shaffer short wiggins mathews mcclain fischer wall small melton\nhensley bond dyer grimes contreras baxter snow mosley shepherd larsen hoover beasley petersen\nwhitehead meyers garrison shields horn savage olsen schroeder hartman woodard mueller kemp deleon\nbooth patel calhoun eaton cline navarro harrell humphrey parrish duran hutchinson hess bullock\nrobles beard avila blackwell york johns blankenship trevino salinas campos pruitt callahan montoya\nhardin guerra mcdowell stafford gallegos henson wilkinson merritt atkinson orr decker hobbs knox\npacheco stephenson glass rojas serrano marks hickman english sweeney strong mcclure conway roth\nfarrell lowery hurst nixon weiss trujillo ellison sloan juarez winters mclean boyer villarreal\nmccall gentry carrillo ayers sexton pace hull leblanc browning velasquez leach house sellers herring\nfoley bartlett mercado landry durham walls barr mckee bauer rivers bradshaw pugh velez rush estes\ndodson morse sheppard weeks camacho bean barron livingston middleton spears branch blevins chen kerr\nmcconnell hatfield harding solis frost giles blackburn pennington woodward finley mcintosh koch best\nmccullough blanchard rivas brennan mejia kane buckley maddox russo mcknight mcmillan crosby berg\ndotson mays roach church richmond meadows faulkner oneill knapp kline ochoa jacobson hendricks horne\nshepard hebert cardenas mcintyre waller holman donaldson cantu morin gillespie fuentes tillman\nbentley peck key salas rollins gamble dickson battle cabrera cervantes howe hinton hurley spence\nzamora mcneil suarez case petty gould mcfarland sampson carver bray macdonald stout melendez farley\nhopper galloway potts joyner stein aguirre osborn mercer bender franco rowland sykes pickett crane\nsears mayo dunlap wilder mckay coffey mccarty ewing cooley vaughan bonner cotton holder stark\nferrell cantrell fulton lott calderon pollard hooper burch mullen fry riddle levy duke odonnell\ndaugherty berger dillard alston frye riggs chaney odom duffy fitzpatrick valenzuela mayer alford\nmcpherson acevedo barrera cote reilly compton mooney mcgowan craft clemons wynn nielsen baird snider\nrosales bright witt hays holden rutledge kinney clements castaneda slater hahn burks delaney pate\nlancaster sweet justice sharpe whitfield talley macias burris ratliff mccray madden kaufman beach\ngoff cash bolton mcfadden levine good byers kirkland kidd workman carney mcleod holcomb england\nfinch head hendrix sosa haney franks sargent downs rasmussen bird hewitt foreman oneil delacruz\nvinson dejesus hyde forbes gilliam guthrie wooten huber barlow boyle mcmahon buckner rocha puckett\nlangley knowles cooke velazquez vang rouse hartley mayfield elder rankin cowan lucero arroyo\nslaughter haas oconnell minor boucher archer boggs dougherty andersen newell crowe wang friedman\nbland swain pearce childs yarbrough galvan proctor meeks lozano rangel bacon villanueva schaefer\nrosado helms goss stinson smart lake ibarra hutchins covington crowley hatcher mackey bunch womack\npolk dodd childress childers camp villa dye springer mahoney dailey belcher lockhart griggs costa\nconnor brandt walden moser mccann akers lutz pryor law orozco mcallister lugo davies shoemaker\nrutherford newsome magee chamberlain blanton simms godfrey flanagan crum cordova escobar downing\nsinclair donahue krueger mcginnis gore farris webber corbett andrade lyon yoder hastings mcgrath\nspivey krause harden crabtree kirkpatrick arrington ritter mcghee bolden maloney gagnon dunbar ponce\npike mayes heard beatty mobley kimball butts montes braun hamm gibbons moyer manley herron plummer\nelmore cramer rucker blue pierson fontenot field rubio goldstein elkins wills novak hickey worley\ngorman katz dickinson broussard woodruff crow britton nance lehman bingham zuniga whaley shafer\ncoffman steward delarosa nix mata davila mccabe kessler bowling hinkle welsh pagan goldberg goins\ncrouch cuevas quinones mcdermott hendrickson samuels denton bergeron lam locke haines snell hoskins\nbyrne arias roe corbin beltran chappell hurt downey dooley tuttle couch payton mcelroy crockett\ngroves cartwright dickey mcgill dubois muniz self tolbert dempsey cisneros sewell latham vigil tapia\nrainey norwood stroud meade tipton lord kuhn hilliard bonilla teague gunn ho greenwood correa reece\npoe pineda phipps frey kaiser ames gunter schmitt milligan espinosa bowden vickers lowry pritchard\ncostello mcclellan lovell sheehan quick hatch dobson singh jeffries hollingsworth sorensen meza fink\ndonnelly burrell tomlinson colbert billings ritchie helton sutherland peoples mcqueen thomason\ngivens crocker vogel robison dunham coker swartz keys ladner richter hargrove edmonds brantley\nalbright murdock boswell muller quintero padgett kenney daly connolly inman quintana lund barnard\nvillegas simons land huggins tidwell sanderson bullard mcclendon duarte draper marrero dwyer abrams\nstover goode fraser crews bernal smiley godwin fish conklin mcneal baca esparza crowder bower\nbrewster mcneill rodrigues leal coates raines mccain mccord miner holbrook swift dukes carlisle\naldridge ackerman starks ricks holliday ferris hairston sheffield lange fountain marino doss betts\nkaplan carmichael bloom ruffin penn kern bowles sizemore larkin dupree silver seals metcalf\nhutchison henley farr castle mccauley hankins gustafson deal curran ash waddell ramey cates pollock\ncummins messer heller funk cornett palacios galindo cano hathaway singer pham enriquez salgado\npelletier painter wiseman blount hand feliciano houser doherty mead mcgraw swan capps blanco\nblackmon thomson mcmanus fair burkett post gleason ott dickens cormier voss rushing rosenberg hurd\ndumas benitez arellano story caudill bragg jaramillo huerta gipson colvin biggs vela platt tompkins\nmccollum dolan daley crump street sneed kilgore grove grimm davison brunson prater marcum devine\ndodge stratton rosas choi tripp ledbetter lay hightower feldman epps yeager posey scruggs cope\nstubbs richey overton trotter sprague cordero butcher burger stiles burgos woodson horner bassett\npurcell haskins gee akins ziegler spaulding hadley grubbs sumner murillo zavala shook lockwood\ndriscoll dahl thorpe redmond putnam mcwilliams mcrae romano joiner sadler hedrick hager hagen fitch\ncoulter thacker mansfield langston guidry ferreira corley conn rossi lackey baez saenz mcnamara\nmcmullen mckenna mcdonough link engel browne roper peacock eubanks drummond stringer pritchett\nparham mims landers ham grayson schafer egan timmons ohara keen hamlin finn cortes mcnair nadeau\nmoseley michaud rosen oakes kurtz jeffers calloway beal bautista winn suggs stern stapleton lyles\nlaird montano dawkins hagan goldman bryson barajas lovett segura metz lockett langford hinson\neastman rock hooks woody smallwood shapiro crowell whalen triplett hooker chatman aldrich cahill\nyoungblood ybarra stallings sheets reeder person pack connelly bateman abernathy winkler wilkes\nmasters hackett granger gillis schmitz sapp napier souza lanier gomes weir otero ledford burroughs\nbabcock ventura siegel dugan bledsoe atwood wray varner spangler anaya staley kraft fournier\nbelanger wolff thorne bynum burnette boykin swenson purvis pina khan duvall xiong kauffman healy\nengle corona benoit valle steiner spicer shaver randle lundy dow calvert staton neff kearney darden\noakley medeiros mccracken crenshaw block beaver perdue dill whittaker tobin washburn hogue goodrich\neasley bravo dennison shipley kerns jorgensen crain villalobos maurer longoria keene coon\nwitherspoon staples pettit kincaid eason madrid echols lusk wu stahl currie thayer shultz mcnally\nseay north maher gagne barrow nava moreland honeycutt hearn diggs whitten westbrook stovall ragland\nmunson meier looney kimble jolly hobson london goddard culver burr presley negron connell tovar\nhuddleston hammer ashby salter root pendleton oleary nickerson myrick judd jacobsen bain adair\nstarnes matos light busby herndon hanley bellamy doty bartley yazzie rowell parson gifford cullen\nchristiansen benavides barnhart talbot mock crandall connors bonds whitt gage bergman arredondo\naddison lujan dowdy jernigan huynh bouchard dutton rhoades ouellette kiser herrington hare blackman\nbabb allred rudd paulson ogden koenig geiger begay parra champion lassiter hawk esposito cho waldron\nransom prather chacon vick sands roark parr mayberry greenberg coley bruner whitman skaggs shipman\nmeans leary hutton romo medrano ladd kruse friend darling askew schulz alfaro tabor mohr gallo\nbermudez pereira bliss reaves flint comer boston woodall naquin guevara delong carrier pickens brand\ntilley schaffer read lim knutson fenton doran vogt vann prescott mclain landis corcoran zapata hyatt\nhemphill faulk call dove boudreaux aragon whitlock trejo tackett shearer saldana hanks gold driver\nmckinnon koehler champagne bourgeois pool keyes goodson foote early lunsford goldsmith flood winslow\nsams mccloud hough esquivel naylor loomis coronado ludwig braswell bearden huang fagan ezell\nedmondson cyr cronin nunn lemon guillory grier dubose traylor ryder dobbins coyle aponte whitmore\nsmalls rowan malloy cardona braxton borden humphries carrasco ruff metzger huntley hinojosa finney\nmadsen hills ernst dozier burkhart bowser peralta daigle whittington sorenson saucedo roche redding\nfugate avalos waite lind huston hay hawthorne hamby boyles boles faust crook beam barger hinds\ngallardo willoughby willingham eckert busch zepeda worthington tinsley hoff hawley carmona varela\nrector newcomb kinsey dube whatley strange ragsdale bernstein becerra yost mattson ly felder cheek\nhandy grossman gauthier escobedo braden beckman mott hillman flaherty dykes doe stockton stearns\nlofton kitchen coats cavazos beavers barrios tang parish mosher cardwell coles burnham weller lemons\nbeebe aguilera ring parnell harman couture alley schumacher redd dobbs blum blalock merchant ennis\ndenson cottrell brannon bagley aviles watt sousa rosenthal rooney dietz blank paquette mcclelland\nduff velasco lentz grubb burrows barbour ulrich shockley rader beyer mixon layton altman weathers\nstoner squires shipp priest lipscomb cutler caballero zimmer willett thurston storey medley epperson\nshah mcmillian baggett torrez laws hirsch dent poirier peachey farrar creech barth trimble dupre\nalbrecht sample lawler crisp conroy wetzel nesbitt murry jameson wilhelm patten minton matson\nkimbrough iverson guinn fortune croft toth pulliam nugent newby littlejohn dias canales bernier\nbaron singletary renteria pruett mchugh mabry landrum brower stoddard cagle stjohn scales kohler\nkellogg hopson gant tharp gann zeigler pringle hammons fairchild deaton chavis carnes rowley matlock\nkearns irizarry carrington starkey pepper lopes jarrell craven baum spain littlefield humphreys hook\nhigh etheridge cuellar chastain bundy speer skelton quiroz pyle portillo ponder moulton machado liu\nkillian hutson hitchcock dowling cloud burdick spann pedersen levin leggett hayward hacker dietrich\nbeaulieu barksdale wakefield snowden briscoe bowie berman ogle mcgregor laughlin helm burden\nwheatley schreiber pressley parris ng alaniz agee urban swann snodgrass schuster radford monk\nmattingly main harp girard cheney yancey wagoner ridley lombardo lau hudgins gaskins duckworth coe\ncoburn willey prado newberry magana hammonds elam whipple slade serna ojeda liles dorman diehl upton\nreardon michaels goetz eller bauman baer hummel brenner amaya adamson ornelas dowell cloutier\ncastellanos wing wellman saylor orourke moya montalvo kilpatrick durbin shell oldham kang garvin\nfoss branham bartholomew templeton maguire holton rider monahan mccormack beaty anders streeter\nnieto nielson moffett lankford keating heck gatlin delatorre callaway adcock worrell unger robinette\nnowak jeter brunner steen parrott overstreet nobles montanez clevenger brinkley trahan quarles\npickering pederson jansen grantham gilchrist crespo aiken schell schaeffer lorenz leyva harms dyson\nwallis pease leavitt cheng cavanaugh batts warden seaman rockwell quezada paxton linder houck\nfontaine durant caruso adler pimentel mize lytle cleary cason acker switzer salmon isaacs\nhigginbotham waterman vandyke stamper sisk shuler riddick redman mcmahan levesque hatton bronson\nbollinger arnett okeefe gerber gannon farnsworth baughman silverman satterfield mccrary kowalski\ngrigsby greco cabral trout rinehart mahon linton gooden curley baugh wyman weiner schwab schuler\nmorrissey mahan bunn thrasher spear waggoner qualls purdy mcwhorter mauldin gilman perryman newsom\nmenard martino graf billingsley artis simpkins salisbury quintanilla gilliland fraley foust crouse\nscarborough ngo grissom fultz marlow markham madrigal lawton barfield whiting varney schwarz gooch\narce wheat truong poulin hurtado selby gaither fortner culpepper coughlin brinson boudreau barkley\nbales stepp holm tan schilling morrell kahn heaton gamez causey brothers turpin shanks schrader meek\nisom hardison carranza yanez way scroggins schofield runyon ratcliff murrell moeller irby currier\nbutterfield ralston pullen pinson estep east carbone hawks ellington casillas spurlock sikes motley\nmccartney kruger isbell houle burk bone tomlin quigley neumann lovelace fennell cheatham bustamante\nskidmore hidalgo forman culp bowens betancourt aquino robb milner martel gresham wiles ricketts dowd\ncollazo bostic blakely sherrod power kenyon gandy ebert deloach bull allard sauer robins olivares\ngillette chestnut bourque paine hite hauser devore crawley chapa vu talbert poindexter meador\nmcduffie mattox kraus harkins choate wren sledge sanborn outlaw kinder geary cornwell barclay abney\nseward rhoads howland fortier benner vines tubbs troutman rapp mccurdy harder deluca westmoreland\nsouth havens guajardo ely clary seal meehan herzog guillen ashcraft waugh renner milam elrod\nchurchill breaux bolin asher windham tirado pemberton nolen noland knott emmons cornish christenson\nbrownlee barbee waldrop pitt olvera lombardi gruber gaffney eggleston banda archuleta still slone\nprewitt pfeiffer nettles mena mcadams henning gardiner cromwell chisholm burleson box vest oglesby\nmccarter lumpkin grey wofford vanhorn thorn teel swafford stclair stanfield ocampo herrmann hannon\narsenault roush mcalister hiatt gunderson forsythe duggan delvalle cintron wilks weinstein uribe\nrizzo noyes mclendon gurley bethea winstead maples guyton giordano alderman valdes polanco pappas\nlively grogan griffiths bobo arevalo whitson sowell rendon fernandes farrow benavidez ayres alicea\nstump smalley seitz schulte gilley gallant casper canfield wolford omalley mcnutt mcnulty mcgovern\nhardman harbin cowart chavarria brink beckett bagwell armstead anglin abreu reynoso krebs jett\nhoffmann greenfield forte burney broome sisson parent younger trammell partridge mace lomax lemieux\ngossett frantz fogle cooney broughton pence paulsen muncy mcarthur hollins beauchamp withers osorio\nmulligan hoyle foy dockery cockrell begley amador roby rains lindquist gentile everhart bohannon\nwylie sommers purnell fortin dunning breeden vail phelan phan cosby colburn boling biddle ledesma\ngaddis denney chow bueno berrios wicker tolliver thibodeaux nagle lavoie fisk do crist barbosa reedy\nmarch locklear kolb himes behrens beckwith beckham weems wahl shorter shackelford rees muse free\ncerda valadez thibodeau saavedra ridgeway reiter mchenry majors lachance keaton ferrara falcon\nclemens blocker applegate needham mojica kuykendall hamel escamilla doughty burchett ainsworth vidal\nupchurch thigpen strauss spruill sowers riggins ricker mccombs harlow buffington sotelo olivas\nnegrete morey macon logsdon lapointe bigelow bello westfall stubblefield peak lindley hein hawes\nfarrington edge breen birch wilde steed sepulveda reinhardt proffitt minter messina mcnabb maier\nkeeler gamboa donohue basham shinn crooks cota borders bills bachman tisdale tavares schmid pickard\ngulley fonseca delossantos condon clancy batista wicks wadsworth new martell lo littleton ison haag\nfolsom brumfield broyles brito mireles mcdonnell leclair hamblin gough fanning binder winfield\nwhitworth soriano palumbo newkirk mangum hutcherson comstock carlin beall bair wendt watters walling\nputman otoole morley mares lemus keener hundley dial damico billups strother mcfarlane lamm eaves\ncrutcher caraballo canty atwell taft siler rust rawls rawlings prieto niles mcneely mcafee hulsey\nhackney galvez escalante delagarza crider charlton bandy wilbanks stowe steinberg samson renfro\nmasterson massie lanham haskell hamrick fort dehart card burdette branson bourne babin aleman worthy\ntibbs sweat smoot slack paradis packard mull luce houghton gantt furman danner christianson burge\nashford arndt almeida stallworth shade searcy sager noonan mclemore mcintire maxey lavigne jobe\nireland ferrer falk coffin byrnes aranda apodaca stamps rounds peek olmstead lewandowski kaminski\nher dunaway bruns brackett amato reich mcclung lacroix koontz herrick hardesty flanders cousins\nclose cato cade vickery shank nagel dupuis croteau cotter cable stuckey stine porterfield pauley nye\nmoffitt knudsen hardwick goforth dupont blunt barrows barnhill shull rash loftis lemay kitchens\nhorvath grenier fuchs fairbanks culbertson calkins burnside beattie ashworth albertson wertz vo\nvaught vallejo turk tuck tijerina picard peterman marroquin marr lantz hoang demarco daily cone\nberube barnette wharton stinnett slocum scanlon sander pinto mancuso lima judge headley epstein\ncounts clarkson carnahan boren arteaga adame zook whittle whitehurst wenzel saxton reddick puente\nhandley haggerty earley devlin chaffin cady acuna solano sigler pollack pendergrass ostrander janes\nfrancois fine crutchfield chamberlin brubaker baptiste willson reis neeley mullin mercier lira\nlayman keeling higdon guest forrester espinal chapin warfield toledo pulido peebles nagy montague\nmello lear jaeger hogg graff furr cave canada soliz poore mendenhall mclaurin maestas low gable belt\nbarraza tillery snead pond neill mcculloch mccorkle lightfoot hutchings holloman harness dorn\ncouncil bock zielinski turley treadwell stpierre starling somers oswald merrick easterling bivens\ntruitt poston parry ontiveros olivarez moreau medlin lenz knowlton fairley cobbs chisolm bannister\nwoodworth toler ocasio noriega neuman moye milburn mcclanahan lilley hanes flannery dellinger\ndanielson conti blodgett beers weatherford strain karr hitt denham custer coble clough casteel\nbolduc batchelor ammons whitlow tierney staten sibley seifert schubert salcedo mattison laney\nhaggard grooms dix dees cromer cooks colson caswell zarate swisher ragan pridgen mcvey matheny\nlafleur franz ferraro dugger whiteside rigsby mcmurray lehmann large jacoby hildebrand hendrick\nheadrick goad fincher drury borges archibald albers woodcock trapp soares seaton monson luckett\nlindberg kopp keeton hsu healey garvey gaddy fain burchfield badger wentworth strand stack spooner\nsaucier sales ricci plunkett pannell ness leger hoy freitas fong elizondo duval beaudoin urbina\nstock rickard partin moe mcgrew mcclintock ledoux forsyth faison devries bertrand wasson tilton\nscarbrough pride oh leung irvine garber denning corral colley castleberry bowlin bogan beale baines\ntrue trice rayburn parkinson pak nunes mcmillen leahy kimmel higgs fulmer carden bedford taggart\nspearman register prichard morrill koonce heinz hedges guenther grice findley dover creighton boothe\nbayer arreola vitale valles raney osgood hanlon burley bounds worden weatherly vetter tanaka\nstiltner sell nevarez mosby montero melancon harter hamer goble gladden gist ginn akin zaragoza\ntowns tarver sammons royster oreilly muir morehead luster kingsley kelso grisham glynn baumann alves\nyount tamayo paterson oates menendez longo hargis greenlee gillen desantis conover breedlove sumpter\nscherer rupp reichert heredia creel cohn clemmons casas bickford belton bach williford whitcomb\ntennant sutter stull sessions mccallum manson langlois keel keegan dangelo dancy damron clapp\nclanton bankston oliveira mintz mcinnis martens mabe laster jolley hildreth hefner glaser duckett\ndemers brockman blais back alcorn agnew toliver tice seeley najera musser mcfall laplante galvin\nfajardo doan coyne copley clawson cheung barone wynne woodley tremblay stoll sparrow sparkman\nschweitzer sasser samples roney legg heim farias colwell christman bratcher winchester upshaw\nsoutherland sorrell sells mount mccloskey martindale luttrell loveless lovejoy linares latimer embry\ncoombs bratton bostick boss venable tuggle toro staggs sandlin jefferies heckman griffis crayton\nclem button browder thorton sturgill sprouse royer rousseau ridenour pogue perales peeples metzler\nmesa mccutcheon mcbee hornsby heffner corrigan armijo vue plante peyton paredes macklin hussey\nhodgson granados frias becnel batten almanza turney teal sturgeon meeker mcdaniels limon keeney kee\nhutto holguin gorham fishman fierro blanchette rodrigue reddy osburn oden lerma kirkwood keefer\nhaugen hammett chalmers brinkman baumgartner zhang valerio tellez steffen shumate sauls ripley\nkemper jacks guffey evers craddock carvalho blaylock banuelos balderas wooden wheaton turnbull\nshuman pointer mosier mccue ligon kozlowski johansen ingle herr briones southern snipes rickman\npipkin peace pantoja orosco moniz lawless kunkel hibbard galarza enos bussey settle schott salcido\nperreault mcdougal mccool haight garris ferry easton conyers atherton wimberly utley spellman\nsmithson slagle skipper ritchey rand petit osullivan oaks nutt mcvay mccreary mayhew knoll jewett\nharwood cardoza ashe arriaga zeller wirth whitmire stauffer rountree redden mccaffrey martz loving\nlarose langdon humes gaskin faber doll devito cass almond wingfield wingate villareal tyner smothers\nseverson reno pennell maupin leighton janssen hassell hallman halcomb folse fitzsimmons fahey\ncranford bolen battles battaglia wooldridge weed trask rosser regalado mcewen keefe fuqua echevarria\ndang caro boynton andrus wild viera vanmeter taber spradlin seibert provost prentice oliphant\nlaporte hwang hatchett hass greiner freedman covert chilton byars wiese venegas swank shrader\nroberge mullis mortensen mccune marlowe kirchner keck isaacson hostetler halverson gunther griswold\nfenner durden blackwood ahrens sawyers savoy nabors mcswain mackay loy lavender lash labbe jessup\nfullerton cruse crittenden correia centeno caudle canady callender alarcon ahern winfrey tribble\nstyles roden musgrove minnick fortenberry carrion bunting batiste woo whited underhill stillwell\nrauch pippin perrin messenger mancini lister kinard hartmann fleck broadway wilt treadway thornhill\nspeed spalding rafferty pitre patino ordonez linkous kelleher homan holiday galbraith feeney curtin\ncoward camarillo buss bunnell bolt beeler autry alcala witte wentz stidham shively nunley meacham\nmartins lemke lefebvre hynes horowitz hoppe holcombe dunne derr cochrane brittain bedard beauregard\ntorrence strunk soria simonson shumaker scoggins packer oconner moriarty kuntz ives hutcheson horan\nhales garmon fitts bohn atchison worth wisniewski vanwinkle sturm sallee prosser moen lundberg kunz\nkohl keane jorgenson jaynes funderburk freed frame durr creamer cosgrove berlin batson vanhoose\nthomsen teeter smyth redmon orellana maness lennon heflin goulet frick forney dollar bunker asbury\naguiar talbott southard pleasant mowery mears lemmon krieger hickson elston duong delgadillo dayton\ndasilva conaway catron bruton bradbury bordelon bivins bittner bergstrom beals abell whelan travers\ntejada pulley pino norfleet nealy maes loper held gatewood frierson freund finnegan cupp covey\ncatalano boehm bader yoon walston tenney sipes roller rawlins medlock mccaskill mccallister marcotte\nmaclean hughey henke harwell gladney gilson dew chism caskey brandenburg baylor villasenor veal\nthatcher stegall shore petrie nowlin navarrete muhammad lombard loftin lemaster kroll kovach\nkimbrell kidwell hershberger fulcher eng cantwell bustos boland bobbitt binkley wester weis verdin\ntong tiller sisco sharkey seymore rosenbaum rohr quinonez pinkston nation malley logue lessard\nlerner lebron krauss klinger halstead haller getz burrow alger shores scully pounds pfeifer perron\nnelms munn mcmaster mckenney manns knudson hutchens huskey goebel flagg cushman click castellano\ncarder bumgarner bible wampler spinks robson neel mcreynolds mathias maas loera kasper jenson florez\ncoons buckingham brogan berryman wilmoth wilhite thrash shephard seidel schulze roldan pettis obryan\nmaki mackie hatley frazer fiore falls chesser bui bottoms bisson benefield allman wilke trudeau timm\nshifflett rau mundy milliken mayers leake kohn huntington horsley hermann guerin fryer frizzell\nforet flemming fife criswell carbajal bozeman boisvert angulo wallen tapp silvers ramsay oshea orta\nmoll mckeever mcgehee linville kiefer ketchum howerton groce gass fusco corbitt betz bartels amaral\naiello yoo weddle sperry seiler runyan raley overby osteen olds mckeown matney lauer lattimore\nhindman hartwell fredrickson fredericks espino clegg carswell cambell burkholder woodbury welker\ntotten thornburg theriault stitt stamm stackhouse scholl saxon rife razo quinlan pinkerton olivo\nnesmith nall mattos leak lafferty justus giron geer fielder eagle drayton dortch conners conger\nboatwright billiot barden armenta tibbetts steadman slattery sides rinaldi raynor pinckney pettigrew\nnickel milne matteson halsey gonsalves fellows durand desimone cowley cowles brill barham barela\nbarba ashmore withrow valenti tejeda spriggs sayre salerno place peltier peel merriman matheson\nlowman lindstrom hyland giroux fries frasier earls dugas dabney collado briseno baxley word whyte\nwenger vanover vanburen thiel schindler schiller rigby pomeroy passmore marble manzo mahaffey\nlindgren laflamme greathouse fite ferrari calabrese bayne yamamoto wick townes thames steel reinhart\npeeler naranjo montez mcdade mast markley marchand leeper kong kellum hudgens hennessey hadden guess\ngainey coppola borrego bolling beane ault slaton poland pape null mulkey lightner langer hillard\nglasgow ethridge enright derosa baskin weinberg turman tinker somerville pardo noll lashley ingraham\nhiller hendon glaze cothran cooksey conte carrico apple abner wooley swope summerlin sturgis\nsturdivant stott spurgeon spillman speight roussel popp nutter mckeon mazza magnuson lanning kozak\njankowski heyward forster corwin callaghan bays wortham usher theriot sayers sabo poling loya\nlieberman laroche labelle howes harr garay fogarty everson durkin dominquez chaves chambliss witcher\nvieira vandiver terrill stoker schreiner moorman liddell lew lawhorn krug irons hylton hollenbeck\nherrin hembree hair goolsby goodin gilmer foltz dinkins daughtry caban brim briley bilodeau bear\nwyant vergara tallent swearingen stroup scribner quillen pitman monaco mccants maxfield martinson\nholtz flournoy brookins brody baumgardner straub sills roybal roundtree oswalt money mcgriff\nmcdougall mccleary maggard gragg gooding godinez doolittle donato cowell cassell bracken appel\nzambrano reuter perea nakamura monaghan mickens mcclinton mcclary marler kish judkins gilbreath\nfreese flanigan felts erdmann dodds chew brownell brazil boatright barreto slayton sandberg saldivar\npettway odum narvaez moultrie montemayor merrell lees keyser hoke hardaway hannan gilbertson fogg\ndumont deberry coggins carrera buxton bucher broadnax beeson araujo appleton amundson aguayo ackley\nyocum worsham shivers sanches sacco robey rhoden pender ochs mccurry madera luong knotts jackman\nheinrich hargrave gault comeaux chitwood child caraway boettcher bernhardt barrientos zink wickham\nwhiteman thorp stillman settles schoonover roque riddell pilcher phifer novotny macleod hardee haase\ngrider doucette clausen christmas bevins beamon badillo tolley tindall soule snook seale pitcher\npinkney pellegrino nowell nemeth nail mondragon mclane lundgren ingalls hudspeth hixson gearhart\nfurlong downes dibble deyoung cornejo camara brookshire boyette wolcott surratt sellars segal salyer\nreeve rausch philips labonte haro gower freeland fawcett eads driggers donley collett cage bromley\nboatman ballinger baldridge volz trombley stonge shanahan rivard rhyne pedroza matias mallard\njamieson hedgepeth hartnett estevez eskridge denman chiu chinn catlett carmack buie book bechtel\nbeardsley bard ballou windsor ulmer storm skeen robledo rincon reitz piazza munger moten mcmichael\nloftus ledet kersey groff fowlkes folk crumpton clouse bettis villagomez timmerman strom santoro\nroddy penrod musselman macpherson leboeuf harless haddad guido golding fulkerson fannin dulaney\ndowdell cottle ceja cate bosley benge albritton voigt trowbridge soileau seely rome rohde pearsall\npaulk orth nason mota mcmullin marquardt madigan hoag gillum gabbard fenwick fender eck danforth\ncushing cress creed cazares casanova bey bettencourt barringer baber stansberry schramm rutter\nrivero race oquendo necaise mouton montenegro miley mcgough marra macmillan lock lamontagne jasso\nhorst hetrick heilman gaytan gall fried fortney dingle desjardins dabbs burbank brigham breland\nbeaman banner arriola yarborough wallin treat toscano stowers reiss pichardo orton michels mcnamee\nmccrory leatherman kell keister horning hargett guay friday ferro deboer dagostino christ carper\nbowler blanks beaudry towle tafoya stricklin strader soper sonnier sigmon schenk saddler rodman\npedigo mendes lunn lohr lahr kingsbury jarman hume holliman hofmann haworth harrelson hambrick flick\nedmunds dacosta crossman colston chaplin carrell budd weiler waits valentino trantham tarr straight\nsolorio roebuck powe plank pettus palm pagano mink luker leathers joslin hartzell gambrell fears\ndeutsch cepeda carty caputo brewington bedell ballew applewhite warnock walz urena tudor reel pigg\nparton mickelson meagher mclellan mcculley mandel leech lavallee kraemer kling kipp kingston kehoe\nhochstetler harriman gregoire grabowski gosselin gammon fancher edens desai butt brannan armendariz\nwoolsey whitehouse whetstone ussery towne tower testa tallman studer strait steinmetz sorrells\nsauceda rolfe paddock mitchem mcginn mccrea luck lovato hazen gilpin gaynor fike devoe delrio curiel\nburkhardt bristol bode backus zinn watanabe wachter vanpelt turnage shaner schroder sato riordan\nquimby portis natale mckoy mccown marker kilmer hotchkiss hesse halbert gwinn godsey delisle\nchrisman canter arbogast angell acree yancy woolley wesson weatherspoon trainor stockman spiller\nsipe rooks reavis propst porras neilson mullens loucks llewellyn kumar koester klingensmith kirsch\nkester honaker hodson hennessy helmick garrity garibay fee drain casarez callis botello bay aycock\navant wingard wayman tully theisen szymanski stansbury segovia rainwater preece pirtle padron mincey\nmckelvey mathes larrabee kornegay klug ingersoll hecht germain eggers dykstra deering decoteau\ndeason dearing cofield carrigan brush bonham bahr aucoin appleby almonte yager womble wimmer weimer\nvanderpool stancil sprinkle romine remington pfaff peckham olivera meraz maze lathrop koehn hazelton\nhalvorson hallock haddock ducharme dehaven caruthers brehm bosworth bost blow bias beeman basile\nbane aikens wold walther tabb suber strawn stocks stocker shirey schlosser riedel rembert reimer\npyles pickle peele merriweather letourneau latta kidder hixon hillis hight herbst henriquez haygood\nhamill gabel fritts eubank duty dawes correll coffee cha bushey buchholz brotherton bridge botts\nbarnwell auger atchley westphal veilleux ulloa stutzman shriver ryals prior pilkington newport\nmoyers miracle marrs mangrum maddux lockard laing kuhl harney hammock hamlett felker doerr depriest\ncarrasquillo carothers bogle blood bischoff bergen albanese wyckoff vermillion vansickle thibault\ntetreault stickney shoemake ruggiero rawson racine philpot paschal mcelhaney mathison legrand\nlapierre kwan kremer jiles hilbert geyer faircloth ehlers egbert desrosiers dalrymple cotten cashman\ncadena breeding boardman alcaraz ahn wyrick therrien tankersley strickler puryear plourde pattison\npardue mcginty mcevoy landreth kuhns koon hewett giddens emerick eades deangelis cosme ceballos\nbirdsong benham bemis armour anguiano welborn tsosie storms shoup sessoms samaniego rood rojo\nrhinehart raby northcutt myer munguia morehouse more mcdevitt mateo mallett lozada lemoine kuehn\nhallett grim gillard gaylor garman gallaher feaster faris darrow dardar coney carreon braithwaite\nboylan boyett born bixler bigham benford barragan barnum zuber wyche westcott vining stoltzfus\nsimonds shupe sabin ruble rittenhouse richman perrone mulholland millan meister lomeli kite jemison\nhulett holler hickerson herold hazelwood griffen gause forde eisenberg dilworth charron chaisson\nbrodie bristow breunig brace boutwell bentz belk bayless batchelder baran baeza zimmermann\nweathersby volk toole theis tedesco shine searle schenck satterwhite ruelas rankins partida nesbit\nmorel menchaca levasseur kaylor johnstone hulse hollar hersey harrigan harbison guyer gish giese\ngerlach geller geisler falcone elwell doucet deese darr corder chafin byler bussell burdett brasher\nbowe bellinger bastian barner alleyne wilborn weil wegner wales tatro spitzer smithers schoen\nresendez parisi overman obrian mudd moy mclaren mahler maggio lindner lalonde lacasse laboy killion\nkahl jessen jamerson houk henshaw gustin groom graber durst duenas davey cundiff conlon colunga\ncoakley chiles capers buell bricker bissonnette birmingham bartz bagby zayas volpe treece toombs\nthom terrazas swinney skiles silveira shouse senn rambo ramage nez moua langham kyles holston\nhoagland herd feller denison carraway burford bickel ambriz abercrombie yamada winner weidner waddle\nverduzco thurmond swindle schrock sanabria rosenberger probst peabody olinger neighbors nazario\nmccafferty mcbroom mcabee mazur matherne mapes leverett killingsworth heisler griego grande gosnell\nfrankel franke ferrante fenn ehrlich christopherso chick chasse chancellor caton brunelle bly\nbloomfield babbitt azevedo abramson ables abeyta youmans wozniak wainwright stowell smitherman sites\nsamuelson runge rule rothman rosenfeld quan peake oxford owings olmos munro moreira leatherwood\nlarkins krantz kovacs kizer kindred karnes jaffe hubbell hosey hauck goodell favors erdman dvorak\ndoane cureton\n`;\n\n/** Lower-cased given names and common surnames. */\nexport const COMMON_HUMAN_NAMES: ReadonlySet<string> = new Set(\n `${GIVEN_NAMES} ${SURNAMES}`.split(/\\s+/).filter(Boolean),\n);\n","/**\n * @fileoverview Holder for the optional 92k human-names database\n * (`human-names-92k.json`, ~1.1 MB).\n *\n * The default `extract-human-name` entry never imports the JSON, so it\n * stays slim. Person-vs-organization detection then runs on the compact\n * built-in name list (`common-names.ts`) and word heuristics. The full\n * 92k database is loaded only when it is needed, one of two ways:\n *\n * - `loadHumanNamesDB()` lazy-loads it from a CDN at runtime (one shared\n * request, cached, resolves `null` on failure so an outage never breaks\n * name extraction), or\n * - import `extract-human-name/full`, which bundles the JSON and registers\n * it on import.\n *\n * `setHumanNamesDB(db)` registers a copy you already hold. Both entries\n * share one database, so importing `extract-human-name/full` once enables\n * it for the slim import too.\n */\n\n/** Lowercase name → 1 (given name) or 2 (surname). */\nexport type HumanNamesDB = Record<string, number>;\n\n/** Published copy of the names JSON, served by jsDelivr from npm. */\nexport const HUMAN_NAMES_DB_CDN_URL =\n \"https://cdn.jsdelivr.net/npm/extract-human-name/human-names-92k.json\";\n\nlet namesDB: HumanNamesDB | null = null;\nlet loading: Promise<HumanNamesDB | null> | null = null;\n\n/** Registers a names database (or `null` to clear it). */\nexport function setHumanNamesDB(db: HumanNamesDB | null): void {\n namesDB = db;\n loading = null;\n}\n\n/** The registered names database, or `null` when none is loaded. */\nexport function getHumanNamesDB(): HumanNamesDB | null {\n return namesDB;\n}\n\nexport interface LoadHumanNamesDBOptions {\n /** Where to fetch the JSON from. Defaults to {@link HUMAN_NAMES_DB_CDN_URL}. */\n url?: string;\n /** Injectable fetch, for tests and non-browser runtimes. */\n fetch?: typeof fetch;\n}\n\n/**\n * Lazy-loads the names database from a CDN and registers it. Concurrent\n * and repeat calls share one request; once loaded it resolves immediately.\n * Resolves `null` (and leaves the compact-list fallback in place) if the\n * fetch fails, so a CDN outage never breaks name extraction. A failed\n * load is not cached, so a later call can retry.\n */\nexport function loadHumanNamesDB(\n options: LoadHumanNamesDBOptions = {},\n): Promise<HumanNamesDB | null> {\n if (namesDB) return Promise.resolve(namesDB);\n if (loading) return loading;\n\n const { url = HUMAN_NAMES_DB_CDN_URL, fetch: fetchImpl = globalThis.fetch } =\n options;\n\n const request: Promise<HumanNamesDB | null> = Promise.resolve()\n .then(() => fetchImpl(url))\n .then((res) => {\n if (!res.ok) throw new Error(`HTTP ${res.status}`);\n return res.json();\n })\n .then((db: HumanNamesDB) => {\n if (!db || typeof db !== \"object\") throw new Error(\"invalid names JSON\");\n namesDB = db;\n return db;\n })\n .catch(() => null)\n .finally(() => {\n if (loading === request) loading = null;\n });\n loading = request;\n return request;\n}\n","import { TERMS_ORG, TERMS_QUALIFICATIONS, ORG_PATTERNS } from \"./constants\";\nimport { COMMON_HUMAN_NAMES } from \"./common-names\";\nimport { getHumanNamesDB } from \"./human-names-db\";\n\n/**\n * Whether a single lower-cased word is a common given name or surname.\n *\n * Uses the 92k-entry database when one is loaded (see human-names-db.ts),\n * and the compact built-in list otherwise. The sources are keyed in\n * lower case, so callers must pass a lower-cased word.\n */\nfunction isKnownHumanNameWord(word: string): boolean {\n const db = getHumanNamesDB();\n if (db) return db[word] === 1 || db[word] === 2;\n return COMMON_HUMAN_NAMES.has(word);\n}\n\n/**\n * Validates whether a provided name string conceptually applies to a registered organization,\n * corporation, publication, or government entity vs a discrete human.\n *\n * @param {string} nameString - The analyzed string representation.\n * @returns {boolean} `true` if heuristically categorized as an organization.\n */\nexport function isOrganization(nameString: string): boolean {\n if (!nameString) return false;\n\n const nameLower = nameString.toLowerCase().replace(/[^\\w\\s]/g, \" \");\n const words = nameLower.split(/\\s+/).filter(Boolean);\n\n // Short rigid acronym block identifies rapid organizations (e.g., NAACP, WHO)\n if (/^[A-Z]{2,6}$/.test(nameString.trim())) {\n return true;\n }\n\n // Organization dict scan. Roughly a quarter of the dictionary doubles as a\n // human given name or surname — \"doe\" (Dept. of Energy) and \"jones\" (Dow\n // Jones) are in there next to \"institution\" and \"reuters\" — so a lone\n // ambiguous hit is not enough to call \"John Doe\" an organization. A single\n // *unambiguous* term is decisive; ambiguous ones only count in pairs, which\n // is what carries firm names like \"Morgan Stanley\" and \"Wells Fargo\".\n const orgHits = words.filter((word) => TERMS_ORG.has(word));\n const decisiveOrgHits = orgHits.filter((word) => !isKnownHumanNameWord(word));\n if (decisiveOrgHits.length > 0 || orgHits.length > 1) return true;\n\n // Qualification dict scan (counter-balance for \"Professor Institute ABC\")\n for (const word of words) {\n if (TERMS_QUALIFICATIONS.has(word)) return false;\n }\n\n // Last, First name inversion standard\n if (/,\\s*\\w+/.test(nameString)) {\n return false;\n }\n\n // Robust standard organizational lexical phrases match\n for (const pattern of ORG_PATTERNS) {\n if (pattern.test(nameString)) return true;\n }\n\n // Arbitrary length fail-over. Most humans lack > 4 distinct name elements.\n if (words.length > 4 && !nameString.includes(\",\")) return true;\n\n // Cross-reference against the common human-names list. The list is keyed in\n // lower case, and `words` is already lower-cased above, so the two\n // line up without any re-casing.\n return !words.some(isKnownHumanNameWord) && words.length > 2;\n}\n","/**\n * @fileoverview Resolves strings containing humans and organizations into citation objects.\n */\n\nimport type {\n AuthorType,\n HumanNameOptions,\n HumanNameResult,\n} from \"./types/types\";\nimport { splitMultipleAuthors } from \"./author-splitter\";\nimport {\n cleanProfessionalQualifications,\n extractHumanNameParts,\n} from \"./name-parser\";\nimport { isOrganization } from \"./is-organization\";\n\nexport * from \"./types/types\";\nexport * from \"./constants\";\nexport * from \"./name-parser\";\nexport * from \"./author-splitter\";\nexport * from \"./is-organization\";\n\n/**\n * Systematically extracts, characterizes, and strictly structures citation outputs\n * from arbitrary, mixed author textual inputs (e.g., parsing debate cards).\n *\n * Determines whether authors are individual entities, multiple partners, or institutional organizations,\n * outputting both standard explicit citation and shorthand forms.\n *\n * @param {string} author - Raw unformatted author string fragment (e.g., \"by: Dr. John Smith and Jane Doe\").\n * @param {HumanNameOptions} options - Configuration guidelines for shortening formats or ET AL thresholds.\n * @returns {HumanNameResult} Cleanly typed compilation resolving specific citation blocks.\n */\nexport function extractHumanName(\n author: string,\n options: HumanNameOptions = {},\n): HumanNameResult {\n const { formatCiteShortenAuthor = false, maxAuthorsBeforeEtAl = 2 } = options;\n\n if (!author || typeof author !== \"string\") {\n return { author_cite: \"\", author_short: \"\", author_type: 4 };\n }\n\n // Baseline sanitize prefix markers and erratic structural spaces\n const sanitized = author\n .trim()\n .replace(/^by:?\\s*/i, \"\")\n .replace(/\\s{2,}/g, \" \");\n\n const authorNames = splitMultipleAuthors(sanitized);\n if (authorNames.length === 0) {\n return { author_cite: \"\", author_short: \"\", author_type: 4 };\n }\n\n // Sequentially digest discrete segment bounds\n const processedAuthors = authorNames.map((authorName) => {\n const cleanedAuthorName = cleanProfessionalQualifications(authorName);\n const isOrg = isOrganization(cleanedAuthorName);\n const nameParts = extractHumanNameParts(cleanedAuthorName);\n\n return {\n original: authorName,\n cleaned: cleanedAuthorName,\n nameParts,\n isOrg,\n };\n });\n\n // Calculate cardinality-based author classification schema parameter\n let authorType: AuthorType = 0;\n if (processedAuthors.length === 1) {\n authorType = processedAuthors[0].isOrg ? 4 : 1;\n } else if (processedAuthors.length === 2) {\n authorType = 2;\n } else if (processedAuthors.length > 2) {\n authorType = 3;\n }\n\n // Iterate structured formatting application\n const formattedAuthors = processedAuthors.map((item) => {\n if (item.isOrg) {\n const maxOrgNameLength = 60;\n let orgName = item.cleaned || item.original;\n\n // Limit absurdly long org names reasonably\n if (orgName.length > maxOrgNameLength) {\n const breakAt = orgName.slice(0, maxOrgNameLength).lastIndexOf(\" \");\n orgName = orgName.substring(\n 0,\n breakAt > 0 ? breakAt : maxOrgNameLength,\n );\n }\n return { cite: orgName, short: orgName };\n }\n\n const { firstname, middle, lastname, title, honorific } =\n item.nameParts || {};\n if (!lastname) {\n return {\n cite: item.cleaned || item.original,\n short: item.cleaned || item.original,\n };\n }\n\n let finalFirst = firstname;\n if (middle) finalFirst += ` ${middle}`;\n\n // Applying abbreviated initializations to forenames conditionally\n if (formatCiteShortenAuthor && finalFirst) {\n finalFirst = finalFirst\n .split(/\\s+/)\n .map((p) => `${p[0] || \"\"}.`)\n .join(\" \");\n }\n\n let finalLast = lastname;\n if (title) finalLast = `${title} ${finalLast}`;\n\n let citeCompile = `${finalLast}, ${finalFirst}`.trim();\n if (honorific) citeCompile += `, ${honorific}`;\n\n return {\n cite: citeCompile.replace(/,\\s*$/, \"\"),\n short: finalLast,\n };\n });\n\n let authorCite = \"\";\n let authorShort = \"\";\n\n // Combine components explicitly via inferred structure type\n if (authorType === 1 || authorType === 4) {\n authorCite = formattedAuthors[0]?.cite ?? \"\";\n authorShort = formattedAuthors[0]?.short ?? \"\";\n } else if (authorType === 2) {\n authorCite = `${formattedAuthors[0]?.cite} & ${formattedAuthors[1]?.cite}`;\n authorShort = `${formattedAuthors[0]?.short} & ${formattedAuthors[1]?.short}`;\n } else if (authorType === 3) {\n if (processedAuthors.length <= maxAuthorsBeforeEtAl) {\n const last = formattedAuthors.pop();\n authorCite = formattedAuthors.map((a) => a.cite).join(\", \");\n if (last) authorCite += ` & ${last.cite}`;\n authorShort = `${formattedAuthors[0]?.short} et al.`;\n } else {\n authorCite = `${formattedAuthors[0]?.cite} et al.`;\n authorShort = `${formattedAuthors[0]?.short} et al.`;\n }\n } else {\n // Graceful exception escape\n const genericClean = cleanProfessionalQualifications(author);\n authorCite = genericClean || author;\n authorShort = genericClean || author;\n }\n\n return {\n author_cite: authorCite,\n author_short: authorShort,\n author_type: authorType,\n };\n}\n"],"mappings":"AAOA,SAAgBA,EAAqBC,GACnC,IAAKA,EAAc,MAAO,GAE1B,IAAIC,EAAaD,EAAaE,QAAQ,kBAAmB,IAGzD,MAAI,8BAA8BC,KAAKF,GAC9BA,EAAWG,MAAM,WAAWC,OAAOC,SAK1C,2BAA2BH,KAAKF,IAChC,sBAAsBE,KAAKF,IAE3BA,EAAaA,EAAWC,QAAQ,4BAA6B,OACtDD,EACJG,MAAM,iCACNG,IAAKC,GAAMA,EAAEC,QACbJ,OAAOC,UAIR,iCAAiCH,KAAKF,GACjCA,EACJG,MAAM,oBACNG,IAAKC,GAAMA,EAAEC,QACbJ,OAAOC,UAIZL,EAAaA,EACVC,QAAQ,cAAe,OAEvBA,QAAQ,yBAA0B,OAE9BD,EAAWG,MAAM,WAAWC,OAAQK,GAAMA,EAAED,OAAOE,OAAS,GACrE,C,mECpCA,IAAaO,EAAY,IAAIC,IAC1B,y4EAuBkEf,MAAM,MAO9DgB,EAAuB,IAAID,IAAI,CAC1C,KACA,SACA,YACA,YACA,SACA,YACA,WACA,MACA,QACA,aACA,aACA,SACA,WACA,gBACA,YACA,SACA,WACA,OACA,OACA,SACA,UACA,SACA,gBACA,SACA,SACA,YACA,YACA,WACA,OACA,QACA,YACA,SACA,WACA,UACA,UACA,UACA,UACA,WACA,aACA,SACA,UACA,SACA,YACA,UACA,WACA,YACA,QACA,cACA,UACA,UACA,QACA,WACA,QACA,UACA,aACA,MACA,YACA,YACA,WACA,WACA,SACA,SACA,aACA,SACA,UACA,UACA,QACA,SACA,cACA,OACA,YACA,WACA,OACA,KACA,MACA,SACA,MACA,QAMWE,EAAkC,CAC7C,+DACA,sMACA,iZACA,kkBACA,0SACA,2mCACA,iBACA,gBACA,qBACA,gZAMWC,EAAyB,CACpC,iXACA,kTACA,m8BAMWC,EAAc,CACzBC,UAAW,IAAIL,IAAI,CACjB,MACA,UACA,KACA,KACA,KACA,MACA,KACA,IACA,MACA,KACA,KACA,MACA,KACA,OACA,KACA,MACA,MACA,KACA,QAEFM,OAAQ,IAAIN,IAAI,CACd,KACA,MACA,MACA,MACA,MACA,MACA,KAC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"}
|