In [2]:
import os
from collections import namedtuple
data_path = os.environ["YAHOO_DATA"]
rawEventsRdd = sc.textFile(data_path + "filteredEvents.txt")
EventDataRow = namedtuple("EventDataRow", ["userId", "itemId", "ts", "latitude", "longitude", "city", "day_of_week", "time_of_day" , "event_type"])
def parseRawData(line):
lineSplit = line.split("\t")
return EventDataRow(userId=lineSplit[0],
itemId=lineSplit[1],
ts=int(lineSplit[2]),
latitude=float(lineSplit[3]),
longitude=float(lineSplit[4]),
city=lineSplit[5],
day_of_week=int(lineSplit[6]),
time_of_day=int(lineSplit[7]),
event_type=lineSplit[-1],
)
eventsRdd = rawEventsRdd.map(parseRawData).cache()
userIdConversionDictionary = eventsRdd.map(lambda x: x.userId).distinct().zipWithIndex().collectAsMap()
userIdConversionDictionaryBroadcast = sc.broadcast(userIdConversionDictionary)
itemIdConversionDictionary = eventsRdd.map(lambda x: x.itemId).distinct().zipWithIndex().collectAsMap()
itemIdConversionDictionaryBroadcast = sc.broadcast(itemIdConversionDictionary)
cityConversionDictionary = eventsRdd.map(lambda x: x.city).distinct().zipWithIndex().collectAsMap()
cityConversionDictionaryBroadcast = sc.broadcast(cityConversionDictionary)
eventsConvertedRdd = eventsRdd.map(lambda x: EventDataRow(
userId=userIdConversionDictionaryBroadcast.value[x.userId],
itemId=itemIdConversionDictionaryBroadcast.value[x.itemId],
ts=x.ts,
latitude=x.latitude,
longitude=x.longitude,
city=cityConversionDictionaryBroadcast.value[x.city],
day_of_week=x.day_of_week,
time_of_day=x.time_of_day,
event_type=x.event_type
))
eventsConvertedRdd.take(2)
Out[2]:
[EventDataRow(userId=1, itemId=41, ts=1421521691, latitude=47.23505, longitude=-122.534698, city=9, day_of_week=5, time_of_day=11, event_type=u'App_Opened'),
EventDataRow(userId=1, itemId=46, ts=1421558502, latitude=47.23505, longitude=-122.534698, city=9, day_of_week=5, time_of_day=21, event_type=u'App_Opened')]
In [3]:
finalRDD = eventsConvertedRdd.map(lambda x: [
x.userId,(
x.itemId,
x.ts,
x.latitude,
x.longitude,)
])
groupData = map((lambda (x,y): (x, sorted(list(y),key=lambda a: a[1]))), sorted(finalRDD.groupByKey().collect()))
In [5]:
from math import radians, cos, sin, asin, sqrt
def haversine(lon1, lat1, lon2, lat2):
"""
Calculate the great circle distance between two points
on the earth (specified in decimal degrees)
"""
# convert decimal degrees to radians
lon1, lat1, lon2, lat2 = map(radians, [lon1, lat1, lon2, lat2])
# haversine formula
dlon = lon2 - lon1
dlat = lat2 - lat1
a = sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2
c = 2 * asin(sqrt(a))
r = 6371 # Radius of earth in kilometers. Use 3956 for miles
return c * r
def detectMovement(x):
data = x[1]
newData = [(data[0][0], data[0][1], data[0][2], data[0][3], 0)]
for i in xrange(1,len(data)):
event = data[i]
distance = haversine(event[3],event[2], data[i-1][3], data[i-1][2]) * 1000 #in meters
time_difference = event[1] - newData[i-1][1] #in seconds
moving = 0 #not available
if time_difference <= 300: #if 2 consecutive events are more than 300 seconds away, the movement is not available
velocity = distance/time_difference if time_difference > 0 else -1
if velocity < 0:
moving = 0; #not available
elif velocity >= 0 and velocity <= 1:
moving = 1 #standing still
elif velocity <=2.4:
moving = 2 #walking spead
else:
moving = 3 #faster
newData.append((event[0],event[1],event[2],event[3], moving))
return (x[0], newData)
#return x
#print haversine(elem[0][1][2][1],elem[0][1][1][1],elem[6][1][2][1],elem[6][1][1][1])
final = sc.parallelize(groupData).map(detectMovement).cache()
final.take(1)
Out[5]:
[(0,
[(9, 1419930330, 41.953468, -88.03688, 0),
(26, 1419933628, 41.953377, -88.036888, 0),
(26, 1419933925, 41.95377, -88.03685, 1),
(7, 1419936235, 41.95089, -88.031929, 0),
(32, 1419936281, 41.95089, -88.031929, 1),
(7, 1419936795, 41.95372, -88.036819, 0),
(7, 1419936826, 41.95372, -88.036819, 1),
(25, 1419939212, 41.953773, -88.03685, 0),
(36, 1419939665, 41.95377, -88.036842, 0),
(32, 1419943830, 41.953518, -88.036728, 0),
(25, 1419944425, 41.953758, -88.036797, 0),
(18, 1419944495, 41.953781, -88.036812, 1),
(32, 1419945131, 41.953392, -88.036758, 0),
(7, 1419945747, 41.952774, -88.036896, 0),
(32, 1419945766, 41.952774, -88.036896, 1),
(29, 1419946786, 41.953533, -88.036667, 0),
(41, 1419946886, 41.953434, -88.03688, 1),
(25, 1419947132, 41.953484, -88.036652, 1),
(25, 1419947331, 41.953777, -88.036812, 1),
(41, 1419947368, 41.953491, -88.036858, 1),
(2, 1419947404, 41.953674, -88.036758, 1),
(32, 1419947827, 41.95377, -88.036835, 0),
(44, 1419958776, 41.953514, -88.036751, 0),
(32, 1419958779, 41.953514, -88.036751, 1),
(44, 1419958787, 41.953514, -88.036751, 1),
(20, 1419986257, 41.953419, -88.036995, 0),
(26, 1419986328, 41.953419, -88.036995, 1),
(32, 1419986405, 41.953476, -88.036919, 1),
(25, 1419986588, 41.953274, -88.037064, 1),
(29, 1419987898, 41.953442, -88.036865, 0),
(32, 1419988245, 41.953506, -88.036942, 0),
(25, 1419993219, 41.953747, -88.036865, 0),
(32, 1419994078, 41.953777, -88.036797, 0),
(32, 1419995782, 41.953579, -88.036598, 0),
(22, 1419996030, 41.953472, -88.036705, 1),
(26, 1420007132, 41.953392, -88.037071, 0),
(41, 1420008462, 41.95322, -88.03698, 0),
(4, 1420009523, 41.953754, -88.036819, 0),
(32, 1420009545, 41.953754, -88.036819, 1),
(25, 1420009610, 41.953766, -88.036827, 1),
(32, 1420009642, 41.953766, -88.036827, 1),
(25, 1420010742, 41.953777, -88.036812, 0),
(32, 1420011008, 41.953606, -88.036629, 1),
(32, 1420963681, 41.947174, -88.040771, 0),
(7, 1420970969, 41.953175, -88.037018, 0),
(13, 1420971071, 41.952808, -88.037178, 1),
(32, 1420972251, 41.953075, -88.037132, 0),
(7, 1420992327, 41.953747, -88.036812, 0),
(9, 1420992333, 41.953747, -88.036812, 1),
(32, 1420992358, 41.953747, -88.036812, 1),
(9, 1420993887, 41.953541, -88.036819, 0),
(25, 1420997510, 41.953484, -88.036652, 0),
(25, 1420999044, 41.953484, -88.036652, 0),
(32, 1420999903, 41.953484, -88.036652, 0),
(15, 1421000706, 41.953537, -88.03685, 0),
(32, 1421000827, 41.953537, -88.03685, 1),
(25, 1421000888, 41.953537, -88.03685, 1),
(32, 1421010025, 41.953453, -88.036903, 0),
(26, 1421010592, 41.953541, -88.036804, 0),
(26, 1421012928, 41.95348, -88.036888, 0),
(32, 1421013025, 41.95348, -88.036888, 1),
(7, 1421013510, 41.953587, -88.036766, 0),
(32, 1421013537, 41.953365, -88.036873, 1),
(32, 1421018429, 41.953373, -88.036903, 0),
(32, 1421018980, 41.953079, -88.037155, 0),
(7, 1421020256, 41.95377, -88.036827, 0),
(7, 1421020415, 41.953445, -88.036758, 1),
(32, 1421020469, 41.953445, -88.036758, 1),
(7, 1421026506, 41.953541, -88.036697, 0),
(26, 1421026521, 41.953541, -88.036697, 1),
(20, 1421026524, 41.953541, -88.036697, 1),
(26, 1421026674, 41.95348, -88.036957, 1),
(26, 1421028174, 41.953472, -88.036888, 0),
(26, 1421028768, 41.953304, -88.036575, 0),
(32, 1421031381, 41.95338, -88.03688, 0),
(36, 1421039410, 41.953438, -88.03688, 0),
(32, 1421039510, 41.953438, -88.03688, 1),
(25, 1421042502, 41.953381, -88.036743, 0),
(26, 1421042557, 41.953381, -88.036751, 1),
(32, 1421042817, 41.953957, -88.036308, 1),
(25, 1421047212, 41.953434, -88.036812, 0),
(7, 1421079433, 41.953747, -88.036797, 0),
(26, 1421079487, 41.953461, -88.036858, 1),
(32, 1421079550, 41.953461, -88.036858, 1),
(26, 1421080209, 41.953758, -88.036804, 0),
(9, 1421080232, 41.953758, -88.036804, 1),
(29, 1421097744, 41.953522, -88.036842, 0),
(7, 1421101060, 41.953621, -88.036758, 0),
(7, 1421102129, 41.953358, -88.036766, 0),
(32, 1421102835, 41.953365, -88.036789, 0),
(32, 1421103593, 41.953453, -88.036804, 0),
(24, 1421104336, 41.953754, -88.036842, 0),
(36, 1421104441, 41.953785, -88.036804, 1),
(32, 1421106633, 41.952824, -88.036934, 0),
(26, 1421108020, 41.953465, -88.03685, 0),
(32, 1421108089, 41.953465, -88.03685, 1),
(21, 1421110012, 41.953583, -88.03672, 0),
(13, 1421110209, 41.952587, -88.037277, 1),
(25, 1421112511, 41.953773, -88.036827, 0),
(25, 1421114020, 41.953362, -88.036766, 0),
(32, 1421114780, 41.952713, -88.03714, 0),
(32, 1421120065, 41.953789, -88.036774, 0),
(7, 1421121269, 41.952724, -88.037148, 0),
(22, 1421121788, 41.952991, -88.037262, 0),
(13, 1421122317, 41.953102, -88.037125, 0),
(7, 1421122324, 41.953102, -88.037125, 1),
(7, 1421122393, 41.952766, -88.037262, 1),
(7, 1421122820, 41.947193, -88.041069, 0),
(36, 1421122842, 41.947193, -88.041069, 1),
(32, 1421122868, 41.947193, -88.041069, 1),
(7, 1421123761, 41.968613, -88.152145, 0),
(24, 1421123817, 41.96859, -88.151978, 1),
(32, 1421139126, 41.916237, -88.303696, 0),
(7, 1421142300, 41.953766, -88.03685, 0),
(32, 1421142310, 41.953785, -88.036797, 1),
(20, 1421142319, 41.953785, -88.036797, 1),
(38, 1421152804, 41.953434, -88.036888, 0),
(32, 1421152879, 41.953419, -88.036568, 1),
(38, 1421152965, 41.952679, -88.037155, 2),
(26, 1421153597, 41.952763, -88.037201, 0),
(32, 1421154714, 41.953415, -88.036728, 0),
(26, 1421155363, 41.953365, -88.036873, 0),
(32, 1421156156, 41.952717, -88.037224, 0),
(38, 1421158699, 41.953712, -88.036789, 0),
(32, 1421158753, 41.953712, -88.036789, 1),
(38, 1421158927, 41.953728, -88.036835, 1),
(29, 1421159726, 41.953556, -88.036674, 0),
(25, 1421160116, 41.95343, -88.036865, 0),
(32, 1421161685, 41.953545, -88.036667, 0),
(32, 1421162999, 41.953735, -88.036812, 0),
(9, 1421165029, 41.95359, -88.036736, 0),
(25, 1421165129, 41.952778, -88.037132, 1),
(32, 1421165365, 41.953602, -88.036827, 1),
(32, 1421174776, 41.95356, -88.036674, 0),
(25, 1421176618, 41.953732, -88.036774, 0),
(32, 1421176733, 41.953732, -88.036774, 1),
(34, 1421177425, 41.969563, -88.113914, 0),
(34, 1421178121, 41.958031, -88.15271, 0),
(32, 1421178301, 41.955807, -88.117439, 3),
(7, 1421178996, 41.956745, -88.120155, 0),
(32, 1421179006, 41.956745, -88.120155, 1),
(7, 1421179094, 41.956848, -88.120583, 1),
(32, 1421179103, 41.956848, -88.120583, 1),
(32, 1421179210, 41.961037, -88.120369, 3),
(7, 1421179530, 41.954975, -88.056381, 0),
(32, 1421179542, 41.954975, -88.056381, 1),
(7, 1421179915, 41.951206, -88.03183, 0),
(32, 1421180094, 41.95298, -88.037186, 3),
(7, 1421181485, 41.953762, -88.036804, 0),
(2, 1421181639, 41.953411, -88.036804, 1),
(25, 1421182469, 41.953751, -88.036812, 0),
(31, 1421182544, 41.953777, -88.036789, 1),
(29, 1421182619, 41.953377, -88.036667, 1),
(25, 1421182795, 41.953575, -88.036774, 1),
(41, 1421183368, 41.95377, -88.036827, 0),
(32, 1421184003, 41.953457, -88.036774, 0),
(25, 1421185205, 41.95377, -88.036842, 0),
(36, 1421186377, 41.953518, -88.036613, 0),
(32, 1421186433, 41.953506, -88.036827, 1),
(32, 1421188484, 41.936356, -88.080688, 0),
(36, 1421189107, 41.938904, -88.041603, 0),
(17, 1421281270, 41.951786, -88.040977, 0),
(18, 1421281308, 41.951786, -88.040977, 1),
(32, 1421281346, 41.951786, -88.040977, 1),
(15, 1421281402, 41.951786, -88.040977, 1),
(32, 1421281420, 41.951786, -88.040977, 1),
(7, 1421281737, 41.943657, -88.04454, 0),
(7, 1421281801, 41.943657, -88.04454, 1),
(26, 1421281806, 41.943657, -88.04454, 1),
(32, 1421282357, 41.951736, -88.031807, 0),
(32, 1421285002, 41.953564, -88.036819, 0),
(32, 1421292395, 41.953526, -88.036674, 0),
(13, 1421297618, 41.844311, -88.082954, 0),
(26, 1421297658, 41.844311, -88.082954, 1),
(46, 1421298813, 41.888432, -88.091354, 0),
(38, 1421298861, 41.888012, -88.103409, 3),
(38, 1421299024, 41.909981, -88.117737, 3),
(32, 1421299079, 41.909981, -88.117737, 1),
(32, 1421299196, 41.909981, -88.117737, 1),
(34, 1421300685, 41.952835, -88.126961, 0),
(32, 1421300727, 41.954918, -88.119896, 3),
(34, 1421300841, 41.963955, -88.120529, 3),
(36, 1421300845, 41.963955, -88.120529, 1),
(46, 1421300870, 41.963955, -88.120529, 1),
(32, 1421300913, 41.971428, -88.118614, 3),
(32, 1421301168, 41.956463, -88.075043, 3),
(46, 1421301394, 41.954494, -88.050812, 3),
(34, 1421301667, 41.939106, -88.039337, 3),
(34, 1421301948, 41.939106, -88.039337, 1),
(32, 1421303065, 41.953552, -88.036667, 0),
(7, 1421308997, 41.953629, -88.03685, 0),
(14, 1421321918, 41.953625, -88.036636, 0),
(32, 1421322166, 41.953571, -88.036751, 1),
(44, 1421322662, 41.95377, -88.036652, 0),
(15, 1421322725, 41.95319, -88.036972, 2),
(4, 1421322788, 41.95319, -88.036972, 1),
(41, 1421339743, 41.953873, -88.036812, 0),
(32, 1421339781, 41.953873, -88.036812, 1),
(13, 1421356243, 41.953491, -88.036903, 0),
(32, 1421366520, 41.953526, -88.037025, 0),
(25, 1421367501, 41.953526, -88.037025, 0),
(15, 1421367976, 41.953526, -88.037025, 0),
(18, 1421368126, 41.953526, -88.037025, 1),
(24, 1421368277, 41.953526, -88.037025, 1),
(18, 1421368353, 41.953526, -88.037025, 1),
(26, 1421368655, 41.953526, -88.037025, 0),
(32, 1421370464, 41.953526, -88.037025, 0),
(26, 1421370765, 41.953526, -88.037025, 0),
(32, 1421371666, 41.953526, -88.037025, 0),
(32, 1421376816, 41.953526, -88.037025, 0),
(32, 1421390008, 41.953526, -88.037025, 0),
(29, 1421390308, 41.953526, -88.037025, 1)])]
In [3]:
execfile("../script/context.py")
final.take(2)
Out[3]:
[(0,
[(9, 1, 1, 1),
(26, 1, 3, 1),
(26, 2, 3, 1),
(7, 1, 3, 1),
(32, 2, 3, 1),
(7, 1, 3, 1),
(7, 2, 3, 1),
(25, 1, 3, 1),
(36, 1, 3, 1),
(32, 1, 3, 1),
(25, 1, 3, 2),
(18, 2, 3, 2),
(32, 1, 3, 2),
(7, 1, 3, 2),
(32, 2, 3, 2),
(29, 1, 3, 2),
(41, 2, 1, 2),
(25, 2, 3, 2),
(25, 2, 3, 2),
(41, 2, 1, 2),
(2, 2, 3, 2),
(32, 1, 3, 2),
(44, 1, 3, 2),
(32, 2, 3, 2),
(44, 2, 3, 2),
(20, 1, 2, 3),
(26, 2, 2, 3),
(32, 2, 1, 3),
(25, 2, 3, 3),
(29, 1, 1, 3),
(32, 1, 1, 3),
(25, 1, 3, 3),
(32, 1, 3, 3),
(32, 1, 3, 3),
(22, 2, 3, 3),
(26, 1, 2, 3),
(41, 1, 3, 3),
(4, 1, 3, 1),
(32, 2, 3, 1),
(25, 2, 3, 1),
(32, 2, 3, 1),
(25, 1, 3, 1),
(32, 2, 3, 1),
(32, 1, 3, 1),
(7, 1, 3, 1),
(13, 2, 3, 1),
(32, 1, 3, 1),
(7, 1, 3, 2),
(9, 2, 3, 2),
(32, 2, 3, 2),
(9, 1, 1, 2),
(25, 1, 3, 2),
(25, 1, 3, 2),
(32, 1, 3, 3),
(15, 1, 1, 3),
(32, 2, 1, 3),
(25, 2, 1, 3),
(32, 1, 1, 3),
(26, 1, 3, 3),
(26, 1, 1, 3),
(32, 2, 1, 3),
(7, 1, 3, 3),
(32, 2, 3, 3),
(32, 1, 2, 3),
(32, 1, 3, 3),
(7, 1, 3, 3),
(7, 2, 3, 3),
(32, 2, 3, 3),
(7, 1, 3, 3),
(26, 2, 3, 3),
(20, 2, 3, 3),
(26, 2, 1, 3),
(26, 1, 1, 3),
(26, 1, 3, 3),
(32, 1, 1, 3),
(36, 1, 1, 3),
(32, 2, 1, 3),
(25, 1, 3, 3),
(26, 2, 3, 3),
(32, 2, 3, 3),
(25, 1, 1, 1),
(7, 1, 3, 2),
(26, 2, 1, 2),
(32, 2, 1, 2),
(26, 1, 3, 2),
(9, 2, 3, 2),
(29, 1, 1, 3),
(7, 1, 3, 3),
(7, 1, 3, 3),
(32, 1, 3, 3),
(32, 1, 1, 3),
(24, 1, 3, 3),
(36, 2, 3, 3),
(32, 1, 3, 3),
(26, 1, 1, 3),
(32, 2, 1, 3),
(21, 1, 3, 3),
(13, 2, 3, 3),
(25, 1, 3, 3),
(25, 1, 3, 3),
(32, 1, 3, 3),
(32, 1, 3, 3),
(7, 1, 3, 3),
(22, 1, 3, 3),
(13, 1, 3, 3),
(7, 2, 3, 3),
(7, 2, 3, 3),
(7, 1, 3, 3),
(36, 2, 3, 3),
(32, 2, 3, 3),
(7, 1, 3, 3),
(24, 2, 3, 3),
(32, 1, 3, 1),
(7, 1, 3, 1),
(32, 2, 3, 1),
(20, 2, 3, 1),
(38, 1, 1, 1),
(32, 2, 3, 1),
(38, 3, 3, 1),
(26, 1, 3, 1),
(32, 1, 3, 2),
(26, 1, 3, 2),
(32, 1, 3, 2),
(38, 1, 3, 2),
(32, 2, 3, 2),
(38, 2, 3, 2),
(29, 1, 3, 2),
(25, 1, 1, 2),
(32, 1, 3, 2),
(32, 1, 3, 2),
(9, 1, 3, 2),
(25, 2, 3, 2),
(32, 2, 3, 2),
(32, 1, 3, 3),
(25, 1, 3, 3),
(32, 2, 3, 3),
(34, 1, 3, 3),
(34, 1, 3, 3),
(32, 4, 3, 3),
(7, 1, 3, 3),
(32, 2, 3, 3),
(7, 2, 3, 3),
(32, 2, 3, 3),
(32, 4, 3, 3),
(7, 1, 3, 3),
(32, 2, 3, 3),
(7, 1, 3, 3),
(32, 4, 3, 3),
(7, 1, 3, 3),
(2, 2, 1, 3),
(25, 1, 3, 3),
(31, 2, 3, 3),
(29, 2, 3, 3),
(25, 2, 3, 3),
(41, 1, 3, 3),
(32, 1, 1, 3),
(25, 1, 3, 3),
(36, 1, 3, 3),
(32, 2, 1, 3),
(32, 1, 3, 3),
(36, 1, 3, 3),
(17, 1, 3, 3),
(18, 2, 3, 3),
(32, 2, 3, 3),
(15, 2, 3, 3),
(32, 2, 3, 3),
(7, 1, 3, 3),
(7, 2, 3, 3),
(26, 2, 3, 3),
(32, 1, 3, 3),
(32, 1, 3, 3),
(32, 1, 3, 3),
(13, 1, 3, 3),
(26, 2, 3, 3),
(46, 1, 3, 3),
(38, 4, 3, 3),
(38, 4, 3, 3),
(32, 2, 3, 3),
(32, 2, 3, 3),
(34, 1, 3, 3),
(32, 4, 3, 3),
(34, 4, 3, 3),
(36, 2, 3, 3),
(46, 2, 3, 3),
(32, 4, 3, 3),
(32, 4, 3, 3),
(46, 4, 3, 3),
(34, 4, 3, 3),
(34, 2, 3, 3),
(32, 1, 3, 3),
(7, 1, 3, 1),
(14, 1, 3, 1),
(32, 2, 3, 1),
(44, 1, 3, 1),
(15, 3, 3, 1),
(4, 2, 3, 1),
(41, 1, 3, 2),
(32, 2, 3, 2),
(13, 1, 1, 3),
(32, 1, 3, 3),
(25, 1, 3, 3),
(15, 1, 3, 3),
(18, 2, 3, 3),
(24, 2, 3, 3),
(18, 2, 3, 3),
(26, 1, 3, 3),
(32, 1, 3, 3),
(26, 1, 3, 3),
(32, 1, 3, 3),
(32, 1, 3, 3),
(32, 1, 3, 3),
(29, 2, 3, 3)]),
(1,
[(35, 1, 1, 1),
(25, 2, 1, 1),
(45, 2, 1, 1),
(35, 2, 1, 1),
(26, 2, 1, 1),
(26, 2, 1, 1),
(40, 2, 1, 1),
(36, 2, 1, 1),
(41, 2, 1, 1),
(44, 2, 1, 1),
(25, 1, 1, 1),
(26, 2, 1, 1),
(44, 2, 1, 1),
(26, 2, 1, 1),
(35, 1, 2, 1),
(26, 2, 2, 1),
(44, 2, 2, 1),
(33, 2, 2, 1),
(33, 2, 2, 1),
(26, 2, 2, 1),
(43, 2, 2, 1),
(25, 2, 2, 1),
(16, 2, 2, 1),
(43, 2, 2, 1),
(44, 2, 2, 1),
(39, 2, 2, 1),
(26, 1, 1, 1),
(16, 2, 1, 1),
(35, 2, 1, 1),
(26, 2, 1, 1),
(11, 2, 1, 1),
(48, 1, 1, 1),
(35, 2, 1, 1),
(20, 2, 1, 1),
(26, 2, 1, 1),
(18, 2, 1, 1),
(11, 2, 1, 1),
(24, 2, 1, 1),
(40, 2, 1, 1),
(11, 2, 1, 1),
(11, 2, 1, 1),
(44, 2, 1, 1),
(11, 2, 1, 1),
(24, 2, 1, 1),
(40, 2, 1, 1),
(36, 2, 1, 1),
(41, 1, 1, 1),
(26, 2, 1, 1),
(20, 2, 1, 1),
(40, 1, 1, 1),
(44, 2, 1, 1),
(11, 2, 1, 1),
(24, 1, 1, 1),
(40, 2, 1, 1),
(11, 2, 1, 1),
(44, 2, 1, 1),
(24, 2, 1, 1),
(28, 1, 1, 2),
(24, 1, 1, 2),
(28, 1, 1, 2),
(44, 1, 1, 3),
(26, 2, 1, 3),
(36, 2, 1, 3),
(41, 2, 1, 3),
(26, 2, 1, 3),
(20, 2, 1, 3),
(40, 2, 1, 3),
(11, 2, 1, 3),
(44, 2, 1, 3),
(28, 2, 1, 3),
(47, 2, 1, 3),
(25, 1, 1, 3),
(45, 2, 1, 3),
(26, 2, 1, 3),
(20, 1, 1, 3),
(40, 2, 1, 3),
(44, 2, 1, 3),
(36, 2, 1, 3),
(46, 2, 1, 3),
(41, 2, 1, 3),
(28, 1, 1, 3),
(23, 1, 1, 3),
(16, 1, 2, 3),
(35, 2, 2, 3),
(25, 2, 2, 3),
(26, 2, 1, 3),
(47, 2, 1, 3),
(20, 1, 1, 3),
(40, 1, 1, 3),
(46, 2, 1, 3),
(41, 2, 1, 3),
(44, 2, 1, 3),
(36, 1, 1, 3),
(36, 2, 1, 3),
(46, 2, 1, 3),
(28, 1, 1, 3),
(23, 1, 1, 3),
(35, 2, 1, 3),
(26, 2, 1, 3),
(25, 1, 1, 3),
(35, 2, 1, 3),
(28, 2, 1, 3),
(35, 2, 1, 3),
(33, 2, 1, 3),
(35, 2, 1, 3),
(24, 2, 1, 3),
(23, 1, 1, 3),
(18, 2, 1, 3),
(33, 2, 1, 3),
(23, 1, 1, 3),
(23, 2, 1, 3),
(36, 1, 2, 3),
(23, 2, 2, 3),
(41, 1, 1, 3),
(26, 2, 1, 3),
(23, 1, 1, 3),
(26, 2, 1, 3),
(26, 2, 1, 3),
(35, 2, 1, 3),
(25, 2, 1, 3),
(45, 2, 1, 3),
(25, 1, 1, 3),
(1, 1, 1, 3),
(23, 1, 1, 3),
(23, 2, 1, 3),
(23, 1, 1, 3),
(20, 1, 1, 3),
(40, 2, 1, 3),
(46, 2, 1, 3),
(36, 2, 1, 3),
(41, 2, 1, 3),
(44, 2, 1, 3),
(33, 2, 1, 3),
(47, 1, 1, 3),
(27, 1, 1, 3),
(11, 1, 1, 3),
(11, 2, 1, 3),
(18, 1, 1, 3),
(39, 2, 1, 3),
(23, 1, 3, 1),
(7, 2, 3, 1),
(25, 2, 3, 1),
(26, 2, 3, 1),
(16, 2, 3, 1),
(26, 2, 3, 1),
(20, 2, 3, 1),
(7, 1, 3, 1),
(11, 2, 3, 1),
(24, 2, 3, 1),
(40, 2, 3, 1),
(46, 2, 3, 1),
(36, 2, 3, 1),
(41, 2, 3, 1),
(18, 2, 3, 1),
(20, 2, 3, 1),
(40, 2, 3, 1),
(26, 1, 3, 1),
(44, 2, 3, 1),
(18, 2, 3, 1),
(33, 2, 3, 1),
(0, 1, 3, 1),
(28, 1, 3, 1),
(36, 1, 3, 1),
(28, 2, 3, 1),
(0, 2, 3, 1),
(23, 2, 3, 1),
(36, 2, 3, 1),
(46, 2, 3, 1),
(46, 2, 3, 1),
(36, 2, 3, 1),
(16, 2, 3, 1),
(33, 4, 3, 1),
(23, 1, 3, 1),
(41, 2, 3, 1),
(20, 4, 3, 1),
(26, 2, 3, 1),
(40, 4, 3, 1),
(46, 2, 3, 1),
(36, 4, 3, 1),
(44, 2, 3, 1),
(33, 2, 3, 1),
(11, 1, 3, 1),
(44, 1, 3, 1),
(11, 2, 3, 1),
(39, 1, 3, 1),
(36, 1, 3, 2),
(23, 2, 3, 2),
(41, 2, 3, 2),
(36, 2, 3, 2),
(33, 1, 3, 2),
(23, 2, 3, 2),
(28, 1, 3, 2),
(23, 1, 3, 2),
(18, 2, 3, 2),
(35, 2, 3, 2),
(25, 2, 3, 2),
(28, 1, 3, 2),
(25, 2, 3, 2),
(16, 1, 3, 2),
(35, 4, 3, 2),
(20, 4, 3, 2),
(26, 4, 3, 2),
(35, 4, 3, 2),
(40, 2, 3, 2),
(46, 2, 3, 2),
(41, 2, 3, 2),
(36, 2, 3, 2),
(20, 2, 3, 2),
(44, 2, 3, 2),
(18, 2, 3, 2),
(5, 2, 3, 2),
(12, 2, 3, 2),
(26, 4, 3, 2),
(25, 1, 3, 2),
(26, 2, 3, 2),
(36, 2, 3, 2),
(44, 2, 3, 2),
(26, 2, 3, 2),
(23, 1, 3, 2),
(23, 2, 3, 2),
(23, 2, 3, 2),
(10, 1, 3, 2),
(35, 1, 3, 3),
(25, 4, 3, 3),
(18, 4, 3, 3),
(26, 4, 3, 3),
(11, 2, 3, 3),
(46, 4, 3, 3),
(40, 1, 3, 3),
(20, 1, 3, 3),
(41, 1, 3, 3),
(36, 2, 3, 3),
(44, 1, 3, 3),
(11, 1, 3, 3),
(11, 2, 3, 3),
(27, 1, 3, 3),
(39, 1, 3, 3),
(36, 4, 3, 3),
(39, 3, 3, 3),
(44, 4, 3, 3),
(39, 2, 3, 3),
(40, 2, 3, 3),
(26, 1, 3, 3),
(46, 2, 3, 3),
(41, 1, 3, 3),
(20, 2, 3, 3),
(36, 2, 3, 3),
(44, 1, 3, 3),
(36, 1, 3, 3),
(19, 2, 3, 3),
(36, 1, 3, 3),
(41, 2, 3, 3),
(23, 4, 3, 3),
(44, 2, 3, 3),
(28, 1, 3, 3),
(36, 1, 3, 3),
(28, 2, 3, 3),
(41, 1, 3, 3),
(24, 2, 3, 3),
(33, 2, 3, 3),
(23, 2, 3, 3),
(23, 3, 3, 3),
(44, 2, 3, 3),
(33, 2, 3, 3),
(7, 1, 3, 3),
(28, 1, 3, 3),
(35, 1, 3, 3),
(25, 2, 3, 3),
(35, 1, 3, 3),
(26, 2, 3, 3),
(20, 2, 3, 3),
(26, 2, 3, 3),
(35, 1, 3, 3),
(26, 2, 3, 3),
(20, 2, 3, 3),
(26, 2, 3, 3),
(35, 1, 3, 3),
(26, 2, 3, 3),
(44, 2, 3, 3),
(35, 2, 3, 3),
(26, 2, 3, 3),
(47, 2, 3, 3),
(28, 1, 3, 3),
(23, 1, 3, 3),
(36, 4, 3, 3),
(28, 1, 3, 3),
(23, 1, 3, 3),
(7, 2, 3, 3),
(16, 4, 3, 3),
(16, 2, 3, 3),
(23, 4, 3, 3),
(23, 4, 3, 1),
(23, 1, 3, 1),
(28, 1, 3, 1),
(23, 1, 3, 1),
(35, 2, 3, 1),
(26, 4, 3, 1),
(20, 4, 3, 1),
(26, 4, 3, 1),
(26, 4, 3, 1),
(23, 1, 3, 1),
(6, 2, 3, 1),
(6, 1, 3, 1),
(41, 2, 3, 1),
(18, 2, 3, 1),
(21, 2, 3, 1),
(45, 2, 3, 1),
(44, 1, 3, 1),
(35, 2, 3, 1),
(26, 2, 3, 1),
(42, 2, 3, 1),
(44, 2, 3, 1),
(33, 2, 3, 1),
(28, 1, 3, 2),
(33, 1, 3, 2),
(28, 1, 3, 3),
(23, 1, 3, 3),
(36, 2, 3, 3),
(46, 4, 3, 3),
(26, 1, 3, 3),
(36, 1, 3, 3),
(28, 2, 3, 3),
(36, 1, 3, 3),
(7, 2, 3, 3),
(35, 4, 3, 3),
(25, 2, 3, 3),
(35, 1, 3, 3),
(26, 2, 3, 3),
(28, 1, 3, 3),
(23, 1, 3, 3),
(35, 4, 3, 3),
(26, 1, 3, 3),
(36, 2, 3, 3),
(18, 3, 3, 3),
(12, 1, 3, 3),
(23, 1, 3, 3),
(36, 2, 3, 3),
(28, 1, 3, 3),
(36, 1, 3, 3),
(23, 1, 3, 1),
(41, 4, 3, 1),
(35, 2, 3, 1),
(26, 2, 3, 1),
(44, 1, 3, 1),
(18, 4, 3, 1),
(12, 2, 3, 1),
(28, 4, 3, 1),
(36, 2, 3, 1),
(41, 2, 3, 1),
(44, 4, 3, 1),
(35, 2, 3, 1),
(26, 2, 3, 1),
(20, 4, 3, 1),
(26, 2, 3, 1),
(47, 2, 3, 1),
(35, 1, 3, 1),
(33, 2, 3, 1),
(46, 2, 3, 1),
(18, 2, 3, 1),
(41, 2, 3, 1),
(26, 2, 3, 1),
(20, 2, 3, 1),
(44, 2, 3, 1),
(29, 2, 3, 1),
(20, 2, 3, 1),
(18, 2, 3, 1),
(33, 2, 3, 1),
(46, 2, 3, 1),
(18, 1, 3, 1),
(41, 2, 3, 1),
(26, 2, 3, 1),
(20, 1, 3, 1),
(44, 2, 3, 1),
(33, 1, 3, 1),
(26, 1, 3, 1),
(7, 1, 3, 1),
(25, 2, 3, 1),
(26, 2, 3, 1),
(28, 1, 3, 1),
(7, 1, 3, 2),
(25, 2, 3, 2),
(26, 2, 3, 2),
(11, 1, 3, 2),
(46, 1, 3, 2),
(18, 2, 3, 2),
(41, 2, 3, 2),
(20, 2, 3, 2),
(26, 2, 3, 2),
(44, 2, 3, 2),
(11, 2, 3, 2),
(28, 1, 3, 2),
(11, 1, 3, 2),
(28, 2, 3, 2),
(11, 1, 3, 3),
(28, 1, 3, 3),
(23, 1, 3, 3),
(7, 2, 3, 3),
(20, 2, 3, 3),
(35, 4, 3, 3),
(25, 2, 3, 3),
(16, 1, 3, 3),
(46, 2, 3, 3),
(18, 2, 3, 3),
(41, 2, 3, 3),
(26, 2, 3, 3),
(20, 2, 3, 3),
(16, 2, 3, 3),
(44, 2, 3, 3),
(1, 2, 3, 3),
(18, 2, 3, 3),
(46, 2, 3, 3),
(18, 2, 3, 3),
(41, 2, 3, 3),
(26, 2, 3, 3),
(20, 2, 3, 3),
(44, 2, 3, 3),
(16, 2, 3, 3),
(7, 2, 3, 3),
(25, 2, 3, 3),
(26, 2, 3, 3),
(36, 1, 3, 3),
(42, 2, 3, 3),
(36, 2, 3, 3),
(18, 2, 3, 3),
(28, 4, 3, 3),
(16, 1, 3, 3),
(25, 1, 3, 3),
(28, 1, 3, 3),
(42, 1, 3, 3),
(44, 4, 3, 3),
(46, 4, 3, 3),
(41, 4, 3, 3),
(20, 2, 3, 3),
(26, 4, 3, 3),
(36, 2, 3, 3),
(18, 2, 3, 3),
(44, 2, 3, 3),
(42, 2, 3, 3),
(28, 1, 3, 3),
(18, 1, 3, 3),
(28, 1, 3, 3),
(23, 1, 3, 3),
(24, 4, 3, 3),
(47, 4, 3, 3),
(25, 1, 3, 3),
(46, 4, 3, 3),
(41, 2, 3, 3),
(20, 2, 3, 3),
(26, 4, 3, 3),
(36, 2, 3, 3),
(18, 2, 3, 3),
(44, 2, 3, 3),
(25, 4, 3, 3),
(23, 4, 3, 3),
(23, 4, 3, 3),
(23, 1, 3, 3),
(23, 2, 3, 3),
(45, 4, 3, 3),
(34, 1, 1, 3),
(23, 1, 3, 3),
(25, 2, 3, 3),
(26, 2, 3, 3),
(35, 2, 3, 3),
(25, 2, 3, 3),
(35, 2, 3, 3),
(23, 1, 3, 3),
(33, 2, 3, 3),
(41, 1, 3, 1),
(25, 1, 3, 1),
(6, 1, 3, 1),
(28, 1, 3, 1),
(23, 4, 3, 1),
(35, 2, 3, 1),
(20, 2, 3, 1),
(26, 2, 3, 1),
(25, 2, 3, 1),
(26, 2, 3, 1),
(35, 2, 3, 1),
(25, 2, 3, 1),
(28, 1, 3, 1),
(33, 4, 3, 1),
(36, 1, 3, 1),
(18, 2, 3, 1),
(41, 2, 3, 1),
(26, 2, 3, 1),
(20, 2, 3, 1),
(44, 2, 3, 1),
(45, 4, 3, 1),
(23, 1, 3, 1),
(35, 4, 3, 1),
(25, 4, 3, 1),
(35, 1, 3, 1),
(36, 2, 3, 1),
(18, 2, 3, 1),
(41, 2, 3, 1),
(26, 2, 3, 1),
(20, 2, 3, 1),
(44, 2, 3, 1),
(35, 2, 3, 1),
(25, 2, 3, 1),
(18, 1, 3, 1),
(33, 2, 3, 1),
(45, 1, 3, 2),
(28, 1, 3, 2),
(23, 1, 3, 2),
(25, 4, 3, 2),
(35, 4, 3, 2),
(25, 4, 3, 2),
(35, 2, 3, 2),
(45, 2, 3, 2),
(28, 2, 3, 2),
(24, 2, 3, 2),
(25, 2, 3, 2),
(35, 2, 3, 2),
(45, 2, 3, 2),
(24, 2, 3, 2),
(28, 1, 3, 2),
(35, 1, 3, 3),
(18, 1, 3, 3),
(7, 4, 1, 3),
(45, 2, 1, 3),
(45, 2, 1, 3),
(36, 2, 1, 3),
(18, 2, 1, 3),
(41, 2, 1, 3),
(26, 2, 1, 3),
(20, 2, 1, 3),
(44, 2, 1, 3),
(35, 1, 1, 3),
(25, 2, 1, 3),
(45, 1, 1, 3),
(47, 1, 1, 3),
(28, 1, 1, 3),
(23, 1, 1, 3),
(36, 2, 1, 3),
(18, 2, 1, 3),
(41, 2, 1, 3),
(26, 2, 1, 3),
(20, 2, 1, 3),
(44, 2, 1, 3),
(42, 2, 1, 3),
(28, 1, 1, 3),
(23, 1, 1, 3),
(28, 2, 1, 3),
(26, 2, 1, 3),
(45, 2, 1, 3),
(39, 1, 1, 1),
(28, 1, 1, 1),
(39, 2, 1, 1),
(23, 1, 1, 1),
(44, 2, 1, 1),
(18, 2, 1, 1),
(45, 4, 3, 1),
(41, 1, 3, 1),
(44, 2, 3, 1),
(25, 2, 3, 1),
(3, 1, 3, 1),
(33, 2, 3, 1),
(43, 1, 3, 1),
(39, 2, 3, 1),
(44, 2, 3, 1),
(39, 2, 3, 1),
(28, 1, 3, 1),
(23, 1, 3, 2),
(33, 3, 3, 2),
(11, 1, 3, 2),
(47, 2, 3, 2),
(27, 1, 3, 2),
(27, 2, 3, 2),
(43, 1, 3, 2),
(24, 2, 3, 2),
(35, 2, 3, 2),
(25, 2, 3, 2),
(35, 1, 3, 3),
(26, 2, 3, 3),
(39, 1, 3, 3),
(36, 1, 3, 3),
(39, 1, 3, 3),
(36, 2, 3, 3),
(46, 1, 3, 3),
(36, 2, 3, 3),
(36, 1, 3, 3),
(18, 4, 3, 3),
(7, 1, 3, 3),
(18, 1, 3, 3),
(7, 2, 3, 3),
(44, 1, 3, 3),
(7, 2, 3, 3),
(35, 1, 3, 3),
(25, 4, 3, 3),
(35, 4, 3, 3),
(25, 4, 3, 3),
(26, 4, 3, 3),
(45, 2, 3, 3),
(28, 1, 3, 3),
(45, 1, 3, 3),
(23, 2, 3, 3),
(46, 2, 3, 3),
(18, 2, 3, 3),
(45, 2, 3, 3),
(44, 2, 3, 3),
(7, 2, 3, 3),
(42, 2, 3, 3),
(36, 1, 3, 3),
(44, 2, 3, 3),
(7, 2, 3, 3),
(35, 2, 3, 3),
(25, 4, 3, 3),
(23, 1, 3, 3),
(2, 4, 3, 3),
(45, 2, 3, 3),
(35, 1, 3, 3),
(8, 1, 3, 3),
(26, 1, 3, 3),
(36, 1, 3, 3),
(42, 1, 3, 3),
(44, 1, 3, 3),
(46, 4, 3, 3),
(18, 2, 3, 3),
(36, 4, 3, 3),
(44, 2, 3, 3),
(42, 2, 3, 3),
(35, 1, 3, 3),
(25, 2, 3, 3),
(43, 1, 3, 3),
(47, 1, 3, 3),
(44, 1, 3, 3),
(35, 2, 3, 3),
(47, 2, 3, 3),
(27, 2, 3, 3),
(33, 1, 3, 3),
(41, 1, 3, 1),
(44, 4, 3, 1),
(33, 2, 3, 1),
(35, 1, 3, 1),
(25, 2, 3, 1),
(24, 2, 3, 1),
(25, 2, 3, 1),
(37, 2, 3, 1),
(45, 2, 3, 1),
(35, 1, 3, 1),
(30, 2, 3, 1),
(33, 2, 3, 1),
(26, 1, 3, 1),
(46, 2, 3, 1),
(18, 4, 3, 1),
(36, 2, 3, 1),
(41, 2, 3, 1),
(44, 2, 3, 1),
(45, 2, 3, 1),
(36, 1, 3, 1),
(39, 2, 3, 1),
(44, 1, 3, 1),
(39, 2, 3, 1),
(18, 2, 3, 1),
(23, 1, 3, 2),
(35, 2, 3, 2),
(28, 1, 3, 2),
(23, 1, 3, 2),
(35, 4, 3, 2),
(25, 2, 3, 2),
(35, 2, 3, 2),
(16, 4, 3, 2),
(7, 2, 3, 2),
(44, 4, 3, 2),
(36, 2, 3, 2),
(18, 2, 3, 2),
(26, 1, 3, 2),
(46, 2, 3, 2),
(41, 2, 3, 2),
(36, 2, 3, 2),
(18, 2, 3, 2),
(44, 2, 3, 2),
(7, 2, 3, 2),
(26, 2, 3, 2),
(7, 2, 3, 2),
(39, 2, 3, 2),
(45, 1, 3, 2),
(44, 2, 3, 2),
(26, 2, 3, 2),
(25, 2, 3, 2),
(35, 2, 3, 2),
(44, 2, 3, 2),
(35, 2, 3, 2),
(25, 4, 3, 2),
(18, 2, 3, 2),
(35, 2, 3, 2),
(25, 2, 3, 2),
(23, 1, 3, 2),
(35, 2, 3, 2),
(26, 2, 3, 2),
(35, 1, 3, 2),
(23, 1, 3, 3),
(23, 4, 3, 3),
(23, 2, 3, 3),
(23, 2, 3, 3),
(23, 2, 3, 3),
(45, 1, 3, 3),
(35, 1, 3, 3),
(20, 4, 3, 3),
(26, 2, 3, 3),
(35, 4, 3, 3),
(18, 2, 3, 3),
(41, 2, 3, 3),
(41, 2, 3, 3),
(25, 2, 3, 3),
(44, 2, 3, 3),
(46, 2, 3, 3),
(36, 2, 3, 3),
(18, 2, 3, 3),
(26, 2, 3, 3),
(20, 2, 3, 3),
(41, 2, 3, 3),
(44, 2, 3, 3),
(45, 2, 3, 3),
(26, 2, 3, 3),
(36, 2, 3, 3),
(46, 1, 3, 3),
(18, 2, 3, 3),
(20, 2, 3, 3),
(26, 1, 3, 3),
(41, 2, 3, 3),
(44, 2, 3, 3),
(26, 1, 3, 3),
(35, 2, 3, 3),
(3, 1, 3, 3),
(36, 1, 3, 3),
(3, 2, 3, 3),
(26, 4, 3, 3),
(1, 4, 3, 3),
(18, 4, 3, 3),
(7, 3, 3, 3),
(28, 1, 3, 3),
(7, 1, 3, 3),
(28, 1, 3, 3),
(35, 2, 3, 3),
(26, 2, 3, 3),
(18, 4, 3, 3),
(1, 2, 3, 3),
(28, 4, 3, 3),
(26, 4, 3, 3),
(24, 4, 3, 3),
(42, 1, 3, 3),
(20, 2, 3, 3),
(41, 2, 3, 3),
(36, 2, 3, 3),
(18, 2, 3, 3),
(26, 2, 3, 3),
(24, 2, 3, 3),
(44, 2, 3, 3),
(46, 2, 3, 3),
(20, 2, 3, 3),
(41, 2, 3, 3),
(36, 2, 3, 3),
(18, 2, 3, 3),
(26, 2, 3, 3),
(44, 2, 3, 3),
(42, 2, 3, 3),
(47, 1, 3, 3),
(44, 2, 3, 3),
(47, 2, 3, 3),
(46, 1, 3, 3),
(36, 2, 3, 3),
(20, 1, 3, 3),
(41, 1, 3, 3),
(44, 2, 3, 3),
(18, 1, 3, 3),
(26, 1, 3, 3),
(39, 2, 3, 3),
(24, 1, 3, 3),
(39, 2, 3, 3),
(46, 1, 3, 3),
(20, 2, 3, 3),
(41, 2, 3, 3),
(36, 2, 3, 3),
(18, 2, 3, 3),
(26, 2, 3, 3),
(44, 2, 3, 3),
(27, 2, 3, 3),
(33, 2, 3, 3),
(33, 2, 3, 3),
(44, 2, 3, 3),
(11, 2, 3, 3),
(24, 2, 3, 3),
(16, 2, 3, 3),
(27, 2, 3, 3),
(35, 1, 3, 3),
(26, 2, 3, 3)])]
In [ ]:
Content source: rubattino/apprecsys
Similar notebooks: