From 9ff9159f8b4b8b7030d9e05540b3a0f2f7d6cea9 Mon Sep 17 00:00:00 2001
From: Oliver Falk
Date: Mon, 7 May 2018 15:00:03 +0200
Subject: [PATCH] Initial commit
---
.gitignore | 3 +
config.py | 47 ++++
config_local.py | 2 +
ivatar/__init__.py | 1 +
ivatar/context_processors.py | 15 ++
ivatar/ivataraccount/__init__.py | 1 +
ivatar/ivataraccount/admin.py | 3 +
ivatar/ivataraccount/apps.py | 5 +
ivatar/ivataraccount/gravatar.py | 39 ++++
.../ivataraccount/migrations/0001_initial.py | 108 +++++++++
.../0002_openidassociation_openidnonce.py | 34 +++
ivatar/ivataraccount/migrations/__init__.py | 0
ivatar/ivataraccount/models.py | 212 ++++++++++++++++++
ivatar/ivataraccount/templates/login.html | 38 ++++
ivatar/ivataraccount/templates/new.html | 47 ++++
.../templates/password_change.html | 51 +++++
ivatar/ivataraccount/templates/profile.html | 89 ++++++++
ivatar/ivataraccount/test_views.py | 29 +++
ivatar/ivataraccount/tests.py | 3 +
ivatar/ivataraccount/urls.py | 19 ++
ivatar/ivataraccount/views.py | 47 ++++
ivatar/settings.py | 117 ++++++++++
ivatar/static/.well-known/browser-hints | 4 +
ivatar/static/css/ivatar.css | 187 +++++++++++++++
ivatar/static/css/jcrop.css | 2 +
ivatar/static/img/Jcrop.gif | Bin 0 -> 329 bytes
ivatar/static/img/agpl_button.png | Bin 0 -> 503 bytes
ivatar/static/img/agpl_button.svg | 192 ++++++++++++++++
ivatar/static/img/broken.gif | Bin 0 -> 735 bytes
ivatar/static/img/broken.jpg | Bin 0 -> 3771 bytes
ivatar/static/img/broken.png | Bin 0 -> 1631 bytes
ivatar/static/img/broken.svg | 79 +++++++
ivatar/static/img/deadbeef.png | Bin 0 -> 838 bytes
ivatar/static/img/delete_button.png | Bin 0 -> 331 bytes
ivatar/static/img/favicon.ico | Bin 0 -> 318 bytes
ivatar/static/img/https_lock.png | Bin 0 -> 910 bytes
ivatar/static/img/libravatar_logo.svg | 95 ++++++++
ivatar/static/img/logo.png | Bin 0 -> 557 bytes
ivatar/static/img/missing.png | Bin 0 -> 1027 bytes
ivatar/static/img/missing.svg | 83 +++++++
ivatar/static/img/mm.png | Bin 0 -> 4273 bytes
ivatar/static/img/mm.svg | 94 ++++++++
ivatar/static/img/mm/1.png | Bin 0 -> 85 bytes
ivatar/static/img/mm/10.png | Bin 0 -> 169 bytes
ivatar/static/img/mm/100.png | Bin 0 -> 466 bytes
ivatar/static/img/mm/101.png | Bin 0 -> 519 bytes
ivatar/static/img/mm/102.png | Bin 0 -> 412 bytes
ivatar/static/img/mm/103.png | Bin 0 -> 545 bytes
ivatar/static/img/mm/104.png | Bin 0 -> 484 bytes
ivatar/static/img/mm/105.png | Bin 0 -> 478 bytes
ivatar/static/img/mm/106.png | Bin 0 -> 445 bytes
ivatar/static/img/mm/107.png | Bin 0 -> 514 bytes
ivatar/static/img/mm/108.png | Bin 0 -> 598 bytes
ivatar/static/img/mm/109.png | Bin 0 -> 447 bytes
ivatar/static/img/mm/11.png | Bin 0 -> 177 bytes
ivatar/static/img/mm/110.png | Bin 0 -> 493 bytes
ivatar/static/img/mm/111.png | Bin 0 -> 485 bytes
ivatar/static/img/mm/112.png | Bin 0 -> 501 bytes
ivatar/static/img/mm/113.png | Bin 0 -> 550 bytes
ivatar/static/img/mm/114.png | Bin 0 -> 496 bytes
ivatar/static/img/mm/115.png | Bin 0 -> 430 bytes
ivatar/static/img/mm/116.png | Bin 0 -> 500 bytes
ivatar/static/img/mm/117.png | Bin 0 -> 522 bytes
ivatar/static/img/mm/118.png | Bin 0 -> 549 bytes
ivatar/static/img/mm/119.png | Bin 0 -> 487 bytes
ivatar/static/img/mm/12.png | Bin 0 -> 175 bytes
ivatar/static/img/mm/120.png | Bin 0 -> 534 bytes
ivatar/static/img/mm/121.png | Bin 0 -> 522 bytes
ivatar/static/img/mm/122.png | Bin 0 -> 555 bytes
ivatar/static/img/mm/123.png | Bin 0 -> 556 bytes
ivatar/static/img/mm/124.png | Bin 0 -> 561 bytes
ivatar/static/img/mm/125.png | Bin 0 -> 487 bytes
ivatar/static/img/mm/126.png | Bin 0 -> 551 bytes
ivatar/static/img/mm/127.png | Bin 0 -> 519 bytes
ivatar/static/img/mm/128.png | Bin 0 -> 541 bytes
ivatar/static/img/mm/129.png | Bin 0 -> 668 bytes
ivatar/static/img/mm/13.png | Bin 0 -> 184 bytes
ivatar/static/img/mm/130.png | Bin 0 -> 543 bytes
ivatar/static/img/mm/131.png | Bin 0 -> 616 bytes
ivatar/static/img/mm/132.png | Bin 0 -> 582 bytes
ivatar/static/img/mm/133.png | Bin 0 -> 612 bytes
ivatar/static/img/mm/134.png | Bin 0 -> 591 bytes
ivatar/static/img/mm/135.png | Bin 0 -> 632 bytes
ivatar/static/img/mm/136.png | Bin 0 -> 612 bytes
ivatar/static/img/mm/137.png | Bin 0 -> 540 bytes
ivatar/static/img/mm/138.png | Bin 0 -> 655 bytes
ivatar/static/img/mm/139.png | Bin 0 -> 569 bytes
ivatar/static/img/mm/14.png | Bin 0 -> 192 bytes
ivatar/static/img/mm/140.png | Bin 0 -> 657 bytes
ivatar/static/img/mm/141.png | Bin 0 -> 631 bytes
ivatar/static/img/mm/142.png | Bin 0 -> 716 bytes
ivatar/static/img/mm/143.png | Bin 0 -> 609 bytes
ivatar/static/img/mm/144.png | Bin 0 -> 648 bytes
ivatar/static/img/mm/145.png | Bin 0 -> 617 bytes
ivatar/static/img/mm/146.png | Bin 0 -> 608 bytes
ivatar/static/img/mm/147.png | Bin 0 -> 672 bytes
ivatar/static/img/mm/148.png | Bin 0 -> 680 bytes
ivatar/static/img/mm/149.png | Bin 0 -> 709 bytes
ivatar/static/img/mm/15.png | Bin 0 -> 188 bytes
ivatar/static/img/mm/150.png | Bin 0 -> 644 bytes
ivatar/static/img/mm/151.png | Bin 0 -> 698 bytes
ivatar/static/img/mm/152.png | Bin 0 -> 751 bytes
ivatar/static/img/mm/153.png | Bin 0 -> 711 bytes
ivatar/static/img/mm/154.png | Bin 0 -> 733 bytes
ivatar/static/img/mm/155.png | Bin 0 -> 744 bytes
ivatar/static/img/mm/156.png | Bin 0 -> 669 bytes
ivatar/static/img/mm/157.png | Bin 0 -> 715 bytes
ivatar/static/img/mm/158.png | Bin 0 -> 707 bytes
ivatar/static/img/mm/159.png | Bin 0 -> 812 bytes
ivatar/static/img/mm/16.png | Bin 0 -> 203 bytes
ivatar/static/img/mm/160.png | Bin 0 -> 717 bytes
ivatar/static/img/mm/161.png | Bin 0 -> 731 bytes
ivatar/static/img/mm/162.png | Bin 0 -> 795 bytes
ivatar/static/img/mm/163.png | Bin 0 -> 738 bytes
ivatar/static/img/mm/164.png | Bin 0 -> 684 bytes
ivatar/static/img/mm/165.png | Bin 0 -> 791 bytes
ivatar/static/img/mm/166.png | Bin 0 -> 801 bytes
ivatar/static/img/mm/167.png | Bin 0 -> 755 bytes
ivatar/static/img/mm/168.png | Bin 0 -> 821 bytes
ivatar/static/img/mm/169.png | Bin 0 -> 719 bytes
ivatar/static/img/mm/17.png | Bin 0 -> 195 bytes
ivatar/static/img/mm/170.png | Bin 0 -> 805 bytes
ivatar/static/img/mm/171.png | Bin 0 -> 817 bytes
ivatar/static/img/mm/172.png | Bin 0 -> 701 bytes
ivatar/static/img/mm/173.png | Bin 0 -> 676 bytes
ivatar/static/img/mm/174.png | Bin 0 -> 762 bytes
ivatar/static/img/mm/175.png | Bin 0 -> 778 bytes
ivatar/static/img/mm/176.png | Bin 0 -> 723 bytes
ivatar/static/img/mm/177.png | Bin 0 -> 812 bytes
ivatar/static/img/mm/178.png | Bin 0 -> 770 bytes
ivatar/static/img/mm/179.png | Bin 0 -> 832 bytes
ivatar/static/img/mm/18.png | Bin 0 -> 206 bytes
ivatar/static/img/mm/180.png | Bin 0 -> 854 bytes
ivatar/static/img/mm/181.png | Bin 0 -> 881 bytes
ivatar/static/img/mm/182.png | Bin 0 -> 865 bytes
ivatar/static/img/mm/183.png | Bin 0 -> 886 bytes
ivatar/static/img/mm/184.png | Bin 0 -> 865 bytes
ivatar/static/img/mm/185.png | Bin 0 -> 815 bytes
ivatar/static/img/mm/186.png | Bin 0 -> 863 bytes
ivatar/static/img/mm/187.png | Bin 0 -> 929 bytes
ivatar/static/img/mm/188.png | Bin 0 -> 805 bytes
ivatar/static/img/mm/189.png | Bin 0 -> 902 bytes
ivatar/static/img/mm/19.png | Bin 0 -> 210 bytes
ivatar/static/img/mm/190.png | Bin 0 -> 838 bytes
ivatar/static/img/mm/191.png | Bin 0 -> 923 bytes
ivatar/static/img/mm/192.png | Bin 0 -> 903 bytes
ivatar/static/img/mm/193.png | Bin 0 -> 888 bytes
ivatar/static/img/mm/194.png | Bin 0 -> 896 bytes
ivatar/static/img/mm/195.png | Bin 0 -> 872 bytes
ivatar/static/img/mm/196.png | Bin 0 -> 899 bytes
ivatar/static/img/mm/197.png | Bin 0 -> 905 bytes
ivatar/static/img/mm/198.png | Bin 0 -> 903 bytes
ivatar/static/img/mm/199.png | Bin 0 -> 953 bytes
ivatar/static/img/mm/2.png | Bin 0 -> 92 bytes
ivatar/static/img/mm/20.png | Bin 0 -> 223 bytes
ivatar/static/img/mm/200.png | Bin 0 -> 945 bytes
ivatar/static/img/mm/201.png | Bin 0 -> 824 bytes
ivatar/static/img/mm/202.png | Bin 0 -> 998 bytes
ivatar/static/img/mm/203.png | Bin 0 -> 823 bytes
ivatar/static/img/mm/204.png | Bin 0 -> 877 bytes
ivatar/static/img/mm/205.png | Bin 0 -> 974 bytes
ivatar/static/img/mm/206.png | Bin 0 -> 944 bytes
ivatar/static/img/mm/207.png | Bin 0 -> 961 bytes
ivatar/static/img/mm/208.png | Bin 0 -> 944 bytes
ivatar/static/img/mm/209.png | Bin 0 -> 992 bytes
ivatar/static/img/mm/21.png | Bin 0 -> 214 bytes
ivatar/static/img/mm/210.png | Bin 0 -> 967 bytes
ivatar/static/img/mm/211.png | Bin 0 -> 956 bytes
ivatar/static/img/mm/212.png | Bin 0 -> 1020 bytes
ivatar/static/img/mm/213.png | Bin 0 -> 985 bytes
ivatar/static/img/mm/214.png | Bin 0 -> 958 bytes
ivatar/static/img/mm/215.png | Bin 0 -> 1042 bytes
ivatar/static/img/mm/216.png | Bin 0 -> 1023 bytes
ivatar/static/img/mm/217.png | Bin 0 -> 921 bytes
ivatar/static/img/mm/218.png | Bin 0 -> 1053 bytes
ivatar/static/img/mm/219.png | Bin 0 -> 1013 bytes
ivatar/static/img/mm/22.png | Bin 0 -> 216 bytes
ivatar/static/img/mm/220.png | Bin 0 -> 1008 bytes
ivatar/static/img/mm/221.png | Bin 0 -> 996 bytes
ivatar/static/img/mm/222.png | Bin 0 -> 1098 bytes
ivatar/static/img/mm/223.png | Bin 0 -> 969 bytes
ivatar/static/img/mm/224.png | Bin 0 -> 1023 bytes
ivatar/static/img/mm/225.png | Bin 0 -> 985 bytes
ivatar/static/img/mm/226.png | Bin 0 -> 1070 bytes
ivatar/static/img/mm/227.png | Bin 0 -> 1113 bytes
ivatar/static/img/mm/228.png | Bin 0 -> 984 bytes
ivatar/static/img/mm/229.png | Bin 0 -> 1047 bytes
ivatar/static/img/mm/23.png | Bin 0 -> 218 bytes
ivatar/static/img/mm/230.png | Bin 0 -> 1116 bytes
ivatar/static/img/mm/231.png | Bin 0 -> 1107 bytes
ivatar/static/img/mm/232.png | Bin 0 -> 1035 bytes
ivatar/static/img/mm/233.png | Bin 0 -> 1133 bytes
ivatar/static/img/mm/234.png | Bin 0 -> 1071 bytes
ivatar/static/img/mm/235.png | Bin 0 -> 1103 bytes
ivatar/static/img/mm/236.png | Bin 0 -> 1146 bytes
ivatar/static/img/mm/237.png | Bin 0 -> 1199 bytes
ivatar/static/img/mm/238.png | Bin 0 -> 1134 bytes
ivatar/static/img/mm/239.png | Bin 0 -> 1002 bytes
ivatar/static/img/mm/24.png | Bin 0 -> 236 bytes
ivatar/static/img/mm/240.png | Bin 0 -> 1074 bytes
ivatar/static/img/mm/241.png | Bin 0 -> 1193 bytes
ivatar/static/img/mm/242.png | Bin 0 -> 1045 bytes
ivatar/static/img/mm/243.png | Bin 0 -> 1179 bytes
ivatar/static/img/mm/244.png | Bin 0 -> 1146 bytes
ivatar/static/img/mm/245.png | Bin 0 -> 1176 bytes
ivatar/static/img/mm/246.png | Bin 0 -> 1046 bytes
ivatar/static/img/mm/247.png | Bin 0 -> 1147 bytes
ivatar/static/img/mm/248.png | Bin 0 -> 1166 bytes
ivatar/static/img/mm/249.png | Bin 0 -> 1173 bytes
ivatar/static/img/mm/25.png | Bin 0 -> 239 bytes
ivatar/static/img/mm/250.png | Bin 0 -> 1264 bytes
ivatar/static/img/mm/251.png | Bin 0 -> 1098 bytes
ivatar/static/img/mm/252.png | Bin 0 -> 1085 bytes
ivatar/static/img/mm/253.png | Bin 0 -> 1220 bytes
ivatar/static/img/mm/254.png | Bin 0 -> 1197 bytes
ivatar/static/img/mm/255.png | Bin 0 -> 1159 bytes
ivatar/static/img/mm/256.png | Bin 0 -> 1292 bytes
ivatar/static/img/mm/257.png | Bin 0 -> 1185 bytes
ivatar/static/img/mm/258.png | Bin 0 -> 1134 bytes
ivatar/static/img/mm/259.png | Bin 0 -> 1278 bytes
ivatar/static/img/mm/26.png | Bin 0 -> 248 bytes
ivatar/static/img/mm/260.png | Bin 0 -> 1236 bytes
ivatar/static/img/mm/261.png | Bin 0 -> 1326 bytes
ivatar/static/img/mm/262.png | Bin 0 -> 1263 bytes
ivatar/static/img/mm/263.png | Bin 0 -> 1363 bytes
ivatar/static/img/mm/264.png | Bin 0 -> 1268 bytes
ivatar/static/img/mm/265.png | Bin 0 -> 1112 bytes
ivatar/static/img/mm/266.png | Bin 0 -> 1219 bytes
ivatar/static/img/mm/267.png | Bin 0 -> 1199 bytes
ivatar/static/img/mm/268.png | Bin 0 -> 1211 bytes
ivatar/static/img/mm/269.png | Bin 0 -> 1344 bytes
ivatar/static/img/mm/27.png | Bin 0 -> 254 bytes
ivatar/static/img/mm/270.png | Bin 0 -> 1190 bytes
ivatar/static/img/mm/271.png | Bin 0 -> 1219 bytes
ivatar/static/img/mm/272.png | Bin 0 -> 1334 bytes
ivatar/static/img/mm/273.png | Bin 0 -> 923 bytes
ivatar/static/img/mm/274.png | Bin 0 -> 1315 bytes
ivatar/static/img/mm/275.png | Bin 0 -> 1144 bytes
ivatar/static/img/mm/276.png | Bin 0 -> 1310 bytes
ivatar/static/img/mm/277.png | Bin 0 -> 1340 bytes
ivatar/static/img/mm/278.png | Bin 0 -> 1358 bytes
ivatar/static/img/mm/279.png | Bin 0 -> 1233 bytes
ivatar/static/img/mm/28.png | Bin 0 -> 249 bytes
ivatar/static/img/mm/280.png | Bin 0 -> 1335 bytes
ivatar/static/img/mm/281.png | Bin 0 -> 1326 bytes
ivatar/static/img/mm/282.png | Bin 0 -> 1363 bytes
ivatar/static/img/mm/283.png | Bin 0 -> 1239 bytes
ivatar/static/img/mm/284.png | Bin 0 -> 1350 bytes
ivatar/static/img/mm/285.png | Bin 0 -> 1291 bytes
ivatar/static/img/mm/286.png | Bin 0 -> 1344 bytes
ivatar/static/img/mm/287.png | Bin 0 -> 1330 bytes
ivatar/static/img/mm/288.png | Bin 0 -> 1333 bytes
ivatar/static/img/mm/289.png | Bin 0 -> 1339 bytes
ivatar/static/img/mm/29.png | Bin 0 -> 248 bytes
ivatar/static/img/mm/290.png | Bin 0 -> 1265 bytes
ivatar/static/img/mm/291.png | Bin 0 -> 1295 bytes
ivatar/static/img/mm/292.png | Bin 0 -> 1211 bytes
ivatar/static/img/mm/293.png | Bin 0 -> 1386 bytes
ivatar/static/img/mm/294.png | Bin 0 -> 1309 bytes
ivatar/static/img/mm/295.png | Bin 0 -> 1406 bytes
ivatar/static/img/mm/296.png | Bin 0 -> 1328 bytes
ivatar/static/img/mm/297.png | Bin 0 -> 1301 bytes
ivatar/static/img/mm/298.png | Bin 0 -> 1445 bytes
ivatar/static/img/mm/299.png | Bin 0 -> 1443 bytes
ivatar/static/img/mm/3.png | Bin 0 -> 116 bytes
ivatar/static/img/mm/30.png | Bin 0 -> 259 bytes
ivatar/static/img/mm/300.png | Bin 0 -> 1441 bytes
ivatar/static/img/mm/301.png | Bin 0 -> 1487 bytes
ivatar/static/img/mm/302.png | Bin 0 -> 1399 bytes
ivatar/static/img/mm/303.png | Bin 0 -> 1484 bytes
ivatar/static/img/mm/304.png | Bin 0 -> 1446 bytes
ivatar/static/img/mm/305.png | Bin 0 -> 1355 bytes
ivatar/static/img/mm/306.png | Bin 0 -> 1358 bytes
ivatar/static/img/mm/307.png | Bin 0 -> 1446 bytes
ivatar/static/img/mm/308.png | Bin 0 -> 1544 bytes
ivatar/static/img/mm/309.png | Bin 0 -> 1427 bytes
ivatar/static/img/mm/31.png | Bin 0 -> 263 bytes
ivatar/static/img/mm/310.png | Bin 0 -> 1399 bytes
ivatar/static/img/mm/311.png | Bin 0 -> 1546 bytes
ivatar/static/img/mm/312.png | Bin 0 -> 1501 bytes
ivatar/static/img/mm/313.png | Bin 0 -> 1501 bytes
ivatar/static/img/mm/314.png | Bin 0 -> 1230 bytes
ivatar/static/img/mm/315.png | Bin 0 -> 1230 bytes
ivatar/static/img/mm/316.png | Bin 0 -> 1501 bytes
ivatar/static/img/mm/317.png | Bin 0 -> 1365 bytes
ivatar/static/img/mm/318.png | Bin 0 -> 1416 bytes
ivatar/static/img/mm/319.png | Bin 0 -> 1482 bytes
ivatar/static/img/mm/32.png | Bin 0 -> 263 bytes
ivatar/static/img/mm/320.png | Bin 0 -> 1614 bytes
ivatar/static/img/mm/321.png | Bin 0 -> 1324 bytes
ivatar/static/img/mm/322.png | Bin 0 -> 1334 bytes
ivatar/static/img/mm/323.png | Bin 0 -> 1451 bytes
ivatar/static/img/mm/324.png | Bin 0 -> 1566 bytes
ivatar/static/img/mm/325.png | Bin 0 -> 1591 bytes
ivatar/static/img/mm/326.png | Bin 0 -> 1565 bytes
ivatar/static/img/mm/327.png | Bin 0 -> 1418 bytes
ivatar/static/img/mm/328.png | Bin 0 -> 1608 bytes
ivatar/static/img/mm/329.png | Bin 0 -> 1595 bytes
ivatar/static/img/mm/33.png | Bin 0 -> 275 bytes
ivatar/static/img/mm/330.png | Bin 0 -> 1396 bytes
ivatar/static/img/mm/331.png | Bin 0 -> 1648 bytes
ivatar/static/img/mm/332.png | Bin 0 -> 1550 bytes
ivatar/static/img/mm/333.png | Bin 0 -> 1501 bytes
ivatar/static/img/mm/334.png | Bin 0 -> 1692 bytes
ivatar/static/img/mm/335.png | Bin 0 -> 1489 bytes
ivatar/static/img/mm/336.png | Bin 0 -> 1611 bytes
ivatar/static/img/mm/337.png | Bin 0 -> 1629 bytes
ivatar/static/img/mm/338.png | Bin 0 -> 1549 bytes
ivatar/static/img/mm/339.png | Bin 0 -> 1602 bytes
ivatar/static/img/mm/34.png | Bin 0 -> 276 bytes
ivatar/static/img/mm/340.png | Bin 0 -> 1515 bytes
ivatar/static/img/mm/341.png | Bin 0 -> 1601 bytes
ivatar/static/img/mm/342.png | Bin 0 -> 1712 bytes
ivatar/static/img/mm/343.png | Bin 0 -> 1680 bytes
ivatar/static/img/mm/344.png | Bin 0 -> 1790 bytes
ivatar/static/img/mm/345.png | Bin 0 -> 1731 bytes
ivatar/static/img/mm/346.png | Bin 0 -> 1610 bytes
ivatar/static/img/mm/347.png | Bin 0 -> 1700 bytes
ivatar/static/img/mm/348.png | Bin 0 -> 1767 bytes
ivatar/static/img/mm/349.png | Bin 0 -> 1660 bytes
ivatar/static/img/mm/35.png | Bin 0 -> 276 bytes
ivatar/static/img/mm/350.png | Bin 0 -> 1810 bytes
ivatar/static/img/mm/351.png | Bin 0 -> 1756 bytes
ivatar/static/img/mm/352.png | Bin 0 -> 1711 bytes
ivatar/static/img/mm/353.png | Bin 0 -> 1627 bytes
ivatar/static/img/mm/354.png | Bin 0 -> 1846 bytes
ivatar/static/img/mm/355.png | Bin 0 -> 1780 bytes
ivatar/static/img/mm/356.png | Bin 0 -> 1697 bytes
ivatar/static/img/mm/357.png | Bin 0 -> 1688 bytes
ivatar/static/img/mm/358.png | Bin 0 -> 1840 bytes
ivatar/static/img/mm/359.png | Bin 0 -> 1664 bytes
ivatar/static/img/mm/36.png | Bin 0 -> 293 bytes
ivatar/static/img/mm/360.png | Bin 0 -> 1723 bytes
ivatar/static/img/mm/361.png | Bin 0 -> 1782 bytes
ivatar/static/img/mm/362.png | Bin 0 -> 1902 bytes
ivatar/static/img/mm/363.png | Bin 0 -> 1720 bytes
ivatar/static/img/mm/364.png | Bin 0 -> 1873 bytes
ivatar/static/img/mm/365.png | Bin 0 -> 1864 bytes
ivatar/static/img/mm/366.png | Bin 0 -> 1563 bytes
ivatar/static/img/mm/367.png | Bin 0 -> 1843 bytes
ivatar/static/img/mm/368.png | Bin 0 -> 1821 bytes
ivatar/static/img/mm/369.png | Bin 0 -> 1842 bytes
ivatar/static/img/mm/37.png | Bin 0 -> 302 bytes
ivatar/static/img/mm/370.png | Bin 0 -> 1709 bytes
ivatar/static/img/mm/371.png | Bin 0 -> 1635 bytes
ivatar/static/img/mm/372.png | Bin 0 -> 1950 bytes
ivatar/static/img/mm/373.png | Bin 0 -> 1902 bytes
ivatar/static/img/mm/374.png | Bin 0 -> 1767 bytes
ivatar/static/img/mm/375.png | Bin 0 -> 1828 bytes
ivatar/static/img/mm/376.png | Bin 0 -> 1777 bytes
ivatar/static/img/mm/377.png | Bin 0 -> 1916 bytes
ivatar/static/img/mm/378.png | Bin 0 -> 1820 bytes
ivatar/static/img/mm/379.png | Bin 0 -> 1848 bytes
ivatar/static/img/mm/38.png | Bin 0 -> 282 bytes
ivatar/static/img/mm/380.png | Bin 0 -> 1932 bytes
ivatar/static/img/mm/381.png | Bin 0 -> 1859 bytes
ivatar/static/img/mm/382.png | Bin 0 -> 1960 bytes
ivatar/static/img/mm/383.png | Bin 0 -> 2022 bytes
ivatar/static/img/mm/384.png | Bin 0 -> 1867 bytes
ivatar/static/img/mm/385.png | Bin 0 -> 1966 bytes
ivatar/static/img/mm/386.png | Bin 0 -> 1880 bytes
ivatar/static/img/mm/387.png | Bin 0 -> 1716 bytes
ivatar/static/img/mm/388.png | Bin 0 -> 2035 bytes
ivatar/static/img/mm/389.png | Bin 0 -> 2038 bytes
ivatar/static/img/mm/39.png | Bin 0 -> 285 bytes
ivatar/static/img/mm/390.png | Bin 0 -> 1795 bytes
ivatar/static/img/mm/391.png | Bin 0 -> 1806 bytes
ivatar/static/img/mm/392.png | Bin 0 -> 2117 bytes
ivatar/static/img/mm/393.png | Bin 0 -> 1817 bytes
ivatar/static/img/mm/394.png | Bin 0 -> 2036 bytes
ivatar/static/img/mm/395.png | Bin 0 -> 1879 bytes
ivatar/static/img/mm/396.png | Bin 0 -> 1906 bytes
ivatar/static/img/mm/397.png | Bin 0 -> 2099 bytes
ivatar/static/img/mm/398.png | Bin 0 -> 1805 bytes
ivatar/static/img/mm/399.png | Bin 0 -> 1810 bytes
ivatar/static/img/mm/4.png | Bin 0 -> 126 bytes
ivatar/static/img/mm/40.png | Bin 0 -> 330 bytes
ivatar/static/img/mm/400.png | Bin 0 -> 2073 bytes
ivatar/static/img/mm/401.png | Bin 0 -> 1893 bytes
ivatar/static/img/mm/402.png | Bin 0 -> 2077 bytes
ivatar/static/img/mm/403.png | Bin 0 -> 1763 bytes
ivatar/static/img/mm/404.png | Bin 0 -> 1772 bytes
ivatar/static/img/mm/405.png | Bin 0 -> 2085 bytes
ivatar/static/img/mm/406.png | Bin 0 -> 2099 bytes
ivatar/static/img/mm/407.png | Bin 0 -> 1919 bytes
ivatar/static/img/mm/408.png | Bin 0 -> 1910 bytes
ivatar/static/img/mm/409.png | Bin 0 -> 1869 bytes
ivatar/static/img/mm/41.png | Bin 0 -> 300 bytes
ivatar/static/img/mm/410.png | Bin 0 -> 2189 bytes
ivatar/static/img/mm/411.png | Bin 0 -> 1955 bytes
ivatar/static/img/mm/412.png | Bin 0 -> 1847 bytes
ivatar/static/img/mm/413.png | Bin 0 -> 2173 bytes
ivatar/static/img/mm/414.png | Bin 0 -> 2193 bytes
ivatar/static/img/mm/415.png | Bin 0 -> 1956 bytes
ivatar/static/img/mm/416.png | Bin 0 -> 2187 bytes
ivatar/static/img/mm/417.png | Bin 0 -> 2129 bytes
ivatar/static/img/mm/418.png | Bin 0 -> 2229 bytes
ivatar/static/img/mm/419.png | Bin 0 -> 1984 bytes
ivatar/static/img/mm/42.png | Bin 0 -> 292 bytes
ivatar/static/img/mm/420.png | Bin 0 -> 1968 bytes
ivatar/static/img/mm/421.png | Bin 0 -> 2133 bytes
ivatar/static/img/mm/422.png | Bin 0 -> 1948 bytes
ivatar/static/img/mm/423.png | Bin 0 -> 1943 bytes
ivatar/static/img/mm/424.png | Bin 0 -> 2162 bytes
ivatar/static/img/mm/425.png | Bin 0 -> 1853 bytes
ivatar/static/img/mm/426.png | Bin 0 -> 2270 bytes
ivatar/static/img/mm/427.png | Bin 0 -> 2206 bytes
ivatar/static/img/mm/428.png | Bin 0 -> 1987 bytes
ivatar/static/img/mm/429.png | Bin 0 -> 2006 bytes
ivatar/static/img/mm/43.png | Bin 0 -> 331 bytes
ivatar/static/img/mm/430.png | Bin 0 -> 2006 bytes
ivatar/static/img/mm/431.png | Bin 0 -> 2043 bytes
ivatar/static/img/mm/432.png | Bin 0 -> 2311 bytes
ivatar/static/img/mm/433.png | Bin 0 -> 2255 bytes
ivatar/static/img/mm/434.png | Bin 0 -> 2264 bytes
ivatar/static/img/mm/435.png | Bin 0 -> 2278 bytes
ivatar/static/img/mm/436.png | Bin 0 -> 1945 bytes
ivatar/static/img/mm/437.png | Bin 0 -> 2279 bytes
ivatar/static/img/mm/438.png | Bin 0 -> 2307 bytes
ivatar/static/img/mm/439.png | Bin 0 -> 2245 bytes
ivatar/static/img/mm/44.png | Bin 0 -> 340 bytes
ivatar/static/img/mm/440.png | Bin 0 -> 2266 bytes
ivatar/static/img/mm/441.png | Bin 0 -> 2115 bytes
ivatar/static/img/mm/442.png | Bin 0 -> 2351 bytes
ivatar/static/img/mm/443.png | Bin 0 -> 2108 bytes
ivatar/static/img/mm/444.png | Bin 0 -> 2039 bytes
ivatar/static/img/mm/445.png | Bin 0 -> 2232 bytes
ivatar/static/img/mm/446.png | Bin 0 -> 2096 bytes
ivatar/static/img/mm/447.png | Bin 0 -> 2351 bytes
ivatar/static/img/mm/448.png | Bin 0 -> 2054 bytes
ivatar/static/img/mm/449.png | Bin 0 -> 2342 bytes
ivatar/static/img/mm/45.png | Bin 0 -> 325 bytes
ivatar/static/img/mm/450.png | Bin 0 -> 2295 bytes
ivatar/static/img/mm/451.png | Bin 0 -> 2092 bytes
ivatar/static/img/mm/452.png | Bin 0 -> 2115 bytes
ivatar/static/img/mm/453.png | Bin 0 -> 2286 bytes
ivatar/static/img/mm/454.png | Bin 0 -> 2114 bytes
ivatar/static/img/mm/455.png | Bin 0 -> 2435 bytes
ivatar/static/img/mm/456.png | Bin 0 -> 2307 bytes
ivatar/static/img/mm/457.png | Bin 0 -> 2334 bytes
ivatar/static/img/mm/458.png | Bin 0 -> 2117 bytes
ivatar/static/img/mm/459.png | Bin 0 -> 2360 bytes
ivatar/static/img/mm/46.png | Bin 0 -> 336 bytes
ivatar/static/img/mm/460.png | Bin 0 -> 2411 bytes
ivatar/static/img/mm/461.png | Bin 0 -> 2367 bytes
ivatar/static/img/mm/462.png | Bin 0 -> 2148 bytes
ivatar/static/img/mm/463.png | Bin 0 -> 2328 bytes
ivatar/static/img/mm/464.png | Bin 0 -> 2438 bytes
ivatar/static/img/mm/465.png | Bin 0 -> 2103 bytes
ivatar/static/img/mm/466.png | Bin 0 -> 2391 bytes
ivatar/static/img/mm/467.png | Bin 0 -> 2165 bytes
ivatar/static/img/mm/468.png | Bin 0 -> 2151 bytes
ivatar/static/img/mm/469.png | Bin 0 -> 2167 bytes
ivatar/static/img/mm/47.png | Bin 0 -> 326 bytes
ivatar/static/img/mm/470.png | Bin 0 -> 2427 bytes
ivatar/static/img/mm/471.png | Bin 0 -> 2485 bytes
ivatar/static/img/mm/472.png | Bin 0 -> 2378 bytes
ivatar/static/img/mm/473.png | Bin 0 -> 2459 bytes
ivatar/static/img/mm/474.png | Bin 0 -> 2408 bytes
ivatar/static/img/mm/475.png | Bin 0 -> 2445 bytes
ivatar/static/img/mm/476.png | Bin 0 -> 2541 bytes
ivatar/static/img/mm/477.png | Bin 0 -> 2217 bytes
ivatar/static/img/mm/478.png | Bin 0 -> 2374 bytes
ivatar/static/img/mm/479.png | Bin 0 -> 2380 bytes
ivatar/static/img/mm/48.png | Bin 0 -> 325 bytes
ivatar/static/img/mm/480.png | Bin 0 -> 2222 bytes
ivatar/static/img/mm/481.png | Bin 0 -> 2161 bytes
ivatar/static/img/mm/482.png | Bin 0 -> 2490 bytes
ivatar/static/img/mm/483.png | Bin 0 -> 2522 bytes
ivatar/static/img/mm/484.png | Bin 0 -> 2304 bytes
ivatar/static/img/mm/485.png | Bin 0 -> 2167 bytes
ivatar/static/img/mm/486.png | Bin 0 -> 2532 bytes
ivatar/static/img/mm/487.png | Bin 0 -> 2426 bytes
ivatar/static/img/mm/488.png | Bin 0 -> 2221 bytes
ivatar/static/img/mm/489.png | Bin 0 -> 2446 bytes
ivatar/static/img/mm/49.png | Bin 0 -> 330 bytes
ivatar/static/img/mm/490.png | Bin 0 -> 2292 bytes
ivatar/static/img/mm/491.png | Bin 0 -> 2444 bytes
ivatar/static/img/mm/492.png | Bin 0 -> 2287 bytes
ivatar/static/img/mm/493.png | Bin 0 -> 2463 bytes
ivatar/static/img/mm/494.png | Bin 0 -> 2411 bytes
ivatar/static/img/mm/495.png | Bin 0 -> 2219 bytes
ivatar/static/img/mm/496.png | Bin 0 -> 2318 bytes
ivatar/static/img/mm/497.png | Bin 0 -> 2368 bytes
ivatar/static/img/mm/498.png | Bin 0 -> 2427 bytes
ivatar/static/img/mm/499.png | Bin 0 -> 2512 bytes
ivatar/static/img/mm/5.png | Bin 0 -> 132 bytes
ivatar/static/img/mm/50.png | Bin 0 -> 297 bytes
ivatar/static/img/mm/500.png | Bin 0 -> 2552 bytes
ivatar/static/img/mm/501.png | Bin 0 -> 2301 bytes
ivatar/static/img/mm/502.png | Bin 0 -> 2583 bytes
ivatar/static/img/mm/503.png | Bin 0 -> 2504 bytes
ivatar/static/img/mm/504.png | Bin 0 -> 2303 bytes
ivatar/static/img/mm/505.png | Bin 0 -> 2545 bytes
ivatar/static/img/mm/506.png | Bin 0 -> 2520 bytes
ivatar/static/img/mm/507.png | Bin 0 -> 2521 bytes
ivatar/static/img/mm/508.png | Bin 0 -> 2514 bytes
ivatar/static/img/mm/509.png | Bin 0 -> 2499 bytes
ivatar/static/img/mm/51.png | Bin 0 -> 336 bytes
ivatar/static/img/mm/510.png | Bin 0 -> 2294 bytes
ivatar/static/img/mm/511.png | Bin 0 -> 2572 bytes
ivatar/static/img/mm/512.png | Bin 0 -> 2372 bytes
ivatar/static/img/mm/52.png | Bin 0 -> 367 bytes
ivatar/static/img/mm/53.png | Bin 0 -> 353 bytes
ivatar/static/img/mm/54.png | Bin 0 -> 341 bytes
ivatar/static/img/mm/55.png | Bin 0 -> 360 bytes
ivatar/static/img/mm/56.png | Bin 0 -> 406 bytes
ivatar/static/img/mm/57.png | Bin 0 -> 411 bytes
ivatar/static/img/mm/58.png | Bin 0 -> 380 bytes
ivatar/static/img/mm/59.png | Bin 0 -> 359 bytes
ivatar/static/img/mm/6.png | Bin 0 -> 127 bytes
ivatar/static/img/mm/60.png | Bin 0 -> 372 bytes
ivatar/static/img/mm/61.png | Bin 0 -> 358 bytes
ivatar/static/img/mm/62.png | Bin 0 -> 369 bytes
ivatar/static/img/mm/63.png | Bin 0 -> 372 bytes
ivatar/static/img/mm/64.png | Bin 0 -> 439 bytes
ivatar/static/img/mm/65.png | Bin 0 -> 352 bytes
ivatar/static/img/mm/66.png | Bin 0 -> 369 bytes
ivatar/static/img/mm/67.png | Bin 0 -> 375 bytes
ivatar/static/img/mm/68.png | Bin 0 -> 388 bytes
ivatar/static/img/mm/69.png | Bin 0 -> 332 bytes
ivatar/static/img/mm/7.png | Bin 0 -> 150 bytes
ivatar/static/img/mm/70.png | Bin 0 -> 395 bytes
ivatar/static/img/mm/71.png | Bin 0 -> 396 bytes
ivatar/static/img/mm/72.png | Bin 0 -> 368 bytes
ivatar/static/img/mm/73.png | Bin 0 -> 407 bytes
ivatar/static/img/mm/74.png | Bin 0 -> 422 bytes
ivatar/static/img/mm/75.png | Bin 0 -> 441 bytes
ivatar/static/img/mm/76.png | Bin 0 -> 434 bytes
ivatar/static/img/mm/77.png | Bin 0 -> 382 bytes
ivatar/static/img/mm/78.png | Bin 0 -> 403 bytes
ivatar/static/img/mm/79.png | Bin 0 -> 459 bytes
ivatar/static/img/mm/8.png | Bin 0 -> 138 bytes
ivatar/static/img/mm/80.png | Bin 0 -> 413 bytes
ivatar/static/img/mm/81.png | Bin 0 -> 462 bytes
ivatar/static/img/mm/82.png | Bin 0 -> 390 bytes
ivatar/static/img/mm/83.png | Bin 0 -> 369 bytes
ivatar/static/img/mm/84.png | Bin 0 -> 385 bytes
ivatar/static/img/mm/85.png | Bin 0 -> 409 bytes
ivatar/static/img/mm/86.png | Bin 0 -> 450 bytes
ivatar/static/img/mm/87.png | Bin 0 -> 458 bytes
ivatar/static/img/mm/88.png | Bin 0 -> 488 bytes
ivatar/static/img/mm/89.png | Bin 0 -> 404 bytes
ivatar/static/img/mm/9.png | Bin 0 -> 159 bytes
ivatar/static/img/mm/90.png | Bin 0 -> 453 bytes
ivatar/static/img/mm/91.png | Bin 0 -> 450 bytes
ivatar/static/img/mm/92.png | Bin 0 -> 450 bytes
ivatar/static/img/mm/93.png | Bin 0 -> 397 bytes
ivatar/static/img/mm/94.png | Bin 0 -> 440 bytes
ivatar/static/img/mm/95.png | Bin 0 -> 427 bytes
ivatar/static/img/mm/96.png | Bin 0 -> 471 bytes
ivatar/static/img/mm/97.png | Bin 0 -> 425 bytes
ivatar/static/img/mm/98.png | Bin 0 -> 473 bytes
ivatar/static/img/mm/99.png | Bin 0 -> 462 bytes
ivatar/static/img/mstile-150x150.png | Bin 0 -> 4171 bytes
ivatar/static/img/mstile-310x310.png | Bin 0 -> 9887 bytes
ivatar/static/img/mstile-70x70.png | Bin 0 -> 2838 bytes
ivatar/static/img/nobody.png | Bin 0 -> 6514 bytes
ivatar/static/img/nobody/1.png | Bin 0 -> 85 bytes
ivatar/static/img/nobody/10.png | Bin 0 -> 149 bytes
ivatar/static/img/nobody/100.png | Bin 0 -> 708 bytes
ivatar/static/img/nobody/101.png | Bin 0 -> 670 bytes
ivatar/static/img/nobody/102.png | Bin 0 -> 768 bytes
ivatar/static/img/nobody/103.png | Bin 0 -> 824 bytes
ivatar/static/img/nobody/104.png | Bin 0 -> 850 bytes
ivatar/static/img/nobody/105.png | Bin 0 -> 785 bytes
ivatar/static/img/nobody/106.png | Bin 0 -> 779 bytes
ivatar/static/img/nobody/107.png | Bin 0 -> 842 bytes
ivatar/static/img/nobody/108.png | Bin 0 -> 798 bytes
ivatar/static/img/nobody/109.png | Bin 0 -> 894 bytes
ivatar/static/img/nobody/11.png | Bin 0 -> 202 bytes
ivatar/static/img/nobody/110.png | Bin 0 -> 820 bytes
ivatar/static/img/nobody/111.png | Bin 0 -> 752 bytes
ivatar/static/img/nobody/112.png | Bin 0 -> 890 bytes
ivatar/static/img/nobody/113.png | Bin 0 -> 864 bytes
ivatar/static/img/nobody/114.png | Bin 0 -> 850 bytes
ivatar/static/img/nobody/115.png | Bin 0 -> 781 bytes
ivatar/static/img/nobody/116.png | Bin 0 -> 814 bytes
ivatar/static/img/nobody/117.png | Bin 0 -> 720 bytes
ivatar/static/img/nobody/118.png | Bin 0 -> 852 bytes
ivatar/static/img/nobody/119.png | Bin 0 -> 830 bytes
ivatar/static/img/nobody/12.png | Bin 0 -> 188 bytes
ivatar/static/img/nobody/120.png | Bin 0 -> 847 bytes
ivatar/static/img/nobody/121.png | Bin 0 -> 1009 bytes
ivatar/static/img/nobody/122.png | Bin 0 -> 823 bytes
ivatar/static/img/nobody/123.png | Bin 0 -> 1023 bytes
ivatar/static/img/nobody/124.png | Bin 0 -> 861 bytes
ivatar/static/img/nobody/125.png | Bin 0 -> 1016 bytes
ivatar/static/img/nobody/126.png | Bin 0 -> 971 bytes
ivatar/static/img/nobody/127.png | Bin 0 -> 997 bytes
ivatar/static/img/nobody/128.png | Bin 0 -> 866 bytes
ivatar/static/img/nobody/129.png | Bin 0 -> 942 bytes
ivatar/static/img/nobody/13.png | Bin 0 -> 197 bytes
ivatar/static/img/nobody/130.png | Bin 0 -> 908 bytes
ivatar/static/img/nobody/131.png | Bin 0 -> 912 bytes
ivatar/static/img/nobody/132.png | Bin 0 -> 1059 bytes
ivatar/static/img/nobody/133.png | Bin 0 -> 938 bytes
ivatar/static/img/nobody/134.png | Bin 0 -> 978 bytes
ivatar/static/img/nobody/135.png | Bin 0 -> 1011 bytes
ivatar/static/img/nobody/136.png | Bin 0 -> 971 bytes
ivatar/static/img/nobody/137.png | Bin 0 -> 1014 bytes
ivatar/static/img/nobody/138.png | Bin 0 -> 1066 bytes
ivatar/static/img/nobody/139.png | Bin 0 -> 1081 bytes
ivatar/static/img/nobody/14.png | Bin 0 -> 225 bytes
ivatar/static/img/nobody/140.png | Bin 0 -> 961 bytes
ivatar/static/img/nobody/141.png | Bin 0 -> 1005 bytes
ivatar/static/img/nobody/142.png | Bin 0 -> 1090 bytes
ivatar/static/img/nobody/143.png | Bin 0 -> 1103 bytes
ivatar/static/img/nobody/144.png | Bin 0 -> 1042 bytes
ivatar/static/img/nobody/145.png | Bin 0 -> 982 bytes
ivatar/static/img/nobody/146.png | Bin 0 -> 910 bytes
ivatar/static/img/nobody/147.png | Bin 0 -> 1092 bytes
ivatar/static/img/nobody/148.png | Bin 0 -> 998 bytes
ivatar/static/img/nobody/149.png | Bin 0 -> 1129 bytes
ivatar/static/img/nobody/15.png | Bin 0 -> 222 bytes
ivatar/static/img/nobody/150.png | Bin 0 -> 1070 bytes
ivatar/static/img/nobody/151.png | Bin 0 -> 984 bytes
ivatar/static/img/nobody/152.png | Bin 0 -> 1020 bytes
ivatar/static/img/nobody/153.png | Bin 0 -> 1116 bytes
ivatar/static/img/nobody/154.png | Bin 0 -> 1212 bytes
ivatar/static/img/nobody/155.png | Bin 0 -> 1248 bytes
ivatar/static/img/nobody/156.png | Bin 0 -> 1163 bytes
ivatar/static/img/nobody/157.png | Bin 0 -> 1204 bytes
ivatar/static/img/nobody/158.png | Bin 0 -> 1160 bytes
ivatar/static/img/nobody/159.png | Bin 0 -> 1209 bytes
ivatar/static/img/nobody/16.png | Bin 0 -> 236 bytes
ivatar/static/img/nobody/160.png | Bin 0 -> 1221 bytes
ivatar/static/img/nobody/161.png | Bin 0 -> 1159 bytes
ivatar/static/img/nobody/162.png | Bin 0 -> 1225 bytes
ivatar/static/img/nobody/163.png | Bin 0 -> 1312 bytes
ivatar/static/img/nobody/164.png | Bin 0 -> 1219 bytes
ivatar/static/img/nobody/165.png | Bin 0 -> 1194 bytes
ivatar/static/img/nobody/166.png | Bin 0 -> 1258 bytes
ivatar/static/img/nobody/167.png | Bin 0 -> 1279 bytes
ivatar/static/img/nobody/168.png | Bin 0 -> 1421 bytes
ivatar/static/img/nobody/169.png | Bin 0 -> 1231 bytes
ivatar/static/img/nobody/17.png | Bin 0 -> 242 bytes
ivatar/static/img/nobody/170.png | Bin 0 -> 1153 bytes
ivatar/static/img/nobody/171.png | Bin 0 -> 1165 bytes
ivatar/static/img/nobody/172.png | Bin 0 -> 1165 bytes
ivatar/static/img/nobody/173.png | Bin 0 -> 1343 bytes
ivatar/static/img/nobody/174.png | Bin 0 -> 1284 bytes
ivatar/static/img/nobody/175.png | Bin 0 -> 1166 bytes
ivatar/static/img/nobody/176.png | Bin 0 -> 1296 bytes
ivatar/static/img/nobody/177.png | Bin 0 -> 1357 bytes
ivatar/static/img/nobody/178.png | Bin 0 -> 1350 bytes
ivatar/static/img/nobody/179.png | Bin 0 -> 1287 bytes
ivatar/static/img/nobody/18.png | Bin 0 -> 242 bytes
ivatar/static/img/nobody/180.png | Bin 0 -> 1433 bytes
ivatar/static/img/nobody/181.png | Bin 0 -> 1178 bytes
ivatar/static/img/nobody/182.png | Bin 0 -> 1274 bytes
ivatar/static/img/nobody/183.png | Bin 0 -> 1353 bytes
ivatar/static/img/nobody/184.png | Bin 0 -> 1081 bytes
ivatar/static/img/nobody/185.png | Bin 0 -> 1407 bytes
ivatar/static/img/nobody/186.png | Bin 0 -> 1467 bytes
ivatar/static/img/nobody/187.png | Bin 0 -> 1447 bytes
ivatar/static/img/nobody/188.png | Bin 0 -> 1365 bytes
ivatar/static/img/nobody/189.png | Bin 0 -> 1460 bytes
ivatar/static/img/nobody/19.png | Bin 0 -> 247 bytes
ivatar/static/img/nobody/190.png | Bin 0 -> 1328 bytes
ivatar/static/img/nobody/191.png | Bin 0 -> 1525 bytes
ivatar/static/img/nobody/192.png | Bin 0 -> 1497 bytes
ivatar/static/img/nobody/193.png | Bin 0 -> 1402 bytes
ivatar/static/img/nobody/194.png | Bin 0 -> 1598 bytes
ivatar/static/img/nobody/195.png | Bin 0 -> 1266 bytes
ivatar/static/img/nobody/196.png | Bin 0 -> 1338 bytes
ivatar/static/img/nobody/197.png | Bin 0 -> 1463 bytes
ivatar/static/img/nobody/198.png | Bin 0 -> 1416 bytes
ivatar/static/img/nobody/199.png | Bin 0 -> 1289 bytes
ivatar/static/img/nobody/2.png | Bin 0 -> 92 bytes
ivatar/static/img/nobody/20.png | Bin 0 -> 265 bytes
ivatar/static/img/nobody/200.png | Bin 0 -> 1220 bytes
ivatar/static/img/nobody/201.png | Bin 0 -> 1527 bytes
ivatar/static/img/nobody/202.png | Bin 0 -> 1588 bytes
ivatar/static/img/nobody/203.png | Bin 0 -> 1478 bytes
ivatar/static/img/nobody/204.png | Bin 0 -> 1410 bytes
ivatar/static/img/nobody/205.png | Bin 0 -> 1515 bytes
ivatar/static/img/nobody/206.png | Bin 0 -> 1413 bytes
ivatar/static/img/nobody/207.png | Bin 0 -> 1603 bytes
ivatar/static/img/nobody/208.png | Bin 0 -> 1510 bytes
ivatar/static/img/nobody/209.png | Bin 0 -> 1599 bytes
ivatar/static/img/nobody/21.png | Bin 0 -> 271 bytes
ivatar/static/img/nobody/210.png | Bin 0 -> 1435 bytes
ivatar/static/img/nobody/211.png | Bin 0 -> 1618 bytes
ivatar/static/img/nobody/212.png | Bin 0 -> 1597 bytes
ivatar/static/img/nobody/213.png | Bin 0 -> 1625 bytes
ivatar/static/img/nobody/214.png | Bin 0 -> 1494 bytes
ivatar/static/img/nobody/215.png | Bin 0 -> 1785 bytes
ivatar/static/img/nobody/216.png | Bin 0 -> 1460 bytes
ivatar/static/img/nobody/217.png | Bin 0 -> 1596 bytes
ivatar/static/img/nobody/218.png | Bin 0 -> 1555 bytes
ivatar/static/img/nobody/219.png | Bin 0 -> 1640 bytes
ivatar/static/img/nobody/22.png | Bin 0 -> 273 bytes
ivatar/static/img/nobody/220.png | Bin 0 -> 1422 bytes
ivatar/static/img/nobody/221.png | Bin 0 -> 1769 bytes
ivatar/static/img/nobody/222.png | Bin 0 -> 1735 bytes
ivatar/static/img/nobody/223.png | Bin 0 -> 1716 bytes
ivatar/static/img/nobody/224.png | Bin 0 -> 1626 bytes
ivatar/static/img/nobody/225.png | Bin 0 -> 1636 bytes
ivatar/static/img/nobody/226.png | Bin 0 -> 1703 bytes
ivatar/static/img/nobody/227.png | Bin 0 -> 1509 bytes
ivatar/static/img/nobody/228.png | Bin 0 -> 1746 bytes
ivatar/static/img/nobody/229.png | Bin 0 -> 1798 bytes
ivatar/static/img/nobody/23.png | Bin 0 -> 269 bytes
ivatar/static/img/nobody/230.png | Bin 0 -> 1794 bytes
ivatar/static/img/nobody/231.png | Bin 0 -> 1808 bytes
ivatar/static/img/nobody/232.png | Bin 0 -> 1672 bytes
ivatar/static/img/nobody/233.png | Bin 0 -> 1723 bytes
ivatar/static/img/nobody/234.png | Bin 0 -> 1705 bytes
ivatar/static/img/nobody/235.png | Bin 0 -> 1826 bytes
ivatar/static/img/nobody/236.png | Bin 0 -> 1722 bytes
ivatar/static/img/nobody/237.png | Bin 0 -> 1771 bytes
ivatar/static/img/nobody/238.png | Bin 0 -> 1805 bytes
ivatar/static/img/nobody/239.png | Bin 0 -> 1898 bytes
ivatar/static/img/nobody/24.png | Bin 0 -> 279 bytes
ivatar/static/img/nobody/240.png | Bin 0 -> 1674 bytes
ivatar/static/img/nobody/241.png | Bin 0 -> 1894 bytes
ivatar/static/img/nobody/242.png | Bin 0 -> 1880 bytes
ivatar/static/img/nobody/243.png | Bin 0 -> 1965 bytes
ivatar/static/img/nobody/244.png | Bin 0 -> 1892 bytes
ivatar/static/img/nobody/245.png | Bin 0 -> 1817 bytes
ivatar/static/img/nobody/246.png | Bin 0 -> 1906 bytes
ivatar/static/img/nobody/247.png | Bin 0 -> 1912 bytes
ivatar/static/img/nobody/248.png | Bin 0 -> 1880 bytes
ivatar/static/img/nobody/249.png | Bin 0 -> 2010 bytes
ivatar/static/img/nobody/25.png | Bin 0 -> 291 bytes
ivatar/static/img/nobody/250.png | Bin 0 -> 1737 bytes
ivatar/static/img/nobody/251.png | Bin 0 -> 1838 bytes
ivatar/static/img/nobody/252.png | Bin 0 -> 1962 bytes
ivatar/static/img/nobody/253.png | Bin 0 -> 1820 bytes
ivatar/static/img/nobody/254.png | Bin 0 -> 1796 bytes
ivatar/static/img/nobody/255.png | Bin 0 -> 1776 bytes
ivatar/static/img/nobody/256.png | Bin 0 -> 1753 bytes
ivatar/static/img/nobody/257.png | Bin 0 -> 2025 bytes
ivatar/static/img/nobody/258.png | Bin 0 -> 1925 bytes
ivatar/static/img/nobody/259.png | Bin 0 -> 2053 bytes
ivatar/static/img/nobody/26.png | Bin 0 -> 298 bytes
ivatar/static/img/nobody/260.png | Bin 0 -> 2214 bytes
ivatar/static/img/nobody/261.png | Bin 0 -> 1900 bytes
ivatar/static/img/nobody/262.png | Bin 0 -> 1962 bytes
ivatar/static/img/nobody/263.png | Bin 0 -> 2022 bytes
ivatar/static/img/nobody/264.png | Bin 0 -> 1954 bytes
ivatar/static/img/nobody/265.png | Bin 0 -> 1747 bytes
ivatar/static/img/nobody/266.png | Bin 0 -> 2004 bytes
ivatar/static/img/nobody/267.png | Bin 0 -> 1988 bytes
ivatar/static/img/nobody/268.png | Bin 0 -> 2010 bytes
ivatar/static/img/nobody/269.png | Bin 0 -> 2202 bytes
ivatar/static/img/nobody/27.png | Bin 0 -> 296 bytes
ivatar/static/img/nobody/270.png | Bin 0 -> 2257 bytes
ivatar/static/img/nobody/271.png | Bin 0 -> 2110 bytes
ivatar/static/img/nobody/272.png | Bin 0 -> 2170 bytes
ivatar/static/img/nobody/273.png | Bin 0 -> 2176 bytes
ivatar/static/img/nobody/274.png | Bin 0 -> 2285 bytes
ivatar/static/img/nobody/275.png | Bin 0 -> 2098 bytes
ivatar/static/img/nobody/276.png | Bin 0 -> 2076 bytes
ivatar/static/img/nobody/277.png | Bin 0 -> 2060 bytes
ivatar/static/img/nobody/278.png | Bin 0 -> 2178 bytes
ivatar/static/img/nobody/279.png | Bin 0 -> 2176 bytes
ivatar/static/img/nobody/28.png | Bin 0 -> 329 bytes
ivatar/static/img/nobody/280.png | Bin 0 -> 2179 bytes
ivatar/static/img/nobody/281.png | Bin 0 -> 2118 bytes
ivatar/static/img/nobody/282.png | Bin 0 -> 2168 bytes
ivatar/static/img/nobody/283.png | Bin 0 -> 2175 bytes
ivatar/static/img/nobody/284.png | Bin 0 -> 2174 bytes
ivatar/static/img/nobody/285.png | Bin 0 -> 2052 bytes
ivatar/static/img/nobody/286.png | Bin 0 -> 2326 bytes
ivatar/static/img/nobody/287.png | Bin 0 -> 2218 bytes
ivatar/static/img/nobody/288.png | Bin 0 -> 2360 bytes
ivatar/static/img/nobody/289.png | Bin 0 -> 2240 bytes
ivatar/static/img/nobody/29.png | Bin 0 -> 341 bytes
ivatar/static/img/nobody/290.png | Bin 0 -> 2230 bytes
ivatar/static/img/nobody/291.png | Bin 0 -> 2116 bytes
ivatar/static/img/nobody/292.png | Bin 0 -> 2351 bytes
ivatar/static/img/nobody/293.png | Bin 0 -> 2413 bytes
ivatar/static/img/nobody/294.png | Bin 0 -> 2120 bytes
ivatar/static/img/nobody/295.png | Bin 0 -> 2208 bytes
ivatar/static/img/nobody/296.png | Bin 0 -> 2534 bytes
ivatar/static/img/nobody/297.png | Bin 0 -> 2211 bytes
ivatar/static/img/nobody/298.png | Bin 0 -> 1970 bytes
ivatar/static/img/nobody/299.png | Bin 0 -> 2304 bytes
ivatar/static/img/nobody/3.png | Bin 0 -> 120 bytes
ivatar/static/img/nobody/30.png | Bin 0 -> 329 bytes
ivatar/static/img/nobody/300.png | Bin 0 -> 2285 bytes
ivatar/static/img/nobody/301.png | Bin 0 -> 2207 bytes
ivatar/static/img/nobody/302.png | Bin 0 -> 2434 bytes
ivatar/static/img/nobody/303.png | Bin 0 -> 2440 bytes
ivatar/static/img/nobody/304.png | Bin 0 -> 2443 bytes
ivatar/static/img/nobody/305.png | Bin 0 -> 2551 bytes
ivatar/static/img/nobody/306.png | Bin 0 -> 2404 bytes
ivatar/static/img/nobody/307.png | Bin 0 -> 2471 bytes
ivatar/static/img/nobody/308.png | Bin 0 -> 2532 bytes
ivatar/static/img/nobody/309.png | Bin 0 -> 2344 bytes
ivatar/static/img/nobody/31.png | Bin 0 -> 349 bytes
ivatar/static/img/nobody/310.png | Bin 0 -> 2481 bytes
ivatar/static/img/nobody/311.png | Bin 0 -> 2500 bytes
ivatar/static/img/nobody/312.png | Bin 0 -> 2459 bytes
ivatar/static/img/nobody/313.png | Bin 0 -> 2112 bytes
ivatar/static/img/nobody/314.png | Bin 0 -> 2393 bytes
ivatar/static/img/nobody/315.png | Bin 0 -> 2243 bytes
ivatar/static/img/nobody/316.png | Bin 0 -> 2463 bytes
ivatar/static/img/nobody/317.png | Bin 0 -> 2321 bytes
ivatar/static/img/nobody/318.png | Bin 0 -> 2555 bytes
ivatar/static/img/nobody/319.png | Bin 0 -> 2686 bytes
ivatar/static/img/nobody/32.png | Bin 0 -> 337 bytes
ivatar/static/img/nobody/320.png | Bin 0 -> 2489 bytes
ivatar/static/img/nobody/321.png | Bin 0 -> 2542 bytes
ivatar/static/img/nobody/322.png | Bin 0 -> 2511 bytes
ivatar/static/img/nobody/323.png | Bin 0 -> 2510 bytes
ivatar/static/img/nobody/324.png | Bin 0 -> 2589 bytes
ivatar/static/img/nobody/325.png | Bin 0 -> 2485 bytes
ivatar/static/img/nobody/326.png | Bin 0 -> 2568 bytes
ivatar/static/img/nobody/327.png | Bin 0 -> 2650 bytes
ivatar/static/img/nobody/328.png | Bin 0 -> 2579 bytes
ivatar/static/img/nobody/329.png | Bin 0 -> 2664 bytes
ivatar/static/img/nobody/33.png | Bin 0 -> 360 bytes
ivatar/static/img/nobody/330.png | Bin 0 -> 2912 bytes
ivatar/static/img/nobody/331.png | Bin 0 -> 2605 bytes
ivatar/static/img/nobody/332.png | Bin 0 -> 2788 bytes
ivatar/static/img/nobody/333.png | Bin 0 -> 2556 bytes
ivatar/static/img/nobody/334.png | Bin 0 -> 2976 bytes
ivatar/static/img/nobody/335.png | Bin 0 -> 2675 bytes
ivatar/static/img/nobody/336.png | Bin 0 -> 2667 bytes
ivatar/static/img/nobody/337.png | Bin 0 -> 2623 bytes
ivatar/static/img/nobody/338.png | Bin 0 -> 2633 bytes
ivatar/static/img/nobody/339.png | Bin 0 -> 2728 bytes
ivatar/static/img/nobody/34.png | Bin 0 -> 366 bytes
ivatar/static/img/nobody/340.png | Bin 0 -> 3020 bytes
ivatar/static/img/nobody/341.png | Bin 0 -> 2741 bytes
ivatar/static/img/nobody/342.png | Bin 0 -> 2636 bytes
ivatar/static/img/nobody/343.png | Bin 0 -> 2656 bytes
ivatar/static/img/nobody/344.png | Bin 0 -> 2763 bytes
ivatar/static/img/nobody/345.png | Bin 0 -> 2600 bytes
ivatar/static/img/nobody/346.png | Bin 0 -> 2761 bytes
ivatar/static/img/nobody/347.png | Bin 0 -> 2666 bytes
ivatar/static/img/nobody/348.png | Bin 0 -> 2625 bytes
ivatar/static/img/nobody/349.png | Bin 0 -> 2532 bytes
ivatar/static/img/nobody/35.png | Bin 0 -> 362 bytes
ivatar/static/img/nobody/350.png | Bin 0 -> 2726 bytes
ivatar/static/img/nobody/351.png | Bin 0 -> 2664 bytes
ivatar/static/img/nobody/352.png | Bin 0 -> 2981 bytes
ivatar/static/img/nobody/353.png | Bin 0 -> 2985 bytes
ivatar/static/img/nobody/354.png | Bin 0 -> 2790 bytes
ivatar/static/img/nobody/355.png | Bin 0 -> 2736 bytes
ivatar/static/img/nobody/356.png | Bin 0 -> 2931 bytes
ivatar/static/img/nobody/357.png | Bin 0 -> 2654 bytes
ivatar/static/img/nobody/358.png | Bin 0 -> 2727 bytes
ivatar/static/img/nobody/359.png | Bin 0 -> 2768 bytes
ivatar/static/img/nobody/36.png | Bin 0 -> 363 bytes
ivatar/static/img/nobody/360.png | Bin 0 -> 2801 bytes
ivatar/static/img/nobody/361.png | Bin 0 -> 2890 bytes
ivatar/static/img/nobody/362.png | Bin 0 -> 2698 bytes
ivatar/static/img/nobody/363.png | Bin 0 -> 3036 bytes
ivatar/static/img/nobody/364.png | Bin 0 -> 2743 bytes
ivatar/static/img/nobody/365.png | Bin 0 -> 3146 bytes
ivatar/static/img/nobody/366.png | Bin 0 -> 2793 bytes
ivatar/static/img/nobody/367.png | Bin 0 -> 2994 bytes
ivatar/static/img/nobody/368.png | Bin 0 -> 3171 bytes
ivatar/static/img/nobody/369.png | Bin 0 -> 2689 bytes
ivatar/static/img/nobody/37.png | Bin 0 -> 378 bytes
ivatar/static/img/nobody/370.png | Bin 0 -> 3026 bytes
ivatar/static/img/nobody/371.png | Bin 0 -> 2996 bytes
ivatar/static/img/nobody/372.png | Bin 0 -> 2822 bytes
ivatar/static/img/nobody/373.png | Bin 0 -> 3075 bytes
ivatar/static/img/nobody/374.png | Bin 0 -> 2738 bytes
ivatar/static/img/nobody/375.png | Bin 0 -> 2808 bytes
ivatar/static/img/nobody/376.png | Bin 0 -> 2281 bytes
ivatar/static/img/nobody/377.png | Bin 0 -> 2843 bytes
ivatar/static/img/nobody/378.png | Bin 0 -> 3043 bytes
ivatar/static/img/nobody/379.png | Bin 0 -> 2980 bytes
ivatar/static/img/nobody/38.png | Bin 0 -> 396 bytes
ivatar/static/img/nobody/380.png | Bin 0 -> 3131 bytes
ivatar/static/img/nobody/381.png | Bin 0 -> 3064 bytes
ivatar/static/img/nobody/382.png | Bin 0 -> 2833 bytes
ivatar/static/img/nobody/383.png | Bin 0 -> 3094 bytes
ivatar/static/img/nobody/384.png | Bin 0 -> 2941 bytes
ivatar/static/img/nobody/385.png | Bin 0 -> 3023 bytes
ivatar/static/img/nobody/386.png | Bin 0 -> 2813 bytes
ivatar/static/img/nobody/387.png | Bin 0 -> 3462 bytes
ivatar/static/img/nobody/388.png | Bin 0 -> 3024 bytes
ivatar/static/img/nobody/389.png | Bin 0 -> 3117 bytes
ivatar/static/img/nobody/39.png | Bin 0 -> 385 bytes
ivatar/static/img/nobody/390.png | Bin 0 -> 3208 bytes
ivatar/static/img/nobody/391.png | Bin 0 -> 3230 bytes
ivatar/static/img/nobody/392.png | Bin 0 -> 2971 bytes
ivatar/static/img/nobody/393.png | Bin 0 -> 3066 bytes
ivatar/static/img/nobody/394.png | Bin 0 -> 3068 bytes
ivatar/static/img/nobody/395.png | Bin 0 -> 3151 bytes
ivatar/static/img/nobody/396.png | Bin 0 -> 2771 bytes
ivatar/static/img/nobody/397.png | Bin 0 -> 3135 bytes
ivatar/static/img/nobody/398.png | Bin 0 -> 3319 bytes
ivatar/static/img/nobody/399.png | Bin 0 -> 2868 bytes
ivatar/static/img/nobody/4.png | Bin 0 -> 118 bytes
ivatar/static/img/nobody/40.png | Bin 0 -> 415 bytes
ivatar/static/img/nobody/400.png | Bin 0 -> 3312 bytes
ivatar/static/img/nobody/401.png | Bin 0 -> 2982 bytes
ivatar/static/img/nobody/402.png | Bin 0 -> 3099 bytes
ivatar/static/img/nobody/403.png | Bin 0 -> 3277 bytes
ivatar/static/img/nobody/404.png | Bin 0 -> 3326 bytes
ivatar/static/img/nobody/405.png | Bin 0 -> 3139 bytes
ivatar/static/img/nobody/406.png | Bin 0 -> 3037 bytes
ivatar/static/img/nobody/407.png | Bin 0 -> 3156 bytes
ivatar/static/img/nobody/408.png | Bin 0 -> 3080 bytes
ivatar/static/img/nobody/409.png | Bin 0 -> 3034 bytes
ivatar/static/img/nobody/41.png | Bin 0 -> 423 bytes
ivatar/static/img/nobody/410.png | Bin 0 -> 2874 bytes
ivatar/static/img/nobody/411.png | Bin 0 -> 3062 bytes
ivatar/static/img/nobody/412.png | Bin 0 -> 3177 bytes
ivatar/static/img/nobody/413.png | Bin 0 -> 2975 bytes
ivatar/static/img/nobody/414.png | Bin 0 -> 3318 bytes
ivatar/static/img/nobody/415.png | Bin 0 -> 3350 bytes
ivatar/static/img/nobody/416.png | Bin 0 -> 3447 bytes
ivatar/static/img/nobody/417.png | Bin 0 -> 3233 bytes
ivatar/static/img/nobody/418.png | Bin 0 -> 3423 bytes
ivatar/static/img/nobody/419.png | Bin 0 -> 3171 bytes
ivatar/static/img/nobody/42.png | Bin 0 -> 423 bytes
ivatar/static/img/nobody/420.png | Bin 0 -> 3395 bytes
ivatar/static/img/nobody/421.png | Bin 0 -> 3249 bytes
ivatar/static/img/nobody/422.png | Bin 0 -> 3269 bytes
ivatar/static/img/nobody/423.png | Bin 0 -> 3420 bytes
ivatar/static/img/nobody/424.png | Bin 0 -> 3421 bytes
ivatar/static/img/nobody/425.png | Bin 0 -> 3279 bytes
ivatar/static/img/nobody/426.png | Bin 0 -> 3235 bytes
ivatar/static/img/nobody/427.png | Bin 0 -> 3429 bytes
ivatar/static/img/nobody/428.png | Bin 0 -> 3487 bytes
ivatar/static/img/nobody/429.png | Bin 0 -> 3209 bytes
ivatar/static/img/nobody/43.png | Bin 0 -> 451 bytes
ivatar/static/img/nobody/430.png | Bin 0 -> 3462 bytes
ivatar/static/img/nobody/431.png | Bin 0 -> 3487 bytes
ivatar/static/img/nobody/432.png | Bin 0 -> 3473 bytes
ivatar/static/img/nobody/433.png | Bin 0 -> 3560 bytes
ivatar/static/img/nobody/434.png | Bin 0 -> 3497 bytes
ivatar/static/img/nobody/435.png | Bin 0 -> 3305 bytes
ivatar/static/img/nobody/436.png | Bin 0 -> 3516 bytes
ivatar/static/img/nobody/437.png | Bin 0 -> 3445 bytes
ivatar/static/img/nobody/438.png | Bin 0 -> 3416 bytes
ivatar/static/img/nobody/439.png | Bin 0 -> 3605 bytes
ivatar/static/img/nobody/44.png | Bin 0 -> 451 bytes
ivatar/static/img/nobody/440.png | Bin 0 -> 3323 bytes
ivatar/static/img/nobody/441.png | Bin 0 -> 3695 bytes
ivatar/static/img/nobody/442.png | Bin 0 -> 3604 bytes
ivatar/static/img/nobody/443.png | Bin 0 -> 3514 bytes
ivatar/static/img/nobody/444.png | Bin 0 -> 3600 bytes
ivatar/static/img/nobody/445.png | Bin 0 -> 3641 bytes
ivatar/static/img/nobody/446.png | Bin 0 -> 3482 bytes
ivatar/static/img/nobody/447.png | Bin 0 -> 3784 bytes
ivatar/static/img/nobody/448.png | Bin 0 -> 3592 bytes
ivatar/static/img/nobody/449.png | Bin 0 -> 3715 bytes
ivatar/static/img/nobody/45.png | Bin 0 -> 419 bytes
ivatar/static/img/nobody/450.png | Bin 0 -> 3602 bytes
ivatar/static/img/nobody/451.png | Bin 0 -> 3557 bytes
ivatar/static/img/nobody/452.png | Bin 0 -> 3103 bytes
ivatar/static/img/nobody/453.png | Bin 0 -> 3704 bytes
ivatar/static/img/nobody/454.png | Bin 0 -> 3709 bytes
ivatar/static/img/nobody/455.png | Bin 0 -> 3692 bytes
ivatar/static/img/nobody/456.png | Bin 0 -> 3434 bytes
ivatar/static/img/nobody/457.png | Bin 0 -> 3700 bytes
ivatar/static/img/nobody/458.png | Bin 0 -> 3807 bytes
ivatar/static/img/nobody/459.png | Bin 0 -> 3722 bytes
ivatar/static/img/nobody/46.png | Bin 0 -> 452 bytes
ivatar/static/img/nobody/460.png | Bin 0 -> 3674 bytes
ivatar/static/img/nobody/461.png | Bin 0 -> 3658 bytes
ivatar/static/img/nobody/462.png | Bin 0 -> 3616 bytes
ivatar/static/img/nobody/463.png | Bin 0 -> 3619 bytes
ivatar/static/img/nobody/464.png | Bin 0 -> 3785 bytes
ivatar/static/img/nobody/465.png | Bin 0 -> 3849 bytes
ivatar/static/img/nobody/466.png | Bin 0 -> 3768 bytes
ivatar/static/img/nobody/467.png | Bin 0 -> 3549 bytes
ivatar/static/img/nobody/468.png | Bin 0 -> 3883 bytes
ivatar/static/img/nobody/469.png | Bin 0 -> 3688 bytes
ivatar/static/img/nobody/47.png | Bin 0 -> 466 bytes
ivatar/static/img/nobody/470.png | Bin 0 -> 3901 bytes
ivatar/static/img/nobody/471.png | Bin 0 -> 3768 bytes
ivatar/static/img/nobody/472.png | Bin 0 -> 3856 bytes
ivatar/static/img/nobody/473.png | Bin 0 -> 4023 bytes
ivatar/static/img/nobody/474.png | Bin 0 -> 3924 bytes
ivatar/static/img/nobody/475.png | Bin 0 -> 3621 bytes
ivatar/static/img/nobody/476.png | Bin 0 -> 3516 bytes
ivatar/static/img/nobody/477.png | Bin 0 -> 3874 bytes
ivatar/static/img/nobody/478.png | Bin 0 -> 3958 bytes
ivatar/static/img/nobody/479.png | Bin 0 -> 3899 bytes
ivatar/static/img/nobody/48.png | Bin 0 -> 445 bytes
ivatar/static/img/nobody/480.png | Bin 0 -> 3915 bytes
ivatar/static/img/nobody/481.png | Bin 0 -> 3856 bytes
ivatar/static/img/nobody/482.png | Bin 0 -> 3750 bytes
ivatar/static/img/nobody/483.png | Bin 0 -> 3998 bytes
ivatar/static/img/nobody/484.png | Bin 0 -> 4052 bytes
ivatar/static/img/nobody/485.png | Bin 0 -> 3426 bytes
ivatar/static/img/nobody/486.png | Bin 0 -> 3976 bytes
ivatar/static/img/nobody/487.png | Bin 0 -> 3886 bytes
ivatar/static/img/nobody/488.png | Bin 0 -> 3878 bytes
ivatar/static/img/nobody/489.png | Bin 0 -> 3843 bytes
ivatar/static/img/nobody/49.png | Bin 0 -> 477 bytes
ivatar/static/img/nobody/490.png | Bin 0 -> 3929 bytes
ivatar/static/img/nobody/491.png | Bin 0 -> 4020 bytes
ivatar/static/img/nobody/492.png | Bin 0 -> 4015 bytes
ivatar/static/img/nobody/493.png | Bin 0 -> 4157 bytes
ivatar/static/img/nobody/494.png | Bin 0 -> 3772 bytes
ivatar/static/img/nobody/495.png | Bin 0 -> 4156 bytes
ivatar/static/img/nobody/496.png | Bin 0 -> 4050 bytes
ivatar/static/img/nobody/497.png | Bin 0 -> 3917 bytes
ivatar/static/img/nobody/498.png | Bin 0 -> 3741 bytes
ivatar/static/img/nobody/499.png | Bin 0 -> 3908 bytes
ivatar/static/img/nobody/5.png | Bin 0 -> 115 bytes
ivatar/static/img/nobody/50.png | Bin 0 -> 459 bytes
ivatar/static/img/nobody/500.png | Bin 0 -> 3908 bytes
ivatar/static/img/nobody/501.png | Bin 0 -> 3998 bytes
ivatar/static/img/nobody/502.png | Bin 0 -> 4056 bytes
ivatar/static/img/nobody/503.png | Bin 0 -> 4094 bytes
ivatar/static/img/nobody/504.png | Bin 0 -> 4060 bytes
ivatar/static/img/nobody/505.png | Bin 0 -> 3978 bytes
ivatar/static/img/nobody/506.png | Bin 0 -> 3884 bytes
ivatar/static/img/nobody/507.png | Bin 0 -> 4257 bytes
ivatar/static/img/nobody/508.png | Bin 0 -> 4038 bytes
ivatar/static/img/nobody/509.png | Bin 0 -> 4285 bytes
ivatar/static/img/nobody/51.png | Bin 0 -> 470 bytes
ivatar/static/img/nobody/510.png | Bin 0 -> 4158 bytes
ivatar/static/img/nobody/511.png | Bin 0 -> 4163 bytes
ivatar/static/img/nobody/512.png | Bin 0 -> 4220 bytes
ivatar/static/img/nobody/52.png | Bin 0 -> 466 bytes
ivatar/static/img/nobody/53.png | Bin 0 -> 514 bytes
ivatar/static/img/nobody/54.png | Bin 0 -> 484 bytes
ivatar/static/img/nobody/55.png | Bin 0 -> 496 bytes
ivatar/static/img/nobody/56.png | Bin 0 -> 492 bytes
ivatar/static/img/nobody/57.png | Bin 0 -> 504 bytes
ivatar/static/img/nobody/58.png | Bin 0 -> 542 bytes
ivatar/static/img/nobody/59.png | Bin 0 -> 565 bytes
ivatar/static/img/nobody/6.png | Bin 0 -> 121 bytes
ivatar/static/img/nobody/60.png | Bin 0 -> 557 bytes
ivatar/static/img/nobody/61.png | Bin 0 -> 556 bytes
ivatar/static/img/nobody/62.png | Bin 0 -> 531 bytes
ivatar/static/img/nobody/63.png | Bin 0 -> 586 bytes
ivatar/static/img/nobody/64.png | Bin 0 -> 593 bytes
ivatar/static/img/nobody/65.png | Bin 0 -> 565 bytes
ivatar/static/img/nobody/66.png | Bin 0 -> 605 bytes
ivatar/static/img/nobody/67.png | Bin 0 -> 581 bytes
ivatar/static/img/nobody/68.png | Bin 0 -> 614 bytes
ivatar/static/img/nobody/69.png | Bin 0 -> 629 bytes
ivatar/static/img/nobody/7.png | Bin 0 -> 137 bytes
ivatar/static/img/nobody/70.png | Bin 0 -> 632 bytes
ivatar/static/img/nobody/71.png | Bin 0 -> 615 bytes
ivatar/static/img/nobody/72.png | Bin 0 -> 622 bytes
ivatar/static/img/nobody/73.png | Bin 0 -> 575 bytes
ivatar/static/img/nobody/74.png | Bin 0 -> 619 bytes
ivatar/static/img/nobody/75.png | Bin 0 -> 616 bytes
ivatar/static/img/nobody/76.png | Bin 0 -> 612 bytes
ivatar/static/img/nobody/77.png | Bin 0 -> 605 bytes
ivatar/static/img/nobody/78.png | Bin 0 -> 634 bytes
ivatar/static/img/nobody/79.png | Bin 0 -> 627 bytes
ivatar/static/img/nobody/8.png | Bin 0 -> 155 bytes
ivatar/static/img/nobody/80.png | Bin 0 -> 680 bytes
ivatar/static/img/nobody/81.png | Bin 0 -> 638 bytes
ivatar/static/img/nobody/82.png | Bin 0 -> 722 bytes
ivatar/static/img/nobody/83.png | Bin 0 -> 624 bytes
ivatar/static/img/nobody/84.png | Bin 0 -> 689 bytes
ivatar/static/img/nobody/85.png | Bin 0 -> 711 bytes
ivatar/static/img/nobody/86.png | Bin 0 -> 701 bytes
ivatar/static/img/nobody/87.png | Bin 0 -> 710 bytes
ivatar/static/img/nobody/88.png | Bin 0 -> 720 bytes
ivatar/static/img/nobody/89.png | Bin 0 -> 744 bytes
ivatar/static/img/nobody/9.png | Bin 0 -> 178 bytes
ivatar/static/img/nobody/90.png | Bin 0 -> 726 bytes
ivatar/static/img/nobody/91.png | Bin 0 -> 740 bytes
ivatar/static/img/nobody/92.png | Bin 0 -> 691 bytes
ivatar/static/img/nobody/93.png | Bin 0 -> 743 bytes
ivatar/static/img/nobody/94.png | Bin 0 -> 795 bytes
ivatar/static/img/nobody/95.png | Bin 0 -> 733 bytes
ivatar/static/img/nobody/96.png | Bin 0 -> 798 bytes
ivatar/static/img/nobody/97.png | Bin 0 -> 771 bytes
ivatar/static/img/nobody/98.png | Bin 0 -> 740 bytes
ivatar/static/img/nobody/99.png | Bin 0 -> 744 bytes
ivatar/static/img/openid_logo.png | Bin 0 -> 662 bytes
ivatar/static/img/robots.txt | 2 +
ivatar/static/img/safari-pinned-tab.svg | 1 +
ivatar/static/js/ivatar.js | 30 +++
ivatar/static/js/jcrop.js | 7 +
ivatar/static/js/jquery.min.js | 4 +
ivatar/urls.py | 16 ++
ivatar/utils.py | 10 +
ivatar/wsgi.py | 16 ++
manage.py | 15 ++
requirements.txt | 14 ++
templates/base.html | 45 ++++
templates/bootstrap.html | 3 +
templates/footer.html | 9 +
templates/header.html | 32 +++
templates/home.html | 8 +
1086 files changed, 1858 insertions(+)
create mode 100644 .gitignore
create mode 100644 config.py
create mode 100644 config_local.py
create mode 100644 ivatar/__init__.py
create mode 100644 ivatar/context_processors.py
create mode 100644 ivatar/ivataraccount/__init__.py
create mode 100644 ivatar/ivataraccount/admin.py
create mode 100644 ivatar/ivataraccount/apps.py
create mode 100644 ivatar/ivataraccount/gravatar.py
create mode 100644 ivatar/ivataraccount/migrations/0001_initial.py
create mode 100644 ivatar/ivataraccount/migrations/0002_openidassociation_openidnonce.py
create mode 100644 ivatar/ivataraccount/migrations/__init__.py
create mode 100644 ivatar/ivataraccount/models.py
create mode 100644 ivatar/ivataraccount/templates/login.html
create mode 100644 ivatar/ivataraccount/templates/new.html
create mode 100644 ivatar/ivataraccount/templates/password_change.html
create mode 100644 ivatar/ivataraccount/templates/profile.html
create mode 100644 ivatar/ivataraccount/test_views.py
create mode 100644 ivatar/ivataraccount/tests.py
create mode 100644 ivatar/ivataraccount/urls.py
create mode 100644 ivatar/ivataraccount/views.py
create mode 100644 ivatar/settings.py
create mode 100644 ivatar/static/.well-known/browser-hints
create mode 100644 ivatar/static/css/ivatar.css
create mode 100644 ivatar/static/css/jcrop.css
create mode 100644 ivatar/static/img/Jcrop.gif
create mode 100644 ivatar/static/img/agpl_button.png
create mode 100644 ivatar/static/img/agpl_button.svg
create mode 100644 ivatar/static/img/broken.gif
create mode 100644 ivatar/static/img/broken.jpg
create mode 100644 ivatar/static/img/broken.png
create mode 100644 ivatar/static/img/broken.svg
create mode 100644 ivatar/static/img/deadbeef.png
create mode 100644 ivatar/static/img/delete_button.png
create mode 100644 ivatar/static/img/favicon.ico
create mode 100644 ivatar/static/img/https_lock.png
create mode 100644 ivatar/static/img/libravatar_logo.svg
create mode 100644 ivatar/static/img/logo.png
create mode 100644 ivatar/static/img/missing.png
create mode 100644 ivatar/static/img/missing.svg
create mode 100644 ivatar/static/img/mm.png
create mode 100644 ivatar/static/img/mm.svg
create mode 100644 ivatar/static/img/mm/1.png
create mode 100644 ivatar/static/img/mm/10.png
create mode 100644 ivatar/static/img/mm/100.png
create mode 100644 ivatar/static/img/mm/101.png
create mode 100644 ivatar/static/img/mm/102.png
create mode 100644 ivatar/static/img/mm/103.png
create mode 100644 ivatar/static/img/mm/104.png
create mode 100644 ivatar/static/img/mm/105.png
create mode 100644 ivatar/static/img/mm/106.png
create mode 100644 ivatar/static/img/mm/107.png
create mode 100644 ivatar/static/img/mm/108.png
create mode 100644 ivatar/static/img/mm/109.png
create mode 100644 ivatar/static/img/mm/11.png
create mode 100644 ivatar/static/img/mm/110.png
create mode 100644 ivatar/static/img/mm/111.png
create mode 100644 ivatar/static/img/mm/112.png
create mode 100644 ivatar/static/img/mm/113.png
create mode 100644 ivatar/static/img/mm/114.png
create mode 100644 ivatar/static/img/mm/115.png
create mode 100644 ivatar/static/img/mm/116.png
create mode 100644 ivatar/static/img/mm/117.png
create mode 100644 ivatar/static/img/mm/118.png
create mode 100644 ivatar/static/img/mm/119.png
create mode 100644 ivatar/static/img/mm/12.png
create mode 100644 ivatar/static/img/mm/120.png
create mode 100644 ivatar/static/img/mm/121.png
create mode 100644 ivatar/static/img/mm/122.png
create mode 100644 ivatar/static/img/mm/123.png
create mode 100644 ivatar/static/img/mm/124.png
create mode 100644 ivatar/static/img/mm/125.png
create mode 100644 ivatar/static/img/mm/126.png
create mode 100644 ivatar/static/img/mm/127.png
create mode 100644 ivatar/static/img/mm/128.png
create mode 100644 ivatar/static/img/mm/129.png
create mode 100644 ivatar/static/img/mm/13.png
create mode 100644 ivatar/static/img/mm/130.png
create mode 100644 ivatar/static/img/mm/131.png
create mode 100644 ivatar/static/img/mm/132.png
create mode 100644 ivatar/static/img/mm/133.png
create mode 100644 ivatar/static/img/mm/134.png
create mode 100644 ivatar/static/img/mm/135.png
create mode 100644 ivatar/static/img/mm/136.png
create mode 100644 ivatar/static/img/mm/137.png
create mode 100644 ivatar/static/img/mm/138.png
create mode 100644 ivatar/static/img/mm/139.png
create mode 100644 ivatar/static/img/mm/14.png
create mode 100644 ivatar/static/img/mm/140.png
create mode 100644 ivatar/static/img/mm/141.png
create mode 100644 ivatar/static/img/mm/142.png
create mode 100644 ivatar/static/img/mm/143.png
create mode 100644 ivatar/static/img/mm/144.png
create mode 100644 ivatar/static/img/mm/145.png
create mode 100644 ivatar/static/img/mm/146.png
create mode 100644 ivatar/static/img/mm/147.png
create mode 100644 ivatar/static/img/mm/148.png
create mode 100644 ivatar/static/img/mm/149.png
create mode 100644 ivatar/static/img/mm/15.png
create mode 100644 ivatar/static/img/mm/150.png
create mode 100644 ivatar/static/img/mm/151.png
create mode 100644 ivatar/static/img/mm/152.png
create mode 100644 ivatar/static/img/mm/153.png
create mode 100644 ivatar/static/img/mm/154.png
create mode 100644 ivatar/static/img/mm/155.png
create mode 100644 ivatar/static/img/mm/156.png
create mode 100644 ivatar/static/img/mm/157.png
create mode 100644 ivatar/static/img/mm/158.png
create mode 100644 ivatar/static/img/mm/159.png
create mode 100644 ivatar/static/img/mm/16.png
create mode 100644 ivatar/static/img/mm/160.png
create mode 100644 ivatar/static/img/mm/161.png
create mode 100644 ivatar/static/img/mm/162.png
create mode 100644 ivatar/static/img/mm/163.png
create mode 100644 ivatar/static/img/mm/164.png
create mode 100644 ivatar/static/img/mm/165.png
create mode 100644 ivatar/static/img/mm/166.png
create mode 100644 ivatar/static/img/mm/167.png
create mode 100644 ivatar/static/img/mm/168.png
create mode 100644 ivatar/static/img/mm/169.png
create mode 100644 ivatar/static/img/mm/17.png
create mode 100644 ivatar/static/img/mm/170.png
create mode 100644 ivatar/static/img/mm/171.png
create mode 100644 ivatar/static/img/mm/172.png
create mode 100644 ivatar/static/img/mm/173.png
create mode 100644 ivatar/static/img/mm/174.png
create mode 100644 ivatar/static/img/mm/175.png
create mode 100644 ivatar/static/img/mm/176.png
create mode 100644 ivatar/static/img/mm/177.png
create mode 100644 ivatar/static/img/mm/178.png
create mode 100644 ivatar/static/img/mm/179.png
create mode 100644 ivatar/static/img/mm/18.png
create mode 100644 ivatar/static/img/mm/180.png
create mode 100644 ivatar/static/img/mm/181.png
create mode 100644 ivatar/static/img/mm/182.png
create mode 100644 ivatar/static/img/mm/183.png
create mode 100644 ivatar/static/img/mm/184.png
create mode 100644 ivatar/static/img/mm/185.png
create mode 100644 ivatar/static/img/mm/186.png
create mode 100644 ivatar/static/img/mm/187.png
create mode 100644 ivatar/static/img/mm/188.png
create mode 100644 ivatar/static/img/mm/189.png
create mode 100644 ivatar/static/img/mm/19.png
create mode 100644 ivatar/static/img/mm/190.png
create mode 100644 ivatar/static/img/mm/191.png
create mode 100644 ivatar/static/img/mm/192.png
create mode 100644 ivatar/static/img/mm/193.png
create mode 100644 ivatar/static/img/mm/194.png
create mode 100644 ivatar/static/img/mm/195.png
create mode 100644 ivatar/static/img/mm/196.png
create mode 100644 ivatar/static/img/mm/197.png
create mode 100644 ivatar/static/img/mm/198.png
create mode 100644 ivatar/static/img/mm/199.png
create mode 100644 ivatar/static/img/mm/2.png
create mode 100644 ivatar/static/img/mm/20.png
create mode 100644 ivatar/static/img/mm/200.png
create mode 100644 ivatar/static/img/mm/201.png
create mode 100644 ivatar/static/img/mm/202.png
create mode 100644 ivatar/static/img/mm/203.png
create mode 100644 ivatar/static/img/mm/204.png
create mode 100644 ivatar/static/img/mm/205.png
create mode 100644 ivatar/static/img/mm/206.png
create mode 100644 ivatar/static/img/mm/207.png
create mode 100644 ivatar/static/img/mm/208.png
create mode 100644 ivatar/static/img/mm/209.png
create mode 100644 ivatar/static/img/mm/21.png
create mode 100644 ivatar/static/img/mm/210.png
create mode 100644 ivatar/static/img/mm/211.png
create mode 100644 ivatar/static/img/mm/212.png
create mode 100644 ivatar/static/img/mm/213.png
create mode 100644 ivatar/static/img/mm/214.png
create mode 100644 ivatar/static/img/mm/215.png
create mode 100644 ivatar/static/img/mm/216.png
create mode 100644 ivatar/static/img/mm/217.png
create mode 100644 ivatar/static/img/mm/218.png
create mode 100644 ivatar/static/img/mm/219.png
create mode 100644 ivatar/static/img/mm/22.png
create mode 100644 ivatar/static/img/mm/220.png
create mode 100644 ivatar/static/img/mm/221.png
create mode 100644 ivatar/static/img/mm/222.png
create mode 100644 ivatar/static/img/mm/223.png
create mode 100644 ivatar/static/img/mm/224.png
create mode 100644 ivatar/static/img/mm/225.png
create mode 100644 ivatar/static/img/mm/226.png
create mode 100644 ivatar/static/img/mm/227.png
create mode 100644 ivatar/static/img/mm/228.png
create mode 100644 ivatar/static/img/mm/229.png
create mode 100644 ivatar/static/img/mm/23.png
create mode 100644 ivatar/static/img/mm/230.png
create mode 100644 ivatar/static/img/mm/231.png
create mode 100644 ivatar/static/img/mm/232.png
create mode 100644 ivatar/static/img/mm/233.png
create mode 100644 ivatar/static/img/mm/234.png
create mode 100644 ivatar/static/img/mm/235.png
create mode 100644 ivatar/static/img/mm/236.png
create mode 100644 ivatar/static/img/mm/237.png
create mode 100644 ivatar/static/img/mm/238.png
create mode 100644 ivatar/static/img/mm/239.png
create mode 100644 ivatar/static/img/mm/24.png
create mode 100644 ivatar/static/img/mm/240.png
create mode 100644 ivatar/static/img/mm/241.png
create mode 100644 ivatar/static/img/mm/242.png
create mode 100644 ivatar/static/img/mm/243.png
create mode 100644 ivatar/static/img/mm/244.png
create mode 100644 ivatar/static/img/mm/245.png
create mode 100644 ivatar/static/img/mm/246.png
create mode 100644 ivatar/static/img/mm/247.png
create mode 100644 ivatar/static/img/mm/248.png
create mode 100644 ivatar/static/img/mm/249.png
create mode 100644 ivatar/static/img/mm/25.png
create mode 100644 ivatar/static/img/mm/250.png
create mode 100644 ivatar/static/img/mm/251.png
create mode 100644 ivatar/static/img/mm/252.png
create mode 100644 ivatar/static/img/mm/253.png
create mode 100644 ivatar/static/img/mm/254.png
create mode 100644 ivatar/static/img/mm/255.png
create mode 100644 ivatar/static/img/mm/256.png
create mode 100644 ivatar/static/img/mm/257.png
create mode 100644 ivatar/static/img/mm/258.png
create mode 100644 ivatar/static/img/mm/259.png
create mode 100644 ivatar/static/img/mm/26.png
create mode 100644 ivatar/static/img/mm/260.png
create mode 100644 ivatar/static/img/mm/261.png
create mode 100644 ivatar/static/img/mm/262.png
create mode 100644 ivatar/static/img/mm/263.png
create mode 100644 ivatar/static/img/mm/264.png
create mode 100644 ivatar/static/img/mm/265.png
create mode 100644 ivatar/static/img/mm/266.png
create mode 100644 ivatar/static/img/mm/267.png
create mode 100644 ivatar/static/img/mm/268.png
create mode 100644 ivatar/static/img/mm/269.png
create mode 100644 ivatar/static/img/mm/27.png
create mode 100644 ivatar/static/img/mm/270.png
create mode 100644 ivatar/static/img/mm/271.png
create mode 100644 ivatar/static/img/mm/272.png
create mode 100644 ivatar/static/img/mm/273.png
create mode 100644 ivatar/static/img/mm/274.png
create mode 100644 ivatar/static/img/mm/275.png
create mode 100644 ivatar/static/img/mm/276.png
create mode 100644 ivatar/static/img/mm/277.png
create mode 100644 ivatar/static/img/mm/278.png
create mode 100644 ivatar/static/img/mm/279.png
create mode 100644 ivatar/static/img/mm/28.png
create mode 100644 ivatar/static/img/mm/280.png
create mode 100644 ivatar/static/img/mm/281.png
create mode 100644 ivatar/static/img/mm/282.png
create mode 100644 ivatar/static/img/mm/283.png
create mode 100644 ivatar/static/img/mm/284.png
create mode 100644 ivatar/static/img/mm/285.png
create mode 100644 ivatar/static/img/mm/286.png
create mode 100644 ivatar/static/img/mm/287.png
create mode 100644 ivatar/static/img/mm/288.png
create mode 100644 ivatar/static/img/mm/289.png
create mode 100644 ivatar/static/img/mm/29.png
create mode 100644 ivatar/static/img/mm/290.png
create mode 100644 ivatar/static/img/mm/291.png
create mode 100644 ivatar/static/img/mm/292.png
create mode 100644 ivatar/static/img/mm/293.png
create mode 100644 ivatar/static/img/mm/294.png
create mode 100644 ivatar/static/img/mm/295.png
create mode 100644 ivatar/static/img/mm/296.png
create mode 100644 ivatar/static/img/mm/297.png
create mode 100644 ivatar/static/img/mm/298.png
create mode 100644 ivatar/static/img/mm/299.png
create mode 100644 ivatar/static/img/mm/3.png
create mode 100644 ivatar/static/img/mm/30.png
create mode 100644 ivatar/static/img/mm/300.png
create mode 100644 ivatar/static/img/mm/301.png
create mode 100644 ivatar/static/img/mm/302.png
create mode 100644 ivatar/static/img/mm/303.png
create mode 100644 ivatar/static/img/mm/304.png
create mode 100644 ivatar/static/img/mm/305.png
create mode 100644 ivatar/static/img/mm/306.png
create mode 100644 ivatar/static/img/mm/307.png
create mode 100644 ivatar/static/img/mm/308.png
create mode 100644 ivatar/static/img/mm/309.png
create mode 100644 ivatar/static/img/mm/31.png
create mode 100644 ivatar/static/img/mm/310.png
create mode 100644 ivatar/static/img/mm/311.png
create mode 100644 ivatar/static/img/mm/312.png
create mode 100644 ivatar/static/img/mm/313.png
create mode 100644 ivatar/static/img/mm/314.png
create mode 100644 ivatar/static/img/mm/315.png
create mode 100644 ivatar/static/img/mm/316.png
create mode 100644 ivatar/static/img/mm/317.png
create mode 100644 ivatar/static/img/mm/318.png
create mode 100644 ivatar/static/img/mm/319.png
create mode 100644 ivatar/static/img/mm/32.png
create mode 100644 ivatar/static/img/mm/320.png
create mode 100644 ivatar/static/img/mm/321.png
create mode 100644 ivatar/static/img/mm/322.png
create mode 100644 ivatar/static/img/mm/323.png
create mode 100644 ivatar/static/img/mm/324.png
create mode 100644 ivatar/static/img/mm/325.png
create mode 100644 ivatar/static/img/mm/326.png
create mode 100644 ivatar/static/img/mm/327.png
create mode 100644 ivatar/static/img/mm/328.png
create mode 100644 ivatar/static/img/mm/329.png
create mode 100644 ivatar/static/img/mm/33.png
create mode 100644 ivatar/static/img/mm/330.png
create mode 100644 ivatar/static/img/mm/331.png
create mode 100644 ivatar/static/img/mm/332.png
create mode 100644 ivatar/static/img/mm/333.png
create mode 100644 ivatar/static/img/mm/334.png
create mode 100644 ivatar/static/img/mm/335.png
create mode 100644 ivatar/static/img/mm/336.png
create mode 100644 ivatar/static/img/mm/337.png
create mode 100644 ivatar/static/img/mm/338.png
create mode 100644 ivatar/static/img/mm/339.png
create mode 100644 ivatar/static/img/mm/34.png
create mode 100644 ivatar/static/img/mm/340.png
create mode 100644 ivatar/static/img/mm/341.png
create mode 100644 ivatar/static/img/mm/342.png
create mode 100644 ivatar/static/img/mm/343.png
create mode 100644 ivatar/static/img/mm/344.png
create mode 100644 ivatar/static/img/mm/345.png
create mode 100644 ivatar/static/img/mm/346.png
create mode 100644 ivatar/static/img/mm/347.png
create mode 100644 ivatar/static/img/mm/348.png
create mode 100644 ivatar/static/img/mm/349.png
create mode 100644 ivatar/static/img/mm/35.png
create mode 100644 ivatar/static/img/mm/350.png
create mode 100644 ivatar/static/img/mm/351.png
create mode 100644 ivatar/static/img/mm/352.png
create mode 100644 ivatar/static/img/mm/353.png
create mode 100644 ivatar/static/img/mm/354.png
create mode 100644 ivatar/static/img/mm/355.png
create mode 100644 ivatar/static/img/mm/356.png
create mode 100644 ivatar/static/img/mm/357.png
create mode 100644 ivatar/static/img/mm/358.png
create mode 100644 ivatar/static/img/mm/359.png
create mode 100644 ivatar/static/img/mm/36.png
create mode 100644 ivatar/static/img/mm/360.png
create mode 100644 ivatar/static/img/mm/361.png
create mode 100644 ivatar/static/img/mm/362.png
create mode 100644 ivatar/static/img/mm/363.png
create mode 100644 ivatar/static/img/mm/364.png
create mode 100644 ivatar/static/img/mm/365.png
create mode 100644 ivatar/static/img/mm/366.png
create mode 100644 ivatar/static/img/mm/367.png
create mode 100644 ivatar/static/img/mm/368.png
create mode 100644 ivatar/static/img/mm/369.png
create mode 100644 ivatar/static/img/mm/37.png
create mode 100644 ivatar/static/img/mm/370.png
create mode 100644 ivatar/static/img/mm/371.png
create mode 100644 ivatar/static/img/mm/372.png
create mode 100644 ivatar/static/img/mm/373.png
create mode 100644 ivatar/static/img/mm/374.png
create mode 100644 ivatar/static/img/mm/375.png
create mode 100644 ivatar/static/img/mm/376.png
create mode 100644 ivatar/static/img/mm/377.png
create mode 100644 ivatar/static/img/mm/378.png
create mode 100644 ivatar/static/img/mm/379.png
create mode 100644 ivatar/static/img/mm/38.png
create mode 100644 ivatar/static/img/mm/380.png
create mode 100644 ivatar/static/img/mm/381.png
create mode 100644 ivatar/static/img/mm/382.png
create mode 100644 ivatar/static/img/mm/383.png
create mode 100644 ivatar/static/img/mm/384.png
create mode 100644 ivatar/static/img/mm/385.png
create mode 100644 ivatar/static/img/mm/386.png
create mode 100644 ivatar/static/img/mm/387.png
create mode 100644 ivatar/static/img/mm/388.png
create mode 100644 ivatar/static/img/mm/389.png
create mode 100644 ivatar/static/img/mm/39.png
create mode 100644 ivatar/static/img/mm/390.png
create mode 100644 ivatar/static/img/mm/391.png
create mode 100644 ivatar/static/img/mm/392.png
create mode 100644 ivatar/static/img/mm/393.png
create mode 100644 ivatar/static/img/mm/394.png
create mode 100644 ivatar/static/img/mm/395.png
create mode 100644 ivatar/static/img/mm/396.png
create mode 100644 ivatar/static/img/mm/397.png
create mode 100644 ivatar/static/img/mm/398.png
create mode 100644 ivatar/static/img/mm/399.png
create mode 100644 ivatar/static/img/mm/4.png
create mode 100644 ivatar/static/img/mm/40.png
create mode 100644 ivatar/static/img/mm/400.png
create mode 100644 ivatar/static/img/mm/401.png
create mode 100644 ivatar/static/img/mm/402.png
create mode 100644 ivatar/static/img/mm/403.png
create mode 100644 ivatar/static/img/mm/404.png
create mode 100644 ivatar/static/img/mm/405.png
create mode 100644 ivatar/static/img/mm/406.png
create mode 100644 ivatar/static/img/mm/407.png
create mode 100644 ivatar/static/img/mm/408.png
create mode 100644 ivatar/static/img/mm/409.png
create mode 100644 ivatar/static/img/mm/41.png
create mode 100644 ivatar/static/img/mm/410.png
create mode 100644 ivatar/static/img/mm/411.png
create mode 100644 ivatar/static/img/mm/412.png
create mode 100644 ivatar/static/img/mm/413.png
create mode 100644 ivatar/static/img/mm/414.png
create mode 100644 ivatar/static/img/mm/415.png
create mode 100644 ivatar/static/img/mm/416.png
create mode 100644 ivatar/static/img/mm/417.png
create mode 100644 ivatar/static/img/mm/418.png
create mode 100644 ivatar/static/img/mm/419.png
create mode 100644 ivatar/static/img/mm/42.png
create mode 100644 ivatar/static/img/mm/420.png
create mode 100644 ivatar/static/img/mm/421.png
create mode 100644 ivatar/static/img/mm/422.png
create mode 100644 ivatar/static/img/mm/423.png
create mode 100644 ivatar/static/img/mm/424.png
create mode 100644 ivatar/static/img/mm/425.png
create mode 100644 ivatar/static/img/mm/426.png
create mode 100644 ivatar/static/img/mm/427.png
create mode 100644 ivatar/static/img/mm/428.png
create mode 100644 ivatar/static/img/mm/429.png
create mode 100644 ivatar/static/img/mm/43.png
create mode 100644 ivatar/static/img/mm/430.png
create mode 100644 ivatar/static/img/mm/431.png
create mode 100644 ivatar/static/img/mm/432.png
create mode 100644 ivatar/static/img/mm/433.png
create mode 100644 ivatar/static/img/mm/434.png
create mode 100644 ivatar/static/img/mm/435.png
create mode 100644 ivatar/static/img/mm/436.png
create mode 100644 ivatar/static/img/mm/437.png
create mode 100644 ivatar/static/img/mm/438.png
create mode 100644 ivatar/static/img/mm/439.png
create mode 100644 ivatar/static/img/mm/44.png
create mode 100644 ivatar/static/img/mm/440.png
create mode 100644 ivatar/static/img/mm/441.png
create mode 100644 ivatar/static/img/mm/442.png
create mode 100644 ivatar/static/img/mm/443.png
create mode 100644 ivatar/static/img/mm/444.png
create mode 100644 ivatar/static/img/mm/445.png
create mode 100644 ivatar/static/img/mm/446.png
create mode 100644 ivatar/static/img/mm/447.png
create mode 100644 ivatar/static/img/mm/448.png
create mode 100644 ivatar/static/img/mm/449.png
create mode 100644 ivatar/static/img/mm/45.png
create mode 100644 ivatar/static/img/mm/450.png
create mode 100644 ivatar/static/img/mm/451.png
create mode 100644 ivatar/static/img/mm/452.png
create mode 100644 ivatar/static/img/mm/453.png
create mode 100644 ivatar/static/img/mm/454.png
create mode 100644 ivatar/static/img/mm/455.png
create mode 100644 ivatar/static/img/mm/456.png
create mode 100644 ivatar/static/img/mm/457.png
create mode 100644 ivatar/static/img/mm/458.png
create mode 100644 ivatar/static/img/mm/459.png
create mode 100644 ivatar/static/img/mm/46.png
create mode 100644 ivatar/static/img/mm/460.png
create mode 100644 ivatar/static/img/mm/461.png
create mode 100644 ivatar/static/img/mm/462.png
create mode 100644 ivatar/static/img/mm/463.png
create mode 100644 ivatar/static/img/mm/464.png
create mode 100644 ivatar/static/img/mm/465.png
create mode 100644 ivatar/static/img/mm/466.png
create mode 100644 ivatar/static/img/mm/467.png
create mode 100644 ivatar/static/img/mm/468.png
create mode 100644 ivatar/static/img/mm/469.png
create mode 100644 ivatar/static/img/mm/47.png
create mode 100644 ivatar/static/img/mm/470.png
create mode 100644 ivatar/static/img/mm/471.png
create mode 100644 ivatar/static/img/mm/472.png
create mode 100644 ivatar/static/img/mm/473.png
create mode 100644 ivatar/static/img/mm/474.png
create mode 100644 ivatar/static/img/mm/475.png
create mode 100644 ivatar/static/img/mm/476.png
create mode 100644 ivatar/static/img/mm/477.png
create mode 100644 ivatar/static/img/mm/478.png
create mode 100644 ivatar/static/img/mm/479.png
create mode 100644 ivatar/static/img/mm/48.png
create mode 100644 ivatar/static/img/mm/480.png
create mode 100644 ivatar/static/img/mm/481.png
create mode 100644 ivatar/static/img/mm/482.png
create mode 100644 ivatar/static/img/mm/483.png
create mode 100644 ivatar/static/img/mm/484.png
create mode 100644 ivatar/static/img/mm/485.png
create mode 100644 ivatar/static/img/mm/486.png
create mode 100644 ivatar/static/img/mm/487.png
create mode 100644 ivatar/static/img/mm/488.png
create mode 100644 ivatar/static/img/mm/489.png
create mode 100644 ivatar/static/img/mm/49.png
create mode 100644 ivatar/static/img/mm/490.png
create mode 100644 ivatar/static/img/mm/491.png
create mode 100644 ivatar/static/img/mm/492.png
create mode 100644 ivatar/static/img/mm/493.png
create mode 100644 ivatar/static/img/mm/494.png
create mode 100644 ivatar/static/img/mm/495.png
create mode 100644 ivatar/static/img/mm/496.png
create mode 100644 ivatar/static/img/mm/497.png
create mode 100644 ivatar/static/img/mm/498.png
create mode 100644 ivatar/static/img/mm/499.png
create mode 100644 ivatar/static/img/mm/5.png
create mode 100644 ivatar/static/img/mm/50.png
create mode 100644 ivatar/static/img/mm/500.png
create mode 100644 ivatar/static/img/mm/501.png
create mode 100644 ivatar/static/img/mm/502.png
create mode 100644 ivatar/static/img/mm/503.png
create mode 100644 ivatar/static/img/mm/504.png
create mode 100644 ivatar/static/img/mm/505.png
create mode 100644 ivatar/static/img/mm/506.png
create mode 100644 ivatar/static/img/mm/507.png
create mode 100644 ivatar/static/img/mm/508.png
create mode 100644 ivatar/static/img/mm/509.png
create mode 100644 ivatar/static/img/mm/51.png
create mode 100644 ivatar/static/img/mm/510.png
create mode 100644 ivatar/static/img/mm/511.png
create mode 100644 ivatar/static/img/mm/512.png
create mode 100644 ivatar/static/img/mm/52.png
create mode 100644 ivatar/static/img/mm/53.png
create mode 100644 ivatar/static/img/mm/54.png
create mode 100644 ivatar/static/img/mm/55.png
create mode 100644 ivatar/static/img/mm/56.png
create mode 100644 ivatar/static/img/mm/57.png
create mode 100644 ivatar/static/img/mm/58.png
create mode 100644 ivatar/static/img/mm/59.png
create mode 100644 ivatar/static/img/mm/6.png
create mode 100644 ivatar/static/img/mm/60.png
create mode 100644 ivatar/static/img/mm/61.png
create mode 100644 ivatar/static/img/mm/62.png
create mode 100644 ivatar/static/img/mm/63.png
create mode 100644 ivatar/static/img/mm/64.png
create mode 100644 ivatar/static/img/mm/65.png
create mode 100644 ivatar/static/img/mm/66.png
create mode 100644 ivatar/static/img/mm/67.png
create mode 100644 ivatar/static/img/mm/68.png
create mode 100644 ivatar/static/img/mm/69.png
create mode 100644 ivatar/static/img/mm/7.png
create mode 100644 ivatar/static/img/mm/70.png
create mode 100644 ivatar/static/img/mm/71.png
create mode 100644 ivatar/static/img/mm/72.png
create mode 100644 ivatar/static/img/mm/73.png
create mode 100644 ivatar/static/img/mm/74.png
create mode 100644 ivatar/static/img/mm/75.png
create mode 100644 ivatar/static/img/mm/76.png
create mode 100644 ivatar/static/img/mm/77.png
create mode 100644 ivatar/static/img/mm/78.png
create mode 100644 ivatar/static/img/mm/79.png
create mode 100644 ivatar/static/img/mm/8.png
create mode 100644 ivatar/static/img/mm/80.png
create mode 100644 ivatar/static/img/mm/81.png
create mode 100644 ivatar/static/img/mm/82.png
create mode 100644 ivatar/static/img/mm/83.png
create mode 100644 ivatar/static/img/mm/84.png
create mode 100644 ivatar/static/img/mm/85.png
create mode 100644 ivatar/static/img/mm/86.png
create mode 100644 ivatar/static/img/mm/87.png
create mode 100644 ivatar/static/img/mm/88.png
create mode 100644 ivatar/static/img/mm/89.png
create mode 100644 ivatar/static/img/mm/9.png
create mode 100644 ivatar/static/img/mm/90.png
create mode 100644 ivatar/static/img/mm/91.png
create mode 100644 ivatar/static/img/mm/92.png
create mode 100644 ivatar/static/img/mm/93.png
create mode 100644 ivatar/static/img/mm/94.png
create mode 100644 ivatar/static/img/mm/95.png
create mode 100644 ivatar/static/img/mm/96.png
create mode 100644 ivatar/static/img/mm/97.png
create mode 100644 ivatar/static/img/mm/98.png
create mode 100644 ivatar/static/img/mm/99.png
create mode 100644 ivatar/static/img/mstile-150x150.png
create mode 100644 ivatar/static/img/mstile-310x310.png
create mode 100644 ivatar/static/img/mstile-70x70.png
create mode 100644 ivatar/static/img/nobody.png
create mode 100644 ivatar/static/img/nobody/1.png
create mode 100644 ivatar/static/img/nobody/10.png
create mode 100644 ivatar/static/img/nobody/100.png
create mode 100644 ivatar/static/img/nobody/101.png
create mode 100644 ivatar/static/img/nobody/102.png
create mode 100644 ivatar/static/img/nobody/103.png
create mode 100644 ivatar/static/img/nobody/104.png
create mode 100644 ivatar/static/img/nobody/105.png
create mode 100644 ivatar/static/img/nobody/106.png
create mode 100644 ivatar/static/img/nobody/107.png
create mode 100644 ivatar/static/img/nobody/108.png
create mode 100644 ivatar/static/img/nobody/109.png
create mode 100644 ivatar/static/img/nobody/11.png
create mode 100644 ivatar/static/img/nobody/110.png
create mode 100644 ivatar/static/img/nobody/111.png
create mode 100644 ivatar/static/img/nobody/112.png
create mode 100644 ivatar/static/img/nobody/113.png
create mode 100644 ivatar/static/img/nobody/114.png
create mode 100644 ivatar/static/img/nobody/115.png
create mode 100644 ivatar/static/img/nobody/116.png
create mode 100644 ivatar/static/img/nobody/117.png
create mode 100644 ivatar/static/img/nobody/118.png
create mode 100644 ivatar/static/img/nobody/119.png
create mode 100644 ivatar/static/img/nobody/12.png
create mode 100644 ivatar/static/img/nobody/120.png
create mode 100644 ivatar/static/img/nobody/121.png
create mode 100644 ivatar/static/img/nobody/122.png
create mode 100644 ivatar/static/img/nobody/123.png
create mode 100644 ivatar/static/img/nobody/124.png
create mode 100644 ivatar/static/img/nobody/125.png
create mode 100644 ivatar/static/img/nobody/126.png
create mode 100644 ivatar/static/img/nobody/127.png
create mode 100644 ivatar/static/img/nobody/128.png
create mode 100644 ivatar/static/img/nobody/129.png
create mode 100644 ivatar/static/img/nobody/13.png
create mode 100644 ivatar/static/img/nobody/130.png
create mode 100644 ivatar/static/img/nobody/131.png
create mode 100644 ivatar/static/img/nobody/132.png
create mode 100644 ivatar/static/img/nobody/133.png
create mode 100644 ivatar/static/img/nobody/134.png
create mode 100644 ivatar/static/img/nobody/135.png
create mode 100644 ivatar/static/img/nobody/136.png
create mode 100644 ivatar/static/img/nobody/137.png
create mode 100644 ivatar/static/img/nobody/138.png
create mode 100644 ivatar/static/img/nobody/139.png
create mode 100644 ivatar/static/img/nobody/14.png
create mode 100644 ivatar/static/img/nobody/140.png
create mode 100644 ivatar/static/img/nobody/141.png
create mode 100644 ivatar/static/img/nobody/142.png
create mode 100644 ivatar/static/img/nobody/143.png
create mode 100644 ivatar/static/img/nobody/144.png
create mode 100644 ivatar/static/img/nobody/145.png
create mode 100644 ivatar/static/img/nobody/146.png
create mode 100644 ivatar/static/img/nobody/147.png
create mode 100644 ivatar/static/img/nobody/148.png
create mode 100644 ivatar/static/img/nobody/149.png
create mode 100644 ivatar/static/img/nobody/15.png
create mode 100644 ivatar/static/img/nobody/150.png
create mode 100644 ivatar/static/img/nobody/151.png
create mode 100644 ivatar/static/img/nobody/152.png
create mode 100644 ivatar/static/img/nobody/153.png
create mode 100644 ivatar/static/img/nobody/154.png
create mode 100644 ivatar/static/img/nobody/155.png
create mode 100644 ivatar/static/img/nobody/156.png
create mode 100644 ivatar/static/img/nobody/157.png
create mode 100644 ivatar/static/img/nobody/158.png
create mode 100644 ivatar/static/img/nobody/159.png
create mode 100644 ivatar/static/img/nobody/16.png
create mode 100644 ivatar/static/img/nobody/160.png
create mode 100644 ivatar/static/img/nobody/161.png
create mode 100644 ivatar/static/img/nobody/162.png
create mode 100644 ivatar/static/img/nobody/163.png
create mode 100644 ivatar/static/img/nobody/164.png
create mode 100644 ivatar/static/img/nobody/165.png
create mode 100644 ivatar/static/img/nobody/166.png
create mode 100644 ivatar/static/img/nobody/167.png
create mode 100644 ivatar/static/img/nobody/168.png
create mode 100644 ivatar/static/img/nobody/169.png
create mode 100644 ivatar/static/img/nobody/17.png
create mode 100644 ivatar/static/img/nobody/170.png
create mode 100644 ivatar/static/img/nobody/171.png
create mode 100644 ivatar/static/img/nobody/172.png
create mode 100644 ivatar/static/img/nobody/173.png
create mode 100644 ivatar/static/img/nobody/174.png
create mode 100644 ivatar/static/img/nobody/175.png
create mode 100644 ivatar/static/img/nobody/176.png
create mode 100644 ivatar/static/img/nobody/177.png
create mode 100644 ivatar/static/img/nobody/178.png
create mode 100644 ivatar/static/img/nobody/179.png
create mode 100644 ivatar/static/img/nobody/18.png
create mode 100644 ivatar/static/img/nobody/180.png
create mode 100644 ivatar/static/img/nobody/181.png
create mode 100644 ivatar/static/img/nobody/182.png
create mode 100644 ivatar/static/img/nobody/183.png
create mode 100644 ivatar/static/img/nobody/184.png
create mode 100644 ivatar/static/img/nobody/185.png
create mode 100644 ivatar/static/img/nobody/186.png
create mode 100644 ivatar/static/img/nobody/187.png
create mode 100644 ivatar/static/img/nobody/188.png
create mode 100644 ivatar/static/img/nobody/189.png
create mode 100644 ivatar/static/img/nobody/19.png
create mode 100644 ivatar/static/img/nobody/190.png
create mode 100644 ivatar/static/img/nobody/191.png
create mode 100644 ivatar/static/img/nobody/192.png
create mode 100644 ivatar/static/img/nobody/193.png
create mode 100644 ivatar/static/img/nobody/194.png
create mode 100644 ivatar/static/img/nobody/195.png
create mode 100644 ivatar/static/img/nobody/196.png
create mode 100644 ivatar/static/img/nobody/197.png
create mode 100644 ivatar/static/img/nobody/198.png
create mode 100644 ivatar/static/img/nobody/199.png
create mode 100644 ivatar/static/img/nobody/2.png
create mode 100644 ivatar/static/img/nobody/20.png
create mode 100644 ivatar/static/img/nobody/200.png
create mode 100644 ivatar/static/img/nobody/201.png
create mode 100644 ivatar/static/img/nobody/202.png
create mode 100644 ivatar/static/img/nobody/203.png
create mode 100644 ivatar/static/img/nobody/204.png
create mode 100644 ivatar/static/img/nobody/205.png
create mode 100644 ivatar/static/img/nobody/206.png
create mode 100644 ivatar/static/img/nobody/207.png
create mode 100644 ivatar/static/img/nobody/208.png
create mode 100644 ivatar/static/img/nobody/209.png
create mode 100644 ivatar/static/img/nobody/21.png
create mode 100644 ivatar/static/img/nobody/210.png
create mode 100644 ivatar/static/img/nobody/211.png
create mode 100644 ivatar/static/img/nobody/212.png
create mode 100644 ivatar/static/img/nobody/213.png
create mode 100644 ivatar/static/img/nobody/214.png
create mode 100644 ivatar/static/img/nobody/215.png
create mode 100644 ivatar/static/img/nobody/216.png
create mode 100644 ivatar/static/img/nobody/217.png
create mode 100644 ivatar/static/img/nobody/218.png
create mode 100644 ivatar/static/img/nobody/219.png
create mode 100644 ivatar/static/img/nobody/22.png
create mode 100644 ivatar/static/img/nobody/220.png
create mode 100644 ivatar/static/img/nobody/221.png
create mode 100644 ivatar/static/img/nobody/222.png
create mode 100644 ivatar/static/img/nobody/223.png
create mode 100644 ivatar/static/img/nobody/224.png
create mode 100644 ivatar/static/img/nobody/225.png
create mode 100644 ivatar/static/img/nobody/226.png
create mode 100644 ivatar/static/img/nobody/227.png
create mode 100644 ivatar/static/img/nobody/228.png
create mode 100644 ivatar/static/img/nobody/229.png
create mode 100644 ivatar/static/img/nobody/23.png
create mode 100644 ivatar/static/img/nobody/230.png
create mode 100644 ivatar/static/img/nobody/231.png
create mode 100644 ivatar/static/img/nobody/232.png
create mode 100644 ivatar/static/img/nobody/233.png
create mode 100644 ivatar/static/img/nobody/234.png
create mode 100644 ivatar/static/img/nobody/235.png
create mode 100644 ivatar/static/img/nobody/236.png
create mode 100644 ivatar/static/img/nobody/237.png
create mode 100644 ivatar/static/img/nobody/238.png
create mode 100644 ivatar/static/img/nobody/239.png
create mode 100644 ivatar/static/img/nobody/24.png
create mode 100644 ivatar/static/img/nobody/240.png
create mode 100644 ivatar/static/img/nobody/241.png
create mode 100644 ivatar/static/img/nobody/242.png
create mode 100644 ivatar/static/img/nobody/243.png
create mode 100644 ivatar/static/img/nobody/244.png
create mode 100644 ivatar/static/img/nobody/245.png
create mode 100644 ivatar/static/img/nobody/246.png
create mode 100644 ivatar/static/img/nobody/247.png
create mode 100644 ivatar/static/img/nobody/248.png
create mode 100644 ivatar/static/img/nobody/249.png
create mode 100644 ivatar/static/img/nobody/25.png
create mode 100644 ivatar/static/img/nobody/250.png
create mode 100644 ivatar/static/img/nobody/251.png
create mode 100644 ivatar/static/img/nobody/252.png
create mode 100644 ivatar/static/img/nobody/253.png
create mode 100644 ivatar/static/img/nobody/254.png
create mode 100644 ivatar/static/img/nobody/255.png
create mode 100644 ivatar/static/img/nobody/256.png
create mode 100644 ivatar/static/img/nobody/257.png
create mode 100644 ivatar/static/img/nobody/258.png
create mode 100644 ivatar/static/img/nobody/259.png
create mode 100644 ivatar/static/img/nobody/26.png
create mode 100644 ivatar/static/img/nobody/260.png
create mode 100644 ivatar/static/img/nobody/261.png
create mode 100644 ivatar/static/img/nobody/262.png
create mode 100644 ivatar/static/img/nobody/263.png
create mode 100644 ivatar/static/img/nobody/264.png
create mode 100644 ivatar/static/img/nobody/265.png
create mode 100644 ivatar/static/img/nobody/266.png
create mode 100644 ivatar/static/img/nobody/267.png
create mode 100644 ivatar/static/img/nobody/268.png
create mode 100644 ivatar/static/img/nobody/269.png
create mode 100644 ivatar/static/img/nobody/27.png
create mode 100644 ivatar/static/img/nobody/270.png
create mode 100644 ivatar/static/img/nobody/271.png
create mode 100644 ivatar/static/img/nobody/272.png
create mode 100644 ivatar/static/img/nobody/273.png
create mode 100644 ivatar/static/img/nobody/274.png
create mode 100644 ivatar/static/img/nobody/275.png
create mode 100644 ivatar/static/img/nobody/276.png
create mode 100644 ivatar/static/img/nobody/277.png
create mode 100644 ivatar/static/img/nobody/278.png
create mode 100644 ivatar/static/img/nobody/279.png
create mode 100644 ivatar/static/img/nobody/28.png
create mode 100644 ivatar/static/img/nobody/280.png
create mode 100644 ivatar/static/img/nobody/281.png
create mode 100644 ivatar/static/img/nobody/282.png
create mode 100644 ivatar/static/img/nobody/283.png
create mode 100644 ivatar/static/img/nobody/284.png
create mode 100644 ivatar/static/img/nobody/285.png
create mode 100644 ivatar/static/img/nobody/286.png
create mode 100644 ivatar/static/img/nobody/287.png
create mode 100644 ivatar/static/img/nobody/288.png
create mode 100644 ivatar/static/img/nobody/289.png
create mode 100644 ivatar/static/img/nobody/29.png
create mode 100644 ivatar/static/img/nobody/290.png
create mode 100644 ivatar/static/img/nobody/291.png
create mode 100644 ivatar/static/img/nobody/292.png
create mode 100644 ivatar/static/img/nobody/293.png
create mode 100644 ivatar/static/img/nobody/294.png
create mode 100644 ivatar/static/img/nobody/295.png
create mode 100644 ivatar/static/img/nobody/296.png
create mode 100644 ivatar/static/img/nobody/297.png
create mode 100644 ivatar/static/img/nobody/298.png
create mode 100644 ivatar/static/img/nobody/299.png
create mode 100644 ivatar/static/img/nobody/3.png
create mode 100644 ivatar/static/img/nobody/30.png
create mode 100644 ivatar/static/img/nobody/300.png
create mode 100644 ivatar/static/img/nobody/301.png
create mode 100644 ivatar/static/img/nobody/302.png
create mode 100644 ivatar/static/img/nobody/303.png
create mode 100644 ivatar/static/img/nobody/304.png
create mode 100644 ivatar/static/img/nobody/305.png
create mode 100644 ivatar/static/img/nobody/306.png
create mode 100644 ivatar/static/img/nobody/307.png
create mode 100644 ivatar/static/img/nobody/308.png
create mode 100644 ivatar/static/img/nobody/309.png
create mode 100644 ivatar/static/img/nobody/31.png
create mode 100644 ivatar/static/img/nobody/310.png
create mode 100644 ivatar/static/img/nobody/311.png
create mode 100644 ivatar/static/img/nobody/312.png
create mode 100644 ivatar/static/img/nobody/313.png
create mode 100644 ivatar/static/img/nobody/314.png
create mode 100644 ivatar/static/img/nobody/315.png
create mode 100644 ivatar/static/img/nobody/316.png
create mode 100644 ivatar/static/img/nobody/317.png
create mode 100644 ivatar/static/img/nobody/318.png
create mode 100644 ivatar/static/img/nobody/319.png
create mode 100644 ivatar/static/img/nobody/32.png
create mode 100644 ivatar/static/img/nobody/320.png
create mode 100644 ivatar/static/img/nobody/321.png
create mode 100644 ivatar/static/img/nobody/322.png
create mode 100644 ivatar/static/img/nobody/323.png
create mode 100644 ivatar/static/img/nobody/324.png
create mode 100644 ivatar/static/img/nobody/325.png
create mode 100644 ivatar/static/img/nobody/326.png
create mode 100644 ivatar/static/img/nobody/327.png
create mode 100644 ivatar/static/img/nobody/328.png
create mode 100644 ivatar/static/img/nobody/329.png
create mode 100644 ivatar/static/img/nobody/33.png
create mode 100644 ivatar/static/img/nobody/330.png
create mode 100644 ivatar/static/img/nobody/331.png
create mode 100644 ivatar/static/img/nobody/332.png
create mode 100644 ivatar/static/img/nobody/333.png
create mode 100644 ivatar/static/img/nobody/334.png
create mode 100644 ivatar/static/img/nobody/335.png
create mode 100644 ivatar/static/img/nobody/336.png
create mode 100644 ivatar/static/img/nobody/337.png
create mode 100644 ivatar/static/img/nobody/338.png
create mode 100644 ivatar/static/img/nobody/339.png
create mode 100644 ivatar/static/img/nobody/34.png
create mode 100644 ivatar/static/img/nobody/340.png
create mode 100644 ivatar/static/img/nobody/341.png
create mode 100644 ivatar/static/img/nobody/342.png
create mode 100644 ivatar/static/img/nobody/343.png
create mode 100644 ivatar/static/img/nobody/344.png
create mode 100644 ivatar/static/img/nobody/345.png
create mode 100644 ivatar/static/img/nobody/346.png
create mode 100644 ivatar/static/img/nobody/347.png
create mode 100644 ivatar/static/img/nobody/348.png
create mode 100644 ivatar/static/img/nobody/349.png
create mode 100644 ivatar/static/img/nobody/35.png
create mode 100644 ivatar/static/img/nobody/350.png
create mode 100644 ivatar/static/img/nobody/351.png
create mode 100644 ivatar/static/img/nobody/352.png
create mode 100644 ivatar/static/img/nobody/353.png
create mode 100644 ivatar/static/img/nobody/354.png
create mode 100644 ivatar/static/img/nobody/355.png
create mode 100644 ivatar/static/img/nobody/356.png
create mode 100644 ivatar/static/img/nobody/357.png
create mode 100644 ivatar/static/img/nobody/358.png
create mode 100644 ivatar/static/img/nobody/359.png
create mode 100644 ivatar/static/img/nobody/36.png
create mode 100644 ivatar/static/img/nobody/360.png
create mode 100644 ivatar/static/img/nobody/361.png
create mode 100644 ivatar/static/img/nobody/362.png
create mode 100644 ivatar/static/img/nobody/363.png
create mode 100644 ivatar/static/img/nobody/364.png
create mode 100644 ivatar/static/img/nobody/365.png
create mode 100644 ivatar/static/img/nobody/366.png
create mode 100644 ivatar/static/img/nobody/367.png
create mode 100644 ivatar/static/img/nobody/368.png
create mode 100644 ivatar/static/img/nobody/369.png
create mode 100644 ivatar/static/img/nobody/37.png
create mode 100644 ivatar/static/img/nobody/370.png
create mode 100644 ivatar/static/img/nobody/371.png
create mode 100644 ivatar/static/img/nobody/372.png
create mode 100644 ivatar/static/img/nobody/373.png
create mode 100644 ivatar/static/img/nobody/374.png
create mode 100644 ivatar/static/img/nobody/375.png
create mode 100644 ivatar/static/img/nobody/376.png
create mode 100644 ivatar/static/img/nobody/377.png
create mode 100644 ivatar/static/img/nobody/378.png
create mode 100644 ivatar/static/img/nobody/379.png
create mode 100644 ivatar/static/img/nobody/38.png
create mode 100644 ivatar/static/img/nobody/380.png
create mode 100644 ivatar/static/img/nobody/381.png
create mode 100644 ivatar/static/img/nobody/382.png
create mode 100644 ivatar/static/img/nobody/383.png
create mode 100644 ivatar/static/img/nobody/384.png
create mode 100644 ivatar/static/img/nobody/385.png
create mode 100644 ivatar/static/img/nobody/386.png
create mode 100644 ivatar/static/img/nobody/387.png
create mode 100644 ivatar/static/img/nobody/388.png
create mode 100644 ivatar/static/img/nobody/389.png
create mode 100644 ivatar/static/img/nobody/39.png
create mode 100644 ivatar/static/img/nobody/390.png
create mode 100644 ivatar/static/img/nobody/391.png
create mode 100644 ivatar/static/img/nobody/392.png
create mode 100644 ivatar/static/img/nobody/393.png
create mode 100644 ivatar/static/img/nobody/394.png
create mode 100644 ivatar/static/img/nobody/395.png
create mode 100644 ivatar/static/img/nobody/396.png
create mode 100644 ivatar/static/img/nobody/397.png
create mode 100644 ivatar/static/img/nobody/398.png
create mode 100644 ivatar/static/img/nobody/399.png
create mode 100644 ivatar/static/img/nobody/4.png
create mode 100644 ivatar/static/img/nobody/40.png
create mode 100644 ivatar/static/img/nobody/400.png
create mode 100644 ivatar/static/img/nobody/401.png
create mode 100644 ivatar/static/img/nobody/402.png
create mode 100644 ivatar/static/img/nobody/403.png
create mode 100644 ivatar/static/img/nobody/404.png
create mode 100644 ivatar/static/img/nobody/405.png
create mode 100644 ivatar/static/img/nobody/406.png
create mode 100644 ivatar/static/img/nobody/407.png
create mode 100644 ivatar/static/img/nobody/408.png
create mode 100644 ivatar/static/img/nobody/409.png
create mode 100644 ivatar/static/img/nobody/41.png
create mode 100644 ivatar/static/img/nobody/410.png
create mode 100644 ivatar/static/img/nobody/411.png
create mode 100644 ivatar/static/img/nobody/412.png
create mode 100644 ivatar/static/img/nobody/413.png
create mode 100644 ivatar/static/img/nobody/414.png
create mode 100644 ivatar/static/img/nobody/415.png
create mode 100644 ivatar/static/img/nobody/416.png
create mode 100644 ivatar/static/img/nobody/417.png
create mode 100644 ivatar/static/img/nobody/418.png
create mode 100644 ivatar/static/img/nobody/419.png
create mode 100644 ivatar/static/img/nobody/42.png
create mode 100644 ivatar/static/img/nobody/420.png
create mode 100644 ivatar/static/img/nobody/421.png
create mode 100644 ivatar/static/img/nobody/422.png
create mode 100644 ivatar/static/img/nobody/423.png
create mode 100644 ivatar/static/img/nobody/424.png
create mode 100644 ivatar/static/img/nobody/425.png
create mode 100644 ivatar/static/img/nobody/426.png
create mode 100644 ivatar/static/img/nobody/427.png
create mode 100644 ivatar/static/img/nobody/428.png
create mode 100644 ivatar/static/img/nobody/429.png
create mode 100644 ivatar/static/img/nobody/43.png
create mode 100644 ivatar/static/img/nobody/430.png
create mode 100644 ivatar/static/img/nobody/431.png
create mode 100644 ivatar/static/img/nobody/432.png
create mode 100644 ivatar/static/img/nobody/433.png
create mode 100644 ivatar/static/img/nobody/434.png
create mode 100644 ivatar/static/img/nobody/435.png
create mode 100644 ivatar/static/img/nobody/436.png
create mode 100644 ivatar/static/img/nobody/437.png
create mode 100644 ivatar/static/img/nobody/438.png
create mode 100644 ivatar/static/img/nobody/439.png
create mode 100644 ivatar/static/img/nobody/44.png
create mode 100644 ivatar/static/img/nobody/440.png
create mode 100644 ivatar/static/img/nobody/441.png
create mode 100644 ivatar/static/img/nobody/442.png
create mode 100644 ivatar/static/img/nobody/443.png
create mode 100644 ivatar/static/img/nobody/444.png
create mode 100644 ivatar/static/img/nobody/445.png
create mode 100644 ivatar/static/img/nobody/446.png
create mode 100644 ivatar/static/img/nobody/447.png
create mode 100644 ivatar/static/img/nobody/448.png
create mode 100644 ivatar/static/img/nobody/449.png
create mode 100644 ivatar/static/img/nobody/45.png
create mode 100644 ivatar/static/img/nobody/450.png
create mode 100644 ivatar/static/img/nobody/451.png
create mode 100644 ivatar/static/img/nobody/452.png
create mode 100644 ivatar/static/img/nobody/453.png
create mode 100644 ivatar/static/img/nobody/454.png
create mode 100644 ivatar/static/img/nobody/455.png
create mode 100644 ivatar/static/img/nobody/456.png
create mode 100644 ivatar/static/img/nobody/457.png
create mode 100644 ivatar/static/img/nobody/458.png
create mode 100644 ivatar/static/img/nobody/459.png
create mode 100644 ivatar/static/img/nobody/46.png
create mode 100644 ivatar/static/img/nobody/460.png
create mode 100644 ivatar/static/img/nobody/461.png
create mode 100644 ivatar/static/img/nobody/462.png
create mode 100644 ivatar/static/img/nobody/463.png
create mode 100644 ivatar/static/img/nobody/464.png
create mode 100644 ivatar/static/img/nobody/465.png
create mode 100644 ivatar/static/img/nobody/466.png
create mode 100644 ivatar/static/img/nobody/467.png
create mode 100644 ivatar/static/img/nobody/468.png
create mode 100644 ivatar/static/img/nobody/469.png
create mode 100644 ivatar/static/img/nobody/47.png
create mode 100644 ivatar/static/img/nobody/470.png
create mode 100644 ivatar/static/img/nobody/471.png
create mode 100644 ivatar/static/img/nobody/472.png
create mode 100644 ivatar/static/img/nobody/473.png
create mode 100644 ivatar/static/img/nobody/474.png
create mode 100644 ivatar/static/img/nobody/475.png
create mode 100644 ivatar/static/img/nobody/476.png
create mode 100644 ivatar/static/img/nobody/477.png
create mode 100644 ivatar/static/img/nobody/478.png
create mode 100644 ivatar/static/img/nobody/479.png
create mode 100644 ivatar/static/img/nobody/48.png
create mode 100644 ivatar/static/img/nobody/480.png
create mode 100644 ivatar/static/img/nobody/481.png
create mode 100644 ivatar/static/img/nobody/482.png
create mode 100644 ivatar/static/img/nobody/483.png
create mode 100644 ivatar/static/img/nobody/484.png
create mode 100644 ivatar/static/img/nobody/485.png
create mode 100644 ivatar/static/img/nobody/486.png
create mode 100644 ivatar/static/img/nobody/487.png
create mode 100644 ivatar/static/img/nobody/488.png
create mode 100644 ivatar/static/img/nobody/489.png
create mode 100644 ivatar/static/img/nobody/49.png
create mode 100644 ivatar/static/img/nobody/490.png
create mode 100644 ivatar/static/img/nobody/491.png
create mode 100644 ivatar/static/img/nobody/492.png
create mode 100644 ivatar/static/img/nobody/493.png
create mode 100644 ivatar/static/img/nobody/494.png
create mode 100644 ivatar/static/img/nobody/495.png
create mode 100644 ivatar/static/img/nobody/496.png
create mode 100644 ivatar/static/img/nobody/497.png
create mode 100644 ivatar/static/img/nobody/498.png
create mode 100644 ivatar/static/img/nobody/499.png
create mode 100644 ivatar/static/img/nobody/5.png
create mode 100644 ivatar/static/img/nobody/50.png
create mode 100644 ivatar/static/img/nobody/500.png
create mode 100644 ivatar/static/img/nobody/501.png
create mode 100644 ivatar/static/img/nobody/502.png
create mode 100644 ivatar/static/img/nobody/503.png
create mode 100644 ivatar/static/img/nobody/504.png
create mode 100644 ivatar/static/img/nobody/505.png
create mode 100644 ivatar/static/img/nobody/506.png
create mode 100644 ivatar/static/img/nobody/507.png
create mode 100644 ivatar/static/img/nobody/508.png
create mode 100644 ivatar/static/img/nobody/509.png
create mode 100644 ivatar/static/img/nobody/51.png
create mode 100644 ivatar/static/img/nobody/510.png
create mode 100644 ivatar/static/img/nobody/511.png
create mode 100644 ivatar/static/img/nobody/512.png
create mode 100644 ivatar/static/img/nobody/52.png
create mode 100644 ivatar/static/img/nobody/53.png
create mode 100644 ivatar/static/img/nobody/54.png
create mode 100644 ivatar/static/img/nobody/55.png
create mode 100644 ivatar/static/img/nobody/56.png
create mode 100644 ivatar/static/img/nobody/57.png
create mode 100644 ivatar/static/img/nobody/58.png
create mode 100644 ivatar/static/img/nobody/59.png
create mode 100644 ivatar/static/img/nobody/6.png
create mode 100644 ivatar/static/img/nobody/60.png
create mode 100644 ivatar/static/img/nobody/61.png
create mode 100644 ivatar/static/img/nobody/62.png
create mode 100644 ivatar/static/img/nobody/63.png
create mode 100644 ivatar/static/img/nobody/64.png
create mode 100644 ivatar/static/img/nobody/65.png
create mode 100644 ivatar/static/img/nobody/66.png
create mode 100644 ivatar/static/img/nobody/67.png
create mode 100644 ivatar/static/img/nobody/68.png
create mode 100644 ivatar/static/img/nobody/69.png
create mode 100644 ivatar/static/img/nobody/7.png
create mode 100644 ivatar/static/img/nobody/70.png
create mode 100644 ivatar/static/img/nobody/71.png
create mode 100644 ivatar/static/img/nobody/72.png
create mode 100644 ivatar/static/img/nobody/73.png
create mode 100644 ivatar/static/img/nobody/74.png
create mode 100644 ivatar/static/img/nobody/75.png
create mode 100644 ivatar/static/img/nobody/76.png
create mode 100644 ivatar/static/img/nobody/77.png
create mode 100644 ivatar/static/img/nobody/78.png
create mode 100644 ivatar/static/img/nobody/79.png
create mode 100644 ivatar/static/img/nobody/8.png
create mode 100644 ivatar/static/img/nobody/80.png
create mode 100644 ivatar/static/img/nobody/81.png
create mode 100644 ivatar/static/img/nobody/82.png
create mode 100644 ivatar/static/img/nobody/83.png
create mode 100644 ivatar/static/img/nobody/84.png
create mode 100644 ivatar/static/img/nobody/85.png
create mode 100644 ivatar/static/img/nobody/86.png
create mode 100644 ivatar/static/img/nobody/87.png
create mode 100644 ivatar/static/img/nobody/88.png
create mode 100644 ivatar/static/img/nobody/89.png
create mode 100644 ivatar/static/img/nobody/9.png
create mode 100644 ivatar/static/img/nobody/90.png
create mode 100644 ivatar/static/img/nobody/91.png
create mode 100644 ivatar/static/img/nobody/92.png
create mode 100644 ivatar/static/img/nobody/93.png
create mode 100644 ivatar/static/img/nobody/94.png
create mode 100644 ivatar/static/img/nobody/95.png
create mode 100644 ivatar/static/img/nobody/96.png
create mode 100644 ivatar/static/img/nobody/97.png
create mode 100644 ivatar/static/img/nobody/98.png
create mode 100644 ivatar/static/img/nobody/99.png
create mode 100644 ivatar/static/img/openid_logo.png
create mode 100644 ivatar/static/img/robots.txt
create mode 100644 ivatar/static/img/safari-pinned-tab.svg
create mode 100644 ivatar/static/js/ivatar.js
create mode 100644 ivatar/static/js/jcrop.js
create mode 100644 ivatar/static/js/jquery.min.js
create mode 100644 ivatar/urls.py
create mode 100644 ivatar/utils.py
create mode 100644 ivatar/wsgi.py
create mode 100755 manage.py
create mode 100644 requirements.txt
create mode 100644 templates/base.html
create mode 100644 templates/bootstrap.html
create mode 100644 templates/footer.html
create mode 100644 templates/header.html
create mode 100644 templates/home.html
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..ed89e89
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+__pycache__
+/db.sqlite3
+/static/
diff --git a/config.py b/config.py
new file mode 100644
index 0000000..4e67cba
--- /dev/null
+++ b/config.py
@@ -0,0 +1,47 @@
+import os
+from sys import platform, argv
+from ivatar.settings import BASE_DIR
+
+if os.path.isfile(os.path.join(BASE_DIR, 'config_local.py')):
+ from config_local import * # noqa # flake8: noqa # NOQA # pragma: no cover
+
+ADMIN_USERS = []
+ALLOWED_HOSTS = [
+ 'localhost',
+]
+
+from ivatar.settings import INSTALLED_APPS # noqa
+INSTALLED_APPS.extend([
+ 'django_extensions',
+ 'django_openid_auth',
+ 'bootstrap4',
+ 'ivatar',
+ 'ivatar.ivataraccount',
+])
+
+from ivatar.settings import MIDDLEWARE # noqa
+MIDDLEWARE.extend([
+ 'django.middleware.locale.LocaleMiddleware',
+])
+
+AUTHENTICATION_BACKENDS = (
+ # Enable this to allow LDAP authentication. See INSTALL for more information.
+ # 'django_auth_ldap.backend.LDAPBackend',
+ 'django_openid_auth.auth.OpenIDBackend',
+ 'django.contrib.auth.backends.ModelBackend',
+)
+
+from ivatar.settings import TEMPLATES
+TEMPLATES[0]['DIRS'].extend([
+ os.path.join(BASE_DIR, 'templates'),
+])
+TEMPLATES[0]['OPTIONS']['context_processors'].append(
+ 'ivatar.context_processors.basepage',
+)
+
+OPENID_CREATE_USERS = True
+OPENID_UPDATE_DETAILS_FROM_SREG = True
+
+IVATAR_VERSION = '0.1'
+
+LOGIN_REDIRECT_URL = '/account/profile/'
diff --git a/config_local.py b/config_local.py
new file mode 100644
index 0000000..eac8095
--- /dev/null
+++ b/config_local.py
@@ -0,0 +1,2 @@
+SESSION_COOKIE_SECURE = False
+DEBUG = True
diff --git a/ivatar/__init__.py b/ivatar/__init__.py
new file mode 100644
index 0000000..7978d59
--- /dev/null
+++ b/ivatar/__init__.py
@@ -0,0 +1 @@
+app_label = __name__
diff --git a/ivatar/context_processors.py b/ivatar/context_processors.py
new file mode 100644
index 0000000..f0b1bb5
--- /dev/null
+++ b/ivatar/context_processors.py
@@ -0,0 +1,15 @@
+'''
+Default: useful variables for the base page templates.
+'''
+
+from ivatar.settings import IVATAR_VERSION
+from ipware import get_client_ip
+
+def basepage(request):
+ context = {}
+ if 'openid_identifier' in request.GET:
+ context['openid_identifier'] = request.GET['openid_identifier']
+ client_ip, is_routable = get_client_ip(request)
+ context['client_ip'] = client_ip
+ context['ivatar_version'] = IVATAR_VERSION
+ return context
diff --git a/ivatar/ivataraccount/__init__.py b/ivatar/ivataraccount/__init__.py
new file mode 100644
index 0000000..7978d59
--- /dev/null
+++ b/ivatar/ivataraccount/__init__.py
@@ -0,0 +1 @@
+app_label = __name__
diff --git a/ivatar/ivataraccount/admin.py b/ivatar/ivataraccount/admin.py
new file mode 100644
index 0000000..8c38f3f
--- /dev/null
+++ b/ivatar/ivataraccount/admin.py
@@ -0,0 +1,3 @@
+from django.contrib import admin
+
+# Register your models here.
diff --git a/ivatar/ivataraccount/apps.py b/ivatar/ivataraccount/apps.py
new file mode 100644
index 0000000..9c88ceb
--- /dev/null
+++ b/ivatar/ivataraccount/apps.py
@@ -0,0 +1,5 @@
+from django.apps import AppConfig
+
+
+class IvataraccountConfig(AppConfig):
+ name = 'ivataraccount'
diff --git a/ivatar/ivataraccount/gravatar.py b/ivatar/ivataraccount/gravatar.py
new file mode 100644
index 0000000..3cdc9d6
--- /dev/null
+++ b/ivatar/ivataraccount/gravatar.py
@@ -0,0 +1,39 @@
+from ssl import SSLError
+from urllib.request import urlopen, HTTPError, URLError
+import hashlib
+
+URL_TIMEOUT = 5 # in seconds
+
+def get_photo(email):
+ hash_object = hashlib.new('md5')
+ hash_object.update(email.lower())
+ thumbnail_url = 'https://secure.gravatar.com/avatar/' + hash_object.hexdigest(
+ ) + '?s=80&d=404'
+ image_url = 'https://secure.gravatar.com/avatar/' + hash_object.hexdigest(
+ ) + '?s=512&d=404'
+
+ # Will redirect to the public profile URL if it exists
+ service_url = 'http://www.gravatar.com/' + hash_object.hexdigest()
+
+ try:
+ urlopen(image_url, timeout=URL_TIMEOUT)
+ except HTTPError as e:
+ if e.code != 404 and e.code != 503:
+ print('Gravatar fetch failed with an unexpected %s HTTP error' %
+ e.code)
+ return False
+ except URLError as e:
+ print('Gravatar fetch failed with URL error: %s' % e.reason)
+ return False
+ except SSLError as e:
+ print('Gravatar fetch failed with SSL error: %s' % e.reason)
+ return False
+
+ return {
+ 'thumbnail_url': thumbnail_url,
+ 'image_url': image_url,
+ 'width': 80,
+ 'height': 80,
+ 'service_url': service_url,
+ 'service_name': 'Gravatar'
+ }
diff --git a/ivatar/ivataraccount/migrations/0001_initial.py b/ivatar/ivataraccount/migrations/0001_initial.py
new file mode 100644
index 0000000..1575c3c
--- /dev/null
+++ b/ivatar/ivataraccount/migrations/0001_initial.py
@@ -0,0 +1,108 @@
+# Generated by Django 2.0.5 on 2018-05-07 07:13
+
+from django.conf import settings
+from django.db import migrations, models
+import django.db.models.deletion
+import ivatar.ivataraccount.models
+
+
+class Migration(migrations.Migration):
+
+ initial = True
+
+ dependencies = [
+ migrations.swappable_dependency(settings.AUTH_USER_MODEL),
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='ConfirmedEmail',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('ip_address', models.GenericIPAddressField(unpack_ipv4=True)),
+ ('add_date', models.DateTimeField(default=ivatar.ivataraccount.models.utcnow)),
+ ('email', models.EmailField(max_length=254, unique=True)),
+ ],
+ options={
+ 'verbose_name': 'confirmed email',
+ 'verbose_name_plural': 'confirmed emails',
+ },
+ ),
+ migrations.CreateModel(
+ name='ConfirmedOpenId',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('ip_address', models.GenericIPAddressField(unpack_ipv4=True)),
+ ('add_date', models.DateTimeField(default=ivatar.ivataraccount.models.utcnow)),
+ ('openid', models.URLField(max_length=255, unique=True)),
+ ],
+ options={
+ 'verbose_name': 'confirmed OpenID',
+ 'verbose_name_plural': 'confirmed OpenIDs',
+ },
+ ),
+ migrations.CreateModel(
+ name='Photo',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('add_date', models.DateTimeField(default=ivatar.ivataraccount.models.utcnow)),
+ ('ip_address', models.GenericIPAddressField(unpack_ipv4=True)),
+ ('data', models.BinaryField()),
+ ('format', models.CharField(max_length=3)),
+ ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
+ ],
+ options={
+ 'verbose_name': 'photo',
+ 'verbose_name_plural': 'photos',
+ },
+ ),
+ migrations.CreateModel(
+ name='UnconfirmedEmail',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('ip_address', models.GenericIPAddressField(unpack_ipv4=True)),
+ ('add_date', models.DateTimeField(default=ivatar.ivataraccount.models.utcnow)),
+ ('email', models.EmailField(max_length=254)),
+ ('verification_key', models.CharField(max_length=64)),
+ ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
+ ],
+ options={
+ 'verbose_name': 'unconfirmed_email',
+ 'verbose_name_plural': 'unconfirmed_emails',
+ },
+ ),
+ migrations.CreateModel(
+ name='UnconfirmedOpenId',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('ip_address', models.GenericIPAddressField(unpack_ipv4=True)),
+ ('add_date', models.DateTimeField(default=ivatar.ivataraccount.models.utcnow)),
+ ('openid', models.URLField(max_length=255)),
+ ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
+ ],
+ options={
+ 'verbose_name': 'unconfirmed OpenID',
+ 'verbose_name_plural': 'unconfirmed_OpenIDs',
+ },
+ ),
+ migrations.AddField(
+ model_name='confirmedopenid',
+ name='photo',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='openids', to='ivataraccount.Photo'),
+ ),
+ migrations.AddField(
+ model_name='confirmedopenid',
+ name='user',
+ field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
+ ),
+ migrations.AddField(
+ model_name='confirmedemail',
+ name='photo',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='emails', to='ivataraccount.Photo'),
+ ),
+ migrations.AddField(
+ model_name='confirmedemail',
+ name='user',
+ field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
+ ),
+ ]
diff --git a/ivatar/ivataraccount/migrations/0002_openidassociation_openidnonce.py b/ivatar/ivataraccount/migrations/0002_openidassociation_openidnonce.py
new file mode 100644
index 0000000..5e94805
--- /dev/null
+++ b/ivatar/ivataraccount/migrations/0002_openidassociation_openidnonce.py
@@ -0,0 +1,34 @@
+# Generated by Django 2.0.5 on 2018-05-07 07:23
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('ivataraccount', '0001_initial'),
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='OpenIDAssociation',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('server_url', models.TextField(max_length=2047)),
+ ('handle', models.CharField(max_length=255)),
+ ('secret', models.TextField(max_length=255)),
+ ('issued', models.IntegerField()),
+ ('lifetime', models.IntegerField()),
+ ('assoc_type', models.TextField(max_length=64)),
+ ],
+ ),
+ migrations.CreateModel(
+ name='OpenIDNonce',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('server_url', models.CharField(max_length=255)),
+ ('timestamp', models.IntegerField()),
+ ('salt', models.CharField(max_length=128)),
+ ],
+ ),
+ ]
diff --git a/ivatar/ivataraccount/migrations/__init__.py b/ivatar/ivataraccount/migrations/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/ivatar/ivataraccount/models.py b/ivatar/ivataraccount/models.py
new file mode 100644
index 0000000..09b34e6
--- /dev/null
+++ b/ivatar/ivataraccount/models.py
@@ -0,0 +1,212 @@
+from django.db import models
+from django.contrib.auth.models import User
+from django.utils.translation import ugettext_lazy as _
+
+from . gravatar import get_photo as get_gravatar_photo
+
+from openid.store.interface import OpenIDStore
+from openid.store import nonce as oidnonce
+from openid.association import Association as OIDAssociation
+
+import datetime
+def utcnow():
+ return datetime.datetime.utcnow
+
+MAX_LENGTH_EMAIL = 254 # http://stackoverflow.com/questions/386294
+MAX_LENGTH_URL = 255 # MySQL can't handle more than that (LP: 1018682)
+
+class BaseAccountModel(models.Model):
+ user = models.ForeignKey(
+ User,
+ on_delete=models.deletion.CASCADE,
+ )
+ ip_address = models.GenericIPAddressField(unpack_ipv4=True)
+ add_date = models.DateTimeField(default=utcnow)
+
+ class Meta:
+ abstract = True
+
+
+class Photo(BaseAccountModel):
+ ip_address = models.GenericIPAddressField(unpack_ipv4=True)
+ data = models.BinaryField()
+ format = models.CharField(max_length=3)
+
+ class Meta:
+ verbose_name = _('photo')
+ verbose_name_plural = _('photos')
+
+
+class ConfirmedEmailManager(models.Manager):
+ def create_confirmed_email(self, user, email_address, is_logged_in):
+ confirmed = ConfirmedEmail()
+ confirmed.user = user
+ confirmed.ip_address = '0.0.0.0'
+ confirmed.email = email_address
+ confirmed.save()
+
+ external_photos = []
+ if is_logged_in:
+ gravatar = get_gravatar_photo(confirmed.email)
+ if gravatar:
+ external_photos.append(gravatar)
+
+ return external_photos
+
+
+class ConfirmedEmail(BaseAccountModel):
+ email = models.EmailField(unique=True, max_length=MAX_LENGTH_EMAIL)
+ photo = models.ForeignKey(
+ Photo,
+ related_name='emails',
+ blank=True,
+ null=True,
+ on_delete=models.deletion.CASCADE,
+ )
+ objects = ConfirmedEmailManager()
+
+ class Meta:
+ verbose_name = _('confirmed email')
+ verbose_name_plural = _('confirmed emails')
+
+
+class UnconfirmedEmail(BaseAccountModel):
+ email = models.EmailField(max_length=MAX_LENGTH_EMAIL)
+ verification_key = models.CharField(max_length=64)
+
+ class Meta:
+ verbose_name = _('unconfirmed_email')
+ verbose_name_plural = _('unconfirmed_emails')
+
+ def save(self, *args, **kwargs):
+ hash_object = hashlib.new('sha256')
+ hash_object.update(urandom(1024) + self.user.username)
+ self.verification_key = hash_object.hexdigest()
+
+ super(UnconfirmedEmail, self).save(*args, **kwargs)
+
+
+class UnconfirmedOpenId(BaseAccountModel):
+ openid = models.URLField(unique=False, max_length=MAX_LENGTH_URL)
+
+ class Meta:
+ verbose_name = _('unconfirmed OpenID')
+ verbose_name_plural = ('unconfirmed_OpenIDs')
+
+
+class ConfirmedOpenId(BaseAccountModel):
+ openid = models.URLField(unique=True, max_length=MAX_LENGTH_URL)
+ photo = models.ForeignKey(
+ Photo,
+ related_name='openids',
+ blank=True,
+ null=True,
+ on_delete = models.deletion.CASCADE,
+ )
+
+ class Meta:
+ verbose_name = _('confirmed OpenID')
+ verbose_name_plural = _('confirmed OpenIDs')
+
+# Classes related to the OpenID Store (from https://github.com/edx/django-openid-auth/)
+class OpenIDNonce(models.Model):
+ server_url = models.CharField(max_length=255)
+ timestamp = models.IntegerField()
+ salt = models.CharField(max_length=128)
+
+class OpenIDAssociation(models.Model):
+ server_url = models.TextField(max_length=2047)
+ handle = models.CharField(max_length=255)
+ secret = models.TextField(max_length=255) # stored base64 encoded
+ issued = models.IntegerField()
+ lifetime = models.IntegerField()
+ assoc_type = models.TextField(max_length=64)
+
+
+class DjangoOpenIDStore(OpenIDStore):
+ '''
+ The Python openid library needs an OpenIDStore subclass to persist data
+ related to OpenID authentications. This one uses our Django models.
+ '''
+
+ def storeAssociation(self, server_url, association):
+ # pylint: disable=unexpected-keyword-arg
+ assoc = OpenIDAssociation(
+ server_url=server_url,
+ handle=association.handle,
+ secret=base64.encodestring(association.secret),
+ issued=association.issued,
+ lifetime=association.issued,
+ assoc_type=association.assoc_type)
+ assoc.save()
+
+ def getAssociation(self, server_url, handle=None):
+ assocs = []
+ if handle is not None:
+ assocs = OpenIDAssociation.objects.filter(
+ server_url=server_url, handle=handle)
+ else:
+ assocs = OpenIDAssociation.objects.filter(server_url=server_url)
+ if not assocs:
+ return None
+ associations = []
+ for assoc in assocs:
+ if type(assoc.secret) is str:
+ assoc.secret = assoc.secret.split("b'")[1].split("'")[0]
+ assoc.secret = bytes(assoc.secret, 'utf-8')
+ association = OIDAssociation(assoc.handle,
+ base64.decodestring(assoc.secret),
+ assoc.issued, assoc.lifetime,
+ assoc.assoc_type)
+ expires = 0
+ try:
+ expires = association.getExpiresIn()
+ except:
+ expires = association.expiresIn
+ if expires == 0:
+ self.removeAssociation(server_url, assoc.handle)
+ else:
+ associations.append((association.issued, association))
+ if not associations:
+ return None
+ return associations[-1][1]
+
+ def removeAssociation(self, server_url, handle):
+ assocs = list(
+ OpenIDAssociation.objects.filter(
+ server_url=server_url, handle=handle))
+ assocs_exist = len(assocs) > 0
+ for assoc in assocs:
+ assoc.delete()
+ return assocs_exist
+
+ def useNonce(self, server_url, timestamp, salt):
+ # Has nonce expired?
+ if abs(timestamp - time.time()) > oidnonce.SKEW:
+ return False
+ try:
+ nonce = OpenIDNonce.objects.get(
+ server_url__exact=server_url,
+ timestamp__exact=timestamp,
+ salt__exact=salt)
+ except OpenIDNonce.DoesNotExist:
+ nonce = OpenIDNonce.objects.create(
+ server_url=server_url, timestamp=timestamp, salt=salt)
+ return True
+ nonce.delete()
+ return False
+
+ def cleanupNonces(self):
+ timestamp = int(time.time()) - oidnonce.SKEW
+ OpenIDNonce.objects.filter(timestamp__lt=timestamp).delete()
+
+ def cleanupAssociations(self):
+ OpenIDAssociation.objects.extra(
+ where=['issued + lifetimeint < (%s)' % time.time()]).delete()
+
+ # pylint: disable=invalid-name
+ def getAuthKey(self):
+ # Use first AUTH_KEY_LEN characters of md5 hash of SECRET_KEY
+ hash_object = hashlib.new('md5')
+ hash_object.update(settings.SECRET_KEY)
+ return hash_object.hexdigest()[:self.AUTH_KEY_LEN]
diff --git a/ivatar/ivataraccount/templates/login.html b/ivatar/ivataraccount/templates/login.html
new file mode 100644
index 0000000..6611d24
--- /dev/null
+++ b/ivatar/ivataraccount/templates/login.html
@@ -0,0 +1,38 @@
+{% extends 'base.html' %}
+{% load i18n %}
+
+{% block title %}{% trans 'Login to yourivatar account' %}{% endblock title %}
+
+{% block content %}
+
+{% trans 'Login' %}
+
+
+
+{% endblock content %}
diff --git a/ivatar/ivataraccount/templates/new.html b/ivatar/ivataraccount/templates/new.html
new file mode 100644
index 0000000..00acea1
--- /dev/null
+++ b/ivatar/ivataraccount/templates/new.html
@@ -0,0 +1,47 @@
+{% extends 'base.html' %}
+{% load i18n %}
+
+{% block title %}{% trans 'Create a new ivatar account' %}{% endblock title %}
+
+{% block content %}
+
+{% trans 'Create a new account' %}
+
+
+
+{% endblock content %}
diff --git a/ivatar/ivataraccount/templates/password_change.html b/ivatar/ivataraccount/templates/password_change.html
new file mode 100644
index 0000000..50bff7e
--- /dev/null
+++ b/ivatar/ivataraccount/templates/password_change.html
@@ -0,0 +1,51 @@
+{% extends 'base.html' %}
+{% load i18n %}
+
+{% block title %}{% trans 'Change your ivatar password' %}{% endblock title %}
+
+{% block content %}
+
+{% trans 'Change password' %}
+
+
+
+{% endblock content %}
diff --git a/ivatar/ivataraccount/templates/profile.html b/ivatar/ivataraccount/templates/profile.html
new file mode 100644
index 0000000..1432ff9
--- /dev/null
+++ b/ivatar/ivataraccount/templates/profile.html
@@ -0,0 +1,89 @@
+{% extends 'base.html' %}
+{% load i18n %}
+{% load static %}
+
+{% block title %}{% trans 'Your Profile' %}{% endblock title %}
+
+{% block content %}
+
+
+ {% trans 'Your Profile' %} -
+ {% if user.first_name and user.last_name %}
+ {{ user.first_name }} {{ user.last_name }}
+ {% else %}
+ {{ user.username }}
+ {% endif %}
+
+
+{% if user.photos.confirmed_emails or user.photos.confirmed_openids %}
+{% trans 'You have the following confirmed email addresses and OpenIDs:' %}
+
+ {% for email in confirmed_emails %}
+
+ {% endfor %}
+ {% for openid in confirmed_openids %}
+
+ {% endfor %}
+
+
+{% endif %}
+
+{% if unconfirmed_emails or unconfirmed_openids %}
+{% trans 'You have the following unconfirmed email addresses and OpenIDs:' %}
+
+ {% for email in unconfirmed_emails %}
+ - {# TODO: (expires in xx hours) #}
+ {% endfor %}
+ {% for openid in unconfirmed_openids %}
+ - {# TODO: (expires in xx hours) #}
+ {% endfor %}
+
+{% endif %}
+
+
+{% if not max_emails %}
+{% trans 'Add a new email address' %}
+|
+{% endif %}
+{% trans 'Add a new OpenID' %}
+
+
+{% if photos %}
+{% trans 'Here are the photos you have uploaded/imported:' %}
+
+{% endif %}
+
+{% if not max_photos %}
+{% trans 'Upload a new photo' %}
+{% endif %}
+
+{% trans 'Account settings' %}
+
+{% if has_password %}
+{% trans 'Change your password' %}
+{% else %}
+{% trans 'Set a password' %}
+{% endif %}
+
+
+
+{% trans 'Permanently delete your account' %}
+
+{% endblock content %}
diff --git a/ivatar/ivataraccount/test_views.py b/ivatar/ivataraccount/test_views.py
new file mode 100644
index 0000000..d78666e
--- /dev/null
+++ b/ivatar/ivataraccount/test_views.py
@@ -0,0 +1,29 @@
+from django.test import TestCase
+from django.test import Client
+from django.urls import reverse
+
+import os
+import django
+os.environ['DJANGO_SETTINGS_MODULE'] = 'ivatar.settings'
+django.setup()
+
+from ivatar.utils import random_string
+
+class Tester(TestCase):
+ client = Client()
+ username = random_string()
+ password = random_string()
+
+ def test_new_user(self):
+ """
+ Create a new user
+ """
+ response = self.client.get(reverse('new_account'))
+ self.assertEqual(response.status_code, 200, 'no 200 ok?')
+ url = reverse('new_account')
+ response = self.client.post(url, {
+ 'username': self.username,
+ 'password1': self.password,
+ 'password2': self.password,
+ })
+ print(response)
diff --git a/ivatar/ivataraccount/tests.py b/ivatar/ivataraccount/tests.py
new file mode 100644
index 0000000..7ce503c
--- /dev/null
+++ b/ivatar/ivataraccount/tests.py
@@ -0,0 +1,3 @@
+from django.test import TestCase
+
+# Create your tests here.
diff --git a/ivatar/ivataraccount/urls.py b/ivatar/ivataraccount/urls.py
new file mode 100644
index 0000000..624d3a0
--- /dev/null
+++ b/ivatar/ivataraccount/urls.py
@@ -0,0 +1,19 @@
+from django.urls import path
+
+from django.views.generic import TemplateView
+from . views import CreateView, PasswordSetView
+from django.contrib.auth.views import login, logout, password_change, password_change_done
+from django.urls import reverse_lazy
+
+urlpatterns = [
+ path('new/', CreateView.as_view(), name='new_account'),
+ path('login/', login, { 'template_name': 'login.html' }, name='login'),
+ path('logout/', logout, { 'next_page': reverse_lazy('login') }, name='logout'),
+ path('export/', TemplateView.as_view(template_name='export.html'), name='export'),
+ path('delete/', TemplateView.as_view(template_name='delete.html'), name='delete'),
+ path('profile/', TemplateView.as_view(template_name='profile.html'), name='profile'),
+ path('add_email/', TemplateView.as_view(template_name='add_email.html'), name='add_email'),
+ path('add_openid/', TemplateView.as_view(template_name='add_openid.html'), name='add_openid'),
+ path('upload_photo/', TemplateView.as_view(template_name='upload_photo.html'), name='upload_photo'),
+ path('password_set/', PasswordSetView.as_view(), name='password_set'),
+]
diff --git a/ivatar/ivataraccount/views.py b/ivatar/ivataraccount/views.py
new file mode 100644
index 0000000..62ba877
--- /dev/null
+++ b/ivatar/ivataraccount/views.py
@@ -0,0 +1,47 @@
+from django.shortcuts import render
+
+from django.views.decorators.csrf import csrf_protect
+from django.db import transaction
+from django.contrib.messages.views import SuccessMessageMixin
+from django.views.generic.edit import FormView
+from django.contrib.auth import authenticate, login
+from django.contrib.auth.models import User
+from django.contrib.auth.forms import UserCreationForm, SetPasswordForm
+from django.utils.translation import ugettext_lazy as _
+from django.http import HttpResponseRedirect
+from django.urls import reverse_lazy
+
+class CreateView(SuccessMessageMixin, FormView):
+ template_name = 'new.html'
+ form_class = UserCreationForm
+ success_message = _('created successfully')
+ success_url = reverse_lazy('profile')
+
+ def form_valid(self, form):
+ form.save()
+ user = authenticate(
+ username=form.cleaned_data['username'],
+ password=form.cleaned_data['password1'])
+ if user is not None:
+ login(self.request, user)
+ return HttpResponseRedirect(reverse_lazy('profile'))
+ else:
+ return HttpResponseRedirect(reverse_lazy('login'))
+
+ return super().form_valid(form)
+
+class PasswordSetView(SuccessMessageMixin, FormView):
+ template_name = 'password_change.html'
+ form_class = SetPasswordForm
+ success_message = _('password changed successfully')
+ success_url = reverse_lazy('profile')
+
+ def get_form_kwargs(self):
+ kwargs = super(PasswordSetView, self).get_form_kwargs()
+ kwargs['user'] = self.request.user
+ return kwargs
+
+ def form_valid(self, form):
+ form.save()
+ super().form_valid(form)
+ return HttpResponseRedirect(reverse_lazy('login'))
diff --git a/ivatar/settings.py b/ivatar/settings.py
new file mode 100644
index 0000000..508606b
--- /dev/null
+++ b/ivatar/settings.py
@@ -0,0 +1,117 @@
+"""
+Django settings for ivatar project.
+"""
+
+import os
+
+PACKAGE_ROOT = os.path.abspath(os.path.dirname(__file__))
+BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+
+
+# TODO: Changeme
+# SECURITY WARNING: keep the secret key used in production secret!
+SECRET_KEY = '=v(+-^t#ahv^a&&e)uf36g8algj$d1@6ou^w(r0@%)#8mlc*zk'
+
+# SECURITY WARNING: don't run with debug turned on in production!
+DEBUG = False
+
+ALLOWED_HOSTS = []
+
+
+# Application definition
+
+INSTALLED_APPS = [
+ 'django.contrib.admin',
+ 'django.contrib.auth',
+ 'django.contrib.contenttypes',
+ 'django.contrib.sessions',
+ 'django.contrib.messages',
+ 'django.contrib.staticfiles',
+]
+
+MIDDLEWARE = [
+ 'django.middleware.security.SecurityMiddleware',
+ 'django.contrib.sessions.middleware.SessionMiddleware',
+ 'django.middleware.common.CommonMiddleware',
+ 'django.middleware.csrf.CsrfViewMiddleware',
+ 'django.contrib.auth.middleware.AuthenticationMiddleware',
+ 'django.contrib.messages.middleware.MessageMiddleware',
+ 'django.middleware.clickjacking.XFrameOptionsMiddleware',
+]
+
+ROOT_URLCONF = 'ivatar.urls'
+
+TEMPLATES = [
+ {
+ 'BACKEND': 'django.template.backends.django.DjangoTemplates',
+ 'DIRS': [],
+ 'APP_DIRS': True,
+ 'OPTIONS': {
+ 'context_processors': [
+ 'django.template.context_processors.debug',
+ 'django.template.context_processors.request',
+ 'django.contrib.auth.context_processors.auth',
+ 'django.contrib.messages.context_processors.messages',
+ ],
+ },
+ },
+]
+
+WSGI_APPLICATION = 'ivatar.wsgi.application'
+
+
+# Database
+# https://docs.djangoproject.com/en/2.0/ref/settings/#databases
+
+DATABASES = {
+ 'default': {
+ 'ENGINE': 'django.db.backends.sqlite3',
+ 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
+ }
+}
+
+
+# Password validation
+# https://docs.djangoproject.com/en/2.0/ref/settings/#auth-password-validators
+
+AUTH_PASSWORD_VALIDATORS = [
+ {
+ 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
+ },
+ {
+ 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
+ },
+ {
+ 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
+ },
+ {
+ 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
+ },
+]
+
+
+# Internationalization
+# https://docs.djangoproject.com/en/2.0/topics/i18n/
+
+LANGUAGE_CODE = 'en-us'
+
+TIME_ZONE = 'UTC'
+
+USE_I18N = True
+
+USE_L10N = True
+
+USE_TZ = True
+
+
+# Static files configuration (esp. req. during dev.)
+PROJECT_ROOT = os.path.abspath(
+ os.path.join(
+ os.path.dirname(__file__),
+ os.pardir
+ )
+)
+STATIC_URL = '/static/'
+STATIC_ROOT = os.path.join(BASE_DIR, 'static')
+
+from config import * # noqa
diff --git a/ivatar/static/.well-known/browser-hints b/ivatar/static/.well-known/browser-hints
new file mode 100644
index 0000000..b746936
--- /dev/null
+++ b/ivatar/static/.well-known/browser-hints
@@ -0,0 +1,4 @@
+{
+"small-hdrs": true,
+"no-referer": true
+}
diff --git a/ivatar/static/css/ivatar.css b/ivatar/static/css/ivatar.css
new file mode 100644
index 0000000..7fc1b40
--- /dev/null
+++ b/ivatar/static/css/ivatar.css
@@ -0,0 +1,187 @@
+/* Main palette from http://www.colourlovers.com/palette/4569033/Graceful */
+
+body {
+ background-color: #FFE7B9;
+ margin: 0;
+}
+
+#site-name {
+ color: #332B3A;
+ font-size: 1.5em;
+ font-style: normal;
+ letter-spacing: 0.35em;
+}
+
+#logo {
+ float: left;
+ margin: 0 1em 0 0;
+}
+
+#logo img {
+ border: 0;
+}
+
+#site-branding {
+ color: #0B0507;
+ font-style: italic;
+ float: left;
+}
+
+h1 {
+ color: #AFA44B;
+}
+
+h2 {
+ color: #F9711F;
+ font-weight: normal;
+}
+
+.error, .errorlist li {
+ background-color: #FF0000;
+ border-radius: 8px;
+ color: #FFFFFF;
+ font-weight: bold;
+ padding: 8px;
+}
+
+#outer {
+ background-color: #AFA44B;
+ padding: 16px;
+}
+
+#header, #footer {
+ color: #8390BA;
+}
+
+a {
+ color: #F9711F;
+ font-weight: bold;
+}
+
+#header {
+ height: 54px;
+ padding: 8px 8px 16px 8px;
+}
+
+#footer {
+ font-size: small;
+ padding: 16px 8px 8px 8px;
+}
+
+#account {
+ text-align: right;
+}
+
+#content {
+ background-color: #FFFFFF;
+ border-radius: 8px;
+ padding: 8px 16px 16px 16px;
+}
+
+#content a {
+ color: #AFA44B;
+}
+
+.thumbnail {
+ border: 0;
+ height: 80px;
+ width: 80px;
+}
+
+.avatar-list {
+ height: 105px;
+ margin: 0 0 0 1.5em;
+ padding: 0;
+}
+
+.avatar-list .editable {
+ margin: 0 8px 0 0;
+}
+
+ul li {
+ list-style-type: none;
+}
+
+.horizontal-list li {
+ display: inline;
+ float: left;
+ margin: 0 15px 15px 0;
+}
+
+.centered li {
+ text-align: center;
+ vertical-align: middle;
+}
+
+.imported-list {
+ height: 125px;
+ margin: 0 0 0 1.5em;
+ padding: 0;
+}
+
+.conditions {
+ list-style-type: none;
+ margin: 0;
+ padding-start: 0;
+}
+
+.hint {
+ color: #6D6D6D;
+ font-style: italic;
+ margin: 0 0 0 20px;
+}
+
+.avatar-chooser {
+ float: left;
+}
+
+#action-panel {
+ border: 5px;
+ border-radius: 8px;
+ border-style: dashed;
+ float: right;
+ margin: 20px;
+ padding: 5px 20px 15px 20px;
+}
+
+#id_openid, #id_openid_identifier {
+ background : #FFFFFF url("../img/openid_logo.png") no-repeat scroll 0 50%;
+ padding : 4px 18px;
+ width: 400px;
+}
+
+#contribute-button {
+ text-align: center;
+}
+
+#contribute-button a {
+ background-color: #AFA44B;
+ border: 1px;
+ border-color: #000;
+ border-radius: 8px;
+ border-style: solid;
+ color: #fff;
+ font-size: 1.5em;
+ padding: 3px 5px 5px 5px;
+ text-decoration: none;
+}
+
+#agpl-button {
+ background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGsAAAAUCAMAAAC9FTMqAAAAV1BMVEXV1tXMzczGyMa4urivsq+rraurraurrauqrKqnq6edoJyTl5OFiIR7fntwc3BjZWJbXVtISUc/QD8xMjEnJyccHBwSEhIMDAwBAQEAAAAAAAAAAAAAAAAPezW4AAABW0lEQVRIx73VyY7DIBAE0E6kisxibJYGDvX/3zkHE8eamUssJ31BspCfKJYWfq+EwXynAoVGpn/K2mmapgspMRSaBwDA4lVmVTYLAOmyAKeX5eYnZG2oJOlxKXawQhiSt7GXRpaxRL3eWlYAgPdYo0NkdWOZYczNKY8xpcaWUsokW2rvW2sEYBYL64G5N7/v3fiZyG2MIoVFRIRkkXzCqoCNZltKJ3U/KJkks2SNoiySVLWzSNQk5aRF90gWAEwsSqbdSptlnZHCLCU6pyxinQ/1nBW4xhkAzGwRXtu1W7ebbNYyMrxNZzOc+7LHtvbq8TtDZd4s5kN2pyybyojNF6o73Ot2tLre5a79YInc37Uw92oBM+fexxE5nnkNjRoqySWsJOt231lDCMvbliebaiPrjONzVa+/y/Dbpx6PD+Nn3ihgaaRGh89Qw3r2FOPMn9ZycU/5Zq/8Xv0AInWfQFkFqnUAAAAASUVORK5CYII=');
+ float: left;
+ height: 20px;
+ margin: 0 5px 0 0;
+ width: 107px;
+}
+
+.bolder {
+ font-weight: bolder;
+}
+
+.hidden {
+ display: none;
+}
+
+.clear-both {
+ clear: both;
+}
diff --git a/ivatar/static/css/jcrop.css b/ivatar/static/css/jcrop.css
new file mode 100644
index 0000000..7ec5c2a
--- /dev/null
+++ b/ivatar/static/css/jcrop.css
@@ -0,0 +1,2 @@
+/* jquery.Jcrop.min.css v0.9.12 (build:20140524) */
+.jcrop-holder{direction:ltr;text-align:left;-ms-touch-action:none}.jcrop-hline,.jcrop-vline{background:#fff url(/static/img/Jcrop.gif);font-size:0;position:absolute}.jcrop-vline{height:100%;width:1px!important}.jcrop-vline.right{right:0}.jcrop-hline{height:1px!important;width:100%}.jcrop-hline.bottom{bottom:0}.jcrop-tracker{height:100%;width:100%;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none}.jcrop-handle{background-color:#333;border:1px #eee solid;width:7px;height:7px;font-size:1px}.jcrop-handle.ord-n{left:50%;margin-left:-4px;margin-top:-4px;top:0}.jcrop-handle.ord-s{bottom:0;left:50%;margin-bottom:-4px;margin-left:-4px}.jcrop-handle.ord-e{margin-right:-4px;margin-top:-4px;right:0;top:50%}.jcrop-handle.ord-w{left:0;margin-left:-4px;margin-top:-4px;top:50%}.jcrop-handle.ord-nw{left:0;margin-left:-4px;margin-top:-4px;top:0}.jcrop-handle.ord-ne{margin-right:-4px;margin-top:-4px;right:0;top:0}.jcrop-handle.ord-se{bottom:0;margin-bottom:-4px;margin-right:-4px;right:0}.jcrop-handle.ord-sw{bottom:0;left:0;margin-bottom:-4px;margin-left:-4px}.jcrop-dragbar.ord-n,.jcrop-dragbar.ord-s{height:7px;width:100%}.jcrop-dragbar.ord-e,.jcrop-dragbar.ord-w{height:100%;width:7px}.jcrop-dragbar.ord-n{margin-top:-4px}.jcrop-dragbar.ord-s{bottom:0;margin-bottom:-4px}.jcrop-dragbar.ord-e{margin-right:-4px;right:0}.jcrop-dragbar.ord-w{margin-left:-4px}.jcrop-light .jcrop-hline,.jcrop-light .jcrop-vline{background:#fff;filter:alpha(opacity=70)!important;opacity:.7!important}.jcrop-light .jcrop-handle{-moz-border-radius:3px;-webkit-border-radius:3px;background-color:#000;border-color:#fff;border-radius:3px}.jcrop-dark .jcrop-hline,.jcrop-dark .jcrop-vline{background:#000;filter:alpha(opacity=70)!important;opacity:.7!important}.jcrop-dark .jcrop-handle{-moz-border-radius:3px;-webkit-border-radius:3px;background-color:#fff;border-color:#000;border-radius:3px}.solid-line .jcrop-hline,.solid-line .jcrop-vline{background:#fff}.jcrop-holder img,img.jcrop-preview{max-width:none}
diff --git a/ivatar/static/img/Jcrop.gif b/ivatar/static/img/Jcrop.gif
new file mode 100644
index 0000000000000000000000000000000000000000..72ea7ccb5321d5384d70437cfaac73011237901e
GIT binary patch
literal 329
zcmZ?wbhEHb9b#5NV>2k
zBC~b@b~P=nNfWAe-b%_i6tS^-1y(h@EsB~1TqDA_h@fkxG$bHgvj}VxE1JLgr!*!^
ILUxTc0Q$^Q5C8xG
literal 0
HcmV?d00001
diff --git a/ivatar/static/img/agpl_button.png b/ivatar/static/img/agpl_button.png
new file mode 100644
index 0000000000000000000000000000000000000000..61041a3d2179cf55b6ce5bbd98e339096be98265
GIT binary patch
literal 503
zcmV0G
zKQS^fCnqNy92^o75)2Fs0RaI300000000000000Fdo{QK00CP`L_t(Y$Gz3bj>8}j
z1kg^Tip*kcmIe;>|KB+W6UUmFODrdSL9&paD3%s}uY|#TrvimWrhm%XX_}@BDKQk9
z2LQn0Rc2K-3jpb|0H>Gb<|kxrs3hreDR!_z7?QWKmqwPcM7`cxRsewaSffK^bz_-f
z%*`o}F{Q?qQpzM-YVTWX1Yi~m>w&p9zwh1nnaFL7B85dngk+I?!m5CcW?M=pbw4PX
zB(r3VqAZeBwX;anB;}+<_ed51Oe{*K-AbEfosq&UB|4`pVx155oE5mn834>|5nkK1
zTeq8R)-p1@O=mNl`?ANj_UiFFLuKA9=0kR;ESt)R%@?XW-0OC
+
+
+
diff --git a/ivatar/static/img/broken.gif b/ivatar/static/img/broken.gif
new file mode 100644
index 0000000000000000000000000000000000000000..cc2d75f2f8d4d9348221e56bda6df759f4a125c2
GIT binary patch
literal 735
zcmV<50wDcINk%w1VUYll0PzC=0002~009300RR90A^8La3IGEDEC2ui0FeNZ00092
zoR6u??GK}zwAzca-n{z{hT=$;=82~2%C-{#Gw@8y^labpqVG!YO8|2^A^;L}DO<-!
za|vZV8`G%OROMZ_Sg!XA4vWX+viXcotJmzd`>o3U;Ay##jTX(
zNQRgww#W$P_$WC^S!sERnW?$S+3EQS5(#=DI$Ba1BA~j;sv3YI5YXBxdx``*JA0C=
zYwLu|yZTBJ+}iaETr4o6yh?hT(!4C9T>FfiBCDL*oKm==z3tI#-5FaPFual84JzI7
zZc4rpZyH{lAw6w6z>a<)O&z~}?JCq8Xy6_%g9>RWL8T(#goe2uLR&&^p96jWOCW+P
z=zyZJju)XETyT;}$t5CL2~5BdibodYUM6hm?9fV+AP>y5GLz=XYN`gU$>@_PLJJaO
zF0Fu5Shc4Bqe`U8R3AR97yM~;Ws~c~udKvou(}Wu9kQ_+?fil^XPBT@v?_WF_o`cL
zV&ZC4%NNYobYtl9{8|`qUAAG32Ig{(@mx24b2T>GfNd|#5r{^;%=tj&VC6z9h#7gS
zX_!+*_gwv1qu$lC4b-;y*hT7K3_d${@XbU@1UO6M25#ju=-p{a=3c>^*53taWh##L
zn!)fm*LP*l{2hhi5!EN$_ST))PYO;~1aILRV0d%$A*>&TG@n&__c5HX*VNxx^;NRp
z2isZF9tR0t5}iZbpaYr*?+G`cf2|#Z+%EBn;1w?saxk8L73Onb2O-Lb&UDl$MZ$>|
z6o|rxBDlz2fF#7$VtN>q7ZHmg(74(jItEE(kwzYgWRglQ$z+oe09hoIL`oSXm8)54
z8kV7H$r+cJP3UBpVvb2>nP#4eW(8iFwWe5Ya`h%wgxtWx5Owx&XAybQ`GcK(;`yhZ
Rfu>1lp@trcs3ipe06QCsUElx!
literal 0
HcmV?d00001
diff --git a/ivatar/static/img/broken.jpg b/ivatar/static/img/broken.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..221b19b3caa1efd03c48a041acd3d8cbfef6cf4a
GIT binary patch
literal 3771
zcmb7GXH=8h68%DeASDox4gn%Xq(hJ%6p;=Q=^!8i3esDY4l0U;uAp3yCcW2C1VoS`
zC1~hHq?6ElhZpZ%@BVoI-Z_6}t(m>&tTlUP&iTmsZ-7BZLt6s?fk1!-=>q5Dzzu*J
z0-=IXQd3b;(NI&LRB_08O1P_8wP()5bP#7u9hmgE3g;Y>Np-=+i
z>e@Gywd7P#N`FW|)HF0uIw%(d1DDce#AT)b`<#CPU{pXH5C;Y!05TW|3N(jj%4g)}7GI9zs3X1=_LI04FDESQS
zeq2OIdzEi&QZmb^Wt@)zv|v(F7#Ieq0?Pr3`I=fqqElrf2%k2)KJxjFbhb6qfbEWl
zpMAcr{^;yqNP)!$Q@4boqYn!l0{_|=;#9)y^TM7IdUdZE^?tJy^PhWS6;Yuv(?L(M
zNX`Y1GDWUk4=EHK3OPtiEg94B^y=SUsmvtH8D?7AS!rr~?HJ$gxo{vMuj+Y`Xy!s>
zwz^;Rk>7wH;wIJyRfIoOsttmC;wjmsta?rK?!3F{Tv*TkDI{N7z7
zON^vmyr#>7g@U9(9g3;eE`)|k-;y}PXU<>c521M~t43=DqU_ns$ApSUha
zuqsJ*D9N`6fEQS!RBiBn+LLrjlolM5ZI9hOM8hZOC5sF}^tT3uoee8=E7_8_t3OHg
zb?s3EW`vaF>emqT1jFaQD3d8vCC1@8pQyZj#}Yy1OI&|KHZzP9UG(aj5-D^l&IW(iG4xNvXEv4i))U7r}WcIS$W#dHl0pXR5rwjNlCrEM)@`ZZJ(ca3h5
zt6zh`0CjZ`jNxC?WaG4J-5Ia%c>HU8Xa)iVi`}a>EIUHHtqoJTA~tC?Ly!3Q;{b^bJUx7zK*$`
z14&9XPoxNg27eM;_BN^Z=Zz;8Cyhiq-Lc$bLnByvs$$wuOoypA3JoKJtTAVU#a#1u
zPqohMlkQ%W5g8jV>u=4+m{)iI%(XZ`BaRR>1B)uJhOC;lCFE5ymK
z26|xA7I!&_4toxi6#PhHN{~^61RwL*PrVBWco#5_$!V7euSrBE(-az6txk;pfY~T`
z=E>T~_V2j#WxKbY+z0LqX;@>GH-bHzyk0PAwgwo+y$|l%8et1Mu05h(VP#CT5PG-u
zeIKRGb!V}5uJ)rteExv(#;}N=q8<;WPJ2J<2A_~e?H`BQ#G+_M0sJ`qj
z6#XLwP?su0EqY!Kny({zyKKF4-6-Nbw2$(bFZ(OZ&Fz
z;zp%;Mv2*Z&&qlxOYPQFn+v8t>$dL6`Fz!6VBAb*6+{AN0TU9S^QBW>A>tsbOA^)LlRVvD5XsUwED#<>7
z3q0^q_w_~$V^^zX+55F%i?VUp(*caDF3NU-@`K<{XomgQewqaWoJVIdrIVpA~G~p+cbswD{e-`
z$hQ{}VG0&{8Du|m^o-GQXF=i*3juR^-J|Pt?6}NMVN+lb_}fe
z1UA$jr5&vl;@c{kWvZ@91zms3z|XMdot;qOx1n#(&dJe^l!^jmi`f8w3IfdK<6}}A
zm>daah-Yh9EVytiSXBbF5KjBl&8qG7=WmV*DQL9uO=h=s&Lmzp^=z+=W8tEu3EY7m
z?SZq(u}p?A5RKu0Rc?K{uj4sDDlRRT8$VOpTu#BN&9mXjYi$ek&uhD;YG=hjqaCHP
z_reeeATp9Hd*&neieU-q<5
z&{zC;4_>!r_`O&|+>PcfZR)P57D{C6m@qKA-6CMcX!fB&;N^UbdjNx{+Qv}b8l984
zmpnile=FVqEgcr?t-$;w;JeL4AMVS^m0xgtkc%h}j{{hEoik99XLxvprN0^lo+(Xp
zJ_jy1A2yq0`3t2KEphL!1bZ#id~1N-d6{tIyVu3kD``ZO$eGyK7`giGw`2%jYRafQ
zRikYFb$fFQ_ck_~Jz;8xJS(EuGMI^=_n7Js0Pt$W*V?04-nUUZv!6lMVO>bw_laTM~!uw$^5ep?a5tlrqd`xGfcL1&f{h?20z5tUEpo
zD0(?>k@l`0{_UF$Yy5f2ag@rQZ}~=>
zws&md99Rj6E||*ppb=kGJw9n_h&e@KJ(SLYWG;yQfUC3O8@U1{*Zu|{pZ-Hqha(zF
zB8p9icixu{@j|wO{JWxN3(2qPhEiy>7eRfz(SBs@`nO
z==CwU5x%6hSB+CLE+g$GwV!@G$;R;=5!0@f%AAkfaSLfN9S
zqOb5O4Hi-{A-FpZK3j{!xXga~X+AIh|oBIZViqIu^ByI6-`NnPXB9+d({zRD{6AR;h|mCA|c)%K1J}nW`RI}DgKHzl6*OZ?Ra~W2jM-N0=2zY
zS&)jU8nVqkkg7XlK9~zpo$2RJI2o+?Gx!jHD*Vq3{M)=-ACke6ZL$4zxVq@06V+p2
zEm~7!w!6mCix449`Uoj35%4!0|AH?M&4YPQCCV?2`TJLYIZhXY!9Y)XJFl>*Z@F&H
z!8AKl`xL&+?};de7ZUUb)1S+@f75J{xgTwQ)!pT}*WuXoRM-6s(}$jHivyxIUYH;&
zx;OIl5~I~w@X>{^_*WGR?=Zc&z4Q!3R#ei+0f&{fsJJY^C#H${)
z4G3MjNQJD<$F5EtHU8-Wh?2$}E9_lu%7&2FnDA*cNAHQlQ!n|&DH_2vjcIZDNqu&R_@6u-N|euwz$p)|GLOMK;p
z6C@N_Hy;W0f-~S~F_X;uvSI{{oZkJWQXlka%B!Ad>&FLi4Y@grrAXwm@q%x{@}tr!
zESVB*m~3v(W3Q^kDXxANs*HyhU9Dj!sA3Ni=tRa2b23{R+2Om>VG{lPgL}$?_U`z8
zvQ-RqD=!@cx95fY8+AF;HeaRFvQt(B$;F)@fN8rkJr|@QZ@(g)h5uPHSTUM2L#Hvz
znbNB4*UH`9)S0|)a}#v`mDo|`oiI(xjC)U?R?ZB&I=1ck$fT9hz7G$TQX@PU$7NJ><%!MmPV*vF60YoK`#MA;;
zAX56l4yd%SB*-tA;a?_GQBC(h)~VkaYkNwWl(>JfPkB`IPKGu4)vg)#pP%VurLlBn
zHS51I*&x65cDdidOJ`N@8=nvqQI_K1Uak38{Y~`V-dp*{axHa&yx-gZj<)3-&=R%$fU#j7JEi^%)Y=V(guuN7DrDP$B>F!Z*Tt$7WNcj|Bx@d
zF^OsRWmQFi11zqtt{fa%0_#LCmd1+jxqj95#_x(R|Kqo2`xe}jo^&Qf%lNF=-=CUu
z_h{`Cv0YzX#iVn(>*C{=pAX-+)Svu3dfk$_=KG||j{RdTk7m7W$6A_y@ZRyJmn<_L
zwI4hv`aCr$<3b@{U-nw_wmxpQXuHp1cZ!c?<{$J~(6m@(2KV!XIlfQc&$pWKU3-Jh
zYag!zd)~iJ=;F^gzpXPzY4(c}6{$M*$Cu_!OpQ!G`jlnH@#<~q-xV*uU@-1d$YMSd
zc3)U`@*@8)(m$#fz7%$C-KT!YS{j}Gh{587E~RIlcEVphmn@@blc
zZ5v1L2eAzeetDm`_cv*zc2?ir7+9d{@~ZeElT@tr#K($CWzF#}XL3YpT#S(R3#%on8wpo}c%8bL!@|N{gR8zWdYs
zFxNDck5TdSaFL
zg!K+Jh!}3)=-|VpW^zQX-2JoX7Cz-;l^lkbzbBqpxTx%kuf*h_w@gnH&rMopw#wiI
z>s*t*fHvU-z531xVj`Yd_daxnEnJzRa7xmzMa#4PK*^%;SvzDU{I{$~(Ked*B6`x7
z9S>cKOAgJs=(2N}693X-HKCK9Dl45^f_xexJ(YUyuUuO@<5Q1S1>0xs{Yq!qG-m`V
zrYZR^E5CU|U9I0IxcjSp9dDsbAnUUua^~GPo}R3>+jRT1@)Rs!TlfLIvI3`{pgb
zbXg$%-^Hko=rEkmj5@^J!{%yFBS9aSwd&j
z{y*`{>EyFf&pESe$JVt+r(|^PkZOrOlA7!pa!$J_wq1okJNT)EQ18c;pU$2y{@!Kjbwme#)h!syl=P*g{
zr_G11L@nLwdF>@%Chd?>3J!b{#k1>isJP(N*usa?FS_tq3bLke{l%qc7J}zQzI&J|JvHGwijjYJ6{%J
zTG7S5@YZt|)}X!j<=1u2jjb1+YTCN<<4u+6eyMM^zxw@K_u5q!ozqsz@0z1`*59&9
zx%e$-_6fC3ojp6FzW
+
+
+
diff --git a/ivatar/static/img/deadbeef.png b/ivatar/static/img/deadbeef.png
new file mode 100644
index 0000000000000000000000000000000000000000..35339a9573973a9fa5773cb241d04be1d2746e52
GIT binary patch
literal 838
zcmV-M1G)T(P)A000000000000000000005{mXX0008f
zNkl-ewZZRAzwpfnZ=}c(oDXqOv8>*
z?!&r~^Nc()-(?&Qh|b9TqnL7%BQnj5WB#2l$+=6h7J8pFr!P!-)}jzu1o|^sl`+VM
z?gWgfs@Pa3<;w+`HCF=SI!V;9N_l99tze-t$3c+a5D2WszJ4Am1V!mm@IxyrTNcV@YAKeeaff2L=oe>K$lfkI6l-r$|Ig
z$nc;=U7%u5Q9Ax9*7Pn_N7i7JbHQ*j|C@k#4d^oghd9&-u)??Sk$@4no*vCW;6B0A
z&lhi=(k&qHR)j$wR$$o*OBo;BdyG>ibjmIV2sMskz0!A294T)F`1nv_&{e1Ce
zDe(gVK~f9ZTF5=B_6Yn7Xt$t<{Q^*G!!Qw~dx;)S6|AqZUofUN6H?K_SC@#8iWa{5
zCHr8sxvK9!ro)2TK{D-qL+-+wM2eoR!%{LWP(?D`^ePBSIc$fzF&PIJX1+X9eef2hQn&q}N9K(>wV(aQ+6tFYNzx2~?>>
Qod5s;07*qoM6N<$f;R4OCjbBd
literal 0
HcmV?d00001
diff --git a/ivatar/static/img/delete_button.png b/ivatar/static/img/delete_button.png
new file mode 100644
index 0000000000000000000000000000000000000000..1f88049b9f17a4ff03d4b7135c450ddfbce7697d
GIT binary patch
literal 331
zcmV-R0kr;!P)IfU&WZf&XAY%FG|344D{8`4~v1GB8&%bd$J~du$@hyXy{C
ztF!NQ-+DT`z1Fio&N=uPjC{a}xJj@~Ar(xC6@wvsBu)$K@*~#61`Uauny-Xud`N6i
z;ms{leZo9S8^#lyyP739AV!5FVUF7`Sk&_&$h)Qct>%WncaZlf#b8uT$qPZgG-%Q*
z6x01$Nn*FJNJj-=#762=kNSyc=7HZ*hr8aV2i*!
zpydnd7g4;UEa7-Ft60BNp5o2%>_fQ~#C
qdo>$q8fQT4R+a?}4AKS_?aV-N=B+EMqXHNh8HEG{6@i|lG5`Pw6*m_E
literal 0
HcmV?d00001
diff --git a/ivatar/static/img/https_lock.png b/ivatar/static/img/https_lock.png
new file mode 100644
index 0000000000000000000000000000000000000000..c21999c540d8ad340e6948ae06cc3f5ec5a04895
GIT binary patch
literal 910
zcmV;919AL`P)*;qR+LCd-8XuI8BSy{b4(`YPxc>L(`?|bD@FX!oRzB*E?9egV;L}~CI
z##lI?!?_&JJIv3|E&nln@x*Jdyz$;GfhRvd`Q#%HJ^Xc&CdtA-3(bpDQ)gFOtBcHx
zG)eB*yMOP&UBi`;#$sdjw{yQgbL_~m?>6U0+kwS_CtfwgAm`U?EPbs*0IQ(-*eG0O0VOM^9h5QlBcs1q`I=
z?(Oj%Kmi7c2<>)fsh?oM`Q;=@VT>u=5~w1|%up5W2Q=1dQb>EoHvaIJkMLlzde3Kd
zKff>cHB{2So|-&!?=p)(gdxgMW>rGPjr{H~?wfx928&R_oaIbd}w
zFo300dGzYUh!!K86jf_hD!sC4)!?2`va`;IM|kZFJT;@LWLR0BdD
zL3q!Wp1oPJYX|VT6(d&>*y72SbyK`=ip>Fxhy)JC1^jjOQ3G2L(2&9IL1b84(f@R^?VJYyExMzYieq
kJF$BVko9}oZO;Ddf86Nm?<`_&^#A|>07*qoM6N<$f)~D?MgRZ+
literal 0
HcmV?d00001
diff --git a/ivatar/static/img/libravatar_logo.svg b/ivatar/static/img/libravatar_logo.svg
new file mode 100644
index 0000000..8f0203c
--- /dev/null
+++ b/ivatar/static/img/libravatar_logo.svg
@@ -0,0 +1,95 @@
+
+
+
+
diff --git a/ivatar/static/img/logo.png b/ivatar/static/img/logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..abc1d3cca0442bfa21d1d03b4d22be73b856c4e5
GIT binary patch
literal 557
zcmV+|0@D47P)Un7e)8||b#98-Yxrv=!%E}D$p?&S1{2FitYI(B
z;Dom(4;36`7&dvVDsz~_fw{_eL7l@@z70G)7ZDy~>IJwwcU%6^Zb#r5?3s5b-z3-+
z;1S%&16ko3yW@7=BwG&{5w0dB(~W^^8{l`|VK4=&R~|znE4Gl4z#4+HN0}hW*vgzk
vi|SE}TNHG{r|}PUhoKk#58zj?{*8VBG6@$}4A0z;00000NkvXXu0mjft5px#
literal 0
HcmV?d00001
diff --git a/ivatar/static/img/missing.png b/ivatar/static/img/missing.png
new file mode 100644
index 0000000000000000000000000000000000000000..359d5830dabeb6afe76a8c63a282b702f57946ad
GIT binary patch
literal 1027
zcmV+e1pNDnP)fHEz(mx;HkQ!J0>XoXn{LZWXp!j@ZKkup7Ua0McqQr>6h_EPpP_ebDv;hDB
z004l5D_1E)v3jRsd#1J-cw)^HYcL`(A}}IG#E2LX7!eo|xF_PC2mk;8008cZ7PS(!
zRW+)1)ujg1cQvXe)wCK@-_#p*PqnCBs*HQ0;=CtXr%tMFHKx26{Z)@uty;np>%x9w
zy<9b@UggbEpH#g{F`~j6(HeD8{Z`&Q)uXByQSwJruG-YN@)n?9YBwWF_J~H5x4=!Q
z3?oYJh`dG8l-kLNifcqe>ZN+5?x+WY=JpCH8+dtG5w{w8N125lyITYQ4>lQguDTh`J4l9Z^=@Qk6FQQmVso
zL|L`gkhl@`sx3CRmZ^`9Lpowej8WAzk3WLg<2a&DLt<3g{3=z$4kLPPK#2PeBO2tM
z2w~bCM)Ze!B7|vi`7sDjtP$q2!-#$|B7}M3FrooQgnU*w-Y#`ABII*gc@EVxA_Q5b
z1|0@8u2wQ41i7m`hi-CDgdnFJ2Q;BJa8HC>8I^S$(FFr?98gn^1A4E@4De})@GsD)
z+Gv2!2{jYpH$7?$@HwNr2pu-Sr#0e$nhfx{6k$9w>bQY>BA+V}2h_;lC*qzc;KhVKdJWdZVyJ}SEWWGJO`@f1u={$*YgPf2g>l4
zAx4yIuksu_#;d9rQII~z0bS*NXN)LFmE(Xut1{kq#ywGxqmCmwXh0qvj=#OS)PNY@
zmGv1A;;X}mZW|Eu?_ReV5Mt6{M6Cvd@Ekg4;GQVvh?*?`?>pn3h!OF`nh`M~M#P91
z5hG$mjEE7f2+{c|dhdD~1C!tt;4{|fNe=1Q#A`+2^L?j{+iAY2u5|N196Nv}_
z007(*;hqRD*8YI~I}srwM1+V$goqFk?uh^Z008$yxF^DkwHIqd#J3`9F;`4|%u@Q+
xn3~7_wEGd!dq>QfW-EPr{@(uN`v3sI7&l
+
+
+
diff --git a/ivatar/static/img/mm.png b/ivatar/static/img/mm.png
new file mode 100644
index 0000000000000000000000000000000000000000..c4472d8f9f699ea10c6ccaa7a8f56065fc0e9307
GIT binary patch
literal 4273
zcmb7I`8!qH|9|f@I2?}on8&M-gcQk;qsSbQp-hJ)gy?3B>{LR+J>5bnZXxrKF_f*S
z6mc^roFrF5Cq-m9pVRYv|AFr>Yp=c5^SsyV{eHdne!rfTY=6j{LY5)}0L9Y6)Bym;
znc{$(Gs3?jSCu&r|w`6M*
z2>OOvN71-+;?QMruF({ry$FNv0+Y+cn*lT}@;
z=p(_a__41ZN!Bk?G=JO#^l4^f#T(OtXJ&pCS&%o~@TB^yw&r~L0HA@(7qz
z0@>+ptIGHH3-^V=KHu2yyEb`ikTpQ#?TWrk9lhYXxz&d{~WV@9+(cn
zR~?eYZUc6?#4lglHW!Z?x)_RGCsU=rAvC#NF$Wx~_dn)>snU05#dKbAP|#fUvNn_c
z&e=>mZ{RQzQGr9B-RQ9@xV?h}D$R0?l!izO
zY0Ikvw1u%GtKh2B%H_((dINdB0{}U5J~`s3s}aalhB|7WdJK@Jvt>jF
zz%gk<>#RQrE8i%gH#E@`
zcrb17br*+~13AdtuVK8z-(}~zWNFct_MjJqr{Un%?}^d)qSP>w;I@+#=4Iar)syg_
z4+xg}@-eqAXD;sb0_uu9mVU1w2;uYI$fbl5nQLj^;_JVjAm@pXvS<12U|PA5Jy6&t
zOf$G?JV&+$HhtyUv>vYL`GWbKliYNP8hM>|0osRse#UB3-XtcMv+=l21hA;~*D5cB
zAVp87RZ?8E@xAHYcFP%(Xt>S!hng+WPyg2ERD;t(+w6vV$QT!w@tD2})D5o%nH&U`
zCM`j3C$1{tQO|O=0IFSfXXcnak2H9=8XVp;3|Z~N$uZqTG})kyXLMH
zN;Y>INjA{sJ=^~HKLj(x`jgi}ssR0hsd-Q$5Sl>ZA?H23&`8dx-J=dc$7g(l&j2co
zh~3bJ-jwX?Lr($2cjdIK@qrE9@5Tb@lRT#8cW9g(2XZZvUH6JC{$fA;**ABi(P^+#Er?w;RPumA|
z1WBQ?BBkMq3KPIGbWLeW#$&Jlarlv;hn~zDZW5XV)^1vgrwECKh`9Z{tA}p22^u>&
z2~T`{z6>VghdCkQl=$i5B5n-_WWbZ3aZfM|Rsy0@p0*>*Y^G?3KVGXUw8S5;iebfz
z8C-N9<`K!-Ry;GgO0*+6o+p*=^MyYNzmk?*KB~e`7vRLP=EM-nS1$ckeoR3Cj0NiFDA8c2_0TE36W@64ukzVH1o99i
zw`M&_C;woO(8!KsH-7HvXac&}E|t@_5O^R{O3+Zlu5uv`iKqZD-zoisABOcCR-Kh&Xo>M#pXm**;6(dTF
zvk<}3;q|E33DWRhAe6liErs<)mDu$|p+W}WBU~fDbdZHduUt$IPgaEWt*iG3iRKU|
zv01gIjzoP^YGc3q`H-NHxO1a2kzmL9RFivK&0c5WFiVz8CD8@KCDW8%;FME{XTB&*)4-+O;hL&p`_5XrHhKB
zPjg6;$s3U41=a#=Y6RJH411$*{Nv@J5_a$qN?3R~tzCsF0!lUH;cv&uyTG
z>7eV|eH*L@;CeQB#Q^U^!GU`7A!$qpfo(B1(d;WYa9B=R*!+ltw|eBR!(;4=Jn(tS
zODTpptO5$IE|?b6
z6&|BpB?M7&h=7|eVACO=mt3Pbsxia`MvC?mvAq5=6JSOY);EHps4$$B*h-1zh2?=Q
zI%PaC_sV@h2undgH{307Bp9k5+%qyl=2khiyK7}DjROO+|JvY;KR}SbbKoc+OnKJy
zH~RgKXBadMEq+%gnnHcy@msefAN-0`+lc;WLdRH3e99hX(CujlU_J{(}ya56UJ!-7(*J8{ru3W
z_I?uRH2{nsnZEyeK}O?4EdltT4Hm=OJM+W9;)qe^#)%d=5Uzd6g}M{a8jsA>CVntX
zN3R4^aaggOrLz$Mz3yZhg(Mx}a6N9}_m~U)sACb~K|qhkO_JzBkk+IqImr0|rK6)V
zNRT)Vi(j(7xrG0nw}ZI}6>KaDZ2|g}nBEjnxK!OGjxi9p=crvF0pUFKt)7#PRP|c{E~*1PQY;WT@^$rcvtOPU*`z+RmqAq!8ItLtyRaDje6y2l4~*Z
zgVY(2-|^D9*YqYbngGYiB~rAOit!D0n)j99{GaQt79X{RX|=*myV61iG*#O?nROOI
zjW2mG4tV~R0EyMsn=vJFD2=aXs?wFV7iwI$=608GbsM2pt)ppOzQ7e{Xui=uMs
zjIRqt1dhr~7RR1=DT30l68l;aULi>-PujdK@C3wSQXxM)sZc)r^vn53TC)3j(RJSBemG&z_TN=
z96BBJ$kUJ~klUg*7Kx_?NXWOSUAFcB7B070|M5#>R9^;h(kBm2%VM~F;Wv)G+=E8M
qP6vkTv_e
+
+
+
diff --git a/ivatar/static/img/mm/1.png b/ivatar/static/img/mm/1.png
new file mode 100644
index 0000000000000000000000000000000000000000..df3f24a1cb93e4e406f887a3c7bb4e0c47b009d8
GIT binary patch
literal 85
zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx3?wy9o9qTs%mF?jt{XRQREpaw2jud4x;TbZ
f++t*6`1>EoWny3q)}CVkWHETU`njxgN@xNAsFe~b
literal 0
HcmV?d00001
diff --git a/ivatar/static/img/mm/10.png b/ivatar/static/img/mm/10.png
new file mode 100644
index 0000000000000000000000000000000000000000..2fd5f12e6d507d9d73bc20f0f039e6e3eaad712e
GIT binary patch
literal 169
zcmeAS@N?(olHy`uVBq!ia0vp^AT}2VGmzZ%#=aj&X$AO%xHdF2{Qv*IwYBxpqemY<
ze!O$%&YU@O`uh3~960dn*RNf>c3r=Iy{oHh>(;HGMAQm^x~x21978H@sh--&$e_S;
z_<#gQ{*C(B4U1oKNxr_jX@vuC;p6SD>alyCh;rYbl;hy-$2VE3JLd6c2ia;}dxrbw
T0k716rZ9NA`njxgN@xNAyV6G|
literal 0
HcmV?d00001
diff --git a/ivatar/static/img/mm/100.png b/ivatar/static/img/mm/100.png
new file mode 100644
index 0000000000000000000000000000000000000000..e8c80eeb093a0f4520a35842928e6d84485b91ba
GIT binary patch
literal 466
zcmV;@0WJQCP)VC4<=5BO`Q`+50004XNklXHKL8!3Vpk4Fm+R0ea!}qm?Bem_K&@$mW^;T
zQQt2P{55qjrvNhxaOebfMs&rV)fcRB$B+i=YidwmuEvTBMAp|e=8PB(>dVx)t<807*qo
IM6N<$f}Z=@aR2}S
literal 0
HcmV?d00001
diff --git a/ivatar/static/img/mm/101.png b/ivatar/static/img/mm/101.png
new file mode 100644
index 0000000000000000000000000000000000000000..289a294af2b7124387d2407ac52e111f40d807e2
GIT binary patch
literal 519
zcmV+i0{H!jP);NZ`>XTnerdA8?!>L5UUlUat-aogj^*WJ(24evGIKchRYqiwr^DK
zp`}vfE`wMKP^MqNh@}86b%oxUlnO~)Frdr@1EXLV+p>@vL2L`q15;dT_??h7rN&$Z
zk+~{wsj?62%lRfBxc5_P(s`q<=6lz?@1WB=I1A=xK+
zyB>@Svp#stJY|&KdI-QDDe5AY0*q=gY$jR^l3;Pi=KfvDe_j~XVu8)azLa1w)8>%7
z1l3~L{H7V~iGQ)>Qo+}GbIajU!w1n~5EYA=HmlT8X6u0!ET-9P(!&ZClWY#@5(SGX
zHmmeeX6u3Vui^gXobn7wwHP)NEe1ig7&a3v2FkP;Si$0+&0kfE7uM=W*`@qNJI0003$Nklye~Sl30!|FZ6uV!0~Dtg2WXe0cg&N(&Y^uW)x@yi{Qy)
z*~KHS1&?`R(45mTt#4R%(PNe@|0L#-L5CRz;)WrP83tn34625KTvO9ynyO(SU##g-
zO{ZpRZl#%jHiAa|5ZwRk>0db@ei;8c=wELAtGfU2@SjosqtJii`VV%0{opTCd{1-v
zMHf`~z5FG@um1ywMi@WNSl?^bACNewHXGg&L3iy89K}`5Vy>f
z+MGYsEi2YvzZkrnmQPlPuB0000v9Yo8^772g%;4bQn3$NOqoa?HkJ#AQiHV8q?CeDV)3pEq0kTO%K~#9!
z?U+fD12G5$r_e%c>HmLsj?86j1FEnO&JPesi9q~(`SP(`Rb=U{OQc?;7-jT^zqCHe
z`Am9)VWG}uH9P*J&tp+`$0Pba6J|6#ri~L}1kaJYWgV~3ljd#3Yv@j8qj(j~WYqCG
zJszgQLk$ZJA3?oKgO65D6b`G5HvH_2Yh33hBFy0J@NeiwgxlRe5#tIS8~@-GF_c?8
z#tvK$|AGdhjCe;Nb_YQei9BxfCvG9idS5>L`{Db>ub+>64+^3@%`a{fRrkmF`G|<8D1X6UQn)c^}y1Fzj_gF7-Kk$
zPI0y8rkMf>_QGSX=A#b&b$2!K=v7EE{2E%00000NkvXXu0mjfl4=O@
literal 0
HcmV?d00001
diff --git a/ivatar/static/img/mm/104.png b/ivatar/static/img/mm/104.png
new file mode 100644
index 0000000000000000000000000000000000000000..5241bc17e5735b4f669b08999d7547bb303a3fc8
GIT binary patch
literal 484
zcmVoVlZAza*Voqvp|KhO00D$aL_t(|+U=NIZiGM#1mo9??|H}
zeMx>R>?5%*h^_1k>U4Z*Uy>*Hv9EDHxAW<(vIEo_dmVO&*k?t6g;;i&S$J)S=@Sd_
zD}@b+$x$8Qta2jR3-zUyWCwAG0k_&8hec!L3U2Jk9;Tu&1dx(TjpAf%Nocy!o|1BL3PUP4)
z@P25Za3YGQ-S8Zd@beK~Y_}y=4bBe|UIGh|D>ZtC#6lXA=^Y*y$UV4F$#O9EA8CoD
z_CRs?HNm%?i&a|$thVr{_mcO1iX-N
zw#yK;S+zydYD;leZPBm^!dbONzzYed)t2I{+9GMSr8uj$XxIedtlA=A6GVPi8&*8c
axRqXXz8Fg;l|IA(0000VS)*M^3M|NsAAxNza`-@pC+
z{Y_0xeSLjxZEdZstq*U$f62hWSm){D7*cWT?F`Sp!v+G(m)}gA^M8K@UvWZ%OwMUN
zPR1B{1&=A>FTZ~HApJ$_Z}8QfGlGt(uXIX&u;JaD^=qud?>v!tyyoq;hekbym6uz(
zYD-QR6}G(Q{??P6!rs)eVwpvsluomtYzm95`~8&I)kmhUvhe4voL)FD=R=v>p@XZTYWRTmUp|I4JQ`Al?r)4k34b{X26mfa8Nz3g)TiNw=;
zMOAm5y&vVK_uSC--u!f5#qBTE5&t?*F=-_()#?jucsSu@*J2LyJIfAF?I}2%YZY^{
z!|aYo-VWdS(&ed6yr0x$SspR(tTQP5rMH-uvdYf6uy~mr%8iISJL2aoG1^+wGDH
zYvnryv-!e}4)Jb(S)i(Xs~{MtPxjt96tiDUdD!#POvdEy?Zn@I8UJq+Uw`iV)@8s5
OWAJqKb6Mw<&;$S=is?51
literal 0
HcmV?d00001
diff --git a/ivatar/static/img/mm/106.png b/ivatar/static/img/mm/106.png
new file mode 100644
index 0000000000000000000000000000000000000000..53aa1004f9b645c9a595ce29585870c5d41dc8d2
GIT binary patch
literal 445
zcmeAS@N?(olHy`uVBq!ia0vp^Ss={83?!5Pn=A!Vq5(c3t_=+h|NsAg`t<4H!-rR{
zTsdjdq>he`M-$t77#J9nJzX3_DsH{K5uJC~fXC%x(T^MdC*9ufxL@Y20v`|aTR&g-TSEF*|H0od@J)M<7%F?DW=tE
zeDs=j;L8NbvN@N;gXGlLrpFad`XGObOMX7@++y!NnzOZiKjt1)`tv2~^5@M<`qy*L
zpKn?l9C6Wp>eFg(&1o<9E`8J#`>Hx=WB-TE!Am_cR9RTA}?`UT|U%!C@8`q
zI47F(ex2DDtqYUx-?6KY=BRLNcr8{f)0%!rh<_LF-6^VaC9n5h+W$v!Z}_hxUi1I!
zpV1eN+ubX9)QER3r?<@uvy$Lx6&KdNTrm5?g6NBm=6FPfua&6zR0Llu30`)1fpO!1
Z)-}(>%asmFRRiOL!PC{xWt~$(698*n)SLhS
literal 0
HcmV?d00001
diff --git a/ivatar/static/img/mm/107.png b/ivatar/static/img/mm/107.png
new file mode 100644
index 0000000000000000000000000000000000000000..0d51482be48ff2e267bbf72220d28c506849daaf
GIT binary patch
literal 514
zcmV+d0{#7oP)rHhM;!otGT)YRbM;PLVCfq{Yg`uhC*{MJayHvj+uoJmAMRCwC$m`QHKFc1VY
z3x}lt|KI?*^dWE}ldM1iTpwt(RNUs{&71#7xO-;0d%!tunwX8si!A$2WdKR`jKgUo
zr#)xpI2YyJey01eQuaG%szuoqDh@<-yGD=gsA*T30kmS8jj~s$9YLDCMq7_cdzIYx
z0{26;_+nuz#GV+u9&T&+PA$IJ=(a{5_$L&;Av~{rw^cg7xJ2N;OZbhm($-0QC5v|B
ztg?0LK3V)X{{AzTrFRy?p1rkB9B?2;6tkcrk?IzKh~(3E%J?@jmSgx#2tD
zeX~>rbDh4gdfE07*qoM6N<$
Ef)FbO8~^|S
literal 0
HcmV?d00001
diff --git a/ivatar/static/img/mm/108.png b/ivatar/static/img/mm/108.png
new file mode 100644
index 0000000000000000000000000000000000000000..86e7bbf11780f88b15522fdc9c3a421667885d94
GIT binary patch
literal 598
zcmV-c0;&CpP)iHU-Og8%>j@$vD(!ou9#+~?=#u&}VFr>FV(`TqX?x3{>vz=VPgm%B!rOtZ?<>s#nEZwpIS3gpAC!{y(GlYpFeMG
z%RG7?oHzPixgR$^-AB*#OSm`uqje^KeBeJ0CSQ5SH}>q=M7i*-tGLyY8-CO>xi}{t
zm?t^tc&L+E!DGc`T|sLb5E-TpZ;0H6CbtHmwvpBjv7MAM6taF{VM{xqa*{$lpmJ2*
z!s3=zpj1e#HYl~K?LMad4z*5F4Qh>qDhw*gBp9T)K7g#*(ox%b!C=Le5A@I9TQ*SWXLLbCZ1!{$)*wTkoolu%J^1$=zN4eTehpU(;)*zJw3J2*h6gc!_
zP%BLc%|vQ^LF8gGSP)s}0Z-hBr|yC{DjC&+he{>8bvhdTF_LltPZ!8!p{PH&z14_e^eL(&lYF(dwK>j-nc4_t|tjj(i{{f?6%HE#8
zJ$rlp>4Mpnq}d1L&v3!A>;v*&aIzj`KjCCRnlK=n!07*qoM6N<$g2s_4m;e9(
literal 0
HcmV?d00001
diff --git a/ivatar/static/img/mm/109.png b/ivatar/static/img/mm/109.png
new file mode 100644
index 0000000000000000000000000000000000000000..91043b4c719daf5ce78ee7354c891347d4e47929
GIT binary patch
literal 447
zcmV;w0YLtVP)#8s;E>%3FH8xAwFLu!%ZI|;3p
zyP!Ef&JsA}3Q!9sDiQ>!1rusPK>I`QZyiImU_vbjcmWEocer)b;A%?VP50LaZWlCf
ze=xjPCfXkgs7Np|#~?s0_=FlESH0$R0ct@+`$GX02`1(k1gHfQYC%BzLl>YHM6^E?
pP?2C_jzNH0FrgMSX#enE@Cgu77;W0aCjtNf002ovPDHLkV1g;$zybgO
literal 0
HcmV?d00001
diff --git a/ivatar/static/img/mm/11.png b/ivatar/static/img/mm/11.png
new file mode 100644
index 0000000000000000000000000000000000000000..eaf7d4098d0d72fd429b4b6ebcb2a8cc691f00eb
GIT binary patch
literal 177
zcmeAS@N?(olHy`uVBq!ia0vp^+#t-s3?%0jwTl2LtpJ}8*M^3M|NsAg`SPW)v2oe5
zWrq(RZfR-x_wQd@TidQ(yPiIMI$^?ub?es6n>WuuzkCu`ra>w4PqfFhmuD>zmJon@s!>?)Di?nvXDSD{dt$BUU?_F^_V@*
bwf@U!e~ID4osCJ*uAL?e$}3vNxG3UTikK*ls9rXp2CjyZ`6eEFTcrImtOBrAl!0c7vCDlLzLWZ^xjr2q~
z(GwBKaKee2dxARR{^F(>73O*4`>
z+cr(`QTWz0QKuzqS;V?2JonFk{>)|Hf0pTZdEGoeu?C+7zvcebv+w`^Wk=gW9Tnk@
zy$LGZ3#BxtDX4KT6s&gi*~sD?>7gco*W@J;O*3>_)ZWVS?qhT*l*+M4|8Nx;Zw#KU
KelF{r5}E*-K-(Gs
literal 0
HcmV?d00001
diff --git a/ivatar/static/img/mm/112.png b/ivatar/static/img/mm/112.png
new file mode 100644
index 0000000000000000000000000000000000000000..ddc29c07361a23221c939e4390cf30083bb54045
GIT binary patch
literal 501
zcmVo``;LZK>mTC
z-E8_Kpzi{fXYD3CdAYgyqjbE{j8u8%*gKQy)fcOMXo8
z6ZlgQR0$DGB}DRXPuPV<)u30@?kEP)+6Amf&Tvf`uh6u@$uw~wg>%(d?ZTep@G9<=%>V
zza`(YzghcpD&LjUYE387r
zVOJOh8|@ki4UX_{#cgtk_;&Sihu@HBIIg9EvD{GDA3Kh75svDgrY@hCmTT95;h9q}gs7WrpzL
o;-=2((AbE;%#a~>L_8ky2Y#^}MGVau_5c6?07*qoM6N<$f`t+Y?EnA(
literal 0
HcmV?d00001
diff --git a/ivatar/static/img/mm/114.png b/ivatar/static/img/mm/114.png
new file mode 100644
index 0000000000000000000000000000000000000000..ef6e5be8675b8ec1e8f8ed219cf143ed3699bec6
GIT binary patch
literal 496
zcmV@TcxxFnAAWb9L
z6BzY;fEb1=N7UEN&A(u(1}j#XQpXQ1W!C9#sdzwHbE02I7}HrmL7?ck;IpE0u%hB6
zI#kq(zl$E&)c7MgR8x)WsETaOQM`rrdzrz?!;C(j`AXKBi-fzK;Un
zSjS58pJ@8W)K&g&6?yjXf1UXYf)OQYij(B8w5A%q(empFehK5{7QNmoMbJyUYHoD+
z<)|r970rm695acnxlJzQagSluJqF6v!Kul2qF`5fKvrTg=7)!#M4hR+$e$~W3Ksg{-P%<`2YIaN)
zC25kAv?di0Bdo0^sel*_C25kH9n(cgn&c#{Nd?3RYpY2rAVxz;nxtmObiI~@H7ib_
msDKz@Z8b>+#ArZCYnpG*UK{6k^lCH!0000eZ|B=gF!Z)XPju^RF)cfS2Sf2Kb-r(D%4t5nzLOw;yy&i1v}n|@kP
zM|0*(mr0xl&x9+z7oGF|rrPT>=Z`eFA6WgY{K(O$N4%3-GE@@-eH-moJ-6*)yIpZz
zHS^+`-z}@>E3K>RGMw!?=WNoMG{N-E5}PAizNT@C=NgLT3X0`I7#FYp37$36^pn8Z
z$fs$)-&a5VIqT2fL-*(ZnRDR0^PfA%&u{-D(=UB>=6|DGD^~Ejb@smz*0|{P==3a^
zd(9tz+tsZ<`9A-rt?BgjetWEK;*Ad^7W}KWaz8cAEbGIA>i>D1({luKH@p3;Zr!&f
z`Apiydv=vq_5bi3J3s4t?1z2a^ZxulbBOElzKgkcn(uC39d1^*cxLFP2|82P8NWU<
zE2+cX_&UTLwf<#L$4D^QU%JtmTdBn8>#0vWgL>VUDlFE
zvU@cZr_k1J#!2>dwiTyQZ_><&^JJ5nR^|F>wD!&|G{Y5NP@twMuAxS2W)!!&GQK1i
zXVlchC}-71d8>*68dR6AZ^ek>s%tc;E?eJ@Af0@>E$joK4#biHZonB$6Sz3xQ
zTAWc+gSb$!QEWk6Tue4+)Cim+Q(Rn(7H8BH85hTfn<67FE+(5ZY6MP^DK0KXi!*A9
qjEiH#O_3277n98yHJVP*e3m|K)Et@J541D@0000*M0$6gJ&a-erAguh5Der*8LcxxQ;_n(J%<+0ta+-?L}GO1qJ+^!<9tZ~60Q
zU2mVe5PdrAwq@1h%ca)+?}JRQx?HHdU#+>(*Kxr3sT<)K2*(bVlXgzsQ{v
zY9XO|(K2&tzFDplU)0mtyt4)3vyzR)zOdN^H8U^k-;wJ!`Cdnj&(%$uUuUe!3;whA
zSJ>U@55M32GBGvyTJgRTKDP*!4-t*Gr7Db{=0E%+c)Z5yfFCDQPN>S?ke{55C)oba
zbe$L|ela&>(jQOecxjK2HNp1i>kwvBbUL`)z4*}Q$iB}#5(V`
literal 0
HcmV?d00001
diff --git a/ivatar/static/img/mm/118.png b/ivatar/static/img/mm/118.png
new file mode 100644
index 0000000000000000000000000000000000000000..1627073ed28b09cf00d92347a7309e3695c02986
GIT binary patch
literal 549
zcmeAS@N?(olHy`uVBq!ia0vp^WgyJK3?#KGrz-;~xd5LK*M^3M|Ns9_o;>;F$&;^N
zzrKF``kz04T3cHi8yo-q`?sUoNrZuc@sOvBV@SoVw=*5{ju`MTYhT>7`TzfdYGtmH
z#+)Y;Y*XwM0xnqe{rURg!-7=R1}S@yhM2BdowGi6N1m8noOEP9&l>6Oa}}reto(3r
z$$KIB->cQS_oY7hwxY0WZ)5mT-8J^L?OK4wnKTD|GrIlk=QH9bFOT%7;Bi#uey
z)+3>SKH-@+^Ed7}D>>aWH6m#3hQ1xjQaqUvlf2S7t(aBiSAFdgTfg*;VdJLbOQe3C
z5S?`~C2rP=jLlQpSx+v16MIX@#`oX+)c%a(3O~)uGjo13SsrP9S@v+3x8*LL%eFVa
zhCk?-z0Tgw{Z7gMv%ky5|M~XT>p#7JXrigzx?MKXVdw2`ZnibwEBYhe?bnmnM@-fB
zmo*=Ic!fK=Bf2*@@WaEqQr{&GJ)Yt4T6IVkvtEBzPKTkM(jbfL>Kc1fr(
zNb@OYFD?F)Z8ln+0=FA5jA5+|5mM|(S+&FO?irud2&R`d6LV}{n@U{Tpdx)FqNzdbmMs%E74JptfD!@TrEbPSkENdb&ZZ
z-QfG^CT2e9Il4?V=3q4DpsoAGx}y(UqcG7L1>Z%N&pFiSQoFxf_iMg`M~xnJEPChM
z>|Hmj7xP^HZs-3~c*9!xAIcjRF_(O%e8;&;hJ^U2a7LINjk?go4Q4A8%*qBA8gj52
z6H!E12G&Q!0_jv^HrT-ARSvTnZyVtIAU5S-)NT-KHyG|vx`f&dhC7rlp_eL%O*we)
zVVT{P&ZYZb{zs+u{&(+xuly$qnz!4-Hs@FC_Mv+(3GH#v4h2m#(}@6
z^!)qx@Ad1~jg5^D9z1AmZTkKOY!J*8ojq@O1TaS?83{1OU-OOxXYc
literal 0
HcmV?d00001
diff --git a/ivatar/static/img/mm/120.png b/ivatar/static/img/mm/120.png
new file mode 100644
index 0000000000000000000000000000000000000000..aa1f98bf1b462d4a52cc3b98bfe3dc582b4c30d6
GIT binary patch
literal 534
zcmV+x0_pvUP)M>}Qd0Yo8r5`D11?=YaFaTM0JB((p`6Fa@9gO_dlI
z%$J;p?jmZ#^%`@8}kJe
z%#>Vcm?Q_E2WsyMc>j=QJ4+mnlB_cYt7QHpP;ita*(gcCQIbCPehf!R7FY1RWd7gj
z{NLjF|KqlSW;;t9j*_h7@5lUI=JD55{%HV?k~G^{;)5u`kxI8)c(PHFf}tY-dTpQIcc}mVl!q%|=OlUzDbiO4}sa&XRx&mShW-fTJW$MCm$G
YFGp-19WFX!dH?_b07*qoM6N<$f^D4yq5uE@
literal 0
HcmV?d00001
diff --git a/ivatar/static/img/mm/121.png b/ivatar/static/img/mm/121.png
new file mode 100644
index 0000000000000000000000000000000000000000..5933f9a42b75c74615aa564be3d0a4e0c7e60430
GIT binary patch
literal 522
zcmV+l0`>igP)vd31_4^>OTxxHV`2u%~=cB
zvsT_$EoV%#u0XS80k>trE0#m1yROmhum#Ow3z)+eZQj4cp!qY4cT+}P2V2>xY_7BD
zo%UAVyJzOC%Ae2qe-hSJ82tAP#f{`0BNKP$?vk?Ws6C(WdU=e#Gu)-
zfV)wG_C~2$=Bx$GjS`c|`EzItJowg=@A@CKH%iUQO}@>I5;H#e4h+l2o_t#xrDo+`
zT+NLVGdPztH%bheEep6CC1`Jynq|&fz}zS?X|^n2Zj=}_TNZFPO3>aYHOri}fO&a|
zL9=Cn15HkF=$x`LGFwuShuaVbhEh%=W~b
z*L{}x&1ChcrF~7RizZm+mD;do1)98Q;_9MFlaDt^^>`B;7#&t7)bmYT-EV@TT6(>@
zEugEXjD-3?A*mj4;-^K!7J!Y>&$kxKb;yxIhLssxe?E5Eh4ZcoF|5dl18=0R?l%d!
z)dcE(la!yL1m&XleC;^wL4(9lA1B1+P7~DHt$!{=-}Ok^Lc0PWE$>@0>6T8>)ZHe5
zi3z(Ts~m%1tEk&8MiYN$f^GfI!u{abF>~>Hjr5syYTr{d%Rc`gg-rpuSR|kQwMZ-q
zrfxUE*46pR_wckY$%D7{ZeQbKvFd{De^sDZa=~CF@T|_|FT;AVDA-|pt{Ap}5$d7|
z*)MM
z9djbSgS_S73-Jup`O+EBNbbE@0M*_IARC-Y}3fMoN}|}u1)XQYx$ieMb?r%lYty=1rAmK81bxIBSj?>_k((^c?78m(i=}S}TOVdDp*3^*CE9lC2&MlL{
zln=)Ui|cH^Y}djYhF0^>Vke$Af<_ayTluck3yUX#_`@mP^KaKAIQ99W@y_0T1MoVV
zFMZC^_bh1`o@4&^*u?8bo-cwvUsQ&CF=yVn|2|*BocaGxo!DW{Tr&&jY;Kn?eaFnX1H)~||Gzl7
z^+6Y#i#n2)ct|xBW=+TFbDLZ!si*TMhZ!*t(hl_RdFyGtd
zFBWg^VSc5`-{)HNrtW0SZIrr)d*%ib#oX>SgpK$517GK@9l2N%u9%84b6R(E*Zg}m
z+&{fh#CxM+`3OJ13(bduYtcuZI8X%A%l5AKiI)iF=e-GSLm^;B=Y-%W49vhyy}UOt
z12+LPa1+{wLcom93Bggke_OCVk>%xpw-E}bZFJ7te-=9+rThB%%GeZ@86%)Id|
zBKul2Y77H@Eb`|%Keg_fEYF7<-I1jWUUv2UTHL5@`D)6qmz7?B|C|q2*RhJdFj+L>
zSEG8?hA&O`mpFW0bbo>3=dFCLc@NeKX4IW%o%_&NQ(eEp+3!TS%;fWLc1==R$HHoI
zXX%~U`#7JTc^@eL^~%rZ^LUGOChT~7{13ym?v82NY-_~t=E@qLpZ}hTef2V44_TW~
zDVgW%^$naN^w}#b_Kt!6mnG$zgzL}clo!lj*Oj2KyJ%d5XrnH
zMsVUbqlT|ai=K8hZkZ}@ts6-4TqtsNxpfL^(WNk`kq)Ot1v9moBlMM`)=79obEfWn
bcG~gTe~DWM4fq!iv!
literal 0
HcmV?d00001
diff --git a/ivatar/static/img/mm/126.png b/ivatar/static/img/mm/126.png
new file mode 100644
index 0000000000000000000000000000000000000000..59c7caa67698952774db413304f5bac5add79708
GIT binary patch
literal 551
zcmeAS@N?(olHy`uVBq!ia0vp^bs)^a3?#4q4c!H#Bm#UwTpJo1{{R2~^XJdan>SCL
zI<>8>?Z%B8r%#{0SMC+Uz`%IQ)5S5Q;?~<)j(M#HJgm~U3*Xg0F1s4J_1FHE9xX$0
z1N}Xn4Ie&!`0!!~
znNnNY?_H}}{?|}X(5u2j+2%;wt>~xmkBv@8RCA=hUD&g=y|ngtaoN6&tWU2wpM2aa
zD;^}5U%~Dzm!H9}yS#qZ|2I|nM#sgLeb~Uf&^~X*)$_XVuN{jnlaAI~vhkaN=-UOo
zTib)S*+lex*^wT>ewx$2M%iY`BO9I6mkW8HCbktmUU=x|yt6gwR-b!c8vI^+?QH+u
zHO
zg`RASklZDx&?U!{|MN8VHk&MI4mjj&bxCo)qO8u}=bS%hulwV8_oeLH$^4h*d^lph
zqK7fyUGty*W=Z;@czXBWS&M-&&*16m=d#Wzp$PzmrVB6t
literal 0
HcmV?d00001
diff --git a/ivatar/static/img/mm/127.png b/ivatar/static/img/mm/127.png
new file mode 100644
index 0000000000000000000000000000000000000000..26f88a80dc3bd99013d3071f151647a0386e0639
GIT binary patch
literal 519
zcmV+i0{H!jP)+yK}pLV)?)~MW-oL`daAH0ewN+UHt(mBQdkox#4)B#W*t=>6*
zlXj{j?JPa&L*>N_*qm2n-yHe#s&UF=obnju-Xkka{yS4ZdGiAL{JZ|Tmy7y&OZ(;m
z?76eb@S&XcvA6B33vlk;ZT$B}S$>qV_aM&lW0d7bDa()8^_}#?*?h6e_+#w)%Bu(Z
zsqfae=g-c+y#GDVAN%>Q24M8}KmYw#+yPtv{_(&6!~~4|{jZ;YTq>n~tkJ%I{^y^6
zBErt^pMU%3|7d6S&`x|GV=H7-jen
zXZX-c`-sy%+Q}YP$sWqd9!42H#2G%c(mvv}k9M+$RkDY2vWHQI4{?SMt+bCg!-sOR
zhtC0000LP)t-sfPjGi
z|Nn`JiNV3a-rnB){QUj>{gWBI^Z)<>!%0LzRCwC$+Cgr^FbqV|a)#9Xk6fUeSriRo
zSoTK>zYB;Mk&Ywz>+yJeHp!NlrQJQNeyr*Ct!3C#zl?p;>OJ*`Xzs{*$9lB(8P#8
zqTvsz_+vWmn5g-qTC{=@e_W4NVEoD^hzv|z8^)NpIE~SjH`n0(btCO}{Ox327yuf9
znHh{DQvd}J&|@G*cXr?{eW*G}OaT0kVVD`g7$|@+GlDTA)B<0fdgQz;wqZl|m14HV{Gd%|nWOe0=;L>MXMg#c8VEFMPSW
ztJ*1VRLw8^?Q*McdwKlJI~H+T!*|;5X;{Zky2(Dp@d_`p$Dw$Y9<4RP&=4S_rc1;}IQ$k0PWAdkV2!+!A!6gl)4
zufUPRBQcV5ypZFPhmL_9WW3ZG16yh<8B1$EuUWmD>1Sx3?mf8@}sw|WoEbUB}dahe8JarXGVXPS}%IaWI
z_5$Q|+~?JAqPswJ3bkVkyM!IZVrsFj}WfP5M7&kAx=9>GqfV&ALc#0b5
zfp6%9Pe_w=XTu%sBt3?U?kka1q~b2!R3fX$!*QPtKBo*mcC`B6fvsj7wMg9TBuO{8BU#7B=F
zH8wW>`}gnf-@nbx%{@Im-@kufvSi7{ix*p4TV+hGI)S=8JzX3_DsIJ|-p+f#K!D}o
z_b-39Ywt^3be65X`NfCEaCPU!aY|oSEECJJG)j}XbnDCa(}8*}-pO%i18==}%MyLU
hLS;s0^26+d>;+#L?VPh0qyi0P@O1TaS?83{1OV(2PyGM@
literal 0
HcmV?d00001
diff --git a/ivatar/static/img/mm/130.png b/ivatar/static/img/mm/130.png
new file mode 100644
index 0000000000000000000000000000000000000000..75006552627c21f496c6242b2ccddd1ba355a03a
GIT binary patch
literal 543
zcmeAS@N?(olHy`uVBq!ia0vp^O(4v{3?%p7eQ+K~i3a$DxHdF2{Qv)d_wL=dZrz$Y
zckZW8pSrrbqGWt-F)%P5^>lFzskrraR&>@;10I*v&;L!2(U|g+BR4-tyFI4HOu%qn
zV9sgz*=L{aeR1a4zPECL-&|dH+>i0By4m&)eUD->Ox%7
zxml6lluWls<*65}VS3oWzdZJ4>hhIaO5_U+PT^1XC6LGqT^h3qP(>(YnB1VWTt6JIM#I@Mf|CF_znQN%aW@yTTGg6J0e
zoh=(&kLV>%{}6kKZ|TgRc^9-8{{?^g&1yCEleDm3bJG{OJ4?r4^+DXFCtv
z-_)V^Wm4<@!pHArf8Gv%c*CeeB7^gQO_OJuslg%}9_^b_S}!#dP3+go9^A;~GVevF
zvxT11bqDu~S>nGg<@HL>J)R(QB4EngMF#p@^SM>Te9W6uPdr@v`b)G}k^KA+1=qco
zi)XECG}bMc1+?`+tbc-1#~uBuZ{2c}d45~=Hg%p?{&7&ie)$q6%~hKET?h7POcHWr
zQET$hny_et1J`ma!g?%1+-bKZd@BQ4p1Dq(!l7g!=n~W@(#jfSA?9&$inwb+oCs%k
c!IX!>>XVdyPr2Ja6By$Rp00i_>zopr0Ed$9<^TWy
literal 0
HcmV?d00001
diff --git a/ivatar/static/img/mm/131.png b/ivatar/static/img/mm/131.png
new file mode 100644
index 0000000000000000000000000000000000000000..982d243bb662f2258dae00eb8aa54d3384a15e38
GIT binary patch
literal 616
zcmV-u0+;=XP)FMeE`udHHjhmaB+1c6t{{H*>`^~e3L;wH+0!c(cRCwC$nrn{aFbD?2
z!?Bb5A9#L#(rPu^8%S!V)pY^{lK?K&3!mFjAi!rT-St|uzjISQmx+%DUJqTHs=YbrHWh2DdK!C&cjS
zhe8a1o4^@`p4I%F#oyih8-{<&@o!rGZI2gY{)lfqyciCSKr{s5XCTx_OpN^vW@7bA
zBi~_0TCaxlGxNM@n+9#x=D4Qie3M<0h{OJuLm^P*7?WJ{svY}T^%->?KVEGG-)X6v=rh0`pP~&P(B-
zm+}+yQY_9(F)=Sia$btSycC1;QaI?P{H%J}@8=g?-z6A9HXNP+0000CsHmugg@yk9{(^#nO1RH30005$NklURfRd5f}tjX)#Je&Xb8az+^KCrS@$mDov90
zbWJ%UOoFL2Mb^_b<%}@J)zhfCRGK8~>6&szm;_U4imaz=${AsbtEW)|seF{pZ#P#Y
Uxp9}ByZ`_I07*qoM6N<$g5y#Lwg3PC
literal 0
HcmV?d00001
diff --git a/ivatar/static/img/mm/133.png b/ivatar/static/img/mm/133.png
new file mode 100644
index 0000000000000000000000000000000000000000..e095b93b18fb5ab2ad824055b79f02712d36b362
GIT binary patch
literal 612
zcmeAS@N?(olHy`uVBq!ia0vp^tsu<73?!XcPV)gN=>VS)*M^3M|NsB*-@pIKlP7=v
z{Ap=vnLBsx>({R*Po7+VH&m8^fr-V_#WAGf*4tTueaebFtjEo6-1&dx_s=DPOFWZ2
zO2cB+H=NOScK&|{2(8o7rvF`LV;^zQNB-N4hnDuiExSHU_~ftS
zdL!Oto?prh<0Dp*9NW`BR_+qau-^1WRI6Xa@QtaP+=t6?$4@G?Om^k4pUi0>oqc0>
zPwt^}o4&7%eXPC4IftwDtH%aWrLwI}`EHTZZ`rJ0anrQ@tE6yFYe9g3;ESdVPX}Mu
zZOI4OlW)ke?Nm@Y$SU~nYiP?`rG5LlHpPbchs0gY{9RGsrhohRuX9>0Zy!tb-3j&%
zy|a7fsvpljxAN`(^U=JaAnxlI>&Cr2f6aFPD}S}fJmlX$r!$Ov+z%_XOP+V#-)(i1
zEAR{Ne7(m%U;lWM|1!tq&;CknA;x`P9g^=w4A1Y)+r0jcUz*bshWKemwW_B@*&m;=
zc>m1rg?b`Mz5l*lRJUU8zIjC`uXR@8$(62i?7L+i918SK)t2xToU^nx`se0rU(e4i
z{$fAnr#|C9e@%l~N(|o8+nDaZ`S92Ee$b_`?RtGtTG5W)t`nwpvFPO9IJLk3gMQfc
zdgqvJ{j5=1Oo;GgX`gvrAdv`x)gLpIis|?dX^Pj3A)L(&B-EjWyFG|
vN*>;>W_o7d1BJ0jESh#I%xqRa^Dq8;$5eO4tLC%;lMREXtDnm{r-UW|Kh+@g
literal 0
HcmV?d00001
diff --git a/ivatar/static/img/mm/134.png b/ivatar/static/img/mm/134.png
new file mode 100644
index 0000000000000000000000000000000000000000..a38b1538ef24eb1a4cdd0497383ac7d99776d39b
GIT binary patch
literal 591
zcmV-V0d0000RP)t-sfPjGi
z|NpA0s^jD1{{H^(@bHL;h=GBDm6esQQe4FV00HkwL_t(|+U=T2ZUiw51Ea;u|6iQk
z2qcHjjOD3D!}S6}CcQ}hIvfs%&oQREN3+nzsT^;XaJRTX%Hf#f20y=
z7v%Pe3~%-ins2qML|hBms3Ps(?LCC35dPOj>ybrFVkkZinKS#VjaENTeQB*
zouE&{-X`i)xGmtouC;L=8_kwzgIp5f)ma5o>n6Bz^t5HNlUs%ewiqf0=?vioYr?O}
zNE6(uxE0~#nuw@6PQZg@S{akHhVUb!NJdy0aby(9XjVqMiHzfo8_GDl=mTT`2R(J|
z;V*&wm6(4Zj0ZfIfX5^7l;#@?e4B-DI-xsh8#ii5^6gn}mLhUKpmh%nGT5;WKjh*^
ze*6HG9|!ZpasI17y+J@*h|!h~5@1)~xF)>;8`ocA;V_|g(wt;5M4QCWpSQT2b7{XV=iiS2!a4wy;g-I4e
z1nN)WY*-aqvKYeIuqw2qKSiKn6_YH62-Kg#7aE|2v`!X7I2%@lmh`6xB&^q=MT%h-
dgg>uc`VCyMCg?z|4(9*>002ovPDHLkV1j{b56b`m
literal 0
HcmV?d00001
diff --git a/ivatar/static/img/mm/135.png b/ivatar/static/img/mm/135.png
new file mode 100644
index 0000000000000000000000000000000000000000..f13f4d881c39f87dc1835ccd4a61cdcd5db1c304
GIT binary patch
literal 632
zcmeAS@N?(olHy`uVBq!ia0vp^?I6s-3?#WNcUb@_#Q>iW*M^3M|NsBbn>X*wnKQ3m
zy_!6E^5x5yTU%TI{Q2|g)2GJ9#=7W3@eB-1LY^*;Ar-gY&hqR#Y{0{EHuUs=d7I;I
zYSV8ly3p{TiqWzBBHzr{PoF+*bqF>+{pI1zv{i4F1fG48->x9)sOuVgzV}7
zQ~D`yOpiPX&sl8y@RPON?Ma4D_?*qBDwf|2JYll4|LiBDpm`Inw$89QY?j(QTk!3t
zDRB`VJeB7RIP@RB?Kw^PrDd9n7#zHHkp`=_ntj_QhYO;4=2
zr@Ya*v$Rb_;%4NI>SzDAEh@-8bu-@TdgOwX^oM$;OAY{4)!q7kBW3CWEABb3bppQa
z65u}U{Ox4mmiT_=cXCI+uV8-HqE(vFx;duYS8HQw`p$RDu1vZ!foUmF{cS$5F;^oK
mK&D-doIt9$s^Z%ISMv3N>g!Uc&!0d4{{1`9Rtwa_#Nz4V7*cWT?XBp%Ck8w&7t=l}zOO&}Q%8ZB=a=Gl
zUY_})0xI6`T&nKmZI||(X?ZvF?&O(GT{F7kvx4rgTcmwx&9CmQ8DW2pOEIPd`I@&=Gmb`2yYY9!rOHai&Bh=3
zpV*xI;gKhOMo`|ejCc8CXI}nelX5#u?+AE5(lFNE$h$Gc{Kza@=Qje@lHO%T*N&VQ
z*sNM+G|gJ=@cCs)vv;{DcJ-FDIvJUr+C8DS)hEZ~d&a*U#qW*ZDiyaS%`WX-pMTt}
zwl_Ybsr>4!xjnqUml__NyfNu;_F=zcTW;+CoO7dXhL&B}t}FGTp*hYv58EO(FW)?
z3(E;8aMro`BI+g6chdu(^&dal0;cFT}enc4hwaxtMq`M*Dpp#C5Sou~!Iu`5_->sJ-d2ikmTKl65B;!yr
czv}}(myEi;Z_b4?z+}VV>FVdQ&MBb@01^x$(f|Me
literal 0
HcmV?d00001
diff --git a/ivatar/static/img/mm/137.png b/ivatar/static/img/mm/137.png
new file mode 100644
index 0000000000000000000000000000000000000000..7e7dc73bcbb9bec0b6c64ac568e62e46a50542cd
GIT binary patch
literal 540
zcmeAS@N?(olHy`uVBq!ia0vp^ogmD?3?%h`z5WfPL<4+6TpJo1{{R1f{`~p5bLY0S
zwCvouv$3(UJlyy!0|VnBPZ!6Kid%1QIp#Gx2)G3LmwvzV|HQ=bcrUX~-hW(=<}L^g
zNly5)<8GdL$F3|jf8)@#z7xO3+S&V_FXmDBd@`}iuwjZVd(a`7YdUkkM!yVZj;s${
z&i|<2==J(z>o_hg=Y7<_X>;7hzu0wz|_3
zQR@FmUhSiF^?m=k9rfjU2A$uRJh8X^<$vX0^fA?Yd;V+>{Lg#$f7ZkLlOOlz{fz(f
zXZ?aYjpB{#pZ?=)s$cbJzRAz!`TshX)O)?2AM<cpWIs{vR9cP)C#d#qz(L%;`Cg;#2#
Uhqnlr0i&D2)78&qol`;+09>g8ZU6uP
literal 0
HcmV?d00001
diff --git a/ivatar/static/img/mm/138.png b/ivatar/static/img/mm/138.png
new file mode 100644
index 0000000000000000000000000000000000000000..0813c19174af2300b100f08e4042abc409705a27
GIT binary patch
literal 655
zcmV;A0&x9_P)r004>z0{{R3LRlhK0000XP)t-sfPjGi
z|Nr^<`QP8)#l^*nii)+hwV|P*f`WpVmzR-|k;N@;ZvX%SDM>^@RCwC$np>``mghreC@4
zEjvXm$cde#JulPkBtDznaXXE-dbEdqKn~HtiwwvC2A8x1c
z1zYdwv^-)9x;kRdx7|_4!aoBP@JkQ!W6uDNzz;^9M%zjXZWXaPvgj5fk#kUpqhWPP
zea!_fvKYL`5}FoS6fd%brbQNsi!2UWWD$VK4MGE#5A1qayvP#zmVXOQ;B_B(Ujbg7
z0FfJn23{z+ciTI?W>0ioM=W9ZEg8SYjEWC>08tVmvD2~8(O
pBrdX;w8$c^5V=EW^(@i3e*s^gDS6>JDSZF{002ovPDHLkV1ng5F2(==
literal 0
HcmV?d00001
diff --git a/ivatar/static/img/mm/139.png b/ivatar/static/img/mm/139.png
new file mode 100644
index 0000000000000000000000000000000000000000..3e2eb48c600c3d1c754cf015e112b22cc352e824
GIT binary patch
literal 569
zcmV-90>=G`P)?TS0
zG)j_dB_IkB#^YVSaeSbGQjbrxZivE#nI50=#J6pjj}nHSD-k6;N|f*w3gfjzX>~1p
zF&ZnZDW=B?&DRpbYl-G-3E@K+N7>f6he-U!w3nS!RuOYT^?e+9r#~N6$3rD
z`A;<(f6j&YXG@r0p)ejL)FbFGjw<{cNvQBB;rc9!fy)e+tw
z$C0}Ec@81-d_C9v+5X&t{6}{nm;86Q-5toxGe6fJYZ%|SQ5)Pl1n&BQ-(mUh)A$NS
z3E#M3yp|~8wS@VN8^Y%~nqQ$XzHy_3*Am8Si4tB*n4jkmKF`to3Wf2F8zsD!FkVZP
z@LIy`JV)l5oabnMg~Is8jS^l<7_TKtcr9UmoFVdQ&MBb@00x~{y#N3J
literal 0
HcmV?d00001
diff --git a/ivatar/static/img/mm/140.png b/ivatar/static/img/mm/140.png
new file mode 100644
index 0000000000000000000000000000000000000000..f5034e5b28880bc96c344be24fdbe9bfe7caf3e8
GIT binary patch
literal 657
zcmV;C0&e|@P){!a@<>lq&U&oB3J4rKX4*EEN%`u#&Nzxa7!|HeE
zY3%rh&URyzfxj^BinF79ALouJ9Y3U3$7zlecq>(?;}qQrvkaVMl%?UsX(o%ZEL>o*
zBnvLW%DU)lV-uH|R_T$}sn!vqXP$nJAfC8L2$Q!^9btOO2_rsj+CT!MB^O3tnl_Qb
zZ2H1%n5vRqC_@^iU!@HbS4qE4wvfg${VHvkd0(sV?ukTZ@c3OwWHtRMv$5xdAyVOU
z!Z=d#H_U$#=C$b$@I8S8VH6jo{uAO!A6Jygr2in-KUMUPIQ{cB%s>)D-|5`Awl^N{
zlk3}P`Ua!E^{Q`5>r2B23^D{G9^vpSjvctnVU@#M{rJ}7n^&L4KPB+MX%2phuqn8z
z1;4Dwf98qffvv0DHq!)!QI*D4{0XU={rAc&Ou3d+v;WarEuX6s`4oJJRt4t@V04HtNz4B`|m3B^ZPe
zMKGt~D;xbg%J6{Jdc7SRb!muFSoDOfe_#^DFrc+kZ$~*EnB%0gEKnF#X^2~3Kx>WO
rL>a%rfYu7V9k<~pwASnGfUY!OILj(m*VEIO00000NkvXXu0mjfo1I9#
literal 0
HcmV?d00001
diff --git a/ivatar/static/img/mm/141.png b/ivatar/static/img/mm/141.png
new file mode 100644
index 0000000000000000000000000000000000000000..ba5d05d6d6268bb8229da0c79df9eece70423529
GIT binary patch
literal 631
zcmV--0*L*IP)!zlrjEs!(^75abpM`~mfq{X9goKcggt-6!0u)I^K~#9!?V3@J+%OD7P11If
z`(L=&zXC?l$w&&Zf!_%PN)I!R)Ha*V=GSoasUK!Pnw2gRe?zJ_2j>(4tWfi8&oVji
zZwBX+9U}e*yP+0$J%IzCp%lR<4l~&Go`>qU|K&
z@O;I$^c5lsYqp4SyZtMn`J&z3igJqaPco}71^m|n7x4|eS`CWLjK3Tij)7d~K%K_(
zk`{-3H5rZ&1D6e#?pPV6okP%TF2}
zy@oeK&~CrwLIl;>?YEqW!F?yX??m^V=)Mzu@?2o%+U>Vo$U_FZ1D5;u;r<(wcr^ZS
zglv>!x8HIhALZCtHX;RsbIX1CvRp$+9?0=H^cynZE!40$oW&K~#9!
z?V4MX<1h$Ca{*yJoc(XN|N4iTn#6+KYFEw*D9k}J=<(&tmoI-08>%9z!`OkS_}TDF
zJ6+URvCIxc`cxyt((q5(ha=L3|FHCP!8l&PKNHZHc#%2ki$)q=rb%%L9ger~qx3^9
zyvZ7cHQewvt*oL2mk??+5urvCk=nZ9*U#wKpeOrf3tKEpjmEKwTTvPF%lT;7rX9@W
zM5H7+{PawuFq0Y}lE`U>jwGC#oQP&?#h2@eG@c2TBawsots=toD&nafnctZesVK8_
zB66>ACQ_N1V)51LNTolvu!dBcMo11XJ=QmW9>@o~lxo%X7Ha%k#w64+rJC);1x{loC!%D@
zqwM#8RXG|i(nhi5eAyKnXsP6U*#%ojq2zqo1)E5ju{QUfiii&}Of&Tvf<@z#f00066Nkl;O>-*ohUsXPk
znkLx$6xZ(rqk-AQHeZLs;qbwvyUX2^SK?BH{SYB>s$3dY8IluX9=25CW=UC`sV?P>
zYQmlqHz~RvYMv^(ZfKmazZ1*bNW)%XXmPFVRaVw4Wv`isz?s^LydtH0)YgN?vD$}VS4%mYl4sjH>i8%z>-}nb)Ml1wYV7qV`m@I_rGq1s_i*U%5D)^_uyO?>926OXSA;w8Q$0
zvroI(J}v)#(a$=cdD%R4_C*^8!TSmQtn-A#R>00000NkvXXu0mjf^P(;d
literal 0
HcmV?d00001
diff --git a/ivatar/static/img/mm/144.png b/ivatar/static/img/mm/144.png
new file mode 100644
index 0000000000000000000000000000000000000000..e2e8ac897437dfda91486038a0fd2390675ca7a4
GIT binary patch
literal 648
zcmV;30(bq1P)FMds&CP*-okJR^pF7!m0Po=b)_6KRD+GxRIt_LwYm
zK^PSdACjg1NZt`r<*7e&W&znk^JYUIGFl_@p^q8fSU&oSEFc~tqSV)9OZ{j8Z}98X
z0;hHRPTOChMWPxDnlEhE2D~j{e9~MK=n>V>7DllLG~?_6&5Y_$o>xD#jW{-7+K90w
zJ>zV~W}+cubk1B`@rI1CIjd7!Ig2f!8G8e24#>3`e_BAP&E(Sp3T-CdlwFXo_80hj
zbu{-uwm+>!G{%z0y{or%v|Mwp>{)oKkH#PsG+F-?I
zqCqkKi0lE=AYfjGMHJON||%aGv4rthEz*#7v*{zg|F;kz&;bW(Nqa9#?1I9
zJ7|9NB4ejX9SfZbx89UiaW4(6_prXOLu2}Dc_zNGn%CO5U^%V&y&!`{36Om|P
z*Odp<2X;8nzCn3j{Zu2l
ztURxNs+EM5pRpz7dG%fG_=57h`l%bp1?6e=Q@4@-w!eJgL6xHhe*OPW{x4WZw*`
iZE}^mm4ubQR{tNccq}!nNgCGx0000_Ebg*X#AV%IsG6{4b(NvR%K}mIMZCc~lx!^Ktl4tx2=uYh2TH~lZn{=@f5*Aj
zm>!Htbf6^osZMTqiISe1MEq1z1$L3Tc4>GNCDTik8h(nB;G!kdMN17AEeS4KGF`OP
zaM6d7?F#S*WWh_6rfUz+YrY;Q!;O}jo<+&<5~ViW`Kbr|n0Owbbxt
zHW}E>67Mzs&M3cU6VUn41X$QZ0-aAxfa%4rBKMz;+Q1nbIMZHr?su*7<#&f$yTg
z-DCb6yKlaGJZg_|?cHP5K7u{@0aVWt-TA5E&QGRmmIQZx@`RTtX`%D+37|Sd
zbmymrJ3pDOSrXj&$rE0pq=nAMCV=WJ5uN|<3Gln0uKg<+==}sa00000NkvXXu0mjf
D&lECN
literal 0
HcmV?d00001
diff --git a/ivatar/static/img/mm/146.png b/ivatar/static/img/mm/146.png
new file mode 100644
index 0000000000000000000000000000000000000000..694fe05958a7b0d262ae3c16e37c46f35f123b85
GIT binary patch
literal 608
zcmV-m0-ybfP)(~z%qNbv$nN)Rt<
zsp4fy3$O?`$`!w)Jgg|*U{sUhEi~BJ@g`b;B1V(q1B7>W$McGKOh
zqRZB)95jiyDPt2!o752=NgdNBb%dML@r+5lO%)p{JOMgMw^GM+D|Lj|t&?=!I;QK^
z(UEkCq>2U|ma!c?13LLUNsjIKNScwv_Yxlhd{mw@?ypKRkOB0MF8|5Z6K*K{J&wPC
z^Oe(6hdHZa8?_!V7zD4*0cB%LmjxVfz=1;iTKX;~
z{UF?=j)4H6f
uKqqOFI>LLq<9z{eVGuYj#;*qe76jk=uPZm!Xj`fP0000)y^+loZNpovmuB$={eBJVG^j4bxL!TFC2!9}!8eq4nMlxk?m!eS};mMyZud{)0Jh
zrHle4QAN3|;3f7pS-}Pn0zf2mS*7#-&SuAWCK8g_g2s|1QP9->su~Ntqe4MxG3>43ozn=kjlyi6IdH#lH(VAiwTZ1SyV2VR1~
z87n`Fes;A#epfr?0Fwv&UNrwk&F>f7abG3p0G|gc`_Y0Nfb*bB1)a}_w3Etot
zEyw{Z4^-;Vf*gSIpi3p4&w-5NIgkn7;2FhpAY*M+CSIr^Cm47RWICS%8OL)V6THDQ
zx{w2S9;nD+q0k)24BX(ESjYh~4`#?&V&VqR=!G1>^57dZf-S-MO^oya0000f=N^W
literal 0
HcmV?d00001
diff --git a/ivatar/static/img/mm/148.png b/ivatar/static/img/mm/148.png
new file mode 100644
index 0000000000000000000000000000000000000000..7c6c3bc6242ba60a79dbcdeb260b79fd4d91bd96
GIT binary patch
literal 680
zcmV;Z0$2TsP)*3+y;eTO`u|7vkM!37|H*)uggvHHpSwS9?QZ)W3
zD#&91lG5!jc+!%1S;Or`d>l)+>}7N&^C^1^9azJVy@{e-ll_2RRnzT9_yoQ>@GBg$
zAEPE!%k2WbT12^B!ujvcDgkH$RHf`P%Jz`+VGk?d3piz4(BzG(L~E7v#qPEZ=j))N
zY%_|tYRNXD#eaI0=vqB~{bXCw4ozvBNj_4QXo(abs$tt1e55MLN2(H!sAHnsw&Rbe
zW1?i+(MO7UGWAc3dK$e!6tGLUm8d1#jMfdd!_>in-=vQloRF!z1b+R-ZSJQk!LMFr
ziEqwI7;jX?`9xLH_wgq9k8|FAGn=L;KT>)Jny+jp8`&Oz!3|dtJDBePGmjFiy;2ig}$2RoF_3j|*W6^#oiXS1Gmn7m*VX;s*9;`KTJYvC9CpDndd9s&*k
O0000