Chat log from the meeting on 2022-07-26/fr

=Introduction=
 * Pray : prier

[11:01] Jamie.Jordan @grid.kitely.com:8002 : Bonjour à tous

[11:02] Andrew Hellershanks : Bonjour, tout le monde.

[11:02] Kayaker Magic : Je ne suis pas très content d'Ubuntu  : Les pilotes de son sont terribles, le plug-and-pray  n'arrête pas de changer mes choix de périphériques de son, la configuration des icônes sur l'écran est une plaie.

[11:02] Andrew Hellershanks : Les pilotes de son posent problème depuis le début de Pulse Audio.

[11:02] Ubit Umarov : aucune idée, je n'ai pas de machine pour essayer un linux.

[11:03] Ubit Umarov : il y a environ 2 ans, j'avais debian 10 sur une machine, et ça marchait bien.

[11:03] Ubit Umarov : ensuite la machine est morte.

[11:03] Ubit Umarov : bahh

[11:03] Kayaker Magic : Oh et sur Ubuntu il y a un truc d'interface appelé Snap que la moitié des programmes utilisent, il crée un nouveau périphérique logique pour chaque application, remplissant ma liste de périphériques réels.

[11:04] Andrew Hellershanks : Kayaker, j'ai laissé tomber Ubuntu quand ils ont ajouté Unity pour leur bureau.

[11:05] Andrew Hellershanks : Unity? Hm... ce n'est peut-être pas le bon nom.

= Changements dans OpenSim cette semaine =
 * Journal des commits OpenSim
 * Mantis : suivi de bogues
 * Bogue : http://opensimulator.org/wiki/Chat_log_from_the_meeting_on_2022-07-05/fr#Bug_de_plantage

[11:05] Vincent.Sylvester @hg.zetaworlds.com:8002 : Pas beaucoup de changements dans OpenSim ces derniers temps. Des trucs mineurs dans libomv car nous sommes à la recherche de ce qui pourrait clocher dans le crash de TryParse. Bien sûr, en testant sur la dernière version de mono, aucune des régions qui plantaient auparavant ne l'a fait, donc je suis de retour à la case départ sur ce point. Je vais probablement revenir à la dernière version et voir ce qui se passe, il doit y avoir autre chose que des scripts qui causent cela, peut-être des gens.

= Installer OpenSim 0.8.2 dans un système configuré pour OpenSim 0.9.X =
 * Compilation : voir aussi dans le code source le fichier  BUILDING.md
 * heartbeat (battement de cœur) : signal périodique généré par le matériel ou le logiciel pour indiquer un fonctionnement normal ou pour synchroniser d'autres parties d'un système informatique.

[11:05] Kayaker Magic : J'ai une question à propos d'OpenSim : J'ai reçu une demande pour faire tourner OpenSim 0.8.2 sur une région. Je l'ai récupéré dans les archives, il plante et ne fonctionne pas. Probablement un problème avec mono. Quelqu'un a-t-il une idée de ce que je peux essayer ?

[11:05] Vincent.Sylvester @hg.zetaworlds.com:8002 : Sur quoi se bloque-t-il ?

[11:06] Kayaker Magic : Attends, je regarde ça.

[11:07] Andrew Hellershanks : Si tu utilises la 0.8.2  sur une région, quelle version d'OS les autres régions utilisent-elles ?

[11:08] Kayaker Magic : J'utilise un Yeti  maître assez récent sur le reste, tous connectés à OSGrid.

[11:08] Kayaker Magic : Voilà l'erreur :

[11:08] Kayaker Magic :  2022-07-23 06:18:59,121 ERROR (Heartbeat-(Esses_Workshop)) - OpenSim.Region.Framework.Scenes.Scene [SCENE]: Failed on region Esses Workshop with exception Object reference not set to an instance of an object at OpenSim.Region.Framework.Scenes.SceneGraph.UpdatePreparePhysics  [0x00006] in <35ba7167b3194ad9abe7c1bc9afcecb6>:0 at OpenSim.Region.Framework.Scenes.Scene.Update (System.Int32 frames) [0x00140] in <35ba7167b3194ad9abe7c1bc9afcecb6>:0 2022-07-23 06:18:59,124 ERROR (Heartbeat-(Esses_Workshop)) - OpenSim.Application [APPLICATION]: ^M APPLICATION EXCEPTION DETECTED: System.UnhandledExceptionEventArgs^M ^M [11:09] Kayaker Magic : Utilisation de XEngine, ubODE

