From 10a20935c3b54dcf85b6ff8a9256b62aa3f6214e Mon Sep 17 00:00:00 2001 From: Jonathan Labreuille Date: Thu, 12 Nov 2015 14:11:27 +0100 Subject: [PATCH 1/4] cleanup tests --- RoboFile.php | 2 +- assets/js/src/form/form.jsx | 6 +- assets/js/src/forms/form.jsx | 57 - assets/js/src/forms/forms.jsx | 3 - assets/js/src/listing/bulk_actions.jsx | 7 +- assets/js/src/listing/header.jsx | 3 +- assets/js/src/segments/form.jsx | 6 +- assets/js/src/subscribers/form.jsx | 6 +- lib/Settings/Pages.php | 8 +- tests/_bootstrap.php | 7 +- tests/unit/Import/BootStrapMenuCest.php | 201 - tests/unit/Import/ImportCest.php | 262 - tests/unit/Import/ImportTestData.json | 5003 -------------------- tests/unit/Import/MailChimpCest.php | 77 - tests/unit/Mailer/API/AmazonSESCest.php | 155 - tests/unit/Mailer/API/ElasticEmailCest.php | 65 - tests/unit/Mailer/API/MailGunCest.php | 82 - tests/unit/Mailer/API/MandrillCest.php | 90 - tests/unit/Mailer/API/SendGridCest.php | 71 - tests/unit/Mailer/MailPoetCest.php | 95 - tests/unit/Mailer/SMTPCest.php | 91 - tests/unit/Mailer/WPMailCest.php | 70 - tests/unit/Models/SegmentCest.php | 6 +- tests/unit/Router/MailerCest.php | 68 - 24 files changed, 31 insertions(+), 6410 deletions(-) delete mode 100644 assets/js/src/forms/form.jsx delete mode 100644 tests/unit/Import/BootStrapMenuCest.php delete mode 100644 tests/unit/Import/ImportCest.php delete mode 100644 tests/unit/Import/ImportTestData.json delete mode 100644 tests/unit/Import/MailChimpCest.php delete mode 100644 tests/unit/Mailer/API/AmazonSESCest.php delete mode 100644 tests/unit/Mailer/API/ElasticEmailCest.php delete mode 100644 tests/unit/Mailer/API/MailGunCest.php delete mode 100644 tests/unit/Mailer/API/MandrillCest.php delete mode 100644 tests/unit/Mailer/API/SendGridCest.php delete mode 100644 tests/unit/Mailer/MailPoetCest.php delete mode 100644 tests/unit/Mailer/SMTPCest.php delete mode 100644 tests/unit/Mailer/WPMailCest.php delete mode 100644 tests/unit/Router/MailerCest.php diff --git a/RoboFile.php b/RoboFile.php index b02c7a3b2e..1432f9f87e 100644 --- a/RoboFile.php +++ b/RoboFile.php @@ -96,7 +96,7 @@ class RoboFile extends \Robo\Tasks { function testUnit($file = null) { $this->loadEnv(); $this->_exec('vendor/bin/codecept build'); - $this->_exec('vendor/bin/codecept run unit -f '.(($file) ? $file : '')); + $this->_exec('vendor/bin/codecept run unit '.(($file) ? $file : '')); } function testJavascript() { diff --git a/assets/js/src/form/form.jsx b/assets/js/src/form/form.jsx index 6c228ce31c..5ca7fdc936 100644 --- a/assets/js/src/form/form.jsx +++ b/assets/js/src/form/form.jsx @@ -90,15 +90,15 @@ define( if(response.result === true) { if(this.props.onSuccess !== undefined) { - this.props.onSuccess() + this.props.onSuccess(); } else { this.history.pushState(null, '/') } if(this.props.params.id !== undefined) { - this.props.messages['updated'](); + this.props.messages.onUpdate(); } else { - this.props.messages['created'](); + this.props.messages.onCreate(); } } else { if(response.result === false) { diff --git a/assets/js/src/forms/form.jsx b/assets/js/src/forms/form.jsx deleted file mode 100644 index a57d5d72f9..0000000000 --- a/assets/js/src/forms/form.jsx +++ /dev/null @@ -1,57 +0,0 @@ -import React from 'react' -import ReactDOM from 'react-dom' -import { Router, History } from 'react-router' -import MailPoet from 'mailpoet' -import Form from 'form/form.jsx' - -const fields = [ - { - name: 'name', - label: 'Name', - type: 'text' - }, - { - name: 'segments', - label: 'Lists', - type: 'selection', - endpoint: 'segments', - multiple: true - } -] - -const messages = { - updated: function() { - MailPoet.Notice.success('Form successfully updated!'); - }, - created: function() { - MailPoet.Notice.success('Form successfully added!'); - } -} - -const FormForm = React.createClass({ - mixins: [ - History - ], - render() { - return ( -
-

- Form Back to list -

- -
-
- ); - } -}); - -module.exports = FormForm \ No newline at end of file diff --git a/assets/js/src/forms/forms.jsx b/assets/js/src/forms/forms.jsx index 2388b491c6..5099d122bd 100644 --- a/assets/js/src/forms/forms.jsx +++ b/assets/js/src/forms/forms.jsx @@ -2,7 +2,6 @@ import React from 'react' import ReactDOM from 'react-dom' import { Router, Route, IndexRoute } from 'react-router' import FormList from 'forms/list.jsx' -import FormForm from 'forms/form.jsx' import createHashHistory from 'history/lib/createHashHistory' let history = createHashHistory({ queryKey: false }) @@ -20,8 +19,6 @@ if(container) { - - diff --git a/assets/js/src/listing/bulk_actions.jsx b/assets/js/src/listing/bulk_actions.jsx index 22fd3f730d..449596a332 100644 --- a/assets/js/src/listing/bulk_actions.jsx +++ b/assets/js/src/listing/bulk_actions.jsx @@ -85,7 +85,12 @@ function( Select bulk action - { this.props.bulk_actions.map(function(action, index) { return ( diff --git a/assets/js/src/listing/header.jsx b/assets/js/src/listing/header.jsx index 1c737da03a..39e32984fe 100644 --- a/assets/js/src/listing/header.jsx +++ b/assets/js/src/listing/header.jsx @@ -11,7 +11,7 @@ define(['react', 'classnames'], function(React, classNames) { column.is_primary = (index === 0); column.sorted = (this.props.sort_by === column.name) ? this.props.sort_order - : 'asc'; + : 'desc'; return ( diff --git a/assets/js/src/segments/form.jsx b/assets/js/src/segments/form.jsx index e9bfc19566..b339f60825 100644 --- a/assets/js/src/segments/form.jsx +++ b/assets/js/src/segments/form.jsx @@ -26,10 +26,10 @@ define( ]; var messages = { - updated: function() { + onUpdate: function() { MailPoet.Notice.success('Segment successfully updated!'); }, - created: function() { + onCreate: function() { MailPoet.Notice.success('Segment successfully added!'); } }; @@ -54,7 +54,7 @@ define( fields={ fields } params={ this.props.params } messages={ messages } - onSuccess={ this.history.goBack } /> + /> ); } diff --git a/assets/js/src/subscribers/form.jsx b/assets/js/src/subscribers/form.jsx index 78e4a4b425..f961b1ac35 100644 --- a/assets/js/src/subscribers/form.jsx +++ b/assets/js/src/subscribers/form.jsx @@ -52,10 +52,10 @@ define( ]; var messages = { - updated: function() { + onUpdate: function() { MailPoet.Notice.success('Subscriber successfully updated!'); }, - created: function() { + onCreate: function() { MailPoet.Notice.success('Subscriber successfully added!'); } }; @@ -82,7 +82,7 @@ define( fields={ fields } params={ this.props.params } messages={ messages } - onSuccess={ this.history.goBack } /> + /> ); } diff --git a/lib/Settings/Pages.php b/lib/Settings/Pages.php index 4175c762bd..e55eec6a01 100644 --- a/lib/Settings/Pages.php +++ b/lib/Settings/Pages.php @@ -4,17 +4,17 @@ namespace MailPoet\Settings; class Pages { static function getAll() { - $mailpoet_pages = get_posts(array( + $mailpoet_pages = \get_posts(array( 'post_type' => 'mailpoet_page' )); $pages = array(); - foreach(array_merge($mailpoet_pages, get_pages()) as $page) { + foreach(array_merge($mailpoet_pages, \get_pages()) as $page) { $pages[] = array( 'id' => $page->ID, 'title' => $page->post_title, - 'preview_url' => get_permalink($page->ID), - 'edit_url' => get_edit_post_link($page->ID) + 'preview_url' => \get_permalink($page->ID), + 'edit_url' => \get_edit_post_link($page->ID) ); } diff --git a/tests/_bootstrap.php b/tests/_bootstrap.php index 3cd690db70..5a291fc163 100644 --- a/tests/_bootstrap.php +++ b/tests/_bootstrap.php @@ -1,9 +1,10 @@ writeln('Loading WP core...'); -require_once(getenv('WP_TEST_PATH') . '/wp-load.php'); +$console = new \Codeception\Lib\Console\Output([]); +$console->writeln('Loading WP core... ('.$wp_load_file.')'); $console->writeln('Cleaning up database...'); $models = array( diff --git a/tests/unit/Import/BootStrapMenuCest.php b/tests/unit/Import/BootStrapMenuCest.php deleted file mode 100644 index f448adabc3..0000000000 --- a/tests/unit/Import/BootStrapMenuCest.php +++ /dev/null @@ -1,201 +0,0 @@ -segmentsData = array( - array( - 'name' => 'first', - 'description' => 'some description' - ), - array( - 'name' => 'second', - 'description' => 'some description' - ) - ); - $this->subscribersData = array( - array( - 'first_name' => 'John', - 'last_name' => 'Mailer', - 'email' => 'john@mailpoet.com' - ), - array( - 'first_name' => 'Mike', - 'last_name' => 'Smith', - 'email' => 'mike@maipoet.com' - ) - ); - $this->customFieldsData = array( - 'name' => 'DOB', - 'type' => 'date', - ); - $customField = CustomField::create(); - $customField->hydrate($this->customFieldsData); - $customField->save(); - $this->bootStrapMenu = new BootstrapMenu(); - } - - function itCanGetSegments() { - $this->_createSegmentsAndSubscribers(); - $segments = $this->bootStrapMenu->getSegments(); - expect(count($segments))->equals(2); - expect($segments[0]['name'])->equals($this->segmentsData[0]['name']); - expect($segments[0]['subscriberCount'])->equals(1); - expect($segments[1]['subscriberCount'])->equals(0); - } - - function itCanGetSubscriberFields() { - $subsriberFields = $this->bootStrapMenu->getSubscriberFields(); - $fields = array( - 'email', - 'first_name', - 'last_name', - 'status' - ); - foreach ($fields as $field) { - expect(in_array($field, array_keys($subsriberFields)))->true(); - } - } - - function itCanFormatSubsciberFields() { - $formattedSubscriberFields = - $this->bootStrapMenu->formatSubscriberFields( - $this->bootStrapMenu->getSubscriberFields() - ); - $fields = array( - 'id', - 'name', - 'type', - 'custom' - ); - foreach ($fields as $field) { - expect(in_array($field, array_keys($formattedSubscriberFields[0]))) - ->true(); - } - expect($formattedSubscriberFields[0]['custom'])->false(); - } - - function itCanGetSubsciberCustomFields() { - $subscriberCustomFields = - $this->bootStrapMenu - ->getSubscriberCustomFields(); - expect($subscriberCustomFields[0]['type']) - ->equals($this->customFieldsData['type']); - } - - function itCanFormatSubsciberCustomFields() { - $formattedSubscriberCustomFields = - $this->bootStrapMenu->formatSubscriberCustomFields( - $this->bootStrapMenu->getSubscriberCustomFields() - ); - $fields = array( - 'id', - 'name', - 'type', - 'custom' - ); - foreach ($fields as $field) { - expect(in_array($field, array_keys($formattedSubscriberCustomFields[0]))) - ->true(); - } - expect($formattedSubscriberCustomFields[0]['custom'])->true(); - } - - function itCanFormatFieldsForSelect2() { - $bootStrapMenu = clone($this->bootStrapMenu); - $select2FieldsWithoutCustomFields = array( - array( - 'name' => 'Actions', - 'children' => array( - array( - 'id' => 'ignore', - 'name' => 'Ignore column...', - ), - array( - 'id' => 'create', - 'name' => 'Create new column...' - ), - ) - ), - array( - 'name' => 'System columns', - 'children' => $bootStrapMenu->formatSubscriberFields( - $bootStrapMenu->subscriberFields - ) - ) - ); - $select2FieldsWithCustomFields = array_merge( - $select2FieldsWithoutCustomFields, - array( - array( - 'name' => __('User columns'), - 'children' => $bootStrapMenu->formatSubscriberCustomFields( - $bootStrapMenu->subscriberCustomFields - ) - ) - )); - $formattedFieldsForSelect2 = $bootStrapMenu->formatFieldsForSelect2( - $bootStrapMenu->subscriberFields, - $bootStrapMenu->subscriberCustomFields - ); - expect($formattedFieldsForSelect2)->equals($select2FieldsWithCustomFields); - $bootStrapMenu->subscriberCustomFields = false; - $formattedFieldsForSelect2 = $bootStrapMenu->formatFieldsForSelect2( - $bootStrapMenu->subscriberFields, - $bootStrapMenu->subscriberCustomFields - ); - expect($formattedFieldsForSelect2)->equals($select2FieldsWithoutCustomFields); - } - - function itCanBootstrap() { - $customField = CustomField::create(); - $customField->hydrate($this->customFieldsData); - $customField->save(); - $bootstrap = clone($this->bootStrapMenu); - $this->_createSegmentsAndSubscribers(); - $bootstrap->segments = $bootstrap->getSegments(); - $menu = $bootstrap->bootstrap(); - expect(count(json_decode($menu['segments'], true)))->equals(2); - // email, first_name, last_name, status + 1 custom field - expect(count(json_decode($menu['subscriberFields'], true)))->equals(5); - // action, system columns, user columns - expect(count(json_decode($menu['subscriberFieldsSelect2'], true)))->equals(3); - expect($menu['maxPostSize'])->equals(ini_get('post_max_size')); - expect($menu['maxPostSizeBytes'])->equals( - (int) ini_get('post_max_size') * 1048576 - ); - } - - function _createSegmentsAndSubscribers() { - foreach ($this->segmentsData as $segmentData) { - $segment = Segment::create(); - $segment->hydrate($segmentData); - $segment->save(); - } - foreach ($this->subscribersData as $index => $subscriberData) { - $subscriber = Subscriber::create(); - $subscriber->hydrate($subscriberData); - $subscriber->save(); - $association = SubscriberSegment::create(); - $association->subscriber_id = $subscriber->id; - $association->segment_id = $index; - $association->save(); - }; - } - - function _after() { - ORM::forTable(Subscriber::$_table) - ->deleteMany(); - ORM::forTable(CustomField::$_table) - ->deleteMany(); - ORM::forTable(Segment::$_table) - ->deleteMany(); - ORM::forTable(SubscriberSegment::$_table) - ->deleteMany(); - } -} \ No newline at end of file diff --git a/tests/unit/Import/ImportCest.php b/tests/unit/Import/ImportCest.php deleted file mode 100644 index 5f4d0a35a7..0000000000 --- a/tests/unit/Import/ImportCest.php +++ /dev/null @@ -1,262 +0,0 @@ -JSONdata = json_decode(file_get_contents(dirname(__FILE__) . '/ImportTestData.json'), true); - $this->subscribersData = array( - 'first_name' => array( - 'Adam', - 'Mary' - ), - 'last_name' => array( - 'Smith', - 'Jane' - ), - 'email' => array( - 'adam@smith.com', - 'mary@jane.com' - ), - 777 => array( - 'France', - 'Brazil' - ) - ); - $this->subscriberFields = array( - 'first_name', - 'last_name', - 'email' - ); - $this->segments = range(0, 1); - $this->subscriberCustomFields = array(777); - $this->import = new Import($this->JSONdata); - } - - function itCanConstruct() { - expect($this->import->subscribersData)->equals($this->JSONdata['subscribers']); - expect($this->import->segments)->equals($this->JSONdata['segments']); - expect(is_array($this->import->subscriberFields))->true(); - expect(is_array($this->import->subscriberCustomFields))->true(); - expect($this->import->subscribersCount)->equals( - count($this->JSONdata['subscribers']['email']) - ); - expect( - preg_match( - '/\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}/', - $this->import->currentTime) - )->equals(1); - } - - function itCanFilterExistingAndNewSubscribers() { - $subscriber = Subscriber::create(); - $subscriber->hydrate( - array( - 'first_name' => 'Adam', - 'last_name' => 'Smith', - 'email' => 'adam@smith.com' - )); - $subscriber->save(); - list($existing, $new) = $this->import->filterExistingAndNewSubscribers( - $this->subscribersData - ); - expect($existing['email'][0])->equals($this->subscribersData['email'][0]); - expect($new['email'][0])->equals($this->subscribersData['email'][1]); - } - - function itCanExtendSubscribersAndFields() { - expect(in_array('created_at', $this->import->subscriberFields))->false(); - expect(isset($this->import->subscriberFields['created_at']))->false(); - list($subscribers, $fields) = $this->import->extendSubscribersAndFields( - $this->import->subscribersData, - $this->import->subscriberFields - ); - expect(in_array('created_at', $fields))->true(); - expect(isset($this->import->subscriberFields['created_at']))->false(); - expect(count($subscribers['created_at'])) - ->equals($this->import->subscribersCount); - } - - function itCanGetSubscriberFields() { - $data = array( - 'one', - 'two', - 39 - ); - $fields = $this->import->getSubscriberFields($data); - expect($fields)->equals( - array( - 'one', - 'two' - )); - } - - function itCanGetCustomSubscriberFields() { - $data = array( - 'one', - 'two', - 39 - ); - $fields = $this->import->getCustomSubscriberFields($data); - expect($fields)->equals(array(39)); - } - - function itCanFilterSubscriberState() { - $data = array( - 'status' => array( - 'confirmed', - 'subscribed', - 'subscribed', - 'confirmed', - 1, - '1', - 'true', - 'unsubscribed', - -1, - '-1', - 'false', - 'something', - 'else' - ), - ); - $statuses = $this->import->filterSubscriberStatus($data); - expect($statuses)->equals( - array( - 'status' => array( - 1, - 1, - 1, - 1, - 1, - 1, - 1, - -1, - -1, - -1, - -1, - 1, - 1 - ) - ) - ); - } - - function itCanAddOrUpdateSubscribers() { - $subscribersData = $this->subscribersData; - $this->import->createOrUpdateSubscribers( - 'create', - $subscribersData, - $this->subscriberFields, - false - ); - $subscribers = Subscriber::findArray(); - expect(count($subscribers))->equals(2); - expect($subscribers[0]['email']) - ->equals($subscribersData['email'][0]); - $data['first_name'][1] = 'MaryJane'; - $this->import->createOrUpdateSubscribers( - 'update', - $subscribersData, - $this->subscriberFields, - false - ); - $subscribers = Subscriber::findArray(); - expect($subscribers[1]['first_name']) - ->equals($subscribersData['first_name'][1]); - } - - function itCanCreateOrUpdateCustomFields() { - $subscribersData = $this->subscribersData; - $this->import->createOrUpdateSubscribers( - 'create', - $subscribersData, - $this->subscriberFields, - false - ); - $dbSubscribers = Helpers::arrayColumn( - Subscriber::selectMany( - array( - 'id', - 'email' - )) - ->findArray(), - 'email', 'id' - ); - $this->import->createOrUpdateCustomFields( - 'create', - $dbSubscribers, - $subscribersData, - $this->subscriberCustomFields - ); - $subscriberCustomFields = SubscriberCustomField::findArray(); - expect(count($subscriberCustomFields))->equals(2); - expect($subscriberCustomFields[0]['value']) - ->equals($subscribersData[777][0]); - $subscribersData[777][1] = 'Rio'; - $this->import->createOrUpdateCustomFields( - 'update', - $dbSubscribers, - $subscribersData, - $this->subscriberCustomFields - ); - $subscriberCustomFields = SubscriberCustomField::findArray(); - expect($subscriberCustomFields[1]['value']) - ->equals($subscribersData[777][1]); - } - - function itCanaddSubscribersToSegments() { - $subscribersData = $this->subscribersData; - $this->import->createOrUpdateSubscribers( - 'create', - $subscribersData, - $this->subscriberFields, - false - ); - $dbSubscribers = Helpers::arrayColumn( - Subscriber::select('id') - ->findArray(), - 'id' - ); - $this->import->addSubscribersToSegments( - $dbSubscribers, - $this->segments - ); - $subscribersSegments = SubscriberSegment::findArray(); - // 2 subscribers * 2 segments - expect(count($subscribersSegments))->equals(4); - } - - function itCanProcess() { - $import = clone($this->import); - $result = $import->process(); - expect($result['data']['created'])->equals(997); - expect($result['data']['updated'])->equals(0); - $result = $import->process(); - expect($result['data']['created'])->equals(0); - expect($result['data']['updated'])->equals(997); - Subscriber::where('email', 'mbanks4@blinklist.com') - ->findOne() - ->delete(); - $import->currentTime = date('Y-m-d 12:i:s'); - $result = $import->process(); - expect($result['data']['created'])->equals(1); - expect($result['data']['updated'])->equals(996); - $import->updateSubscribers = false; - $result = $import->process(); - expect($result['data']['created'])->equals(0); - expect($result['data']['updated'])->equals(0); - } - - function _after() { - ORM::forTable(Subscriber::$_table) - ->deleteMany(); - ORM::forTable(SubscriberCustomField::$_table) - ->deleteMany(); - ORM::forTable(SubscriberSegment::$_table) - ->deleteMany(); - } -} \ No newline at end of file diff --git a/tests/unit/Import/ImportTestData.json b/tests/unit/Import/ImportTestData.json deleted file mode 100644 index e906adacd3..0000000000 --- a/tests/unit/Import/ImportTestData.json +++ /dev/null @@ -1,5003 +0,0 @@ -{ - "subscribers":{ - "39":[ - "United States", - "China", - "Colombia", - "Colombia", - "China", - "Argentina", - "United States", - "Ukraine", - "Finland", - "Russia", - "Indonesia", - "Russia", - "Czech Republic", - "Peru", - "Bulgaria", - "Brazil", - "China", - "Canada", - "Malaysia", - "Vietnam", - "Russia", - "Nicaragua", - "Russia", - "China", - "Guatemala", - "Portugal", - "Philippines", - "Brazil", - "Philippines", - "Brazil", - "Indonesia", - "China", - "Philippines", - "Canada", - "Portugal", - "Paraguay", - "Peru", - "Poland", - "Poland", - "Paraguay", - "Brazil", - "Serbia", - "Japan", - "Thailand", - "Japan", - "United States", - "Laos", - "Portugal", - "France", - "Indonesia", - "Indonesia", - "Chad", - "Indonesia", - "China", - "China", - "Philippines", - "Indonesia", - "Czech Republic", - "China", - "Vietnam", - "El Salvador", - "Austria", - "China", - "Philippines", - "China", - "Greece", - "China", - "Armenia", - "China", - "Indonesia", - "China", - "China", - "Argentina", - "France", - "Armenia", - "Japan", - "Malaysia", - "Poland", - "Vietnam", - "Colombia", - "France", - "China", - "Costa Rica", - "Hungary", - "Philippines", - "Indonesia", - "China", - "France", - "Indonesia", - "Philippines", - "China", - "United States", - "Portugal", - "Poland", - "Ukraine", - "Indonesia", - "Indonesia", - "Brazil", - "Haiti", - "China", - "Brazil", - "France", - "Indonesia", - "Russia", - "Australia", - "Sweden", - "Brazil", - "Georgia", - "Pakistan", - "Czech Republic", - "Russia", - "United States", - "China", - "France", - "Poland", - "Morocco", - "Argentina", - "Poland", - "China", - "Thailand", - "Canada", - "Sweden", - "Kazakhstan", - "Russia", - "China", - "China", - "Afghanistan", - "United States", - "Iraq", - "Peru", - "China", - "China", - "Dominican Republic", - "China", - "Brazil", - "Philippines", - "Peru", - "China", - "United States", - "Indonesia", - "Eritrea", - "China", - "Uzbekistan", - "Russia", - "China", - "Greece", - "Argentina", - "Netherlands", - "Brazil", - "China", - "Finland", - "Poland", - "China", - "Georgia", - "Nigeria", - "United States", - "Japan", - "China", - "Ecuador", - "Indonesia", - "Portugal", - "China", - "China", - "Japan", - "United States", - "Poland", - "Philippines", - "Haiti", - "Canada", - "China", - "China", - "China", - "Colombia", - "Myanmar", - "Bangladesh", - "Poland", - "Comoros", - "Russia", - "Indonesia", - "Indonesia", - "Brazil", - "China", - "Italy", - "Czech Republic", - "Indonesia", - "Uzbekistan", - "China", - "China", - "Ecuador", - "Russia", - "Sweden", - "Philippines", - "Philippines", - "Canada", - "Indonesia", - "Philippines", - "Indonesia", - "Indonesia", - "Czech Republic", - "Poland", - "Indonesia", - "Israel", - "Armenia", - "Iran", - "Guatemala", - "China", - "Indonesia", - "United States", - "Samoa", - "Venezuela", - "China", - "Thailand", - "Thailand", - "China", - "Finland", - "Indonesia", - "Philippines", - "Iran", - "Libya", - "China", - "Russia", - "Tanzania", - "Philippines", - "China", - "Indonesia", - "Russia", - "Russia", - "Netherlands", - "Indonesia", - "Philippines", - "China", - "China", - "Czech Republic", - "China", - "Malaysia", - "China", - "Malaysia", - "Philippines", - "Montserrat", - "China", - "Philippines", - "Russia", - "China", - "China", - "China", - "Comoros", - "China", - "Colombia", - "Tanzania", - "Costa Rica", - "China", - "Brazil", - "Philippines", - "Vietnam", - "China", - "Colombia", - "Ukraine", - "Belarus", - "Brazil", - "Indonesia", - "Sweden", - "Ukraine", - "Poland", - "Albania", - "Japan", - "Portugal", - "Indonesia", - "Peru", - "China", - "Moldova", - "China", - "Greece", - "Portugal", - "Russia", - "Brazil", - "China", - "Poland", - "Thailand", - "China", - "Palestinian Territory", - "Sweden", - "Indonesia", - "Ecuador", - "Vietnam", - "Indonesia", - "Indonesia", - "Russia", - "Macedonia", - "France", - "Poland", - "Georgia", - "Philippines", - "Brazil", - "China", - "Peru", - "China", - "Senegal", - "Indonesia", - "Japan", - "Philippines", - "Greece", - "Bangladesh", - "Indonesia", - "Indonesia", - "Portugal", - "Russia", - "Philippines", - "Indonesia", - "Indonesia", - "Philippines", - "Kazakhstan", - "Sweden", - "Peru", - "China", - "Czech Republic", - "Serbia", - "Indonesia", - "Russia", - "Egypt", - "Portugal", - "China", - "Thailand", - "Brazil", - "Indonesia", - "Poland", - "Indonesia", - "Poland", - "Uruguay", - "Indonesia", - "China", - "Australia", - "Honduras", - "Portugal", - "Costa Rica", - "Croatia", - "Russia", - "Brazil", - "China", - "Madagascar", - "Russia", - "Nigeria", - "Japan", - "China", - "China", - "China", - "Colombia", - "Belarus", - "Dominican Republic", - "China", - "China", - "Philippines", - "Cameroon", - "Bulgaria", - "Sweden", - "China", - "Japan", - "Portugal", - "Czech Republic", - "Brazil", - "China", - "Peru", - "Greece", - "Nigeria", - "Argentina", - "Ukraine", - "Indonesia", - "Brazil", - "Ukraine", - "Chile", - "Brazil", - "Indonesia", - "Norway", - "Colombia", - "Philippines", - "Zimbabwe", - "Belarus", - "Iran", - "Poland", - "China", - "Poland", - "Russia", - "China", - "Argentina", - "United States", - "Ukraine", - "Poland", - "Pakistan", - "China", - "Philippines", - "Canada", - "Poland", - "Taiwan", - "Indonesia", - "Indonesia", - "Somalia", - "Croatia", - "Peru", - "China", - "China", - "Bulgaria", - "Portugal", - "France", - "Poland", - "Colombia", - "Poland", - "Indonesia", - "Ireland", - "Russia", - "China", - "China", - "Russia", - "Indonesia", - "Indonesia", - "Russia", - "China", - "Sweden", - "Greece", - "Philippines", - "China", - "Estonia", - "Bolivia", - "Mexico", - "Peru", - "Estonia", - "Oman", - "Slovenia", - "Afghanistan", - "Japan", - "Indonesia", - "Burundi", - "Nigeria", - "Philippines", - "Honduras", - "Afghanistan", - "China", - "Greece", - "Mexico", - "Sweden", - "Peru", - "China", - "Portugal", - "Brazil", - "Philippines", - "China", - "Tunisia", - "China", - "Botswana", - "Japan", - "Pakistan", - "Indonesia", - "China", - "Sweden", - "France", - "Indonesia", - "China", - "Thailand", - "China", - "Iran", - "Bulgaria", - "Cuba", - "Thailand", - "Poland", - "China", - "Kazakhstan", - "Indonesia", - "China", - "Portugal", - "United States", - "China", - "China", - "Thailand", - "Mexico", - "China", - "Brazil", - "South Africa", - "France", - "Japan", - "Indonesia", - "Nigeria", - "Portugal", - "China", - "Benin", - "Philippines", - "Argentina", - "Niger", - "Serbia", - "China", - "Argentina", - "China", - "Indonesia", - "China", - "Yemen", - "Argentina", - "Portugal", - "China", - "Philippines", - "Russia", - "Norway", - "Philippines", - "Dominican Republic", - "Japan", - "Indonesia", - "Brazil", - "Canada", - "Nigeria", - "Greece", - "Belize", - "Bulgaria", - "China", - "China", - "China", - "Albania", - "Indonesia", - "Afghanistan", - "Colombia", - "Brazil", - "Jordan", - "Moldova", - "Bolivia", - "China", - "Portugal", - "Vietnam", - "Greenland", - "Canada", - "Portugal", - "Portugal", - "Bolivia", - "China", - "Portugal", - "Russia", - "Indonesia", - "Bahamas", - "China", - "Russia", - "Ukraine", - "Indonesia", - "Czech Republic", - "Japan", - "Indonesia", - "Philippines", - "Moldova", - "Philippines", - "Japan", - "Japan", - "Democratic Republic of the Congo", - "China", - "Poland", - "Slovenia", - "Costa Rica", - "Portugal", - "Dominican Republic", - "South Africa", - "Vietnam", - "China", - "Sweden", - "Morocco", - "Argentina", - "China", - "Portugal", - "Sweden", - "Colombia", - "Palestinian Territory", - "United States", - "China", - "Vietnam", - "Slovenia", - "Netherlands", - "China", - "Thailand", - "Colombia", - "China", - "Poland", - "China", - "China", - "Poland", - "Indonesia", - "China", - "China", - "Indonesia", - "Iraq", - "China", - "China", - "China", - "Brazil", - "Russia", - "Japan", - "China", - "Tanzania", - "Colombia", - "France", - "Indonesia", - "Philippines", - "Philippines", - "Philippines", - "Norway", - "Palestinian Territory", - "Gabon", - "Czech Republic", - "Estonia", - "Russia", - "United States", - "Portugal", - "Iran", - "Ukraine", - "Russia", - "Armenia", - "China", - "Ukraine", - "Sweden", - "China", - "Russia", - "Nigeria", - "Philippines", - "Vietnam", - "Iran", - "China", - "France", - "Philippines", - "Japan", - "Ukraine", - "Brazil", - "Sweden", - "Russia", - "France", - "Indonesia", - "Poland", - "Spain", - "Cyprus", - "Sweden", - "Mexico", - "Russia", - "France", - "France", - "Afghanistan", - "China", - "Brazil", - "Sweden", - "Indonesia", - "Poland", - "Russia", - "Philippines", - "China", - "Indonesia", - "Indonesia", - "Portugal", - "Chile", - "China", - "Russia", - "China", - "Indonesia", - "Poland", - "China", - "Ukraine", - "Ukraine", - "Tunisia", - "Croatia", - "Poland", - "China", - "Indonesia", - "United States", - "Colombia", - "Philippines", - "Philippines", - "El Salvador", - "Estonia", - "China", - "Poland", - "Argentina", - "Poland", - "Slovenia", - "China", - "Philippines", - "Indonesia", - "Japan", - "China", - "Poland", - "France", - "Indonesia", - "Niger", - "China", - "Philippines", - "Nigeria", - "Indonesia", - "Greece", - "Colombia", - "China", - "China", - "Indonesia", - "Vietnam", - "Sweden", - "Peru", - "Indonesia", - "Anguilla", - "Egypt", - "China", - "Croatia", - "Philippines", - "Belarus", - "China", - "France", - "Poland", - "Philippines", - "Iran", - "Indonesia", - "China", - "Norway", - "Indonesia", - "China", - "Czech Republic", - "China", - "Colombia", - "China", - "Russia", - "Bolivia", - "Indonesia", - "Philippines", - "Armenia", - "Ukraine", - "China", - "Pakistan", - "Indonesia", - "Russia", - "Poland", - "China", - "Guatemala", - "Nigeria", - "Thailand", - "China", - "Indonesia", - "Brazil", - "China", - "Japan", - "China", - "China", - "Slovenia", - "Portugal", - "Nigeria", - "Indonesia", - "Philippines", - "China", - "Russia", - "China", - "Philippines", - "China", - "Portugal", - "Japan", - "China", - "Peru", - "Russia", - "Peru", - "Portugal", - "Czech Republic", - "Sweden", - "Canada", - "Peru", - "Brazil", - "Colombia", - "United States", - "Sweden", - "Rwanda", - "Nigeria", - "Nigeria", - "Portugal", - "Colombia", - "Philippines", - "Indonesia", - "Serbia", - "Albania", - "Jamaica", - "Sweden", - "China", - "Burundi", - "Bulgaria", - "China", - "Argentina", - "China", - "China", - "France", - "China", - "China", - "China", - "Russia", - "Guatemala", - "China", - "Indonesia", - "Philippines", - "Russia", - "Philippines", - "China", - "China", - "China", - "China", - "China", - "Latvia", - "China", - "Mexico", - "Brazil", - "China", - "Sweden", - "Syria", - "Sweden", - "Haiti", - "Poland", - "Japan", - "Mongolia", - "United States", - "Indonesia", - "Argentina", - "China", - "China", - "Philippines", - "Russia", - "Russia", - "China", - "Thailand", - "Russia", - "Indonesia", - "Afghanistan", - "France", - "China", - "China", - "Germany", - "China", - "Indonesia", - "Poland", - "Russia", - "Syria", - "Bulgaria", - "Indonesia", - "Indonesia", - "Portugal", - "Philippines", - "Uzbekistan", - "Russia", - "Tunisia", - "Indonesia", - "Tajikistan", - "China", - "South Korea", - "Indonesia", - "Russia", - "Tunisia", - "China", - "Brazil", - "China", - "Indonesia", - "Iran", - "China", - "Brazil", - "Haiti", - "Portugal", - "Russia", - "Colombia", - "Philippines", - "Portugal", - "Tunisia", - "Pakistan", - "China", - "Russia", - "Argentina", - "China", - "France", - "China", - "China", - "Egypt", - "Poland", - "Slovenia", - "China", - "Brazil", - "Cuba", - "Japan", - "Indonesia", - "Egypt", - "Philippines", - "Russia", - "Paraguay", - "Philippines", - "Greece", - "China", - "China", - "Czech Republic", - "Canada", - "China", - "Ukraine", - "Haiti", - "South Africa", - "China", - "New Zealand", - "Vietnam", - "China", - "China", - "Syria", - "Portugal", - "Norway", - "Czech Republic", - "China", - "Russia", - "Thailand", - "Portugal", - "Russia", - "China", - "China", - "Indonesia", - "France", - "China", - "France", - "Finland", - "Sweden", - "Portugal", - "Central African Republic", - "Iran", - "France", - "Ghana", - "Honduras", - "Czech Republic", - "Indonesia", - "Indonesia", - "Czech Republic", - "Indonesia", - "Myanmar", - "Russia", - "Sweden", - "Tunisia", - "Brazil", - "Micronesia", - "Brazil", - "Russia", - "Portugal", - "Ukraine", - "Bolivia", - "Indonesia", - "Botswana", - "Thailand", - "United States", - "Venezuela", - "Belarus", - "South Korea", - "Tanzania", - "Vietnam", - "Philippines", - "Seychelles", - "Indonesia", - "Poland", - "Japan", - "China", - "China", - "Russia", - "Nepal", - "Czech Republic", - "Indonesia", - "China", - "Indonesia", - "Argentina", - "Indonesia", - "Uganda", - "Brazil", - "China", - "Indonesia", - "Philippines", - "China", - "Saudi Arabia", - "Iran", - "Indonesia", - "South Africa", - "Indonesia", - "Russia", - "Philippines", - "Ukraine", - "Indonesia", - "France", - "Ireland", - "China", - "Ukraine", - "Indonesia", - "Brazil", - "Ecuador", - "Croatia", - "China", - "Sweden", - "Sierra Leone", - "Russia", - "Philippines", - "United States", - "Kosovo", - "Bulgaria", - "Germany", - "Russia", - "Czech Republic", - "Indonesia", - "Philippines", - "Mexico", - "China", - "Montenegro", - "Slovenia", - "Peru", - "China", - "China" - ], - "first_name":[ - "Rose", - "Samuel", - "Louis", - "Eugene", - "Michelle", - "Marilyn", - "Donna", - "Katherine", - "Brian", - "Lillian", - "Brandon", - "Kathy", - "Samuel", - "Tina", - "Todd", - "Robert", - "Earl", - "Douglas", - "Cynthia", - "Dennis", - "Catherine", - "Clarence", - "Brenda", - "Gregory", - "Mark", - "Gary", - "Katherine", - "Fred", - "Kathryn", - "Martin", - "Terry", - "Christopher", - "Andrew", - "Ronald", - "Judith", - "Katherine", - "Wayne", - "Mary", - "Jose", - "Gerald", - "Teresa", - "Henry", - "Barbara", - "Andrew", - "Fred", - "John", - "Alan", - "Christina", - "John", - "Lori", - "Virginia", - "Deborah", - "Evelyn", - "Beverly", - "Randy", - "Kathryn", - "Kevin", - "Katherine", - "James", - "Fred", - "Angela", - "Susan", - "Justin", - "Edward", - "Willie", - "Randy", - "Todd", - "Donald", - "Carolyn", - "Dorothy", - "Michael", - "Doris", - "Lois", - "Ralph", - "Jose", - "Jennifer", - "Anna", - "Donna", - "Maria", - "Christopher", - "Barbara", - "Michelle", - "Roger", - "Brenda", - "Martin", - "Ralph", - "Shawn", - "Phyllis", - "Patrick", - "Virginia", - "Jeffrey", - "Cynthia", - "Carol", - "George", - "Harold", - "Marie", - "Douglas", - "Timothy", - "Eugene", - "Michael", - "Peter", - "Jennifer", - "Chris", - "Marilyn", - "Jacqueline", - "Jonathan", - "Douglas", - "Phyllis", - "Deborah", - "Jean", - "Annie", - "Rose", - "Janice", - "Ruth", - "Donald", - "Jacqueline", - "Edward", - "Annie", - "Eric", - "Joan", - "Robert", - "Jimmy", - "Willie", - "Frank", - "Carol", - "Nicole", - "Pamela", - "Ruth", - "Martha", - "Elizabeth", - "Chris", - "Jane", - "Carol", - "Ralph", - "Nicholas", - "Anthony", - "Carol", - "Diane", - "Catherine", - "Brandon", - "Carlos", - "Bruce", - "Debra", - "Denise", - "Kathy", - "Jean", - "Joe", - "Phillip", - "Julia", - "Gerald", - "Harold", - "Clarence", - "Michael", - "Eugene", - "Mildred", - "Juan", - "Paul", - "Bobby", - "Martha", - "Alice", - "George", - "Roy", - "Anthony", - "Anthony", - "Steve", - "Todd", - "Harry", - "Harold", - "Robert", - "George", - "Jennifer", - "Jack", - "Alan", - "Lillian", - "Kathryn", - "Randy", - "Johnny", - "Howard", - "Randy", - "Kathy", - "Earl", - "Michelle", - "Steven", - "Sarah", - "Clarence", - "Antonio", - "Robert", - "Roger", - "Jack", - "Phillip", - "Catherine", - "Philip", - "Bruce", - "Brandon", - "Donna", - "Ashley", - "William", - "Janice", - "Sarah", - "Kenneth", - "Dennis", - "Keith", - "Doris", - "Kathy", - "Thomas", - "Rose", - "Albert", - "Alan", - "Roger", - "Rachel", - "Patrick", - "Emily", - "Anne", - "Alice", - "Christina", - "Joe", - "Rachel", - "Anna", - "Michael", - "Timothy", - "Linda", - "Louis", - "Kathy", - "Bruce", - "Ronald", - "Christine", - "Eric", - "Joe", - "Betty", - "Albert", - "Lawrence", - "Martha", - "Carolyn", - "Gloria", - "Mary", - "Nicole", - "Amanda", - "Eugene", - "Anne", - "Anthony", - "Catherine", - "Cynthia", - "Katherine", - "Ernest", - "Kenneth", - "Wayne", - "Dorothy", - "Mark", - "Norma", - "Dorothy", - "Martin", - "Aaron", - "Lillian", - "Christina", - "Edward", - "James", - "Patricia", - "Mildred", - "David", - "Christopher", - "Stephanie", - "Sara", - "William", - "Theresa", - "Donna", - "Karen", - "William", - "Dorothy", - "Sandra", - "Judith", - "Lawrence", - "Brenda", - "Judy", - "Ralph", - "Kimberly", - "Frank", - "Billy", - "Fred", - "Edward", - "Kathleen", - "Randy", - "Heather", - "Debra", - "Nancy", - "Elizabeth", - "Earl", - "Russell", - "Douglas", - "Kevin", - "Jacqueline", - "Michael", - "Joan", - "Sean", - "Steven", - "Catherine", - "Christine", - "Gary", - "Katherine", - "Janet", - "Carl", - "Tammy", - "Kevin", - "Julie", - "Chris", - "Eric", - "Lillian", - "Justin", - "Louis", - "Ruth", - "Andrew", - "Lori", - "Margaret", - "Lori", - "Teresa", - "Bobby", - "Diane", - "Ryan", - "Jennifer", - "William", - "Johnny", - "Amy", - "Carl", - "Irene", - "Jose", - "Russell", - "James", - "Julie", - "Ruth", - "Catherine", - "Wanda", - "Joshua", - "Nicholas", - "Johnny", - "Bobby", - "Gary", - "Albert", - "Brandon", - "Evelyn", - "Matthew", - "Carol", - "Sharon", - "Lisa", - "Irene", - "Craig", - "Gloria", - "Lillian", - "Samuel", - "Antonio", - "Janice", - "Denise", - "Virginia", - "Wanda", - "Christopher", - "Paul", - "Jason", - "Ashley", - "Ernest", - "Kathy", - "Ernest", - "Rose", - "Theresa", - "Steve", - "Kevin", - "Lillian", - "Tina", - "Joseph", - "Adam", - "Denise", - "Denise", - "Denise", - "Tina", - "Lawrence", - "Julie", - "Ruby", - "Louise", - "Shawn", - "Kenneth", - "Adam", - "Annie", - "Christine", - "Judith", - "William", - "Sean", - "Carol", - "Amy", - "Tina", - "Bruce", - "Brandon", - "Ruth", - "Gregory", - "Paul", - "Aaron", - "Gerald", - "Louise", - "David", - "Billy", - "Albert", - "Cheryl", - "Jerry", - "John", - "Douglas", - "Ashley", - "Joseph", - "Anthony", - "Kimberly", - "Mildred", - "Clarence", - "Jonathan", - "Amy", - "Adam", - "Janice", - "Victor", - "Benjamin", - "Christina", - "Steven", - "Mark", - "Brian", - "Fred", - "Carol", - "Eric", - "Steven", - "Kelly", - "Jerry", - "Patrick", - "Arthur", - "Wayne", - "Carl", - "Timothy", - "Michael", - "Todd", - "Rachel", - "Lois", - "Diana", - "Eric", - "Jennifer", - "Julia", - "Victor", - "Victor", - "Adam", - "George", - "Justin", - "Adam", - "Marie", - "Jean", - "Deborah", - "Alan", - "Martin", - "Randy", - "Jean", - "Michael", - "Lillian", - "Theresa", - "Carlos", - "Melissa", - "Timothy", - "Willie", - "Brenda", - "Judy", - "Teresa", - "Jimmy", - "Catherine", - "Margaret", - "Helen", - "Kevin", - "Judy", - "Edward", - "Kelly", - "Joyce", - "Margaret", - "Julie", - "Jesse", - "Justin", - "Billy", - "Jason", - "Deborah", - "Rachel", - "Shawn", - "Rebecca", - "Peter", - "Mary", - "Lisa", - "Sarah", - "Harry", - "Adam", - "David", - "Jonathan", - "Sandra", - "Judy", - "Wanda", - "Ruby", - "Victor", - "Harold", - "Arthur", - "Carol", - "Eric", - "David", - "Betty", - "Theresa", - "Terry", - "Amanda", - "Tina", - "Dennis", - "Carl", - "Nancy", - "Gary", - "Gregory", - "Peter", - "Adam", - "Steven", - "Doris", - "Martin", - "Jessica", - "Teresa", - "Andrew", - "Shirley", - "Antonio", - "Amanda", - "Robin", - "Betty", - "Rachel", - "Lillian", - "Jose", - "Christopher", - "Jeremy", - "Shawn", - "Brenda", - "Jesse", - "Emily", - "Nicole", - "Eric", - "Diana", - "Frances", - "Sharon", - "Margaret", - "Philip", - "Andrew", - "Philip", - "Jonathan", - "Juan", - "Amanda", - "Pamela", - "Sharon", - "Carol", - "Martin", - "Amy", - "Melissa", - "Sara", - "Nancy", - "Theresa", - "Diane", - "Keith", - "Patrick", - "Christina", - "Nicole", - "Jennifer", - "Doris", - "Nicole", - "Christina", - "Paul", - "Marie", - "Lawrence", - "Margaret", - "Kimberly", - "Alan", - "Todd", - "Sean", - "Brandon", - "Larry", - "Kimberly", - "Peter", - "Louis", - "Benjamin", - "Lisa", - "Anne", - "Angela", - "Martha", - "Rachel", - "Judy", - "Anne", - "Pamela", - "Mildred", - "Harry", - "James", - "Lori", - "Juan", - "George", - "Kimberly", - "Maria", - "George", - "Adam", - "Melissa", - "Ruth", - "Robin", - "Bobby", - "Larry", - "Harold", - "Alice", - "Louis", - "Tina", - "Tina", - "Randy", - "Cheryl", - "Tina", - "Gregory", - "David", - "Scott", - "Joshua", - "Janet", - "Joyce", - "Jerry", - "Charles", - "Deborah", - "Ronald", - "Kathleen", - "Kathleen", - "Brian", - "Phillip", - "Henry", - "Susan", - "Samuel", - "Marie", - "Ernest", - "Lisa", - "Kevin", - "Teresa", - "Debra", - "Joan", - "Eugene", - "Nicole", - "Steve", - "Steven", - "Willie", - "Aaron", - "Frances", - "Michelle", - "Jesse", - "Aaron", - "Mary", - "Donna", - "Peter", - "Amy", - "Timothy", - "Wanda", - "Robert", - "Marilyn", - "Ernest", - "Joseph", - "Walter", - "Richard", - "Bobby", - "James", - "Jane", - "Joe", - "William", - "Jennifer", - "Doris", - "Gloria", - "Lisa", - "Nancy", - "Marilyn", - "Antonio", - "Teresa", - "Billy", - "Fred", - "Sarah", - "Amy", - "Carl", - "Beverly", - "Gregory", - "Peter", - "Samuel", - "Alice", - "Walter", - "Ralph", - "Theresa", - "Ruth", - "Judith", - "Howard", - "Nicole", - "Shawn", - "Johnny", - "Bobby", - "Alan", - "Alan", - "Angela", - "Jeremy", - "Diana", - "Sandra", - "Roger", - "Anne", - "Donna", - "Aaron", - "Nancy", - "Shirley", - "Peter", - "Rachel", - "Roy", - "Matthew", - "Michael", - "Shirley", - "Ernest", - "Charles", - "Fred", - "Ralph", - "Phillip", - "Rose", - "Carlos", - "Douglas", - "Jose", - "Joe", - "Sandra", - "Dorothy", - "Sharon", - "Beverly", - "Roger", - "Michelle", - "Melissa", - "Lawrence", - "Jonathan", - "John", - "Terry", - "Sara", - "Antonio", - "Tammy", - "Lois", - "Christopher", - "Frances", - "Julie", - "Johnny", - "Sara", - "Arthur", - "Ruby", - "Julia", - "Elizabeth", - "Julia", - "Amy", - "Carol", - "Teresa", - "Sarah", - "Mark", - "Mark", - "Julia", - "Jessica", - "Kimberly", - "Diane", - "Shawn", - "Brenda", - "Shawn", - "Bonnie", - "Kathy", - "Susan", - "Juan", - "Cynthia", - "Stephanie", - "Alice", - "Joyce", - "Nicole", - "Antonio", - "Jason", - "Timothy", - "Jane", - "Joshua", - "Jack", - "Fred", - "Joe", - "Harry", - "Douglas", - "Dorothy", - "Douglas", - "Larry", - "Marilyn", - "Patrick", - "Martin", - "Kenneth", - "Christina", - "Terry", - "Roger", - "Andrew", - "Kathleen", - "Harry", - "Joshua", - "Bonnie", - "Chris", - "Kimberly", - "Jane", - "Shirley", - "Aaron", - "Charles", - "Brandon", - "Ralph", - "Joseph", - "Lori", - "Judy", - "Melissa", - "Richard", - "Albert", - "Timothy", - "Stephanie", - "Justin", - "Mary", - "Joshua", - "Earl", - "Bruce", - "Ruth", - "Jessica", - "Phyllis", - "Amy", - "Andrea", - "Philip", - "Norma", - "Lois", - "Katherine", - "Tammy", - "Jessica", - "Jennifer", - "Sandra", - "Mildred", - "Willie", - "Scott", - "Todd", - "David", - "Fred", - "Sharon", - "Betty", - "Shirley", - "Harry", - "Kenneth", - "Christopher", - "Barbara", - "Melissa", - "Rebecca", - "Frank", - "Chris", - "Harry", - "Jennifer", - "Jesse", - "Debra", - "Marie", - "Gary", - "Randy", - "Dennis", - "Jessica", - "Janet", - "Stephanie", - "Philip", - "Melissa", - "Susan", - "Dorothy", - "Arthur", - "Lisa", - "David", - "Clarence", - "Wanda", - "Bobby", - "Jerry", - "Jennifer", - "Gregory", - "Kathryn", - "Evelyn", - "Carl", - "Carolyn", - "Shawn", - "Matthew", - "Cynthia", - "Kimberly", - "Bobby", - "Nicole", - "Emily", - "Joshua", - "Carl", - "Kelly", - "Frances", - "Fred", - "Janice", - "Michael", - "Russell", - "Benjamin", - "Ernest", - "Raymond", - "Deborah", - "Betty", - "Jerry", - "Diane", - "Teresa", - "Lisa", - "Barbara", - "Melissa", - "Alice", - "Rachel", - "Peter", - "Phyllis", - "Earl", - "Patricia", - "Jerry", - "Harold", - "Shirley", - "Terry", - "Roy", - "Linda", - "Andrew", - "Rachel", - "Bruce", - "Stephanie", - "Harry", - "Stephen", - "Steve", - "Karen", - "Shirley", - "Cheryl", - "Anne", - "Johnny", - "Annie", - "David", - "Antonio", - "Philip", - "Alice", - "Jeremy", - "Lori", - "Adam", - "Billy", - "Douglas", - "Ernest", - "Ruth", - "Patricia", - "Laura", - "Randy", - "Joseph", - "Johnny", - "Joseph", - "Lois", - "Beverly", - "James", - "Cheryl", - "Randy", - "Teresa", - "Tina", - "Angela", - "Judith", - "Marie", - "Carolyn", - "Brenda", - "Andrea", - "Lawrence", - "Earl", - "Bruce", - "Martha", - "Ernest", - "Benjamin", - "Carl", - "Walter", - "Charles", - "Jack", - "Wayne", - "Bruce", - "Benjamin", - "Walter", - "Ruth", - "Chris", - "Andrew", - "Elizabeth", - "Judy", - "Carol", - "Walter", - "Patricia", - "Martha", - "Randy", - "Margaret", - "Brian", - "Theresa", - "Debra", - "Eric", - "Nicholas", - "Amy", - "Timothy", - "Linda", - "Tina", - "Roy", - "Alan", - "Patricia", - "Matthew", - "Bonnie", - "Melissa", - "Raymond", - "Julia", - "Philip", - "Joe", - "Stephanie", - "Robin", - "Jacqueline", - "Anne", - "Brenda", - "Shirley", - "Jean", - "Eugene", - "Martha", - "Lillian", - "Ryan" - ], - "last_name":[ - "Hansen", - "Hall", - "Freeman", - "Cole", - "Banks", - "Harrison", - "Snyder", - "Reid", - "Reyes", - "Henry", - "Wilson", - "Ross", - "Warren", - "Perez", - "Cunningham", - "Davis", - "Medina", - "Welch", - "Stevens", - "Elliott", - "Mendoza", - "Matthews", - "Martin", - "Wells", - "Chapman", - "Allen", - "Burke", - "Flores", - "Rogers", - "Simmons", - "Simmons", - "Mason", - "Martinez", - "Bennett", - "Mason", - "Cole", - "Hunt", - "Carr", - "Robertson", - "Mason", - "White", - "Moreno", - "Montgomery", - "Long", - "Hughes", - "Flores", - "Stephens", - "Jackson", - "Harrison", - "Edwards", - "Alvarez", - "Olson", - "Thompson", - "Hudson", - "Grant", - "Reynolds", - "Sims", - "Price", - "Payne", - "Reed", - "Matthews", - "Ross", - "Rivera", - "Weaver", - "Frazier", - "Pierce", - "Torres", - "Rodriguez", - "Dixon", - "Parker", - "Cook", - "Bryant", - "Washington", - "Oliver", - "Anderson", - "Tucker", - "Cole", - "Cunningham", - "Reed", - "Torres", - "Stanley", - "Gonzales", - "Matthews", - "Rogers", - "Jones", - "George", - "Collins", - "Grant", - "Romero", - "Hernandez", - "Dunn", - "Bowman", - "Kelley", - "Lopez", - "Fields", - "Lynch", - "Harvey", - "Sullivan", - "Mills", - "Owens", - "Cox", - "Welch", - "Olson", - "Gilbert", - "Peters", - "Knight", - "Stevens", - "Morales", - "Brown", - "Bishop", - "Powell", - "Johnston", - "Fuller", - "Lynch", - "Gutierrez", - "Simmons", - "Flores", - "Hawkins", - "Long", - "James", - "Torres", - "Gilbert", - "Frazier", - "Williamson", - "Wagner", - "Grant", - "Little", - "Kim", - "Welch", - "Mendoza", - "Gonzales", - "Fisher", - "Reynolds", - "Freeman", - "Moore", - "Harper", - "Bishop", - "Clark", - "Bryant", - "Wilson", - "Burke", - "Medina", - "Lynch", - "Dixon", - "Ruiz", - "Williamson", - "Cooper", - "Perry", - "Shaw", - "Nelson", - "Stevens", - "Pierce", - "Johnston", - "Crawford", - "Jones", - "Mendoza", - "Perry", - "Carr", - "Rodriguez", - "Ortiz", - "Reyes", - "Washington", - "Ellis", - "Wilson", - "Larson", - "Kennedy", - "Cunningham", - "Peterson", - "Garza", - "Reyes", - "Washington", - "Crawford", - "Gordon", - "Armstrong", - "Lawson", - "Ford", - "Kennedy", - "Perkins", - "Wheeler", - "Carter", - "Martin", - "Watson", - "Moreno", - "Carroll", - "Morris", - "Diaz", - "Watson", - "Hernandez", - "Reynolds", - "Simpson", - "Larson", - "Stephens", - "Diaz", - "Austin", - "Chapman", - "Armstrong", - "Clark", - "Lawrence", - "Collins", - "Larson", - "Ortiz", - "Warren", - "Chavez", - "Turner", - "Rice", - "White", - "Riley", - "Anderson", - "Mitchell", - "Romero", - "Rogers", - "Clark", - "Ward", - "Reid", - "Palmer", - "Jenkins", - "White", - "Schmidt", - "Edwards", - "Murray", - "Patterson", - "Spencer", - "Wells", - "Garrett", - "Palmer", - "Ortiz", - "Alexander", - "Snyder", - "Bishop", - "Moore", - "Ellis", - "Torres", - "Fields", - "Morrison", - "Rose", - "Kim", - "Campbell", - "Richards", - "Gonzalez", - "Watkins", - "Roberts", - "Willis", - "Tucker", - "Wallace", - "Bailey", - "Dunn", - "Shaw", - "Ruiz", - "Carr", - "Fields", - "Fox", - "Larson", - "Burton", - "Chapman", - "Campbell", - "Cooper", - "Dixon", - "Garza", - "Lee", - "Vasquez", - "Carroll", - "Walker", - "Hayes", - "Wright", - "Gonzales", - "Carroll", - "Brooks", - "Schmidt", - "Garcia", - "Rice", - "Wheeler", - "Flores", - "Coleman", - "Bradley", - "Gordon", - "Willis", - "Bryant", - "Snyder", - "Knight", - "Mccoy", - "Franklin", - "Evans", - "Ward", - "Myers", - "Freeman", - "Ryan", - "Mills", - "Burton", - "Boyd", - "Stephens", - "Davis", - "Perry", - "Bowman", - "Hart", - "Diaz", - "King", - "Perry", - "Woods", - "Gonzales", - "Gonzales", - "Diaz", - "Carter", - "Dunn", - "Bowman", - "Perry", - "Reyes", - "Berry", - "Howell", - "Willis", - "Stevens", - "Cruz", - "Reid", - "Harrison", - "Howell", - "Rodriguez", - "Hughes", - "Nelson", - "Diaz", - "Grant", - "Morrison", - "Collins", - "Collins", - "Gibson", - "Foster", - "Dunn", - "Gibson", - "Armstrong", - "Mitchell", - "Diaz", - "Johnston", - "Taylor", - "Nichols", - "Ramirez", - "Ellis", - "Howell", - "Johnson", - "Garrett", - "Perkins", - "Reed", - "Cruz", - "Carr", - "Robertson", - "Matthews", - "Little", - "Perez", - "Chavez", - "Harris", - "Pierce", - "Romero", - "Holmes", - "Hamilton", - "Palmer", - "Kelly", - "Ferguson", - "Powell", - "Stanley", - "Wheeler", - "Turner", - "Lee", - "Owens", - "Payne", - "Sanders", - "Lewis", - "Nguyen", - "Robinson", - "Sanders", - "Perez", - "Boyd", - "Armstrong", - "Mills", - "Young", - "Martin", - "Lawson", - "Ortiz", - "Garza", - "Shaw", - "Grant", - "Welch", - "Wilson", - "Lynch", - "Morrison", - "Coleman", - "Ferguson", - "Harrison", - "Hansen", - "Ross", - "Ross", - "Ramos", - "Graham", - "Black", - "Watson", - "Little", - "Johnson", - "Romero", - "Meyer", - "Burke", - "Peterson", - "Henderson", - "Hart", - "Hunter", - "Day", - "Coleman", - "Hill", - "Morales", - "Graham", - "Fuller", - "Burton", - "Wood", - "Holmes", - "Harvey", - "Black", - "Russell", - "Alexander", - "Gordon", - "Watson", - "King", - "Grant", - "Meyer", - "Webb", - "Arnold", - "Armstrong", - "Rivera", - "Morrison", - "Edwards", - "Allen", - "Chapman", - "Myers", - "Simpson", - "Austin", - "Wheeler", - "Harris", - "Palmer", - "Morgan", - "Snyder", - "Dunn", - "Taylor", - "Simpson", - "Stewart", - "Fisher", - "Fernandez", - "Anderson", - "Woods", - "Chapman", - "Gilbert", - "Ferguson", - "Arnold", - "Romero", - "Kennedy", - "Russell", - "Ford", - "Gomez", - "Johnston", - "Hernandez", - "Mccoy", - "White", - "Myers", - "Lewis", - "Lynch", - "Palmer", - "Kim", - "Duncan", - "Gibson", - "Graham", - "Scott", - "Fuller", - "Wells", - "Lewis", - "Carroll", - "Fernandez", - "Williams", - "Fowler", - "Alvarez", - "Howell", - "Weaver", - "Fisher", - "Scott", - "Freeman", - "Gray", - "Thompson", - "Reed", - "Torres", - "White", - "Harrison", - "Wagner", - "Myers", - "Weaver", - "Jones", - "Brown", - "Morris", - "Robinson", - "Payne", - "Bradley", - "Richards", - "Burton", - "Henderson", - "Kelley", - "Price", - "Woods", - "Vasquez", - "Wilson", - "Nichols", - "Burton", - "Lewis", - "Ramos", - "Harper", - "Schmidt", - "Adams", - "Bishop", - "Armstrong", - "Walker", - "Mcdonald", - "Watkins", - "Gibson", - "Morgan", - "Castillo", - "Austin", - "King", - "Carpenter", - "Johnson", - "Sims", - "Gray", - "Reynolds", - "Watkins", - "West", - "Simmons", - "Ross", - "Stevens", - "Cole", - "Weaver", - "Ward", - "Gutierrez", - "Stone", - "Lewis", - "Ward", - "Miller", - "George", - "Johnston", - "Powell", - "Alexander", - "King", - "Kelley", - "Cole", - "Edwards", - "Rice", - "Porter", - "Arnold", - "Gibson", - "Greene", - "Richardson", - "Marshall", - "Gilbert", - "Fields", - "Wright", - "Freeman", - "Kim", - "Simmons", - "Burton", - "Reed", - "Rivera", - "Gomez", - "Knight", - "Reyes", - "Richards", - "Miller", - "Wright", - "Chapman", - "Burke", - "Baker", - "Torres", - "Lane", - "George", - "Gonzalez", - "Fowler", - "Schmidt", - "Harrison", - "James", - "King", - "Price", - "Little", - "Carr", - "Fowler", - "Peterson", - "Lynch", - "Cole", - "Simpson", - "Richards", - "Stevens", - "Daniels", - "Marshall", - "Freeman", - "Martin", - "Hansen", - "Watkins", - "Miller", - "King", - "Morgan", - "Warren", - "Frazier", - "Washington", - "Fowler", - "Ray", - "Mitchell", - "Nichols", - "Perry", - "Adams", - "Hawkins", - "Hawkins", - "Young", - "Pierce", - "Allen", - "Jones", - "Perkins", - "Crawford", - "Hall", - "Weaver", - "Hunt", - "Price", - "King", - "Dixon", - "Hunter", - "Mason", - "Allen", - "Richardson", - "Bradley", - "Perez", - "Ford", - "Ramos", - "Myers", - "Perkins", - "Rodriguez", - "Parker", - "George", - "Snyder", - "Flores", - "Sanders", - "Schmidt", - "Nichols", - "Long", - "Meyer", - "Fuller", - "Rivera", - "Allen", - "Arnold", - "Edwards", - "Weaver", - "Green", - "Hunt", - "Austin", - "Duncan", - "Morrison", - "Hill", - "Ray", - "Stewart", - "Black", - "Wheeler", - "Garza", - "Rodriguez", - "Freeman", - "Jones", - "Sanders", - "Perkins", - "Bailey", - "Ortiz", - "Stevens", - "Chapman", - "Day", - "Morrison", - "Foster", - "Ross", - "Bishop", - "Pierce", - "Ellis", - "Spencer", - "Allen", - "Frazier", - "Franklin", - "Dunn", - "Miller", - "Gutierrez", - "Parker", - "Fox", - "Meyer", - "Mason", - "Wright", - "Jones", - "Lewis", - "Hamilton", - "Hart", - "Rose", - "Bradley", - "Cox", - "Anderson", - "Williamson", - "Elliott", - "Butler", - "Berry", - "Sanders", - "Cook", - "Palmer", - "Berry", - "Knight", - "Garrett", - "Watson", - "Grant", - "Arnold", - "Simmons", - "Payne", - "Hughes", - "Perez", - "Alvarez", - "Sims", - "Dunn", - "Williams", - "Carr", - "Taylor", - "Jacobs", - "Boyd", - "Williamson", - "Gardner", - "Rogers", - "Green", - "George", - "Pierce", - "Berry", - "Ray", - "Ross", - "Cunningham", - "Duncan", - "Burton", - "Pierce", - "Moore", - "Knight", - "King", - "Owens", - "Collins", - "Knight", - "Woods", - "Gutierrez", - "Ward", - "Turner", - "Hicks", - "Gray", - "Sullivan", - "Cole", - "Morales", - "Green", - "Washington", - "Diaz", - "Ford", - "Lewis", - "Berry", - "Fox", - "Scott", - "Carroll", - "Gonzalez", - "Baker", - "Stone", - "Gonzalez", - "Hall", - "Medina", - "Hayes", - "Sanders", - "Dixon", - "Johnson", - "Weaver", - "Dixon", - "Schmidt", - "Austin", - "Green", - "Ramirez", - "Sullivan", - "Porter", - "Hawkins", - "Ford", - "Lynch", - "King", - "Ferguson", - "Richards", - "Crawford", - "Franklin", - "Dixon", - "Elliott", - "Matthews", - "Harvey", - "Long", - "Larson", - "Thomas", - "Scott", - "Ramos", - "Arnold", - "Wood", - "Anderson", - "Myers", - "Allen", - "Berry", - "Campbell", - "Daniels", - "Thompson", - "Medina", - "Howell", - "Watkins", - "West", - "Vasquez", - "Fuller", - "Jones", - "Stevens", - "Powell", - "Cox", - "Kelley", - "Duncan", - "Andrews", - "Morales", - "Marshall", - "Thompson", - "Bryant", - "Simpson", - "Morris", - "Hicks", - "Marshall", - "Alvarez", - "Ray", - "Kelley", - "Wallace", - "Chavez", - "Garcia", - "Fox", - "Dean", - "Rodriguez", - "Arnold", - "Bowman", - "Graham", - "Hanson", - "Barnes", - "Harvey", - "Knight", - "Morris", - "Mills", - "Hansen", - "Peters", - "Sanchez", - "Hunt", - "Riley", - "Dixon", - "Palmer", - "Bailey", - "Walker", - "Henry", - "Rogers", - "Perez", - "Burns", - "Williams", - "Wood", - "Peters", - "Lawson", - "Woods", - "Stephens", - "Duncan", - "Larson", - "Morgan", - "Rogers", - "Warren", - "Diaz", - "Johnson", - "Garcia", - "Morales", - "Romero", - "Hawkins", - "Elliott", - "Nichols", - "Murray", - "Ford", - "Webb", - "Morales", - "Kennedy", - "Harper", - "Baker", - "Adams", - "Oliver", - "Perry", - "Reyes", - "Garrett", - "Adams", - "Baker", - "Richardson", - "Torres", - "Harvey", - "Kim", - "Wallace", - "Cox", - "Hunt", - "Bennett", - "Bishop", - "Mcdonald", - "Wright", - "Peterson", - "Hamilton", - "King", - "Robertson", - "Gilbert", - "Peters", - "Duncan", - "Williams", - "Edwards", - "Davis", - "Richardson", - "Collins", - "Perry", - "Black", - "Martin", - "Gomez", - "Bryant", - "Jackson", - "Miller", - "Grant", - "Johnston", - "Jacobs", - "Woods", - "Russell", - "Thomas", - "Bennett", - "Daniels", - "Long", - "Andrews", - "Harper", - "Mills", - "Carroll", - "Martin", - "Brooks", - "Austin", - "Hudson", - "Carroll", - "Palmer", - "Sullivan", - "Hughes", - "Martinez", - "Miller", - "Pierce", - "Taylor", - "Webb", - "Hughes", - "Anderson", - "Robinson", - "Mitchell", - "Day", - "Hicks", - "Williamson", - "Gibson", - "Bradley", - "Lawson", - "Oliver", - "Perry", - "Bowman", - "Fernandez", - "Garrett", - "Armstrong", - "Mason", - "West", - "Payne", - "Washington", - "Hayes", - "Watkins", - "Wilson", - "Sims", - "Medina", - "Perez", - "Bell", - "Gibson", - "Myers", - "Young", - "Berry", - "Phillips", - "Morales", - "Gomez", - "Boyd", - "Watson", - "Cooper", - "Miller", - "Morales", - "Wells", - "Fields", - "Hanson", - "Diaz", - "Wells", - "Chapman", - "Romero", - "Hanson", - "Hanson", - "Perez", - "Meyer", - "Foster", - "Hall", - "Reynolds", - "Freeman", - "Sanchez", - "Lynch", - "Clark", - "Russell" - ], - "email":[ - "rhansen0@stanford.edu", - "shall1@zdnet.com", - "lfreeman2@gmpg.org", - "ecole3@thetimes.co.uk", - "mbanks4@blinklist.com", - "mharrison5@macromedia.com", - "dsnyder6@1688.com", - "kreid7@vimeo.com", - "breyes8@pcworld.com", - "lhenry9@eventbrite.com", - "bwilsona@youtube.com", - "krossb@cornell.edu", - "swarrenc@devhub.com", - "tperezd@buzzfeed.com", - "tcunninghame@printfriendly.com", - "rdavisf@earthlink.net", - "emedinag@hatena.ne.jp", - "dwelchh@mashable.com", - "cstevensi@theatlantic.com", - "delliottj@posterous.com", - "cmendozak@discovery.com", - "cmatthewsl@is.gd", - "bmartinm@scientificamerican.com", - "gwellsn@webmd.com", - "mchapmano@google.com.au", - "gallenp@sina.com.cn", - "kburkeq@de.vu", - "ffloresr@slate.com", - "krogerss@dailymail.co.uk", - "msimmonst@ca.gov", - "tsimmonsu@illinois.edu", - "cmasonv@toplist.cz", - "amartinezw@clickbank.net", - "rbennettx@twitter.com", - "jmasony@home.pl", - "kcolez@yahoo.co.jp", - "whunt10@cocolog-nifty.com", - "mcarr11@google.cn", - "jrobertson12@simplemachines.org", - "gmason13@vkontakte.ru", - "twhite14@umich.edu", - "hmoreno15@java.com", - "bmontgomery16@omniture.com", - "along17@dot.gov", - "fhughes18@webs.com", - "jflores19@reverbnation.com", - "astephens1a@twitpic.com", - "cjackson1b@goo.ne.jp", - "jharrison1c@boston.com", - "ledwards1d@fema.gov", - "valvarez1e@google.de", - "dolson1f@sun.com", - "ethompson1g@princeton.edu", - "bhudson1h@google.de", - "rgrant1i@uol.com.br", - "kreynolds1j@yahoo.co.jp", - "ksims1k@reuters.com", - "kprice1l@illinois.edu", - "jpayne1m@theguardian.com", - "freed1n@bluehost.com", - "amatthews1o@hao123.com", - "sross1p@salon.com", - "jrivera1q@soundcloud.com", - "eweaver1r@google.com.br", - "wfrazier1s@diigo.com", - "rpierce1u@yale.edu", - "ttorres1v@walmart.com", - "drodriguez1w@google.com", - "cdixon1x@wordpress.org", - "dparker1y@tinyurl.com", - "mcook1z@netlog.com", - "dbryant20@cbsnews.com", - "lwashington21@omniture.com", - "roliver22@noaa.gov", - "janderson23@cpanel.net", - "jtucker24@seesaa.net", - "acole25@mapy.cz", - "dcunningham26@addthis.com", - "mreed27@columbia.edu", - "ctorres28@last.fm", - "bstanley29@ucoz.com", - "mgonzales2a@cornell.edu", - "rmatthews2b@upenn.edu", - "brogers2c@businesswire.com", - "mjones2d@mozilla.org", - "rgeorge2e@ft.com", - "scollins2f@godaddy.com", - "pgrant2g@reverbnation.com", - "promero2h@so-net.ne.jp", - "vhernandez2i@sciencedaily.com", - "jdunn2j@dailymotion.com", - "cbowman2k@netlog.com", - "ckelley2l@skype.com", - "glopez2m@gizmodo.com", - "hfields2n@live.com", - "mlynch2o@amazon.co.jp", - "dharvey2p@slate.com", - "tsullivan2q@mlb.com", - "emills2r@europa.eu", - "mowens2s@webnode.com", - "pcox2t@youtu.be", - "jwelch2u@marriott.com", - "colson2v@ask.com", - "mgilbert2w@google.com.hk", - "jpeters2y@usnews.com", - "jknight2z@github.io", - "dstevens30@nba.com", - "pmorales31@whitehouse.gov", - "dbrown32@washington.edu", - "jbishop33@jugem.jp", - "apowell34@un.org", - "rjohnston35@howstuffworks.com", - "jfuller36@twitter.com", - "rlynch37@instagram.com", - "dgutierrez38@huffingtonpost.com", - "jsimmons39@si.edu", - "eflores3a@github.com", - "ahawkins3b@simplemachines.org", - "elong3c@sohu.com", - "jjames3d@nhs.uk", - "rtorres3e@alexa.com", - "jgilbert3f@booking.com", - "wfrazier3g@google.co.jp", - "fwilliamson3h@shareasale.com", - "cwagner3i@npr.org", - "ngrant3j@friendfeed.com", - "plittle3k@clickbank.net", - "rkim3l@facebook.com", - "mwelch3m@illinois.edu", - "emendoza3n@furl.net", - "cgonzales3o@whitehouse.gov", - "jfisher3p@zdnet.com", - "creynolds3q@blog.com", - "rfreeman3r@nyu.edu", - "nmoore3s@cnbc.com", - "aharper3t@pinterest.com", - "cbishop3u@parallels.com", - "dclark3v@google.co.uk", - "cbryant3w@hc360.com", - "bwilson3x@nymag.com", - "cburke3y@auda.org.au", - "bmedina3z@angelfire.com", - "dlynch40@shop-pro.jp", - "ddixon41@networksolutions.com", - "kruiz42@google.it", - "jwilliamson43@squarespace.com", - "jcooper44@cyberchimps.com", - "pperry45@pcworld.com", - "jshaw46@yellowbook.com", - "gnelson47@bbb.org", - "hstevens48@wikispaces.com", - "cpierce49@com.com", - "mjohnston4a@alexa.com", - "ecrawford4b@jugem.jp", - "mjones4c@zimbio.com", - "jmendoza4d@sbwire.com", - "pperry4e@aol.com", - "bcarr4f@liveinternet.ru", - "mrodriguez4g@lycos.com", - "aortiz4h@illinois.edu", - "greyes4i@rakuten.co.jp", - "rwashington4j@reverbnation.com", - "aellis4k@noaa.gov", - "awilson4l@twitter.com", - "slarson4m@51.la", - "tkennedy4n@columbia.edu", - "hcunningham4o@twitter.com", - "hpeterson4p@hostgator.com", - "rgarza4q@about.me", - "greyes4r@ask.com", - "jwashington4s@alibaba.com", - "jcrawford4t@360.cn", - "agordon4u@umich.edu", - "larmstrong4v@zimbio.com", - "klawson4w@uol.com.br", - "rford4x@netlog.com", - "jkennedy4y@seattletimes.com", - "hperkins4z@trellian.com", - "rwheeler50@xing.com", - "kcarter51@guardian.co.uk", - "emartin52@shutterfly.com", - "mwatson53@patch.com", - "smoreno54@unicef.org", - "scarroll55@walmart.com", - "cmorris56@msn.com", - "adiaz57@oakley.com", - "rwatson58@shop-pro.jp", - "rhernandez59@nytimes.com", - "jreynolds5a@issuu.com", - "psimpson5b@php.net", - "clarson5c@businesswire.com", - "pstephens5d@si.edu", - "bdiaz5e@arstechnica.com", - "baustin5f@yahoo.com", - "dchapman5g@booking.com", - "aarmstrong5h@bbb.org", - "wclark5i@networkadvertising.org", - "jlawrence5j@google.com.hk", - "scollins5k@mapy.cz", - "klarson5l@about.com", - "dortiz5m@studiopress.com", - "kwarren5n@newyorker.com", - "dchavez5o@mit.edu", - "kturner5p@technorati.com", - "trice5q@reddit.com", - "rwhite5r@mac.com", - "ariley5s@geocities.jp", - "aanderson5t@printfriendly.com", - "rmitchell5u@yale.edu", - "rromero5v@elegantthemes.com", - "progers5w@upenn.edu", - "eclark5x@sun.com", - "award5y@odnoklassniki.ru", - "areid5z@blogspot.com", - "cpalmer60@edublogs.org", - "jjenkins61@newyorker.com", - "rwhite62@zimbio.com", - "aschmidt63@cnet.com", - "medwards64@columbia.edu", - "tmurray65@shop-pro.jp", - "lpatterson66@rambler.ru", - "lspencer67@domainmarket.com", - "kwells68@chronoengine.com", - "bgarrett69@weebly.com", - "rpalmer6a@artisteer.com", - "cortiz6b@shinystat.com", - "ealexander6c@sphinn.com", - "jsnyder6d@ed.gov", - "bbishop6e@odnoklassniki.ru", - "amoore6f@ezinearticles.com", - "lellis6g@jigsy.com", - "mtorres6h@cafepress.com", - "cfields6i@ebay.com", - "gmorrison6j@domainmarket.com", - "mrose6k@google.de", - "nkim6l@paypal.com", - "acampbell6m@dmoz.org", - "erichards6n@guardian.co.uk", - "agonzalez6o@nps.gov", - "awatkins6p@ebay.co.uk", - "croberts6q@dailymotion.com", - "cwillis6r@miibeian.gov.cn", - "ktucker6s@businessinsider.com", - "ewallace6t@trellian.com", - "kbailey6u@yahoo.co.jp", - "wdunn6v@wikia.com", - "dshaw6w@utexas.edu", - "mruiz6x@usgs.gov", - "ncarr6y@army.mil", - "dfields6z@myspace.com", - "mfox70@wix.com", - "alarson71@huffingtonpost.com", - "lburton72@amazon.de", - "cchapman73@desdev.cn", - "ecampbell74@google.com.au", - "jcooper75@blog.com", - "pdixon76@google.pl", - "mgarza77@cdbaby.com", - "dlee78@biglobe.ne.jp", - "cvasquez79@mapquest.com", - "scarroll7a@mlb.com", - "swalker7b@symantec.com", - "whayes7c@naver.com", - "twright7d@utexas.edu", - "dgonzales7e@constantcontact.com", - "kcarroll7f@blogs.com", - "wbrooks7g@bbc.co.uk", - "dschmidt7h@themeforest.net", - "sgarcia7i@biglobe.ne.jp", - "jrice7j@bbb.org", - "lwheeler7k@ft.com", - "bflores7l@merriam-webster.com", - "jcoleman7m@gizmodo.com", - "rbradley7n@apple.com", - "kgordon7o@soup.io", - "fwillis7p@columbia.edu", - "bbryant7q@ted.com", - "fsnyder7r@tinyurl.com", - "eknight7s@devhub.com", - "kmccoy7t@youtu.be", - "rfranklin7u@mit.edu", - "hevans7v@list-manage.com", - "dward7w@earthlink.net", - "nmyers7x@pen.io", - "efreeman7y@skype.com", - "eryan7z@wisc.edu", - "rmills80@patch.com", - "dburton81@pagesperso-orange.fr", - "kboyd82@elpais.com", - "jstephens83@nih.gov", - "mdavis84@netscape.com", - "jperry85@netlog.com", - "sbowman86@1und1.de", - "shart87@sitemeter.com", - "cdiaz88@meetup.com", - "cking89@goo.ne.jp", - "gperry8a@npr.org", - "kwoods8b@spotify.com", - "jgonzales8c@narod.ru", - "cgonzales8d@state.gov", - "tdiaz8e@prweb.com", - "kcarter8f@economist.com", - "jdunn8g@google.es", - "cbowman8h@omniture.com", - "eperry8i@unc.edu", - "lreyes8j@google.com", - "jberry8k@netvibes.com", - "lhowell8l@businesswire.com", - "rwillis8m@msn.com", - "astevens8n@harvard.edu", - "lcruz8o@clickbank.net", - "mreid8p@gravatar.com", - "lharrison8q@behance.net", - "thowell8r@imdb.com", - "brodriguez8s@pinterest.com", - "dhughes8t@wikia.com", - "rnelson8u@360.cn", - "jdiaz8v@goo.ne.jp", - "wgrant8w@oracle.com", - "jmorrison8x@fotki.com", - "acollins8y@taobao.com", - "ccollins8z@mapquest.com", - "igibson90@netlog.com", - "jfoster91@google.com.hk", - "rdunn92@skype.com", - "jgibson93@123-reg.co.uk", - "jarmstrong94@xrea.com", - "rmitchell95@google.co.uk", - "cdiaz96@latimes.com", - "wjohnston97@blogger.com", - "jtaylor98@ebay.co.uk", - "nnichols99@networkadvertising.org", - "jramirez9a@intel.com", - "bellis9b@fc2.com", - "ghowell9c@go.com", - "ajohnson9d@opera.com", - "bgarrett9e@chicagotribune.com", - "eperkins9f@wikia.com", - "mreed9g@huffingtonpost.com", - "ccruz9h@washingtonpost.com", - "scarr9i@myspace.com", - "lrobertson9j@amazon.com", - "imatthews9k@csmonitor.com", - "clittle9l@blinklist.com", - "gperez9m@ebay.co.uk", - "lchavez9n@cyberchimps.com", - "sharris9o@last.fm", - "apierce9p@live.com", - "jromero9q@mediafire.com", - "dholmes9r@usatoday.com", - "vhamilton9s@meetup.com", - "wpalmer9t@businessweek.com", - "ckelly9u@tripadvisor.com", - "pferguson9v@opensource.org", - "jpowell9w@gmpg.org", - "astanley9x@tinyurl.com", - "ewheeler9y@networksolutions.com", - "kturner9z@tripadvisor.com", - "eleea0@tmall.com", - "rowensa1@shareasale.com", - "tpaynea2@linkedin.com", - "ssandersa3@china.com.cn", - "klewisa4@cbc.ca", - "lnguyena5@uol.com.br", - "trobinsona6@sakura.ne.jp", - "jsandersa7@blogspot.com", - "apereza8@redcross.org", - "dboyda9@ft.com", - "darmstrongaa@liveinternet.ru", - "dmillsab@stumbleupon.com", - "tyoungac@tiny.cc", - "lmartinad@ftc.gov", - "jlawsonae@facebook.com", - "rortizaf@home.pl", - "lgarzaag@unc.edu", - "sshawah@economist.com", - "kgrantai@csmonitor.com", - "awelchaj@shareasale.com", - "awilsonak@wikia.com", - "clynchal@shareasale.com", - "jmorrisonam@java.com", - "wcolemanan@sphinn.com", - "sfergusonao@arstechnica.com", - "charrisonap@house.gov", - "ahansenaq@shinystat.com", - "trossar@youtu.be", - "brossas@jugem.jp", - "bramosat@sogou.com", - "rgrahamau@google.nl", - "gblackav@delicious.com", - "pwatsonaw@washingtonpost.com", - "alittleax@amazon.com", - "gjohnsonay@nydailynews.com", - "lromeroaz@blogger.com", - "dmeyerb0@skype.com", - "bburkeb1@topsy.com", - "apetersonb2@weather.com", - "chendersonb3@uiuc.edu", - "jhartb4@elegantthemes.com", - "jhunterb5@google.pl", - "ddayb6@ebay.co.uk", - "acolemanb7@ustream.tv", - "jhillb8@prnewswire.com", - "amoralesb9@fema.gov", - "kgrahamba@smugmug.com", - "mfullerbb@aboutads.info", - "cburtonbc@marketwatch.com", - "jwoodbd@theguardian.com", - "aholmesbe@tumblr.com", - "aharveybf@etsy.com", - "jblackbg@bandcamp.com", - "vrussellbh@hibu.com", - "balexanderbi@edublogs.org", - "cgordonbj@netscape.com", - "swatsonbk@yahoo.com", - "mkingbl@nps.gov", - "bgrantbm@is.gd", - "fmeyerbn@yelp.com", - "cwebbbo@walmart.com", - "earnoldbp@exblog.jp", - "sarmstrongbq@china.com.cn", - "kriverabr@ucoz.ru", - "jmorrisonbs@geocities.com", - "pedwardsbt@netlog.com", - "aallenbu@google.ca", - "wchapmanbv@umn.edu", - "cmyersbw@rakuten.co.jp", - "tsimpsonbx@latimes.com", - "maustinby@bloglovin.com", - "twheelerbz@webnode.com", - "rharrisc0@examiner.com", - "lpalmerc1@fotki.com", - "dmorganc2@amazon.co.uk", - "esnyderc3@uiuc.edu", - "jdunnc4@twitter.com", - "jtaylorc5@about.me", - "vsimpsonc6@princeton.edu", - "vstewartc7@gravatar.com", - "afisherc8@narod.ru", - "gfernandezc9@ehow.com", - "jandersonca@yolasite.com", - "awoodscb@360.cn", - "mchapmancc@meetup.com", - "jgilbertcd@usda.gov", - "dfergusonce@va.gov", - "aarnoldcf@hud.gov", - "mromerocg@hhs.gov", - "rkennedych@google.com.br", - "jrussellci@imageshack.us", - "mfordcj@utexas.edu", - "lgomezck@umn.edu", - "tjohnstoncl@sakura.ne.jp", - "chernandezcm@noaa.gov", - "mmccoycn@berkeley.edu", - "twhiteco@amazonaws.com", - "wmyerscp@japanpost.jp", - "blewiscq@360.cn", - "jlynchcr@tinyurl.com", - "tpalmercs@freewebs.com", - "jkimct@howstuffworks.com", - "cduncancu@behance.net", - "mgibsoncv@google.it", - "hgrahamcw@npr.org", - "kscottcx@usgs.gov", - "jfullercy@huffingtonpost.com", - "ewellscz@arstechnica.com", - "klewisd0@ow.ly", - "jcarrolld1@nationalgeographic.com", - "mfernandezd2@geocities.jp", - "jwilliamsd3@microsoft.com", - "jfowlerd4@oaic.gov.au", - "jalvarezd5@senate.gov", - "bhowelld6@e-recht24.de", - "jweaverd7@google.fr", - "dfisherd8@yellowpages.com", - "rscottd9@hexun.com", - "sfreemanda@nydailynews.com", - "rgraydb@google.com.hk", - "pthompsondc@delicious.com", - "mreeddd@timesonline.co.uk", - "ltorresde@i2i.jp", - "swhitedf@baidu.com", - "hharrisondg@amazon.co.uk", - "awagnerdh@cpanel.net", - "dmyersdi@webmd.com", - "jweaverdj@slashdot.org", - "sjonesdk@mapy.cz", - "jbrowndl@loc.gov", - "wmorrisdm@dedecms.com", - "rrobinsondn@goo.gl", - "vpaynedo@wikimedia.org", - "hbradleydp@bravesites.com", - "arichardsdq@vimeo.com", - "cburtondr@mayoclinic.com", - "ehendersonds@ning.com", - "dkelleydt@google.de", - "bpricedu@aol.com", - "twoodsdv@taobao.com", - "tvasquezdw@people.com.cn", - "awilsondx@issuu.com", - "tnicholsdy@ed.gov", - "dburtondz@cbc.ca", - "clewise0@constantcontact.com", - "nramose1@wikipedia.org", - "gharpere2@narod.ru", - "gschmidte3@ed.gov", - "padamse4@noaa.gov", - "abishope5@hatena.ne.jp", - "sarmstronge6@wordpress.org", - "dwalkere7@discovery.com", - "mmcdonalde8@nbcnews.com", - "jwatkinse9@ocn.ne.jp", - "tgibsonea@businessweek.com", - "amorganeb@xrea.com", - "scastilloec@barnesandnoble.com", - "aaustined@shutterfly.com", - "akingee@reverbnation.com", - "rcarpenteref@tuttocitta.it", - "bjohnsoneg@4shared.com", - "rsimseh@4shared.com", - "lgrayei@t-online.de", - "jreynoldsej@geocities.jp", - "cwatkinsek@alibaba.com", - "jwestel@stumbleupon.com", - "ssimmonsem@bbb.org", - "brossen@ebay.co.uk", - "jstevenseo@china.com.cn", - "ecoleep@eepurl.com", - "nweavereq@exblog.jp", - "ewarder@wisc.edu", - "dgutierrezes@sina.com.cn", - "fstoneet@taobao.com", - "slewiseu@netscape.com", - "mwardev@bizjournals.com", - "pmillerew@elegantthemes.com", - "ageorgeex@google.cn", - "pjohnstoney@yelp.com", - "jpowellez@1688.com", - "jalexanderf0@google.com.hk", - "akingf1@hao123.com", - "pkelleyf2@mlb.com", - "scolef3@livejournal.com", - "cedwardsf4@admin.ch", - "mricef5@google.com.hk", - "aporterf6@bing.com", - "marnoldf7@mysql.com", - "sgibsonf8@npr.org", - "ngreenef9@mail.ru", - "trichardsonfa@tamu.edu", - "dmarshallfb@yolasite.com", - "kgilbertfc@mozilla.org", - "pfieldsfd@csmonitor.com", - "cwrightfe@liveinternet.ru", - "nfreemanff@admin.ch", - "jkimfg@networksolutions.com", - "dsimmonsfh@zimbio.com", - "nburtonfi@techcrunch.com", - "creedfj@gmpg.org", - "priverafk@1688.com", - "mgomezfl@4shared.com", - "lknightfm@wordpress.com", - "mreyesfn@gmpg.org", - "krichardsfo@dailymotion.com", - "amillerfp@mapquest.com", - "twrightfq@mediafire.com", - "schapmanfr@unesco.org", - "bburkefs@si.edu", - "lbakerft@icq.com", - "ktorresfu@blogtalkradio.com", - "planefv@wikispaces.com", - "lgeorgefw@bloglines.com", - "bgonzalezfx@csmonitor.com", - "lfowlerfy@arstechnica.com", - "aschmidtfz@hp.com", - "aharrisong0@about.com", - "mjamesg1@deviantart.com", - "rkingg2@nih.gov", - "jpriceg3@vistaprint.com", - "alittleg4@vinaora.com", - "pcarrg5@gizmodo.com", - "mfowlerg6@boston.com", - "hpetersong7@google.co.jp", - "jlynchg8@google.ru", - "lcoleg9@phoca.cz", - "jsimpsonga@clickbank.net", - "grichardsgb@vistaprint.com", - "kstevensgc@jigsy.com", - "mdanielsgd@prlog.org", - "gmarshallge@ow.ly", - "afreemangf@forbes.com", - "mmartingg@tuttocitta.it", - "rhansengh@shutterfly.com", - "rwatkinsgi@marketwatch.com", - "bmillergj@paypal.com", - "lkinggk@homestead.com", - "hmorgangl@mapquest.com", - "awarrengm@ow.ly", - "lfraziergn@cdc.gov", - "twashingtongo@tumblr.com", - "tfowlergp@sun.com", - "rraygq@google.co.jp", - "cmitchellgr@csmonitor.com", - "tnicholsgs@auda.org.au", - "gperrygt@omniture.com", - "dadamsgu@i2i.jp", - "shawkinsgv@joomla.org", - "jhawkinsgw@bloomberg.com", - "jyounggx@studiopress.com", - "jpiercegy@mac.com", - "jallengz@cbsnews.com", - "cjonesh0@skype.com", - "dperkinsh1@salon.com", - "rcrawfordh2@wunderground.com", - "khallh3@pinterest.com", - "kweaverh4@weibo.com", - "bhunth5@bluehost.com", - "ppriceh6@surveymonkey.com", - "hkingh7@icq.com", - "sdixonh8@flavors.me", - "shunterh9@vimeo.com", - "mmasonha@auda.org.au", - "eallenhb@privacy.gov.au", - "lrichardsonhc@symantec.com", - "kbradleyhd@vinaora.com", - "tperezhe@wisc.edu", - "dfordhf@ask.com", - "jramoshg@github.io", - "emyershh@state.gov", - "nperkinshi@alexa.com", - "srodriguezhj@delicious.com", - "sparkerhk@bluehost.com", - "wgeorgehl@github.io", - "asnyderhm@sciencedirect.com", - "ffloreshn@imdb.com", - "msandersho@barnesandnoble.com", - "jschmidthp@amazon.co.uk", - "anicholshq@cnet.com", - "mlonghr@addtoany.com", - "dmeyerhs@disqus.com", - "pfullerht@1688.com", - "ariverahu@mtv.com", - "tallenhv@yandex.ru", - "warnoldhw@twitpic.com", - "redwardshx@vimeo.com", - "mweaverhy@friendfeed.com", - "egreenhz@github.com", - "jhunti0@oaic.gov.au", - "waustini1@bluehost.com", - "rduncani2@qq.com", - "bmorrisoni3@cisco.com", - "jhilli4@dailymotion.com", - "jrayi5@weibo.com", - "jstewarti6@delicious.com", - "wblacki7@unicef.org", - "jwheeleri8@soup.io", - "dgarzai9@twitter.com", - "grodriguezia@cpanel.net", - "lfreemanib@devhub.com", - "njonesic@blogger.com", - "msandersid@icio.us", - "aperkinsie@independent.co.uk", - "tbaileyif@about.com", - "bortizig@livejournal.com", - "fstevensih@blogtalkradio.com", - "schapmanii@amazon.co.uk", - "adayij@nyu.edu", - "cmorrisonik@1688.com", - "bfosteril@answers.com", - "grossim@mashable.com", - "pbishopin@qq.com", - "spierceio@telegraph.co.uk", - "aellisip@hugedomains.com", - "wspenceriq@wufoo.com", - "rallenir@delicious.com", - "tfrazieris@gnu.org", - "rfranklinit@furl.net", - "jdunniu@blogspot.com", - "hmilleriv@hexun.com", - "ngutierreziw@amazon.co.jp", - "sparkerix@booking.com", - "jfoxiy@blogs.com", - "bmeyeriz@desdev.cn", - "amasonj0@scribd.com", - "awrightj1@surveymonkey.com", - "ajonesj2@ca.gov", - "jlewisj3@privacy.gov.au", - "dhamiltonj4@gnu.org", - "shartj5@umn.edu", - "rrosej6@cnbc.com", - "abradleyj7@arstechnica.com", - "dcoxj8@sitemeter.com", - "aandersonj9@networkadvertising.org", - "nwilliamsonja@unesco.org", - "selliottjb@istockphoto.com", - "pbutlerjc@loc.gov", - "rberryjd@yandex.ru", - "rsandersje@so-net.ne.jp", - "mcookjf@sciencedaily.com", - "mpalmerjg@washington.edu", - "sberryjh@zdnet.com", - "eknightji@utexas.edu", - "cgarrettjj@sakura.ne.jp", - "fwatsonjk@amazon.co.jp", - "rgrantjl@gnu.org", - "parnoldjm@bigcartel.com", - "rsimmonsjn@ehow.com", - "cpaynejo@alibaba.com", - "dhughesjp@pagesperso-orange.fr", - "jperezjq@xing.com", - "jalvarezjr@theguardian.com", - "ssimsjs@senate.gov", - "ddunnjt@xinhuanet.com", - "swilliamsju@sphinn.com", - "bcarrjv@hibu.com", - "rtaylorjw@ebay.co.uk", - "mjacobsjx@vistaprint.com", - "mboydjy@free.fr", - "lwilliamsonjz@chronoengine.com", - "jgardnerk0@bbc.co.uk", - "jrogersk1@xinhuanet.com", - "tgreenk2@elpais.com", - "sgeorgek3@facebook.com", - "apiercek4@mysql.com", - "tberryk5@cbslocal.com", - "lrayk6@nationalgeographic.com", - "crossk7@tinyurl.com", - "fcunninghamk8@guardian.co.uk", - "jduncank9@independent.co.uk", - "jburtonka@spotify.com", - "spiercekb@ebay.com", - "amoorekc@t-online.de", - "rknightkd@go.com", - "jkingke@aboutads.info", - "eowenskf@fda.gov", - "jcollinskg@who.int", - "aknightkh@1und1.de", - "cwoodski@cpanel.net", - "tgutierrezkj@1und1.de", - "swardkk@nih.gov", - "mturnerkl@booking.com", - "mhickskm@ycombinator.com", - "jgraykn@hexun.com", - "jsullivanko@moonfruit.com", - "kcolekp@blog.com", - "dmoraleskq@vimeo.com", - "sgreenkr@woothemes.com", - "bwashingtonks@ebay.co.uk", - "sdiazkt@unblog.fr", - "bfordku@seattletimes.com", - "klewiskv@bbc.co.uk", - "sberrykw@parallels.com", - "jfoxkx@liveinternet.ru", - "cscottky@friendfeed.com", - "scarrollkz@hexun.com", - "agonzalezl0@rakuten.co.jp", - "jbakerl1@ask.com", - "nstonel2@ovh.net", - "agonzalezl3@fotki.com", - "jhalll4@nsw.gov.au", - "tmedinal5@topsy.com", - "jhayesl6@noaa.gov", - "jsandersl7@google.com", - "jdixonl8@tamu.edu", - "fjohnsonl9@cbsnews.com", - "jweaverla@fastcompany.com", - "hdixonlb@about.com", - "dschmidtlc@japanpost.jp", - "daustinld@wiley.com", - "dgreenle@opera.com", - "lramirezlf@samsung.com", - "msullivanlg@free.fr", - "pporterlh@angelfire.com", - "mhawkinsli@list-manage.com", - "kfordlj@homestead.com", - "clynchlk@google.ru", - "tkingll@123-reg.co.uk", - "rfergusonlm@uiuc.edu", - "arichardsln@engadget.com", - "kcrawfordlo@dedecms.com", - "hfranklinlp@vinaora.com", - "jdixonlq@wordpress.org", - "belliottlr@mit.edu", - "cmatthewsls@tinypic.com", - "kharveylt@irs.gov", - "jlonglu@chronoengine.com", - "slarsonlv@hp.com", - "athomaslw@msu.edu", - "cscottlx@vk.com", - "bramosly@canalblog.com", - "rarnoldlz@princeton.edu", - "jwoodm0@myspace.com", - "landersonm1@virginia.edu", - "jmyersm2@blogger.com", - "mallenm3@cbslocal.com", - "rberrym4@ucoz.com", - "acampbellm5@vinaora.com", - "tdanielsm6@uol.com.br", - "sthompsonm7@soundcloud.com", - "jmedinam8@webeden.co.uk", - "mhowellm9@wiley.com", - "jwatkinsma@flavors.me", - "ewestmb@nytimes.com", - "bvasquezmc@ucoz.com", - "rfullermd@microsoft.com", - "jjonesme@oakley.com", - "pstevensmf@symantec.com", - "apowellmg@plala.or.jp", - "acoxmh@yolasite.com", - "pkelleymi@usda.gov", - "nduncanmj@jiathis.com", - "landrewsmk@narod.ru", - "kmoralesml@slate.com", - "tmarshallmm@1688.com", - "jthompsonmn@fastcompany.com", - "jbryantmp@lycos.com", - "ssimpsonmq@histats.com", - "mmorrismr@123-reg.co.uk", - "whicksms@hugedomains.com", - "smarshallmt@opera.com", - "talvarezmu@vkontakte.ru", - "draymv@sciencedaily.com", - "fkelleymw@twitter.com", - "swallacemx@techcrunch.com", - "bchavezmy@ow.ly", - "sgarciamz@tripadvisor.com", - "hfoxn0@eepurl.com", - "kdeann1@google.ru", - "crodriguezn2@ifeng.com", - "barnoldn3@vistaprint.com", - "mbowmann4@google.de", - "rgrahamn5@thetimes.co.uk", - "fhansonn6@dot.gov", - "cbarnesn7@nba.com", - "hharveyn8@canalblog.com", - "jknightn9@hc360.com", - "jmorrisna@hao123.com", - "dmillsnb@i2i.jp", - "mhansennc@harvard.edu", - "gpetersnd@ask.com", - "rsanchezne@newyorker.com", - "dhuntnf@ihg.com", - "jrileyng@oakley.com", - "jdixonnh@shop-pro.jp", - "spalmerni@scribd.com", - "pbaileynj@house.gov", - "mwalkernk@hud.gov", - "shenrynl@nydailynews.com", - "drogersnm@taobao.com", - "apereznn@liveinternet.ru", - "lburnsno@xrea.com", - "dwilliamsnp@reference.com", - "cwoodnq@cbslocal.com", - "wpetersnr@webmd.com", - "blawsonns@live.com", - "jwoodsnt@illinois.edu", - "jstephensnu@liveinternet.ru", - "gduncannv@unesco.org", - "klarsonnw@mapy.cz", - "emorgannx@wired.com", - "crogersny@plala.or.jp", - "cwarrennz@mit.edu", - "sdiazo0@indiatimes.com", - "mjohnsono1@mozilla.com", - "cgarciao2@xing.com", - "kmoraleso3@ihg.com", - "bromeroo4@addthis.com", - "nhawkinso5@mayoclinic.com", - "eelliotto6@sakura.ne.jp", - "jnicholso7@newyorker.com", - "cmurrayo8@taobao.com", - "kfordo9@house.gov", - "fwebboa@usnews.com", - "fmoralesob@tumblr.com", - "jkennedyoc@fema.gov", - "mharperod@nymag.com", - "rbakeroe@goodreads.com", - "badamsof@artisteer.com", - "eoliverog@xinhuanet.com", - "rperryoh@geocities.com", - "dreyesoi@si.edu", - "bgarrettoj@live.com", - "jadamsok@tripod.com", - "dbakerol@behance.net", - "trichardsonom@taobao.com", - "ltorreson@constantcontact.com", - "bharveyoo@com.com", - "mkimop@berkeley.edu", - "awallaceoq@sphinn.com", - "rcoxor@paginegialle.it", - "phuntos@amazon.co.uk", - "pbennettot@hatena.ne.jp", - "ebishopou@google.co.uk", - "pmcdonaldov@mozilla.com", - "jwrightow@cloudflare.com", - "hpetersonox@ucla.edu", - "shamiltonoy@squidoo.com", - "tkingoz@house.gov", - "rrobertsonp0@twitpic.com", - "lgilbertp1@oakley.com", - "apetersp2@domainmarket.com", - "rduncanp3@skype.com", - "bwilliamsp4@blogs.com", - "sedwardsp5@howstuffworks.com", - "hdavisp6@chronoengine.com", - "srichardsonp7@multiply.com", - "scollinsp8@nasa.gov", - "kperryp9@twitter.com", - "sblackpa@smugmug.com", - "cmartinpb@mysql.com", - "agomezpc@accuweather.com", - "jbryantpd@geocities.com", - "ajacksonpe@imgur.com", - "dmillerpf@ca.gov", - "agrantpg@wp.com", - "pjohnstonph@webs.com", - "ajacobspi@ehow.com", - "jwoodspj@vinaora.com", - "lrussellpk@uol.com.br", - "athomaspl@dot.gov", - "bbennettpm@instagram.com", - "ddanielspn@networkadvertising.org", - "elongpo@pen.io", - "randrewspp@creativecommons.org", - "pharperpq@intel.com", - "lmillspr@facebook.com", - "rcarrollps@prnewswire.com", - "jmartinpt@hao123.com", - "jbrookspu@nature.com", - "jaustinpv@intel.com", - "lhudsonpw@vistaprint.com", - "bcarrollpx@hao123.com", - "jpalmerpy@goo.gl", - "csullivanpz@godaddy.com", - "rhughesq0@seesaa.net", - "tmartinezq1@miibeian.gov.cn", - "tmillerq2@1und1.de", - "apierceq3@jimdo.com", - "jtaylorq4@cocolog-nifty.com", - "mwebbq5@squidoo.com", - "chughesq6@mediafire.com", - "bandersonq7@phpbb.com", - "arobinsonq8@harvard.edu", - "lmitchellq9@themeforest.net", - "edayqa@shareasale.com", - "bhicksqb@miibeian.gov.cn", - "mwilliamsonqc@wired.com", - "egibsonqd@cisco.com", - "bbradleyqe@weebly.com", - "clawsonqf@blogger.com", - "woliverqg@theglobeandmail.com", - "cperryqh@youtube.com", - "jbowmanqi@intel.com", - "wfernandezqj@dropbox.com", - "bgarrettqk@whitehouse.gov", - "barmstrongql@shop-pro.jp", - "wmasonqm@newsvine.com", - "rwestqn@baidu.com", - "cpayneqo@cdbaby.com", - "awashingtonqp@cornell.edu", - "ehayesqq@multiply.com", - "jwatkinsqr@amazonaws.com", - "cwilsonqs@php.net", - "wsimsqt@google.fr", - "pmedinaqu@chron.com", - "mperezqv@businessinsider.com", - "rbellqw@stanford.edu", - "mgibsonqx@booking.com", - "bmyersqy@etsy.com", - "tyoungqz@topsy.com", - "dberryr0@time.com", - "ephillipsr1@samsung.com", - "nmoralesr2@independent.co.uk", - "agomezr3@wordpress.com", - "tboydr4@dropbox.com", - "lwatsonr5@usgs.gov", - "tcooperr6@imgur.com", - "rmillerr7@foxnews.com", - "amoralesr8@nbcnews.com", - "pwellsr9@zdnet.com", - "mfieldsra@w3.org", - "bhansonrb@altervista.org", - "mdiazrc@guardian.co.uk", - "rwellsrd@walmart.com", - "jchapmanre@marketwatch.com", - "promerorf@nasa.gov", - "jhansonrg@amazonaws.com", - "shansonrh@about.com", - "rperezri@alibaba.com", - "jmeyerrj@elpais.com", - "afosterrk@cnet.com", - "bhallrl@cpanel.net", - "sreynoldsrm@wufoo.com", - "jfreemanrn@csmonitor.com", - "esanchezro@businessinsider.com", - "mlynchrp@reverbnation.com", - "lclarkrq@xinhuanet.com", - "rrussellrr@bloomberg.com" - ], - "status":[ - "unsubscribed", - "confirmed", - "subscribed", - "unsubscribed", - "unsubscribed", - "confirmed", - "confirmed", - "unconfirmed", - "confirmed", - "unsubscribed", - "confirmed", - "unconfirmed", - "subscribed", - "subscribed", - "subscribed", - "confirmed", - "unsubscribed", - "confirmed", - "confirmed", - "unsubscribed", - "subscribed", - "unconfirmed", - "unsubscribed", - "unconfirmed", - "unsubscribed", - "unconfirmed", - "subscribed", - "unconfirmed", - "unsubscribed", - "unconfirmed", - "confirmed", - "confirmed", - "confirmed", - "confirmed", - "confirmed", - "confirmed", - "unsubscribed", - "subscribed", - "unsubscribed", - "subscribed", - "confirmed", - "confirmed", - "confirmed", - "confirmed", - "unconfirmed", - "confirmed", - "unsubscribed", - "unsubscribed", - "unsubscribed", - "unsubscribed", - "unconfirmed", - "unsubscribed", - "unconfirmed", - "subscribed", - "confirmed", - "unconfirmed", - "confirmed", - "subscribed", - "subscribed", - "unconfirmed", - "unconfirmed", - "confirmed", - "subscribed", - "unconfirmed", - "unsubscribed", - "unsubscribed", - "subscribed", - "unconfirmed", - "subscribed", - "subscribed", - "subscribed", - "confirmed", - "confirmed", - "confirmed", - "confirmed", - "unconfirmed", - "unsubscribed", - "unsubscribed", - "unconfirmed", - "confirmed", - "unconfirmed", - "unsubscribed", - "subscribed", - "confirmed", - "confirmed", - "unconfirmed", - "confirmed", - "unconfirmed", - "subscribed", - "confirmed", - "unconfirmed", - "subscribed", - "subscribed", - "unsubscribed", - "confirmed", - "unsubscribed", - "confirmed", - "unconfirmed", - "subscribed", - "subscribed", - "unconfirmed", - "unconfirmed", - "confirmed", - "unconfirmed", - "subscribed", - "subscribed", - "unconfirmed", - "unconfirmed", - "unconfirmed", - "confirmed", - "unsubscribed", - "unconfirmed", - "confirmed", - "unconfirmed", - "subscribed", - "confirmed", - "subscribed", - "unsubscribed", - "confirmed", - "unconfirmed", - "unconfirmed", - "unconfirmed", - "unsubscribed", - "unsubscribed", - "subscribed", - "subscribed", - "subscribed", - "unsubscribed", - "confirmed", - "confirmed", - "unsubscribed", - "unsubscribed", - "confirmed", - "unsubscribed", - "subscribed", - "unsubscribed", - "confirmed", - "confirmed", - "unconfirmed", - "unconfirmed", - "unconfirmed", - "subscribed", - "confirmed", - "confirmed", - "confirmed", - "unconfirmed", - "confirmed", - "unsubscribed", - "unconfirmed", - "subscribed", - "unsubscribed", - "confirmed", - "subscribed", - "subscribed", - "unsubscribed", - "subscribed", - "confirmed", - "unconfirmed", - "unsubscribed", - "subscribed", - "unconfirmed", - "unconfirmed", - "confirmed", - "subscribed", - "unconfirmed", - "confirmed", - "unsubscribed", - "subscribed", - "unconfirmed", - "unsubscribed", - "unconfirmed", - "unsubscribed", - "unsubscribed", - "subscribed", - "confirmed", - "unsubscribed", - "confirmed", - "subscribed", - "unconfirmed", - "confirmed", - "subscribed", - "confirmed", - "unsubscribed", - "unconfirmed", - "subscribed", - "unconfirmed", - "unconfirmed", - "unconfirmed", - "subscribed", - "unconfirmed", - "subscribed", - "confirmed", - "subscribed", - "unconfirmed", - "unsubscribed", - "unconfirmed", - "unsubscribed", - "unsubscribed", - "unconfirmed", - "unsubscribed", - "confirmed", - "unconfirmed", - "unconfirmed", - "subscribed", - "unconfirmed", - "unsubscribed", - "confirmed", - "unsubscribed", - "confirmed", - "unconfirmed", - "confirmed", - "unsubscribed", - "unsubscribed", - "unconfirmed", - "subscribed", - "unconfirmed", - "confirmed", - "subscribed", - "subscribed", - "confirmed", - "subscribed", - "confirmed", - "unsubscribed", - "unsubscribed", - "confirmed", - "unconfirmed", - "subscribed", - "subscribed", - "subscribed", - "confirmed", - "subscribed", - "unsubscribed", - "confirmed", - "unsubscribed", - "subscribed", - "confirmed", - "unconfirmed", - "confirmed", - "subscribed", - "confirmed", - "unsubscribed", - "subscribed", - "subscribed", - "confirmed", - "unconfirmed", - "subscribed", - "subscribed", - "unconfirmed", - "confirmed", - "subscribed", - "confirmed", - "confirmed", - "unsubscribed", - "subscribed", - "unsubscribed", - "unsubscribed", - "unconfirmed", - "subscribed", - "unsubscribed", - "unsubscribed", - "confirmed", - "subscribed", - "unsubscribed", - "subscribed", - "unconfirmed", - "unsubscribed", - "unconfirmed", - "unsubscribed", - "unsubscribed", - "subscribed", - "unconfirmed", - "unsubscribed", - "unconfirmed", - "unconfirmed", - "confirmed", - "unconfirmed", - "unsubscribed", - "unconfirmed", - "subscribed", - "confirmed", - "subscribed", - "subscribed", - "unconfirmed", - "confirmed", - "unsubscribed", - "confirmed", - "subscribed", - "unsubscribed", - "subscribed", - "unsubscribed", - "unconfirmed", - "unsubscribed", - "unsubscribed", - "subscribed", - "confirmed", - "unsubscribed", - "unconfirmed", - "confirmed", - "subscribed", - "confirmed", - "unsubscribed", - "confirmed", - "unsubscribed", - "confirmed", - "confirmed", - "confirmed", - "subscribed", - "unsubscribed", - "unsubscribed", - "unconfirmed", - "confirmed", - "confirmed", - "unconfirmed", - "unconfirmed", - "unsubscribed", - "unsubscribed", - "confirmed", - "confirmed", - "unsubscribed", - "confirmed", - "unsubscribed", - "unconfirmed", - "unsubscribed", - "confirmed", - "unconfirmed", - "unsubscribed", - "subscribed", - "unsubscribed", - "unsubscribed", - "subscribed", - "subscribed", - "unconfirmed", - "subscribed", - "unconfirmed", - "unconfirmed", - "confirmed", - "unsubscribed", - "unconfirmed", - "unconfirmed", - "unconfirmed", - "confirmed", - "confirmed", - "confirmed", - "subscribed", - "unsubscribed", - "unconfirmed", - "subscribed", - "subscribed", - "subscribed", - "unconfirmed", - "unsubscribed", - "unconfirmed", - "confirmed", - "confirmed", - "confirmed", - "subscribed", - "confirmed", - "unsubscribed", - "confirmed", - "unsubscribed", - "confirmed", - "unconfirmed", - "subscribed", - "unsubscribed", - "unconfirmed", - "confirmed", - "subscribed", - "unconfirmed", - "subscribed", - "confirmed", - "subscribed", - "confirmed", - "unconfirmed", - "confirmed", - "confirmed", - "confirmed", - "subscribed", - "subscribed", - "confirmed", - "confirmed", - "subscribed", - "unsubscribed", - "subscribed", - "confirmed", - "unconfirmed", - "confirmed", - "unsubscribed", - "unsubscribed", - "subscribed", - "confirmed", - "unconfirmed", - "subscribed", - "unsubscribed", - "subscribed", - "subscribed", - "unsubscribed", - "confirmed", - "unsubscribed", - "subscribed", - "unsubscribed", - "unconfirmed", - "unconfirmed", - "subscribed", - "confirmed", - "unconfirmed", - "subscribed", - "subscribed", - "unconfirmed", - "unsubscribed", - "confirmed", - "subscribed", - "subscribed", - "confirmed", - "unconfirmed", - "unconfirmed", - "confirmed", - "confirmed", - "unsubscribed", - "unconfirmed", - "confirmed", - "subscribed", - "unconfirmed", - "unconfirmed", - "subscribed", - "confirmed", - "unsubscribed", - "unconfirmed", - "unconfirmed", - "unsubscribed", - "subscribed", - "unsubscribed", - "confirmed", - "unconfirmed", - "confirmed", - "unsubscribed", - "confirmed", - "unconfirmed", - "unsubscribed", - "confirmed", - "confirmed", - "confirmed", - "subscribed", - "subscribed", - "unconfirmed", - "unsubscribed", - "unconfirmed", - "unsubscribed", - "confirmed", - "confirmed", - "subscribed", - "unconfirmed", - "unsubscribed", - "unsubscribed", - "subscribed", - "unsubscribed", - "unsubscribed", - "unsubscribed", - "unsubscribed", - "confirmed", - "unconfirmed", - "unconfirmed", - "subscribed", - "unconfirmed", - "confirmed", - "subscribed", - "unconfirmed", - "subscribed", - "confirmed", - "subscribed", - "subscribed", - "subscribed", - "unsubscribed", - "unsubscribed", - "unsubscribed", - "unconfirmed", - "confirmed", - "confirmed", - "subscribed", - "subscribed", - "unconfirmed", - "confirmed", - "subscribed", - "subscribed", - "subscribed", - "unconfirmed", - "confirmed", - "subscribed", - "confirmed", - "confirmed", - "confirmed", - "subscribed", - "unsubscribed", - "unconfirmed", - "confirmed", - "unsubscribed", - "unconfirmed", - "confirmed", - "subscribed", - "confirmed", - "unconfirmed", - "subscribed", - "unconfirmed", - "confirmed", - "unsubscribed", - "unconfirmed", - "subscribed", - "confirmed", - "subscribed", - "unconfirmed", - "confirmed", - "unconfirmed", - "unconfirmed", - "subscribed", - "confirmed", - "subscribed", - "unsubscribed", - "unsubscribed", - "unsubscribed", - "confirmed", - "confirmed", - "unconfirmed", - "subscribed", - "unconfirmed", - "confirmed", - "unsubscribed", - "unsubscribed", - "subscribed", - "subscribed", - "unconfirmed", - "unsubscribed", - "unconfirmed", - "subscribed", - "confirmed", - "subscribed", - "subscribed", - "subscribed", - "confirmed", - "unconfirmed", - "subscribed", - "unconfirmed", - "unsubscribed", - "unconfirmed", - "confirmed", - "unconfirmed", - "unconfirmed", - "confirmed", - "unconfirmed", - "unconfirmed", - "unsubscribed", - "confirmed", - "subscribed", - "confirmed", - "unsubscribed", - "subscribed", - "unconfirmed", - "subscribed", - "unconfirmed", - "unsubscribed", - "unconfirmed", - "unsubscribed", - "confirmed", - "subscribed", - "subscribed", - "subscribed", - "unsubscribed", - "unsubscribed", - "unsubscribed", - "unsubscribed", - "confirmed", - "subscribed", - "unconfirmed", - "unconfirmed", - "unconfirmed", - "confirmed", - "subscribed", - "unsubscribed", - "unconfirmed", - "confirmed", - "subscribed", - "confirmed", - "unconfirmed", - "unsubscribed", - "confirmed", - "unconfirmed", - "unsubscribed", - "unconfirmed", - "confirmed", - "subscribed", - "confirmed", - "subscribed", - "unconfirmed", - "subscribed", - "confirmed", - "unsubscribed", - "confirmed", - "confirmed", - "confirmed", - "subscribed", - "unsubscribed", - "confirmed", - "confirmed", - "subscribed", - "confirmed", - "confirmed", - "subscribed", - "unconfirmed", - "subscribed", - "unconfirmed", - "confirmed", - "confirmed", - "confirmed", - "unsubscribed", - "confirmed", - "confirmed", - "confirmed", - "confirmed", - "unsubscribed", - "unconfirmed", - "confirmed", - "unconfirmed", - "confirmed", - "subscribed", - "unconfirmed", - "subscribed", - "confirmed", - "confirmed", - "subscribed", - "unconfirmed", - "unsubscribed", - "subscribed", - "unconfirmed", - "unsubscribed", - "unsubscribed", - "unsubscribed", - "subscribed", - "confirmed", - "unconfirmed", - "confirmed", - "subscribed", - "confirmed", - "unconfirmed", - "confirmed", - "confirmed", - "unconfirmed", - "unsubscribed", - "subscribed", - "confirmed", - "subscribed", - "subscribed", - "subscribed", - "unsubscribed", - "subscribed", - "confirmed", - "unsubscribed", - "confirmed", - "unsubscribed", - "subscribed", - "unconfirmed", - "confirmed", - "unsubscribed", - "confirmed", - "confirmed", - "subscribed", - "unsubscribed", - "unsubscribed", - "subscribed", - "unsubscribed", - "unsubscribed", - "confirmed", - "confirmed", - "confirmed", - "subscribed", - "subscribed", - "unconfirmed", - "unsubscribed", - "confirmed", - "subscribed", - "subscribed", - "confirmed", - "subscribed", - "unsubscribed", - "unconfirmed", - "subscribed", - "confirmed", - "confirmed", - "confirmed", - "unsubscribed", - "subscribed", - "subscribed", - "confirmed", - "subscribed", - "subscribed", - "confirmed", - "unsubscribed", - "unconfirmed", - "unconfirmed", - "confirmed", - "unconfirmed", - "subscribed", - "unsubscribed", - "unconfirmed", - "confirmed", - "unsubscribed", - "unconfirmed", - "unconfirmed", - "subscribed", - "unconfirmed", - "confirmed", - "subscribed", - "subscribed", - "subscribed", - "subscribed", - "subscribed", - "confirmed", - "unconfirmed", - "subscribed", - "unconfirmed", - "unconfirmed", - "unsubscribed", - "confirmed", - "unsubscribed", - "unconfirmed", - "unconfirmed", - "unconfirmed", - "confirmed", - "subscribed", - "unconfirmed", - "confirmed", - "subscribed", - "confirmed", - "unconfirmed", - "unconfirmed", - "confirmed", - "unconfirmed", - "unconfirmed", - "unconfirmed", - "confirmed", - "unsubscribed", - "subscribed", - "unsubscribed", - "unsubscribed", - "confirmed", - "unconfirmed", - "unsubscribed", - "subscribed", - "unconfirmed", - "unsubscribed", - "confirmed", - "unconfirmed", - "unsubscribed", - "confirmed", - "confirmed", - "subscribed", - "unconfirmed", - "subscribed", - "confirmed", - "unconfirmed", - "unsubscribed", - "unsubscribed", - "confirmed", - "unsubscribed", - "subscribed", - "confirmed", - "confirmed", - "unsubscribed", - "confirmed", - "unsubscribed", - "subscribed", - "subscribed", - "unsubscribed", - "unconfirmed", - "unsubscribed", - "confirmed", - "subscribed", - "subscribed", - "unconfirmed", - "confirmed", - "confirmed", - "confirmed", - "unsubscribed", - "confirmed", - "unconfirmed", - "unsubscribed", - "subscribed", - "unsubscribed", - "unsubscribed", - "unconfirmed", - "confirmed", - "unconfirmed", - "confirmed", - "confirmed", - "unconfirmed", - "subscribed", - "unsubscribed", - "confirmed", - "confirmed", - "subscribed", - "confirmed", - "unconfirmed", - "subscribed", - "subscribed", - "unconfirmed", - "subscribed", - "unconfirmed", - "unconfirmed", - "unsubscribed", - "unsubscribed", - "subscribed", - "subscribed", - "unconfirmed", - "subscribed", - "confirmed", - "confirmed", - "subscribed", - "subscribed", - "unsubscribed", - "subscribed", - "confirmed", - "subscribed", - "unsubscribed", - "confirmed", - "unconfirmed", - "subscribed", - "confirmed", - "unsubscribed", - "confirmed", - "subscribed", - "unconfirmed", - "subscribed", - "confirmed", - "confirmed", - "subscribed", - "unsubscribed", - "unconfirmed", - "subscribed", - "unsubscribed", - "unconfirmed", - "unsubscribed", - "unconfirmed", - "confirmed", - "subscribed", - "unsubscribed", - "confirmed", - "unsubscribed", - "unsubscribed", - "unsubscribed", - "subscribed", - "subscribed", - "unconfirmed", - "unsubscribed", - "confirmed", - "unconfirmed", - "unconfirmed", - "confirmed", - "unsubscribed", - "confirmed", - "unconfirmed", - "subscribed", - "unconfirmed", - "unsubscribed", - "subscribed", - "subscribed", - "unsubscribed", - "unconfirmed", - "confirmed", - "unsubscribed", - "subscribed", - "confirmed", - "unsubscribed", - "subscribed", - "unconfirmed", - "subscribed", - "unsubscribed", - "unsubscribed", - "subscribed", - "confirmed", - "subscribed", - "unsubscribed", - "subscribed", - "subscribed", - "confirmed", - "confirmed", - "unconfirmed", - "unconfirmed", - "confirmed", - "unsubscribed", - "unconfirmed", - "confirmed", - "unsubscribed", - "confirmed", - "unsubscribed", - "unsubscribed", - "unconfirmed", - "unsubscribed", - "confirmed", - "unconfirmed", - "unconfirmed", - "unsubscribed", - "subscribed", - "subscribed", - "subscribed", - "unconfirmed", - "confirmed", - "unsubscribed", - "unconfirmed", - "unconfirmed", - "confirmed", - "unsubscribed", - "unsubscribed", - "unsubscribed", - "unconfirmed", - "unsubscribed", - "unconfirmed", - "subscribed", - "confirmed", - "unsubscribed", - "unconfirmed", - "unconfirmed", - "unconfirmed", - "confirmed", - "subscribed", - "subscribed", - "unsubscribed", - "subscribed", - "unconfirmed", - "unconfirmed", - "subscribed", - "unsubscribed", - "confirmed", - "unsubscribed", - "confirmed", - "subscribed", - "subscribed", - "unconfirmed", - "confirmed", - "confirmed", - "unconfirmed", - "subscribed", - "unconfirmed", - "unsubscribed", - "subscribed", - "unconfirmed", - "unsubscribed", - "confirmed", - "confirmed", - "unconfirmed", - "confirmed", - "unsubscribed", - "unsubscribed", - "subscribed", - "unsubscribed", - "subscribed", - "unsubscribed", - "unsubscribed", - "subscribed", - "subscribed", - "confirmed", - "subscribed", - "unconfirmed", - "unconfirmed", - "unconfirmed", - "unconfirmed", - "confirmed", - "confirmed", - "unconfirmed", - "confirmed", - "unsubscribed", - "unsubscribed", - "confirmed", - "unsubscribed", - "unsubscribed", - "unsubscribed", - "unsubscribed", - "subscribed", - "unsubscribed", - "unconfirmed", - "subscribed", - "unconfirmed", - "subscribed", - "unconfirmed", - "unsubscribed", - "unconfirmed", - "confirmed", - "subscribed", - "unsubscribed", - "subscribed", - "confirmed", - "unconfirmed", - "subscribed", - "unsubscribed", - "unsubscribed", - "unconfirmed", - "confirmed", - "unconfirmed", - "confirmed", - "subscribed", - "confirmed" - ] - }, - "segments":[ - "195" - ], - "updateSubscribers":true -} \ No newline at end of file diff --git a/tests/unit/Import/MailChimpCest.php b/tests/unit/Import/MailChimpCest.php deleted file mode 100644 index 8006e6f1ec..0000000000 --- a/tests/unit/Import/MailChimpCest.php +++ /dev/null @@ -1,77 +0,0 @@ -APIKey = 'd91ae3861c4829c40bd469e40d6c0e7e-us6'; - $this->mailChimp = new MailChimp($this->APIKey); - $this->lists = array( - 'edf74586e9', - '8b66f7fac8' - ); - } - - function itCanGetAPIKey() { - expect($this->mailChimp->getAPIKey($this->APIKey))->equals($this->APIKey); - expect($this->mailChimp->getAPIKey('somekey'))->false(); - } - - function itCanGetDatacenter() { - expect($this->mailChimp->getDataCenter($this->APIKey))->equals( - explode('-', $this->APIKey)[1] - ); - } - - function itFailsWithIncorrectAPIKey() { - $mailChimp = clone($this->mailChimp); - $mailChimp->APIKey = false; - $lists = $mailChimp->getLists(); - expect($lists['result'])->false(); - expect($lists['error'])->contains('API'); - $subscribers = $mailChimp->getLists(); - expect($subscribers['result'])->false(); - expect($subscribers['error'])->contains('API'); - } - - function itCanGetLists() { - $lists = $this->mailChimp->getLists(); - expect($lists['result'])->true(); - expect(count($lists['data']))->equals(2); - expect(isset($lists['data'][0]['id']))->true(); - expect(isset($lists['data'][0]['name']))->true(); - } - - function itFailsWithIncorrectLists() { - $subscribers = $this->mailChimp->getSubscribers(); - expect($subscribers['result'])->false(); - expect($subscribers['error'])->contains('lists'); - $subscribers = $this->mailChimp->getSubscribers(array(12)); - expect($subscribers['result'])->false(); - expect($subscribers['error'])->contains('lists'); - } - - function itCanGetSubscribers() { - $subscribers = $this->mailChimp->getSubscribers(array($this->lists[0])); - expect($subscribers['result'])->true(); - expect(isset($subscribers['data']['invalid']))->true(); - expect(isset($subscribers['data']['duplicate']))->true(); - expect(isset($subscribers['data']['header']))->true(); - expect(count($subscribers['data']['subscribers']))->equals(1); - expect($subscribers['data']['count'])->equals(1); - } - - function itFailsWhenListHeadersDontMatch() { - $subscribers = $this->mailChimp->getSubscribers($this->lists); - expect($subscribers['result'])->false(); - expect($subscribers['error'])->contains('header'); - } - - function itFailWhenSubscribersDataTooLarge() { - $mailChimp = clone($this->mailChimp); - $mailChimp->maxPostSize = 10; - $subscribers = $mailChimp->getSubscribers(array('8b66f7fac8')); - expect($subscribers['result'])->false(); - expect($subscribers['error'])->contains('large'); - } -} \ No newline at end of file diff --git a/tests/unit/Mailer/API/AmazonSESCest.php b/tests/unit/Mailer/API/AmazonSESCest.php deleted file mode 100644 index bce41944a0..0000000000 --- a/tests/unit/Mailer/API/AmazonSESCest.php +++ /dev/null @@ -1,155 +0,0 @@ -settings = array( - 'name' => 'AmazonSES', - 'type' => 'API', - 'access_key' => 'AKIAJM6Y5HMGXBLDNSRA', - 'secret_key' => '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', - 'region' => 'us-east-1', - ); - $this->from = 'Sender '; - $this->mailer = new AmazonSES( - $this->settings['region'], - $this->settings['access_key'], - $this->settings['secret_key'], - $this->from); - $this->subscriber = 'Recipient '; - $this->newsletter = array( - 'subject' => 'testing AmazonSES', - 'body' => array( - 'html' => 'HTML body', - 'text' => 'TEXT body' - ) - ); - } - - function itsConstructorWorks() { - expect($this->mailer->awsEndpoint) - ->equals( - sprintf('email.%s.amazonaws.com', $this->settings['region']) - ); - expect($this->mailer->url) ->equals( - sprintf('https://email.%s.amazonaws.com', $this->settings['region']) - ); - expect(preg_match('!^\d{8}T\d{6}Z$!', $this->mailer->date))->equals(1); - expect(preg_match('!^\d{8}$!', $this->mailer->dateWithoutTime))->equals(1); - } - - function itCanGenerateBody() { - $body = $this->mailer->getBody($this->newsletter, $this->subscriber); - expect($body['Action'])->equals('SendEmail'); - expect($body['Version'])->equals('2010-12-01'); - expect($body['Source'])->equals($this->from); - expect($body['Destination.ToAddresses.member.1']) - ->contains($this->subscriber); - expect($body['Message.Subject.Data']) - ->equals($this->newsletter['subject']); - expect($body['Message.Body.Html.Data']) - ->equals($this->newsletter['body']['html']); - expect($body['Message.Body.Text.Data']) - ->equals($this->newsletter['body']['text']); - expect($body['ReturnPath'])->equals($this->from); - } - - function itCanCreateRequest() { - $request = $this->mailer->request($this->newsletter, $this->subscriber); - $body = $this->mailer->getBody($this->newsletter, $this->subscriber); - expect($request['timeout'])->equals(10); - expect($request['httpversion'])->equals('1.1'); - expect($request['method'])->equals('POST'); - expect($request['headers']['Host'])->equals($this->mailer->awsEndpoint); - expect($request['headers']['Authorization']) - ->equals($this->mailer->signRequest($body)); - expect($request['headers']['X-Amz-Date'])->equals($this->mailer->date); - expect($request['body'])->equals(urldecode(http_build_query($body))); - } - - function itCanCreateCanonicalRequest() { - $body = $this->mailer->getBody($this->newsletter, $this->subscriber); - $canonicalRequest = explode( - "\n", - $this->mailer->getCanonicalRequest($body) - ); - expect($canonicalRequest) - ->equals( - array( - 'POST', - '/', - '', - 'host:' . $this->mailer->awsEndpoint, - 'x-amz-date:' . $this->mailer->date, - '', - 'host;x-amz-date', - hash($this->mailer->hashAlgorithm, - urldecode(http_build_query($body)) - ) - ) - ); - } - - function itCanCreateCredentialScope() { - $credentialScope = $this->mailer->getCredentialScope(); - expect($credentialScope) - ->equals( - $this->mailer->dateWithoutTime . '/' . - $this->mailer->awsRegion . '/' . - $this->mailer->awsService . '/' . - $this->mailer->awsTerminationString - ); - } - - function itCanCreateStringToSign() { - $body = $this->mailer->getBody($this->newsletter, $this->subscriber); - $credentialScope = $this->mailer->getCredentialScope(); - $canonicalRequest = $this->mailer->getCanonicalRequest($body); - $stringToSing = $this->mailer->createStringToSign( - $credentialScope, - $canonicalRequest - ); - $stringToSing = explode("\n", $stringToSing); - expect($stringToSing) - ->equals( - array( - $this->mailer->awsSigningAlgorithm, - $this->mailer->date, - $credentialScope, - hash($this->mailer->hashAlgorithm, $canonicalRequest) - ) - ); - } - - function itCanSignRequest() { - $body = $this->mailer->getBody($this->newsletter, $this->subscriber); - $signedRequest = $this->mailer->signRequest($body); - expect($signedRequest) - ->contains( - $this->mailer->awsSigningAlgorithm . ' Credential=' . - $this->mailer->awsAccessKey . '/' . - $this->mailer->getCredentialScope() . ', ' . - 'SignedHeaders=host;x-amz-date, Signature=' - ); - expect(preg_match('!Signature=[A-Fa-f0-9]{64}$!', $signedRequest)) - ->equals(1); - } - - function itCannotSendWithoutProperAccessKey() { - $this->mailer->awsAccessKey = 'somekey'; - $result = $this->mailer->send( - $this->newsletter, - $this->subscriber - ); - expect($result)->false(); - } - - function itCanSend() { - $result = $this->mailer->send( - $this->newsletter, - $this->subscriber - ); - expect($result)->true(); - } -} diff --git a/tests/unit/Mailer/API/ElasticEmailCest.php b/tests/unit/Mailer/API/ElasticEmailCest.php deleted file mode 100644 index 112df03fce..0000000000 --- a/tests/unit/Mailer/API/ElasticEmailCest.php +++ /dev/null @@ -1,65 +0,0 @@ -settings = array( - 'name' => 'ElasticEmail', - 'type' => 'API', - 'api_key' => '997f1f7f-41de-4d7f-a8cb-86c8481370fa' - ); - $this->fromEmail = 'staff@mailpoet.com'; - $this->fromName = 'Sender'; - $this->mailer = new ElasticEmail( - $this->settings['api_key'], - $this->fromEmail, - $this->fromName - ); - $this->subscriber = 'Recipient '; - $this->newsletter = array( - 'subject' => 'testing ElasticEmail', - 'body' => array( - 'html' => 'HTML body', - 'text' => 'TEXT body' - ) - ); - } - - function itCanGenerateBody() { - $body = $this->mailer->getBody($this->newsletter, $this->subscriber); - expect($body['api_key'])->equals($this->settings['api_key']); - expect($body['from'])->equals($this->fromEmail); - expect($body['from_name'])->equals($this->fromName); - expect($body['to'])->contains($this->subscriber); - expect($body['subject'])->equals($this->newsletter['subject']); - expect($body['body_html'])->equals($this->newsletter['body']['html']); - expect($body['body_text'])->equals($this->newsletter['body']['text']); - } - - function itCanCreateRequest() { - $request = $this->mailer->request($this->newsletter, $this->subscriber); - $body = $this->mailer->getBody($this->newsletter, $this->subscriber); - expect($request['timeout'])->equals(10); - expect($request['httpversion'])->equals('1.0'); - expect($request['method'])->equals('POST'); - expect($request['body'])->equals(urldecode(http_build_query($body))); - } - - function itCannotSendWithoutProperAPIKey() { - $this->mailer->apiKey = 'someapi'; - $result = $this->mailer->send( - $this->newsletter, - $this->subscriber - ); - expect($result)->false(); - } - - function itCanSend() { - $result = $this->mailer->send( - $this->newsletter, - $this->subscriber - ); - expect($result)->true(); - } -} diff --git a/tests/unit/Mailer/API/MailGunCest.php b/tests/unit/Mailer/API/MailGunCest.php deleted file mode 100644 index 85df8e45d1..0000000000 --- a/tests/unit/Mailer/API/MailGunCest.php +++ /dev/null @@ -1,82 +0,0 @@ -settings = array( - 'name' => 'MailGun', - 'type' => 'API', - 'api_key' => 'key-6cf5g5qjzenk-7nodj44gdt8phe6vam2', - 'domain' => 'mrcasual.com' - ); - $this->from = 'Sender '; - $this->mailer = new MailGun( - $this->settings['domain'], - $this->settings['api_key'], - $this->from - ); - $this->subscriber = 'Recipient '; - $this->newsletter = array( - 'subject' => 'testing MailGun', - 'body' => array( - 'html' => 'HTML body', - 'text' => 'TEXT body' - ) - ); - } - - function itCanGenerateBody() { - $body = $this->mailer->getBody($this->newsletter, $this->subscriber); - expect($body['from'])->equals($this->from); - expect($body['to'])->equals($this->subscriber); - expect($body['subject'])->equals($this->newsletter['subject']); - expect($body['html'])->equals($this->newsletter['body']['html']); - expect($body['text'])->equals($this->newsletter['body']['text']); - } - - function itCanDoBasicAuth() { - expect($this->mailer->auth()) - ->equals('Basic ' . base64_encode('api:' . $this->settings['api_key'])); - } - - function itCanCreateRequest() { - $request = $this->mailer->request($this->newsletter, $this->subscriber); - $body = $this->mailer->getBody($this->newsletter, $this->subscriber); - expect($request['timeout'])->equals(10); - expect($request['httpversion'])->equals('1.0'); - expect($request['method'])->equals('POST'); - expect($request['headers']['Content-Type']) - ->equals('application/x-www-form-urlencoded'); - expect($request['headers']['Authorization']) - ->equals('Basic ' . base64_encode('api:' . $this->settings['api_key'])); - expect($request['body'])->equals(urldecode(http_build_query($body))); - } - - function itCannotSendWithoutProperAPIKey() { - $this->mailer->apiKey = 'someapi'; - $result = $this->mailer->send( - $this->newsletter, - $this->subscriber - ); - expect($result)->false(); - } - - function itCannotSendWithoutProperDomain() { - $this->mailer->url = - str_replace($this->settings['domain'], 'somedomain', $this->mailer->url); - $result = $this->mailer->send( - $this->newsletter, - $this->subscriber - ); - expect($result)->false(); - } - - function itCanSend() { - $result = $this->mailer->send( - $this->newsletter, - $this->subscriber - ); - expect($result)->true(); - } -} \ No newline at end of file diff --git a/tests/unit/Mailer/API/MandrillCest.php b/tests/unit/Mailer/API/MandrillCest.php deleted file mode 100644 index be3998d153..0000000000 --- a/tests/unit/Mailer/API/MandrillCest.php +++ /dev/null @@ -1,90 +0,0 @@ -settings = array( - 'name' => 'Mandrill', - 'type' => 'API', - 'api_key' => '692ys1B7REEoZN7R-dYwNA' - ); - $this->fromEmail = 'staff@mailpoet.com'; - $this->fromName = 'Sender'; - $this->mailer = new Mandrill( - $this->settings['api_key'], - $this->fromEmail, - $this->fromName - ); - $this->subscriber = 'Recipient '; - $this->newsletter = array( - 'subject' => 'testing Mandrill', - 'body' => array( - 'html' => 'HTML body', - 'text' => 'TEXT body' - ) - ); - } - - function itCanGenerateBody() { - $subscriber = $this->mailer->processSubscriber($this->subscriber); - $body = $this->mailer->getBody($this->newsletter, $subscriber); - expect($body['key'])->equals($this->settings['api_key']); - expect($body['message']['from_email'])->equals($this->fromEmail); - expect($body['message']['from_name'])->equals($this->fromName); - expect($body['message']['to'])->equals(array($subscriber)); - expect($body['message']['subject'])->equals($this->newsletter['subject']); - expect($body['message']['html'])->equals($this->newsletter['body']['html']); - expect($body['message']['text'])->equals($this->newsletter['body']['text']); - expect($body['async'])->false(); - } - - function itCanCreateRequest() { - $subscriber = $this->mailer->processSubscriber($this->subscriber); - $body = $this->mailer->getBody($this->newsletter, $subscriber); - $request = $this->mailer->request($this->newsletter, $subscriber); - expect($request['timeout'])->equals(10); - expect($request['httpversion'])->equals('1.0'); - expect($request['method'])->equals('POST'); - expect($request['headers']['Content-Type'])->equals('application/json'); - expect($request['body'])->equals(json_encode($body)); - } - - function itCanProcessSubscriber() { - expect($this->mailer->processSubscriber('test@test.com')) - ->equals( - array( - 'email' => 'test@test.com', - 'name' => '' - )); - expect($this->mailer->processSubscriber('First ')) - ->equals( - array( - 'email' => 'test@test.com', - 'name' => 'First' - )); - expect($this->mailer->processSubscriber('First Last ')) - ->equals( - array( - 'email' => 'test@test.com', - 'name' => 'First Last' - )); - } - - function itCannotSendWithoutProperAPIKey() { - $this->mailer->apiKey = 'someapi'; - $result = $this->mailer->send( - $this->newsletter, - $this->subscriber - ); - expect($result)->false(); - } - - function itCanSend() { - $result = $this->mailer->send( - $this->newsletter, - $this->subscriber - ); - expect($result)->true(); - } -} \ No newline at end of file diff --git a/tests/unit/Mailer/API/SendGridCest.php b/tests/unit/Mailer/API/SendGridCest.php deleted file mode 100644 index 720dc8d632..0000000000 --- a/tests/unit/Mailer/API/SendGridCest.php +++ /dev/null @@ -1,71 +0,0 @@ -settings = array( - 'name' => 'SendGrid', - 'type' => 'API', - 'api_key' => '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' - ); - $this->fromEmail = 'staff@mailpoet.com'; - $this->fromName = 'Sender'; - $this->mailer = new SendGrid( - $this->settings['api_key'], - $this->fromEmail, - $this->fromName - ); - $this->subscriber = 'Recipient '; - $this->newsletter = array( - 'subject' => 'testing SendGrid', - 'body' => array( - 'html' => 'HTML body', - 'text' => 'TEXT body' - ) - ); - } - - function itCanGenerateBody() { - $body = $this->mailer->getBody($this->newsletter, $this->subscriber); - expect($body['to'])->contains($this->subscriber); - expect($body['from'])->equals($this->fromEmail); - expect($body['fromname'])->equals($this->fromName); - expect($body['subject'])->equals($this->newsletter['subject']); - expect($body['html'])->equals($this->newsletter['body']['html']); - expect($body['text'])->equals($this->newsletter['body']['text']); - } - - function itCanCreateRequest() { - $body = $this->mailer->getBody($this->newsletter, $this->subscriber); - $request = $this->mailer->request($this->newsletter, $this->subscriber); - expect($request['timeout'])->equals(10); - expect($request['httpversion'])->equals('1.1'); - expect($request['method'])->equals('POST'); - expect($request['headers']['Authorization']) - ->equals('Bearer ' . $this->settings['api_key']); - expect($request['body'])->equals(urldecode(http_build_query($body))); - } - - function itCanDoBasicAuth() { - expect($this->mailer->auth()) - ->equals('Bearer ' . $this->settings['api_key']); - } - - function itCannotSendWithoutProperAPIKey() { - $this->mailer->apiKey = 'someapi'; - $result = $this->mailer->send( - $this->newsletter, - $this->subscriber - ); - expect($result)->false(); - } - - function itCanSend() { - $result = $this->mailer->send( - $this->newsletter, - $this->subscriber - ); - expect($result)->true(); - } -} diff --git a/tests/unit/Mailer/MailPoetCest.php b/tests/unit/Mailer/MailPoetCest.php deleted file mode 100644 index 999e387050..0000000000 --- a/tests/unit/Mailer/MailPoetCest.php +++ /dev/null @@ -1,95 +0,0 @@ -settings = array( - 'name' => 'MailPoet', - 'api_key' => 'dhNSqj1XHkVltIliyQDvMiKzQShOA5rs0m_DdRUVZHU' - ); - $this->fromEmail = 'staff@mailpoet.com'; - $this->fromName = 'Sender'; - $this->mailer = new MailPoet( - $this->settings['api_key'], - $this->fromEmail, - $this->fromName - ); - $this->subscriber = 'Recipient '; - $this->newsletter = array( - 'subject' => 'testing MailPoet', - 'body' => array( - 'html' => 'HTML body', - 'text' => 'TEXT body' - ) - ); - } - - function itCanGenerateBody() { - $subscriber = $this->mailer->processSubscriber($this->subscriber); - $body = $this->mailer->getBody($this->newsletter, $subscriber); - expect($body['to']['address'])->equals($subscriber['email']); - expect($body['to']['name'])->equals($subscriber['name']); - expect($body['from']['address'])->equals($this->fromEmail); - expect($body['subject'])->equals($this->newsletter['subject']); - expect($body['html'])->equals($this->newsletter['body']['html']); - expect($body['text'])->equals($this->newsletter['body']['text']); - } - - function itCanCreateRequest() { - $subscriber = $this->mailer->processSubscriber( - 'Recipient ' - ); - $body = array($this->mailer->getBody($this->newsletter, $subscriber)); - $request = $this->mailer->request($this->newsletter, $subscriber); - expect($request['timeout'])->equals(10); - expect($request['httpversion'])->equals('1.0'); - expect($request['method'])->equals('POST'); - expect($request['headers']['Content-Type'])->equals('application/json'); - expect($request['headers']['Authorization'])->equals($this->mailer->auth()); - expect($request['body'])->equals(json_encode($body)); - } - - function itCanProcessSubscriber() { - expect($this->mailer->processSubscriber('test@test.com')) - ->equals( - array( - 'email' => 'test@test.com', - 'name' => '' - )); - expect($this->mailer->processSubscriber('First ')) - ->equals( - array( - 'email' => 'test@test.com', - 'name' => 'First' - )); - expect($this->mailer->processSubscriber('First Last ')) - ->equals( - array( - 'email' => 'test@test.com', - 'name' => 'First Last' - )); - } - - function itCanDoBasicAuth() { - expect($this->mailer->auth()) - ->equals('Basic ' . base64_encode('api:' . $this->settings['api_key'])); - } - - function itCannotSendWithoutProperAPIKey() { - $this->mailer->apiKey = 'someapi'; - $result = $this->mailer->send( - $this->newsletter, - $this->subscriber - ); - expect($result)->false(); - } - - function itCanSend() { - $result = $this->mailer->send( - $this->newsletter, - $this->subscriber - ); - expect($result)->true(); - } -} diff --git a/tests/unit/Mailer/SMTPCest.php b/tests/unit/Mailer/SMTPCest.php deleted file mode 100644 index 7fd61532ad..0000000000 --- a/tests/unit/Mailer/SMTPCest.php +++ /dev/null @@ -1,91 +0,0 @@ -settings = array( - 'name' => 'SMTP', - 'host' => 'email-smtp.us-west-2.amazonaws.com', - 'port' => 587, - 'authentication' => array( - 'login' => 'AKIAIGPBLH6JWG5VCBQQ', - 'password' => 'AudVHXHaYkvr54veCzqiqOxDiMMyfQW3/V6F1tYzGXY3' - ), - 'encryption' => 'tls' - ); - $this->fromEmail = 'staff@mailpoet.com'; - $this->fromName = 'Sender'; - $this->mailer = new SMTP( - $this->settings['host'], - $this->settings['port'], - $this->settings['authentication'], - $this->settings['encryption'], - $this->fromEmail, - $this->fromName - ); - $this->subscriber = 'Recipient '; - $this->newsletter = array( - 'subject' => 'testing SMTP', - 'body' => array( - 'html' => 'HTML body', - 'text' => 'TEXT body' - ) - ); - } - - function itCanBuildMailer() { - $mailer = $this->mailer->buildMailer(); - expect($mailer->getTransport()->getHost()) - ->equals($this->settings['host']); - expect($mailer->getTransport()->getPort()) - ->equals($this->settings['port']); - expect($mailer->getTransport()->getUsername()) - ->equals($this->settings['authentication']['login']); - expect($mailer->getTransport()->getPassword()) - ->equals($this->settings['authentication']['password']); - expect($mailer->getTransport()->getEncryption()) - ->equals($this->settings['encryption']); - } - - function itCanCreateMessage() { - $message = $this->mailer->createMessage($this->newsletter, $this->subscriber); - expect($message->getTo()) - ->equals(array('mailpoet-phoenix-test@mailinator.com' => 'Recipient')); - expect($message->getFrom()) - ->equals(array($this->fromEmail => $this->fromName)); - expect($message->getSubject()) - ->equals($this->newsletter['subject']); - expect($message->getBody()) - ->equals($this->newsletter['body']['html']); - expect($message->getChildren()[0]->getContentType()) - ->equals('text/plain'); - } - - function itCanProcessSubscriber() { - expect($this->mailer->processSubscriber('test@test.com')) - ->equals(array('test@test.com' => '')); - expect($this->mailer->processSubscriber('First ')) - ->equals(array('test@test.com' => 'First')); - expect($this->mailer->processSubscriber('First Last ')) - ->equals(array('test@test.com' => 'First Last')); - } - - function itCantSentWithoutProperAuthentication() { - $this->mailer->authentication['login'] = 'someone'; - $this->mailer->mailer = $this->mailer->buildMailer(); - $result = $this->mailer->send( - $this->newsletter, - $this->subscriber - ); - expect($result)->false(); - } - - function itCanSend() { - $result = $this->mailer->send( - $this->newsletter, - $this->subscriber - ); - expect($result)->true(); - } -} \ No newline at end of file diff --git a/tests/unit/Mailer/WPMailCest.php b/tests/unit/Mailer/WPMailCest.php deleted file mode 100644 index 68310a52a0..0000000000 --- a/tests/unit/Mailer/WPMailCest.php +++ /dev/null @@ -1,70 +0,0 @@ -settings = array( - 'name' => 'WPMail' - ); - $this->fromEmail = 'staff@mailpoet.com'; - $this->fromName = 'Sender'; - $this->mailer = new WPMail( - $this->fromEmail, - $this->fromName - ); - $this->subscriber = 'Recipient '; - $this->newsletter = array( - 'subject' => 'testing SMTP', - 'body' => array( - 'html' => 'HTML body', - 'text' => 'TEXT body' - ) - ); - } - - function itCanAddFilters() { - $this->mailer->addFilters(); - expect(has_filter('wp_mail_from_name', array( - $this->mailer, - 'setFromName' - )))->notEmpty(); - expect(has_filter('wp_mail_from', array( - $this->mailer, - 'setFromEmail' - )))->notEmpty(); - expect(has_filter('wp_mail_content_type', array( - $this->mailer, - 'setContentType' - )))->notEmpty(); - } - - function itCanRemoveFilters() { - $this->mailer->addFilters(); - $this->mailer->removeFilters(); - expect(has_filter('wp_mail_from_name'))->false(); - expect(has_filter('wp_mail_from'))->false(); - expect(has_filter('wp_mail_content_type'))->false(); - } - - function itCanSetFromName() { - expect($this->mailer->setFromName())->equals($this->fromName); - } - - function itCanSetFromEmail() { - expect($this->mailer->setFromName())->equals($this->fromName); - } - - function itCanSetContentType() { - expect($this->mailer->setContentType())->equals('text/html'); - } - - function itCanSend() { - $_SERVER['SERVER_NAME'] = 'localhost'; - $result = $this->mailer->send( - $this->newsletter, - $this->subscriber - ); - //expect($result)->true(); - } -} \ No newline at end of file diff --git a/tests/unit/Models/SegmentCest.php b/tests/unit/Models/SegmentCest.php index 926b57d6d5..b7d687d9a4 100644 --- a/tests/unit/Models/SegmentCest.php +++ b/tests/unit/Models/SegmentCest.php @@ -171,5 +171,9 @@ class SegmentCest { ->deleteMany(); ORM::forTable(SubscriberSegment::$_table) ->deleteMany(); + ORM::forTable(Newsletter::$_table) + ->deleteMany(); + ORM::forTable(NewsletterSegment::$_table) + ->deleteMany(); } -} \ No newline at end of file +} diff --git a/tests/unit/Router/MailerCest.php b/tests/unit/Router/MailerCest.php deleted file mode 100644 index 2073b0e762..0000000000 --- a/tests/unit/Router/MailerCest.php +++ /dev/null @@ -1,68 +0,0 @@ -router = new Mailer(); - } - - function itCanConstruct() { - expect($this->router->from)->equals('Sender '); - } - - function itCanTransformSubscriber() { - expect($this->router->transformSubscriber('test@email.com')) - ->equals('test@email.com'); - expect($this->router->transformSubscriber( - array( - 'email' => 'test@email.com' - )) - )->equals('test@email.com'); - expect($this->router->transformSubscriber( - array( - 'first_name' => 'First', - 'email' => 'test@email.com' - )) - )->equals('First '); - expect($this->router->transformSubscriber( - array( - 'last_name' => 'Last', - 'email' => 'test@email.com' - )) - )->equals('Last '); - expect($this->router->transformSubscriber( - array( - 'first_name' => 'First', - 'last_name' => 'Last', - 'email' => 'test@email.com' - )) - )->equals('First Last '); - } - - function itCanConfigureMailer() { - $mailer = $this->router->buildMailer(); - $class = 'Mailpoet\\Mailer\\' . - ((isset($this->router->mailer['type'])) ? - $this->router->mailer['type'] . '\\' . $this->router->mailer['name'] : - $this->router->mailer['name'] - ); - expect($mailer instanceof $class)->true(); - expect(method_exists($mailer, 'send'))->true(); - } - - function itCanSend() { - $newsletter = array( - 'subject' => 'testing Mailer router with ' . $this->router->mailer['name'], - 'body' => array( - 'html' => 'HTML body', - 'text' => 'TEXT body' - ) - ); - $subscriber = array( - 'first_name' => 'First', - 'last_name' => 'Last', - 'email' => 'mailpoet-phoenix-test@mailinator.com' - ); - expect($this->router->send($newsletter, $subscriber))->true(); - } -} \ No newline at end of file From f6ab0050b24987ce1edf2d44f394b755a2aaa90c Mon Sep 17 00:00:00 2001 From: Jonathan Labreuille Date: Fri, 13 Nov 2015 12:59:49 +0100 Subject: [PATCH 2/4] added welcome page --- lib/Config/Menu.php | 54 ++++++++++++++++++++++++++++----------------- views/welcome.html | 13 +++++++++++ 2 files changed, 47 insertions(+), 20 deletions(-) create mode 100644 views/welcome.html diff --git a/lib/Config/Menu.php b/lib/Config/Menu.php index 803c378f56..f6166f0dc5 100644 --- a/lib/Config/Menu.php +++ b/lib/Config/Menu.php @@ -100,6 +100,7 @@ class Menu { function registered_pages() { global $_registered_pages; $pages = array( + 'mailpoet-welcome' => array($this, 'welcome'), 'mailpoet-form-editor' => array($this, 'formEditor'), 'mailpoet-newsletter-editor' => array($this, 'newletterEditor') ); @@ -117,26 +118,16 @@ class Menu { echo $this->renderer->render('index.html', $data); } + function welcome() { + $data = array( + 'settings' => Setting::getAll(), + 'current_user' => wp_get_current_user() + ); + + echo $this->renderer->render('welcome.html', $data); + } + function settings() { - // flags (available features on WP install) - $flags = array(); - - if(is_multisite()) { - // get multisite registration option - $registration = apply_filters( - 'wpmu_registration_enabled', - get_site_option('registration', 'all') - ); - - // check if users can register - $flags['registration_enabled'] = - !(in_array($registration, array('none', 'blog'))); - } else { - // check if users can register - $flags['registration_enabled'] = - (bool)get_option('users_can_register', false); - } - $settings = Setting::getAll(); // dkim: check if public/private keys have been generated @@ -158,7 +149,7 @@ class Menu { 'settings' => $settings, 'segments' => Segment::getPublished()->findArray(), 'pages' => Pages::getAll(), - 'flags' => $flags, + 'flags' => $this->_getFlags(), 'charsets' => Charsets::getAll(), 'current_user' => wp_get_current_user(), 'permissions' => Permissions::getAll(), @@ -171,6 +162,29 @@ class Menu { echo $this->renderer->render('settings.html', $data); } + private function _getFlags() { + // flags (available features on WP install) + $flags = array(); + + if(is_multisite()) { + // get multisite registration option + $registration = apply_filters( + 'wpmu_registration_enabled', + get_site_option('registration', 'all') + ); + + // check if users can register + $flags['registration_enabled'] = + !(in_array($registration, array('none', 'blog'))); + } else { + // check if users can register + $flags['registration_enabled'] = + (bool)get_option('users_can_register', false); + } + + return $flags; + } + function subscribers() { $data = array(); diff --git a/views/welcome.html b/views/welcome.html new file mode 100644 index 0000000000..9fb09e764a --- /dev/null +++ b/views/welcome.html @@ -0,0 +1,13 @@ +<% extends 'layout.html' %> + +<% block content %> +
+

<%= __('Welcome welcome welcome!') %>

+ +

Settings:

+ <%= dump(settings) %> + +

Current user:

+ <%= dump(current_user) %> +
+<% endblock %> From 162859529e4b5494c9eb6ea7aa1e283cb2ec8faf Mon Sep 17 00:00:00 2001 From: Jonathan Labreuille Date: Fri, 13 Nov 2015 13:56:59 +0100 Subject: [PATCH 3/4] reinstated removed tests --- tests/unit/Import/BootStrapMenuCest.php | 201 + tests/unit/Import/ImportCest.php | 262 + tests/unit/Import/ImportTestData.json | 5003 ++++++++++++++++++++ tests/unit/Import/MailChimpCest.php | 77 + tests/unit/Mailer/API/AmazonSESCest.php | 155 + tests/unit/Mailer/API/ElasticEmailCest.php | 65 + tests/unit/Mailer/API/MailGunCest.php | 82 + tests/unit/Mailer/API/MandrillCest.php | 90 + tests/unit/Mailer/API/SendGridCest.php | 71 + tests/unit/Mailer/MailPoetCest.php | 95 + tests/unit/Mailer/SMTPCest.php | 91 + tests/unit/Mailer/WPMailCest.php | 70 + tests/unit/Router/MailerCest.php | 68 + 13 files changed, 6330 insertions(+) create mode 100644 tests/unit/Import/BootStrapMenuCest.php create mode 100644 tests/unit/Import/ImportCest.php create mode 100644 tests/unit/Import/ImportTestData.json create mode 100644 tests/unit/Import/MailChimpCest.php create mode 100644 tests/unit/Mailer/API/AmazonSESCest.php create mode 100644 tests/unit/Mailer/API/ElasticEmailCest.php create mode 100644 tests/unit/Mailer/API/MailGunCest.php create mode 100644 tests/unit/Mailer/API/MandrillCest.php create mode 100644 tests/unit/Mailer/API/SendGridCest.php create mode 100644 tests/unit/Mailer/MailPoetCest.php create mode 100644 tests/unit/Mailer/SMTPCest.php create mode 100644 tests/unit/Mailer/WPMailCest.php create mode 100644 tests/unit/Router/MailerCest.php diff --git a/tests/unit/Import/BootStrapMenuCest.php b/tests/unit/Import/BootStrapMenuCest.php new file mode 100644 index 0000000000..f448adabc3 --- /dev/null +++ b/tests/unit/Import/BootStrapMenuCest.php @@ -0,0 +1,201 @@ +segmentsData = array( + array( + 'name' => 'first', + 'description' => 'some description' + ), + array( + 'name' => 'second', + 'description' => 'some description' + ) + ); + $this->subscribersData = array( + array( + 'first_name' => 'John', + 'last_name' => 'Mailer', + 'email' => 'john@mailpoet.com' + ), + array( + 'first_name' => 'Mike', + 'last_name' => 'Smith', + 'email' => 'mike@maipoet.com' + ) + ); + $this->customFieldsData = array( + 'name' => 'DOB', + 'type' => 'date', + ); + $customField = CustomField::create(); + $customField->hydrate($this->customFieldsData); + $customField->save(); + $this->bootStrapMenu = new BootstrapMenu(); + } + + function itCanGetSegments() { + $this->_createSegmentsAndSubscribers(); + $segments = $this->bootStrapMenu->getSegments(); + expect(count($segments))->equals(2); + expect($segments[0]['name'])->equals($this->segmentsData[0]['name']); + expect($segments[0]['subscriberCount'])->equals(1); + expect($segments[1]['subscriberCount'])->equals(0); + } + + function itCanGetSubscriberFields() { + $subsriberFields = $this->bootStrapMenu->getSubscriberFields(); + $fields = array( + 'email', + 'first_name', + 'last_name', + 'status' + ); + foreach ($fields as $field) { + expect(in_array($field, array_keys($subsriberFields)))->true(); + } + } + + function itCanFormatSubsciberFields() { + $formattedSubscriberFields = + $this->bootStrapMenu->formatSubscriberFields( + $this->bootStrapMenu->getSubscriberFields() + ); + $fields = array( + 'id', + 'name', + 'type', + 'custom' + ); + foreach ($fields as $field) { + expect(in_array($field, array_keys($formattedSubscriberFields[0]))) + ->true(); + } + expect($formattedSubscriberFields[0]['custom'])->false(); + } + + function itCanGetSubsciberCustomFields() { + $subscriberCustomFields = + $this->bootStrapMenu + ->getSubscriberCustomFields(); + expect($subscriberCustomFields[0]['type']) + ->equals($this->customFieldsData['type']); + } + + function itCanFormatSubsciberCustomFields() { + $formattedSubscriberCustomFields = + $this->bootStrapMenu->formatSubscriberCustomFields( + $this->bootStrapMenu->getSubscriberCustomFields() + ); + $fields = array( + 'id', + 'name', + 'type', + 'custom' + ); + foreach ($fields as $field) { + expect(in_array($field, array_keys($formattedSubscriberCustomFields[0]))) + ->true(); + } + expect($formattedSubscriberCustomFields[0]['custom'])->true(); + } + + function itCanFormatFieldsForSelect2() { + $bootStrapMenu = clone($this->bootStrapMenu); + $select2FieldsWithoutCustomFields = array( + array( + 'name' => 'Actions', + 'children' => array( + array( + 'id' => 'ignore', + 'name' => 'Ignore column...', + ), + array( + 'id' => 'create', + 'name' => 'Create new column...' + ), + ) + ), + array( + 'name' => 'System columns', + 'children' => $bootStrapMenu->formatSubscriberFields( + $bootStrapMenu->subscriberFields + ) + ) + ); + $select2FieldsWithCustomFields = array_merge( + $select2FieldsWithoutCustomFields, + array( + array( + 'name' => __('User columns'), + 'children' => $bootStrapMenu->formatSubscriberCustomFields( + $bootStrapMenu->subscriberCustomFields + ) + ) + )); + $formattedFieldsForSelect2 = $bootStrapMenu->formatFieldsForSelect2( + $bootStrapMenu->subscriberFields, + $bootStrapMenu->subscriberCustomFields + ); + expect($formattedFieldsForSelect2)->equals($select2FieldsWithCustomFields); + $bootStrapMenu->subscriberCustomFields = false; + $formattedFieldsForSelect2 = $bootStrapMenu->formatFieldsForSelect2( + $bootStrapMenu->subscriberFields, + $bootStrapMenu->subscriberCustomFields + ); + expect($formattedFieldsForSelect2)->equals($select2FieldsWithoutCustomFields); + } + + function itCanBootstrap() { + $customField = CustomField::create(); + $customField->hydrate($this->customFieldsData); + $customField->save(); + $bootstrap = clone($this->bootStrapMenu); + $this->_createSegmentsAndSubscribers(); + $bootstrap->segments = $bootstrap->getSegments(); + $menu = $bootstrap->bootstrap(); + expect(count(json_decode($menu['segments'], true)))->equals(2); + // email, first_name, last_name, status + 1 custom field + expect(count(json_decode($menu['subscriberFields'], true)))->equals(5); + // action, system columns, user columns + expect(count(json_decode($menu['subscriberFieldsSelect2'], true)))->equals(3); + expect($menu['maxPostSize'])->equals(ini_get('post_max_size')); + expect($menu['maxPostSizeBytes'])->equals( + (int) ini_get('post_max_size') * 1048576 + ); + } + + function _createSegmentsAndSubscribers() { + foreach ($this->segmentsData as $segmentData) { + $segment = Segment::create(); + $segment->hydrate($segmentData); + $segment->save(); + } + foreach ($this->subscribersData as $index => $subscriberData) { + $subscriber = Subscriber::create(); + $subscriber->hydrate($subscriberData); + $subscriber->save(); + $association = SubscriberSegment::create(); + $association->subscriber_id = $subscriber->id; + $association->segment_id = $index; + $association->save(); + }; + } + + function _after() { + ORM::forTable(Subscriber::$_table) + ->deleteMany(); + ORM::forTable(CustomField::$_table) + ->deleteMany(); + ORM::forTable(Segment::$_table) + ->deleteMany(); + ORM::forTable(SubscriberSegment::$_table) + ->deleteMany(); + } +} \ No newline at end of file diff --git a/tests/unit/Import/ImportCest.php b/tests/unit/Import/ImportCest.php new file mode 100644 index 0000000000..5f4d0a35a7 --- /dev/null +++ b/tests/unit/Import/ImportCest.php @@ -0,0 +1,262 @@ +JSONdata = json_decode(file_get_contents(dirname(__FILE__) . '/ImportTestData.json'), true); + $this->subscribersData = array( + 'first_name' => array( + 'Adam', + 'Mary' + ), + 'last_name' => array( + 'Smith', + 'Jane' + ), + 'email' => array( + 'adam@smith.com', + 'mary@jane.com' + ), + 777 => array( + 'France', + 'Brazil' + ) + ); + $this->subscriberFields = array( + 'first_name', + 'last_name', + 'email' + ); + $this->segments = range(0, 1); + $this->subscriberCustomFields = array(777); + $this->import = new Import($this->JSONdata); + } + + function itCanConstruct() { + expect($this->import->subscribersData)->equals($this->JSONdata['subscribers']); + expect($this->import->segments)->equals($this->JSONdata['segments']); + expect(is_array($this->import->subscriberFields))->true(); + expect(is_array($this->import->subscriberCustomFields))->true(); + expect($this->import->subscribersCount)->equals( + count($this->JSONdata['subscribers']['email']) + ); + expect( + preg_match( + '/\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}/', + $this->import->currentTime) + )->equals(1); + } + + function itCanFilterExistingAndNewSubscribers() { + $subscriber = Subscriber::create(); + $subscriber->hydrate( + array( + 'first_name' => 'Adam', + 'last_name' => 'Smith', + 'email' => 'adam@smith.com' + )); + $subscriber->save(); + list($existing, $new) = $this->import->filterExistingAndNewSubscribers( + $this->subscribersData + ); + expect($existing['email'][0])->equals($this->subscribersData['email'][0]); + expect($new['email'][0])->equals($this->subscribersData['email'][1]); + } + + function itCanExtendSubscribersAndFields() { + expect(in_array('created_at', $this->import->subscriberFields))->false(); + expect(isset($this->import->subscriberFields['created_at']))->false(); + list($subscribers, $fields) = $this->import->extendSubscribersAndFields( + $this->import->subscribersData, + $this->import->subscriberFields + ); + expect(in_array('created_at', $fields))->true(); + expect(isset($this->import->subscriberFields['created_at']))->false(); + expect(count($subscribers['created_at'])) + ->equals($this->import->subscribersCount); + } + + function itCanGetSubscriberFields() { + $data = array( + 'one', + 'two', + 39 + ); + $fields = $this->import->getSubscriberFields($data); + expect($fields)->equals( + array( + 'one', + 'two' + )); + } + + function itCanGetCustomSubscriberFields() { + $data = array( + 'one', + 'two', + 39 + ); + $fields = $this->import->getCustomSubscriberFields($data); + expect($fields)->equals(array(39)); + } + + function itCanFilterSubscriberState() { + $data = array( + 'status' => array( + 'confirmed', + 'subscribed', + 'subscribed', + 'confirmed', + 1, + '1', + 'true', + 'unsubscribed', + -1, + '-1', + 'false', + 'something', + 'else' + ), + ); + $statuses = $this->import->filterSubscriberStatus($data); + expect($statuses)->equals( + array( + 'status' => array( + 1, + 1, + 1, + 1, + 1, + 1, + 1, + -1, + -1, + -1, + -1, + 1, + 1 + ) + ) + ); + } + + function itCanAddOrUpdateSubscribers() { + $subscribersData = $this->subscribersData; + $this->import->createOrUpdateSubscribers( + 'create', + $subscribersData, + $this->subscriberFields, + false + ); + $subscribers = Subscriber::findArray(); + expect(count($subscribers))->equals(2); + expect($subscribers[0]['email']) + ->equals($subscribersData['email'][0]); + $data['first_name'][1] = 'MaryJane'; + $this->import->createOrUpdateSubscribers( + 'update', + $subscribersData, + $this->subscriberFields, + false + ); + $subscribers = Subscriber::findArray(); + expect($subscribers[1]['first_name']) + ->equals($subscribersData['first_name'][1]); + } + + function itCanCreateOrUpdateCustomFields() { + $subscribersData = $this->subscribersData; + $this->import->createOrUpdateSubscribers( + 'create', + $subscribersData, + $this->subscriberFields, + false + ); + $dbSubscribers = Helpers::arrayColumn( + Subscriber::selectMany( + array( + 'id', + 'email' + )) + ->findArray(), + 'email', 'id' + ); + $this->import->createOrUpdateCustomFields( + 'create', + $dbSubscribers, + $subscribersData, + $this->subscriberCustomFields + ); + $subscriberCustomFields = SubscriberCustomField::findArray(); + expect(count($subscriberCustomFields))->equals(2); + expect($subscriberCustomFields[0]['value']) + ->equals($subscribersData[777][0]); + $subscribersData[777][1] = 'Rio'; + $this->import->createOrUpdateCustomFields( + 'update', + $dbSubscribers, + $subscribersData, + $this->subscriberCustomFields + ); + $subscriberCustomFields = SubscriberCustomField::findArray(); + expect($subscriberCustomFields[1]['value']) + ->equals($subscribersData[777][1]); + } + + function itCanaddSubscribersToSegments() { + $subscribersData = $this->subscribersData; + $this->import->createOrUpdateSubscribers( + 'create', + $subscribersData, + $this->subscriberFields, + false + ); + $dbSubscribers = Helpers::arrayColumn( + Subscriber::select('id') + ->findArray(), + 'id' + ); + $this->import->addSubscribersToSegments( + $dbSubscribers, + $this->segments + ); + $subscribersSegments = SubscriberSegment::findArray(); + // 2 subscribers * 2 segments + expect(count($subscribersSegments))->equals(4); + } + + function itCanProcess() { + $import = clone($this->import); + $result = $import->process(); + expect($result['data']['created'])->equals(997); + expect($result['data']['updated'])->equals(0); + $result = $import->process(); + expect($result['data']['created'])->equals(0); + expect($result['data']['updated'])->equals(997); + Subscriber::where('email', 'mbanks4@blinklist.com') + ->findOne() + ->delete(); + $import->currentTime = date('Y-m-d 12:i:s'); + $result = $import->process(); + expect($result['data']['created'])->equals(1); + expect($result['data']['updated'])->equals(996); + $import->updateSubscribers = false; + $result = $import->process(); + expect($result['data']['created'])->equals(0); + expect($result['data']['updated'])->equals(0); + } + + function _after() { + ORM::forTable(Subscriber::$_table) + ->deleteMany(); + ORM::forTable(SubscriberCustomField::$_table) + ->deleteMany(); + ORM::forTable(SubscriberSegment::$_table) + ->deleteMany(); + } +} \ No newline at end of file diff --git a/tests/unit/Import/ImportTestData.json b/tests/unit/Import/ImportTestData.json new file mode 100644 index 0000000000..e906adacd3 --- /dev/null +++ b/tests/unit/Import/ImportTestData.json @@ -0,0 +1,5003 @@ +{ + "subscribers":{ + "39":[ + "United States", + "China", + "Colombia", + "Colombia", + "China", + "Argentina", + "United States", + "Ukraine", + "Finland", + "Russia", + "Indonesia", + "Russia", + "Czech Republic", + "Peru", + "Bulgaria", + "Brazil", + "China", + "Canada", + "Malaysia", + "Vietnam", + "Russia", + "Nicaragua", + "Russia", + "China", + "Guatemala", + "Portugal", + "Philippines", + "Brazil", + "Philippines", + "Brazil", + "Indonesia", + "China", + "Philippines", + "Canada", + "Portugal", + "Paraguay", + "Peru", + "Poland", + "Poland", + "Paraguay", + "Brazil", + "Serbia", + "Japan", + "Thailand", + "Japan", + "United States", + "Laos", + "Portugal", + "France", + "Indonesia", + "Indonesia", + "Chad", + "Indonesia", + "China", + "China", + "Philippines", + "Indonesia", + "Czech Republic", + "China", + "Vietnam", + "El Salvador", + "Austria", + "China", + "Philippines", + "China", + "Greece", + "China", + "Armenia", + "China", + "Indonesia", + "China", + "China", + "Argentina", + "France", + "Armenia", + "Japan", + "Malaysia", + "Poland", + "Vietnam", + "Colombia", + "France", + "China", + "Costa Rica", + "Hungary", + "Philippines", + "Indonesia", + "China", + "France", + "Indonesia", + "Philippines", + "China", + "United States", + "Portugal", + "Poland", + "Ukraine", + "Indonesia", + "Indonesia", + "Brazil", + "Haiti", + "China", + "Brazil", + "France", + "Indonesia", + "Russia", + "Australia", + "Sweden", + "Brazil", + "Georgia", + "Pakistan", + "Czech Republic", + "Russia", + "United States", + "China", + "France", + "Poland", + "Morocco", + "Argentina", + "Poland", + "China", + "Thailand", + "Canada", + "Sweden", + "Kazakhstan", + "Russia", + "China", + "China", + "Afghanistan", + "United States", + "Iraq", + "Peru", + "China", + "China", + "Dominican Republic", + "China", + "Brazil", + "Philippines", + "Peru", + "China", + "United States", + "Indonesia", + "Eritrea", + "China", + "Uzbekistan", + "Russia", + "China", + "Greece", + "Argentina", + "Netherlands", + "Brazil", + "China", + "Finland", + "Poland", + "China", + "Georgia", + "Nigeria", + "United States", + "Japan", + "China", + "Ecuador", + "Indonesia", + "Portugal", + "China", + "China", + "Japan", + "United States", + "Poland", + "Philippines", + "Haiti", + "Canada", + "China", + "China", + "China", + "Colombia", + "Myanmar", + "Bangladesh", + "Poland", + "Comoros", + "Russia", + "Indonesia", + "Indonesia", + "Brazil", + "China", + "Italy", + "Czech Republic", + "Indonesia", + "Uzbekistan", + "China", + "China", + "Ecuador", + "Russia", + "Sweden", + "Philippines", + "Philippines", + "Canada", + "Indonesia", + "Philippines", + "Indonesia", + "Indonesia", + "Czech Republic", + "Poland", + "Indonesia", + "Israel", + "Armenia", + "Iran", + "Guatemala", + "China", + "Indonesia", + "United States", + "Samoa", + "Venezuela", + "China", + "Thailand", + "Thailand", + "China", + "Finland", + "Indonesia", + "Philippines", + "Iran", + "Libya", + "China", + "Russia", + "Tanzania", + "Philippines", + "China", + "Indonesia", + "Russia", + "Russia", + "Netherlands", + "Indonesia", + "Philippines", + "China", + "China", + "Czech Republic", + "China", + "Malaysia", + "China", + "Malaysia", + "Philippines", + "Montserrat", + "China", + "Philippines", + "Russia", + "China", + "China", + "China", + "Comoros", + "China", + "Colombia", + "Tanzania", + "Costa Rica", + "China", + "Brazil", + "Philippines", + "Vietnam", + "China", + "Colombia", + "Ukraine", + "Belarus", + "Brazil", + "Indonesia", + "Sweden", + "Ukraine", + "Poland", + "Albania", + "Japan", + "Portugal", + "Indonesia", + "Peru", + "China", + "Moldova", + "China", + "Greece", + "Portugal", + "Russia", + "Brazil", + "China", + "Poland", + "Thailand", + "China", + "Palestinian Territory", + "Sweden", + "Indonesia", + "Ecuador", + "Vietnam", + "Indonesia", + "Indonesia", + "Russia", + "Macedonia", + "France", + "Poland", + "Georgia", + "Philippines", + "Brazil", + "China", + "Peru", + "China", + "Senegal", + "Indonesia", + "Japan", + "Philippines", + "Greece", + "Bangladesh", + "Indonesia", + "Indonesia", + "Portugal", + "Russia", + "Philippines", + "Indonesia", + "Indonesia", + "Philippines", + "Kazakhstan", + "Sweden", + "Peru", + "China", + "Czech Republic", + "Serbia", + "Indonesia", + "Russia", + "Egypt", + "Portugal", + "China", + "Thailand", + "Brazil", + "Indonesia", + "Poland", + "Indonesia", + "Poland", + "Uruguay", + "Indonesia", + "China", + "Australia", + "Honduras", + "Portugal", + "Costa Rica", + "Croatia", + "Russia", + "Brazil", + "China", + "Madagascar", + "Russia", + "Nigeria", + "Japan", + "China", + "China", + "China", + "Colombia", + "Belarus", + "Dominican Republic", + "China", + "China", + "Philippines", + "Cameroon", + "Bulgaria", + "Sweden", + "China", + "Japan", + "Portugal", + "Czech Republic", + "Brazil", + "China", + "Peru", + "Greece", + "Nigeria", + "Argentina", + "Ukraine", + "Indonesia", + "Brazil", + "Ukraine", + "Chile", + "Brazil", + "Indonesia", + "Norway", + "Colombia", + "Philippines", + "Zimbabwe", + "Belarus", + "Iran", + "Poland", + "China", + "Poland", + "Russia", + "China", + "Argentina", + "United States", + "Ukraine", + "Poland", + "Pakistan", + "China", + "Philippines", + "Canada", + "Poland", + "Taiwan", + "Indonesia", + "Indonesia", + "Somalia", + "Croatia", + "Peru", + "China", + "China", + "Bulgaria", + "Portugal", + "France", + "Poland", + "Colombia", + "Poland", + "Indonesia", + "Ireland", + "Russia", + "China", + "China", + "Russia", + "Indonesia", + "Indonesia", + "Russia", + "China", + "Sweden", + "Greece", + "Philippines", + "China", + "Estonia", + "Bolivia", + "Mexico", + "Peru", + "Estonia", + "Oman", + "Slovenia", + "Afghanistan", + "Japan", + "Indonesia", + "Burundi", + "Nigeria", + "Philippines", + "Honduras", + "Afghanistan", + "China", + "Greece", + "Mexico", + "Sweden", + "Peru", + "China", + "Portugal", + "Brazil", + "Philippines", + "China", + "Tunisia", + "China", + "Botswana", + "Japan", + "Pakistan", + "Indonesia", + "China", + "Sweden", + "France", + "Indonesia", + "China", + "Thailand", + "China", + "Iran", + "Bulgaria", + "Cuba", + "Thailand", + "Poland", + "China", + "Kazakhstan", + "Indonesia", + "China", + "Portugal", + "United States", + "China", + "China", + "Thailand", + "Mexico", + "China", + "Brazil", + "South Africa", + "France", + "Japan", + "Indonesia", + "Nigeria", + "Portugal", + "China", + "Benin", + "Philippines", + "Argentina", + "Niger", + "Serbia", + "China", + "Argentina", + "China", + "Indonesia", + "China", + "Yemen", + "Argentina", + "Portugal", + "China", + "Philippines", + "Russia", + "Norway", + "Philippines", + "Dominican Republic", + "Japan", + "Indonesia", + "Brazil", + "Canada", + "Nigeria", + "Greece", + "Belize", + "Bulgaria", + "China", + "China", + "China", + "Albania", + "Indonesia", + "Afghanistan", + "Colombia", + "Brazil", + "Jordan", + "Moldova", + "Bolivia", + "China", + "Portugal", + "Vietnam", + "Greenland", + "Canada", + "Portugal", + "Portugal", + "Bolivia", + "China", + "Portugal", + "Russia", + "Indonesia", + "Bahamas", + "China", + "Russia", + "Ukraine", + "Indonesia", + "Czech Republic", + "Japan", + "Indonesia", + "Philippines", + "Moldova", + "Philippines", + "Japan", + "Japan", + "Democratic Republic of the Congo", + "China", + "Poland", + "Slovenia", + "Costa Rica", + "Portugal", + "Dominican Republic", + "South Africa", + "Vietnam", + "China", + "Sweden", + "Morocco", + "Argentina", + "China", + "Portugal", + "Sweden", + "Colombia", + "Palestinian Territory", + "United States", + "China", + "Vietnam", + "Slovenia", + "Netherlands", + "China", + "Thailand", + "Colombia", + "China", + "Poland", + "China", + "China", + "Poland", + "Indonesia", + "China", + "China", + "Indonesia", + "Iraq", + "China", + "China", + "China", + "Brazil", + "Russia", + "Japan", + "China", + "Tanzania", + "Colombia", + "France", + "Indonesia", + "Philippines", + "Philippines", + "Philippines", + "Norway", + "Palestinian Territory", + "Gabon", + "Czech Republic", + "Estonia", + "Russia", + "United States", + "Portugal", + "Iran", + "Ukraine", + "Russia", + "Armenia", + "China", + "Ukraine", + "Sweden", + "China", + "Russia", + "Nigeria", + "Philippines", + "Vietnam", + "Iran", + "China", + "France", + "Philippines", + "Japan", + "Ukraine", + "Brazil", + "Sweden", + "Russia", + "France", + "Indonesia", + "Poland", + "Spain", + "Cyprus", + "Sweden", + "Mexico", + "Russia", + "France", + "France", + "Afghanistan", + "China", + "Brazil", + "Sweden", + "Indonesia", + "Poland", + "Russia", + "Philippines", + "China", + "Indonesia", + "Indonesia", + "Portugal", + "Chile", + "China", + "Russia", + "China", + "Indonesia", + "Poland", + "China", + "Ukraine", + "Ukraine", + "Tunisia", + "Croatia", + "Poland", + "China", + "Indonesia", + "United States", + "Colombia", + "Philippines", + "Philippines", + "El Salvador", + "Estonia", + "China", + "Poland", + "Argentina", + "Poland", + "Slovenia", + "China", + "Philippines", + "Indonesia", + "Japan", + "China", + "Poland", + "France", + "Indonesia", + "Niger", + "China", + "Philippines", + "Nigeria", + "Indonesia", + "Greece", + "Colombia", + "China", + "China", + "Indonesia", + "Vietnam", + "Sweden", + "Peru", + "Indonesia", + "Anguilla", + "Egypt", + "China", + "Croatia", + "Philippines", + "Belarus", + "China", + "France", + "Poland", + "Philippines", + "Iran", + "Indonesia", + "China", + "Norway", + "Indonesia", + "China", + "Czech Republic", + "China", + "Colombia", + "China", + "Russia", + "Bolivia", + "Indonesia", + "Philippines", + "Armenia", + "Ukraine", + "China", + "Pakistan", + "Indonesia", + "Russia", + "Poland", + "China", + "Guatemala", + "Nigeria", + "Thailand", + "China", + "Indonesia", + "Brazil", + "China", + "Japan", + "China", + "China", + "Slovenia", + "Portugal", + "Nigeria", + "Indonesia", + "Philippines", + "China", + "Russia", + "China", + "Philippines", + "China", + "Portugal", + "Japan", + "China", + "Peru", + "Russia", + "Peru", + "Portugal", + "Czech Republic", + "Sweden", + "Canada", + "Peru", + "Brazil", + "Colombia", + "United States", + "Sweden", + "Rwanda", + "Nigeria", + "Nigeria", + "Portugal", + "Colombia", + "Philippines", + "Indonesia", + "Serbia", + "Albania", + "Jamaica", + "Sweden", + "China", + "Burundi", + "Bulgaria", + "China", + "Argentina", + "China", + "China", + "France", + "China", + "China", + "China", + "Russia", + "Guatemala", + "China", + "Indonesia", + "Philippines", + "Russia", + "Philippines", + "China", + "China", + "China", + "China", + "China", + "Latvia", + "China", + "Mexico", + "Brazil", + "China", + "Sweden", + "Syria", + "Sweden", + "Haiti", + "Poland", + "Japan", + "Mongolia", + "United States", + "Indonesia", + "Argentina", + "China", + "China", + "Philippines", + "Russia", + "Russia", + "China", + "Thailand", + "Russia", + "Indonesia", + "Afghanistan", + "France", + "China", + "China", + "Germany", + "China", + "Indonesia", + "Poland", + "Russia", + "Syria", + "Bulgaria", + "Indonesia", + "Indonesia", + "Portugal", + "Philippines", + "Uzbekistan", + "Russia", + "Tunisia", + "Indonesia", + "Tajikistan", + "China", + "South Korea", + "Indonesia", + "Russia", + "Tunisia", + "China", + "Brazil", + "China", + "Indonesia", + "Iran", + "China", + "Brazil", + "Haiti", + "Portugal", + "Russia", + "Colombia", + "Philippines", + "Portugal", + "Tunisia", + "Pakistan", + "China", + "Russia", + "Argentina", + "China", + "France", + "China", + "China", + "Egypt", + "Poland", + "Slovenia", + "China", + "Brazil", + "Cuba", + "Japan", + "Indonesia", + "Egypt", + "Philippines", + "Russia", + "Paraguay", + "Philippines", + "Greece", + "China", + "China", + "Czech Republic", + "Canada", + "China", + "Ukraine", + "Haiti", + "South Africa", + "China", + "New Zealand", + "Vietnam", + "China", + "China", + "Syria", + "Portugal", + "Norway", + "Czech Republic", + "China", + "Russia", + "Thailand", + "Portugal", + "Russia", + "China", + "China", + "Indonesia", + "France", + "China", + "France", + "Finland", + "Sweden", + "Portugal", + "Central African Republic", + "Iran", + "France", + "Ghana", + "Honduras", + "Czech Republic", + "Indonesia", + "Indonesia", + "Czech Republic", + "Indonesia", + "Myanmar", + "Russia", + "Sweden", + "Tunisia", + "Brazil", + "Micronesia", + "Brazil", + "Russia", + "Portugal", + "Ukraine", + "Bolivia", + "Indonesia", + "Botswana", + "Thailand", + "United States", + "Venezuela", + "Belarus", + "South Korea", + "Tanzania", + "Vietnam", + "Philippines", + "Seychelles", + "Indonesia", + "Poland", + "Japan", + "China", + "China", + "Russia", + "Nepal", + "Czech Republic", + "Indonesia", + "China", + "Indonesia", + "Argentina", + "Indonesia", + "Uganda", + "Brazil", + "China", + "Indonesia", + "Philippines", + "China", + "Saudi Arabia", + "Iran", + "Indonesia", + "South Africa", + "Indonesia", + "Russia", + "Philippines", + "Ukraine", + "Indonesia", + "France", + "Ireland", + "China", + "Ukraine", + "Indonesia", + "Brazil", + "Ecuador", + "Croatia", + "China", + "Sweden", + "Sierra Leone", + "Russia", + "Philippines", + "United States", + "Kosovo", + "Bulgaria", + "Germany", + "Russia", + "Czech Republic", + "Indonesia", + "Philippines", + "Mexico", + "China", + "Montenegro", + "Slovenia", + "Peru", + "China", + "China" + ], + "first_name":[ + "Rose", + "Samuel", + "Louis", + "Eugene", + "Michelle", + "Marilyn", + "Donna", + "Katherine", + "Brian", + "Lillian", + "Brandon", + "Kathy", + "Samuel", + "Tina", + "Todd", + "Robert", + "Earl", + "Douglas", + "Cynthia", + "Dennis", + "Catherine", + "Clarence", + "Brenda", + "Gregory", + "Mark", + "Gary", + "Katherine", + "Fred", + "Kathryn", + "Martin", + "Terry", + "Christopher", + "Andrew", + "Ronald", + "Judith", + "Katherine", + "Wayne", + "Mary", + "Jose", + "Gerald", + "Teresa", + "Henry", + "Barbara", + "Andrew", + "Fred", + "John", + "Alan", + "Christina", + "John", + "Lori", + "Virginia", + "Deborah", + "Evelyn", + "Beverly", + "Randy", + "Kathryn", + "Kevin", + "Katherine", + "James", + "Fred", + "Angela", + "Susan", + "Justin", + "Edward", + "Willie", + "Randy", + "Todd", + "Donald", + "Carolyn", + "Dorothy", + "Michael", + "Doris", + "Lois", + "Ralph", + "Jose", + "Jennifer", + "Anna", + "Donna", + "Maria", + "Christopher", + "Barbara", + "Michelle", + "Roger", + "Brenda", + "Martin", + "Ralph", + "Shawn", + "Phyllis", + "Patrick", + "Virginia", + "Jeffrey", + "Cynthia", + "Carol", + "George", + "Harold", + "Marie", + "Douglas", + "Timothy", + "Eugene", + "Michael", + "Peter", + "Jennifer", + "Chris", + "Marilyn", + "Jacqueline", + "Jonathan", + "Douglas", + "Phyllis", + "Deborah", + "Jean", + "Annie", + "Rose", + "Janice", + "Ruth", + "Donald", + "Jacqueline", + "Edward", + "Annie", + "Eric", + "Joan", + "Robert", + "Jimmy", + "Willie", + "Frank", + "Carol", + "Nicole", + "Pamela", + "Ruth", + "Martha", + "Elizabeth", + "Chris", + "Jane", + "Carol", + "Ralph", + "Nicholas", + "Anthony", + "Carol", + "Diane", + "Catherine", + "Brandon", + "Carlos", + "Bruce", + "Debra", + "Denise", + "Kathy", + "Jean", + "Joe", + "Phillip", + "Julia", + "Gerald", + "Harold", + "Clarence", + "Michael", + "Eugene", + "Mildred", + "Juan", + "Paul", + "Bobby", + "Martha", + "Alice", + "George", + "Roy", + "Anthony", + "Anthony", + "Steve", + "Todd", + "Harry", + "Harold", + "Robert", + "George", + "Jennifer", + "Jack", + "Alan", + "Lillian", + "Kathryn", + "Randy", + "Johnny", + "Howard", + "Randy", + "Kathy", + "Earl", + "Michelle", + "Steven", + "Sarah", + "Clarence", + "Antonio", + "Robert", + "Roger", + "Jack", + "Phillip", + "Catherine", + "Philip", + "Bruce", + "Brandon", + "Donna", + "Ashley", + "William", + "Janice", + "Sarah", + "Kenneth", + "Dennis", + "Keith", + "Doris", + "Kathy", + "Thomas", + "Rose", + "Albert", + "Alan", + "Roger", + "Rachel", + "Patrick", + "Emily", + "Anne", + "Alice", + "Christina", + "Joe", + "Rachel", + "Anna", + "Michael", + "Timothy", + "Linda", + "Louis", + "Kathy", + "Bruce", + "Ronald", + "Christine", + "Eric", + "Joe", + "Betty", + "Albert", + "Lawrence", + "Martha", + "Carolyn", + "Gloria", + "Mary", + "Nicole", + "Amanda", + "Eugene", + "Anne", + "Anthony", + "Catherine", + "Cynthia", + "Katherine", + "Ernest", + "Kenneth", + "Wayne", + "Dorothy", + "Mark", + "Norma", + "Dorothy", + "Martin", + "Aaron", + "Lillian", + "Christina", + "Edward", + "James", + "Patricia", + "Mildred", + "David", + "Christopher", + "Stephanie", + "Sara", + "William", + "Theresa", + "Donna", + "Karen", + "William", + "Dorothy", + "Sandra", + "Judith", + "Lawrence", + "Brenda", + "Judy", + "Ralph", + "Kimberly", + "Frank", + "Billy", + "Fred", + "Edward", + "Kathleen", + "Randy", + "Heather", + "Debra", + "Nancy", + "Elizabeth", + "Earl", + "Russell", + "Douglas", + "Kevin", + "Jacqueline", + "Michael", + "Joan", + "Sean", + "Steven", + "Catherine", + "Christine", + "Gary", + "Katherine", + "Janet", + "Carl", + "Tammy", + "Kevin", + "Julie", + "Chris", + "Eric", + "Lillian", + "Justin", + "Louis", + "Ruth", + "Andrew", + "Lori", + "Margaret", + "Lori", + "Teresa", + "Bobby", + "Diane", + "Ryan", + "Jennifer", + "William", + "Johnny", + "Amy", + "Carl", + "Irene", + "Jose", + "Russell", + "James", + "Julie", + "Ruth", + "Catherine", + "Wanda", + "Joshua", + "Nicholas", + "Johnny", + "Bobby", + "Gary", + "Albert", + "Brandon", + "Evelyn", + "Matthew", + "Carol", + "Sharon", + "Lisa", + "Irene", + "Craig", + "Gloria", + "Lillian", + "Samuel", + "Antonio", + "Janice", + "Denise", + "Virginia", + "Wanda", + "Christopher", + "Paul", + "Jason", + "Ashley", + "Ernest", + "Kathy", + "Ernest", + "Rose", + "Theresa", + "Steve", + "Kevin", + "Lillian", + "Tina", + "Joseph", + "Adam", + "Denise", + "Denise", + "Denise", + "Tina", + "Lawrence", + "Julie", + "Ruby", + "Louise", + "Shawn", + "Kenneth", + "Adam", + "Annie", + "Christine", + "Judith", + "William", + "Sean", + "Carol", + "Amy", + "Tina", + "Bruce", + "Brandon", + "Ruth", + "Gregory", + "Paul", + "Aaron", + "Gerald", + "Louise", + "David", + "Billy", + "Albert", + "Cheryl", + "Jerry", + "John", + "Douglas", + "Ashley", + "Joseph", + "Anthony", + "Kimberly", + "Mildred", + "Clarence", + "Jonathan", + "Amy", + "Adam", + "Janice", + "Victor", + "Benjamin", + "Christina", + "Steven", + "Mark", + "Brian", + "Fred", + "Carol", + "Eric", + "Steven", + "Kelly", + "Jerry", + "Patrick", + "Arthur", + "Wayne", + "Carl", + "Timothy", + "Michael", + "Todd", + "Rachel", + "Lois", + "Diana", + "Eric", + "Jennifer", + "Julia", + "Victor", + "Victor", + "Adam", + "George", + "Justin", + "Adam", + "Marie", + "Jean", + "Deborah", + "Alan", + "Martin", + "Randy", + "Jean", + "Michael", + "Lillian", + "Theresa", + "Carlos", + "Melissa", + "Timothy", + "Willie", + "Brenda", + "Judy", + "Teresa", + "Jimmy", + "Catherine", + "Margaret", + "Helen", + "Kevin", + "Judy", + "Edward", + "Kelly", + "Joyce", + "Margaret", + "Julie", + "Jesse", + "Justin", + "Billy", + "Jason", + "Deborah", + "Rachel", + "Shawn", + "Rebecca", + "Peter", + "Mary", + "Lisa", + "Sarah", + "Harry", + "Adam", + "David", + "Jonathan", + "Sandra", + "Judy", + "Wanda", + "Ruby", + "Victor", + "Harold", + "Arthur", + "Carol", + "Eric", + "David", + "Betty", + "Theresa", + "Terry", + "Amanda", + "Tina", + "Dennis", + "Carl", + "Nancy", + "Gary", + "Gregory", + "Peter", + "Adam", + "Steven", + "Doris", + "Martin", + "Jessica", + "Teresa", + "Andrew", + "Shirley", + "Antonio", + "Amanda", + "Robin", + "Betty", + "Rachel", + "Lillian", + "Jose", + "Christopher", + "Jeremy", + "Shawn", + "Brenda", + "Jesse", + "Emily", + "Nicole", + "Eric", + "Diana", + "Frances", + "Sharon", + "Margaret", + "Philip", + "Andrew", + "Philip", + "Jonathan", + "Juan", + "Amanda", + "Pamela", + "Sharon", + "Carol", + "Martin", + "Amy", + "Melissa", + "Sara", + "Nancy", + "Theresa", + "Diane", + "Keith", + "Patrick", + "Christina", + "Nicole", + "Jennifer", + "Doris", + "Nicole", + "Christina", + "Paul", + "Marie", + "Lawrence", + "Margaret", + "Kimberly", + "Alan", + "Todd", + "Sean", + "Brandon", + "Larry", + "Kimberly", + "Peter", + "Louis", + "Benjamin", + "Lisa", + "Anne", + "Angela", + "Martha", + "Rachel", + "Judy", + "Anne", + "Pamela", + "Mildred", + "Harry", + "James", + "Lori", + "Juan", + "George", + "Kimberly", + "Maria", + "George", + "Adam", + "Melissa", + "Ruth", + "Robin", + "Bobby", + "Larry", + "Harold", + "Alice", + "Louis", + "Tina", + "Tina", + "Randy", + "Cheryl", + "Tina", + "Gregory", + "David", + "Scott", + "Joshua", + "Janet", + "Joyce", + "Jerry", + "Charles", + "Deborah", + "Ronald", + "Kathleen", + "Kathleen", + "Brian", + "Phillip", + "Henry", + "Susan", + "Samuel", + "Marie", + "Ernest", + "Lisa", + "Kevin", + "Teresa", + "Debra", + "Joan", + "Eugene", + "Nicole", + "Steve", + "Steven", + "Willie", + "Aaron", + "Frances", + "Michelle", + "Jesse", + "Aaron", + "Mary", + "Donna", + "Peter", + "Amy", + "Timothy", + "Wanda", + "Robert", + "Marilyn", + "Ernest", + "Joseph", + "Walter", + "Richard", + "Bobby", + "James", + "Jane", + "Joe", + "William", + "Jennifer", + "Doris", + "Gloria", + "Lisa", + "Nancy", + "Marilyn", + "Antonio", + "Teresa", + "Billy", + "Fred", + "Sarah", + "Amy", + "Carl", + "Beverly", + "Gregory", + "Peter", + "Samuel", + "Alice", + "Walter", + "Ralph", + "Theresa", + "Ruth", + "Judith", + "Howard", + "Nicole", + "Shawn", + "Johnny", + "Bobby", + "Alan", + "Alan", + "Angela", + "Jeremy", + "Diana", + "Sandra", + "Roger", + "Anne", + "Donna", + "Aaron", + "Nancy", + "Shirley", + "Peter", + "Rachel", + "Roy", + "Matthew", + "Michael", + "Shirley", + "Ernest", + "Charles", + "Fred", + "Ralph", + "Phillip", + "Rose", + "Carlos", + "Douglas", + "Jose", + "Joe", + "Sandra", + "Dorothy", + "Sharon", + "Beverly", + "Roger", + "Michelle", + "Melissa", + "Lawrence", + "Jonathan", + "John", + "Terry", + "Sara", + "Antonio", + "Tammy", + "Lois", + "Christopher", + "Frances", + "Julie", + "Johnny", + "Sara", + "Arthur", + "Ruby", + "Julia", + "Elizabeth", + "Julia", + "Amy", + "Carol", + "Teresa", + "Sarah", + "Mark", + "Mark", + "Julia", + "Jessica", + "Kimberly", + "Diane", + "Shawn", + "Brenda", + "Shawn", + "Bonnie", + "Kathy", + "Susan", + "Juan", + "Cynthia", + "Stephanie", + "Alice", + "Joyce", + "Nicole", + "Antonio", + "Jason", + "Timothy", + "Jane", + "Joshua", + "Jack", + "Fred", + "Joe", + "Harry", + "Douglas", + "Dorothy", + "Douglas", + "Larry", + "Marilyn", + "Patrick", + "Martin", + "Kenneth", + "Christina", + "Terry", + "Roger", + "Andrew", + "Kathleen", + "Harry", + "Joshua", + "Bonnie", + "Chris", + "Kimberly", + "Jane", + "Shirley", + "Aaron", + "Charles", + "Brandon", + "Ralph", + "Joseph", + "Lori", + "Judy", + "Melissa", + "Richard", + "Albert", + "Timothy", + "Stephanie", + "Justin", + "Mary", + "Joshua", + "Earl", + "Bruce", + "Ruth", + "Jessica", + "Phyllis", + "Amy", + "Andrea", + "Philip", + "Norma", + "Lois", + "Katherine", + "Tammy", + "Jessica", + "Jennifer", + "Sandra", + "Mildred", + "Willie", + "Scott", + "Todd", + "David", + "Fred", + "Sharon", + "Betty", + "Shirley", + "Harry", + "Kenneth", + "Christopher", + "Barbara", + "Melissa", + "Rebecca", + "Frank", + "Chris", + "Harry", + "Jennifer", + "Jesse", + "Debra", + "Marie", + "Gary", + "Randy", + "Dennis", + "Jessica", + "Janet", + "Stephanie", + "Philip", + "Melissa", + "Susan", + "Dorothy", + "Arthur", + "Lisa", + "David", + "Clarence", + "Wanda", + "Bobby", + "Jerry", + "Jennifer", + "Gregory", + "Kathryn", + "Evelyn", + "Carl", + "Carolyn", + "Shawn", + "Matthew", + "Cynthia", + "Kimberly", + "Bobby", + "Nicole", + "Emily", + "Joshua", + "Carl", + "Kelly", + "Frances", + "Fred", + "Janice", + "Michael", + "Russell", + "Benjamin", + "Ernest", + "Raymond", + "Deborah", + "Betty", + "Jerry", + "Diane", + "Teresa", + "Lisa", + "Barbara", + "Melissa", + "Alice", + "Rachel", + "Peter", + "Phyllis", + "Earl", + "Patricia", + "Jerry", + "Harold", + "Shirley", + "Terry", + "Roy", + "Linda", + "Andrew", + "Rachel", + "Bruce", + "Stephanie", + "Harry", + "Stephen", + "Steve", + "Karen", + "Shirley", + "Cheryl", + "Anne", + "Johnny", + "Annie", + "David", + "Antonio", + "Philip", + "Alice", + "Jeremy", + "Lori", + "Adam", + "Billy", + "Douglas", + "Ernest", + "Ruth", + "Patricia", + "Laura", + "Randy", + "Joseph", + "Johnny", + "Joseph", + "Lois", + "Beverly", + "James", + "Cheryl", + "Randy", + "Teresa", + "Tina", + "Angela", + "Judith", + "Marie", + "Carolyn", + "Brenda", + "Andrea", + "Lawrence", + "Earl", + "Bruce", + "Martha", + "Ernest", + "Benjamin", + "Carl", + "Walter", + "Charles", + "Jack", + "Wayne", + "Bruce", + "Benjamin", + "Walter", + "Ruth", + "Chris", + "Andrew", + "Elizabeth", + "Judy", + "Carol", + "Walter", + "Patricia", + "Martha", + "Randy", + "Margaret", + "Brian", + "Theresa", + "Debra", + "Eric", + "Nicholas", + "Amy", + "Timothy", + "Linda", + "Tina", + "Roy", + "Alan", + "Patricia", + "Matthew", + "Bonnie", + "Melissa", + "Raymond", + "Julia", + "Philip", + "Joe", + "Stephanie", + "Robin", + "Jacqueline", + "Anne", + "Brenda", + "Shirley", + "Jean", + "Eugene", + "Martha", + "Lillian", + "Ryan" + ], + "last_name":[ + "Hansen", + "Hall", + "Freeman", + "Cole", + "Banks", + "Harrison", + "Snyder", + "Reid", + "Reyes", + "Henry", + "Wilson", + "Ross", + "Warren", + "Perez", + "Cunningham", + "Davis", + "Medina", + "Welch", + "Stevens", + "Elliott", + "Mendoza", + "Matthews", + "Martin", + "Wells", + "Chapman", + "Allen", + "Burke", + "Flores", + "Rogers", + "Simmons", + "Simmons", + "Mason", + "Martinez", + "Bennett", + "Mason", + "Cole", + "Hunt", + "Carr", + "Robertson", + "Mason", + "White", + "Moreno", + "Montgomery", + "Long", + "Hughes", + "Flores", + "Stephens", + "Jackson", + "Harrison", + "Edwards", + "Alvarez", + "Olson", + "Thompson", + "Hudson", + "Grant", + "Reynolds", + "Sims", + "Price", + "Payne", + "Reed", + "Matthews", + "Ross", + "Rivera", + "Weaver", + "Frazier", + "Pierce", + "Torres", + "Rodriguez", + "Dixon", + "Parker", + "Cook", + "Bryant", + "Washington", + "Oliver", + "Anderson", + "Tucker", + "Cole", + "Cunningham", + "Reed", + "Torres", + "Stanley", + "Gonzales", + "Matthews", + "Rogers", + "Jones", + "George", + "Collins", + "Grant", + "Romero", + "Hernandez", + "Dunn", + "Bowman", + "Kelley", + "Lopez", + "Fields", + "Lynch", + "Harvey", + "Sullivan", + "Mills", + "Owens", + "Cox", + "Welch", + "Olson", + "Gilbert", + "Peters", + "Knight", + "Stevens", + "Morales", + "Brown", + "Bishop", + "Powell", + "Johnston", + "Fuller", + "Lynch", + "Gutierrez", + "Simmons", + "Flores", + "Hawkins", + "Long", + "James", + "Torres", + "Gilbert", + "Frazier", + "Williamson", + "Wagner", + "Grant", + "Little", + "Kim", + "Welch", + "Mendoza", + "Gonzales", + "Fisher", + "Reynolds", + "Freeman", + "Moore", + "Harper", + "Bishop", + "Clark", + "Bryant", + "Wilson", + "Burke", + "Medina", + "Lynch", + "Dixon", + "Ruiz", + "Williamson", + "Cooper", + "Perry", + "Shaw", + "Nelson", + "Stevens", + "Pierce", + "Johnston", + "Crawford", + "Jones", + "Mendoza", + "Perry", + "Carr", + "Rodriguez", + "Ortiz", + "Reyes", + "Washington", + "Ellis", + "Wilson", + "Larson", + "Kennedy", + "Cunningham", + "Peterson", + "Garza", + "Reyes", + "Washington", + "Crawford", + "Gordon", + "Armstrong", + "Lawson", + "Ford", + "Kennedy", + "Perkins", + "Wheeler", + "Carter", + "Martin", + "Watson", + "Moreno", + "Carroll", + "Morris", + "Diaz", + "Watson", + "Hernandez", + "Reynolds", + "Simpson", + "Larson", + "Stephens", + "Diaz", + "Austin", + "Chapman", + "Armstrong", + "Clark", + "Lawrence", + "Collins", + "Larson", + "Ortiz", + "Warren", + "Chavez", + "Turner", + "Rice", + "White", + "Riley", + "Anderson", + "Mitchell", + "Romero", + "Rogers", + "Clark", + "Ward", + "Reid", + "Palmer", + "Jenkins", + "White", + "Schmidt", + "Edwards", + "Murray", + "Patterson", + "Spencer", + "Wells", + "Garrett", + "Palmer", + "Ortiz", + "Alexander", + "Snyder", + "Bishop", + "Moore", + "Ellis", + "Torres", + "Fields", + "Morrison", + "Rose", + "Kim", + "Campbell", + "Richards", + "Gonzalez", + "Watkins", + "Roberts", + "Willis", + "Tucker", + "Wallace", + "Bailey", + "Dunn", + "Shaw", + "Ruiz", + "Carr", + "Fields", + "Fox", + "Larson", + "Burton", + "Chapman", + "Campbell", + "Cooper", + "Dixon", + "Garza", + "Lee", + "Vasquez", + "Carroll", + "Walker", + "Hayes", + "Wright", + "Gonzales", + "Carroll", + "Brooks", + "Schmidt", + "Garcia", + "Rice", + "Wheeler", + "Flores", + "Coleman", + "Bradley", + "Gordon", + "Willis", + "Bryant", + "Snyder", + "Knight", + "Mccoy", + "Franklin", + "Evans", + "Ward", + "Myers", + "Freeman", + "Ryan", + "Mills", + "Burton", + "Boyd", + "Stephens", + "Davis", + "Perry", + "Bowman", + "Hart", + "Diaz", + "King", + "Perry", + "Woods", + "Gonzales", + "Gonzales", + "Diaz", + "Carter", + "Dunn", + "Bowman", + "Perry", + "Reyes", + "Berry", + "Howell", + "Willis", + "Stevens", + "Cruz", + "Reid", + "Harrison", + "Howell", + "Rodriguez", + "Hughes", + "Nelson", + "Diaz", + "Grant", + "Morrison", + "Collins", + "Collins", + "Gibson", + "Foster", + "Dunn", + "Gibson", + "Armstrong", + "Mitchell", + "Diaz", + "Johnston", + "Taylor", + "Nichols", + "Ramirez", + "Ellis", + "Howell", + "Johnson", + "Garrett", + "Perkins", + "Reed", + "Cruz", + "Carr", + "Robertson", + "Matthews", + "Little", + "Perez", + "Chavez", + "Harris", + "Pierce", + "Romero", + "Holmes", + "Hamilton", + "Palmer", + "Kelly", + "Ferguson", + "Powell", + "Stanley", + "Wheeler", + "Turner", + "Lee", + "Owens", + "Payne", + "Sanders", + "Lewis", + "Nguyen", + "Robinson", + "Sanders", + "Perez", + "Boyd", + "Armstrong", + "Mills", + "Young", + "Martin", + "Lawson", + "Ortiz", + "Garza", + "Shaw", + "Grant", + "Welch", + "Wilson", + "Lynch", + "Morrison", + "Coleman", + "Ferguson", + "Harrison", + "Hansen", + "Ross", + "Ross", + "Ramos", + "Graham", + "Black", + "Watson", + "Little", + "Johnson", + "Romero", + "Meyer", + "Burke", + "Peterson", + "Henderson", + "Hart", + "Hunter", + "Day", + "Coleman", + "Hill", + "Morales", + "Graham", + "Fuller", + "Burton", + "Wood", + "Holmes", + "Harvey", + "Black", + "Russell", + "Alexander", + "Gordon", + "Watson", + "King", + "Grant", + "Meyer", + "Webb", + "Arnold", + "Armstrong", + "Rivera", + "Morrison", + "Edwards", + "Allen", + "Chapman", + "Myers", + "Simpson", + "Austin", + "Wheeler", + "Harris", + "Palmer", + "Morgan", + "Snyder", + "Dunn", + "Taylor", + "Simpson", + "Stewart", + "Fisher", + "Fernandez", + "Anderson", + "Woods", + "Chapman", + "Gilbert", + "Ferguson", + "Arnold", + "Romero", + "Kennedy", + "Russell", + "Ford", + "Gomez", + "Johnston", + "Hernandez", + "Mccoy", + "White", + "Myers", + "Lewis", + "Lynch", + "Palmer", + "Kim", + "Duncan", + "Gibson", + "Graham", + "Scott", + "Fuller", + "Wells", + "Lewis", + "Carroll", + "Fernandez", + "Williams", + "Fowler", + "Alvarez", + "Howell", + "Weaver", + "Fisher", + "Scott", + "Freeman", + "Gray", + "Thompson", + "Reed", + "Torres", + "White", + "Harrison", + "Wagner", + "Myers", + "Weaver", + "Jones", + "Brown", + "Morris", + "Robinson", + "Payne", + "Bradley", + "Richards", + "Burton", + "Henderson", + "Kelley", + "Price", + "Woods", + "Vasquez", + "Wilson", + "Nichols", + "Burton", + "Lewis", + "Ramos", + "Harper", + "Schmidt", + "Adams", + "Bishop", + "Armstrong", + "Walker", + "Mcdonald", + "Watkins", + "Gibson", + "Morgan", + "Castillo", + "Austin", + "King", + "Carpenter", + "Johnson", + "Sims", + "Gray", + "Reynolds", + "Watkins", + "West", + "Simmons", + "Ross", + "Stevens", + "Cole", + "Weaver", + "Ward", + "Gutierrez", + "Stone", + "Lewis", + "Ward", + "Miller", + "George", + "Johnston", + "Powell", + "Alexander", + "King", + "Kelley", + "Cole", + "Edwards", + "Rice", + "Porter", + "Arnold", + "Gibson", + "Greene", + "Richardson", + "Marshall", + "Gilbert", + "Fields", + "Wright", + "Freeman", + "Kim", + "Simmons", + "Burton", + "Reed", + "Rivera", + "Gomez", + "Knight", + "Reyes", + "Richards", + "Miller", + "Wright", + "Chapman", + "Burke", + "Baker", + "Torres", + "Lane", + "George", + "Gonzalez", + "Fowler", + "Schmidt", + "Harrison", + "James", + "King", + "Price", + "Little", + "Carr", + "Fowler", + "Peterson", + "Lynch", + "Cole", + "Simpson", + "Richards", + "Stevens", + "Daniels", + "Marshall", + "Freeman", + "Martin", + "Hansen", + "Watkins", + "Miller", + "King", + "Morgan", + "Warren", + "Frazier", + "Washington", + "Fowler", + "Ray", + "Mitchell", + "Nichols", + "Perry", + "Adams", + "Hawkins", + "Hawkins", + "Young", + "Pierce", + "Allen", + "Jones", + "Perkins", + "Crawford", + "Hall", + "Weaver", + "Hunt", + "Price", + "King", + "Dixon", + "Hunter", + "Mason", + "Allen", + "Richardson", + "Bradley", + "Perez", + "Ford", + "Ramos", + "Myers", + "Perkins", + "Rodriguez", + "Parker", + "George", + "Snyder", + "Flores", + "Sanders", + "Schmidt", + "Nichols", + "Long", + "Meyer", + "Fuller", + "Rivera", + "Allen", + "Arnold", + "Edwards", + "Weaver", + "Green", + "Hunt", + "Austin", + "Duncan", + "Morrison", + "Hill", + "Ray", + "Stewart", + "Black", + "Wheeler", + "Garza", + "Rodriguez", + "Freeman", + "Jones", + "Sanders", + "Perkins", + "Bailey", + "Ortiz", + "Stevens", + "Chapman", + "Day", + "Morrison", + "Foster", + "Ross", + "Bishop", + "Pierce", + "Ellis", + "Spencer", + "Allen", + "Frazier", + "Franklin", + "Dunn", + "Miller", + "Gutierrez", + "Parker", + "Fox", + "Meyer", + "Mason", + "Wright", + "Jones", + "Lewis", + "Hamilton", + "Hart", + "Rose", + "Bradley", + "Cox", + "Anderson", + "Williamson", + "Elliott", + "Butler", + "Berry", + "Sanders", + "Cook", + "Palmer", + "Berry", + "Knight", + "Garrett", + "Watson", + "Grant", + "Arnold", + "Simmons", + "Payne", + "Hughes", + "Perez", + "Alvarez", + "Sims", + "Dunn", + "Williams", + "Carr", + "Taylor", + "Jacobs", + "Boyd", + "Williamson", + "Gardner", + "Rogers", + "Green", + "George", + "Pierce", + "Berry", + "Ray", + "Ross", + "Cunningham", + "Duncan", + "Burton", + "Pierce", + "Moore", + "Knight", + "King", + "Owens", + "Collins", + "Knight", + "Woods", + "Gutierrez", + "Ward", + "Turner", + "Hicks", + "Gray", + "Sullivan", + "Cole", + "Morales", + "Green", + "Washington", + "Diaz", + "Ford", + "Lewis", + "Berry", + "Fox", + "Scott", + "Carroll", + "Gonzalez", + "Baker", + "Stone", + "Gonzalez", + "Hall", + "Medina", + "Hayes", + "Sanders", + "Dixon", + "Johnson", + "Weaver", + "Dixon", + "Schmidt", + "Austin", + "Green", + "Ramirez", + "Sullivan", + "Porter", + "Hawkins", + "Ford", + "Lynch", + "King", + "Ferguson", + "Richards", + "Crawford", + "Franklin", + "Dixon", + "Elliott", + "Matthews", + "Harvey", + "Long", + "Larson", + "Thomas", + "Scott", + "Ramos", + "Arnold", + "Wood", + "Anderson", + "Myers", + "Allen", + "Berry", + "Campbell", + "Daniels", + "Thompson", + "Medina", + "Howell", + "Watkins", + "West", + "Vasquez", + "Fuller", + "Jones", + "Stevens", + "Powell", + "Cox", + "Kelley", + "Duncan", + "Andrews", + "Morales", + "Marshall", + "Thompson", + "Bryant", + "Simpson", + "Morris", + "Hicks", + "Marshall", + "Alvarez", + "Ray", + "Kelley", + "Wallace", + "Chavez", + "Garcia", + "Fox", + "Dean", + "Rodriguez", + "Arnold", + "Bowman", + "Graham", + "Hanson", + "Barnes", + "Harvey", + "Knight", + "Morris", + "Mills", + "Hansen", + "Peters", + "Sanchez", + "Hunt", + "Riley", + "Dixon", + "Palmer", + "Bailey", + "Walker", + "Henry", + "Rogers", + "Perez", + "Burns", + "Williams", + "Wood", + "Peters", + "Lawson", + "Woods", + "Stephens", + "Duncan", + "Larson", + "Morgan", + "Rogers", + "Warren", + "Diaz", + "Johnson", + "Garcia", + "Morales", + "Romero", + "Hawkins", + "Elliott", + "Nichols", + "Murray", + "Ford", + "Webb", + "Morales", + "Kennedy", + "Harper", + "Baker", + "Adams", + "Oliver", + "Perry", + "Reyes", + "Garrett", + "Adams", + "Baker", + "Richardson", + "Torres", + "Harvey", + "Kim", + "Wallace", + "Cox", + "Hunt", + "Bennett", + "Bishop", + "Mcdonald", + "Wright", + "Peterson", + "Hamilton", + "King", + "Robertson", + "Gilbert", + "Peters", + "Duncan", + "Williams", + "Edwards", + "Davis", + "Richardson", + "Collins", + "Perry", + "Black", + "Martin", + "Gomez", + "Bryant", + "Jackson", + "Miller", + "Grant", + "Johnston", + "Jacobs", + "Woods", + "Russell", + "Thomas", + "Bennett", + "Daniels", + "Long", + "Andrews", + "Harper", + "Mills", + "Carroll", + "Martin", + "Brooks", + "Austin", + "Hudson", + "Carroll", + "Palmer", + "Sullivan", + "Hughes", + "Martinez", + "Miller", + "Pierce", + "Taylor", + "Webb", + "Hughes", + "Anderson", + "Robinson", + "Mitchell", + "Day", + "Hicks", + "Williamson", + "Gibson", + "Bradley", + "Lawson", + "Oliver", + "Perry", + "Bowman", + "Fernandez", + "Garrett", + "Armstrong", + "Mason", + "West", + "Payne", + "Washington", + "Hayes", + "Watkins", + "Wilson", + "Sims", + "Medina", + "Perez", + "Bell", + "Gibson", + "Myers", + "Young", + "Berry", + "Phillips", + "Morales", + "Gomez", + "Boyd", + "Watson", + "Cooper", + "Miller", + "Morales", + "Wells", + "Fields", + "Hanson", + "Diaz", + "Wells", + "Chapman", + "Romero", + "Hanson", + "Hanson", + "Perez", + "Meyer", + "Foster", + "Hall", + "Reynolds", + "Freeman", + "Sanchez", + "Lynch", + "Clark", + "Russell" + ], + "email":[ + "rhansen0@stanford.edu", + "shall1@zdnet.com", + "lfreeman2@gmpg.org", + "ecole3@thetimes.co.uk", + "mbanks4@blinklist.com", + "mharrison5@macromedia.com", + "dsnyder6@1688.com", + "kreid7@vimeo.com", + "breyes8@pcworld.com", + "lhenry9@eventbrite.com", + "bwilsona@youtube.com", + "krossb@cornell.edu", + "swarrenc@devhub.com", + "tperezd@buzzfeed.com", + "tcunninghame@printfriendly.com", + "rdavisf@earthlink.net", + "emedinag@hatena.ne.jp", + "dwelchh@mashable.com", + "cstevensi@theatlantic.com", + "delliottj@posterous.com", + "cmendozak@discovery.com", + "cmatthewsl@is.gd", + "bmartinm@scientificamerican.com", + "gwellsn@webmd.com", + "mchapmano@google.com.au", + "gallenp@sina.com.cn", + "kburkeq@de.vu", + "ffloresr@slate.com", + "krogerss@dailymail.co.uk", + "msimmonst@ca.gov", + "tsimmonsu@illinois.edu", + "cmasonv@toplist.cz", + "amartinezw@clickbank.net", + "rbennettx@twitter.com", + "jmasony@home.pl", + "kcolez@yahoo.co.jp", + "whunt10@cocolog-nifty.com", + "mcarr11@google.cn", + "jrobertson12@simplemachines.org", + "gmason13@vkontakte.ru", + "twhite14@umich.edu", + "hmoreno15@java.com", + "bmontgomery16@omniture.com", + "along17@dot.gov", + "fhughes18@webs.com", + "jflores19@reverbnation.com", + "astephens1a@twitpic.com", + "cjackson1b@goo.ne.jp", + "jharrison1c@boston.com", + "ledwards1d@fema.gov", + "valvarez1e@google.de", + "dolson1f@sun.com", + "ethompson1g@princeton.edu", + "bhudson1h@google.de", + "rgrant1i@uol.com.br", + "kreynolds1j@yahoo.co.jp", + "ksims1k@reuters.com", + "kprice1l@illinois.edu", + "jpayne1m@theguardian.com", + "freed1n@bluehost.com", + "amatthews1o@hao123.com", + "sross1p@salon.com", + "jrivera1q@soundcloud.com", + "eweaver1r@google.com.br", + "wfrazier1s@diigo.com", + "rpierce1u@yale.edu", + "ttorres1v@walmart.com", + "drodriguez1w@google.com", + "cdixon1x@wordpress.org", + "dparker1y@tinyurl.com", + "mcook1z@netlog.com", + "dbryant20@cbsnews.com", + "lwashington21@omniture.com", + "roliver22@noaa.gov", + "janderson23@cpanel.net", + "jtucker24@seesaa.net", + "acole25@mapy.cz", + "dcunningham26@addthis.com", + "mreed27@columbia.edu", + "ctorres28@last.fm", + "bstanley29@ucoz.com", + "mgonzales2a@cornell.edu", + "rmatthews2b@upenn.edu", + "brogers2c@businesswire.com", + "mjones2d@mozilla.org", + "rgeorge2e@ft.com", + "scollins2f@godaddy.com", + "pgrant2g@reverbnation.com", + "promero2h@so-net.ne.jp", + "vhernandez2i@sciencedaily.com", + "jdunn2j@dailymotion.com", + "cbowman2k@netlog.com", + "ckelley2l@skype.com", + "glopez2m@gizmodo.com", + "hfields2n@live.com", + "mlynch2o@amazon.co.jp", + "dharvey2p@slate.com", + "tsullivan2q@mlb.com", + "emills2r@europa.eu", + "mowens2s@webnode.com", + "pcox2t@youtu.be", + "jwelch2u@marriott.com", + "colson2v@ask.com", + "mgilbert2w@google.com.hk", + "jpeters2y@usnews.com", + "jknight2z@github.io", + "dstevens30@nba.com", + "pmorales31@whitehouse.gov", + "dbrown32@washington.edu", + "jbishop33@jugem.jp", + "apowell34@un.org", + "rjohnston35@howstuffworks.com", + "jfuller36@twitter.com", + "rlynch37@instagram.com", + "dgutierrez38@huffingtonpost.com", + "jsimmons39@si.edu", + "eflores3a@github.com", + "ahawkins3b@simplemachines.org", + "elong3c@sohu.com", + "jjames3d@nhs.uk", + "rtorres3e@alexa.com", + "jgilbert3f@booking.com", + "wfrazier3g@google.co.jp", + "fwilliamson3h@shareasale.com", + "cwagner3i@npr.org", + "ngrant3j@friendfeed.com", + "plittle3k@clickbank.net", + "rkim3l@facebook.com", + "mwelch3m@illinois.edu", + "emendoza3n@furl.net", + "cgonzales3o@whitehouse.gov", + "jfisher3p@zdnet.com", + "creynolds3q@blog.com", + "rfreeman3r@nyu.edu", + "nmoore3s@cnbc.com", + "aharper3t@pinterest.com", + "cbishop3u@parallels.com", + "dclark3v@google.co.uk", + "cbryant3w@hc360.com", + "bwilson3x@nymag.com", + "cburke3y@auda.org.au", + "bmedina3z@angelfire.com", + "dlynch40@shop-pro.jp", + "ddixon41@networksolutions.com", + "kruiz42@google.it", + "jwilliamson43@squarespace.com", + "jcooper44@cyberchimps.com", + "pperry45@pcworld.com", + "jshaw46@yellowbook.com", + "gnelson47@bbb.org", + "hstevens48@wikispaces.com", + "cpierce49@com.com", + "mjohnston4a@alexa.com", + "ecrawford4b@jugem.jp", + "mjones4c@zimbio.com", + "jmendoza4d@sbwire.com", + "pperry4e@aol.com", + "bcarr4f@liveinternet.ru", + "mrodriguez4g@lycos.com", + "aortiz4h@illinois.edu", + "greyes4i@rakuten.co.jp", + "rwashington4j@reverbnation.com", + "aellis4k@noaa.gov", + "awilson4l@twitter.com", + "slarson4m@51.la", + "tkennedy4n@columbia.edu", + "hcunningham4o@twitter.com", + "hpeterson4p@hostgator.com", + "rgarza4q@about.me", + "greyes4r@ask.com", + "jwashington4s@alibaba.com", + "jcrawford4t@360.cn", + "agordon4u@umich.edu", + "larmstrong4v@zimbio.com", + "klawson4w@uol.com.br", + "rford4x@netlog.com", + "jkennedy4y@seattletimes.com", + "hperkins4z@trellian.com", + "rwheeler50@xing.com", + "kcarter51@guardian.co.uk", + "emartin52@shutterfly.com", + "mwatson53@patch.com", + "smoreno54@unicef.org", + "scarroll55@walmart.com", + "cmorris56@msn.com", + "adiaz57@oakley.com", + "rwatson58@shop-pro.jp", + "rhernandez59@nytimes.com", + "jreynolds5a@issuu.com", + "psimpson5b@php.net", + "clarson5c@businesswire.com", + "pstephens5d@si.edu", + "bdiaz5e@arstechnica.com", + "baustin5f@yahoo.com", + "dchapman5g@booking.com", + "aarmstrong5h@bbb.org", + "wclark5i@networkadvertising.org", + "jlawrence5j@google.com.hk", + "scollins5k@mapy.cz", + "klarson5l@about.com", + "dortiz5m@studiopress.com", + "kwarren5n@newyorker.com", + "dchavez5o@mit.edu", + "kturner5p@technorati.com", + "trice5q@reddit.com", + "rwhite5r@mac.com", + "ariley5s@geocities.jp", + "aanderson5t@printfriendly.com", + "rmitchell5u@yale.edu", + "rromero5v@elegantthemes.com", + "progers5w@upenn.edu", + "eclark5x@sun.com", + "award5y@odnoklassniki.ru", + "areid5z@blogspot.com", + "cpalmer60@edublogs.org", + "jjenkins61@newyorker.com", + "rwhite62@zimbio.com", + "aschmidt63@cnet.com", + "medwards64@columbia.edu", + "tmurray65@shop-pro.jp", + "lpatterson66@rambler.ru", + "lspencer67@domainmarket.com", + "kwells68@chronoengine.com", + "bgarrett69@weebly.com", + "rpalmer6a@artisteer.com", + "cortiz6b@shinystat.com", + "ealexander6c@sphinn.com", + "jsnyder6d@ed.gov", + "bbishop6e@odnoklassniki.ru", + "amoore6f@ezinearticles.com", + "lellis6g@jigsy.com", + "mtorres6h@cafepress.com", + "cfields6i@ebay.com", + "gmorrison6j@domainmarket.com", + "mrose6k@google.de", + "nkim6l@paypal.com", + "acampbell6m@dmoz.org", + "erichards6n@guardian.co.uk", + "agonzalez6o@nps.gov", + "awatkins6p@ebay.co.uk", + "croberts6q@dailymotion.com", + "cwillis6r@miibeian.gov.cn", + "ktucker6s@businessinsider.com", + "ewallace6t@trellian.com", + "kbailey6u@yahoo.co.jp", + "wdunn6v@wikia.com", + "dshaw6w@utexas.edu", + "mruiz6x@usgs.gov", + "ncarr6y@army.mil", + "dfields6z@myspace.com", + "mfox70@wix.com", + "alarson71@huffingtonpost.com", + "lburton72@amazon.de", + "cchapman73@desdev.cn", + "ecampbell74@google.com.au", + "jcooper75@blog.com", + "pdixon76@google.pl", + "mgarza77@cdbaby.com", + "dlee78@biglobe.ne.jp", + "cvasquez79@mapquest.com", + "scarroll7a@mlb.com", + "swalker7b@symantec.com", + "whayes7c@naver.com", + "twright7d@utexas.edu", + "dgonzales7e@constantcontact.com", + "kcarroll7f@blogs.com", + "wbrooks7g@bbc.co.uk", + "dschmidt7h@themeforest.net", + "sgarcia7i@biglobe.ne.jp", + "jrice7j@bbb.org", + "lwheeler7k@ft.com", + "bflores7l@merriam-webster.com", + "jcoleman7m@gizmodo.com", + "rbradley7n@apple.com", + "kgordon7o@soup.io", + "fwillis7p@columbia.edu", + "bbryant7q@ted.com", + "fsnyder7r@tinyurl.com", + "eknight7s@devhub.com", + "kmccoy7t@youtu.be", + "rfranklin7u@mit.edu", + "hevans7v@list-manage.com", + "dward7w@earthlink.net", + "nmyers7x@pen.io", + "efreeman7y@skype.com", + "eryan7z@wisc.edu", + "rmills80@patch.com", + "dburton81@pagesperso-orange.fr", + "kboyd82@elpais.com", + "jstephens83@nih.gov", + "mdavis84@netscape.com", + "jperry85@netlog.com", + "sbowman86@1und1.de", + "shart87@sitemeter.com", + "cdiaz88@meetup.com", + "cking89@goo.ne.jp", + "gperry8a@npr.org", + "kwoods8b@spotify.com", + "jgonzales8c@narod.ru", + "cgonzales8d@state.gov", + "tdiaz8e@prweb.com", + "kcarter8f@economist.com", + "jdunn8g@google.es", + "cbowman8h@omniture.com", + "eperry8i@unc.edu", + "lreyes8j@google.com", + "jberry8k@netvibes.com", + "lhowell8l@businesswire.com", + "rwillis8m@msn.com", + "astevens8n@harvard.edu", + "lcruz8o@clickbank.net", + "mreid8p@gravatar.com", + "lharrison8q@behance.net", + "thowell8r@imdb.com", + "brodriguez8s@pinterest.com", + "dhughes8t@wikia.com", + "rnelson8u@360.cn", + "jdiaz8v@goo.ne.jp", + "wgrant8w@oracle.com", + "jmorrison8x@fotki.com", + "acollins8y@taobao.com", + "ccollins8z@mapquest.com", + "igibson90@netlog.com", + "jfoster91@google.com.hk", + "rdunn92@skype.com", + "jgibson93@123-reg.co.uk", + "jarmstrong94@xrea.com", + "rmitchell95@google.co.uk", + "cdiaz96@latimes.com", + "wjohnston97@blogger.com", + "jtaylor98@ebay.co.uk", + "nnichols99@networkadvertising.org", + "jramirez9a@intel.com", + "bellis9b@fc2.com", + "ghowell9c@go.com", + "ajohnson9d@opera.com", + "bgarrett9e@chicagotribune.com", + "eperkins9f@wikia.com", + "mreed9g@huffingtonpost.com", + "ccruz9h@washingtonpost.com", + "scarr9i@myspace.com", + "lrobertson9j@amazon.com", + "imatthews9k@csmonitor.com", + "clittle9l@blinklist.com", + "gperez9m@ebay.co.uk", + "lchavez9n@cyberchimps.com", + "sharris9o@last.fm", + "apierce9p@live.com", + "jromero9q@mediafire.com", + "dholmes9r@usatoday.com", + "vhamilton9s@meetup.com", + "wpalmer9t@businessweek.com", + "ckelly9u@tripadvisor.com", + "pferguson9v@opensource.org", + "jpowell9w@gmpg.org", + "astanley9x@tinyurl.com", + "ewheeler9y@networksolutions.com", + "kturner9z@tripadvisor.com", + "eleea0@tmall.com", + "rowensa1@shareasale.com", + "tpaynea2@linkedin.com", + "ssandersa3@china.com.cn", + "klewisa4@cbc.ca", + "lnguyena5@uol.com.br", + "trobinsona6@sakura.ne.jp", + "jsandersa7@blogspot.com", + "apereza8@redcross.org", + "dboyda9@ft.com", + "darmstrongaa@liveinternet.ru", + "dmillsab@stumbleupon.com", + "tyoungac@tiny.cc", + "lmartinad@ftc.gov", + "jlawsonae@facebook.com", + "rortizaf@home.pl", + "lgarzaag@unc.edu", + "sshawah@economist.com", + "kgrantai@csmonitor.com", + "awelchaj@shareasale.com", + "awilsonak@wikia.com", + "clynchal@shareasale.com", + "jmorrisonam@java.com", + "wcolemanan@sphinn.com", + "sfergusonao@arstechnica.com", + "charrisonap@house.gov", + "ahansenaq@shinystat.com", + "trossar@youtu.be", + "brossas@jugem.jp", + "bramosat@sogou.com", + "rgrahamau@google.nl", + "gblackav@delicious.com", + "pwatsonaw@washingtonpost.com", + "alittleax@amazon.com", + "gjohnsonay@nydailynews.com", + "lromeroaz@blogger.com", + "dmeyerb0@skype.com", + "bburkeb1@topsy.com", + "apetersonb2@weather.com", + "chendersonb3@uiuc.edu", + "jhartb4@elegantthemes.com", + "jhunterb5@google.pl", + "ddayb6@ebay.co.uk", + "acolemanb7@ustream.tv", + "jhillb8@prnewswire.com", + "amoralesb9@fema.gov", + "kgrahamba@smugmug.com", + "mfullerbb@aboutads.info", + "cburtonbc@marketwatch.com", + "jwoodbd@theguardian.com", + "aholmesbe@tumblr.com", + "aharveybf@etsy.com", + "jblackbg@bandcamp.com", + "vrussellbh@hibu.com", + "balexanderbi@edublogs.org", + "cgordonbj@netscape.com", + "swatsonbk@yahoo.com", + "mkingbl@nps.gov", + "bgrantbm@is.gd", + "fmeyerbn@yelp.com", + "cwebbbo@walmart.com", + "earnoldbp@exblog.jp", + "sarmstrongbq@china.com.cn", + "kriverabr@ucoz.ru", + "jmorrisonbs@geocities.com", + "pedwardsbt@netlog.com", + "aallenbu@google.ca", + "wchapmanbv@umn.edu", + "cmyersbw@rakuten.co.jp", + "tsimpsonbx@latimes.com", + "maustinby@bloglovin.com", + "twheelerbz@webnode.com", + "rharrisc0@examiner.com", + "lpalmerc1@fotki.com", + "dmorganc2@amazon.co.uk", + "esnyderc3@uiuc.edu", + "jdunnc4@twitter.com", + "jtaylorc5@about.me", + "vsimpsonc6@princeton.edu", + "vstewartc7@gravatar.com", + "afisherc8@narod.ru", + "gfernandezc9@ehow.com", + "jandersonca@yolasite.com", + "awoodscb@360.cn", + "mchapmancc@meetup.com", + "jgilbertcd@usda.gov", + "dfergusonce@va.gov", + "aarnoldcf@hud.gov", + "mromerocg@hhs.gov", + "rkennedych@google.com.br", + "jrussellci@imageshack.us", + "mfordcj@utexas.edu", + "lgomezck@umn.edu", + "tjohnstoncl@sakura.ne.jp", + "chernandezcm@noaa.gov", + "mmccoycn@berkeley.edu", + "twhiteco@amazonaws.com", + "wmyerscp@japanpost.jp", + "blewiscq@360.cn", + "jlynchcr@tinyurl.com", + "tpalmercs@freewebs.com", + "jkimct@howstuffworks.com", + "cduncancu@behance.net", + "mgibsoncv@google.it", + "hgrahamcw@npr.org", + "kscottcx@usgs.gov", + "jfullercy@huffingtonpost.com", + "ewellscz@arstechnica.com", + "klewisd0@ow.ly", + "jcarrolld1@nationalgeographic.com", + "mfernandezd2@geocities.jp", + "jwilliamsd3@microsoft.com", + "jfowlerd4@oaic.gov.au", + "jalvarezd5@senate.gov", + "bhowelld6@e-recht24.de", + "jweaverd7@google.fr", + "dfisherd8@yellowpages.com", + "rscottd9@hexun.com", + "sfreemanda@nydailynews.com", + "rgraydb@google.com.hk", + "pthompsondc@delicious.com", + "mreeddd@timesonline.co.uk", + "ltorresde@i2i.jp", + "swhitedf@baidu.com", + "hharrisondg@amazon.co.uk", + "awagnerdh@cpanel.net", + "dmyersdi@webmd.com", + "jweaverdj@slashdot.org", + "sjonesdk@mapy.cz", + "jbrowndl@loc.gov", + "wmorrisdm@dedecms.com", + "rrobinsondn@goo.gl", + "vpaynedo@wikimedia.org", + "hbradleydp@bravesites.com", + "arichardsdq@vimeo.com", + "cburtondr@mayoclinic.com", + "ehendersonds@ning.com", + "dkelleydt@google.de", + "bpricedu@aol.com", + "twoodsdv@taobao.com", + "tvasquezdw@people.com.cn", + "awilsondx@issuu.com", + "tnicholsdy@ed.gov", + "dburtondz@cbc.ca", + "clewise0@constantcontact.com", + "nramose1@wikipedia.org", + "gharpere2@narod.ru", + "gschmidte3@ed.gov", + "padamse4@noaa.gov", + "abishope5@hatena.ne.jp", + "sarmstronge6@wordpress.org", + "dwalkere7@discovery.com", + "mmcdonalde8@nbcnews.com", + "jwatkinse9@ocn.ne.jp", + "tgibsonea@businessweek.com", + "amorganeb@xrea.com", + "scastilloec@barnesandnoble.com", + "aaustined@shutterfly.com", + "akingee@reverbnation.com", + "rcarpenteref@tuttocitta.it", + "bjohnsoneg@4shared.com", + "rsimseh@4shared.com", + "lgrayei@t-online.de", + "jreynoldsej@geocities.jp", + "cwatkinsek@alibaba.com", + "jwestel@stumbleupon.com", + "ssimmonsem@bbb.org", + "brossen@ebay.co.uk", + "jstevenseo@china.com.cn", + "ecoleep@eepurl.com", + "nweavereq@exblog.jp", + "ewarder@wisc.edu", + "dgutierrezes@sina.com.cn", + "fstoneet@taobao.com", + "slewiseu@netscape.com", + "mwardev@bizjournals.com", + "pmillerew@elegantthemes.com", + "ageorgeex@google.cn", + "pjohnstoney@yelp.com", + "jpowellez@1688.com", + "jalexanderf0@google.com.hk", + "akingf1@hao123.com", + "pkelleyf2@mlb.com", + "scolef3@livejournal.com", + "cedwardsf4@admin.ch", + "mricef5@google.com.hk", + "aporterf6@bing.com", + "marnoldf7@mysql.com", + "sgibsonf8@npr.org", + "ngreenef9@mail.ru", + "trichardsonfa@tamu.edu", + "dmarshallfb@yolasite.com", + "kgilbertfc@mozilla.org", + "pfieldsfd@csmonitor.com", + "cwrightfe@liveinternet.ru", + "nfreemanff@admin.ch", + "jkimfg@networksolutions.com", + "dsimmonsfh@zimbio.com", + "nburtonfi@techcrunch.com", + "creedfj@gmpg.org", + "priverafk@1688.com", + "mgomezfl@4shared.com", + "lknightfm@wordpress.com", + "mreyesfn@gmpg.org", + "krichardsfo@dailymotion.com", + "amillerfp@mapquest.com", + "twrightfq@mediafire.com", + "schapmanfr@unesco.org", + "bburkefs@si.edu", + "lbakerft@icq.com", + "ktorresfu@blogtalkradio.com", + "planefv@wikispaces.com", + "lgeorgefw@bloglines.com", + "bgonzalezfx@csmonitor.com", + "lfowlerfy@arstechnica.com", + "aschmidtfz@hp.com", + "aharrisong0@about.com", + "mjamesg1@deviantart.com", + "rkingg2@nih.gov", + "jpriceg3@vistaprint.com", + "alittleg4@vinaora.com", + "pcarrg5@gizmodo.com", + "mfowlerg6@boston.com", + "hpetersong7@google.co.jp", + "jlynchg8@google.ru", + "lcoleg9@phoca.cz", + "jsimpsonga@clickbank.net", + "grichardsgb@vistaprint.com", + "kstevensgc@jigsy.com", + "mdanielsgd@prlog.org", + "gmarshallge@ow.ly", + "afreemangf@forbes.com", + "mmartingg@tuttocitta.it", + "rhansengh@shutterfly.com", + "rwatkinsgi@marketwatch.com", + "bmillergj@paypal.com", + "lkinggk@homestead.com", + "hmorgangl@mapquest.com", + "awarrengm@ow.ly", + "lfraziergn@cdc.gov", + "twashingtongo@tumblr.com", + "tfowlergp@sun.com", + "rraygq@google.co.jp", + "cmitchellgr@csmonitor.com", + "tnicholsgs@auda.org.au", + "gperrygt@omniture.com", + "dadamsgu@i2i.jp", + "shawkinsgv@joomla.org", + "jhawkinsgw@bloomberg.com", + "jyounggx@studiopress.com", + "jpiercegy@mac.com", + "jallengz@cbsnews.com", + "cjonesh0@skype.com", + "dperkinsh1@salon.com", + "rcrawfordh2@wunderground.com", + "khallh3@pinterest.com", + "kweaverh4@weibo.com", + "bhunth5@bluehost.com", + "ppriceh6@surveymonkey.com", + "hkingh7@icq.com", + "sdixonh8@flavors.me", + "shunterh9@vimeo.com", + "mmasonha@auda.org.au", + "eallenhb@privacy.gov.au", + "lrichardsonhc@symantec.com", + "kbradleyhd@vinaora.com", + "tperezhe@wisc.edu", + "dfordhf@ask.com", + "jramoshg@github.io", + "emyershh@state.gov", + "nperkinshi@alexa.com", + "srodriguezhj@delicious.com", + "sparkerhk@bluehost.com", + "wgeorgehl@github.io", + "asnyderhm@sciencedirect.com", + "ffloreshn@imdb.com", + "msandersho@barnesandnoble.com", + "jschmidthp@amazon.co.uk", + "anicholshq@cnet.com", + "mlonghr@addtoany.com", + "dmeyerhs@disqus.com", + "pfullerht@1688.com", + "ariverahu@mtv.com", + "tallenhv@yandex.ru", + "warnoldhw@twitpic.com", + "redwardshx@vimeo.com", + "mweaverhy@friendfeed.com", + "egreenhz@github.com", + "jhunti0@oaic.gov.au", + "waustini1@bluehost.com", + "rduncani2@qq.com", + "bmorrisoni3@cisco.com", + "jhilli4@dailymotion.com", + "jrayi5@weibo.com", + "jstewarti6@delicious.com", + "wblacki7@unicef.org", + "jwheeleri8@soup.io", + "dgarzai9@twitter.com", + "grodriguezia@cpanel.net", + "lfreemanib@devhub.com", + "njonesic@blogger.com", + "msandersid@icio.us", + "aperkinsie@independent.co.uk", + "tbaileyif@about.com", + "bortizig@livejournal.com", + "fstevensih@blogtalkradio.com", + "schapmanii@amazon.co.uk", + "adayij@nyu.edu", + "cmorrisonik@1688.com", + "bfosteril@answers.com", + "grossim@mashable.com", + "pbishopin@qq.com", + "spierceio@telegraph.co.uk", + "aellisip@hugedomains.com", + "wspenceriq@wufoo.com", + "rallenir@delicious.com", + "tfrazieris@gnu.org", + "rfranklinit@furl.net", + "jdunniu@blogspot.com", + "hmilleriv@hexun.com", + "ngutierreziw@amazon.co.jp", + "sparkerix@booking.com", + "jfoxiy@blogs.com", + "bmeyeriz@desdev.cn", + "amasonj0@scribd.com", + "awrightj1@surveymonkey.com", + "ajonesj2@ca.gov", + "jlewisj3@privacy.gov.au", + "dhamiltonj4@gnu.org", + "shartj5@umn.edu", + "rrosej6@cnbc.com", + "abradleyj7@arstechnica.com", + "dcoxj8@sitemeter.com", + "aandersonj9@networkadvertising.org", + "nwilliamsonja@unesco.org", + "selliottjb@istockphoto.com", + "pbutlerjc@loc.gov", + "rberryjd@yandex.ru", + "rsandersje@so-net.ne.jp", + "mcookjf@sciencedaily.com", + "mpalmerjg@washington.edu", + "sberryjh@zdnet.com", + "eknightji@utexas.edu", + "cgarrettjj@sakura.ne.jp", + "fwatsonjk@amazon.co.jp", + "rgrantjl@gnu.org", + "parnoldjm@bigcartel.com", + "rsimmonsjn@ehow.com", + "cpaynejo@alibaba.com", + "dhughesjp@pagesperso-orange.fr", + "jperezjq@xing.com", + "jalvarezjr@theguardian.com", + "ssimsjs@senate.gov", + "ddunnjt@xinhuanet.com", + "swilliamsju@sphinn.com", + "bcarrjv@hibu.com", + "rtaylorjw@ebay.co.uk", + "mjacobsjx@vistaprint.com", + "mboydjy@free.fr", + "lwilliamsonjz@chronoengine.com", + "jgardnerk0@bbc.co.uk", + "jrogersk1@xinhuanet.com", + "tgreenk2@elpais.com", + "sgeorgek3@facebook.com", + "apiercek4@mysql.com", + "tberryk5@cbslocal.com", + "lrayk6@nationalgeographic.com", + "crossk7@tinyurl.com", + "fcunninghamk8@guardian.co.uk", + "jduncank9@independent.co.uk", + "jburtonka@spotify.com", + "spiercekb@ebay.com", + "amoorekc@t-online.de", + "rknightkd@go.com", + "jkingke@aboutads.info", + "eowenskf@fda.gov", + "jcollinskg@who.int", + "aknightkh@1und1.de", + "cwoodski@cpanel.net", + "tgutierrezkj@1und1.de", + "swardkk@nih.gov", + "mturnerkl@booking.com", + "mhickskm@ycombinator.com", + "jgraykn@hexun.com", + "jsullivanko@moonfruit.com", + "kcolekp@blog.com", + "dmoraleskq@vimeo.com", + "sgreenkr@woothemes.com", + "bwashingtonks@ebay.co.uk", + "sdiazkt@unblog.fr", + "bfordku@seattletimes.com", + "klewiskv@bbc.co.uk", + "sberrykw@parallels.com", + "jfoxkx@liveinternet.ru", + "cscottky@friendfeed.com", + "scarrollkz@hexun.com", + "agonzalezl0@rakuten.co.jp", + "jbakerl1@ask.com", + "nstonel2@ovh.net", + "agonzalezl3@fotki.com", + "jhalll4@nsw.gov.au", + "tmedinal5@topsy.com", + "jhayesl6@noaa.gov", + "jsandersl7@google.com", + "jdixonl8@tamu.edu", + "fjohnsonl9@cbsnews.com", + "jweaverla@fastcompany.com", + "hdixonlb@about.com", + "dschmidtlc@japanpost.jp", + "daustinld@wiley.com", + "dgreenle@opera.com", + "lramirezlf@samsung.com", + "msullivanlg@free.fr", + "pporterlh@angelfire.com", + "mhawkinsli@list-manage.com", + "kfordlj@homestead.com", + "clynchlk@google.ru", + "tkingll@123-reg.co.uk", + "rfergusonlm@uiuc.edu", + "arichardsln@engadget.com", + "kcrawfordlo@dedecms.com", + "hfranklinlp@vinaora.com", + "jdixonlq@wordpress.org", + "belliottlr@mit.edu", + "cmatthewsls@tinypic.com", + "kharveylt@irs.gov", + "jlonglu@chronoengine.com", + "slarsonlv@hp.com", + "athomaslw@msu.edu", + "cscottlx@vk.com", + "bramosly@canalblog.com", + "rarnoldlz@princeton.edu", + "jwoodm0@myspace.com", + "landersonm1@virginia.edu", + "jmyersm2@blogger.com", + "mallenm3@cbslocal.com", + "rberrym4@ucoz.com", + "acampbellm5@vinaora.com", + "tdanielsm6@uol.com.br", + "sthompsonm7@soundcloud.com", + "jmedinam8@webeden.co.uk", + "mhowellm9@wiley.com", + "jwatkinsma@flavors.me", + "ewestmb@nytimes.com", + "bvasquezmc@ucoz.com", + "rfullermd@microsoft.com", + "jjonesme@oakley.com", + "pstevensmf@symantec.com", + "apowellmg@plala.or.jp", + "acoxmh@yolasite.com", + "pkelleymi@usda.gov", + "nduncanmj@jiathis.com", + "landrewsmk@narod.ru", + "kmoralesml@slate.com", + "tmarshallmm@1688.com", + "jthompsonmn@fastcompany.com", + "jbryantmp@lycos.com", + "ssimpsonmq@histats.com", + "mmorrismr@123-reg.co.uk", + "whicksms@hugedomains.com", + "smarshallmt@opera.com", + "talvarezmu@vkontakte.ru", + "draymv@sciencedaily.com", + "fkelleymw@twitter.com", + "swallacemx@techcrunch.com", + "bchavezmy@ow.ly", + "sgarciamz@tripadvisor.com", + "hfoxn0@eepurl.com", + "kdeann1@google.ru", + "crodriguezn2@ifeng.com", + "barnoldn3@vistaprint.com", + "mbowmann4@google.de", + "rgrahamn5@thetimes.co.uk", + "fhansonn6@dot.gov", + "cbarnesn7@nba.com", + "hharveyn8@canalblog.com", + "jknightn9@hc360.com", + "jmorrisna@hao123.com", + "dmillsnb@i2i.jp", + "mhansennc@harvard.edu", + "gpetersnd@ask.com", + "rsanchezne@newyorker.com", + "dhuntnf@ihg.com", + "jrileyng@oakley.com", + "jdixonnh@shop-pro.jp", + "spalmerni@scribd.com", + "pbaileynj@house.gov", + "mwalkernk@hud.gov", + "shenrynl@nydailynews.com", + "drogersnm@taobao.com", + "apereznn@liveinternet.ru", + "lburnsno@xrea.com", + "dwilliamsnp@reference.com", + "cwoodnq@cbslocal.com", + "wpetersnr@webmd.com", + "blawsonns@live.com", + "jwoodsnt@illinois.edu", + "jstephensnu@liveinternet.ru", + "gduncannv@unesco.org", + "klarsonnw@mapy.cz", + "emorgannx@wired.com", + "crogersny@plala.or.jp", + "cwarrennz@mit.edu", + "sdiazo0@indiatimes.com", + "mjohnsono1@mozilla.com", + "cgarciao2@xing.com", + "kmoraleso3@ihg.com", + "bromeroo4@addthis.com", + "nhawkinso5@mayoclinic.com", + "eelliotto6@sakura.ne.jp", + "jnicholso7@newyorker.com", + "cmurrayo8@taobao.com", + "kfordo9@house.gov", + "fwebboa@usnews.com", + "fmoralesob@tumblr.com", + "jkennedyoc@fema.gov", + "mharperod@nymag.com", + "rbakeroe@goodreads.com", + "badamsof@artisteer.com", + "eoliverog@xinhuanet.com", + "rperryoh@geocities.com", + "dreyesoi@si.edu", + "bgarrettoj@live.com", + "jadamsok@tripod.com", + "dbakerol@behance.net", + "trichardsonom@taobao.com", + "ltorreson@constantcontact.com", + "bharveyoo@com.com", + "mkimop@berkeley.edu", + "awallaceoq@sphinn.com", + "rcoxor@paginegialle.it", + "phuntos@amazon.co.uk", + "pbennettot@hatena.ne.jp", + "ebishopou@google.co.uk", + "pmcdonaldov@mozilla.com", + "jwrightow@cloudflare.com", + "hpetersonox@ucla.edu", + "shamiltonoy@squidoo.com", + "tkingoz@house.gov", + "rrobertsonp0@twitpic.com", + "lgilbertp1@oakley.com", + "apetersp2@domainmarket.com", + "rduncanp3@skype.com", + "bwilliamsp4@blogs.com", + "sedwardsp5@howstuffworks.com", + "hdavisp6@chronoengine.com", + "srichardsonp7@multiply.com", + "scollinsp8@nasa.gov", + "kperryp9@twitter.com", + "sblackpa@smugmug.com", + "cmartinpb@mysql.com", + "agomezpc@accuweather.com", + "jbryantpd@geocities.com", + "ajacksonpe@imgur.com", + "dmillerpf@ca.gov", + "agrantpg@wp.com", + "pjohnstonph@webs.com", + "ajacobspi@ehow.com", + "jwoodspj@vinaora.com", + "lrussellpk@uol.com.br", + "athomaspl@dot.gov", + "bbennettpm@instagram.com", + "ddanielspn@networkadvertising.org", + "elongpo@pen.io", + "randrewspp@creativecommons.org", + "pharperpq@intel.com", + "lmillspr@facebook.com", + "rcarrollps@prnewswire.com", + "jmartinpt@hao123.com", + "jbrookspu@nature.com", + "jaustinpv@intel.com", + "lhudsonpw@vistaprint.com", + "bcarrollpx@hao123.com", + "jpalmerpy@goo.gl", + "csullivanpz@godaddy.com", + "rhughesq0@seesaa.net", + "tmartinezq1@miibeian.gov.cn", + "tmillerq2@1und1.de", + "apierceq3@jimdo.com", + "jtaylorq4@cocolog-nifty.com", + "mwebbq5@squidoo.com", + "chughesq6@mediafire.com", + "bandersonq7@phpbb.com", + "arobinsonq8@harvard.edu", + "lmitchellq9@themeforest.net", + "edayqa@shareasale.com", + "bhicksqb@miibeian.gov.cn", + "mwilliamsonqc@wired.com", + "egibsonqd@cisco.com", + "bbradleyqe@weebly.com", + "clawsonqf@blogger.com", + "woliverqg@theglobeandmail.com", + "cperryqh@youtube.com", + "jbowmanqi@intel.com", + "wfernandezqj@dropbox.com", + "bgarrettqk@whitehouse.gov", + "barmstrongql@shop-pro.jp", + "wmasonqm@newsvine.com", + "rwestqn@baidu.com", + "cpayneqo@cdbaby.com", + "awashingtonqp@cornell.edu", + "ehayesqq@multiply.com", + "jwatkinsqr@amazonaws.com", + "cwilsonqs@php.net", + "wsimsqt@google.fr", + "pmedinaqu@chron.com", + "mperezqv@businessinsider.com", + "rbellqw@stanford.edu", + "mgibsonqx@booking.com", + "bmyersqy@etsy.com", + "tyoungqz@topsy.com", + "dberryr0@time.com", + "ephillipsr1@samsung.com", + "nmoralesr2@independent.co.uk", + "agomezr3@wordpress.com", + "tboydr4@dropbox.com", + "lwatsonr5@usgs.gov", + "tcooperr6@imgur.com", + "rmillerr7@foxnews.com", + "amoralesr8@nbcnews.com", + "pwellsr9@zdnet.com", + "mfieldsra@w3.org", + "bhansonrb@altervista.org", + "mdiazrc@guardian.co.uk", + "rwellsrd@walmart.com", + "jchapmanre@marketwatch.com", + "promerorf@nasa.gov", + "jhansonrg@amazonaws.com", + "shansonrh@about.com", + "rperezri@alibaba.com", + "jmeyerrj@elpais.com", + "afosterrk@cnet.com", + "bhallrl@cpanel.net", + "sreynoldsrm@wufoo.com", + "jfreemanrn@csmonitor.com", + "esanchezro@businessinsider.com", + "mlynchrp@reverbnation.com", + "lclarkrq@xinhuanet.com", + "rrussellrr@bloomberg.com" + ], + "status":[ + "unsubscribed", + "confirmed", + "subscribed", + "unsubscribed", + "unsubscribed", + "confirmed", + "confirmed", + "unconfirmed", + "confirmed", + "unsubscribed", + "confirmed", + "unconfirmed", + "subscribed", + "subscribed", + "subscribed", + "confirmed", + "unsubscribed", + "confirmed", + "confirmed", + "unsubscribed", + "subscribed", + "unconfirmed", + "unsubscribed", + "unconfirmed", + "unsubscribed", + "unconfirmed", + "subscribed", + "unconfirmed", + "unsubscribed", + "unconfirmed", + "confirmed", + "confirmed", + "confirmed", + "confirmed", + "confirmed", + "confirmed", + "unsubscribed", + "subscribed", + "unsubscribed", + "subscribed", + "confirmed", + "confirmed", + "confirmed", + "confirmed", + "unconfirmed", + "confirmed", + "unsubscribed", + "unsubscribed", + "unsubscribed", + "unsubscribed", + "unconfirmed", + "unsubscribed", + "unconfirmed", + "subscribed", + "confirmed", + "unconfirmed", + "confirmed", + "subscribed", + "subscribed", + "unconfirmed", + "unconfirmed", + "confirmed", + "subscribed", + "unconfirmed", + "unsubscribed", + "unsubscribed", + "subscribed", + "unconfirmed", + "subscribed", + "subscribed", + "subscribed", + "confirmed", + "confirmed", + "confirmed", + "confirmed", + "unconfirmed", + "unsubscribed", + "unsubscribed", + "unconfirmed", + "confirmed", + "unconfirmed", + "unsubscribed", + "subscribed", + "confirmed", + "confirmed", + "unconfirmed", + "confirmed", + "unconfirmed", + "subscribed", + "confirmed", + "unconfirmed", + "subscribed", + "subscribed", + "unsubscribed", + "confirmed", + "unsubscribed", + "confirmed", + "unconfirmed", + "subscribed", + "subscribed", + "unconfirmed", + "unconfirmed", + "confirmed", + "unconfirmed", + "subscribed", + "subscribed", + "unconfirmed", + "unconfirmed", + "unconfirmed", + "confirmed", + "unsubscribed", + "unconfirmed", + "confirmed", + "unconfirmed", + "subscribed", + "confirmed", + "subscribed", + "unsubscribed", + "confirmed", + "unconfirmed", + "unconfirmed", + "unconfirmed", + "unsubscribed", + "unsubscribed", + "subscribed", + "subscribed", + "subscribed", + "unsubscribed", + "confirmed", + "confirmed", + "unsubscribed", + "unsubscribed", + "confirmed", + "unsubscribed", + "subscribed", + "unsubscribed", + "confirmed", + "confirmed", + "unconfirmed", + "unconfirmed", + "unconfirmed", + "subscribed", + "confirmed", + "confirmed", + "confirmed", + "unconfirmed", + "confirmed", + "unsubscribed", + "unconfirmed", + "subscribed", + "unsubscribed", + "confirmed", + "subscribed", + "subscribed", + "unsubscribed", + "subscribed", + "confirmed", + "unconfirmed", + "unsubscribed", + "subscribed", + "unconfirmed", + "unconfirmed", + "confirmed", + "subscribed", + "unconfirmed", + "confirmed", + "unsubscribed", + "subscribed", + "unconfirmed", + "unsubscribed", + "unconfirmed", + "unsubscribed", + "unsubscribed", + "subscribed", + "confirmed", + "unsubscribed", + "confirmed", + "subscribed", + "unconfirmed", + "confirmed", + "subscribed", + "confirmed", + "unsubscribed", + "unconfirmed", + "subscribed", + "unconfirmed", + "unconfirmed", + "unconfirmed", + "subscribed", + "unconfirmed", + "subscribed", + "confirmed", + "subscribed", + "unconfirmed", + "unsubscribed", + "unconfirmed", + "unsubscribed", + "unsubscribed", + "unconfirmed", + "unsubscribed", + "confirmed", + "unconfirmed", + "unconfirmed", + "subscribed", + "unconfirmed", + "unsubscribed", + "confirmed", + "unsubscribed", + "confirmed", + "unconfirmed", + "confirmed", + "unsubscribed", + "unsubscribed", + "unconfirmed", + "subscribed", + "unconfirmed", + "confirmed", + "subscribed", + "subscribed", + "confirmed", + "subscribed", + "confirmed", + "unsubscribed", + "unsubscribed", + "confirmed", + "unconfirmed", + "subscribed", + "subscribed", + "subscribed", + "confirmed", + "subscribed", + "unsubscribed", + "confirmed", + "unsubscribed", + "subscribed", + "confirmed", + "unconfirmed", + "confirmed", + "subscribed", + "confirmed", + "unsubscribed", + "subscribed", + "subscribed", + "confirmed", + "unconfirmed", + "subscribed", + "subscribed", + "unconfirmed", + "confirmed", + "subscribed", + "confirmed", + "confirmed", + "unsubscribed", + "subscribed", + "unsubscribed", + "unsubscribed", + "unconfirmed", + "subscribed", + "unsubscribed", + "unsubscribed", + "confirmed", + "subscribed", + "unsubscribed", + "subscribed", + "unconfirmed", + "unsubscribed", + "unconfirmed", + "unsubscribed", + "unsubscribed", + "subscribed", + "unconfirmed", + "unsubscribed", + "unconfirmed", + "unconfirmed", + "confirmed", + "unconfirmed", + "unsubscribed", + "unconfirmed", + "subscribed", + "confirmed", + "subscribed", + "subscribed", + "unconfirmed", + "confirmed", + "unsubscribed", + "confirmed", + "subscribed", + "unsubscribed", + "subscribed", + "unsubscribed", + "unconfirmed", + "unsubscribed", + "unsubscribed", + "subscribed", + "confirmed", + "unsubscribed", + "unconfirmed", + "confirmed", + "subscribed", + "confirmed", + "unsubscribed", + "confirmed", + "unsubscribed", + "confirmed", + "confirmed", + "confirmed", + "subscribed", + "unsubscribed", + "unsubscribed", + "unconfirmed", + "confirmed", + "confirmed", + "unconfirmed", + "unconfirmed", + "unsubscribed", + "unsubscribed", + "confirmed", + "confirmed", + "unsubscribed", + "confirmed", + "unsubscribed", + "unconfirmed", + "unsubscribed", + "confirmed", + "unconfirmed", + "unsubscribed", + "subscribed", + "unsubscribed", + "unsubscribed", + "subscribed", + "subscribed", + "unconfirmed", + "subscribed", + "unconfirmed", + "unconfirmed", + "confirmed", + "unsubscribed", + "unconfirmed", + "unconfirmed", + "unconfirmed", + "confirmed", + "confirmed", + "confirmed", + "subscribed", + "unsubscribed", + "unconfirmed", + "subscribed", + "subscribed", + "subscribed", + "unconfirmed", + "unsubscribed", + "unconfirmed", + "confirmed", + "confirmed", + "confirmed", + "subscribed", + "confirmed", + "unsubscribed", + "confirmed", + "unsubscribed", + "confirmed", + "unconfirmed", + "subscribed", + "unsubscribed", + "unconfirmed", + "confirmed", + "subscribed", + "unconfirmed", + "subscribed", + "confirmed", + "subscribed", + "confirmed", + "unconfirmed", + "confirmed", + "confirmed", + "confirmed", + "subscribed", + "subscribed", + "confirmed", + "confirmed", + "subscribed", + "unsubscribed", + "subscribed", + "confirmed", + "unconfirmed", + "confirmed", + "unsubscribed", + "unsubscribed", + "subscribed", + "confirmed", + "unconfirmed", + "subscribed", + "unsubscribed", + "subscribed", + "subscribed", + "unsubscribed", + "confirmed", + "unsubscribed", + "subscribed", + "unsubscribed", + "unconfirmed", + "unconfirmed", + "subscribed", + "confirmed", + "unconfirmed", + "subscribed", + "subscribed", + "unconfirmed", + "unsubscribed", + "confirmed", + "subscribed", + "subscribed", + "confirmed", + "unconfirmed", + "unconfirmed", + "confirmed", + "confirmed", + "unsubscribed", + "unconfirmed", + "confirmed", + "subscribed", + "unconfirmed", + "unconfirmed", + "subscribed", + "confirmed", + "unsubscribed", + "unconfirmed", + "unconfirmed", + "unsubscribed", + "subscribed", + "unsubscribed", + "confirmed", + "unconfirmed", + "confirmed", + "unsubscribed", + "confirmed", + "unconfirmed", + "unsubscribed", + "confirmed", + "confirmed", + "confirmed", + "subscribed", + "subscribed", + "unconfirmed", + "unsubscribed", + "unconfirmed", + "unsubscribed", + "confirmed", + "confirmed", + "subscribed", + "unconfirmed", + "unsubscribed", + "unsubscribed", + "subscribed", + "unsubscribed", + "unsubscribed", + "unsubscribed", + "unsubscribed", + "confirmed", + "unconfirmed", + "unconfirmed", + "subscribed", + "unconfirmed", + "confirmed", + "subscribed", + "unconfirmed", + "subscribed", + "confirmed", + "subscribed", + "subscribed", + "subscribed", + "unsubscribed", + "unsubscribed", + "unsubscribed", + "unconfirmed", + "confirmed", + "confirmed", + "subscribed", + "subscribed", + "unconfirmed", + "confirmed", + "subscribed", + "subscribed", + "subscribed", + "unconfirmed", + "confirmed", + "subscribed", + "confirmed", + "confirmed", + "confirmed", + "subscribed", + "unsubscribed", + "unconfirmed", + "confirmed", + "unsubscribed", + "unconfirmed", + "confirmed", + "subscribed", + "confirmed", + "unconfirmed", + "subscribed", + "unconfirmed", + "confirmed", + "unsubscribed", + "unconfirmed", + "subscribed", + "confirmed", + "subscribed", + "unconfirmed", + "confirmed", + "unconfirmed", + "unconfirmed", + "subscribed", + "confirmed", + "subscribed", + "unsubscribed", + "unsubscribed", + "unsubscribed", + "confirmed", + "confirmed", + "unconfirmed", + "subscribed", + "unconfirmed", + "confirmed", + "unsubscribed", + "unsubscribed", + "subscribed", + "subscribed", + "unconfirmed", + "unsubscribed", + "unconfirmed", + "subscribed", + "confirmed", + "subscribed", + "subscribed", + "subscribed", + "confirmed", + "unconfirmed", + "subscribed", + "unconfirmed", + "unsubscribed", + "unconfirmed", + "confirmed", + "unconfirmed", + "unconfirmed", + "confirmed", + "unconfirmed", + "unconfirmed", + "unsubscribed", + "confirmed", + "subscribed", + "confirmed", + "unsubscribed", + "subscribed", + "unconfirmed", + "subscribed", + "unconfirmed", + "unsubscribed", + "unconfirmed", + "unsubscribed", + "confirmed", + "subscribed", + "subscribed", + "subscribed", + "unsubscribed", + "unsubscribed", + "unsubscribed", + "unsubscribed", + "confirmed", + "subscribed", + "unconfirmed", + "unconfirmed", + "unconfirmed", + "confirmed", + "subscribed", + "unsubscribed", + "unconfirmed", + "confirmed", + "subscribed", + "confirmed", + "unconfirmed", + "unsubscribed", + "confirmed", + "unconfirmed", + "unsubscribed", + "unconfirmed", + "confirmed", + "subscribed", + "confirmed", + "subscribed", + "unconfirmed", + "subscribed", + "confirmed", + "unsubscribed", + "confirmed", + "confirmed", + "confirmed", + "subscribed", + "unsubscribed", + "confirmed", + "confirmed", + "subscribed", + "confirmed", + "confirmed", + "subscribed", + "unconfirmed", + "subscribed", + "unconfirmed", + "confirmed", + "confirmed", + "confirmed", + "unsubscribed", + "confirmed", + "confirmed", + "confirmed", + "confirmed", + "unsubscribed", + "unconfirmed", + "confirmed", + "unconfirmed", + "confirmed", + "subscribed", + "unconfirmed", + "subscribed", + "confirmed", + "confirmed", + "subscribed", + "unconfirmed", + "unsubscribed", + "subscribed", + "unconfirmed", + "unsubscribed", + "unsubscribed", + "unsubscribed", + "subscribed", + "confirmed", + "unconfirmed", + "confirmed", + "subscribed", + "confirmed", + "unconfirmed", + "confirmed", + "confirmed", + "unconfirmed", + "unsubscribed", + "subscribed", + "confirmed", + "subscribed", + "subscribed", + "subscribed", + "unsubscribed", + "subscribed", + "confirmed", + "unsubscribed", + "confirmed", + "unsubscribed", + "subscribed", + "unconfirmed", + "confirmed", + "unsubscribed", + "confirmed", + "confirmed", + "subscribed", + "unsubscribed", + "unsubscribed", + "subscribed", + "unsubscribed", + "unsubscribed", + "confirmed", + "confirmed", + "confirmed", + "subscribed", + "subscribed", + "unconfirmed", + "unsubscribed", + "confirmed", + "subscribed", + "subscribed", + "confirmed", + "subscribed", + "unsubscribed", + "unconfirmed", + "subscribed", + "confirmed", + "confirmed", + "confirmed", + "unsubscribed", + "subscribed", + "subscribed", + "confirmed", + "subscribed", + "subscribed", + "confirmed", + "unsubscribed", + "unconfirmed", + "unconfirmed", + "confirmed", + "unconfirmed", + "subscribed", + "unsubscribed", + "unconfirmed", + "confirmed", + "unsubscribed", + "unconfirmed", + "unconfirmed", + "subscribed", + "unconfirmed", + "confirmed", + "subscribed", + "subscribed", + "subscribed", + "subscribed", + "subscribed", + "confirmed", + "unconfirmed", + "subscribed", + "unconfirmed", + "unconfirmed", + "unsubscribed", + "confirmed", + "unsubscribed", + "unconfirmed", + "unconfirmed", + "unconfirmed", + "confirmed", + "subscribed", + "unconfirmed", + "confirmed", + "subscribed", + "confirmed", + "unconfirmed", + "unconfirmed", + "confirmed", + "unconfirmed", + "unconfirmed", + "unconfirmed", + "confirmed", + "unsubscribed", + "subscribed", + "unsubscribed", + "unsubscribed", + "confirmed", + "unconfirmed", + "unsubscribed", + "subscribed", + "unconfirmed", + "unsubscribed", + "confirmed", + "unconfirmed", + "unsubscribed", + "confirmed", + "confirmed", + "subscribed", + "unconfirmed", + "subscribed", + "confirmed", + "unconfirmed", + "unsubscribed", + "unsubscribed", + "confirmed", + "unsubscribed", + "subscribed", + "confirmed", + "confirmed", + "unsubscribed", + "confirmed", + "unsubscribed", + "subscribed", + "subscribed", + "unsubscribed", + "unconfirmed", + "unsubscribed", + "confirmed", + "subscribed", + "subscribed", + "unconfirmed", + "confirmed", + "confirmed", + "confirmed", + "unsubscribed", + "confirmed", + "unconfirmed", + "unsubscribed", + "subscribed", + "unsubscribed", + "unsubscribed", + "unconfirmed", + "confirmed", + "unconfirmed", + "confirmed", + "confirmed", + "unconfirmed", + "subscribed", + "unsubscribed", + "confirmed", + "confirmed", + "subscribed", + "confirmed", + "unconfirmed", + "subscribed", + "subscribed", + "unconfirmed", + "subscribed", + "unconfirmed", + "unconfirmed", + "unsubscribed", + "unsubscribed", + "subscribed", + "subscribed", + "unconfirmed", + "subscribed", + "confirmed", + "confirmed", + "subscribed", + "subscribed", + "unsubscribed", + "subscribed", + "confirmed", + "subscribed", + "unsubscribed", + "confirmed", + "unconfirmed", + "subscribed", + "confirmed", + "unsubscribed", + "confirmed", + "subscribed", + "unconfirmed", + "subscribed", + "confirmed", + "confirmed", + "subscribed", + "unsubscribed", + "unconfirmed", + "subscribed", + "unsubscribed", + "unconfirmed", + "unsubscribed", + "unconfirmed", + "confirmed", + "subscribed", + "unsubscribed", + "confirmed", + "unsubscribed", + "unsubscribed", + "unsubscribed", + "subscribed", + "subscribed", + "unconfirmed", + "unsubscribed", + "confirmed", + "unconfirmed", + "unconfirmed", + "confirmed", + "unsubscribed", + "confirmed", + "unconfirmed", + "subscribed", + "unconfirmed", + "unsubscribed", + "subscribed", + "subscribed", + "unsubscribed", + "unconfirmed", + "confirmed", + "unsubscribed", + "subscribed", + "confirmed", + "unsubscribed", + "subscribed", + "unconfirmed", + "subscribed", + "unsubscribed", + "unsubscribed", + "subscribed", + "confirmed", + "subscribed", + "unsubscribed", + "subscribed", + "subscribed", + "confirmed", + "confirmed", + "unconfirmed", + "unconfirmed", + "confirmed", + "unsubscribed", + "unconfirmed", + "confirmed", + "unsubscribed", + "confirmed", + "unsubscribed", + "unsubscribed", + "unconfirmed", + "unsubscribed", + "confirmed", + "unconfirmed", + "unconfirmed", + "unsubscribed", + "subscribed", + "subscribed", + "subscribed", + "unconfirmed", + "confirmed", + "unsubscribed", + "unconfirmed", + "unconfirmed", + "confirmed", + "unsubscribed", + "unsubscribed", + "unsubscribed", + "unconfirmed", + "unsubscribed", + "unconfirmed", + "subscribed", + "confirmed", + "unsubscribed", + "unconfirmed", + "unconfirmed", + "unconfirmed", + "confirmed", + "subscribed", + "subscribed", + "unsubscribed", + "subscribed", + "unconfirmed", + "unconfirmed", + "subscribed", + "unsubscribed", + "confirmed", + "unsubscribed", + "confirmed", + "subscribed", + "subscribed", + "unconfirmed", + "confirmed", + "confirmed", + "unconfirmed", + "subscribed", + "unconfirmed", + "unsubscribed", + "subscribed", + "unconfirmed", + "unsubscribed", + "confirmed", + "confirmed", + "unconfirmed", + "confirmed", + "unsubscribed", + "unsubscribed", + "subscribed", + "unsubscribed", + "subscribed", + "unsubscribed", + "unsubscribed", + "subscribed", + "subscribed", + "confirmed", + "subscribed", + "unconfirmed", + "unconfirmed", + "unconfirmed", + "unconfirmed", + "confirmed", + "confirmed", + "unconfirmed", + "confirmed", + "unsubscribed", + "unsubscribed", + "confirmed", + "unsubscribed", + "unsubscribed", + "unsubscribed", + "unsubscribed", + "subscribed", + "unsubscribed", + "unconfirmed", + "subscribed", + "unconfirmed", + "subscribed", + "unconfirmed", + "unsubscribed", + "unconfirmed", + "confirmed", + "subscribed", + "unsubscribed", + "subscribed", + "confirmed", + "unconfirmed", + "subscribed", + "unsubscribed", + "unsubscribed", + "unconfirmed", + "confirmed", + "unconfirmed", + "confirmed", + "subscribed", + "confirmed" + ] + }, + "segments":[ + "195" + ], + "updateSubscribers":true +} \ No newline at end of file diff --git a/tests/unit/Import/MailChimpCest.php b/tests/unit/Import/MailChimpCest.php new file mode 100644 index 0000000000..8006e6f1ec --- /dev/null +++ b/tests/unit/Import/MailChimpCest.php @@ -0,0 +1,77 @@ +APIKey = 'd91ae3861c4829c40bd469e40d6c0e7e-us6'; + $this->mailChimp = new MailChimp($this->APIKey); + $this->lists = array( + 'edf74586e9', + '8b66f7fac8' + ); + } + + function itCanGetAPIKey() { + expect($this->mailChimp->getAPIKey($this->APIKey))->equals($this->APIKey); + expect($this->mailChimp->getAPIKey('somekey'))->false(); + } + + function itCanGetDatacenter() { + expect($this->mailChimp->getDataCenter($this->APIKey))->equals( + explode('-', $this->APIKey)[1] + ); + } + + function itFailsWithIncorrectAPIKey() { + $mailChimp = clone($this->mailChimp); + $mailChimp->APIKey = false; + $lists = $mailChimp->getLists(); + expect($lists['result'])->false(); + expect($lists['error'])->contains('API'); + $subscribers = $mailChimp->getLists(); + expect($subscribers['result'])->false(); + expect($subscribers['error'])->contains('API'); + } + + function itCanGetLists() { + $lists = $this->mailChimp->getLists(); + expect($lists['result'])->true(); + expect(count($lists['data']))->equals(2); + expect(isset($lists['data'][0]['id']))->true(); + expect(isset($lists['data'][0]['name']))->true(); + } + + function itFailsWithIncorrectLists() { + $subscribers = $this->mailChimp->getSubscribers(); + expect($subscribers['result'])->false(); + expect($subscribers['error'])->contains('lists'); + $subscribers = $this->mailChimp->getSubscribers(array(12)); + expect($subscribers['result'])->false(); + expect($subscribers['error'])->contains('lists'); + } + + function itCanGetSubscribers() { + $subscribers = $this->mailChimp->getSubscribers(array($this->lists[0])); + expect($subscribers['result'])->true(); + expect(isset($subscribers['data']['invalid']))->true(); + expect(isset($subscribers['data']['duplicate']))->true(); + expect(isset($subscribers['data']['header']))->true(); + expect(count($subscribers['data']['subscribers']))->equals(1); + expect($subscribers['data']['count'])->equals(1); + } + + function itFailsWhenListHeadersDontMatch() { + $subscribers = $this->mailChimp->getSubscribers($this->lists); + expect($subscribers['result'])->false(); + expect($subscribers['error'])->contains('header'); + } + + function itFailWhenSubscribersDataTooLarge() { + $mailChimp = clone($this->mailChimp); + $mailChimp->maxPostSize = 10; + $subscribers = $mailChimp->getSubscribers(array('8b66f7fac8')); + expect($subscribers['result'])->false(); + expect($subscribers['error'])->contains('large'); + } +} \ No newline at end of file diff --git a/tests/unit/Mailer/API/AmazonSESCest.php b/tests/unit/Mailer/API/AmazonSESCest.php new file mode 100644 index 0000000000..bce41944a0 --- /dev/null +++ b/tests/unit/Mailer/API/AmazonSESCest.php @@ -0,0 +1,155 @@ +settings = array( + 'name' => 'AmazonSES', + 'type' => 'API', + 'access_key' => 'AKIAJM6Y5HMGXBLDNSRA', + 'secret_key' => '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', + 'region' => 'us-east-1', + ); + $this->from = 'Sender '; + $this->mailer = new AmazonSES( + $this->settings['region'], + $this->settings['access_key'], + $this->settings['secret_key'], + $this->from); + $this->subscriber = 'Recipient '; + $this->newsletter = array( + 'subject' => 'testing AmazonSES', + 'body' => array( + 'html' => 'HTML body', + 'text' => 'TEXT body' + ) + ); + } + + function itsConstructorWorks() { + expect($this->mailer->awsEndpoint) + ->equals( + sprintf('email.%s.amazonaws.com', $this->settings['region']) + ); + expect($this->mailer->url) ->equals( + sprintf('https://email.%s.amazonaws.com', $this->settings['region']) + ); + expect(preg_match('!^\d{8}T\d{6}Z$!', $this->mailer->date))->equals(1); + expect(preg_match('!^\d{8}$!', $this->mailer->dateWithoutTime))->equals(1); + } + + function itCanGenerateBody() { + $body = $this->mailer->getBody($this->newsletter, $this->subscriber); + expect($body['Action'])->equals('SendEmail'); + expect($body['Version'])->equals('2010-12-01'); + expect($body['Source'])->equals($this->from); + expect($body['Destination.ToAddresses.member.1']) + ->contains($this->subscriber); + expect($body['Message.Subject.Data']) + ->equals($this->newsletter['subject']); + expect($body['Message.Body.Html.Data']) + ->equals($this->newsletter['body']['html']); + expect($body['Message.Body.Text.Data']) + ->equals($this->newsletter['body']['text']); + expect($body['ReturnPath'])->equals($this->from); + } + + function itCanCreateRequest() { + $request = $this->mailer->request($this->newsletter, $this->subscriber); + $body = $this->mailer->getBody($this->newsletter, $this->subscriber); + expect($request['timeout'])->equals(10); + expect($request['httpversion'])->equals('1.1'); + expect($request['method'])->equals('POST'); + expect($request['headers']['Host'])->equals($this->mailer->awsEndpoint); + expect($request['headers']['Authorization']) + ->equals($this->mailer->signRequest($body)); + expect($request['headers']['X-Amz-Date'])->equals($this->mailer->date); + expect($request['body'])->equals(urldecode(http_build_query($body))); + } + + function itCanCreateCanonicalRequest() { + $body = $this->mailer->getBody($this->newsletter, $this->subscriber); + $canonicalRequest = explode( + "\n", + $this->mailer->getCanonicalRequest($body) + ); + expect($canonicalRequest) + ->equals( + array( + 'POST', + '/', + '', + 'host:' . $this->mailer->awsEndpoint, + 'x-amz-date:' . $this->mailer->date, + '', + 'host;x-amz-date', + hash($this->mailer->hashAlgorithm, + urldecode(http_build_query($body)) + ) + ) + ); + } + + function itCanCreateCredentialScope() { + $credentialScope = $this->mailer->getCredentialScope(); + expect($credentialScope) + ->equals( + $this->mailer->dateWithoutTime . '/' . + $this->mailer->awsRegion . '/' . + $this->mailer->awsService . '/' . + $this->mailer->awsTerminationString + ); + } + + function itCanCreateStringToSign() { + $body = $this->mailer->getBody($this->newsletter, $this->subscriber); + $credentialScope = $this->mailer->getCredentialScope(); + $canonicalRequest = $this->mailer->getCanonicalRequest($body); + $stringToSing = $this->mailer->createStringToSign( + $credentialScope, + $canonicalRequest + ); + $stringToSing = explode("\n", $stringToSing); + expect($stringToSing) + ->equals( + array( + $this->mailer->awsSigningAlgorithm, + $this->mailer->date, + $credentialScope, + hash($this->mailer->hashAlgorithm, $canonicalRequest) + ) + ); + } + + function itCanSignRequest() { + $body = $this->mailer->getBody($this->newsletter, $this->subscriber); + $signedRequest = $this->mailer->signRequest($body); + expect($signedRequest) + ->contains( + $this->mailer->awsSigningAlgorithm . ' Credential=' . + $this->mailer->awsAccessKey . '/' . + $this->mailer->getCredentialScope() . ', ' . + 'SignedHeaders=host;x-amz-date, Signature=' + ); + expect(preg_match('!Signature=[A-Fa-f0-9]{64}$!', $signedRequest)) + ->equals(1); + } + + function itCannotSendWithoutProperAccessKey() { + $this->mailer->awsAccessKey = 'somekey'; + $result = $this->mailer->send( + $this->newsletter, + $this->subscriber + ); + expect($result)->false(); + } + + function itCanSend() { + $result = $this->mailer->send( + $this->newsletter, + $this->subscriber + ); + expect($result)->true(); + } +} diff --git a/tests/unit/Mailer/API/ElasticEmailCest.php b/tests/unit/Mailer/API/ElasticEmailCest.php new file mode 100644 index 0000000000..112df03fce --- /dev/null +++ b/tests/unit/Mailer/API/ElasticEmailCest.php @@ -0,0 +1,65 @@ +settings = array( + 'name' => 'ElasticEmail', + 'type' => 'API', + 'api_key' => '997f1f7f-41de-4d7f-a8cb-86c8481370fa' + ); + $this->fromEmail = 'staff@mailpoet.com'; + $this->fromName = 'Sender'; + $this->mailer = new ElasticEmail( + $this->settings['api_key'], + $this->fromEmail, + $this->fromName + ); + $this->subscriber = 'Recipient '; + $this->newsletter = array( + 'subject' => 'testing ElasticEmail', + 'body' => array( + 'html' => 'HTML body', + 'text' => 'TEXT body' + ) + ); + } + + function itCanGenerateBody() { + $body = $this->mailer->getBody($this->newsletter, $this->subscriber); + expect($body['api_key'])->equals($this->settings['api_key']); + expect($body['from'])->equals($this->fromEmail); + expect($body['from_name'])->equals($this->fromName); + expect($body['to'])->contains($this->subscriber); + expect($body['subject'])->equals($this->newsletter['subject']); + expect($body['body_html'])->equals($this->newsletter['body']['html']); + expect($body['body_text'])->equals($this->newsletter['body']['text']); + } + + function itCanCreateRequest() { + $request = $this->mailer->request($this->newsletter, $this->subscriber); + $body = $this->mailer->getBody($this->newsletter, $this->subscriber); + expect($request['timeout'])->equals(10); + expect($request['httpversion'])->equals('1.0'); + expect($request['method'])->equals('POST'); + expect($request['body'])->equals(urldecode(http_build_query($body))); + } + + function itCannotSendWithoutProperAPIKey() { + $this->mailer->apiKey = 'someapi'; + $result = $this->mailer->send( + $this->newsletter, + $this->subscriber + ); + expect($result)->false(); + } + + function itCanSend() { + $result = $this->mailer->send( + $this->newsletter, + $this->subscriber + ); + expect($result)->true(); + } +} diff --git a/tests/unit/Mailer/API/MailGunCest.php b/tests/unit/Mailer/API/MailGunCest.php new file mode 100644 index 0000000000..85df8e45d1 --- /dev/null +++ b/tests/unit/Mailer/API/MailGunCest.php @@ -0,0 +1,82 @@ +settings = array( + 'name' => 'MailGun', + 'type' => 'API', + 'api_key' => 'key-6cf5g5qjzenk-7nodj44gdt8phe6vam2', + 'domain' => 'mrcasual.com' + ); + $this->from = 'Sender '; + $this->mailer = new MailGun( + $this->settings['domain'], + $this->settings['api_key'], + $this->from + ); + $this->subscriber = 'Recipient '; + $this->newsletter = array( + 'subject' => 'testing MailGun', + 'body' => array( + 'html' => 'HTML body', + 'text' => 'TEXT body' + ) + ); + } + + function itCanGenerateBody() { + $body = $this->mailer->getBody($this->newsletter, $this->subscriber); + expect($body['from'])->equals($this->from); + expect($body['to'])->equals($this->subscriber); + expect($body['subject'])->equals($this->newsletter['subject']); + expect($body['html'])->equals($this->newsletter['body']['html']); + expect($body['text'])->equals($this->newsletter['body']['text']); + } + + function itCanDoBasicAuth() { + expect($this->mailer->auth()) + ->equals('Basic ' . base64_encode('api:' . $this->settings['api_key'])); + } + + function itCanCreateRequest() { + $request = $this->mailer->request($this->newsletter, $this->subscriber); + $body = $this->mailer->getBody($this->newsletter, $this->subscriber); + expect($request['timeout'])->equals(10); + expect($request['httpversion'])->equals('1.0'); + expect($request['method'])->equals('POST'); + expect($request['headers']['Content-Type']) + ->equals('application/x-www-form-urlencoded'); + expect($request['headers']['Authorization']) + ->equals('Basic ' . base64_encode('api:' . $this->settings['api_key'])); + expect($request['body'])->equals(urldecode(http_build_query($body))); + } + + function itCannotSendWithoutProperAPIKey() { + $this->mailer->apiKey = 'someapi'; + $result = $this->mailer->send( + $this->newsletter, + $this->subscriber + ); + expect($result)->false(); + } + + function itCannotSendWithoutProperDomain() { + $this->mailer->url = + str_replace($this->settings['domain'], 'somedomain', $this->mailer->url); + $result = $this->mailer->send( + $this->newsletter, + $this->subscriber + ); + expect($result)->false(); + } + + function itCanSend() { + $result = $this->mailer->send( + $this->newsletter, + $this->subscriber + ); + expect($result)->true(); + } +} \ No newline at end of file diff --git a/tests/unit/Mailer/API/MandrillCest.php b/tests/unit/Mailer/API/MandrillCest.php new file mode 100644 index 0000000000..be3998d153 --- /dev/null +++ b/tests/unit/Mailer/API/MandrillCest.php @@ -0,0 +1,90 @@ +settings = array( + 'name' => 'Mandrill', + 'type' => 'API', + 'api_key' => '692ys1B7REEoZN7R-dYwNA' + ); + $this->fromEmail = 'staff@mailpoet.com'; + $this->fromName = 'Sender'; + $this->mailer = new Mandrill( + $this->settings['api_key'], + $this->fromEmail, + $this->fromName + ); + $this->subscriber = 'Recipient '; + $this->newsletter = array( + 'subject' => 'testing Mandrill', + 'body' => array( + 'html' => 'HTML body', + 'text' => 'TEXT body' + ) + ); + } + + function itCanGenerateBody() { + $subscriber = $this->mailer->processSubscriber($this->subscriber); + $body = $this->mailer->getBody($this->newsletter, $subscriber); + expect($body['key'])->equals($this->settings['api_key']); + expect($body['message']['from_email'])->equals($this->fromEmail); + expect($body['message']['from_name'])->equals($this->fromName); + expect($body['message']['to'])->equals(array($subscriber)); + expect($body['message']['subject'])->equals($this->newsletter['subject']); + expect($body['message']['html'])->equals($this->newsletter['body']['html']); + expect($body['message']['text'])->equals($this->newsletter['body']['text']); + expect($body['async'])->false(); + } + + function itCanCreateRequest() { + $subscriber = $this->mailer->processSubscriber($this->subscriber); + $body = $this->mailer->getBody($this->newsletter, $subscriber); + $request = $this->mailer->request($this->newsletter, $subscriber); + expect($request['timeout'])->equals(10); + expect($request['httpversion'])->equals('1.0'); + expect($request['method'])->equals('POST'); + expect($request['headers']['Content-Type'])->equals('application/json'); + expect($request['body'])->equals(json_encode($body)); + } + + function itCanProcessSubscriber() { + expect($this->mailer->processSubscriber('test@test.com')) + ->equals( + array( + 'email' => 'test@test.com', + 'name' => '' + )); + expect($this->mailer->processSubscriber('First ')) + ->equals( + array( + 'email' => 'test@test.com', + 'name' => 'First' + )); + expect($this->mailer->processSubscriber('First Last ')) + ->equals( + array( + 'email' => 'test@test.com', + 'name' => 'First Last' + )); + } + + function itCannotSendWithoutProperAPIKey() { + $this->mailer->apiKey = 'someapi'; + $result = $this->mailer->send( + $this->newsletter, + $this->subscriber + ); + expect($result)->false(); + } + + function itCanSend() { + $result = $this->mailer->send( + $this->newsletter, + $this->subscriber + ); + expect($result)->true(); + } +} \ No newline at end of file diff --git a/tests/unit/Mailer/API/SendGridCest.php b/tests/unit/Mailer/API/SendGridCest.php new file mode 100644 index 0000000000..720dc8d632 --- /dev/null +++ b/tests/unit/Mailer/API/SendGridCest.php @@ -0,0 +1,71 @@ +settings = array( + 'name' => 'SendGrid', + 'type' => 'API', + 'api_key' => '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' + ); + $this->fromEmail = 'staff@mailpoet.com'; + $this->fromName = 'Sender'; + $this->mailer = new SendGrid( + $this->settings['api_key'], + $this->fromEmail, + $this->fromName + ); + $this->subscriber = 'Recipient '; + $this->newsletter = array( + 'subject' => 'testing SendGrid', + 'body' => array( + 'html' => 'HTML body', + 'text' => 'TEXT body' + ) + ); + } + + function itCanGenerateBody() { + $body = $this->mailer->getBody($this->newsletter, $this->subscriber); + expect($body['to'])->contains($this->subscriber); + expect($body['from'])->equals($this->fromEmail); + expect($body['fromname'])->equals($this->fromName); + expect($body['subject'])->equals($this->newsletter['subject']); + expect($body['html'])->equals($this->newsletter['body']['html']); + expect($body['text'])->equals($this->newsletter['body']['text']); + } + + function itCanCreateRequest() { + $body = $this->mailer->getBody($this->newsletter, $this->subscriber); + $request = $this->mailer->request($this->newsletter, $this->subscriber); + expect($request['timeout'])->equals(10); + expect($request['httpversion'])->equals('1.1'); + expect($request['method'])->equals('POST'); + expect($request['headers']['Authorization']) + ->equals('Bearer ' . $this->settings['api_key']); + expect($request['body'])->equals(urldecode(http_build_query($body))); + } + + function itCanDoBasicAuth() { + expect($this->mailer->auth()) + ->equals('Bearer ' . $this->settings['api_key']); + } + + function itCannotSendWithoutProperAPIKey() { + $this->mailer->apiKey = 'someapi'; + $result = $this->mailer->send( + $this->newsletter, + $this->subscriber + ); + expect($result)->false(); + } + + function itCanSend() { + $result = $this->mailer->send( + $this->newsletter, + $this->subscriber + ); + expect($result)->true(); + } +} diff --git a/tests/unit/Mailer/MailPoetCest.php b/tests/unit/Mailer/MailPoetCest.php new file mode 100644 index 0000000000..999e387050 --- /dev/null +++ b/tests/unit/Mailer/MailPoetCest.php @@ -0,0 +1,95 @@ +settings = array( + 'name' => 'MailPoet', + 'api_key' => 'dhNSqj1XHkVltIliyQDvMiKzQShOA5rs0m_DdRUVZHU' + ); + $this->fromEmail = 'staff@mailpoet.com'; + $this->fromName = 'Sender'; + $this->mailer = new MailPoet( + $this->settings['api_key'], + $this->fromEmail, + $this->fromName + ); + $this->subscriber = 'Recipient '; + $this->newsletter = array( + 'subject' => 'testing MailPoet', + 'body' => array( + 'html' => 'HTML body', + 'text' => 'TEXT body' + ) + ); + } + + function itCanGenerateBody() { + $subscriber = $this->mailer->processSubscriber($this->subscriber); + $body = $this->mailer->getBody($this->newsletter, $subscriber); + expect($body['to']['address'])->equals($subscriber['email']); + expect($body['to']['name'])->equals($subscriber['name']); + expect($body['from']['address'])->equals($this->fromEmail); + expect($body['subject'])->equals($this->newsletter['subject']); + expect($body['html'])->equals($this->newsletter['body']['html']); + expect($body['text'])->equals($this->newsletter['body']['text']); + } + + function itCanCreateRequest() { + $subscriber = $this->mailer->processSubscriber( + 'Recipient ' + ); + $body = array($this->mailer->getBody($this->newsletter, $subscriber)); + $request = $this->mailer->request($this->newsletter, $subscriber); + expect($request['timeout'])->equals(10); + expect($request['httpversion'])->equals('1.0'); + expect($request['method'])->equals('POST'); + expect($request['headers']['Content-Type'])->equals('application/json'); + expect($request['headers']['Authorization'])->equals($this->mailer->auth()); + expect($request['body'])->equals(json_encode($body)); + } + + function itCanProcessSubscriber() { + expect($this->mailer->processSubscriber('test@test.com')) + ->equals( + array( + 'email' => 'test@test.com', + 'name' => '' + )); + expect($this->mailer->processSubscriber('First ')) + ->equals( + array( + 'email' => 'test@test.com', + 'name' => 'First' + )); + expect($this->mailer->processSubscriber('First Last ')) + ->equals( + array( + 'email' => 'test@test.com', + 'name' => 'First Last' + )); + } + + function itCanDoBasicAuth() { + expect($this->mailer->auth()) + ->equals('Basic ' . base64_encode('api:' . $this->settings['api_key'])); + } + + function itCannotSendWithoutProperAPIKey() { + $this->mailer->apiKey = 'someapi'; + $result = $this->mailer->send( + $this->newsletter, + $this->subscriber + ); + expect($result)->false(); + } + + function itCanSend() { + $result = $this->mailer->send( + $this->newsletter, + $this->subscriber + ); + expect($result)->true(); + } +} diff --git a/tests/unit/Mailer/SMTPCest.php b/tests/unit/Mailer/SMTPCest.php new file mode 100644 index 0000000000..7fd61532ad --- /dev/null +++ b/tests/unit/Mailer/SMTPCest.php @@ -0,0 +1,91 @@ +settings = array( + 'name' => 'SMTP', + 'host' => 'email-smtp.us-west-2.amazonaws.com', + 'port' => 587, + 'authentication' => array( + 'login' => 'AKIAIGPBLH6JWG5VCBQQ', + 'password' => 'AudVHXHaYkvr54veCzqiqOxDiMMyfQW3/V6F1tYzGXY3' + ), + 'encryption' => 'tls' + ); + $this->fromEmail = 'staff@mailpoet.com'; + $this->fromName = 'Sender'; + $this->mailer = new SMTP( + $this->settings['host'], + $this->settings['port'], + $this->settings['authentication'], + $this->settings['encryption'], + $this->fromEmail, + $this->fromName + ); + $this->subscriber = 'Recipient '; + $this->newsletter = array( + 'subject' => 'testing SMTP', + 'body' => array( + 'html' => 'HTML body', + 'text' => 'TEXT body' + ) + ); + } + + function itCanBuildMailer() { + $mailer = $this->mailer->buildMailer(); + expect($mailer->getTransport()->getHost()) + ->equals($this->settings['host']); + expect($mailer->getTransport()->getPort()) + ->equals($this->settings['port']); + expect($mailer->getTransport()->getUsername()) + ->equals($this->settings['authentication']['login']); + expect($mailer->getTransport()->getPassword()) + ->equals($this->settings['authentication']['password']); + expect($mailer->getTransport()->getEncryption()) + ->equals($this->settings['encryption']); + } + + function itCanCreateMessage() { + $message = $this->mailer->createMessage($this->newsletter, $this->subscriber); + expect($message->getTo()) + ->equals(array('mailpoet-phoenix-test@mailinator.com' => 'Recipient')); + expect($message->getFrom()) + ->equals(array($this->fromEmail => $this->fromName)); + expect($message->getSubject()) + ->equals($this->newsletter['subject']); + expect($message->getBody()) + ->equals($this->newsletter['body']['html']); + expect($message->getChildren()[0]->getContentType()) + ->equals('text/plain'); + } + + function itCanProcessSubscriber() { + expect($this->mailer->processSubscriber('test@test.com')) + ->equals(array('test@test.com' => '')); + expect($this->mailer->processSubscriber('First ')) + ->equals(array('test@test.com' => 'First')); + expect($this->mailer->processSubscriber('First Last ')) + ->equals(array('test@test.com' => 'First Last')); + } + + function itCantSentWithoutProperAuthentication() { + $this->mailer->authentication['login'] = 'someone'; + $this->mailer->mailer = $this->mailer->buildMailer(); + $result = $this->mailer->send( + $this->newsletter, + $this->subscriber + ); + expect($result)->false(); + } + + function itCanSend() { + $result = $this->mailer->send( + $this->newsletter, + $this->subscriber + ); + expect($result)->true(); + } +} \ No newline at end of file diff --git a/tests/unit/Mailer/WPMailCest.php b/tests/unit/Mailer/WPMailCest.php new file mode 100644 index 0000000000..68310a52a0 --- /dev/null +++ b/tests/unit/Mailer/WPMailCest.php @@ -0,0 +1,70 @@ +settings = array( + 'name' => 'WPMail' + ); + $this->fromEmail = 'staff@mailpoet.com'; + $this->fromName = 'Sender'; + $this->mailer = new WPMail( + $this->fromEmail, + $this->fromName + ); + $this->subscriber = 'Recipient '; + $this->newsletter = array( + 'subject' => 'testing SMTP', + 'body' => array( + 'html' => 'HTML body', + 'text' => 'TEXT body' + ) + ); + } + + function itCanAddFilters() { + $this->mailer->addFilters(); + expect(has_filter('wp_mail_from_name', array( + $this->mailer, + 'setFromName' + )))->notEmpty(); + expect(has_filter('wp_mail_from', array( + $this->mailer, + 'setFromEmail' + )))->notEmpty(); + expect(has_filter('wp_mail_content_type', array( + $this->mailer, + 'setContentType' + )))->notEmpty(); + } + + function itCanRemoveFilters() { + $this->mailer->addFilters(); + $this->mailer->removeFilters(); + expect(has_filter('wp_mail_from_name'))->false(); + expect(has_filter('wp_mail_from'))->false(); + expect(has_filter('wp_mail_content_type'))->false(); + } + + function itCanSetFromName() { + expect($this->mailer->setFromName())->equals($this->fromName); + } + + function itCanSetFromEmail() { + expect($this->mailer->setFromName())->equals($this->fromName); + } + + function itCanSetContentType() { + expect($this->mailer->setContentType())->equals('text/html'); + } + + function itCanSend() { + $_SERVER['SERVER_NAME'] = 'localhost'; + $result = $this->mailer->send( + $this->newsletter, + $this->subscriber + ); + //expect($result)->true(); + } +} \ No newline at end of file diff --git a/tests/unit/Router/MailerCest.php b/tests/unit/Router/MailerCest.php new file mode 100644 index 0000000000..2073b0e762 --- /dev/null +++ b/tests/unit/Router/MailerCest.php @@ -0,0 +1,68 @@ +router = new Mailer(); + } + + function itCanConstruct() { + expect($this->router->from)->equals('Sender '); + } + + function itCanTransformSubscriber() { + expect($this->router->transformSubscriber('test@email.com')) + ->equals('test@email.com'); + expect($this->router->transformSubscriber( + array( + 'email' => 'test@email.com' + )) + )->equals('test@email.com'); + expect($this->router->transformSubscriber( + array( + 'first_name' => 'First', + 'email' => 'test@email.com' + )) + )->equals('First '); + expect($this->router->transformSubscriber( + array( + 'last_name' => 'Last', + 'email' => 'test@email.com' + )) + )->equals('Last '); + expect($this->router->transformSubscriber( + array( + 'first_name' => 'First', + 'last_name' => 'Last', + 'email' => 'test@email.com' + )) + )->equals('First Last '); + } + + function itCanConfigureMailer() { + $mailer = $this->router->buildMailer(); + $class = 'Mailpoet\\Mailer\\' . + ((isset($this->router->mailer['type'])) ? + $this->router->mailer['type'] . '\\' . $this->router->mailer['name'] : + $this->router->mailer['name'] + ); + expect($mailer instanceof $class)->true(); + expect(method_exists($mailer, 'send'))->true(); + } + + function itCanSend() { + $newsletter = array( + 'subject' => 'testing Mailer router with ' . $this->router->mailer['name'], + 'body' => array( + 'html' => 'HTML body', + 'text' => 'TEXT body' + ) + ); + $subscriber = array( + 'first_name' => 'First', + 'last_name' => 'Last', + 'email' => 'mailpoet-phoenix-test@mailinator.com' + ); + expect($this->router->send($newsletter, $subscriber))->true(); + } +} \ No newline at end of file From f3c58c27be92a3bfc441995f404bf931c43ad160 Mon Sep 17 00:00:00 2001 From: Jonathan Labreuille Date: Fri, 13 Nov 2015 15:58:36 +0100 Subject: [PATCH 4/4] set welcome page as default page --- lib/Config/Menu.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Config/Menu.php b/lib/Config/Menu.php index f6166f0dc5..da62cbd96c 100644 --- a/lib/Config/Menu.php +++ b/lib/Config/Menu.php @@ -34,7 +34,7 @@ class Menu { 'MailPoet', 'manage_options', 'mailpoet', - array($this, 'home'), + array($this, 'welcome'), $this->assets_url . '/img/menu_icon.png', 30 );