08:09 < morgan`> hello
08:19 < gawel> matin soleil
08:24 < Ohan> hello morgan` et gawel
08:27 < gawel> salut mec
08:36 < morgan`> salut à vous deux :)
09:06 < kujiu> bonjour
09:16 < feth> Bonjour du matin !
09:16 < nightlybuild> :) salut
09:39 < benoitc> lu'
09:40 < benoitc> il y a moyen d'envoyer le courrier membre par fax ?
09:40 < benoitc> parce que ça fait 1 mois et qqs que je dois renvoyer et j'ai tjrs pas eu l'opportunité de metrte la main sur une imprimante :)
09:44 < gawel> ah ouais j'ai pas répondu
09:44 < gawel> sorry
09:44 < gawel> limite tu nous le file a pycon ?
09:45 < gawel> remarque ca solutionne rien
09:45 < benoitc> mmm il y aura une imprimante à pycon ?
09:45 < gawel> non :)
09:46 < benoitc> bon je vais voir si en allant sur prague je tomberais pas sur une boite à copie
09:46 < benoitc> pq dans mon bled ya pas
09:46 < benoitc> et je suis pas retourné sur paris depuis un bail :)
09:46 < gawel> je vais essayer de pécho un numéro de fax du taf
09:46 < benoitc> k
09:47 < gawel> maybe ccomb en a un sinon si tu le croise
09:47 < benoitc> ok
09:47 < benoitc> enfin sinon limite qqn me l'imprime au pycon et je le signe :)
09:47 < benoitc> (ptete plus simple)
09:48 < gawel> je doute qu'on ai un printer la bas
09:48 < benoitc> mmmk
09:55 < sbz> han j'aime bien mon __repr__ ultra generique : http://rafb.net/p/Dhot6S48.html
10:33 < feth> sbz: pas verbeux du tout. et en cas de référence circulaire ça marche comment ?
10:49 < AlexCONRAD> sbz: j'ai testé ton code, ça marche pas pour moi
11:27 < haypo> salut
11:27 < haypo> j'ai migré mon trac sur une machine de test hier
11:27 < haypo> j'ai mesuré les perfs, c'était autour de 8 requêtes/seconde, vraiment très lent !
11:27 < haypo> j'ai donc passé en wsgi puis remplacé sqlite par postgresql
11:27 < haypo> bah au mieux j'ai obtenu 30.9 requêtes/seconde
11:28 < haypo> alors je me demande d'où sortent les chiffres « 3000 requêtes/seconde » de l'article sur WSGI dans le Linux Mag
11:28 < haypo> le test était sur une page vierge ?
11:28 < haypo> et sinon, quelqu'un aurait des idées pour accélérer Trac ? j'ai beaucoup cherché mais je n'ai rien trouvé
11:30 < feth> une machine plus puissante
11:30 < misc> quel version de trac ?
11:31 < haypo> misc: Trac 0.11
11:31 < haypo> feth: c'est un Core Quad Core @ 2.5 GHz et 4 Go de mémoire
11:32 < haypo> je trouve que c'est déjà un ordinateur rapide
11:32 < feth> en effet
11:32 < haypo> tiens, j'ai benché dokuwiki (PHP5) pour le troll : ~110 requêtes/seconde
11:32 < haypo> (je trouve aussi que c'est peu, mais quand même 3 à 4 fois mieux que Python)
11:33 < misc> bah, c'est pas pour rien que php est le choix d'excellence du dev web
11:33 < haypo> j'ai noté plein d'infos ici > http://pastealacon.com/2626
11:34 < haypo> à mon avis, Trac ne met rien en cache
11:34 < haypo> je sais pas si c'est un problème de configuration ou un problème de conception
11:34 < feth> haypo: ptete faire un peu préchauffer la VM avant le bench
11:35 < feth> (ils le font en java, je vous jure)
11:35 < haypo> feth: euh là c'était tellement chaud qu'on aurait pu y faire cuire un oeuf
11:35 < haypo> (j'ai répété les tests de nombreuses fois)
11:36 < haypo> en tout cas, c'est balèze : arriver à ne générer qu'une page HTML par seconde, y'a que Python pour arriver à ce niveau d'incompétence :)
11:36 < Ohan> haypo, je suis sur qu'on peut faire pire en php, avec qques efforts
11:37 < haypo> Ohan: euh, t'as pas lu ce que j'ai écrit ?
11:37 < haypo> PHP est beaucoup plus performant que Python niveau web
11:37 < misc> ç'est la qu'on voit que python, c'est bin, tu arives à faire pire que php sans probléme
11:38 < Ohan> haypo, toi t'as pas lu ce que j'ai écrit
11:39 < feth> j'utilise pysvn et j'ai des perfs vraiment déplorables d'ailleurs. y aurait pas un lien ?
11:39 < Ohan> haypo, je disais "je suis sur qu'on peut faire pire en php avec qques efforts"
11:39 < Ohan> une grosse partie de la "perf d'un site web", c'est l'opti des requetes sql, du cache etc..
11:39 < touff> oui Ohan y'a magento
11:39 < touff> 3 requetes /min ;)
11:40 < touff> et c'est du php5
11:41 < haypo> Ohan: oups, j'ai lu à l'envers, désolé :-p
11:41 < haypo> mais j'ai testé un vrai logiciel, dokuwiki
11:41 < Ohan> bah toi tu dis que c'est un vrai logiciel
11:42 < Ohan> bon, ok, y'a deux ans quand je l'avais un peu tweaké, ca avait effectivement l'air bien branlé
11:42 < Ohan> mais déjà, de mémoire, y'a rien en DB
11:42 < Ohan> je me trompe?
11:42 < Ohan> après, c'est peut-être aussi le cas de trac, je l'ai jamais utilisé
11:42 < touff> tu te trompe pas y'a pas de de DB dans doku
11:42 < touff> donc c'est pas vraiment tres comparable
11:42 < touff> c'est comme comparer plone à PluXML
11:43 < Ohan> donc déjà, je vois pas comment comparer une appli qui utilise des fichiers plats et une autre qui utilise une DB
11:46 < haypo> Ohan: c'est de fichiers plats dokuwiki
11:46 < haypo> Ohan: même avec des fichiers plats PHP est plus rapide que Python qui utilise PostgreSQL ...
11:46 < Ohan> euh
11:46 < Ohan> ca me parait normal :D
11:47 < haypo> Ohan: ah bon ?
11:47 < Ohan> sur des petits fichiers plats
11:47 < Ohan> oui
11:47 < misc> bah si c'est comparable au niveau du service que tu offres, si y a un des 2 projets qui a fait des choix techniques qui posent probléme, c'est pas une raison pour pas comparer
11:47 < haypo> misc: dans les deux cas, j'ai un site web, donc c'est comparable
11:47 < Ohan> a mon avis (basé sur aucuns chiffres, juste une intuition), une BDD postgres/mysql/autre est plus rapide a partir du moment ou t'as beaucoup de données et d'enregistrements
11:47 < Ohan> sur des petits fichiers, pas trop nombreux, les fichiers plats ont moins d'overhead
11:47 < misc> haypo: c'est pas du tout ce que je vient de dire, par hasard ?
11:48 < haypo> misc: oh je vais me recoucher moi, je lis de travers
11:48 < Ohan> haypo, moi ce que je veux te dire, c'est que pour comparer "web en python" et "web en php", il faudrait avoir un dokuwiki implémenté en python
11:48 < Ohan> si tu veux comparer l'efficacité des langages
11:48 < haypo> bah Trac a aussi un wiki
11:49 < Ohan> si tu veux comparer l'efficacité des outils, alors la on s'en fiche qu'ils soient en python ou php ou autre
11:49 < haypo> hey, je comptais pas publier LE benchmark qui prouverait par A+B que Python ou PHP est plus rapide
11:49 < Ohan> j'ai bien compris
11:49 < haypo> moi je cherche juste à savoir comment accélérer Trac
11:49 < Ohan> peut pas t'aider désolé
11:49 < haypo> que je trouve désespérément lent
11:49 < haypo> pas grave, on dirait que personne ne cherche à accélérer Trac :-(
11:50 < misc> tu peut demander sur #trac ?
11:50 < haypo> j'ai déjà demandé
11:51 < haypo> et j'ai pas eu de réponse
11:51 < haypo> bon, c'était à 1h du mat aussi
11:53 < Ohan> fail
11:56 < sbz> AlexCONRAD: hum, ca devrait si t'as un constructeur __init__, t'as le code de l'Objet sur lequel tu as teste ?
11:58 < AlexCONRAD> sbz: j'espérais que "ultra generique" voulais dire "s'adapte à toutes les classes"
11:58 < sbz> feth: tu penses trop Data::Dumper Perl pour les references circulaires, si ton champ est une instance d'un autre Object, bein y'a jutement l'appel a repr() pour dumper aussi l'objet
11:59 < sbz> AlexCONRAD: seulement si y'a un __init__ !
11:59 < AlexCONRAD> j'avais pas de __init__ dans ma classe 'Foo' :)
12:00 < gawel> les __init__ ça marche pas c'est de la merde
12:00 < sbz> AlexCONRAD: c'est ecrit dans le commentaire du paste :)
12:00 < gawel> et repr ça doit renvoyer une chaine entre <> par convention
12:01 < AlexCONRAD> j'allais faire la même remarque gawel
12:01 < gawel> héhé
12:01 < sbz> c'est peantus ca :)
12:01 < AlexCONRAD> sbz: ok, je viens de lire le commentaire qui est en tout petit
12:01 [#] sbz note
12:02 < sbz> hehe
12:02 < AlexCONRAD> sbz: tu veux pas paster une classe complète (assez courte) et afficher le résultat du repr histoire de voir à quoi ça ressemble (j'ai la flême)
12:05 < sbz> en gros pour la classe Bla: def __init__(self, truc=1, muche='2'): ca affichera <Bla(1, 2)>
12:05 < sbz> bon jvais mange a+
12:06 < haypo> vous parlez de méta classe là ?
12:07 < AlexCONRAD> haypo: no
12:07 < AlexCONRAD> ça parle __repr__
12:47 < touff> gawel, ?
12:47 < touff> je cherche un script python qui wget -r unedomaine.com/* -o /dev/null
12:47 < touff> t'as pas ca sous la main ?
12:55 < haypo> télécharger dans /dev/null n'est pas très utile :)
12:55 < haypo> touff: pourquoi pas utiliser wget ? :-)
12:56 < touff> parce que je veux lancer tout en même temps :)
12:56 < touff> sur plusiers machines
12:56 < haypo> tu veux pourir la bande pasasnte d'un enemi ?
12:56 < touff> bon j'ai trouvé une truc en php à base de curl mais ca me gonfle d'avoir a installer php sur certaines machines :(
12:56 < haypo> ou tester ton site web ?
12:57 < touff> je veux tester le site web de l'ifpi :D
12:57 < taziden> ahahah touff :)
12:57 < touff> :D
12:57 < haypo> touff: afpy ou ifpi ?
12:57 < taziden> ifpi ;p
12:57 < touff> pour ceux qui ont pas suivit : http://bluetouff.com/2009/04/21/operation-baylout-les-hacktivistes-rentrent-dans-la-danse/
12:57 < touff> y'a un emanifestation pacifiste qui s'organise
12:57 < touff> c'est pour ce soir minuit
12:58 < haypo> ah donc c'est bien pourir la bande passante de ton enemi
12:59 < haypo> touff: utilise "ab" (apache bench)
12:59 < touff> ah ?
12:59 < touff> je connais pas
12:59 < haypo> ab -c 100 -n 1000000000 http://www.ifpi.org/
12:59 < haypo> ça va lancer 1000000000 requêtes à la suite en 100 en même temps
12:59 < touff> oh c'est mimi comme tout
13:00 < touff> moins gruik que hping on dirait
13:00 < haypo> ça fait de vrais requêtes HTTP
13:00 < touff> je sais que gawel avait fait un trruc de furieux qui spoofait aleatoirement une proxy list
13:09 < touff> ehehe c'est vraiment marrant ab
13:10 < misc> "ab http://www.google.com/"
13:17 < taziden> je vais tester sur mon serveur tiens
13:51 < taziden> Chez moi ab segfault systématiquement
13:51 < haypo> taziden: ab segfault ? oh mince
13:51 < misc> tant qu'il produit pas
13:52 < misc> car bon, ab production, c'est pire
13:52 < taziden> Je vais regarder du côté du bts debian
13:52 < taziden> misc: :)
13:52 < haypo> misc: _o/ *BAF
13:52 < haypo> taziden: j'ai la version 2.2.9 et ça marche bien
13:53 < taziden> 2.3 pour ma part
13:53 < haypo> taziden ! frimeur
13:53 < haypo> les versions impaires sont pas des versions de dev. par hasard ?
13:54 < taziden> j'y peux rien si j'ai une distro bleeding edge == debian :D
13:54 < haypo> parce que j'ai jamais entendu parler d'Apache 2.1 en prod
13:54 < touff> taziden, etch powah :)
13:54 < taziden> touff: je vais rajouter le dépot lenny, et voir si en stable, c'est mieux, je suis en unstable/experimental là :/
13:55 < touff> :\
13:55 < touff> pas ideal c'est clair tu dois avoir un bidule moisit
13:55 < misc> bah utilise gdb et patch
13:55 < misc> d'ailleurs, on va tester cherokee à laplace de apache
13:55 < touff> attention info importante
13:55 < touff> [13:47] <roffle> do it at the lwest level possible. figure out what bandwidth you have, and hit the lowest level possible that you're able to overwhelm
13:55 < touff> [13:47] <spaz926> why lowest?
13:55 < touff> [13:48] <roffle> because it forces the parent company major headaches, having to reroute one single IP or server cluster, for one company
13:55 < touff> [13:48] <roffle> the point is to cause maximum damage
13:55 < haypo> apache2-utils : 2.2.3 dans Etch, 2.2.9 dan Lenny, 2.2.11 dans Squeeze, 2.2.9 ou 2.2.11 dans Sid
13:55 < touff> [13:48] <roffle> one ip, pfft, easy reroute
13:55 < haypo> taziden: c'est sûr que c'est 2.*3* ?
13:56 < taziden> misc: j'ai pas les compétences pour utiliser gdb :)
13:56 < touff> 2.2.9 dan Lenny -> lenny stable nickel
13:56 < touff> sinon etch aussi
13:56 < taziden> haypo: yep, la version du paquet != version de l'appli ab
13:56 < haypo> ah, j'ai pas réussi à obtenir la version d'ab
13:56 < misc> touff: oui ?
13:56 < haypo> j'ai juste regardé la version du paquet
13:56 < haypo> comment t'as fait pour lire la version d'ab ?
13:56 < taziden> haypo: au lancement, il me dit qu'il est à la version 2.3, et après, il meurt dans un joli segfault
13:57 < haypo> ah ok, "This is ApacheBench, Version 2.3 <$Revision: 655654 $>"
13:57 < taziden> yep
13:57 < taziden> that's it
13:57 < haypo> p'tain, le numéro de commit !
13:57 < taziden> Ouais, j'ai halluciné aussi là dessus
13:57 < haypo> au boulot on est à peine à ~7300
13:58 < misc> normal, vous passez votre temps sur irc à optimiser trac :)
13:58 < touff> apache est l'iun des projets le splus actifs
13:58 < touff> heureusement :)
13:59 < touff> par contre apachebench effectivement c'est tres impressionnant
13:59 < haypo> misc: les questions sur Trac c'était pas pour le boulot
13:59 < haypo> Apache c'est pas juste le serveur HTTP
13:59 < haypo> c'est plein de trucs Java !
13:59 < haypo> http://www.apache.org/ : voir la liste "Apache projects"
13:59 [#] misc note qu'il est à la version 368000 sur certains projets
14:00 < haypo> j'arrive pas à la compter... disons 70
14:00 < haypo> ah oui, SpamAssassin par exemple est un projet Apache
14:01 < taziden> ça segfault aussi avec la version lenny oO
14:05 < haypo> tu utilises quelle commande pour lancer ab ?
14:05 < taziden> sudo ab ... suivi des options que tu as donné tout à l'heure en remplaçant l'url de l'ifpi par celle de mon serveur
14:06 < haypo> sudo ab -c 100 -n 1000000000 http://localhost/ ?
14:06 < haypo> utilise -c 2 plutôt
14:06 < haypo> et utiliser sudo n'est pas du tout une bonne idée
14:06 < taziden> Ok
14:07 < taziden> De toutes les manières il devrait y avoir quelque chose d'autre qu'un segfault au cas où les valeurs passées sont ubuesques
14:17 < taziden> bon, résultat, je trouve que mon serveur s'en sort honorablement
14:18 < taziden> mais j'ai pourri mon log ...
15:02 < No`> salut l'afpy
15:31 < AlexCONRAD> lo
19:02 < crashdump> bonsoir le chan !
19:04 < touff> yiop crashdump
19:04 < crashdump> pas grand monde en fait :)
19:04 < touff> gawel, si t'es dans le coin quelqu'un
19:04 < touff> crashdump, a fait un joli bidule et il voulait un avis exterieur sur la gestion des threads
19:05 < touff> ou ccomb aussi tien :)
19:05 < touff> envois le script crashdump :)
19:05 < crashdump> c'est par là: http://www.crashdump.fr/myFiles/autres/fetchOverProxys.py
19:05 < touff> gawel, ca devrait te rappeler quelque chose :D
19:05 < crashdump> je tatonne avec la doc pour les threads .. j'ai jamais pratiqué avant :)
19:08 < touff> bon a cette heure ci soit ils sont à l'apero soit dans le metro crashdump ;) soyons patients
19:08 < crashdump> oki oki
19:08 < crashdump> ça me laisse le temps de lui faire une gueule plus propre
19:08 < crashdump> et surtout ne pas me faire lincher par des roxxors :)
19:45 < gawel> utilise multiprocess
20:08 < touff> :) mon gawie
20:08 < crashdump> :)
20:08 < crashdump> merci, je vais lire la doc
20:08 < touff> multiprocess est plus performant gawel ?
20:11 < crashdump> from processing import process as worker ?
20:22 < crashdump> python 2.6 obligatoire ?
20:34 < gawel> non y a un backport pour 2.5 / 2.4
20:35 < crashdump> ah, comment est ce que je dois procéder ?
20:35 < crashdump> plz :)
20:35 < gawel> a prioris c'est plus performant, ca ouvre un autre process donc pas de GIL
20:36 < gawel> easy_install multiprocessing
20:36 < crashdump> nickel, ça fonctionne ;)
20:36 < crashdump> merci.
20:37 < gawel> par contre le process doit être autonome
20:37 < gawel> et tu peux lui passer en paramètre que des truc pickable eg: des types de base
22:03 < crashdump> gawel ? je suis etoné .. je n'arrive pas a faire tourner mes process en paralelle.. il les enchaines..
22:03 < crashdump> j'ai surement du manquer quelque chose, mais je vois pas trop quoi
22:04 < gawel> je sais pas ce que t'as fais, je saurais pas dire
22:04 < crashdump> http://www.crashdump.fr/myFiles/autres/fetchOverProxys.py
22:04 < crashdump> si tu pouvais jeter un peil vite fait pour m'orienter ça serais sympa ;)
22:05 < gawel> normal, tu lui balance qu'un proxy
22:06 < gawel> apply_async(frtch, proxylist)
22:06 < crashdump> il ya donc quelque chose que j'ai pas saisi ^^
22:06 < crashdump> comment je peux lui en specifier plusieurs ?
22:07 < gawel> comme je viens de l'écrire
22:07 < crashdump> ahhh, merci.. j'y retourne.
22:07 < gawel> il va prendre tout les prox un par un et les balancer a fetch
22:07 < crashdump> merci.
22:09 < feth> ah non, j'ai rien demandé
22:11 [#] gawel balance des proxies dans feth
22:13 < crashdump> gawel, j'ai du mal a saisir.. si je lui balance toute la a un thread, il n'y aura pas un thread par proxy ?
22:13 < crashdump> toute la liste*
22:13 < gawel> c'est pas des thread
22:14 < gawel> et ca fonctionne comme map
22:14 < crashdump> càd ?
22:14 < gawel> >>> map(lambda x:x*x, [0,1,2])
22:14 < gawel> [0, 1, 4]
22:16 < gawel> lambda x:x*x == def mul(x): return x*x
22:17 < crashdump> ok, et ensuite comment je peux forker un peu tout ça pour que ça envois la sauce un peu plus ?
22:18 < gawel> c'est ce que fais apply_async
22:19 < gawel> il va lancer PROCESSES simultané
22:19 < crashdump> merci en tout cas pour ta patience.. j'apprend tout juste :)
22:19 < crashdump> mais avec le result = pool.apply_async(fetch, (proxylist,))
22:19 < gawel> pas forcément évident ce module en prime..
22:19 < crashdump> ;)
22:20 < gawel> bah t'aura le result quand tous les process seront terminé
22:20 < crashdump> du coup le print result.get(timeout=7000) fait planter lamentablement le script
22:20 < gawel> ah
22:20 < crashdump> avec un AttributeError: 'list' object has no attribute 'rfind'
22:20 < gawel> ptete je me goure alors
22:20 < gawel> je matte
22:21 < crashdump> je regarde a droite et a gauche sur le net mais c'est pas encore super bien documenté pour un noob like me
22:21 < crashdump> merci ;)
22:23 < gawel> je sais plus ou je m'en suis servi
22:23 < gawel> la lose
22:23 < crashdump> :/
22:28 < gawel> ah mais mets pas proxylist dans un tuple
22:28 < crashdump> tuple ?
22:29 < gawel> pool.apply_async(fetch, (proxylist,))
22:29 < gawel> pool.apply_async(fetch, proxylist)
22:29 < crashdump> j'ai essayé.. il m'envois bouler.
22:29 < crashdump> aat' je te resors l'erreur
22:30 < crashdump> TypeError: fetch() takes exactly 1 argument (26353 given)
22:30 < crashdump> ouch :)
22:30 < gawel> ah
22:30 < gawel> essais avec map alors
22:30 < gawel> pool.map(fetch, proxylist)
22:34 < crashdump> je sais pas trop si ça marche.. j'ai pas de retour console !?
22:34 < gawel> si t'en a 26353 t'as le temps
22:34 < crashdump> ah il actualise pas en live ?
22:34 < gawel> non
22:35 < gawel> tu peux les faire 10 par 10
22:35 < crashdump> méthode ?
22:35 < gawel> je sais pas, y a 1000 moyen
22:36 < crashdump> ok, je vais voir ça. merci ;)
22:39 < gawel> >>> l = range(20)
22:39 < gawel> >>> l
22:39 < gawel> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
22:39 < gawel> >>> while l: print [l.pop() for i in range(len(l) > 10 and 10 or len(l))]
22:39 < gawel> ...
22:39 < gawel> [19, 18, 17, 16, 15, 14, 13, 12, 11, 10]
22:39 < gawel> [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
22:56 < crashdump> gawel: http://code.google.com/p/workerpool/wiki/MassDownloader
22:56 < crashdump> excellent exemple.. si t'as envie de te souvenir ;)
22:56 < crashdump> Merci pour l'aide en tout cas je devrais pouvoir arriver a un truc propre maintenant
23:03 < gawel> ouais enfin workerpool c'est pas le même module, mais bon
23:04 < crashdump> ça a l'air propre aussi.. non ?
23:04 < gawel> connais pas
23:04 < crashdump> j'essaye cette methode aussi.. véra bien :)
23:04 < crashdump> je pourrais comparer après
23:04 < gawel> pas d'activité depuis mars 2008
23:05 < gawel> a mon avis c'est mort né
23:05 < gawel> Status
23:05 < gawel> There's good work being done on a native Python multiprocessing module. The functionality has a lot of overlap with workerpool. Worth having a look at!
23:05 < crashdump> ah xD
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
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