Tribune de Lahossaine EL KHALOUI, Directeur Régional Hauts-de-France, QA Practice Manager
En cette période de crise sanitaire où les périodes de confinement se succèdent, j’ai l’impression que le monde découvre qu’il est possible d’être efficace, tout en travaillant à distance. S’il est vrai que l’exercice d’un certain nombre d’activités ne permet pas le travail à distance comme les métiers de la santé – et j’en profite pour rendre hommage aux infirmiers, médecins, urgentistes, pharmaciens, (…) qui luttent contre ce virus au quotidien – mais également de nombreux métiers dans le domaine de l’industrie ; il existe bien un secteur pour lequel le télétravail est facile à mettre en œuvre, celui des Technologies de l’Information (IT). Cela suppose bien entendu que son organisation soit mature et les processus bien établis pour en garantir l’efficacité. Dans cet article, je vais me concentrer sur le sujet que je maîtrise le mieux, le monde du test logiciel, et je vais tenter de vous donner quelques clés permettant une bonne gestion du processus de test délocalisé ou, comme indiqué dans le syllabus ISTQB niveau Avancé, le test distribué.
La pandémie du Covid-19 a (re)mis au goût du jour le télétravail. Je n’aborderais pas ici les spécificités liées au contexte international qui pourraient faire l’objet d’un autre article, mais je resterais concentré sur les tests distribués (si vous souhaitez plus d’information sur les tests distribués 🎯) effectués par des équipes situées en France ou par des consultants confinés chez eux sur l’ensemble du territoire. Car s’il est bien une constante qui n’a pas changé dans le métier du test, c’est que la plupart des organisations déploient de nouvelles fonctionnalités ou des mises à jour à des rythmes de plus en plus soutenus, en flux quasiment continu. Et cette pandémie a eu également comme effet direct à court terme d’accélérer encore la transformation numérique des entreprises.
Conséquences ? Crise ou pas, les testeurs doivent sans cesse trouver de nouveaux moyens pour tester plus rapidement et plus efficacement.
Quelles sont les contraintes d’un effort de test distribué ? Je ne reviendrais pas dans le détail sur l’ensemble des bases qui sont encore plus vitales lorsqu’on est amené à travailler à distance comme un accès sécurisé aux environnements et aux appareils que vos équipes sont amenées à tester de manière approfondie, une relation basée sur la confiance, des attendus clairement exprimés et partagés, des outils de communication et de collaboration pour avoir des retours fréquents (cas de tests, nouveaux résultats, mises à jour, etc.). Pour reprendre les basiques, que l’on peut trouver dans le syllabus avancé Test Manager[1] sur le sujet, on peut retenir :
- Les problématiques de communication
- Des objectifs mal définis
- La synchronisation avec les équipes de développement et intégration
- Un environnement de travail non accessible
- Des outils non adaptés
A cette liste j’ajouterai deux questions : comment gérez-vous les tests aujourd’hui ? Avez-vous un leader, une tête de pont ou, oserais-je avancer, un Test Manager ?
En effet, la première étape permettant de lever une bonne partie des contraintes liées aux tests distribués et de disposer d’une bonne gestion de votre processus de test, réside dans les missions même du Test Manager. Ce dernier a notamment pour responsabilités de définir des processus qui optimiseront les tests mais qui permettront également de faciliter le travail à distance.
Dans l’ordre, il convient de définir le terrain et les règles de jeu de l’équipe de test avec le reste du monde, c’est à dire :
- Cadrer le périmètre de test avec l’équipe projet (MOA/MOE). Il s’agit ici de préciser les parties du système qui seront testées, dans quel ordre et sous quel délai. Il s’agira également de planifier les priorités qui faciliteront la prise de décision par la suite.
- Définir le mode d’alimentation de l’équipe de test. Que l’on soit sur une gestion de projet en cycle en V où les spécifications sont formalisées à l’avance et où il parait facile d’alimenter l’équipe de test à distance (que ce soit pour l’analyse ou la conception des tests) ; ou dans le cadre d’une gestion en mode Agile (cet article 🎯 mettait déjà en avant il y a plus de 10 ans la possibilité d’être aussi performant avec des équipes de développement distribués qu’en local), l’alimentation des équipes de tests doit être réfléchie. Cela implique de définir un processus de validation des spécifications ou autre User Stories, avant envoi à l’équipe de test. Ce processus permettra de rassurer chacun de vos analystes de tests sur la réduction du nombre d’aller/retour lié aux changements de spécifications.
- Le Test Manager devra également penser à un mode de communication qui permet d’être efficace quel que soit le mode d’organisation, que ce soit par visio-conférence, téléphone, chat, mail ou encore sms, la façon de communiquer pour chacune des étapes du processus de test doit être formalisée. Personnellement, je recommande encore plus dans ce contexte de confinement l’usage de la vidéo qui recréait une collaboration « face-à-face », ramène du lien et de l’engagement en cette période où nous en avons particulièrement besoin … mais qui est également nécessaire au travail en équipe. Beaucoup de nos communications sont non-verbales, la communication vidéo, même si elle consiste à partager un rapport ou un écran, permet de les incarner et de préserver le contact. Avec Hangouts par exemple, on peut sans difficultés organiser des visio-conférences efficaces jusqu’à 10 personnes. De nos jours, la multiplicité des outils du numérique facilite grandement cette gestion des échanges (je vous propose une sélection à la fin de cet article)
- L’objectif d’une équipe de test étant d’améliorer la qualité du système sous test et de réduire les risques associés. Il est nécessaire d’anticiper quand et comment seront communiqués les indicateurs de suivi (KPI), si une présence de l’équipe de test sur site est nécessaire et de faciliter des échanges rapides sur l’état d’avancement. Il est important de définir un processus de communication qui permettra de tenir informées les parties prenantes régulièrement. Cela peut de façon traditionnelle passer par l’envoi quotidien ou hebdomadaire d’un rapport (type PPT) sur l’état d’avancement. Aujourd’hui, on utilise un tableau de bord dynamique qui, mis à jour par le Test Manager et/ou par chaque Testeur, permet ainsi de pouvoir disposer à l’instant T de l’information sans attendre le reporting. Un tableau de bord dynamique permet également de challenger ses équipes sur les objectifs à atteindre et de s’assurer de la vélocité sans devoir solliciter systématiquement ses consultants.
- Si l’écriture des tests peut se faire indépendamment de l’environnement de test, l’exécution quant à elle impose d’avoir un environnement opérationnel. Là encore, il est important que très tôt dans le processus de test, le Test Manager s’assure d’avoir clairement identifié tous les éléments de configuration de son environnement de test mais également qui sera chargé d’installer et de paramétrer l’environnement de test avant de procéder à la validation de l’environnement. C’est un préalable obligatoire à l’exécution des campagnes de tests. Sur ce point précisément la distance ajoute de la complexité, notamment si dans votre organisation, il est courant de solliciter l’administrateur de BDD / système ou encore l’intégrateur en physique pour lui demander de traiter en urgence telle ou telle demande. Pour une organisation distribuée, vous devez être capable de formaliser et d’anticiper au plus tôt vos demandes d’environnement afin de permettre aux équipes d’intégration de répondre dans les meilleures conditions à vos demandes.
- Même si beaucoup de ces règles, processus et rituels sont rarement écrits… En ces temps de crise, et alors que le remote-work devrait désormais s’inscrire dans la durée, je vous conseille de les formaliser. Sauvegardes régulières des livrables logiciels aux clients, organisation et rythme des réunions, outils utilisés, canaux choisis pour tel ou tel type de communication, etc. Il s’agit en en effet maintenant de planifier une situation, qu’on pensait jusqu’alors exceptionnelle, pour faciliter l’onboarding de nouveaux membres de l’équipe. On estime aujourd’hui que c’est 1/5ème de la population qui est susceptible de s’absenter de son poste de travail en raison du covid-19 et ce pour une durée plus ou moins longue. Vous devez plus que jamais suivre qui teste quoi et quand … si vous êtes amené à redistribuer des tâches du jour au lendemain pour respecter les délais.
La seconde étape, et que l’on a tendance à sous-estimer, est de tout mettre en œuvre pour garder du lien social, car une équipe de test performante est une équipe de test qui vit et collabore dans une ambiance conviviale et professionnelle. Voici 3 conseils pour préserver cet esprit collégial, bien que chacun travaille à distance :
- Organisez régulièrement des sessions « Teams Coffee » afin que ceux qui avaient l’habitude de se retrouver autour d’un café ou de respirer le grand air (avec les smartphones c’est possible !) puissent continuer à le faire par écran interposé. En remote-work, on ne sur-communique jamais assez !
- Organisez des temps d’échanges où, au-delà des objectifs de la journée, chacun peut faire part de ses problématiques pour que le collectif essaye d’y apporter des solutions
- Tenez informé votre équipe de l’évolution du projet et de l’actualité de votre entreprise/client afin de les impliquer encore plus dans la réussite du projet
Pour finir, les nouvelles technologies nous permettent aujourd’hui de travailler aussi efficacement à domicile qu’au bureau. Voici une sélection d’outils sous licence ou gratuite, non exhaustive qui peuvent s’avérer utile pour une équipe distribuée :
La gestion des documents
- La suite Office 365
- La suite Google WorkSpace
La gestion des réunions d’équipes [1]
La gestion de vos projets
La gestion des échanges
La gestion des transferts de données
- Google Drive
- OneDrive
- SwissTransfer
- WeTransfer
- TransferNow
[1] Une liste plus exhaustive est disponible ici https://www.codeur.com/blog/outils-videoconference-reunion-distance-teletravail/
[1] Chapitre 2.8 Tests Distribués, Externalisés et Internalisés (syllabus Version 2012)
[2] Une liste plus exhaustive est disponible ici https://www.codeur.com/blog/outils-videoconference-reunion-distance-teletravail/
LnRiLWdyaWQsLnRiLWdyaWQ+LmJsb2NrLWVkaXRvci1pbm5lci1ibG9ja3M+LmJsb2NrLWVkaXRvci1ibG9jay1saXN0X19sYXlvdXR7ZGlzcGxheTpncmlkO2dyaWQtcm93LWdhcDoyNXB4O2dyaWQtY29sdW1uLWdhcDoyNXB4fS50Yi1ncmlkLWl0ZW17YmFja2dyb3VuZDojZDM4YTAzO3BhZGRpbmc6MzBweH0udGItZ3JpZC1jb2x1bW57ZmxleC13cmFwOndyYXB9LnRiLWdyaWQtY29sdW1uPip7d2lkdGg6MTAwJX0udGItZ3JpZC1jb2x1bW4udGItZ3JpZC1hbGlnbi10b3B7d2lkdGg6MTAwJTtkaXNwbGF5OmZsZXg7YWxpZ24tY29udGVudDpmbGV4LXN0YXJ0fS50Yi1ncmlkLWNvbHVtbi50Yi1ncmlkLWFsaWduLWNlbnRlcnt3aWR0aDoxMDAlO2Rpc3BsYXk6ZmxleDthbGlnbi1jb250ZW50OmNlbnRlcn0udGItZ3JpZC1jb2x1bW4udGItZ3JpZC1hbGlnbi1ib3R0b217d2lkdGg6MTAwJTtkaXNwbGF5OmZsZXg7YWxpZ24tY29udGVudDpmbGV4LWVuZH0gLndwLWJsb2NrLXRvb2xzZXQtYmxvY2tzLWdyaWQudGItZ3JpZFtkYXRhLXRvb2xzZXQtYmxvY2tzLWdyaWQ9IjIyOTZlNTRlZGEwZjgwZTkxNzliYzk5N2ZkMWY3MTY4Il0geyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAwLjVmcikgbWlubWF4KDAsIDAuNWZyKTtncmlkLWF1dG8tZmxvdzogcm93IH0gLndwLWJsb2NrLXRvb2xzZXQtYmxvY2tzLWdyaWQudGItZ3JpZFtkYXRhLXRvb2xzZXQtYmxvY2tzLWdyaWQ9IjIyOTZlNTRlZGEwZjgwZTkxNzliYzk5N2ZkMWY3MTY4Il0gPiAudGItZ3JpZC1jb2x1bW46bnRoLW9mLXR5cGUoMm4gKyAxKSB7IGdyaWQtY29sdW1uOiAxIH0gLndwLWJsb2NrLXRvb2xzZXQtYmxvY2tzLWdyaWQudGItZ3JpZFtkYXRhLXRvb2xzZXQtYmxvY2tzLWdyaWQ9IjIyOTZlNTRlZGEwZjgwZTkxNzliYzk5N2ZkMWY3MTY4Il0gPiAudGItZ3JpZC1jb2x1bW46bnRoLW9mLXR5cGUoMm4gKyAyKSB7IGdyaWQtY29sdW1uOiAyIH0gLndwLWJsb2NrLXRvb2xzZXQtYmxvY2tzLWdyaWQtY29sdW1uLnRiLWdyaWQtY29sdW1uW2RhdGEtdG9vbHNldC1ibG9ja3MtZ3JpZC1jb2x1bW49ImQwMDhkNzZlMTY0MGI5OTA3YTExNzlhODgyNDBiMzkzIl0geyBkaXNwbGF5OiBmbGV4OyB9IC50Yi1zb2NpYWwtc2hhcmVfX25ldHdvcmt7ZGlzcGxheTppbmxpbmUtYmxvY2s7dGV4dC1hbGlnbjpjZW50ZXI7dmVydGljYWwtYWxpZ246dG9wO21hcmdpbi1yaWdodDo3cHg7bWFyZ2luLWJvdHRvbTo3cHh9LnRiLXNvY2lhbC1zaGFyZS0tMDkyIC50Yi1zb2NpYWwtc2hhcmVfX2ZhY2Vib29rX19zaGFyZS1idXR0b257Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTppbmxpbmUtYmxvY2s7YmFja2dyb3VuZC1zaXplOmNvbnRhaW47YmFja2dyb3VuZC1jb2xvcjojM2I1OTk4O30udGItc29jaWFsLXNoYXJlLS0wOTIgLnRiLXNvY2lhbC1zaGFyZV9fbGlua2VkaW5fX3NoYXJlLWJ1dHRvbntjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmlubGluZS1ibG9jaztiYWNrZ3JvdW5kLXNpemU6Y29udGFpbjtiYWNrZ3JvdW5kLWNvbG9yOiMwMDdmYjE7fS50Yi1zb2NpYWwtc2hhcmUtLTA5MiAudGItc29jaWFsLXNoYXJlX190d2l0dGVyX19zaGFyZS1idXR0b257Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTppbmxpbmUtYmxvY2s7YmFja2dyb3VuZC1zaXplOmNvbnRhaW47YmFja2dyb3VuZC1jb2xvcjojMDBhY2VkO30udGItc29jaWFsLXNoYXJlLS0wOTIgLnRiLXNvY2lhbC1zaGFyZV9fcGludGVyZXN0X19zaGFyZS1idXR0b257Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTppbmxpbmUtYmxvY2s7YmFja2dyb3VuZC1zaXplOmNvbnRhaW47YmFja2dyb3VuZC1jb2xvcjojY2IyMTI4O30udGItc29jaWFsLXNoYXJlLS0wOTIgLnRiLXNvY2lhbC1zaGFyZV9fdGVsZWdyYW1fX3NoYXJlLWJ1dHRvbntjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmlubGluZS1ibG9jaztiYWNrZ3JvdW5kLXNpemU6Y29udGFpbjtiYWNrZ3JvdW5kLWNvbG9yOiMzN2FlZTI7fS50Yi1zb2NpYWwtc2hhcmUtLTA5MiAudGItc29jaWFsLXNoYXJlX19yZWRkaXRfX3NoYXJlLWJ1dHRvbntjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmlubGluZS1ibG9jaztiYWNrZ3JvdW5kLXNpemU6Y29udGFpbjtiYWNrZ3JvdW5kLWNvbG9yOiM1Zjk5Y2Y7fS50Yi1zb2NpYWwtc2hhcmUtLTA5MiAudGItc29jaWFsLXNoYXJlX192aWJlcl9fc2hhcmUtYnV0dG9ue2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2JhY2tncm91bmQtc2l6ZTpjb250YWluO2JhY2tncm91bmQtY29sb3I6IzdjNTI5ZTt9LnRiLXNvY2lhbC1zaGFyZS0tMDkyIC50Yi1zb2NpYWwtc2hhcmVfX2VtYWlsX19zaGFyZS1idXR0b257Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTppbmxpbmUtYmxvY2s7YmFja2dyb3VuZC1zaXplOmNvbnRhaW47YmFja2dyb3VuZC1jb2xvcjojN2Y3ZjdmO30udGItc29jaWFsLXNoYXJlLS1yb3VuZCAuU29jaWFsTWVkaWFTaGFyZUJ1dHRvbntib3JkZXItcmFkaXVzOjUwJX0udGItc29jaWFsLXNoYXJlX19leGNlcnB0e2Rpc3BsYXk6bm9uZX0udGItc29jaWFsLXNoYXJlIC5Tb2NpYWxNZWRpYVNoYXJlQnV0dG9uLS1kaXNhYmxlZHtvcGFjaXR5OjAuNjV9IC50Yi1zb2NpYWwtc2hhcmVbZGF0YS10b29sc2V0LWJsb2Nrcy1zb2NpYWwtc2hhcmU9IjJlMGYxNjYwMDQyYzRjMDkzMWU4NzQwNDRiY2U1Mjk5Il0gLlNvY2lhbE1lZGlhU2hhcmVCdXR0b24geyB3aWR0aDogMzJweDtoZWlnaHQ6IDMycHg7IH0gLndwLWJsb2NrLXRvb2xzZXQtYmxvY2tzLWdyaWQtY29sdW1uLnRiLWdyaWQtY29sdW1uW2RhdGEtdG9vbHNldC1ibG9ja3MtZ3JpZC1jb2x1bW49ImEzM2Y1ZGEwY2MzMWY1Y2FmZjU0NDVlOTMyNzFjMWMzIl0geyBkaXNwbGF5OiBmbGV4OyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODAwcHgpIHsgLnRiLWdyaWQsLnRiLWdyaWQ+LmJsb2NrLWVkaXRvci1pbm5lci1ibG9ja3M+LmJsb2NrLWVkaXRvci1ibG9jay1saXN0X19sYXlvdXR7ZGlzcGxheTpncmlkO2dyaWQtcm93LWdhcDoyNXB4O2dyaWQtY29sdW1uLWdhcDoyNXB4fS50Yi1ncmlkLWl0ZW17YmFja2dyb3VuZDojZDM4YTAzO3BhZGRpbmc6MzBweH0udGItZ3JpZC1jb2x1bW57ZmxleC13cmFwOndyYXB9LnRiLWdyaWQtY29sdW1uPip7d2lkdGg6MTAwJX0udGItZ3JpZC1jb2x1bW4udGItZ3JpZC1hbGlnbi10b3B7d2lkdGg6MTAwJTtkaXNwbGF5OmZsZXg7YWxpZ24tY29udGVudDpmbGV4LXN0YXJ0fS50Yi1ncmlkLWNvbHVtbi50Yi1ncmlkLWFsaWduLWNlbnRlcnt3aWR0aDoxMDAlO2Rpc3BsYXk6ZmxleDthbGlnbi1jb250ZW50OmNlbnRlcn0udGItZ3JpZC1jb2x1bW4udGItZ3JpZC1hbGlnbi1ib3R0b217d2lkdGg6MTAwJTtkaXNwbGF5OmZsZXg7YWxpZ24tY29udGVudDpmbGV4LWVuZH0gLndwLWJsb2NrLXRvb2xzZXQtYmxvY2tzLWdyaWQudGItZ3JpZFtkYXRhLXRvb2xzZXQtYmxvY2tzLWdyaWQ9IjIyOTZlNTRlZGEwZjgwZTkxNzliYzk5N2ZkMWY3MTY4Il0geyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAwLjVmcikgbWlubWF4KDAsIDAuNWZyKTtncmlkLWF1dG8tZmxvdzogcm93IH0gLndwLWJsb2NrLXRvb2xzZXQtYmxvY2tzLWdyaWQudGItZ3JpZFtkYXRhLXRvb2xzZXQtYmxvY2tzLWdyaWQ9IjIyOTZlNTRlZGEwZjgwZTkxNzliYzk5N2ZkMWY3MTY4Il0gPiAudGItZ3JpZC1jb2x1bW46bnRoLW9mLXR5cGUoMm4gKyAxKSB7IGdyaWQtY29sdW1uOiAxIH0gLndwLWJsb2NrLXRvb2xzZXQtYmxvY2tzLWdyaWQudGItZ3JpZFtkYXRhLXRvb2xzZXQtYmxvY2tzLWdyaWQ9IjIyOTZlNTRlZGEwZjgwZTkxNzliYzk5N2ZkMWY3MTY4Il0gPiAudGItZ3JpZC1jb2x1bW46bnRoLW9mLXR5cGUoMm4gKyAyKSB7IGdyaWQtY29sdW1uOiAyIH0gLndwLWJsb2NrLXRvb2xzZXQtYmxvY2tzLWdyaWQtY29sdW1uLnRiLWdyaWQtY29sdW1uW2RhdGEtdG9vbHNldC1ibG9ja3MtZ3JpZC1jb2x1bW49ImQwMDhkNzZlMTY0MGI5OTA3YTExNzlhODgyNDBiMzkzIl0geyBkaXNwbGF5OiBmbGV4OyB9IC50Yi1zb2NpYWwtc2hhcmVfX25ldHdvcmt7ZGlzcGxheTppbmxpbmUtYmxvY2s7dGV4dC1hbGlnbjpjZW50ZXI7dmVydGljYWwtYWxpZ246dG9wO21hcmdpbi1yaWdodDo3cHg7bWFyZ2luLWJvdHRvbTo3cHh9LnRiLXNvY2lhbC1zaGFyZS0tMDkyIC50Yi1zb2NpYWwtc2hhcmVfX2ZhY2Vib29rX19zaGFyZS1idXR0b257Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTppbmxpbmUtYmxvY2s7YmFja2dyb3VuZC1zaXplOmNvbnRhaW47YmFja2dyb3VuZC1jb2xvcjojM2I1OTk4O30udGItc29jaWFsLXNoYXJlLS0wOTIgLnRiLXNvY2lhbC1zaGFyZV9fbGlua2VkaW5fX3NoYXJlLWJ1dHRvbntjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmlubGluZS1ibG9jaztiYWNrZ3JvdW5kLXNpemU6Y29udGFpbjtiYWNrZ3JvdW5kLWNvbG9yOiMwMDdmYjE7fS50Yi1zb2NpYWwtc2hhcmUtLTA5MiAudGItc29jaWFsLXNoYXJlX190d2l0dGVyX19zaGFyZS1idXR0b257Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTppbmxpbmUtYmxvY2s7YmFja2dyb3VuZC1zaXplOmNvbnRhaW47YmFja2dyb3VuZC1jb2xvcjojMDBhY2VkO30udGItc29jaWFsLXNoYXJlLS0wOTIgLnRiLXNvY2lhbC1zaGFyZV9fcGludGVyZXN0X19zaGFyZS1idXR0b257Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTppbmxpbmUtYmxvY2s7YmFja2dyb3VuZC1zaXplOmNvbnRhaW47YmFja2dyb3VuZC1jb2xvcjojY2IyMTI4O30udGItc29jaWFsLXNoYXJlLS0wOTIgLnRiLXNvY2lhbC1zaGFyZV9fdGVsZWdyYW1fX3NoYXJlLWJ1dHRvbntjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmlubGluZS1ibG9jaztiYWNrZ3JvdW5kLXNpemU6Y29udGFpbjtiYWNrZ3JvdW5kLWNvbG9yOiMzN2FlZTI7fS50Yi1zb2NpYWwtc2hhcmUtLTA5MiAudGItc29jaWFsLXNoYXJlX19yZWRkaXRfX3NoYXJlLWJ1dHRvbntjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmlubGluZS1ibG9jaztiYWNrZ3JvdW5kLXNpemU6Y29udGFpbjtiYWNrZ3JvdW5kLWNvbG9yOiM1Zjk5Y2Y7fS50Yi1zb2NpYWwtc2hhcmUtLTA5MiAudGItc29jaWFsLXNoYXJlX192aWJlcl9fc2hhcmUtYnV0dG9ue2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2JhY2tncm91bmQtc2l6ZTpjb250YWluO2JhY2tncm91bmQtY29sb3I6IzdjNTI5ZTt9LnRiLXNvY2lhbC1zaGFyZS0tMDkyIC50Yi1zb2NpYWwtc2hhcmVfX2VtYWlsX19zaGFyZS1idXR0b257Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTppbmxpbmUtYmxvY2s7YmFja2dyb3VuZC1zaXplOmNvbnRhaW47YmFja2dyb3VuZC1jb2xvcjojN2Y3ZjdmO30udGItc29jaWFsLXNoYXJlLS1yb3VuZCAuU29jaWFsTWVkaWFTaGFyZUJ1dHRvbntib3JkZXItcmFkaXVzOjUwJX0udGItc29jaWFsLXNoYXJlX19leGNlcnB0e2Rpc3BsYXk6bm9uZX0udGItc29jaWFsLXNoYXJlIC5Tb2NpYWxNZWRpYVNoYXJlQnV0dG9uLS1kaXNhYmxlZHtvcGFjaXR5OjAuNjV9LndwLWJsb2NrLXRvb2xzZXQtYmxvY2tzLWdyaWQtY29sdW1uLnRiLWdyaWQtY29sdW1uW2RhdGEtdG9vbHNldC1ibG9ja3MtZ3JpZC1jb2x1bW49ImEzM2Y1ZGEwY2MzMWY1Y2FmZjU0NDVlOTMyNzFjMWMzIl0geyBkaXNwbGF5OiBmbGV4OyB9ICB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjQwcHgpIHsgLnRiLWdyaWQsLnRiLWdyaWQ+LmJsb2NrLWVkaXRvci1pbm5lci1ibG9ja3M+LmJsb2NrLWVkaXRvci1ibG9jay1saXN0X19sYXlvdXR7ZGlzcGxheTpncmlkO2dyaWQtcm93LWdhcDoyNXB4O2dyaWQtY29sdW1uLWdhcDoyNXB4fS50Yi1ncmlkLWl0ZW17YmFja2dyb3VuZDojZDM4YTAzO3BhZGRpbmc6MzBweH0udGItZ3JpZC1jb2x1bW57ZmxleC13cmFwOndyYXB9LnRiLWdyaWQtY29sdW1uPip7d2lkdGg6MTAwJX0udGItZ3JpZC1jb2x1bW4udGItZ3JpZC1hbGlnbi10b3B7d2lkdGg6MTAwJTtkaXNwbGF5OmZsZXg7YWxpZ24tY29udGVudDpmbGV4LXN0YXJ0fS50Yi1ncmlkLWNvbHVtbi50Yi1ncmlkLWFsaWduLWNlbnRlcnt3aWR0aDoxMDAlO2Rpc3BsYXk6ZmxleDthbGlnbi1jb250ZW50OmNlbnRlcn0udGItZ3JpZC1jb2x1bW4udGItZ3JpZC1hbGlnbi1ib3R0b217d2lkdGg6MTAwJTtkaXNwbGF5OmZsZXg7YWxpZ24tY29udGVudDpmbGV4LWVuZH0gLndwLWJsb2NrLXRvb2xzZXQtYmxvY2tzLWdyaWQudGItZ3JpZFtkYXRhLXRvb2xzZXQtYmxvY2tzLWdyaWQ9IjIyOTZlNTRlZGEwZjgwZTkxNzliYzk5N2ZkMWY3MTY4Il0geyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpO2dyaWQtYXV0by1mbG93OiByb3cgfSAud3AtYmxvY2stdG9vbHNldC1ibG9ja3MtZ3JpZC50Yi1ncmlkW2RhdGEtdG9vbHNldC1ibG9ja3MtZ3JpZD0iMjI5NmU1NGVkYTBmODBlOTE3OWJjOTk3ZmQxZjcxNjgiXSAgPiAudGItZ3JpZC1jb2x1bW46bnRoLW9mLXR5cGUoMW4rMSkgeyBncmlkLWNvbHVtbjogMSB9IC53cC1ibG9jay10b29sc2V0LWJsb2Nrcy1ncmlkLWNvbHVtbi50Yi1ncmlkLWNvbHVtbltkYXRhLXRvb2xzZXQtYmxvY2tzLWdyaWQtY29sdW1uPSJkMDA4ZDc2ZTE2NDBiOTkwN2ExMTc5YTg4MjQwYjM5MyJdIHsgZGlzcGxheTogZmxleDsgfSAudGItc29jaWFsLXNoYXJlX19uZXR3b3Jre2Rpc3BsYXk6aW5saW5lLWJsb2NrO3RleHQtYWxpZ246Y2VudGVyO3ZlcnRpY2FsLWFsaWduOnRvcDttYXJnaW4tcmlnaHQ6N3B4O21hcmdpbi1ib3R0b206N3B4fS50Yi1zb2NpYWwtc2hhcmUtLTA5MiAudGItc29jaWFsLXNoYXJlX19mYWNlYm9va19fc2hhcmUtYnV0dG9ue2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2JhY2tncm91bmQtc2l6ZTpjb250YWluO2JhY2tncm91bmQtY29sb3I6IzNiNTk5ODt9LnRiLXNvY2lhbC1zaGFyZS0tMDkyIC50Yi1zb2NpYWwtc2hhcmVfX2xpbmtlZGluX19zaGFyZS1idXR0b257Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTppbmxpbmUtYmxvY2s7YmFja2dyb3VuZC1zaXplOmNvbnRhaW47YmFja2dyb3VuZC1jb2xvcjojMDA3ZmIxO30udGItc29jaWFsLXNoYXJlLS0wOTIgLnRiLXNvY2lhbC1zaGFyZV9fdHdpdHRlcl9fc2hhcmUtYnV0dG9ue2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2JhY2tncm91bmQtc2l6ZTpjb250YWluO2JhY2tncm91bmQtY29sb3I6IzAwYWNlZDt9LnRiLXNvY2lhbC1zaGFyZS0tMDkyIC50Yi1zb2NpYWwtc2hhcmVfX3BpbnRlcmVzdF9fc2hhcmUtYnV0dG9ue2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2JhY2tncm91bmQtc2l6ZTpjb250YWluO2JhY2tncm91bmQtY29sb3I6I2NiMjEyODt9LnRiLXNvY2lhbC1zaGFyZS0tMDkyIC50Yi1zb2NpYWwtc2hhcmVfX3RlbGVncmFtX19zaGFyZS1idXR0b257Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTppbmxpbmUtYmxvY2s7YmFja2dyb3VuZC1zaXplOmNvbnRhaW47YmFja2dyb3VuZC1jb2xvcjojMzdhZWUyO30udGItc29jaWFsLXNoYXJlLS0wOTIgLnRiLXNvY2lhbC1zaGFyZV9fcmVkZGl0X19zaGFyZS1idXR0b257Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTppbmxpbmUtYmxvY2s7YmFja2dyb3VuZC1zaXplOmNvbnRhaW47YmFja2dyb3VuZC1jb2xvcjojNWY5OWNmO30udGItc29jaWFsLXNoYXJlLS0wOTIgLnRiLXNvY2lhbC1zaGFyZV9fdmliZXJfX3NoYXJlLWJ1dHRvbntjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmlubGluZS1ibG9jaztiYWNrZ3JvdW5kLXNpemU6Y29udGFpbjtiYWNrZ3JvdW5kLWNvbG9yOiM3YzUyOWU7fS50Yi1zb2NpYWwtc2hhcmUtLTA5MiAudGItc29jaWFsLXNoYXJlX19lbWFpbF9fc2hhcmUtYnV0dG9ue2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2JhY2tncm91bmQtc2l6ZTpjb250YWluO2JhY2tncm91bmQtY29sb3I6IzdmN2Y3Zjt9LnRiLXNvY2lhbC1zaGFyZS0tcm91bmQgLlNvY2lhbE1lZGlhU2hhcmVCdXR0b257Ym9yZGVyLXJhZGl1czo1MCV9LnRiLXNvY2lhbC1zaGFyZV9fZXhjZXJwdHtkaXNwbGF5Om5vbmV9LnRiLXNvY2lhbC1zaGFyZSAuU29jaWFsTWVkaWFTaGFyZUJ1dHRvbi0tZGlzYWJsZWR7b3BhY2l0eTowLjY1fS53cC1ibG9jay10b29sc2V0LWJsb2Nrcy1ncmlkLWNvbHVtbi50Yi1ncmlkLWNvbHVtbltkYXRhLXRvb2xzZXQtYmxvY2tzLWdyaWQtY29sdW1uPSJhMzNmNWRhMGNjMzFmNWNhZmY1NDQ1ZTkzMjcxYzFjMyJdIHsgZGlzcGxheTogZmxleDsgfSAgfSA=