This notebook is a demo of the various connections that you can make to external datasets within PAWS The notebook uses markdown for text formatting (cheatsheet)
Used for the University of Washington course HCDE598a (Spring 2016): Data Science for User Experience Research
step 1: get the url of another public PAWS notebook (example: http://paws-public.wmflabs.org/paws-public/EpochFail/projects/examples/mwapi.ipynb) step 2: pass in a raw param to download a raw .ipynb file http://paws-public.wmflabs.org/paws-public/EpochFail/projects/examples/mwapi.ipynb?format=raw step 3: log into your PAWS account and use "upload" to upload this copy into your own directory
You can connect to all sorts of APIs!
You can use python-mwapi (docs) to run queries against the MediaWiki API. You can also test your queries in the API sandbox
import mwapi
session = mwapi.Session('https://en.wikipedia.org') #TODO add user agent
print(session.get(action='query', meta='userinfo'))
{'query': {'userinfo': {'anon': '', 'name': 'Jtmorgan', 'id': 0}},
'batchcomplete': ''}
{'batchcomplete': '', 'query': {'userinfo': {'id': 0, 'anon': '', 'name': '10.68.16.234'}}}
{'batchcomplete': '', 'query': {'userinfo': {'anon': '', 'id': 0, 'name': 'Jtmorgan'}}}
You can use python-mwviews (docs) to run queries against the MediaWiki Pageview API (blog post)
#you may have to install the library before using it... until Yuvi gets around to installing it by default
!pip install git+https://github.com/mediawiki-utilities/python-mwviews.git
Collecting git+https://github.com/mediawiki-utilities/python-mwviews.git
Cloning https://github.com/mediawiki-utilities/python-mwviews.git to /tmp/pip-hp9tq2vi-build
Requirement already satisfied (use --upgrade to upgrade): mwviews==0.0.7 from git+https://github.com/mediawiki-utilities/python-mwviews.git in /srv/paws/lib/python3.4/site-packages
Requirement already satisfied (use --upgrade to upgrade): requests in /srv/paws/lib/python3.4/site-packages (from mwviews==0.0.7)
Requirement already satisfied (use --upgrade to upgrade): futures in /srv/paws/lib/python3.4/site-packages (from mwviews==0.0.7)
You are using pip version 8.0.2, however version 8.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
import mwviews
from mwviews.api import PageviewsClient
p = PageviewsClient()
p.article_views('en.wikipedia', ['Selfie', 'Cat', 'Dog'])
p.project_views(['ro.wikipedia', 'de.wikipedia', 'commons.wikimedia'])
p.top_articles('en.wikipedia', limit=10)
[{'article': 'Main_Page', 'rank': 1, 'views': 13908848}, {'article': 'Special:Search', 'rank': 2, 'views': 1653313}, {'article': 'Troubadour', 'rank': 3, 'views': 336888}, {'article': 'XHamster', 'rank': 4, 'views': 218493}, {'article': 'Equinox', 'rank': 5, 'views': 214564}, {'article': 'Donald_Trump', 'rank': 6, 'views': 207320}, {'article': 'UFC_Fight_Night:_Hunt_vs._Mir', 'rank': 7, 'views': 182213}, {'article': 'Punisher', 'rank': 8, 'views': 177634}, {'article': 'South_Africa_and_weapons_of_mass_destruction', 'rank': 9, 'views': 165891}, {'article': 'Zach_Braff', 'rank': 10, 'views': 163338}]
UNTESTED: Query WikiData using query.wikidata.org (user manual) with Yuvi's wdqs module... which has no documentation (yet!)
import wdqs
TODO: check with Socrata API
import requests
# make an API call, gather and print some data
import csv
import encoding_fix
import json
from operator import itemgetter
import requests
import time
#load in the JSON file we created with download_building_permit_data.py
with open("data/residential_permits_2010-2016.json") as json_infile:
bp_api_data = json.load(json_infile)
json_infile.close()
"""
Example query: https://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&result_type=street_address
"""
#create an empty dictionary that will hold our per-neighborhood counts
permits_by_neighborhood = {}
#go through each permit record and get the neighborhood for each address.
for x in bp_api_data:
# print(x)
#we're only interested in MULTIFAMILY construction right now, not SINGLE FAMILY / DUPLEX
if x['category'] == "MULTIFAMILY":
# if a row doesn't contain lat/long,
# OR if Google Maps API can't find a neighborhood for a given lat/long,
# we're going to skip it
try:
#add the city and state to the end of each address before querying the Google Maps API
gmaps_api_params = {'latlng' : x['latitude'] + "," + x["longitude"]}
gmaps_api_req = requests.get("http://maps.googleapis.com/maps/api/geocode/json", params=gmaps_api_params)
# save the content of the request to a Python dict and start parsing it
gmaps_api_data = gmaps_api_req.json()
neighborhood = gmaps_api_data['results'][0]['address_components'][2]['long_name']
if neighborhood in permits_by_neighborhood:
permits_by_neighborhood[neighborhood] += 1
else:
permits_by_neighborhood[neighborhood] = 1
except:
pass
#slow down our API requests, to avoid getting blocked by Google
time.sleep(0.2)
else:
continue
You can use pymysql to run queries against the Wikimedia replica databases. See also Manual:Database access and Manual:Database layout on MediaWiki.org.
import os
"""
Your db login credentials are stored in os.environ.
DO NOT print or run os.environ, or it will expose your credentials in the Notebook
"""
'\nYour db login credentials are stored in os.environ. \nDO NOT print or run os.environ, or it will expose your credentials in the Notebook\n'
import pymysql
conn = pymysql.connect(
host=os.environ['MYSQL_HOST'],
user=os.environ['MYSQL_USERNAME'],
password=os.environ['MYSQL_PASSWORD'],
database='enwiki_p',
charset='utf8'
)
with conn.cursor() as cur:
cur.execute('use enwiki_p')
cur.execute("""SELECT * from user where user_name = 'Jtmorgan'""")
jtmorgan = cur.fetchall()
cur.execute("""SELECT * from user where user_name = 'HostBot'""")
hostbot = cur.fetchall()
print(jtmorgan)
print(hostbot)
((7878375, b'Jtmorgan', b'', None, None, None, None, None, None, None, None, None, b'20080917143125', None, 5179, None),) ((16596082, b'HostBot', b'', None, None, None, None, None, None, None, None, None, b'20120404202435', None, 175558, None),)
username = jtmorgan[0][1]
#decode byte string to UTF to make it compatible with most other strings you'll be using
print(username.decode("utf8") + ' is great')
Jtmorgan is great
Explaination goes here
#you can access the CSCW workshop datasets, including the Teahouse dataset
conn2 = pymysql.connect(
host=os.environ['MYSQL_HOST'],
user=os.environ['MYSQL_USERNAME'],
password=os.environ['MYSQL_PASSWORD'],
database='datasets_p',
charset='utf8' #doesn't actually do anything right now. still returns byte strings
)
with conn2.cursor() as cur:
cur.execute('use datasets_p')
cur.execute('show tables')
dbs = cur.fetchall()
print(dbs)
(('enwiki_sessions_20150801',), ('facebook_links_wosn_2009',), ('facebook_wall_posts_wosn_2009',), ('teahouse_questions_20150412',))
Note: this is not working yet. Need to store hb db credentials in home directory so they can be accessed from my PAWS env. TODO: ask Yuvi to help set this up.
#you can access hostbot tables this way, too
conn3 = pymysql.connect(
host=os.environ['MYSQL_HOST'],
user=os.environ['MYSQL_USERNAME'],
password=os.environ['MYSQL_PASSWORD'],
database='p50380g50728__hostbot',
charset='utf8'
)
with conn3.cursor() as cur:
cur.execute('use p50380g50728__hostbot')
cur.execute('show tables')
tables = cur.fetchall()
print(tables)#won't work, user access denied
--------------------------------------------------------------------------- OperationalError Traceback (most recent call last) <ipython-input-34-f450c67997c0> in <module>() 9 10 with conn3.cursor() as cur: ---> 11 cur.execute('use p50380g50728__hostbot') 12 cur.execute('show tables') 13 tables = cur.fetchall() /srv/paws/lib/python3.4/site-packages/pymysql/cursors.py in execute(self, query, args) 144 query = self.mogrify(query, args) 145 --> 146 result = self._query(query) 147 self._executed = query 148 return result /srv/paws/lib/python3.4/site-packages/pymysql/cursors.py in _query(self, q) 294 conn = self._get_db() 295 self._last_executed = q --> 296 conn.query(q) 297 self._do_get_result() 298 return self.rowcount /srv/paws/lib/python3.4/site-packages/pymysql/connections.py in query(self, sql, unbuffered) 817 sql = sql.encode(self.encoding, 'surrogateescape') 818 self._execute_command(COMMAND.COM_QUERY, sql) --> 819 self._affected_rows = self._read_query_result(unbuffered=unbuffered) 820 return self._affected_rows 821 /srv/paws/lib/python3.4/site-packages/pymysql/connections.py in _read_query_result(self, unbuffered) 999 else: 1000 result = MySQLResult(self) -> 1001 result.read() 1002 self._result = result 1003 if result.server_status is not None: /srv/paws/lib/python3.4/site-packages/pymysql/connections.py in read(self) 1283 def read(self): 1284 try: -> 1285 first_packet = self.connection._read_packet() 1286 1287 if first_packet.is_ok_packet(): /srv/paws/lib/python3.4/site-packages/pymysql/connections.py in _read_packet(self, packet_type) 963 964 packet = packet_type(buff, self.encoding) --> 965 packet.check_error() 966 return packet 967 /srv/paws/lib/python3.4/site-packages/pymysql/connections.py in check_error(self) 392 errno = self.read_uint16() 393 if DEBUG: print("errno =", errno) --> 394 err.raise_mysql_exception(self._data) 395 396 def dump(self): /srv/paws/lib/python3.4/site-packages/pymysql/err.py in raise_mysql_exception(data) 118 def raise_mysql_exception(data): 119 errinfo = _get_error_info(data) --> 120 _check_mysql_exception(errinfo) /srv/paws/lib/python3.4/site-packages/pymysql/err.py in _check_mysql_exception(errinfo) 110 errorclass = error_map.get(errno, None) 111 if errorclass: --> 112 raise errorclass(errno, errorvalue) 113 114 # couldn't find the right error number OperationalError: (1044, "Access denied for user 's52771'@'%' to database 'p50380g50728__hostbot'")
NAMES_LIST = "namedata_test.txt"
boys = {}
girls = {}
for line in open(NAMES_LIST, 'r').readlines():
print(line)
name, gender, count = line.strip().split(",")
count = int(count)
if gender == "F":
girls[name.lower()] = count
elif gender == "M":
boys[name.lower()] = count
Isabella,F,22872 Sophia,F,20601 Emma,F,17316 Olivia,F,17004 Ava,F,15407 Emily,F,14256 Abigail,F,14223 Madison,F,13155 Chloe,F,11735 Mia,F,10618 Addison,F,10313 Elizabeth,F,10234 Ella,F,9866 Natalie,F,8760 Samantha,F,8391 Alexis,F,8246 Lily,F,7970 Grace,F,7670 Hailey,F,7002 Alyssa,F,6974 Hannah,F,6967 Lillian,F,6944 Avery,F,6668 Leah,F,6522 Nevaeh,F,6396 Sofia,F,6316 Anna,F,6307 Sarah,F,6303 Ashley,F,6301 Brianna,F,6264 Zoe,F,6259 Victoria,F,6215 Gabriella,F,6162 Brooklyn,F,6109 Kaylee,F,6083 Taylor,F,5886 Layla,F,5880 Allison,F,5857 Evelyn,F,5834 Riley,F,5534 Amelia,F,5448 Khloe,F,5395 Makayla,F,5384 Savannah,F,5358 Aubrey,F,5354 Charlotte,F,5353 Zoey,F,5198 Bella,F,5106 Kayla,F,5044 Alexa,F,5035 Peyton,F,4966 Audrey,F,4948 Claire,F,4913 Arianna,F,4828 Julia,F,4672 Aaliyah,F,4656 Kylie,F,4589 Lauren,F,4464 Sophie,F,4411 Sydney,F,4326 Camila,F,4299 Jasmine,F,4161 Morgan,F,4071 Alexandra,F,4013 Jocelyn,F,3981 Maya,F,3961 Gianna,F,3954 Mackenzie,F,3871 Kimberly,F,3864 Katherine,F,3859 Destiny,F,3715 Brooke,F,3698 Trinity,F,3691 Faith,F,3683 Lucy,F,3631 Madelyn,F,3615 Madeline,F,3599 Bailey,F,3584 Payton,F,3579 Andrea,F,3566 Autumn,F,3503 Melanie,F,3485 Serenity,F,3465 Ariana,F,3464 Stella,F,3437 Maria,F,3413 Molly,F,3358 Caroline,F,3353 Genesis,F,3303 Kaitlyn,F,3290 Eva,F,3271 Jessica,F,3191 Gabrielle,F,3137 Angelina,F,3128 Naomi,F,3120 Valeria,F,3114 Mariah,F,3096 Natalia,F,3042 Rachel,F,3010 Paige,F,3005 Mya,F,2986 Rylee,F,2974 Katelyn,F,2951 Ellie,F,2906 Isabelle,F,2891 Lilly,F,2881 Vanessa,F,2879 London,F,2869 Mary,F,2860 Lydia,F,2829 Kennedy,F,2826 Jordyn,F,2800 Ruby,F,2789 Jade,F,2715 Scarlett,F,2715 Isabel,F,2653 Annabelle,F,2637 Harper,F,2628 Sadie,F,2628 Sara,F,2627 Jennifer,F,2616 Violet,F,2564 Nicole,F,2558 Liliana,F,2513 Michelle,F,2500 Stephanie,F,2484 Reagan,F,2475 Jada,F,2468 Adriana,F,2458 Gracie,F,2420 Megan,F,2401 Jayla,F,2370 Kendall,F,2334 Lyla,F,2285 Rebecca,F,2280 Amy,F,2279 Reese,F,2263 Kylee,F,2247 Izabella,F,2246 Laila,F,2244 Jenna,F,2219 Brooklynn,F,2181 Aliyah,F,2155 Piper,F,2137 Mckenzie,F,2126 Juliana,F,2124 Giselle,F,2087 Gabriela,F,2079 Valerie,F,2063 Daniela,F,2037 Daisy,F,2013 Valentina,F,1998 Makenzie,F,1990 Haley,F,1978 Lila,F,1968 Ashlyn,F,1946 Melissa,F,1946 Vivian,F,1939 Nora,F,1933 Angela,F,1910 Katie,F,1895 Hayden,F,1891 Elena,F,1881 Summer,F,1880 Keira,F,1857 Eleanor,F,1850 Clara,F,1836 Eliana,F,1829 Jillian,F,1815 Alana,F,1813 Jacqueline,F,1805 Alice,F,1778 Adrianna,F,1771 Miranda,F,1770 Alivia,F,1764 Julianna,F,1745 Aniyah,F,1735 Eden,F,1723 Jordan,F,1721 Mikayla,F,1719 Skylar,F,1715 Margaret,F,1697 Briana,F,1685 Ryleigh,F,1675 Josephine,F,1674 Shelby,F,1674 Delilah,F,1662 Amanda,F,1652 Allie,F,1634 Diana,F,1620 Addyson,F,1615 Brielle,F,1613 Catherine,F,1608 Angel,F,1603 Danielle,F,1597 Elise,F,1585 Ana,F,1571 Melody,F,1569 Leslie,F,1563 Penelope,F,1546 Makenna,F,1541 Marissa,F,1526 Aurora,F,1523 Leila,F,1507 Alexandria,F,1506 Alaina,F,1493 Kendra,F,1493 Kate,F,1488 Delaney,F,1484 Sienna,F,1477 Lola,F,1470 Jayden,F,1460 Ariel,F,1449 Sierra,F,1445 Erin,F,1440
print(girls)
{'emma': 17316, 'alexis': 8246, 'savannah': 5358, 'brielle': 1613, 'aliyah': 2155, 'madelyn': 3615, 'olivia': 17004, 'london': 2869, 'allie': 1634, 'samantha': 8391, 'delilah': 1662, 'ava': 15407, 'amy': 2279, 'lucy': 3631, 'molly': 3358, 'jordan': 1721, 'jillian': 1815, 'julianna': 1745, 'audrey': 4948, 'melissa': 1946, 'natalia': 3042, 'sierra': 1445, 'makayla': 5384, 'mckenzie': 2126, 'bailey': 3584, 'jasmine': 4161, 'ariel': 1449, 'elena': 1881, 'ella': 9866, 'angel': 1603, 'gracie': 2420, 'daniela': 2037, 'erin': 1440, 'kylee': 2247, 'lydia': 2829, 'kaitlyn': 3290, 'aniyah': 1735, 'aubrey': 5354, 'ashlyn': 1946, 'giselle': 2087, 'valerie': 2063, 'avery': 6668, 'penelope': 1546, 'alice': 1778, 'jennifer': 2616, 'jade': 2715, 'scarlett': 2715, 'ellie': 2906, 'skylar': 1715, 'allison': 5857, 'harper': 2628, 'khloe': 5395, 'peyton': 4966, 'abigail': 14223, 'faith': 3683, 'ryleigh': 1675, 'izabella': 2246, 'stephanie': 2484, 'zoey': 5198, 'alivia': 1764, 'grace': 7670, 'alana': 1813, 'mariah': 3096, 'reagan': 2475, 'madison': 13155, 'nora': 1933, 'josephine': 1674, 'adrianna': 1771, 'hannah': 6967, 'gabrielle': 3137, 'michelle': 2500, 'laila': 2244, 'bella': 5106, 'mackenzie': 3871, 'sienna': 1477, 'megan': 2401, 'destiny': 3715, 'arianna': 4828, 'rylee': 2974, 'maria': 3413, 'hayden': 1891, 'jordyn': 2800, 'brianna': 6264, 'serenity': 3465, 'kendra': 1493, 'margaret': 1697, 'sofia': 6316, 'andrea': 3566, 'summer': 1880, 'marissa': 1526, 'mary': 2860, 'kendall': 2334, 'kylie': 4589, 'eleanor': 1850, 'jessica': 3191, 'gianna': 3954, 'juliana': 2124, 'madeline': 3599, 'lila': 1968, 'paige': 3005, 'haley': 1978, 'violet': 2564, 'julia': 4672, 'liliana': 2513, 'angela': 1910, 'katie': 1895, 'lauren': 4464, 'payton': 3579, 'adriana': 2458, 'clara': 1836, 'shelby': 1674, 'melody': 1569, 'keira': 1857, 'sydney': 4326, 'alyssa': 6974, 'jayden': 1460, 'camila': 4299, 'lyla': 2285, 'ana': 1571, 'katelyn': 2951, 'miranda': 1770, 'valentina': 1998, 'sophia': 20601, 'catherine': 1608, 'aurora': 1523, 'autumn': 3503, 'alexandra': 4013, 'danielle': 1597, 'sara': 2627, 'kimberly': 3864, 'victoria': 6215, 'alexandria': 1506, 'amanda': 1652, 'alexa': 5035, 'nevaeh': 6396, 'eden': 1723, 'annabelle': 2637, 'jayla': 2370, 'ariana': 3464, 'caroline': 3353, 'claire': 4913, 'aaliyah': 4656, 'isabella': 22872, 'taylor': 5886, 'rachel': 3010, 'hailey': 7002, 'sadie': 2628, 'evelyn': 5834, 'naomi': 3120, 'emily': 14256, 'lily': 7970, 'brooklynn': 2181, 'vivian': 1939, 'leslie': 1563, 'genesis': 3303, 'diana': 1620, 'chloe': 11735, 'reese': 2263, 'riley': 5534, 'brooke': 3698, 'nicole': 2558, 'jada': 2468, 'lola': 1470, 'trinity': 3691, 'briana': 1685, 'sarah': 6303, 'isabelle': 2891, 'jocelyn': 3981, 'gabriella': 6162, 'stella': 3437, 'maya': 3961, 'gabriela': 2079, 'kennedy': 2826, 'alaina': 1493, 'melanie': 3485, 'leah': 6522, 'anna': 6307, 'eva': 3271, 'jacqueline': 1805, 'amelia': 5448, 'elizabeth': 10234, 'delaney': 1484, 'jenna': 2219, 'elise': 1585, 'makenzie': 1990, 'lillian': 6944, 'natalie': 8760, 'kaylee': 6083, 'makenna': 1541, 'zoe': 6259, 'daisy': 2013, 'lilly': 2881, 'vanessa': 2879, 'mya': 2986, 'ashley': 6301, 'isabel': 2653, 'brooklyn': 6109, 'eliana': 1829, 'addyson': 1615, 'angelina': 3128, 'katherine': 3859, 'morgan': 4071, 'mikayla': 1719, 'addison': 10313, 'kayla': 5044, 'piper': 2137, 'mia': 10618, 'kate': 1488, 'leila': 1507, 'layla': 5880, 'ruby': 2789, 'valeria': 3114, 'rebecca': 2280, 'charlotte': 5353, 'sophie': 4411}
import csv
responses = []
notifications_data = csv.DictReader(open("test_data.csv"), delimiter=',', quotechar='"')
for row in notifications_data:
# print(type(row))
responses.append(row)
print(responses)
[{'seen-message': '1', 'seen-email': '1', 'rank-rights': '1', 'rank-email': '6', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '2', 'rank-link': '7', 'response-id': '1', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '4', 'rank-thank': '5', 'rank-message': '3'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '4', 'rank-link': '1', 'response-id': '2', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '2', 'rank-thank': '5', 'rank-message': '3'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '3', 'rank-link': '', 'response-id': '3', 'seen-revert': '', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '', 'rank-thank': '2', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '', 'rank-email': '5', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '2', 'rank-link': '3', 'response-id': '4', 'seen-revert': '', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '', 'rank-thank': '4', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '5', 'seen-review': '1', 'rank-mention': '2', 'rank-link': '', 'response-id': '5', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '3', 'rank-thank': '4', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '3', 'seen-review': '1', 'rank-mention': '', 'rank-link': '', 'response-id': '6', 'seen-revert': '', 'seen-mention': '', 'seen-link': '', 'rank-revert': '', 'rank-thank': '2', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '4', 'rank-email': '', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '2', 'rank-link': '5', 'response-id': '7', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '6', 'rank-thank': '3', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '3', 'rank-link': '2', 'response-id': '8', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '5', 'rank-thank': '4', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '5', 'rank-email': '1', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '7', 'seen-review': '1', 'rank-mention': '2', 'rank-link': '8', 'response-id': '9', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '4', 'rank-thank': '6', 'rank-message': '3'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '1', 'rank-email': '4', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '7', 'seen-review': '1', 'rank-mention': '3', 'rank-link': '8', 'response-id': '10', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '5', 'rank-thank': '6', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '1', 'rank-link': '4', 'response-id': '11', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '2', 'rank-thank': '3', 'rank-message': '5'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '1', 'rank-email': '', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '2', 'rank-link': '6', 'response-id': '12', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '4', 'rank-thank': '5', 'rank-message': '3'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '4', 'rank-link': '3', 'response-id': '13', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '2', 'rank-thank': '5', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '', 'rank-email': '5', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '1', 'rank-link': '', 'response-id': '14', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '2', 'rank-thank': '3', 'rank-message': '4'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '2', 'rank-link': '5', 'response-id': '15', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '3', 'rank-thank': '4', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '1', 'rank-link': '5', 'response-id': '16', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '2', 'rank-thank': '3', 'rank-message': '4'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '2', 'rank-link': '', 'response-id': '17', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '3', 'rank-thank': '4', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '4', 'rank-email': '7', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '5', 'seen-review': '1', 'rank-mention': '2', 'rank-link': '8', 'response-id': '18', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '3', 'rank-thank': '6', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '4', 'rank-link': '1', 'response-id': '19', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '5', 'rank-thank': '2', 'rank-message': '3'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '5', 'rank-email': '', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '3', 'rank-link': '', 'response-id': '20', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '2', 'rank-thank': '4', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '4', 'rank-email': '', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '2', 'rank-link': '6', 'response-id': '21', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '3', 'rank-thank': '5', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '5', 'rank-email': '4', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '3', 'rank-link': '', 'response-id': '22', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '2', 'rank-thank': '6', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '8', 'rank-email': '7', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '6', 'seen-review': '1', 'rank-mention': '3', 'rank-link': '5', 'response-id': '23', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '4', 'rank-thank': '1', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '3', 'rank-link': '', 'response-id': '24', 'seen-revert': '', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '', 'rank-thank': '2', 'rank-message': '1'}, {'seen-message': '', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '', 'rank-review': '', 'seen-review': '', 'rank-mention': '', 'rank-link': '', 'response-id': '25', 'seen-revert': '1', 'seen-mention': '', 'seen-link': '', 'rank-revert': '', 'rank-thank': '', 'rank-message': ''}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '', 'rank-link': '', 'response-id': '26', 'seen-revert': '1', 'seen-mention': '', 'seen-link': '', 'rank-revert': '1', 'rank-thank': '3', 'rank-message': '2'}, {'seen-message': '', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '', 'rank-review': '', 'seen-review': '1', 'rank-mention': '', 'rank-link': '', 'response-id': '27', 'seen-revert': '', 'seen-mention': '', 'seen-link': '1', 'rank-revert': '', 'rank-thank': '', 'rank-message': ''}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '5', 'seen-review': '1', 'rank-mention': '2', 'rank-link': '6', 'response-id': '28', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '3', 'rank-thank': '4', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '1', 'rank-email': '7', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '6', 'seen-review': '1', 'rank-mention': '3', 'rank-link': '8', 'response-id': '29', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '4', 'rank-thank': '5', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '3', 'rank-email': '', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '5', 'seen-review': '1', 'rank-mention': '1', 'rank-link': '7', 'response-id': '30', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '4', 'rank-thank': '6', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '5', 'rank-email': '2', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '3', 'rank-link': '7', 'response-id': '31', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '4', 'rank-thank': '6', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '1', 'rank-email': '', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '6', 'seen-review': '1', 'rank-mention': '3', 'rank-link': '7', 'response-id': '32', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '5', 'rank-thank': '4', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '5', 'seen-review': '1', 'rank-mention': '3', 'rank-link': '6', 'response-id': '33', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '1', 'rank-thank': '4', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '1', 'rank-link': '', 'response-id': '34', 'seen-revert': '', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '', 'rank-thank': '3', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '7', 'rank-email': '6', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '5', 'seen-review': '1', 'rank-mention': '3', 'rank-link': '', 'response-id': '35', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '2', 'rank-thank': '4', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '1', 'rank-email': '4', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '7', 'seen-review': '1', 'rank-mention': '3', 'rank-link': '', 'response-id': '36', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '5', 'rank-thank': '6', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '', 'rank-email': '5', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '2', 'rank-link': '6', 'response-id': '37', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '3', 'rank-thank': '4', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '5', 'rank-email': '7', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '6', 'seen-review': '1', 'rank-mention': '3', 'rank-link': '', 'response-id': '38', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '1', 'rank-thank': '4', 'rank-message': '2'}, {'seen-message': '', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '2', 'rank-link': '', 'response-id': '39', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '1', 'rank-thank': '3', 'rank-message': ''}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '2', 'seen-review': '1', 'rank-mention': '3', 'rank-link': '', 'response-id': '40', 'seen-revert': '', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '', 'rank-thank': '4', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '4', 'rank-email': '', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '2', 'rank-link': '', 'response-id': '41', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '1', 'rank-thank': '5', 'rank-message': '3'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '', 'rank-review': '', 'seen-review': '', 'rank-mention': '', 'rank-link': '', 'response-id': '42', 'seen-revert': '', 'seen-mention': '', 'seen-link': '', 'rank-revert': '', 'rank-thank': '', 'rank-message': ''}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '6', 'seen-review': '1', 'rank-mention': '1', 'rank-link': '5', 'response-id': '43', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '3', 'rank-thank': '4', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '6', 'seen-review': '1', 'rank-mention': '2', 'rank-link': '5', 'response-id': '44', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '3', 'rank-thank': '1', 'rank-message': '4'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '', 'rank-review': '', 'seen-review': '', 'rank-mention': '', 'rank-link': '3', 'response-id': '45', 'seen-revert': '1', 'seen-mention': '', 'seen-link': '1', 'rank-revert': '1', 'rank-thank': '', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '1', 'rank-email': '', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '5', 'seen-review': '1', 'rank-mention': '4', 'rank-link': '', 'response-id': '46', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '2', 'rank-thank': '6', 'rank-message': '3'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '', 'rank-email': '1', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '2', 'seen-review': '1', 'rank-mention': '4', 'rank-link': '6', 'response-id': '47', 'seen-revert': '', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '', 'rank-thank': '5', 'rank-message': '3'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '5', 'seen-review': '1', 'rank-mention': '3', 'rank-link': '', 'response-id': '48', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '1', 'rank-thank': '2', 'rank-message': '4'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '2', 'rank-email': '', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '4', 'rank-link': '5', 'response-id': '49', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '1', 'rank-thank': '6', 'rank-message': '3'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '3', 'seen-review': '1', 'rank-mention': '', 'rank-link': '5', 'response-id': '50', 'seen-revert': '1', 'seen-mention': '', 'seen-link': '1', 'rank-revert': '2', 'rank-thank': '4', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '', 'rank-link': '', 'response-id': '51', 'seen-revert': '', 'seen-mention': '', 'seen-link': '', 'rank-revert': '', 'rank-thank': '', 'rank-message': ''}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '', 'rank-review': '', 'seen-review': '', 'rank-mention': '', 'rank-link': '', 'response-id': '52', 'seen-revert': '1', 'seen-mention': '', 'seen-link': '', 'rank-revert': '1', 'rank-thank': '', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '4', 'seen-review': '1', 'rank-mention': '1', 'rank-link': '6', 'response-id': '53', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '3', 'rank-thank': '5', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '1', 'rank-mention': '', 'rank-link': '', 'response-id': '54', 'seen-revert': '1', 'seen-mention': '', 'seen-link': '1', 'rank-revert': '', 'rank-thank': '', 'rank-message': ''}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '', 'rank-email': '5', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '2', 'rank-link': '', 'response-id': '55', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '4', 'rank-thank': '3', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '6', 'seen-review': '1', 'rank-mention': '3', 'rank-link': '5', 'response-id': '56', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '1', 'rank-thank': '4', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '', 'rank-email': '4', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '2', 'rank-link': '6', 'response-id': '57', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '5', 'rank-thank': '1', 'rank-message': '3'}, {'seen-message': '', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '', 'rank-review': '', 'seen-review': '', 'rank-mention': '', 'rank-link': '', 'response-id': '58', 'seen-revert': '', 'seen-mention': '', 'seen-link': '1', 'rank-revert': '', 'rank-thank': '', 'rank-message': ''}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '2', 'rank-link': '', 'response-id': '59', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '4', 'rank-thank': '3', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '', 'rank-email': '3', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '2', 'rank-link': '6', 'response-id': '60', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '1', 'rank-thank': '5', 'rank-message': '4'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '1', 'rank-link': '5', 'response-id': '61', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '3', 'rank-thank': '2', 'rank-message': '4'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '', 'rank-email': '2', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '7', 'seen-review': '1', 'rank-mention': '4', 'rank-link': '5', 'response-id': '62', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '1', 'rank-thank': '6', 'rank-message': '3'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '6', 'rank-email': '', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '1', 'seen-review': '1', 'rank-mention': '3', 'rank-link': '4', 'response-id': '63', 'seen-revert': '', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '', 'rank-thank': '5', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '3', 'rank-email': '6', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '2', 'rank-link': '', 'response-id': '64', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '4', 'rank-thank': '5', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '1', 'rank-link': '5', 'response-id': '65', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '3', 'rank-thank': '4', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '', 'rank-email': '3', 'seen-rights': '', 'seen-thank': '', 'rank-review': '5', 'seen-review': '1', 'rank-mention': '2', 'rank-link': '', 'response-id': '66', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '4', 'rank-thank': '', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '2', 'seen-review': '1', 'rank-mention': '', 'rank-link': '4', 'response-id': '67', 'seen-revert': '', 'seen-mention': '', 'seen-link': '1', 'rank-revert': '', 'rank-thank': '3', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '', 'rank-email': '2', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '3', 'rank-link': '', 'response-id': '68', 'seen-revert': '', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '', 'rank-thank': '4', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '5', 'seen-review': '1', 'rank-mention': '2', 'rank-link': '6', 'response-id': '69', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '4', 'rank-thank': '3', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '1', 'rank-mention': '', 'rank-link': '', 'response-id': '70', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '', 'rank-thank': '', 'rank-message': ''}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '2', 'rank-link': '5', 'response-id': '71', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '1', 'rank-thank': '4', 'rank-message': '3'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '1', 'rank-mention': '', 'rank-link': '', 'response-id': '72', 'seen-revert': '', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '', 'rank-thank': '', 'rank-message': ''}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '', 'rank-email': '4', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '1', 'rank-link': '', 'response-id': '73', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '3', 'rank-thank': '2', 'rank-message': '5'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '3', 'seen-review': '1', 'rank-mention': '2', 'rank-link': '6', 'response-id': '74', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '4', 'rank-thank': '1', 'rank-message': '5'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '8', 'rank-email': '4', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '7', 'seen-review': '1', 'rank-mention': '2', 'rank-link': '6', 'response-id': '75', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '3', 'rank-thank': '5', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '5', 'seen-review': '1', 'rank-mention': '3', 'rank-link': '', 'response-id': '76', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '2', 'rank-thank': '4', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '4', 'seen-review': '1', 'rank-mention': '2', 'rank-link': '5', 'response-id': '77', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '3', 'rank-thank': '6', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '1', 'rank-email': '', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '2', 'rank-link': '', 'response-id': '78', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '3', 'rank-thank': '5', 'rank-message': '4'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '4', 'rank-email': '', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '3', 'rank-link': '', 'response-id': '79', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '1', 'rank-thank': '5', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '3', 'rank-email': '', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '5', 'seen-review': '1', 'rank-mention': '2', 'rank-link': '', 'response-id': '80', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '4', 'rank-thank': '6', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '', 'rank-email': '3', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '2', 'rank-link': '5', 'response-id': '81', 'seen-revert': '', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '', 'rank-thank': '4', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '', 'rank-email': '', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '', 'rank-link': '', 'response-id': '82', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '', 'rank-thank': '', 'rank-message': ''}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '1', 'rank-link': '5', 'response-id': '83', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '2', 'rank-thank': '3', 'rank-message': '4'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '3', 'rank-link': '', 'response-id': '84', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '1', 'rank-thank': '4', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '2', 'rank-link': '5', 'response-id': '85', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '1', 'rank-thank': '4', 'rank-message': '3'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '3', 'seen-review': '1', 'rank-mention': '1', 'rank-link': '', 'response-id': '86', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '2', 'rank-thank': '4', 'rank-message': '5'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '1', 'rank-email': '', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '5', 'seen-review': '1', 'rank-mention': '2', 'rank-link': '', 'response-id': '87', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '3', 'rank-thank': '6', 'rank-message': '4'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '1', 'rank-email': '', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '3', 'rank-link': '6', 'response-id': '88', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '4', 'rank-thank': '5', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '3', 'seen-review': '1', 'rank-mention': '2', 'rank-link': '5', 'response-id': '89', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '4', 'rank-thank': '6', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '1', 'rank-link': '5', 'response-id': '90', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '3', 'rank-thank': '4', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '', 'rank-email': '7', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '4', 'seen-review': '1', 'rank-mention': '3', 'rank-link': '5', 'response-id': '91', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '1', 'rank-thank': '6', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '1', 'rank-email': '', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '6', 'seen-review': '1', 'rank-mention': '3', 'rank-link': '7', 'response-id': '92', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '5', 'rank-thank': '4', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '7', 'rank-email': '5', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '6', 'seen-review': '1', 'rank-mention': '4', 'rank-link': '', 'response-id': '93', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '3', 'rank-thank': '1', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '', 'rank-link': '', 'response-id': '94', 'seen-revert': '1', 'seen-mention': '', 'seen-link': '', 'rank-revert': '2', 'rank-thank': '1', 'rank-message': '3'}, {'seen-message': '', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '', 'rank-link': '', 'response-id': '95', 'seen-revert': '', 'seen-mention': '', 'seen-link': '', 'rank-revert': '', 'rank-thank': '', 'rank-message': ''}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '3', 'seen-review': '1', 'rank-mention': '4', 'rank-link': '', 'response-id': '96', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '2', 'rank-thank': '5', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '3', 'rank-email': '', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '5', 'seen-review': '1', 'rank-mention': '2', 'rank-link': '6', 'response-id': '97', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '4', 'rank-thank': '7', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '2', 'rank-email': '6', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '3', 'rank-link': '', 'response-id': '98', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '1', 'rank-thank': '5', 'rank-message': '4'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '4', 'seen-review': '1', 'rank-mention': '3', 'rank-link': '', 'response-id': '99', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '2', 'rank-thank': '5', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '5', 'seen-review': '1', 'rank-mention': '2', 'rank-link': '6', 'response-id': '100', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '3', 'rank-thank': '4', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '', 'rank-email': '4', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '6', 'seen-review': '1', 'rank-mention': '', 'rank-link': '2', 'response-id': '101', 'seen-revert': '1', 'seen-mention': '', 'seen-link': '1', 'rank-revert': '5', 'rank-thank': '1', 'rank-message': '3'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '6', 'seen-review': '1', 'rank-mention': '2', 'rank-link': '5', 'response-id': '102', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '3', 'rank-thank': '4', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '4', 'seen-review': '1', 'rank-mention': '3', 'rank-link': '5', 'response-id': '103', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '1', 'rank-thank': '6', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '6', 'rank-email': '1', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '7', 'seen-review': '1', 'rank-mention': '3', 'rank-link': '5', 'response-id': '104', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '4', 'rank-thank': '8', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '2', 'rank-link': '', 'response-id': '105', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '3', 'rank-thank': '4', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '', 'rank-email': '5', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '1', 'seen-review': '1', 'rank-mention': '3', 'rank-link': '', 'response-id': '106', 'seen-revert': '', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '', 'rank-thank': '4', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '3', 'rank-link': '', 'response-id': '107', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '4', 'rank-thank': '1', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '2', 'rank-link': '4', 'response-id': '108', 'seen-revert': '', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '', 'rank-thank': '3', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '', 'rank-review': '', 'seen-review': '', 'rank-mention': '', 'rank-link': '', 'response-id': '109', 'seen-revert': '', 'seen-mention': '', 'seen-link': '', 'rank-revert': '', 'rank-thank': '', 'rank-message': ''}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '6', 'rank-email': '', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '4', 'seen-review': '1', 'rank-mention': '2', 'rank-link': '7', 'response-id': '110', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '3', 'rank-thank': '5', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '8', 'rank-email': '7', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '1', 'seen-review': '1', 'rank-mention': '5', 'rank-link': '4', 'response-id': '111', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '6', 'rank-thank': '2', 'rank-message': '3'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '6', 'seen-review': '1', 'rank-mention': '3', 'rank-link': '4', 'response-id': '112', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '2', 'rank-thank': '5', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '5', 'seen-review': '1', 'rank-mention': '3', 'rank-link': '6', 'response-id': '113', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '1', 'rank-thank': '4', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '2', 'rank-link': '4', 'response-id': '114', 'seen-revert': '', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '', 'rank-thank': '3', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '1', 'rank-mention': '', 'rank-link': '', 'response-id': '115', 'seen-revert': '', 'seen-mention': '', 'seen-link': '', 'rank-revert': '', 'rank-thank': '', 'rank-message': ''}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '', 'rank-link': '4', 'response-id': '116', 'seen-revert': '1', 'seen-mention': '', 'seen-link': '1', 'rank-revert': '1', 'rank-thank': '3', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '5', 'seen-review': '1', 'rank-mention': '3', 'rank-link': '', 'response-id': '117', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '2', 'rank-thank': '4', 'rank-message': '1'}]