Imaginez la scène : un projet lancé avec enthousiasme, des équipes motivées, mais au fil des semaines, le chaos s'installe. Le budget explose, les délais sont dépassés, et le client, insatisfait, remet en question l'ensemble du projet. Combien de projets prometteurs ont sombré corps et biens à cause d'une définition floue des besoins ? L'absence d'une feuille de route claire est souvent la source de ces dérives coûteuses. C'est là qu'intervient le cahier des charges fonctionnel (CdCF), un outil essentiel pour structurer et piloter efficacement tout projet.
Notre objectif est simple : vous donner les clés pour comprendre, créer et utiliser un CdCF performant, afin de transformer vos projets en succès retentissants. De la définition des besoins à la formalisation des exigences, en passant par l'analyse fonctionnelle, vous découvrirez comment structurer votre projet de manière à maximiser vos chances de réussite. Préparez-vous à embarquer pour un voyage au cœur de la gestion de projet structurée et efficiente !
Les fondamentaux du CdCF
Avant de plonger dans le vif du sujet, il est crucial de bien comprendre les concepts clés qui sous-tendent le Cahier des Charges Fonctionnel. Ce document, souvent perçu comme une contrainte, est en réalité un formidable outil de communication et de structuration, permettant d'aligner toutes les parties prenantes autour d'une vision commune. Une bonne compréhension des termes clés et des rôles de chacun est indispensable pour garantir l'efficacité du CdCF et la réussite du projet. L'objectif de cette section est donc de démystifier ces concepts et de vous fournir les bases solides nécessaires à la création d'un CdCF performant.
Définitions clés
- Besoin : Ce à quoi le produit ou service doit répondre (un problème, un désir, une opportunité).
- Fonction principale : Ce qui rend le produit/service unique et utile à l'utilisateur.
- Fonction contrainte : Exigences liées à l'environnement, aux normes, aux réglementations, etc.
- Fonction technique : Solutions envisagées (mais non imposées) pour répondre aux besoins.
- Critère d'acceptation : Mesures objectives qui prouvent que la fonction est remplie.
- Niveau d'acceptation : Seuils minimum, cible et maximum pour chaque critère d'acceptation.
Les acteurs du CdCF
- Maîtrise d'ouvrage (MOA): Définit les besoins, valide le CdCF. C'est souvent le client ou le commanditaire du projet.
- Maîtrise d'œuvre (MOE): Propose des solutions, réalise le projet. Il s'agit généralement de l'équipe de développement ou du prestataire.
- Utilisateurs : Ceux qui utiliseront le produit/service. Leur implication est cruciale pour garantir l'adéquation du CdCF à leurs besoins réels.
Les avantages d'un bon CdCF
Un Cahier des Charges Fonctionnel bien conçu est bien plus qu'un simple document. C'est un investissement qui rapporte gros en termes d'efficacité, de qualité et de satisfaction. En effet, il permet d'éviter les malentendus, de réduire les risques et de garantir que le projet répondra aux attentes de toutes les parties prenantes. En clair, c'est la clé d'un projet réussi.- Communication claire entre les parties prenantes.
- Réduction des coûts et des délais.
- Meilleure satisfaction client.
- Gestion des risques facilitée.
- Base solide pour l'évaluation et le contrôle qualité.
Méthodologie de création du CdCF
La création d'un Cahier des Charges Fonctionnel n'est pas une science infuse. Elle requiert une approche méthodique et rigoureuse, découpée en plusieurs phases distinctes. Chaque phase a son importance et contribue à la construction d'un document complet et précis, servant de guide pour l'ensemble du projet. Dans cette section, nous allons détailler chaque étape, en vous fournissant des conseils pratiques et des outils concrets pour vous aider à mener à bien cette tâche cruciale.
Phase 1: expression des besoins
L'expression des besoins est la pierre angulaire du CdCF. Il s'agit d'identifier et de formaliser de manière claire et précise les besoins auxquels le projet doit répondre. Cette phase cruciale nécessite une écoute attentive des utilisateurs, une analyse rigoureuse des contraintes et une vision claire des objectifs à atteindre. Un besoin mal exprimé peut entraîner des dérives coûteuses et compromettre la réussite du projet. Il est donc essentiel de consacrer suffisamment de temps et d'énergie à cette étape fondamentale.
Techniques de recueil des besoins
Diverses techniques existent pour recueillir efficacement les besoins :- Interviews
- Questionnaires
- Brainstorming
- Observation
- Analyse documentaire
- Études de marché
Diagramme des causes à effets (Ishikawa/5M)
Le diagramme d'Ishikawa, également appelé diagramme de causes à effets ou diagramme en arêtes de poisson, est un outil puissant pour identifier les causes potentielles d'un problème ou d'un besoin. En explorant les 5M (Matière, Matériel, Méthode, Main d'œuvre, Milieu), il permet de structurer la réflexion et de mettre en évidence les facteurs clés à prendre en compte. Ce diagramme est particulièrement utile pour identifier les causes racines des problèmes et pour définir des solutions efficaces.
Exemple concret : Imaginons une entreprise qui souhaite lancer une nouvelle application mobile. Lors de la phase d'expression des besoins, l'équipe constate que les utilisateurs potentiels expriment un besoin d'une interface intuitive et facile à utiliser. En utilisant un diagramme d'Ishikawa, l'équipe identifie les causes possibles d'une interface non intuitive : un manque de tests utilisateurs, une conception graphique complexe, une navigation peu claire, etc. En s'attaquant à ces causes, l'équipe peut concevoir une application qui répondra réellement aux besoins des utilisateurs.
Phase 2: analyse fonctionnelle
L'analyse fonctionnelle consiste à structurer les besoins identifiés lors de la phase précédente, en les traduisant en fonctions et en contraintes. Il s'agit de décomposer le problème en éléments plus simples, afin de mieux comprendre les interactions entre le produit/service et son environnement. Cette étape permet de s'assurer que toutes les exigences sont prises en compte et que le projet est réalisable dans les contraintes définies. Une analyse fonctionnelle rigoureuse est essentielle pour garantir la cohérence et la pertinence du CdCF.
Diagramme pieuvre (APTE/bête à cornes)
Le diagramme pieuvre (ou bête à cornes) est un outil visuel qui permet de représenter les relations entre le produit/service et son environnement. Il identifie les fonctions de service (ce que le produit/service doit faire pour satisfaire les besoins) et les fonctions de contrainte (les limitations imposées par l'environnement). Ce diagramme permet de visualiser rapidement les exigences essentielles et de s'assurer qu'elles sont toutes prises en compte.
FAST diagram (functional analysis system technique)
Le FAST Diagram est une technique d'analyse fonctionnelle qui permet de décomposer les fonctions principales en sous-fonctions, en répondant à la question "Comment ?". Il permet de visualiser la chaîne de causalité entre les différentes fonctions et de s'assurer qu'elles sont toutes nécessaires et suffisantes pour atteindre les objectifs du projet. Ce diagramme est particulièrement utile pour identifier les fonctions critiques et pour optimiser la conception du produit/service.
Exemple concret : Reprenons l'exemple de l'application mobile. La fonction principale est de "permettre à l'utilisateur de commander des repas en ligne". Le FAST Diagram permettra de décomposer cette fonction en sous-fonctions : "afficher les restaurants disponibles", "permettre à l'utilisateur de consulter les menus", "permettre à l'utilisateur de passer une commande", "gérer le paiement", "notifier le restaurant de la commande", "suivre la livraison", etc. Cette décomposition permet de mieux comprendre les exigences techniques et fonctionnelles de l'application.
Phase 3: rédaction du CdCF
La rédaction du CdCF est l'étape finale de la création du document. Il s'agit de formaliser de manière claire, précise et exhaustive les exigences du projet, en s'appuyant sur les résultats des phases précédentes. Un CdCF bien rédigé est un outil de communication essentiel, permettant d'aligner toutes les parties prenantes autour d'une vision commune et de minimiser les risques de malentendus ou d'interprétations erronées. Un document clair et concis favorisera la bonne entente entre les parties prenantes et une meilleure compréhension des objectifs du projet.
Structure typique d'un CdCF
Un CdCF typique comprend les sections suivantes :- Introduction (contexte, objectifs)
- Présentation du projet
- Expression des besoins
- Analyse fonctionnelle (diagrammes)
- Fonctions principales et contraintes
- Critères et niveaux d'acceptation
- Contraintes (techniques, budgétaires, temporelles)
- Annexes (documents de référence)
Conseils de rédaction
* Utiliser un langage clair et précis. * Être objectif et factuel. * Être complet et exhaustif. * Être réaliste et atteignable. * Utiliser des verbes d'action. * Éviter le jargon technique.Erreurs courantes à éviter
* Confondre besoin et solution. * Oublier des fonctions importantes. * Définir des critères d'acceptation vagues. * Ne pas impliquer les utilisateurs. * Ne pas mettre à jour le CdCF.Cahier des charges fonctionnel exemple : analyse détaillée et inspiration
Rien ne vaut l'étude d'exemples concrets pour comprendre comment un CdCF prend vie. Cette section vous propose une analyse détaillée d'un exemple de CdCF, afin de vous inspirer et de vous donner des pistes pour structurer vos propres documents. L'objectif est de vous montrer comment les concepts théoriques se traduisent dans la pratique, et de vous aider à identifier les bonnes pratiques et les pièges à éviter. En décortiquant cet exemple, vous serez mieux armés pour rédiger des CdCF performants et adaptés à vos besoins.
Pour illustrer notre propos, prenons l'exemple d'un CdCF pour le développement d'une application mobile de gestion de tâches. Ce type d'application est très répandu, ce qui permettra à un large public de s'identifier. Il est important de noter que cet exemple est anonymisé et simplifié à des fins pédagogiques.
Exemple de CdCF : application de gestion de tâches
Contexte et Objectifs : L'objectif de ce projet est de développer une application mobile permettant aux utilisateurs de gérer leurs tâches quotidiennes de manière simple et efficace. L'application devra être intuitive, facile à utiliser et disponible sur les plateformes iOS et Android.
Fonction Principale | Fonctionnalités | Critères d'Acceptation | Niveaux d'Acceptation |
---|---|---|---|
Créer une tâche | Ajouter un titre, une description, une date d'échéance, une priorité. | L'utilisateur doit pouvoir créer une tâche en moins de 30 secondes. | Minimum : 45 secondes, Cible : 30 secondes, Maximum : 20 secondes |
Consulter la liste des tâches | Afficher les tâches par ordre de priorité, de date d'échéance, ou par catégorie. | L'application doit afficher la liste des tâches en moins de 2 secondes. | Minimum : 3 secondes, Cible : 2 secondes, Maximum : 1 seconde |
Modifier une tâche | Modifier les informations d'une tâche existante. | L'utilisateur doit pouvoir modifier une tâche en moins de 15 secondes. | Minimum : 20 secondes, Cible : 15 secondes, Maximum : 10 secondes |
Contrainte | Description | Niveau d'Acceptation |
---|---|---|
Compatibilité iOS | L'application doit être compatible avec les versions iOS 13 et supérieures. | 100% des fonctionnalités doivent être opérationnelles. |
Compatibilité Android | L'application doit être compatible avec les versions Android 8 et supérieures. | 100% des fonctionnalités doivent être opérationnelles. |
Sécurité des données | Les données des utilisateurs doivent être stockées de manière sécurisée et cryptée. | Conformité aux normes RGPD et aux meilleures pratiques de sécurité. |
Analyse : Ce CdCF, bien que simplifié, présente une structure claire et concise. Les fonctions principales sont clairement définies, ainsi que les critères et niveaux d'acceptation associés. Les contraintes sont également bien identifiées. Cependant, il pourrait être amélioré en incluant des schémas d'interface utilisateur (mockups) pour illustrer la vision de l'application, et en détaillant davantage les aspects liés à la sécurité des données. De plus, il pourrait être pertinent d'inclure des métriques de performance, telles que le nombre d'utilisateurs actifs par mois ou le taux de rétention.
Voici une maquette simplifiée de l'écran principal de l'application, présentant la liste des tâches :
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAIAAAD2HxkiAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAT/SURBVHhe7d09L0RhHMfxz+mYgGkYCQYSEjgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4LgcDgcH4L