CodeBench (http://codebench.icomp.ufam.edu.br) is a Programming Online Judge developed by the Institute of Computing (IComp) of the Federal University of Amazonas, Brazil. Through Codebench, teachers can provide lists of programming exercises to their students, who in turn must develop solutions for each exercise through an embedded IDE. Once a student submits a source code for a given exercise, the system instantly notifies the student whether him/her solution is correct or not.
The CodeBench automatically logs all actions performed by students on embedded IDE during their attempts to solve the proposed exercises. This dataset contains all logs collected from CS1 students during 2016 to 2021.
2016-1 | 2016-2 | 2017-1 | 2017-2 | 2018-1 | 2018-2 | 2019-1 | 2019-2 | 2020-ERE | 2020-1 | 2020-2 | 2021-1 | 2021-2 | 2022-1 | 2022-2 | 2023-1 | Total | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
CS1 classes | 9 | 5 | 10 | 5 | 9 | 5 | 9 | 7 | 3 | 7 | 6 | 7 | 8 | 8 | 9 | 7 | 114 |
Total number of students | 471 | 172 | 463 | 177 | 465 | 180 | 489 | 297 | 492 | 228 | 200 | 224 | 219 | 238 | 196 | 255 | 4766 |
Homework exercises | 681 | 447 | 1278 | 556 | 1550 | 893 | 1559 | 1116 | 420 | 1008 | 882 | 962 | 1180 | 1158 | 1257 | 1009 | 16204 |
Exam exercises | 124 | 110 | 163 | 103 | 182 | 107 | 176 | 138 | 8 | 12 | 8 | 154 | 195 | 188 | 240 | 212 | 2120 |
Codes (developed by students) | 30140 | 9501 | 38304 | 10942 | 47969 | 13458 | 38417 | 28348 | 45491 | 19246 | 17848 | 19022 | 19627 | 19457 | 17403 | 24834 | 400007 |
Tests and submissions of codes | 322500 | 126286 | 419603 | 125848 | 455484 | 163821 | 540537 | 308340 | 457404 | 214208 | 177364 | 191238 | 226982 | 210502 | 166694 | 244538 | 4105103 |
The entire dataset is compressed in a .tar.gz
file, which can be extracted using auxiliary software. If you use a Unix or a Linux system, you can extract the dataset by using the command tar xfz cb_dataset_x.yz.tar.gz
(see Figure 1).
2017-1/136/users/1098/codes/407_1326.py
total = 40 + 35
print(total)
2017-1/136/users/1098/codemirror/407_1326.log
2017-3-13 17:27:27.798#viewportChange#0
2017-3-13 17:27:59.597#mousedown#{"isTrusted":true}
2017-3-13 17:27:59.602#focus#
2017-3-13 17:28:14.346#change#{"from":{"line":0,"ch":0},"to":{"line":0,"ch":0},"text":["a"],"removed":[""],"origin":"+input"}
2017-3-13 17:28:14.733#change#{"from":{"line":0,"ch":1},"to":{"line":0,"ch":1},"text":[" "],"removed":[""],"origin":"+input"}
2017-3-13 17:28:14.901#change#{"from":{"line":0,"ch":2},"to":{"line":0,"ch":2},"text":["="],"removed":[""],"origin":"+input"}
2017-3-13 17:28:15.021#change#{"from":{"line":0,"ch":3},"to":{"line":0,"ch":3},"text":[" "],"removed":[""],"origin":"+input"}
2017-3-13 17:28:21.341#change#{"from":{"line":0,"ch":4},"to":{"line":0,"ch":4},"text":["4"],"removed":[""],"origin":"+input"}
2017-3-13 17:28:22.229#change#{"from":{"line":0,"ch":5},"to":{"line":0,"ch":5},"text":["0"],"removed":[""],"origin":"+input"}
2017-3-13 17:28:35.149#change#{"from":{"line":0,"ch":6},"to":{"line":0,"ch":6},"text":["",""],"removed":[""],"origin":"+input"}
2017-3-13 17:28:35.149#keyHandled#"Enter"
2017-3-13 17:28:35.159#viewportChange#0
2017-3-13 17:28:38.517#change#{"from":{"line":1,"ch":0},"to":{"line":1,"ch":0},"text":["b"],"removed":[""],"origin":"+input"}
2017-3-13 17:28:38.869#change#{"from":{"line":1,"ch":1},"to":{"line":1,"ch":1},"text":[" "],"removed":[""],"origin":"+input"}
2017-3-13 17:28:39.125#change#{"from":{"line":1,"ch":2},"to":{"line":1,"ch":2},"text":["="],"removed":[""],"origin":"+input"}
2017-3-13 17:28:39.245#change#{"from":{"line":1,"ch":3},"to":{"line":1,"ch":3},"text":[" "],"removed":[""],"origin":"+input"}
2017-3-13 17:28:40.949#change#{"from":{"line":1,"ch":4},"to":{"line":1,"ch":4},"text":["2"],"removed":[""],"origin":"+input"}
2017-3-13 17:28:41.889#change#{"from":{"line":1,"ch":4},"to":{"line":1,"ch":5},"text":[""],"removed":["2"],"origin":"+delete"}
2017-3-13 17:28:41.889#keyHandled#"Backspace"
2017-3-13 17:28:42.525#change#{"from":{"line":1,"ch":4},"to":{"line":1,"ch":4},"text":["3"],"removed":[""],"origin":"+input"}
2017-3-13 17:28:42.853#change#{"from":{"line":1,"ch":5},"to":{"line":1,"ch":5},"text":["5"],"removed":[""],"origin":"+input"}
2017-3-13 17:28:44.953#change#{"from":{"line":1,"ch":6},"to":{"line":1,"ch":6},"text":["",""],"removed":[""],"origin":"+input"}
2017-3-13 17:28:44.954#keyHandled#"Enter"
2017-3-13 17:28:44.965#viewportChange#0
2017-3-13 17:28:46.733#change#{"from":{"line":2,"ch":0},"to":{"line":2,"ch":0},"text":["p"],"removed":[""],"origin":"+input"}
2017-3-13 17:28:46.885#change#{"from":{"line":2,"ch":1},"to":{"line":2,"ch":1},"text":["r"],"removed":[""],"origin":"+input"}
2017-3-13 17:28:47.109#change#{"from":{"line":2,"ch":2},"to":{"line":2,"ch":2},"text":["i"],"removed":[""],"origin":"+input"}
2017-3-13 17:28:47.373#change#{"from":{"line":2,"ch":3},"to":{"line":2,"ch":3},"text":["n"],"removed":[""],"origin":"+input"}
2017-3-13 17:28:47.605#change#{"from":{"line":2,"ch":4},"to":{"line":2,"ch":4},"text":["t"],"removed":[""],"origin":"+input"}
2017-3-13 17:28:50.369#change#{"from":{"line":2,"ch":5},"to":{"line":2,"ch":5},"text":["()"],"removed":[""],"origin":"+input"}
2017-3-13 17:28:50.369#keyHandled#"'('"
2017-3-13 17:28:52.083#change#{"from":{"line":2,"ch":6},"to":{"line":2,"ch":6},"text":["\"\""],"removed":[""],"origin":"+input"}
2017-3-13 17:28:52.083#keyHandled#"'\"'"
2017-3-13 17:30:31.907#viewportChange#0
2017-3-13 17:30:56.332#mousedown#{"isTrusted":true}
2017-3-13 17:30:56.349#focus#
2017-3-13 17:30:57.249#change#{"from":{"line":1,"ch":6,"xRel":1},"to":{"line":1,"ch":6,"xRel":1},"text":["",""],"removed":[""],"origin":"+input"}
2017-3-13 17:30:57.249#keyHandled#"Enter"
2017-3-13 17:30:57.262#viewportChange#0
2017-3-13 17:30:59.048#change#{"from":{"line":2,"ch":0},"to":{"line":2,"ch":0},"text":["s"],"removed":[""],"origin":"+input"}
2017-3-13 17:30:59.246#change#{"from":{"line":2,"ch":1},"to":{"line":2,"ch":1},"text":["o"],"removed":[""],"origin":"+input"}
2017-3-13 17:30:59.710#change#{"from":{"line":2,"ch":3},"to":{"line":2,"ch":3},"text":["a"],"removed":[""],"origin":"+input"}
2017-3-13 17:31:00.878#change#{"from":{"line":2,"ch":4},"to":{"line":2,"ch":4},"text":[" "],"removed":[""],"origin":"+input"}
2017-3-13 17:31:01.129#change#{"from":{"line":2,"ch":5},"to":{"line":2,"ch":5},"text":["="],"removed":[""],"origin":"+input"}
2017-3-13 17:31:01.295#change#{"from":{"line":2,"ch":6},"to":{"line":2,"ch":6},"text":[" "],"removed":[""],"origin":"+input"}
2017-3-13 17:31:03.646#change#{"from":{"line":2,"ch":7},"to":{"line":2,"ch":7},"text":["a"],"removed":[""],"origin":"+input"}
2017-3-13 17:31:04.166#change#{"from":{"line":2,"ch":8},"to":{"line":2,"ch":8},"text":[" "],"removed":[""],"origin":"+input"}
2017-3-13 17:31:05.193#change#{"from":{"line":2,"ch":10},"to":{"line":2,"ch":10},"text":[" "],"removed":[""],"origin":"+input"}
2017-3-13 17:31:06.452#change#{"from":{"line":2,"ch":11},"to":{"line":2,"ch":11},"text":["b"],"removed":[""],"origin":"+input"}
2017-3-13 17:31:07.922#mousedown#{"isTrusted":true}
2017-3-13 17:31:09.877#change#{"from":{"line":3,"ch":7,"xRel":1},"to":{"line":3,"ch":7,"xRel":1},"text":["s"],"removed":[""],"origin":"+input"}
2017-3-13 17:31:10.100#change#{"from":{"line":3,"ch":8},"to":{"line":3,"ch":8},"text":["o"],"removed":[""],"origin":"+input"}
2017-3-13 17:31:10.333#change#{"from":{"line":3,"ch":9},"to":{"line":3,"ch":9},"text":["m"],"removed":[""],"origin":"+input"}
2017-3-13 17:31:10.468#change#{"from":{"line":3,"ch":10},"to":{"line":3,"ch":10},"text":["a"],"removed":[""],"origin":"+input"}
2017-3-13 17:31:13.480#blur#
2017-3-13 17:31:13.480#blur#
2017-3-13 17:31:27.260#submit#Your code did not produce the correct output. Please, correct your code and try again.
2017-3-13 17:31:40.528#mousedown#{"isTrusted":true}
2017-3-13 17:31:40.543#focus#
2017-3-13 17:31:42.336#change#{"from":{"line":2,"ch":0,"xRel":1},"to":{"line":2,"ch":0,"xRel":1},"text":["\t"],"removed":[""],"origin":"+input"}
2017-3-13 17:31:42.338#keyHandled#"Tab"
2017-3-13 17:31:46.674#blur#
2017-3-13 17:31:51.662#mousedown#{"isTrusted":true}
2017-3-13 17:31:51.671#focus#
2017-3-13 17:31:53.514#change#{"from":{"line":2,"ch":0},"to":{"line":2,"ch":1},"text":[""],"removed":["\t"],"origin":"+delete"}
2017-3-13 17:31:53.514#keyHandled#"Backspace"
2017-3-13 17:32:52.018#mousedown#{"isTrusted":true}
2017-3-13 17:32:52.772#change#{"from":{"line":0,"ch":0,"xRel":-1},"to":{"line":0,"ch":0,"xRel":-1},"text":["",""],"removed":[""],"origin":"+input"}
2017-3-13 17:32:52.772#keyHandled#"Enter"
2017-3-13 17:32:52.790#viewportChange#0
2017-3-13 17:32:53.105#keyHandled#"Up"
2017-3-13 17:32:56.150#change#{"from":{"line":0,"ch":0,"xRel":0},"to":{"line":0,"ch":0,"xRel":0},"text":["t"],"removed":[""],"origin":"+input"}
2017-3-13 17:32:56.372#change#{"from":{"line":0,"ch":1},"to":{"line":0,"ch":1},"text":["o"],"removed":[""],"origin":"+input"}
2017-3-13 17:32:56.677#change#{"from":{"line":0,"ch":2},"to":{"line":0,"ch":2},"text":["t"],"removed":[""],"origin":"+input"}
2017-3-13 17:32:57.133#change#{"from":{"line":0,"ch":3},"to":{"line":0,"ch":3},"text":["a"],"removed":[""],"origin":"+input"}
2017-3-13 17:32:57.276#change#{"from":{"line":0,"ch":4},"to":{"line":0,"ch":4},"text":["l"],"removed":[""],"origin":"+input"}
2017-3-13 17:32:58.388#change#{"from":{"line":0,"ch":5},"to":{"line":0,"ch":5},"text":[" "],"removed":[""],"origin":"+input"}
2017-3-13 17:32:59.798#change#{"from":{"line":0,"ch":7},"to":{"line":0,"ch":7},"text":[" "],"removed":[""],"origin":"+input"}
2017-3-13 17:33:04.430#change#{"from":{"line":0,"ch":8},"to":{"line":0,"ch":8},"text":["4"],"removed":[""],"origin":"+input"}
2017-3-13 17:33:04.662#change#{"from":{"line":0,"ch":9},"to":{"line":0,"ch":9},"text":["0"],"removed":[""],"origin":"+input"}
2017-3-13 17:33:06.165#change#{"from":{"line":0,"ch":10},"to":{"line":0,"ch":10},"text":[" "],"removed":[""],"origin":"+input"}
2017-3-13 17:33:07.500#change#{"from":{"line":0,"ch":11},"to":{"line":0,"ch":11},"text":["+"],"removed":[""],"origin":"+input"}
2017-3-13 17:33:08.379#change#{"from":{"line":0,"ch":12},"to":{"line":0,"ch":12},"text":[" "],"removed":[""],"origin":"+input"}
2017-3-13 17:33:08.619#change#{"from":{"line":0,"ch":13},"to":{"line":0,"ch":13},"text":["3"],"removed":[""],"origin":"+input"}
2017-3-13 17:33:08.828#change#{"from":{"line":0,"ch":14},"to":{"line":0,"ch":14},"text":["5"],"removed":[""],"origin":"+input"}
2017-3-13 17:33:19.193#mousedown#{"isTrusted":true}
2017-3-13 17:33:20.888#change#{"from":{"line":1,"ch":0,"xRel":1},"to":{"line":3,"ch":12,"xRel":1},"text":[""],"removed":["a = 40","b = 35","soma = a + b"],"origin":"+delete"}
2017-3-13 17:33:20.888#keyHandled#"Backspace"
2017-3-13 17:33:20.901#viewportChange#0
2017-3-13 17:33:22.497#mousedown#{"isTrusted":true}
2017-3-13 17:33:23.527#change#{"from":{"line":1,"ch":0},"to":{"line":2,"ch":0,"xRel":-1},"text":[""],"removed":["",""],"origin":"+delete"}
2017-3-13 17:33:23.527#keyHandled#"Backspace"
2017-3-13 17:33:23.537#viewportChange#0
2017-3-13 17:33:26.038#change#{"from":{"line":1,"ch":7,"xRel":1},"to":{"line":1,"ch":11,"xRel":-1},"text":["t"],"removed":["soma"],"origin":"+input"}
2017-3-13 17:33:26.371#change#{"from":{"line":1,"ch":8},"to":{"line":1,"ch":8},"text":["o"],"removed":[""],"origin":"+input"}
2017-3-13 17:33:26.659#change#{"from":{"line":1,"ch":9},"to":{"line":1,"ch":9},"text":["t"],"removed":[""],"origin":"+input"}
2017-3-13 17:33:26.779#change#{"from":{"line":1,"ch":10},"to":{"line":1,"ch":10},"text":["a"],"removed":[""],"origin":"+input"}
2017-3-13 17:33:27.098#change#{"from":{"line":1,"ch":11},"to":{"line":1,"ch":11},"text":["l"],"removed":[""],"origin":"+input"}
2017-3-13 17:33:30.800#blur#
2017-3-13 17:33:50.594#mousedown#{"isTrusted":true}
2017-3-13 17:33:50.602#focus#
2017-3-13 17:34:00.653#mousedown#{"isTrusted":true}
2017-3-13 17:34:01.598#change#{"from":{"line":1,"ch":12},"to":{"line":1,"ch":13,"xRel":0},"text":[""],"removed":["\""],"origin":"+delete"}
2017-3-13 17:34:01.598#keyHandled#"Backspace"
2017-3-13 17:34:02.989#mousedown#{"isTrusted":true}
2017-3-13 17:34:03.279#change#{"from":{"line":1,"ch":6},"to":{"line":1,"ch":7,"xRel":-1},"text":[""],"removed":["\""],"origin":"+delete"}
2017-3-13 17:34:03.279#keyHandled#"Backspace"
2017-3-13 17:34:06.014#blur#
2017-3-13 17:34:10.177#mousedown#{"isTrusted":true}
2017-3-13 17:34:10.189#focus#
2017-3-13 17:34:10.177#mousedown#{"isTrusted":true}
2017-3-13 17:34:10.189#focus#
2017-3-13 17:34:14.023#submit#Congratulations, your code is correct!
2017-1/136/users/1098/executions/407_1326.log
== TEST (2017-03-13 17:31:14)
-- CODE:
a = 40
b = 35
soma = a + b
print("soma")
-- OUTPUT:
soma
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
== SUBMITION (2017-03-13 17:31:26)
-- CODE:
a = 40
b = 35
soma = a + b
print("soma")
-- EXECUTION TIME:
-- TEST CASE 1:
---- input:
xx
---- correct output:
75
---- user output:
soma
-- GRADE:
0%
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
== TEST (2017-03-13 17:31:46)
-- CODE:
a = 40
b = 35
soma = a + b
print("soma")
-- ERROR:
File "XXXX", line 3
soma = a + b
^
IndentationError: unexpected indent
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
== TEST (2017-03-13 17:33:30)
-- CODE:
total = 40 + 35
print("total")
-- OUTPUT:
total
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
== TEST (2017-03-13 17:34:05)
-- CODE:
total = 40 + 35
print(total)
-- OUTPUT:
75
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
== SUBMITION (2017-03-13 17:34:12)
-- CODE:
total = 40 + 35
print(total)
-- EXECUTION TIME:
-- TEST CASE 1:
---- input:
xx
---- correct output:
75
---- user output:
75
-- GRADE:
100%
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
2017-1/136/assessments/407.data
— example of homework data
-- ASSESSMENT DATA:
---- assessment title: Laboratório de Codificação 0 – Primeiros passos com o Python
---- class name: Introdução à Ciência dos Computadores
---- class number: 136
---- start: 2017-03-13 16:00
---- end: 2017-05-15 23:59
---- language: Python 3
---- codemirror mode: python/python.js
---- type: homework
---- weight: 1
---- total_exercises: 14
-- EXERCISES:
---- exercise 01: 994
---- exercise 02: 996
---- exercise 03: 1326
---- exercise 04: 1327
---- exercise 05: 1328
---- exercise 06: 1329
---- exercise 07: 1330
---- exercise 08: 1331
---- exercise 09: 1332
---- exercise 10: 1333
---- exercise 11: 1334
---- exercise 12: 579
---- exercise 13: 1559
---- exercise 14: 1560
2017-1/137/assessments/476.data
— example of exam data
-- ASSESSMENT DATA:
---- assessment title: Trabalho Prático 01: Variáveis e Estrutura Sequencial de Programação
---- class name: Introdução à Ciência dos Computadores
---- class number: 137
---- start: 2017-04-03 18:00
---- end: 2017-04-03 19:55
---- language: Python 3
---- codemirror mode: python/python.js
---- type: exam
---- weight: 1
---- total_exercises: 2
-- EXERCISES:
---- exercise 01: 1367 or 1361 or 1370 or 1371 or 1368 or 1362 or 1372 or 1369 or 1365 or 1364 or 1366 or 1363
---- exercise 02: 1833 or 1834 or 1835 or 1836 or 1837 or 1838 or 1839 or 1840 or 1841 or 1842
2017-1/136/users/1098/grades/407.log
---- final score (0-10): 10
---- number of exercises: 14
---- correct: 14
---- incorrect: 0
---- blank: 0
2017-1/136/users/1098/grades/final_grade.data
5.57
2017-1/136/users/1098/user.data
-- CURRENT DEGREE COURSE:
---- course id: 13
---- course name: Física - Bacharelado
---- institution id: 1
---- institution name: Universidade Federal do Amazonas
-- HIGH SCHOOL:
---- high school name: Maria da Luz Calderaro
---- school type: public school
---- shift: afternoon shift
---- graduation year: 2014
-- PERSONAL COMPUTER:
---- has a PC at home: yes
---- share this PC with other people at home: yes
---- this PC has access to Internet: yes (high-speed Internet)
---- previous experience of any computer language: yes (Python)
-- WORK:
---- worked or interned before the degree: yes
---- company name: Conselho Municipal de Saúde
---- year started working: 2013
---- year stopped working: 2014
-- PREVIOUS DEGREE:
---- started other degree programmes: no
---- degree course: n/a
---- institution name: n/a
---- year started this degree: n/a
---- year stopped this degree: n/a
-- OTHER INFORMATION:
---- sex: male
---- year of birth: 1997
---- civil status: single
---- have kids: no
2017-1/136/users/1098/logins.log
2017-03-13 16:02:10#user/login.
2017-03-13 16:03:41#user/logout.
2017-03-13 16:58:08#user/login.
2017-03-13 17:45:09#user/logout.
2017-03-14 20:08:00#user/login.
2017-03-14 20:11:01#user/logout.
2017-03-14 20:12:08#user/login.
2017-03-14 20:14:48#user/logout.
2017-03-14 20:30:10#user/login.
2017-03-14 20:31:39#user/logout.
2017-03-15 11:09:42#user/login.
2017-03-15 11:39:25#user/logout.
2017-03-15 16:05:53#user/login.
2017-03-15 16:22:10#user/login.
2017-03-15 17:05:31#user/login.
2017-03-15 17:20:03#user/logout.
2017-03-16 21:43:48#user/login.
2017-03-18 19:57:05#user/login.
2017-03-19 15:59:22#user/login.
2017-03-20 16:01:34#user/login.
2017-03-20 17:40:03#user/logout.
2017-03-22 16:04:38#user/login.
2017-03-22 17:50:45#user/logout.
2017-03-26 16:43:21#user/login.
2017-03-26 17:48:23#user/logout.
2017-03-26 19:01:02#user/login.
2017-03-26 19:03:50#user/logout.
2017-03-26 23:03:44#user/login.
2017-03-26 23:09:21#user/logout.
2017-03-27 14:09:09#user/login.
2017-03-27 15:01:54#user/logout.
2017-03-27 15:44:54#user/login.
2017-03-27 16:39:17#user/login.
2017-03-27 22:37:38#user/login.
2017-03-27 22:40:44#user/logout.
2017-03-27 23:03:02#user/login.
2017-03-27 23:03:48#user/logout.
2017-03-27 23:45:02#user/login.
2017-03-27 23:49:50#user/logout.
2017-03-28 21:26:53#user/login.
2017-03-28 21:28:38#user/logout.
2017-03-28 21:31:08#user/login.
2017-03-28 21:32:09#user/logout.
2017-03-28 21:38:12#user/login.
2017-03-28 21:39:17#user/logout.
2017-03-28 22:36:39#user/login.
2017-03-28 22:36:39#user/login.
2017-03-28 22:38:41#user/logout.
2017-04-02 19:28:23#user/login.
2017-04-02 20:58:03#user/logout.
2017-04-03 16:01:51#user/login.
2017-04-03 16:09:34#user/logout.
2017-04-03 16:27:13#user/login.
2017-04-03 16:33:14#user/logout.
2017-04-03 16:58:32#user/login.
2017-04-03 17:19:40#user/logout.
2017-04-03 17:19:49#user/login.
2017-04-03 17:20:09#user/logout.
2017-04-05 16:05:31#user/login.
2017-04-05 16:31:10#user/logout.
2017-04-05 16:32:25#user/login.
2017-04-05 17:30:07#user/login.
2017-04-05 17:30:07#user/logout.
2017-04-05 17:30:17#user/login.
2017-04-05 17:36:53#user/logout.
2017-04-06 17:31:52#user/login.
2017-04-06 17:36:10#user/logout.
2017-04-06 19:59:39#user/login.
2017-04-09 16:10:34#user/login.
2017-04-09 16:43:00#user/logout.
2017-04-10 06:37:10#user/login.
2017-04-10 07:55:41#user/logout.
2017-04-11 23:38:38#user/login.
2017-04-11 23:40:40#user/logout.
2017-04-13 12:53:27#user/login.
2017-04-13 13:03:54#user/logout.
2017-04-13 21:11:42#user/login.
2017-04-13 21:14:04#user/logout.
2017-04-14 17:52:24#user/login.
2017-04-14 18:09:09#user/logout.
2017-04-17 11:21:38#user/login.
2017-04-17 11:33:49#user/logout.
2017-04-17 14:07:15#user/login.
2017-04-17 14:23:51#user/logout.
2017-04-17 16:59:06#user/login.
2017-04-17 17:54:58#user/logout.
2017-04-19 16:01:16#user/login.
2017-04-19 16:03:42#user/login.
2017-04-19 16:03:45#user/logout.
2017-04-19 16:06:00#user/login.
2017-04-19 17:40:20#user/logout.
2017-04-20 12:40:18#user/login.
2017-04-20 12:40:29#user/logout.
2017-04-20 12:40:43#user/login.
2017-04-23 20:38:53#user/login.
2017-04-23 21:09:58#user/logout.
2017-04-23 22:15:42#user/login.
2017-04-23 22:16:31#user/login.
2017-04-23 22:16:33#user/logout.
2017-04-25 19:57:45#user/login.
2017-04-25 20:04:28#user/logout.
2017-04-26 11:11:51#user/login.
2017-04-26 11:16:25#user/logout.
2017-04-26 13:03:09#user/login.
2017-04-26 13:11:11#user/logout.
2017-04-26 15:17:02#user/login.
2017-04-26 15:17:28#user/logout.
2017-04-27 20:31:41#user/login.
2017-04-27 20:35:15#user/logout.
2017-04-28 20:54:05#user/login.
2017-04-28 20:56:38#user/logout.
2017-04-29 09:05:17#user/login.
2017-04-29 09:06:53#user/logout.
2017-05-02 19:45:43#user/login.
2017-05-03 05:16:00#user/login.
2017-05-03 05:39:59#user/logout.
2017-05-03 14:07:40#user/login.
2017-05-03 16:58:31#user/login.
2017-05-03 17:46:14#user/logout.
2017-05-06 10:25:07#user/login.
2017-05-06 10:45:47#user/logout.
2017-05-08 16:11:04#user/login.
2017-05-08 16:18:12#user/logout.
2017-05-08 16:18:19#user/login.
2017-05-08 17:03:44#user/login.
2017-05-08 17:44:43#user/logout.
2017-05-10 12:18:56#user/login.
2017-05-10 14:11:13#user/logout.
2017-05-10 20:39:17#user/login.
2017-05-10 20:58:29#user/logout.
2017-05-10 21:00:21#user/login.
2017-05-10 21:32:28#user/logout.
2017-05-12 11:35:11#user/login.
2017-05-12 11:36:00#user/logout.
2017-05-16 13:57:10#user/login.
2017-05-16 13:58:01#user/logout.
2017-05-16 21:21:34#user/login.
2017-05-16 21:25:57#user/logout.
2017-05-16 22:16:07#user/login.
2017-05-16 22:28:15#user/logout.
2017-05-17 10:50:43#user/login.
2017-05-17 10:54:49#user/logout.
2017-05-17 16:11:34#user/login.
2017-05-17 16:14:50#user/logout.
2017-05-17 16:58:39#user/login.
2017-05-17 17:54:41#user/logout.
2017-05-17 17:55:04#user/login.
2017-05-17 17:55:16#user/logout.
2017-05-22 16:06:25#user/login.
2017-05-22 16:42:24#user/logout.
2017-05-22 16:42:35#user/login.
2017-05-22 17:45:17#user/logout.
2017-05-22 20:57:28#user/login.
2017-05-22 21:49:22#user/logout.
2017-05-24 16:18:55#user/login.
2017-05-24 16:50:33#user/logout.
2017-05-27 10:17:43#user/login.
2017-05-27 10:20:58#user/logout.
2017-05-30 20:52:14#user/login.
2017-05-30 20:53:02#user/logout.
2017-05-31 14:13:43#user/login.
2017-05-31 14:14:41#user/logout.
2017-05-31 14:50:41#user/login.
2017-05-31 15:25:18#user/logout.
2017-05-31 15:26:31#user/login.
2017-05-31 15:26:32#user/login.
2017-05-31 15:37:59#user/logout.
2017-05-31 15:54:57#user/login.
2017-05-31 16:54:19#user/logout.
2017-05-31 16:54:35#user/login.
2017-05-31 16:54:47#user/logout.
2017-06-05 16:09:03#user/login.
2017-06-05 17:37:14#user/logout.
2017-06-07 15:08:39#user/login.
2017-06-07 15:19:36#user/logout.
2017-06-08 16:48:54#user/login.
2017-06-08 17:44:56#user/logout.
2017-06-12 13:03:34#user/login.
2017-06-12 13:04:22#user/logout.
2017-06-14 16:26:15#user/login.
2017-06-14 16:29:11#user/logout.
2017-06-15 13:30:07#user/login.
2017-06-15 13:30:53#user/logout.
2017-06-17 12:27:49#user/login.
2017-06-17 12:28:21#user/logout.
2017-06-18 22:47:02#user/login.
2017-06-18 22:51:16#user/logout.
2017-06-19 15:01:10#user/login.
2017-06-19 15:07:13#user/logout.
2017-06-19 15:57:37#user/login.
2017-06-19 16:44:01#user/logout.
2017-06-21 16:04:20#user/login.
2017-06-21 17:34:41#user/logout.
2017-07-02 22:59:40#user/login.
2017-07-02 23:17:20#user/logout.
2017-07-03 12:13:56#user/login.
2017-07-03 12:52:17#user/logout.
2017-07-03 15:32:42#user/login.
2017-07-03 15:40:17#user/login.
2017-07-03 15:46:59#user/login.
2017-07-03 15:55:36#user/logout.
2017-07-03 16:03:37#user/login.
2017-07-03 16:20:15#user/logout.
2017-07-03 16:26:53#user/login.
2017-07-03 16:28:59#user/logout.
2017-07-03 16:41:22#user/login.
2017-07-03 16:44:13#user/logout.
2017-07-03 16:45:16#user/login.
2017-07-03 16:46:30#user/logout.
2017-07-05 12:54:34#user/login.
2017-07-05 13:00:07#user/logout.
2017-07-05 13:01:32#user/login.
2017-07-05 13:13:04#user/logout.
Inclusion of the 2020/ERE data.
Inclusion of the 2019/2 data.
Inclusion of the 2019/1 data.
This is a small bug fix release.
This is a small bug fix release.
Inclusion of the 2016 data.
Initial version.