09:39 < mdk> Il faudrait envoyer un mail à afpy-membres pour annocer qu'on cherche des locaux pour 2020, 2021, et qu'on cherche des volontaires sur strasbourg, que pensez-vous de : https://annuel.framapad.org/p/afpy-appel-pycon ?
09:43 < entwanne> Ça semble bien, manque peut-être juste une adresse pour savoir qui contacter
09:50 < mdk> ils peuvent répondre sur la ml membre simplement ?
09:50 < mdk> vu que ca sera envoyé la ml membres ?
09:54 < entwanne> Je pense que ça gagnerait à être explicité
10:21 < mdk> vendu !
10:22 < entwanne> hé oh, toi-même !
10:23 < mdk> comme ça ?
10:23 < entwanne> ouais c'est bien je trouve
11:56 < debnet> @mdk J'ai fait deux trois corrections mais ça me semble pas mal. ;)
12:36 < tshirtman> vstinner: si je peux profiter de ta présence dans le coin, j'essaye de trouver pourquoi notre test suite mange de la ram jusqu'a faire exploser la CI, et après avoir testé divers options, je suis sur tracemalloc/tracemallocqt maintenant, mais on est d'accord que ça trace toutes les allocations, sans indications si elles ont été correctement relachés après (et donc dispo pour les
12:36 < tshirtman> prochaines allocations de python, sans forcément redemander plus au système) ça mesure le flot, pas les fuites?
12:37 < vstinner> tshirtman: tracemalloc ne trace que ce qui passe par PyMem_RawMalloc, PyMem_Malloc, PyObject_Malloc. pas malloc ou autre
12:37 < vstinner> tshirtman: si tu regardes un diff entre deux snapshots, tracemalloc devrait te dire à quelles lignes Python regarder
12:38 < tshirtman> oui désolé du raccourcis, on utilise pas (ou pas directement) de module cpython, c'est vraiment ce que qui passe par le fonctionnement normal de la vm python qui m'intéresse, donc ça devrait suffire
12:39 < tshirtman> oui, j'ai vu les lignes et je regarde si je peux m'assurer que les resources qui sont alloués à ces lignes sont bien collectés plus tard, mais la quantité alloué n'est pas forcément indicatrice d'un problème, non? seulement si les variables utilisant cette mémoires ne sont pas collectées plus tard?
12:41 < tshirtman> (j'ai passé pas mal de temps avec objgraph a regarder ce qui pouvait fuiter, mais ça ne m'indique pas ce qui a créé ces objets, tracemalloc est sans doute un bon complément, mais il ne m'indique pas les mêmes choses donc je m'assure d'avoir compris ce que fait l'outil)
12:44 < vstinner> tshirtman: python est parfois magique. de la mémoire censés être rendue ne l'est pas pour des raisons complexes. le plus courant étant un cycle de référence
12:45 < vstinner> tshirtman: tracemalloc te dit d'où ta mémoire a été allouée. tu peux faire des diff. tracemalloc n'a pas de conscience ou d'opinion sur le conflit israélo-palestien
12:47 < vstinner> tshirtman: si tu as un leak de 1 Go et que tracemalloce te dit que la ligne 20 alloue 1 Go, bah tu sais d'où vient l'allocation :)
12:47 < vstinner> après en pratique, c'est toujours carrément plus subtile :)
12:57 < mathieui> (ça me rappelle du code sur lequel je suis tombé au boulot cette semaine, avant on avait un paquet python2 bidouillé à installer en cas de debug qui incluait tracemalloc, donc l’existence du module suffisait à activer du debug et logging supplémentaire avec un comportement particulier, mais en python 3 étrangement ça se passe moins bien é_è)
13:00 < vstinner> mathieui: j'ai implémenté tracemalloc pour python2, mais ça demande de recompiler Python. ce n'est pas lié au mode debug
13:00 < vstinner> mathieui: ou alors tu parles d'un autre outil que tracemalloc, peut être un outil qui utilis sys.getobjects() qui n'est dispo qu'en mode debug ?
13:00 < mathieui> vstinner, non, je parle du debug de notre application
13:00 < mathieui> qui conditionnait des choses à l’import réussi de tracemalloc
13:01 < vstinner> ok
14:16 < tshirtman> vstinner: merci, c'est malheureusement un peu plus complexe, chacun des tests semble fuiter un peu de mémoire, du coup, au bout d'un moment on arrive dans les 4G, c'est un peu triste pour le worker dans la CI, mais je pense que tu répond a ma question, c'est toutes les allocations, qu'elles aient été collectées ou pas, du coup ce n'est qu'une partie de ce dont j'ai besoin, la chasse continue.
14:16 < tshirtman> merci pour l'outil, et pour les réponses :)
14:17 < tshirtman> (et je suis en python2, et j'ai recompilé python pour avoir tracemalloc, c'est pas si terrible, mais ça rend moins service que j'espérait, par ce que je suis de nature optimise, j'imagine :D)
14:17 < tshirtman> )
14:18 < tshirtman> (et oui, c'est scandaleux d'être en python2 encore, ça fait partie des chantier prévus, mais il y'en a tant, on tentera la migration au prochain quarter, mais ça va être sport, et ce sera sans moi, je serais partis ailleurs, bonne chance à eux :D)
14:22 < vstinner> tshirtman: bah si dans le test 2, tu vois encore des allocations du test 1 : y'a des soucis
14:22 < tshirtman> ah, elles devraient donc avoir disparues, cool, c'est bon a savoir
14:22 < vstinner> tshirtman: j'ai déjà corrigé pas mal de bugs dans unittest qui empêchaient de libérer la mémoire entre deux tests :)
14:23 < vstinner> tshirtman: bah après ça dépend comment est conçu ton test. parfois tu as envie de garder un environnement actif entre deux tests, parce que ça prend du temps de créer cet environnement
14:23 < tshirtman> le truc c'est que pytest conserve les classes tests tout au long de la test suite, donc il faut s'assurer de retirer toute ressource allouée dans le tearDown, sinon elles durent toute la durée de vie de pytest
14:24 < tshirtman> oui, mais il y'a des trucs qu'on recrée pour chaque test, et qui semble persister, donc si tracemalloc m'affiche des +1M sur une ligne en fin de test, c'est que ce qu'a créé cette ligne, directement ou indirectement, n'a pas été libéré depuis.
14:24 < tshirtman> semblent*
14:25 < vstinner> "pytest conserve les classes tests tout au long de la test suite" c'est peut être une partie de ton problème
14:26 < vstinner> tshirtman: tracemalloc te dit ce que se passe. à toi de te creuser la tête de savoir si c'est normal ou non
14:27 < vstinner> tshirtman: c'est sûr que si chaque test alloue 100 Mo et que tout n'est libéré qu'à la fin, bon, après 40 tests, la machine commence à consommer pas mal :-D
14:27 < tshirtman> 1/ oui apparement c'est normal, c'est pour afficher les reports à la fin, d'autres gens rapportent une fuite mémoire lié à ça, mais bien plus faible que la mienne (ça fit en 2G pour 3500+ tests, alors que j'éclate 4G avec quelques centaines).
14:28 < tshirtman> 2/ oui, je veux juste être sur de bien comprendre ce que tracemalloc me dit, d'ou ma question, est-ce qu'il me dit si de la mémoire a été allouée, ou est-ce qu'il me dit que de la mémoire n'a pas été libérée? :D
14:29 < vstinner> tshirtman: bah... peut être que tu devrais te débrouiller pour qu'un "test case" conserve juste le résultat "le test passe" / "le test échoue", sans garder plein d'objets vivant en RAM
14:29 < vstinner> tshirtman: j'comprends pas (2)
14:29 < tshirtman> j'ai installé pytest-leaks et tous mes tests indique "leaks" :D
14:29 < vstinner> tshirtman: tracemalloc me montre la mémoire actuellement allouée
14:29 < tshirtman> ah super, c'est ma question
14:29 < tshirtman> a = list() # allocation
14:29 < tshirtman> del(a) # libération
14:29 < vstinner> hahahahahahahha
14:29 < vstinner> pardon
14:30 < vstinner> "del a" != libérer la mémoire
14:30 < tshirtman> (en supposant que personne d'autre ne référence)
14:30 < vstinner> mais c'est mignon de penser que c'est aussi simple
14:30 < tshirtman> ah oui, et en appelant gc.collect()
14:30 < vstinner> a=[]; a=[a]; del a # surprise
14:30 < tshirtman> oui, la il y'a une référence
14:30 < tshirtman> je sais ça
14:30 < tshirtman> je débute pas en python
14:31 < tshirtman> je suis pas aussi calé que toi, pas de soucis, mais je connais les bases quand même
14:31 < tshirtman> ma question était surtout, dans le cas idéal que j'ai décrit, que dit tracemalloc, et dans le cas que tu indique, est-ce différent
14:31 < tshirtman> ?
14:31 < nahuel> vstinner, c'est quoi la surprise ?
14:31 < vstinner> tshirtman: ce que j'essaye de dire : c'est que tu penses peut être que la mémoire est libéré, mais seul tracemalloc sait :)
14:32 < vstinner> nahuel: c'est pas forcément libéré immédiatement
14:32 < nahuel> ah, I see
14:33 < vstinner> nahuel: http://paste.alacon.org/46181 exemple avec tracemalloc
14:33 < tshirtman> vstinner: ok, je crois que ça répond a ma question, merci :)
14:33 < nahuel> ahah
14:33 < nahuel> vstinner, sympatoche
14:34 < nahuel> ça ne libère pas immédiatement, ou ça ne libère jamais ?
14:34 < vstinner> nahuel: quand t'as un cycle de référence, parfois il faut provoquer une collection du ramasse miettes, appel à gc.collect()
14:34 < tshirtman> et si t'as un __del__ quelque part, python peut dire osef, il me semble :)
14:35 < tshirtman> (dans le cas des cycles)
14:35 < vstinner> nahuel: si tu n'appelles pas gc.collect(), l'objet sera détruit "plus tard", mais en gros, c'est très compliqué de prédire quand
14:35 < vstinner> tshirtman: depuis Python 3.4, __del__ n'est pas un gros problème : https://www.python.org/dev/peps/pep-0442/
14:35 < nahuel> vstinner, là, même avec le gc.collect tu reviens pas à l'état d'origine
14:36 < vstinner> nahuel: magie ! :-D
14:36 < nahuel> vos idées ont du génie ?
14:36 < vstinner> nahuel: c'est compliqué de suivre la mémoire
14:36 < vstinner> nahuel: hahaha. c'est bon le maggie !
14:37 < vstinner> nahuel: à la fin, y'a _moins_ de mémoire. ça va !
14:37 < nahuel> ^^
14:40 < tshirtman> j'imagine que l'import des modules au startup a créé des choses collectables, et le gc n'avait pas encore tourné
14:41 < vstinner> tshirtman: gc.collect() fait plusieurs trucs pour libérer la mémoire. ça libère aussi des "free lists"
2020 01
03 06 07 08 10 11 13 14 15 16 17 19 20 21
2019 12
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 27 28 29 30 31
2019 11
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2019 10
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2019 09
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2019 08
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2019 07
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2019 06
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2019 05
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2019 04
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2019 03
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2019 02
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
2019 01
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2018 12
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2018 11
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2018 10
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2018 09
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2018 08
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2018 07
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2018 06
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2018 05
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2018 04
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2018 03
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2018 02
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
2018 01
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2017 12
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2017 11
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2017 10
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2017 09
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2017 08
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2017 07
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2017 06
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2017 05
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2017 04
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2017 03
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2017 02
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
2017 01
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2016 12
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2016 11
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2016 10
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2016 09
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2016 08
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2016 07
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2016 06
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2016 05
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2016 04
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2016 03
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2016 02
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
2016 01
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2015 12
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2015 11
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2015 10
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2015 09
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2015 08
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2015 07
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2015 06
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2015 05
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2015 04
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2015 03
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2015 02
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
2015 01
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2014 12
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2014 11
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2014 10
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2014 09
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2014 08
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2014 07
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2014 06
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2014 05
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2014 04
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2014 03
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2014 02
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
2014 01
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2013 12
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2013 11
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2013 10
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2013 09
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2013 08
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2013 07
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2013 06
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2013 05
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2013 04
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2013 03
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2013 02
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
2013 01
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2012 12
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2012 11
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2012 10
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2012 09
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2012 08
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2012 07
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2012 06
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2012 05
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2012 04
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2012 03
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2012 02
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
2012 01
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2011 12
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2011 11
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2011 10
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2011 09
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2011 08
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2011 07
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2011 06
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2011 05
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2011 04
01 04 07 08 11 14 15 19 20 21 22 23 24 25 26 27 28 29 30
2011 03
01 02 03 04 06 07 08 09 10 11 12 14 15 16 17 21 22 23 25 28 29 31
2011 02
02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 21 22 23 24 25
2011 01
03 04 05 06 10 11 13 15 16 18 19 20 21 22 23 24 25 26 27 28 31
2010 12
01 02 03 07 08 09 10 14 15 16 17 21 22 23 28 29 30
2010 11
01 02 03 04 05 06 07 08 09 10 13 14 16 17 18 19 22 23 24 25 26 28 29
2010 10
01 03 04 05 06 07 08 09 10 11 12 13 14 15 18 19 20 22 24 25 27 28 29 30 31
2010 09
01 02 03 04 06 07 08 09 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2010 08
02 03 04 05 06 08 09 10 11 12 13 15 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2010 07
01 02 03 05 07 08 13 14 15 19 20 21 22 23 25 26 27 28 29 30 31
2010 06
01 02 03 04 08 09 10 11 13 15 18 19 20 21 22 23 24 25 26 27 28 29 30
2010 05
03 06 09 10 11 12 14 15 17 18 19 21 22 25 26 27 28 30
2010 04
01 02 03 04 05 06 08 09 10 11 12 13 15 16 19 20 21 22 24 26 27 28 29 30
2010 03
02 03 04 05 06 07 09 10 11 12 14 15 19 22 23 24 25 26 27 28 29 30 31
2010 02
01 02 03 04 05 08 09 11 12 14 15 18 19 21 23 25 26
2010 01
03 04 05 06 07 11 12 14 15 18 21 22 23 24 25 26 27 28 29 30 31
2009 12
01 02 03 04 07 08 09 10 11 14 15 16 17 18 19 20 23 25 28 30 31
2009 11
01 02 03 04 05 07 08 09 11 12 14 15 16 17 18 19 20 21 22 23 24 25 26 27 30
2009 10
01 02 03 04 05 06 07 08 09 11 13 14 15 16 18 19 20 21 22 23 24 25 26 27 29 30 31
2009 09
01 02 03 04 05 06 07 08 09 10 11 12 13 15 16 17 18 21 22 23 24 25 27 28 30
2009 08
01 02 03 04 05 06 07 09 10 11 12 13 14 17 18 19 20 21 23 24 25 26 27 28 29 30 31
2009 07
02 03 04 05 06 07 08 09 10 13 15 16 17 18 20 21 22 23 24 26 27 28 29 30 31
2009 06
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 22 23 24 25 26 29 30
2009 05
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2009 04
01 02 03 04 06 07 08 09 10 12 13 14 15 16 17 18 20 21 22 23 24 25 26 27 28 29 30
2009 03
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31
2009 02
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 18 19 20 21 22 23 24 25 26 27 28
2009 01
04 05 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2008 12
01 03 04 05 06 07 08 09 10 11 12 14 15 16 17 18 19 20 21 22 23 24 28 29 30 31
2008 11
01 02 03 04 05 06 07 08 09 10 11 12 13 14 16 17 18 19 20 21 23 24 25 26 27 28 29
2008 10
01 02 03 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2008 09
01 02 03 04 05 06 07 08 09 10 11 12 13 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2008 08
01 02 03 04 05 06 07 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 25 26 27 28 29 30
2008 07
01 02 03 04 05 07 08 09 10 11 12 13 15 16 17 18 20 21 22 23 24 25 26 27 28 29 30 31
2008 06
01 02 03 04 06 07 08 09 10 11 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 30
2008 05
01 02 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2008 04
01 02 03 07 09 10 14 15 16 23 24 25 26 28 29 30
2008 03
02 03 04 05 06 07 10 11 12 13 14 17 18 19 20 21 25 28
2008 02
04 05 06 07 08 11 12 13 14 16 17 18 21 22 23 24 25 26 27 28 29
2008 01
02 07 08 11 12 14 18 22 24 28 29 30 31
2007 12
03 05 06 13 14 15 16 17 18 20 21
2007 11
03 04 05 08 09 10 11 14 15 17 19 23 26 27 28 29 30
2007 10
01 02 03 04 05 06 09 10 11 12 13 14 15 16 17 18 22 23 24 25 27 29
2007 09
01 03 04 05 06 07 08 09 10 11 12 13 15 16 18 19 20 21 26 27 28 29 30
2007 08
02 06 14 16 17 19 22 23 24 27 28 29 30 31
2007 07
02 03 04 05 06 09 10 11 12 13 15 18 19 20 25 27
2007 06
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 18 19 20 21 22 23 24 25 26 27 28 29 30
2007 05
02 03 07 09 10 12 14 15 18 19 20 22 23 24 25 29 30 31
2007 04
01 02 03 04 05 06 07 08 10 11 12 16 18 19 20 21 23 24 25 26
2007 03
01 02 06 07 08 09 10 12 13 14 16 19 20 21 22 23 24 26 27 28 29 31
2007 02
26 27 28