[11:09] Andrew Hellershanks : Je ne pense pas que ce message d'erreur soit très utile.

[11:09] Andrew Hellershanks : Kayaker, quelle version de mono utilises-tu ?

[11:10] Kayaker Magic : Mais c'est ce que je pense de tous les messages d'erreur d'opensim ! Aucun d'entre eux n'est très utile !

[11:10] Kayaker Magic : J'utilise mono 6.12.

[11:10] Andrew Hellershanks : Eh bien, certains d'entre eux sont plus utiles que d'autres.

[11:11] Andrew Hellershanks : Jusqu'où va-t-il dans le processus de démarrage de la région avant que l'erreur n'apparaisse ?

[11:11] Kayaker Magic : On dirait que ça va commencer, il est écrit "Started tracking thread Heartbeat".

[11:12] Kayaker Magic : La région est toute nouvelle, pas de prims, pas de scripts, une île ronde.

[11:12] Ubit Umarov : c'est quoi la version 0.8.2 ?

[11:12] Ubit Umarov : ;)

[11:12] Vincent.Sylvester @hg.zetaworlds.com:8002 : C'est tout ce qu'il y a ? Peux-tu coller les parties restantes et peut-être quelques lignes avant cela. As-tu essayé une autre combinaison de moteur de scripts et de physique ?

[11:13] Vincent.Sylvester @hg.zetaworlds.com:8002 : Les versions sont marquées dans git donc tu peux aussi compiler à partir des sources  sous un mono plus récent pour voir si cela aide.

[11:13] Kayaker Magic : Voici quelques lignes (tout semble bon) avant le crash :

[11:13] Kayaker Magic :  2022-07-23 06:18:58,795 DEBUG (1) - OpenSim.Data.MySQL.MySQLSimulationData [REGION DB]: Loaded 0 objects using 0 prims 2022-07-23 06:18:58,801 DEBUG (1) - OpenSim.Data.MySQL.MySQLSimulationData [REGION DB]: Loaded inventory from 0 objects 2022-07-23 06:18:58,802 INFO (1) - OpenSim.Region.Framework.Scenes.Scene [SCENE]: Loaded 0 objects from the datastore 2022-07-23 06:18:58,803 DEBUG (1) - OpenSim.Region.CoreModules.Framework.UserManagement.UserManagementModule [USER MANAGEMENT MODULE]: Caching creators' data from Esses Workshop (0 objects)... 2022-07-23 06:18:58,806 INFO (1) - OpenSim.Region.Framework.Scenes.Scene [SCENE]: Loading land objects from storage 2022-07-23 06:18:58,932 DEBUG (1) - OpenSim.Services.GridService.GridService [GRID SERVICE]: Region Esses Workshop (9b145e2a-5c81-4803-ab84-381904b61f69, 256x256) registered at 2294,9495 with flags RegionOnline 2022-07-23 06:18:59,114 INFO (1) - OpenSim.Region.Framework.Scenes.Scene [SCENE]: Initializing script instances in Esses Workshop [11:13] Kayaker Magic :  2022-07-23 06:18:59,114 INFO (1) - OpenSim.Region.Framework.Scenes.Scene [SCENE]: Initialized 0 script instances in Esses Workshop 2022-07-23 06:18:59,115 DEBUG (1) - OpenSim.Framework.Monitoring.Watchdog [WATCHDOG]: Started tracking thread Heartbeat-(Esses_Workshop), ID 42

[11:13] Andrew Hellershanks : Si tu m'avais demandé la semaine dernière, j'aurais encore une copie de la 0.8.2 sur ma machine pour l'essayer car j'ai mono 6.12 installé.

[11:14] Kayaker Magic : Non, je n'ai pas essayé YEngine et autres combinaisons....

[11:14] Kayaker Magic : Y avait-il un YEngine à l'époque ?

[11:15] Andrew Hellershanks : Pas de YEngine dans la 0.8.2

[11:15] Ubit Umarov : non

[11:15] Vincent.Sylvester @hg.zetaworlds.com:8002 : Eh bien, il se bloque sur la physique, donc essayer Bullet serait un début.

[11:16] Vincent.Sylvester @hg.zetaworlds.com:8002 : En plus de cela, je pense que cette version était encore compilée sur mono 2.10, donc c'est un grand saut.

[11:16] Vincent.Sylvester @hg.zetaworlds.com:8002 : En cas de doute, compile à partir des sources

[11:16] Kayaker Magic : J'ai essayé de compiler à partir des sources, j'ai eu 21 avertissements, puis j'ai exécuté cette copie, même erreur. [11:17] Vincent.Sylvester @hg.zetaworlds.com:8002 : L'échec Heartbeat ne devrait pas entraîner la fin de l'application, à moins qu'il n'y ait un autre problème.

[11:18] Andrew Hellershanks : Tu as vérifié deux fois la configuration de la région pour t'assurer qu'il ne s'agit pas d'une erreur de frappe dans un fichier INI ?

[11:18] Kayaker Magic : Si je passe à Yeti master, elle se lance bien avec un fichier INI  presque identique.

[11:20] Vincent.Sylvester @hg.zetaworlds.com:8002 : Compiler en mode débogage pour obtenir les numéros de ligne et démarrer directement afin de pouvoir récupérer la Stacktrace complète pour voir où ça ne va pas, les erreurs du journal ne sont pas toujours assez explicites.

[11:20] Andrew Hellershanks : C'est l'erreur "Object reference not set to an instance of an object"(La référence de l'objet ne correspond pas à une instance d'un objet.)  qui est préoccupante.

[11:21] Andrew Hellershanks : Une chose qui m'est venue à l'esprit est qu'il pourrait y avoir une erreur  dans une chaîne de configuration de la base de données.

[11:21] Kayaker Magic : Il y a une trace de pile dans le journal après cette erreur, dois-je la mettre ici ?

[11:22] Vincent.Sylvester @hg.zetaworlds.com:8002 : La partie sous le stacktrace contrôlée qui pointe vers le code directement, saute le dump de la mémoire.

[11:23] Kayaker Magic : Je veux dire plus de choses dans le journal après ce message d'erreur,  je vais le coller ici :

[11:23] Kayaker Magic :  2022-07-23 06:18:59,124 ERROR (Heartbeat-(Esses_Workshop)) - OpenSim.Application [APPLICATION]: ^M APPLICATION EXCEPTION DETECTED: System.UnhandledExceptionEventArgs^M ^M Exception: System.NullReferenceException: Object reference not set to an instance of an object at OpenSim.Region.Framework.Scenes.Scene.get_TimeDilation [0x0000b] in <35ba7167b3194ad9abe7c1bc9afcecb6>:0 at OpenSim.Region.Framework.Scenes.Scene.Update (System.Int32 frames) [0x0050e] in <35ba7167b3194ad9abe7c1bc9afcecb6>:0 at OpenSim.Region.Framework.Scenes.Scene.Heartbeat [0x0000c] in <35ba7167b3194ad9abe7c1bc9afcecb6>:0 at System.Threading.ThreadHelper.ThreadStart_Context (System.Object state) [0x00014] in :0 at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00071] in :0 [11:23] Kayaker Magic :  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in :0 at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state) [0x0002b] in :0 at System.Threading.ThreadHelper.ThreadStart [0x00008] in :0 ^M ^M Application is terminating: True^M

[11:24] Andrew Hellershanks : Est-ce que tu compiles le code comme une version ? Tu dois l'exécuter compilé en mode débogage pour obtenir une trace de la pile avec les numéros de colonne et de ligne.

[11:24] Andrew Hellershanks : Pourquoi quelqu'un veut-il encore utiliser la 0.8.2 si le reste des régions sont en 0.9.x ? Est-ce que la personne a un script qui ne fonctionne pas en 0.9 ?

[11:25] Kayaker Magic : Je pensais que la compilation par défaut était déboguée. J'ai juste fait ./runprebuild.sh et xbuild.

[11:26] Kayaker Magic : La personne pense que le téléchargement de mesh fonctionne différemment dans la 0.8, elle n'a pas été réceptive à " laisse-moi t'apprendre la bonne façon de télécharger un mesh ".

[11:26] Andrew Hellershanks : Ah, ok.

[11:27] Vincent.Sylvester @hg.zetaworlds.com:8002 : Je ne voudrais pas même discuter de ce niveau de stupidité, en appuyant sur le fait que ce n'est pas la voie à suivre.

[11:27] Kayaker Magic : Maintenant que j'y pense, elle se souvient probablement que Bullet créait des modèles physiques. ( gros doute sur la traduction :-) ).

[11:28] Vincent.Sylvester @hg.zetaworlds.com:8002 : Donc pour télécharger un mauvais mesh et polluer tout avec des données potentiellement corrompues causant même le crash d'autres régions, amusant.

[11:30] Andrew Hellershanks : Il y a eu des migrations de bases de données entre la 0.8.2 et la 0.9, ce qui peut aussi poser problème.

[11:30] Kayaker Magic : OK, ça me donne quelques idées à essayer : Lui donner 0.9 avec Bullet, la forcer à écouter les suggestions de téléchargement de mesh...

[11:31] Kayaker Magic : Essayez de remonter sa simulation 0.8 avec Bullet... Assez parlé de ça aujourd'hui. J'ai d'autres questions !

[11:31] Ubit Umarov : (au téléphone..)

[11:31] Andrew Hellershanks : Ce serait une meilleure idée que d'essayer de faire fonctionner une région 0.8 dans une grille fonctionnant principalement en 0.9.

[11:33] Andrew Hellershanks : D'autres questions, Kayaker ?

= Stockage des assets : où, quand, comment ? =

[11:35] Kayaker Magic : J'essaie de comprendre quand les choses sont écrites dans le cache d'assets    de la région. Si je rezze (créer, déposer au sol) un objet dans une région, je ne le vois pas dans ce cache. Quand est-ce que cela se produit ? Seulement après une récupération réussie depuis le fsassets principal ?

[11:36] Andrew Hellershanks : Cela ressemble à une question pour Ubit, une fois qu'il aura raccroché le téléphone.

[11:37] Kayaker Magic : Et si on rezzait deux copies d'un objet, chacune aura son propre UUID , n'est-ce pas ?

[11:39] Kayaker Magic : mais chaque objet doit avoir des UUIDs d'assets pour toutes ses textures, sont-elles mises en cache dans l'assetcache par leurs UUIDs d'assets ?

[11:39] Andrew Hellershanks : oui pour les deux.

[11:39] Ubit Umarov : l'uuid est l'identifiant de tout asset.

[11:40] Kayaker Magic : par UUID d'asset je veux dire l'UUID dans fsassets, est-ce qu'une texture est mise en cache dans assetcache avec le même UUID ?

[11:42] Ubit Umarov : comme je l'ai dit l'identifiant d'un objet est seulement son UUID.

[11:43] Kayaker Magic : Ce que je veux savoir c'est,  si je regarde dans la base de données region, je vois un objet stocké avec son UUID rezzé, mais est-ce que la seule chose stockée dans le assetcache sont les éléments de base stockés dans fsasset via des UUIDs ?

[11:44] Ubit Umarov : un objet perd les uuids des textures (matériaux etc) qu'il utilise.

[11:44] Ubit Umarov : fait un list

[11:45] Ubit Umarov : un objet peut aussi être stocké en tant qu'asset, bien sûr.

[11:45] Ubit Umarov : ce stacktrace est étrange.

[11:45] Kayaker Magic : Si je crée un nouvel objet, disons à partir de deux cubes, est-ce que cet objet est déjà dans  fsasset ? Quand est-ce qu'il est sauvegardé la première fois ?

[11:46] Ubit Umarov : il y a quelque chose de très bizarre avec cette région.

[11:46] Ubit Umarov : non, la différence entre les objets est qu'ils sont sur la base de données de la région  seulement (format propre).

[11:46] Vincent.Sylvester @hg.zetaworlds.com:8002 : Les Prims ne sont pas des assets, les textures, mesh, animations, scripts, etc. sont des assets. On ne peut pas créer un asset en rezzant une prim.

[11:47] Ubit Umarov : ils deviennent un asset lorsqu'ils sont mis dans l'inventaire.[NDLR: Object ]

[11:47] Vincent.Sylvester @hg.zetaworlds.com:8002 : Yep

[11:48] Ubit Umarov : simplement pour des raisons d'implémentation, dans une région il y a des parties de scène et des groupes d'objets de scène :)

[11:48] Kayaker Magic : Donc si je rezze un cube, rien ne se passe dans fsassets ou assetcache, si je mets une nouvelle texture dessus, la texture vient de fsassets, et est sauvegardée dans assetcache.

[11:48] Ubit Umarov : qui ont leur propre stockage sur les dbs.

[11:48] Ubit Umarov : oui

[11:48] Kayaker Magic : OK, je pense que j'ai compris l'idée.

[11:49] Ubit Umarov : à l'opposé, les textures sont directement téléchargées dans la grille (fsassets).

[11:49] Vincent.Sylvester @hg.zetaworlds.com:8002 : Si ce ne sont pas des textures de la bibliothèque que chaque région fournit, alors il faudrait probablement utiliser une texture téléchargée par toi-même.

[11:49] Ubit Umarov : (sauf les textures dynamiques).

[11:49] Kayaker Magic : je vois

[11:49] Ubit Umarov : donc quand nous en appliquons une sur un visage, le viewer va la demander.

[11:49] Ubit Umarov : via le service  des assets.

[11:50] Ubit Umarov : avec la version 0.9.2 via ViewerAsset cap.

[11:50] Ubit Umarov : en fait, depuis une certaine 0.9 où j'ai ajouté le support cap).

[11:51] Ubit Umarov : les objets ont aussi leurs propres chemins vers le viewer.

[11:51] Kayaker Magic : Pas de problème, j'utilise toujours la version 0.9.x à moins d'être ramené de force en arrière...

[11:51] Vincent.Sylvester @hg.zetaworlds.com:8002 : le cache d'objets du viewer, cette chose amusante.

[11:51] Ubit Umarov : protocole spécial pour envoyer les "objets" au viewer en tant que tel...

[11:52] Ubit Umarov : en effet, les porotocoles,... le cache d'objet du viewer  utilise un autre protocole udp, pourrait-on dire...

[11:52] Vincent.Sylvester @hg.zetaworlds.com:8002 : Oui, n'utilisez pas de vieux viewers, vous allez passer un mauvais moment lol.

[11:53] Ubit Umarov : les objets à l'intérieur d'autres objets sont des assets, bien sûr.

[11:53] Vincent.Sylvester @hg.zetaworlds.com:8002 : primitems pointe vers les assets.

= Nouvelle version de Firestorm =

[11:53] Ubit Umarov : A propos, fs (Firstorm)  a publié une nouvelle version.

[11:54] Kayaker Magic : ENFIN !

[11:54] Ubit Umarov : pas tant de changements que ça.

[11:54] Vincent.Sylvester @hg.zetaworlds.com:8002 : le bouton "grid status" fonctionne maintenant.

[11:54] Kayaker Magic : Le correctif de Vivox  était nécessaire pour éviter un plantage lors d'un téléport HG  entre certaines grilles.

[11:54] Ubit Umarov : maintenant la bibliothèque utilise ses propres caps.

[11:55] Ubit Umarov : j'avais ajouté ces caps vers 2018 puis je les ai retirés car aucun viewer ne les utilisait.

[11:55] Ubit Umarov : alchemy (site oblsolète) (git)  m'a demandé de les remettre, alors j'y ai travaillé, maintenant c'est aussi le cas pour fs.

[11:55] Ubit Umarov : pas de grande différence.

[11:56] Ubit Umarov : sauf que quand tous les viewers le font, le code de région peut être simplifié.

[11:56] Vincent.Sylvester @hg.zetaworlds.com:8002 : Le code est un peu plus propre aussi, c'est bien, mais il y a tellement de domaines qui ont besoin d'être revus.

[11:56] Ubit Umarov : enlever le hack d'une bibliothèque donnée sur le CAPS normal d'inventaire.

[11:57] Ubit Umarov : Je ne sais pas si j'ai manqué une question.

[11:57] Ubit Umarov : le téléphone a dû sonner juste au début de la réunion, bien sûr.

[11:58] Kayaker Magic : J'ai eu des réponses pertinentes à mes deux questions.

[11:58] Kayaker Magic : Encore beaucoup de temps ! Merci les gars !

[11:58] Ubit Umarov : ahh

[11:58] Vincent.Sylvester @hg.zetaworlds.com:8002 : Tu peux aller sur irc si tu as besoin d'aide, n'attends pas que la réunion ait lieu.

[11:59] Andrew Hellershanks : Vincent, mais de quoi parlerions-nous si toutes les questions étaient traitées sur IRC pendant la semaine ? :)

= Bogue de compilation avec GCC =
 * ubOde : OpenSim/Region/PhysicsModules/ubOde

[11:59] Ubit Umarov : J'ai fait plusieurs changements (inutiles) sur ubode et j'ai fait un commit  sur git.

[11:59] Ubit Umarov : mais actuellement c'est un peu cassé :p

[11:59] Ubit Umarov : d'une manière ou d'une autre, la vieille gcc  que j'utilisais génère du code qui ne permet pas de faire des raycasts.

[12:00] Ubit Umarov : pour compilé sur win et debian11 gcc, fonctionne bien.

[12:00] Ubit Umarov : c'est un beau bug... impossible de le trouver.

[12:00] Ubit Umarov : gcc est devenu fou.

[12:00] Ubit Umarov : duhhhh

[12:00] Vincent.Sylvester @hg.zetaworlds.com:8002 : Où est la source pour cela ? Je voulais demander

[12:01] Ubit Umarov : opensim-libs

[12:01] Vincent.Sylvester @hg.zetaworlds.com:8002 : Peut-être que j'obtiendrai une erreur cryptique complètement différente... connaissant ma chance...

[12:01] Andrew Hellershanks : Wow. Quel drôle de bug.

[12:01] Ubit Umarov : pas d'erreur.

[12:01] Ubit Umarov : juste les raycasts échouent.

[12:01] Ubit Umarov : pas d'erreur ... rien...

[12:02] Ubit Umarov : les raycasts sont utilisés en interne pour les collisions avec le terrain, ils fonctionnent jusqu'à ce qu'ils ne fonctionnent plus :9

[12:02] Ubit Umarov : alors la prim a des collisions bizarres.

[12:02] Vincent.Sylvester @hg.zetaworlds.com:8002 : N'avons-nous pas eu un problème avec ça il y a quelque temps ?

[12:02] Ubit Umarov : gcc a simplement perdu un chemin de code.

[12:03] Vincent.Sylvester @hg.zetaworlds.com:8002 : Il tue le cpu

[12:03] Ubit Umarov : un init raté, il faisait... une référence perdue... aucune idée...

[12:03] Vincent.Sylvester @hg.zetaworlds.com:8002 : Peut-être qu'il l'optimise

[12:03] Ubit Umarov : sur un gcc récent, même code... pas de problème.

[12:04] Ubit Umarov : mais je ne peux pas le compiler sur une toute dernière gcc, sinon beaucoup ne pourront pas l'exécuter.

[12:04] Ubit Umarov : donc... duhhh un peu coincé pour le moment :)

[12:05] Vincent.Sylvester @hg.zetaworlds.com:8002 : Revenir à la version de travail puis procéder étape par étape, cela prend du temps mais c'est probablement le moyen le plus simple.

=Conclusion = [12:04] Jamie.Jordan @grid.kitely.com:8002 : Bonne semaine à tous

[12:05] Andrew Hellershanks : ok, Jamie. Merci d'être venu. On se revoit la semaine prochaine.

[12:05] Ubit Umarov : trop tard :)

[12:05] Selby.Evans @grid.kitely.com:8002 : au revoir à tous.

[12:05] Andrew Hellershanks : ok, Selby. On se voit la semaine prochaine.

[12:05] Ubit Umarov : amuse-toi bien, sleby.

[12:06] Ubit Umarov : et selby

[12:06] Andrew Hellershanks : Nous venons de passer l'heure. S'il n'y a pas de points de dernière minute pour aujourd'hui, nous pouvons conclure la réunion d'aujourd'hui.

[12:06] Ubit Umarov : Oui, j'ai aussi un RL qui m'attend.

[12:07] Andrew Hellershanks : ok, dans ce cas je vais mettre fin à cette réunion. J'ai aussi deux ou trois choses à faire.

[12:07] Ubit Umarov : Passez une bonne semaine.

[12:07] Andrew Hellershanks : Merci à tous d'être venus. Nous vous reverrons la semaine prochaine.